|
@@ -64,20 +64,14 @@ void NewTurnProcessor::handleTimeEvents(PlayerColor color)
|
|
|
}
|
|
|
|
|
|
//remove objects specified by event
|
|
|
- for(const CGObjectInstance * objectToRemove : event.deletedObjectsInstances)
|
|
|
+ for(const ObjectInstanceID objectIdToRemove : event.deletedObjectsInstances)
|
|
|
{
|
|
|
- removedObjects.push_back(objectToRemove);
|
|
|
- gameHandler->removeObject(objectToRemove, PlayerColor::NEUTRAL);
|
|
|
+ auto objectInstance = gameHandler->getObj(objectIdToRemove, false);
|
|
|
+ if(objectInstance != nullptr)
|
|
|
+ gameHandler->removeObject(objectInstance, PlayerColor::NEUTRAL);
|
|
|
}
|
|
|
gameHandler->sendAndApply(&iw); //show dialog
|
|
|
}
|
|
|
-
|
|
|
- for (auto & event : gameHandler->gameState()->map->events)
|
|
|
- vstd::erase_if(event.deletedObjectsInstances,
|
|
|
- [removedObjects](const CGObjectInstance * o)
|
|
|
- {
|
|
|
- return vstd::contains(removedObjects, o);
|
|
|
- });
|
|
|
}
|
|
|
|
|
|
void NewTurnProcessor::handleTownEvents(const CGTownInstance * town)
|