Change: Avoid caching end of ship path, to allow penalties to apply.

This commit is contained in:
peter1138 2019-03-11 13:52:47 +00:00 committed by Niels Martin Hansen
parent 31db4f8d5e
commit 0db31ae27f
1 changed files with 5 additions and 1 deletions

View File

@ -174,12 +174,16 @@ public:
if (pNode != nullptr) {
uint steps = 0;
for (Node *n = pNode; n->m_parent != nullptr; n = n->m_parent) steps++;
uint skip = 0;
if (path_found) skip = YAPF_SHIP_PATH_CACHE_LENGTH / 2;
/* walk through the path back to the origin */
Node *pPrevNode = nullptr;
while (pNode->m_parent != nullptr) {
steps--;
if (steps > 0 && steps < YAPF_SHIP_PATH_CACHE_LENGTH) {
/* Skip tiles at end of path near destination. */
if (skip > 0) skip--;
if (skip == 0 && steps > 0 && steps < YAPF_SHIP_PATH_CACHE_LENGTH) {
path_cache.push_front(pNode->GetTrackdir());
}
pPrevNode = pNode;