void ModuleManager::UnfitModule(uint32 itemID) { GenericModule * mod = m_Modules->GetModule(itemID); if( mod != NULL ) { if( mod->isLoaded() ) { InventoryItemRef loadedChargeRef = mod->getLoadedChargeRef(); if( IsStation(m_Ship->locationID()) ) loadedChargeRef->Move(m_Ship->locationID(), flagHangar); // used to be (m_pOperator->GetLocationID(), flag) else { m_Ship->ValidateAddItem(flagCargoHold,loadedChargeRef); //if( m_Ship->ValidateAddItem(flagCargoHold,loadedChargeRef) ) //{ loadedChargeRef->Move(m_Ship->itemID(), flagCargoHold); // used to be (m_pOperator->GetLocationID(), flag) mod->unload(); //} //else // throw PyException( MakeCustomError( "Not enough cargo space!") ); } } mod->offline(); m_Modules->RemoveModule(itemID); } }
void ModuleManager::Offline(uint32 itemID) { GenericModule * mod = m_Modules->GetModule(itemID); if( mod != NULL ) { mod->offline(); m_pLog->Log("ModuleManager::Offline()", "Module '%s' going Offline", mod->getItem()->itemName().c_str()); } }
void ModuleManager::Deactivate(uint32 itemID, std::string effectName) { GenericModule * mod = m_Modules->GetModule(itemID); if( mod != NULL ) { if(effectName == "online") { //ModuleCommand cmd = _translateEffectName(effectName); // GET RID of this function, effectName should be passed into the module's calls mod->offline(); // We should check for "online" here or something else, then either call the mod->Offline() or mod->Deactivate() //if(cmd == OFFLINE) // mod->Offline(); // this currently fails since m_selectedEffect and m_defaultEffect in the ModuleEffect class are undefined //there needs to be more cases here i just don't know what they're called yet } else { mod->deactivate(); m_pLog->Log("ModuleManager::Deactivate()", "Module '%s' Deactivating...", mod->getItem()->itemName().c_str()); } } }