/** * * * @author OLiver */ void noBuilding::Destroy_noBuilding() { // Feuer erzeugen (bei Hütten und Bergwerken kleine Feuer, bei allen anderen große!) // Feuer setzen gwg->SetNO(new noFire(pos, (GetSize() == BQ_HUT || GetSize() == BQ_MINE) ? 0 : 1), pos); Destroy_noBaseBuilding(); }
void noBuildingSite::Destroy_noBuildingSite() { // Bauarbeiter/Planierer Bescheid sagen if(builder) { builder->LostWork(); builder = NULL; }else if(planer) { planer->LostWork(); planer = NULL; }else gwg->GetPlayer(player).JobNotWanted(this); RTTR_Assert(!builder); RTTR_Assert(!planer); // Bestellte Waren Bescheid sagen for(std::list<Ware*>::iterator it = ordered_boards.begin(); it != ordered_boards.end(); ++it) WareNotNeeded(*it); ordered_boards.clear(); for(std::list<Ware*>::iterator it = ordered_stones.begin(); it != ordered_stones.end(); ++it) WareNotNeeded(*it); ordered_stones.clear(); // und Feld wird leer gwg->SetNO(pos, NULL); // Baustelle wieder aus der Liste entfernen - dont forget about expedition harbor status bool expeditionharbor = IsHarborBuildingSiteFromSea(); gwg->GetPlayer(player).RemoveBuildingSite(this); Destroy_noBaseBuilding(); // Hafenbaustelle? if(expeditionharbor) { // Land neu berechnen nach zerstören weil da schon straßen etc entfernt werden gwg->RecalcTerritory(*this, true, false); } gwg->RecalcBQAroundPointBig(pos); }