Fix limit train lookahead to signal aspect within signalled tunnel/bridges
This commit is contained in:
@@ -999,6 +999,7 @@ void SetTrainReservationLookaheadEnd(Train *v)
|
|||||||
int32 threshold = v->lookahead->current_position + 24;
|
int32 threshold = v->lookahead->current_position + 24;
|
||||||
uint8 known_signals_ahead = 1;
|
uint8 known_signals_ahead = 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.type == TRLIT_SIGNAL) {
|
if (item.type == TRLIT_SIGNAL) {
|
||||||
if (item.start <= threshold) {
|
if (item.start <= threshold) {
|
||||||
/* Signal is within visual range */
|
/* Signal is within visual range */
|
||||||
|
@@ -4083,6 +4083,7 @@ static TileIndex CheckLongReservePbsTunnelBridgeOnTrackdir(Train* v, TileIndex t
|
|||||||
} else {
|
} else {
|
||||||
raw_free_tiles = GetAvailableFreeTilesInSignalledTunnelBridgeWithStartOffset(tile, end, v->lookahead->tunnel_bridge_reserved_tiles + 1);
|
raw_free_tiles = GetAvailableFreeTilesInSignalledTunnelBridgeWithStartOffset(tile, end, v->lookahead->tunnel_bridge_reserved_tiles + 1);
|
||||||
ApplyAvailableFreeTunnelBridgeTiles(v->lookahead.get(), raw_free_tiles, tile, end);
|
ApplyAvailableFreeTunnelBridgeTiles(v->lookahead.get(), raw_free_tiles, tile, end);
|
||||||
|
SetTrainReservationLookaheadEnd(v);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
raw_free_tiles = GetAvailableFreeTilesInSignalledTunnelBridge(tile, end, tile);
|
raw_free_tiles = GetAvailableFreeTilesInSignalledTunnelBridge(tile, end, tile);
|
||||||
|
Reference in New Issue
Block a user