1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-11-25 22:42:04 +02:00

Implemented playerGlobal visit mode for objects like cartographer

This commit is contained in:
Ivan Savenko
2025-05-06 18:53:43 +03:00
parent 1b5d00cc99
commit 4b77140f4a
11 changed files with 32 additions and 31 deletions

View File

@@ -1045,16 +1045,16 @@ void ChangeObjPos::applyGs(CGameState *gs)
void ChangeObjectVisitors::applyGs(CGameState *gs)
{
auto objectPtr = gs->getObjInstance(object);
switch (mode) {
case VISITOR_ADD_HERO:
gs->getPlayerTeam(gs->getHero(hero)->tempOwner)->scoutedObjects.insert(object);
gs->getHero(hero)->visitedObjects.insert(object);
gs->getPlayerState(gs->getHero(hero)->tempOwner)->visitedObjects.insert(object);
break;
[[fallthrough]];
case VISITOR_ADD_PLAYER:
gs->getPlayerTeam(gs->getHero(hero)->tempOwner)->scoutedObjects.insert(object);
for(const auto & color : gs->getPlayerTeam(gs->getHero(hero)->tempOwner)->players)
gs->getPlayerState(color)->visitedObjects.insert(object);
gs->getPlayerState(gs->getHero(hero)->tempOwner)->visitedObjects.insert(object);
gs->getPlayerState(gs->getHero(hero)->tempOwner)->visitedObjectsGlobal.insert({objectPtr->ID, objectPtr->subID});
break;
case VISITOR_CLEAR:
@@ -1076,12 +1076,6 @@ void ChangeObjectVisitors::applyGs(CGameState *gs)
gs->getPlayerTeam(gs->getHero(hero)->tempOwner)->scoutedObjects.insert(object);
break;
case VISITOR_GLOBAL:
{
CGObjectInstance * objectPtr = gs->getObjInstance(object);
gs->getPlayerState(gs->getHero(hero)->tempOwner)->visitedObjectsGlobal.insert({objectPtr->ID, objectPtr->subID});
break;
}
}
}