# HG changeset patch # User frosch # Date 2013-12-08 21:22:03 # Node ID 9ea518c4558df35d93748e54a933e8f4958f7b36 # Parent 1105391c85e20e1562aeb72b6e40a921626b1f39 (svn r26152) -Revert/Fix (r26118) [FS#5822]: While the condition is non-sense, the 'true' case is required for articulated parts and the 'false' case is required for savegame compatibility. diff --git a/src/roadveh_cmd.cpp b/src/roadveh_cmd.cpp --- a/src/roadveh_cmd.cpp +++ b/src/roadveh_cmd.cpp @@ -1416,6 +1416,18 @@ again: if (new_dir != old_dir) { v->direction = new_dir; if (_settings_game.vehicle.roadveh_acceleration_model == AM_ORIGINAL) v->cur_speed -= v->cur_speed >> 2; + + /* Delay the vehicle in curves by making it require one or two additional frames per curve. + * A vehicle has to spend at least 9 frames on a tile, so the following articulated part can follow. + * (The following part may only be one tile behind, and the front part is moved before the following ones.) + * The short (inner) curve has 8 frames, this elongates it to 9 or 10. + * + * The difference between 9 and 10 is arbitrary, and completely bollocks (i.e. a bug). + * Unifying this requires a complicated savegame conversion. */ + if (old_dir != v->state) { + v->UpdateInclination(false, true); + return true; + } } /* If the vehicle is in a normal road stop and the frame equals the stop frame OR