1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-07-01 00:45:26 +02:00

More work on static variable desyncs

This commit is contained in:
Arseniy Shestakov
2016-08-29 23:07:52 +03:00
parent 3f075e391a
commit 668cd83ee5
2 changed files with 25 additions and 3 deletions

View File

@ -787,6 +787,16 @@ void CGameState::init(StartInfo * si)
initVisitingAndGarrisonedHeroes();
initFogOfWar();
// Explicitly initialize static variables
for(auto & elem : players)
{
CGKeys::playerKeyMap[elem.first] = {};
}
for(auto & elem : teams)
{
CGObelisk::visited[elem.first] = 0;
}
logGlobal->debug("\tChecking objectives");
map->checkForObjectives(); //needs to be run when all objects are properly placed
@ -2637,7 +2647,15 @@ void CGameState::obtainPlayersStats(SThievesGuildInfo & tgi, int level)
}
if(level >= 3) //obelisks found
{
FILL_FIELD(obelisks, CGObelisk::visited[gs->getPlayerTeam(g->second.color)->id])
auto getObeliskVisited = [](TeamID t)
{
if(CGObelisk::visited.count(t))
return CGObelisk::visited[t];
else
return ui8(0);
};
FILL_FIELD(obelisks, getObeliskVisited(gs->getPlayerTeam(g->second.color)->id))
}
if(level >= 4) //artifacts
{