bool RMANAGER::isAttended(VESSEL * v) { if (!v) return false; VESSEL * vessel; for (int i = 0; i < atList.size(); i++) { if (!atList[i]) continue; if (!oapiIsVessel(atList[i]->hook)) continue; vessel = oapiGetVesselInterface(atList[i]->hook); if (v->GetHandle() == vessel->GetHandle()) return true; } return false; }
void RMANAGER::TimeStep() { VESSEL * v = NULL; OBJHANDLE hVes = NULL; char ini[255]; for (int i = 0; i < oapiGetVesselCount(); i++) { hVes = oapiGetVesselByIndex(i); if (!oapiIsVessel(hVes)) continue; v = oapiGetVesselInterface(hVes); if (isAttended(v)) continue; if (!hasConfig(v)) continue; sprintf(ini,"./Config/orbReentryStream/%s.ini",INI(v)); atList.push_back(ReadAndAssign(ini,v)); } VOBJ * vbj = NULL; for (int i = 0; i < atList.size(); i++) { if (!atList[i]) continue; if (!oapiIsVessel(atList[i]->hook)) continue; vbj = atList[i]; v = oapiGetVesselInterface(vbj->hook); hVes = v->GetHandle(); if (calcFlux(v) > vbj->flux) { if (!vbj->th) CreateResourceAndStreams(vbj); v->SetThrusterLevel(vbj->th,1); }else if (vbj->th) v->SetThrusterLevel(vbj->th,0); } }