unsigned int compileSysState(void) { unsigned int i, state = 0; for(i = 0; i < STRG_MAX_ZONE_NUM; i++) { if(!(zone_state[i] & ZONE_STATE_ON)) continue; if(zone_state[i] & SYS_STATE_MASK) state |= zone_state[i] & SYS_STATE_MASK; } if(state & SYS_STATE_FIRE) setFireState(); else clearFireState(); if(state & SYS_STATE_ALARM) setAlarmState(); else clearAlarmState(); if(state & SYS_STATE_FAILURE) setFailureState(); else clearFailureState(); }
void DGunController::init(int commID) { commanderID = commID; commanderUD = CALLOUT->GetUnitDef(commID); state.inited = true; // set commander to hold fire setFireState(0); for (std::vector<UnitDef::UnitDefWeapon>::const_iterator i = commanderUD->weapons.begin(); i != commanderUD->weapons.end(); i++) { if (i->def->type == "DGun") { commanderWD = i->def; break; } } }