From 36e1c2817317d20c756b3df1737de2a4c8ddec86 Mon Sep 17 00:00:00 2001 From: Jonathan G Rennison Date: Thu, 8 Jun 2023 22:47:01 +0100 Subject: [PATCH] Fix trains ascending a sloped bridge ramp having incorrect z in wormhole z one larger than the correct value due to an extra increment on the transition frame --- src/tunnelbridge_cmd.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/tunnelbridge_cmd.cpp b/src/tunnelbridge_cmd.cpp index 2f4dd7529b..abd519b5ff 100644 --- a/src/tunnelbridge_cmd.cpp +++ b/src/tunnelbridge_cmd.cpp @@ -3204,7 +3204,13 @@ static VehicleEnterTileStatus VehicleEnter_TunnelBridge(Vehicle *v, TileIndex ti Train *t = Train::From(v); t->track = TRACK_BIT_WORMHOLE; SetBit(t->First()->flags, VRF_CONSIST_SPEED_REDUCTION); - PrepareToEnterBridge(t); + + /* Do not call PrepareToEnterBridge because that also increments z_pos if + * GVF_GOINGUP_BIT is set. + * That is not required because this is occuring at frame == TILE_SIZE, + * instead at TILE_SIZE - 1 */ + ClrBit(t->gv_flags, GVF_GOINGUP_BIT); + ClrBit(t->gv_flags, GVF_GOINGDOWN_BIT); break; }