LAPTOP-SNT8I5JK\Boounion
2025-06-05 0ac6ae25833b16d25e5380176f66d35aa947f85c
SourceCode/Bond/Servo/CEquipment.cpp
@@ -370,6 +370,7 @@
      for (int i = 0; i < 8; i++) {
         m_bLinkSignal[i][SIGNAL_UPSTREAM_INLINE] = isBitOn(pszData, size, index + 0);
         m_bLinkSignal[i][SIGNAL_UPSTREAM_TROUBLE] = isBitOn(pszData, size, index + 1);
         m_bLinkSignal[i][SIGNAL_INTERLOCK] = isBitOn(pszData, size, index + 2);
         m_bLinkSignal[i][SIGNAL_SEND_ABLE] = isBitOn(pszData, size, index + 3);
         index += 0x40;
      }       
@@ -605,6 +606,14 @@
      if (path >= PATH_MAX) return;
      if (signal >= SIGNAL_MAX) return;
      m_bLinkSignal[path][signal] = bOn;
   }
   void CEquipment::setLinkSignalBlock(unsigned int path, BOOL* pSignal)
   {
      if (path >= PATH_MAX) return;
      for (int i = 0; i < SIGNAL_MAX; i++) {
         m_bLinkSignal[path][i] = pSignal[i];
      }
   }
   int CEquipment::onStepEvent(CStep* pStep, int code)
@@ -1139,6 +1148,10 @@
         if (m_slot[i].isLock()) continue;
         CGlass* pGlass = (CGlass*)m_slot[i].getContext();
         if (pGlass == nullptr) continue;
         if(!m_bLinkSignal[i][SIGNAL_UPSTREAM_INLINE]
            || m_bLinkSignal[i][SIGNAL_UPSTREAM_TROUBLE]
            || !m_bLinkSignal[i][SIGNAL_INTERLOCK]
            || !m_bLinkSignal[i][SIGNAL_SEND_ABLE] ) continue;
         MaterialsType glassType = pGlass->getType();
         if (glassType == MaterialsType::G1 && putSlotType == MaterialsType::G2) continue;