Changeset View
Changeset View
Standalone View
Standalone View
ps/trunk/source/simulation2/components/CCmpAIManager.cpp
Show First 20 Lines • Show All 1,108 Lines • ▼ Show 20 Lines | virtual void StartComputation() | ||||
// Update the game state | // Update the game state | ||||
m_Worker.UpdateGameState(scriptInterface.WriteStructuredClone(state)); | m_Worker.UpdateGameState(scriptInterface.WriteStructuredClone(state)); | ||||
// Update the pathfinding data | // Update the pathfinding data | ||||
CmpPtr<ICmpPathfinder> cmpPathfinder(GetSystemEntity()); | CmpPtr<ICmpPathfinder> cmpPathfinder(GetSystemEntity()); | ||||
if (cmpPathfinder) | if (cmpPathfinder) | ||||
{ | { | ||||
const GridUpdateInformation& dirtinessInformations = cmpPathfinder->GetDirtinessData(); | const GridUpdateInformation& dirtinessInformations = cmpPathfinder->GetAIPathfinderDirtinessInformation(); | ||||
if (dirtinessInformations.dirty || m_JustDeserialized) | if (dirtinessInformations.dirty || m_JustDeserialized) | ||||
{ | { | ||||
const Grid<NavcellData>& passabilityMap = cmpPathfinder->GetPassabilityGrid(); | const Grid<NavcellData>& passabilityMap = cmpPathfinder->GetPassabilityGrid(); | ||||
std::map<std::string, pass_class_t> nonPathfindingPassClassMasks, pathfindingPassClassMasks; | std::map<std::string, pass_class_t> nonPathfindingPassClassMasks, pathfindingPassClassMasks; | ||||
cmpPathfinder->GetPassabilityClasses(nonPathfindingPassClassMasks, pathfindingPassClassMasks); | cmpPathfinder->GetPassabilityClasses(nonPathfindingPassClassMasks, pathfindingPassClassMasks); | ||||
m_Worker.UpdatePathfinder(passabilityMap, | m_Worker.UpdatePathfinder(passabilityMap, | ||||
dirtinessInformations.globallyDirty, dirtinessInformations.dirtinessGrid, m_JustDeserialized, | dirtinessInformations.globallyDirty, dirtinessInformations.dirtinessGrid, m_JustDeserialized, | ||||
nonPathfindingPassClassMasks, pathfindingPassClassMasks); | nonPathfindingPassClassMasks, pathfindingPassClassMasks); | ||||
} | } | ||||
cmpPathfinder->FlushAIPathfinderDirtinessInformation(); | |||||
} | } | ||||
// Update the territory data | // Update the territory data | ||||
// Since getting the territory grid can trigger a recalculation, we check NeedUpdate first | // Since getting the territory grid can trigger a recalculation, we check NeedUpdate first | ||||
CmpPtr<ICmpTerritoryManager> cmpTerritoryManager(GetSystemEntity()); | CmpPtr<ICmpTerritoryManager> cmpTerritoryManager(GetSystemEntity()); | ||||
if (cmpTerritoryManager && (cmpTerritoryManager->NeedUpdate(&m_TerritoriesDirtyID) || m_JustDeserialized)) | if (cmpTerritoryManager && (cmpTerritoryManager->NeedUpdate(&m_TerritoriesDirtyID) || m_JustDeserialized)) | ||||
{ | { | ||||
const Grid<u8>& territoryMap = cmpTerritoryManager->GetTerritoryGrid(); | const Grid<u8>& territoryMap = cmpTerritoryManager->GetTerritoryGrid(); | ||||
▲ Show 20 Lines • Show All 104 Lines • Show Last 20 Lines |
Wildfire Games · Phabricator