Be more permissive about vehicles when converting tunnel/bridge railtype

This commit is contained in:
Jonathan G Rennison
2023-05-07 19:07:48 +01:00
parent 62ecad1b63
commit c14085f425

View File

@@ -2612,7 +2612,10 @@ CommandCost CmdConvertRail(TileIndex tile, DoCommandFlag flags, uint32 p1, uint3
/* When not converting rail <-> el. rail, any vehicle cannot be in tunnel/bridge */
if (!IsCompatibleRail(type, totype) || !IsCompatibleRail(secondary_type, totype)) {
CommandCost ret = TunnelBridgeIsFree(tile, endtile);
CommandCost ret = EnsureNoIncompatibleRailtypeTrainOnTrackBits(tile, TRACK_BIT_MASK | TRACK_BIT_WORMHOLE, totype);
if (ret.Succeeded()) {
ret = EnsureNoIncompatibleRailtypeTrainOnTrackBits(endtile, TRACK_BIT_MASK | TRACK_BIT_WORMHOLE, totype);
}
if (ret.Failed()) {
error = ret;
continue;
@@ -2910,7 +2913,10 @@ CommandCost CmdConvertRailTrack(TileIndex tile, DoCommandFlag flags, uint32 p1,
if (!IsCompatibleRail(type, totype)) {
CommandCost ret;
if (across) {
ret = TunnelBridgeIsFree(tile, endtile, nullptr, TBIFM_PRIMARY_ONLY);
ret = EnsureNoIncompatibleRailtypeTrainOnTrackBits(tile, track_bits | TRACK_BIT_WORMHOLE, totype);
if (ret.Succeeded()) {
ret = EnsureNoIncompatibleRailtypeTrainOnTrackBits(endtile, GetPrimaryTunnelBridgeTrackBits(endtile) | TRACK_BIT_WORMHOLE, totype);
}
} else {
ret = EnsureNoIncompatibleRailtypeTrainOnTrackBits(tile, track_bits, totype);
}