diff --git a/src/pathfinder/yapf/yapf_rail.cpp b/src/pathfinder/yapf/yapf_rail.cpp index 94ec48f127..2d4c44429a 100644 --- a/src/pathfinder/yapf/yapf_rail.cpp +++ b/src/pathfinder/yapf/yapf_rail.cpp @@ -446,6 +446,11 @@ public: this->FindSafePositionOnNode(pPrev); } + + /* If the best PF node has no parent, then there is no (valid) best next trackdir to return. + * This occurs when the PF is called while the train is already at its destination. */ + if (pPrev == nullptr) return INVALID_TRACKDIR; + /* return trackdir from the best origin node (one of start nodes) */ Node &best_next_node = *pPrev; next_trackdir = best_next_node.GetTrackdir();