Fix limit train lookahead to signal aspect when starting

From depot and within signal sighting distance (e.g. reverse)
This commit is contained in:
Jonathan G Rennison
2022-06-25 01:17:24 +01:00
parent 10b415bf10
commit 24e965061c
2 changed files with 9 additions and 1 deletions

View File

@@ -996,8 +996,13 @@ void SetTrainReservationLookaheadEnd(Train *v)
return;
}
if (v->lookahead->lookahead_end_position > v->lookahead->reservation_end_position) return;
int32 threshold = v->lookahead->current_position + 24;
uint8 known_signals_ahead = 1;
if (v->IsInDepot()) {
known_signals_ahead = _extra_aspects + 1;
}
for (const TrainReservationLookAheadItem &item : v->lookahead->items) {
if (item.end >= v->lookahead->reservation_end_position) break;
if (item.type == TRLIT_SIGNAL) {

View File

@@ -4007,7 +4007,10 @@ static bool IsReservationLookAheadLongEnough(const Train *v, const ChooseTrainTr
if (v->lookahead->reservation_end_position >= v->lookahead->current_position + v->reverse_distance - 1) return true;
}
if (v->lookahead->lookahead_end_position <= v->lookahead->reservation_end_position && _settings_game.vehicle.realistic_braking_aspect_limited == TRBALM_ON) return true;
if (v->lookahead->lookahead_end_position <= v->lookahead->reservation_end_position && _settings_game.vehicle.realistic_braking_aspect_limited == TRBALM_ON &&
v->lookahead->reservation_end_position > v->lookahead->current_position + 24) {
return true;
}
TrainDecelerationStats stats(v, v->lookahead->cached_zpos);