void HouseExt::ExtData::SetFirestormState(bool Active) { HouseClass *pHouse = this->AttachedToObject; HouseExt::ExtData* pData = HouseExt::ExtMap.Find(pHouse); if(pData->FirewallActive == Active) { return; } pData->FirewallActive = Active; UpdateAnyFirestormActive(); DynamicVectorClass<CellStruct> AffectedCoords; for(int i = 0; i < pHouse->Buildings.Count; ++i) { BuildingClass *B = pHouse->Buildings[i]; BuildingTypeExt::ExtData *pBuildTypeData = BuildingTypeExt::ExtMap.Find(B->Type); if(pBuildTypeData->Firewall_Is) { BuildingExt::ExtData * pBldData = BuildingExt::ExtMap.Find(B); pBldData->UpdateFirewall(); CellStruct temp = B->GetMapCoords(); AffectedCoords.AddItem(temp); } } MapClass::Instance->Update_Pathfinding_1(); MapClass::Instance->Update_Pathfinding_2(&AffectedCoords); };
void HouseExt::ExtData::SetFirestormState(bool const active) { auto const pHouse = this->OwnerObject(); auto const pData = HouseExt::ExtMap.Find(pHouse); if(pData->FirewallActive == active) { return; } pData->FirewallActive = active; UpdateAnyFirestormActive(active); DynamicVectorClass<CellStruct> AffectedCoords; for(auto const& pBld : pHouse->Buildings) { auto const pTypeData = BuildingTypeExt::ExtMap.Find(pBld->Type); if(pTypeData->Firewall_Is) { auto const pExt = BuildingExt::ExtMap.Find(pBld); pExt->UpdateFirewall(); auto const temp = pBld->GetMapCoords(); AffectedCoords.AddItem(temp); } } MapClass::Instance->Update_Pathfinding_1(); MapClass::Instance->Update_Pathfinding_2(AffectedCoords); };