diff options
author | KUDr <kudr@openttd.org> | 2006-08-27 09:50:43 +0000 |
---|---|---|
committer | KUDr <kudr@openttd.org> | 2006-08-27 09:50:43 +0000 |
commit | 13addec466543de725df9d40e8500af735b6816e (patch) | |
tree | 9d339154872e05cc76d1b72f2f25e828cc59ed09 /yapf | |
parent | 6cbd4cc167c31b71bc833449c7322b2b42d4fdfc (diff) | |
download | openttd-13addec466543de725df9d40e8500af735b6816e.tar.xz |
(svn r6166) -Fix: [YAPF] fixes one very improbable assert when adding startup node that already exists in the open-list (thanks Panzerfather)
Diffstat (limited to 'yapf')
-rw-r--r-- | yapf/yapf_base.hpp | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/yapf/yapf_base.hpp b/yapf/yapf_base.hpp index c5c50fe65..96893b39d 100644 --- a/yapf/yapf_base.hpp +++ b/yapf/yapf_base.hpp @@ -180,7 +180,14 @@ public: 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 */ |