1
0
mirror of https://github.com/vcmi/vcmi.git synced 2024-12-24 22:14:36 +02:00

Merge pull request #4144 from vcmi/fix-4139

#4139 - attempt to fix crash on portal probbing
This commit is contained in:
Ivan Savenko 2024-06-18 12:07:24 +03:00 committed by GitHub
commit 8e68c7dcd8
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -1331,17 +1331,32 @@ bool AIGateway::moveHeroToTile(int3 dst, HeroPtr h)
auto doChannelProbing = [&]() -> void
{
auto currentPos = h->visitablePos();
auto currentExit = getObj(currentPos, true)->id;
auto currentTeleport = getObj(currentPos, true);
status.setChannelProbing(true);
for(auto exit : teleportChannelProbingList)
doTeleportMovement(exit, int3(-1));
teleportChannelProbingList.clear();
status.setChannelProbing(false);
if(currentTeleport)
{
auto currentExit = currentTeleport->id;
doTeleportMovement(currentExit, currentPos);
status.setChannelProbing(true);
for(auto exit : teleportChannelProbingList)
doTeleportMovement(exit, int3(-1));
teleportChannelProbingList.clear();
status.setChannelProbing(false);
doTeleportMovement(currentExit, currentPos);
}
else
{
logAi->debug("Unexpected channel probbing at " + currentPos.toString());
teleportChannelProbingList.clear();
status.setChannelProbing(false);
}
};
teleportChannelProbingList.clear();
status.setChannelProbing(false);
for(; i > 0; i--)
{
int3 currentCoord = path.nodes[i].coord;