Sfoglia il codice sorgente

Fixes patrol position initialization on H3M load

Ivan Savenko 2 anni fa
parent
commit
2f5ee44cbe
2 ha cambiato i file con 4 aggiunte e 9 eliminazioni
  1. 3 0
      lib/mapObjects/CGHeroInstance.cpp
  2. 1 9
      lib/mapping/MapFormatH3M.cpp

+ 3 - 0
lib/mapObjects/CGHeroInstance.cpp

@@ -319,6 +319,9 @@ void CGHeroInstance::initHero(CRandomGenerator & rand)
 	}
 	assert(validTypes());
 
+	if (patrol.patrolling)
+		patrol.initialPos = visitablePos();
+
 	if(exp == 0xffffffff)
 	{
 		initExp(rand);

+ 1 - 9
lib/mapping/MapFormatH3M.cpp

@@ -1657,15 +1657,7 @@ CGObjectInstance * CMapLoaderH3M::readHero(ObjectInstanceID idToBeGiven, const i
 	nhi->formation = reader.readUInt8();
 	loadArtifactsOfHero(nhi);
 	nhi->patrol.patrolRadius = reader.readUInt8();
-	if(nhi->patrol.patrolRadius == 0xff)
-	{
-		nhi->patrol.patrolling = false;
-	}
-	else
-	{
-		nhi->patrol.patrolling = true;
-		nhi->patrol.initialPos = nhi->convertToVisitablePos(initialPos);
-	}
+	nhi->patrol.patrolling = (nhi->patrol.patrolRadius != 0xff);
 
 	if(map->version > EMapFormat::ROE)
 	{