Browse Source

Fix self-visiting skipping battle on landing after flying above monster

Ivan Savenko 1 year ago
parent
commit
106a3b6c8e
1 changed files with 5 additions and 1 deletions
  1. 5 1
      server/CGameHandler.cpp

+ 5 - 1
server/CGameHandler.cpp

@@ -1104,7 +1104,11 @@ bool CGameHandler::moveHero(ObjectInstanceID hid, int3 dst, EMovementMode moveme
 		objectToVisit = t.visitableObjects.back();
 
 	if (isInTheMap(guardPos))
-		guardian = getTile(guardPos)->visitableObjects.back();
+	{
+		for (auto const & object : getTile(guardPos)->visitableObjects)
+			if (object->ID == MapObjectID::MONSTER) // exclude other objects, such as hero flying above monster
+				guardian = object;
+	}
 
 	const bool embarking = !h->boat && objectToVisit && objectToVisit->ID == Obj::BOAT;
 	const bool disembarking = h->boat