From 62ea3b7794a4fa489be56138f3754f17be35b613 Mon Sep 17 00:00:00 2001 From: Jonathan G Rennison Date: Wed, 10 Feb 2021 18:05:15 +0000 Subject: [PATCH] Use original speeds when braking at station in original braking mode Partially reverts: 628077d0 --- src/train_cmd.cpp | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/train_cmd.cpp b/src/train_cmd.cpp index c1cca1ed41..80700ded93 100644 --- a/src/train_cmd.cpp +++ b/src/train_cmd.cpp @@ -943,7 +943,19 @@ Train::MaxSpeedInfo Train::GetCurrentMaxSpeedInfoInternal(bool update_state) con int distance_to_go = station_ahead / TILE_SIZE - (station_length - stop_at) / TILE_SIZE; if (distance_to_go > 0) { - advisory_max_speed = std::min(advisory_max_speed, 15 * distance_to_go); + if (_settings_game.vehicle.train_braking_model == TBM_REALISTIC) { + advisory_max_speed = std::min(advisory_max_speed, 15 * distance_to_go); + } else { + int st_max_speed = 120; + + int delta_v = this->cur_speed / (distance_to_go + 1); + if (max_speed > (this->cur_speed - delta_v)) { + st_max_speed = this->cur_speed - (delta_v / 10); + } + + st_max_speed = std::max(st_max_speed, 25 * distance_to_go); + max_speed = std::min(max_speed, st_max_speed); + } } } }