yapf/yapf_base.hpp
changeset 4413 91cbf110f0d9
parent 3978 bfd412e43038
child 4549 60410aa1aa88
--- 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 */