(svn r6166) -Fix: [YAPF] fixes one very improbable assert when adding startup node that already exists in the open-list (thanks Panzerfather)
authorKUDr
Sun, 27 Aug 2006 09:50:43 +0000
changeset 4413 a65fe514b429
parent 4412 cae52239a576
child 4414 b7bdfeaa4631
(svn r6166) -Fix: [YAPF] fixes one very improbable assert when adding startup node that already exists in the open-list (thanks Panzerfather)
yapf/yapf_base.hpp
--- a/yapf/yapf_base.hpp	Sun Aug 27 09:28:52 2006 +0000
+++ b/yapf/yapf_base.hpp	Sun Aug 27 09:50:43 2006 +0000
@@ -180,7 +180,14 @@
 	FORCEINLINE void AddStartupNode(Node& n)
 	{
 		Yapf().PfNodeCacheFetch(n);
-		m_nodes.InsertOpenNode(n);
+		// insert the new node only if it is not there
+		if (&m_nodes.FindOpenNode(n.m_key) == NULL) {
+			m_nodes.InsertOpenNode(n);
+		} else {
+			// if we are here, it means that node is already there - how it is possible?
+			//   probably the train is in the position that both its ends point to the same tile/exit-dir
+			//   very unlikely, but it happened
+		}
 	}
 
 	/** add multiple nodes - direct children of the given node */