void CEconomy::remove(ARegistrar &object) { CGroup *group = dynamic_cast<CGroup*>(&object); LOG_II("CEconomy::remove " << (*group)) activeGroups.erase(group->key); takenMexes.erase(group->key); takenGeo.erase(group->key); group->unreg(*this); ReusableObjectFactory<CGroup>::Release(group); }
void CMilitary::remove(ARegistrar &object) { CGroup *group = dynamic_cast<CGroup*>(&object); LOG_II("CMilitary::remove " << (*group)) activeScoutGroups.erase(group->key); activeAttackGroups.erase(group->key); activeBomberGroups.erase(group->key); activeAirFighterGroups.erase(group->key); mergeGroups.erase(group->key); for (std::map<int,CGroup*>::iterator i = assemblingGroups.begin(); i != assemblingGroups.end(); ++i) { if (i->second->key == group->key) { assemblingGroups.erase(i->first); break; } } group->unreg(*this); ReusableObjectFactory<CGroup>::Release(group); }