Merge branch 'master' into jgrpp
# Conflicts: # .github/workflows/ci-build.yml # .github/workflows/codeql.yml # .github/workflows/release-linux.yml # .github/workflows/release-macos.yml # .github/workflows/release-windows.yml # src/map.cpp # src/music/midifile.hpp # src/order_cmd.cpp # src/order_gui.cpp # src/pathfinder/yapf/yapf_rail.cpp # src/pbs.cpp # src/saveload/afterload.cpp # src/saveload/saveload.h # src/saveload/vehicle_sl.cpp # src/script/api/script_text.cpp # src/ship_cmd.cpp # src/train_cmd.cpp # src/vehicle.cpp # src/vehicle_base.h # src/vehicle_func.h # src/vehicle_gui.cpp # src/vehicle_gui_base.h # src/viewport.cpp # src/waypoint_cmd.cpp
This commit is contained in:
@@ -106,7 +106,7 @@ private:
|
||||
if (HasStationReservation(tile)) return false;
|
||||
SetRailStationReservation(tile, true);
|
||||
MarkTileDirtyByTile(tile, VMDF_NOT_MAP_MODE);
|
||||
tile = TILE_ADD(tile, diff);
|
||||
tile = TileAdd(tile, diff);
|
||||
} while (IsCompatibleTrainStationTile(tile, start) && tile != m_origin_tile);
|
||||
|
||||
TriggerStationRandomisation(nullptr, start, SRT_PATH_RESERVATION);
|
||||
@@ -143,7 +143,7 @@ private:
|
||||
TileIndexDiff diff = TileOffsByDiagDir(TrackdirToExitdir(ReverseTrackdir(td)));
|
||||
while ((tile != m_res_fail_tile || td != m_res_fail_td) && IsCompatibleTrainStationTile(tile, start)) {
|
||||
SetRailStationReservation(tile, false);
|
||||
tile = TILE_ADD(tile, diff);
|
||||
tile = TileAdd(tile, diff);
|
||||
}
|
||||
} else if (tile != m_res_fail_tile || td != m_res_fail_td) {
|
||||
UnreserveRailTrackdir(tile, td);
|
||||
@@ -639,6 +639,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();
|
||||
|
Reference in New Issue
Block a user