Fix limit train lookahead to signal aspect when starting
From depot and within signal sighting distance (e.g. reverse)
This commit is contained in:
@@ -996,8 +996,13 @@ void SetTrainReservationLookaheadEnd(Train *v)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (v->lookahead->lookahead_end_position > v->lookahead->reservation_end_position) return;
|
||||||
|
|
||||||
int32 threshold = v->lookahead->current_position + 24;
|
int32 threshold = v->lookahead->current_position + 24;
|
||||||
uint8 known_signals_ahead = 1;
|
uint8 known_signals_ahead = 1;
|
||||||
|
if (v->IsInDepot()) {
|
||||||
|
known_signals_ahead = _extra_aspects + 1;
|
||||||
|
}
|
||||||
for (const TrainReservationLookAheadItem &item : v->lookahead->items) {
|
for (const TrainReservationLookAheadItem &item : v->lookahead->items) {
|
||||||
if (item.end >= v->lookahead->reservation_end_position) break;
|
if (item.end >= v->lookahead->reservation_end_position) break;
|
||||||
if (item.type == TRLIT_SIGNAL) {
|
if (item.type == TRLIT_SIGNAL) {
|
||||||
|
@@ -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->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);
|
TrainDecelerationStats stats(v, v->lookahead->cached_zpos);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user