diff --git a/src/train_cmd.cpp b/src/train_cmd.cpp index 4d3428e9f5..ea6269fee9 100644 --- a/src/train_cmd.cpp +++ b/src/train_cmd.cpp @@ -1991,6 +1991,8 @@ static bool IsWholeTrainInsideDepot(const Train *v) */ void ReverseTrainDirection(Train *v) { + //DEBUG(driver, 1, "Reversing train %d on tile %d", v->index, v->tile); + if (IsRailDepotTile(v->tile)) { if (IsWholeTrainInsideDepot(v)) return; InvalidateWindowData(WC_VEHICLE_DEPOT, v->tile); @@ -3884,6 +3886,9 @@ static TileIndex TrainApproachingCrossingTile(const Train *v) */ static bool TrainCheckIfLineEnds(Train *v, bool reverse) { + + if (v->flags.Test(VehicleRailFlag::Reversing)) return false; + /* First, handle broken down train */ int t = v->breakdown_ctr; @@ -3933,6 +3938,7 @@ static bool TrainCheckIfLineEnds(Train *v, bool reverse) } + static bool TrainLocoHandler(Train *v, bool mode) { /* train has crashed? */