Parcourir la source

CPathfinder: fix possible crash when using invisible teleport exit

This one is similar with FoW bug when hero was covered by FoW while one tile around wasn't.
ArseniyShestakov il y a 10 ans
Parent
commit
a430769b44
1 fichiers modifiés avec 7 ajouts et 0 suppressions
  1. 7 0
      lib/CPathfinder.cpp

+ 7 - 0
lib/CPathfinder.cpp

@@ -189,6 +189,13 @@ void CPathfinder::calculatePaths()
 			dp = out.getNode(neighbour, cp->layer);
 			if(dp->locked)
 				continue;
+			/// TODO: We may consider use invisible exits on FoW border in future
+			/// Useful for AI when at least one tile around exit is visible and passable
+			/// Objects are usually visible on FoW border anyway so it's not cheating.
+			///
+			/// For now it's disabled as it's will cause crashes in movement code.
+			if(dp->accessible == CGPathNode::BLOCKED)
+				continue;
 
 			if(isBetterWay(movement, turn))
 			{