Fix crash in GetTileDesc_TunnelBridge on non-road bridges
This commit is contained in:
@@ -2190,6 +2190,7 @@ static void GetTileDesc_TunnelBridge(TileIndex tile, TileDesc *td)
|
|||||||
}
|
}
|
||||||
td->owner[0] = GetTileOwner(tile);
|
td->owner[0] = GetTileOwner(tile);
|
||||||
|
|
||||||
|
if (tt == TRANSPORT_ROAD) {
|
||||||
Owner road_owner = INVALID_OWNER;
|
Owner road_owner = INVALID_OWNER;
|
||||||
Owner tram_owner = INVALID_OWNER;
|
Owner tram_owner = INVALID_OWNER;
|
||||||
RoadType road_rt = GetRoadTypeRoad(tile);
|
RoadType road_rt = GetRoadTypeRoad(tile);
|
||||||
@@ -2222,6 +2223,13 @@ static void GetTileDesc_TunnelBridge(TileIndex tile, TileDesc *td)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!IsTunnel(tile)) {
|
||||||
|
uint16 spd = GetBridgeSpec(GetBridgeType(tile))->speed;
|
||||||
|
if (road_rt != INVALID_ROADTYPE && (td->road_speed == 0 || spd < td->road_speed)) td->road_speed = spd;
|
||||||
|
if (tram_rt != INVALID_ROADTYPE && (td->tram_speed == 0 || spd < td->tram_speed)) td->tram_speed = spd;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (tt == TRANSPORT_RAIL) {
|
if (tt == TRANSPORT_RAIL) {
|
||||||
RailType rt = GetRailType(tile);
|
RailType rt = GetRailType(tile);
|
||||||
const RailtypeInfo *rti = GetRailTypeInfo(rt);
|
const RailtypeInfo *rti = GetRailTypeInfo(rt);
|
||||||
@@ -2240,10 +2248,6 @@ static void GetTileDesc_TunnelBridge(TileIndex tile, TileDesc *td)
|
|||||||
td->rail_speed = spd;
|
td->rail_speed = spd;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (tt == TRANSPORT_ROAD && !IsTunnel(tile)) {
|
|
||||||
uint16 spd = GetBridgeSpec(GetBridgeType(tile))->speed;
|
|
||||||
if (road_rt != INVALID_ROADTYPE && (td->road_speed == 0 || spd < td->road_speed)) td->road_speed = spd;
|
|
||||||
if (tram_rt != INVALID_ROADTYPE && (td->tram_speed == 0 || spd < td->tram_speed)) td->tram_speed = spd;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user