Be more permissive about vehicles when converting tunnel/bridge railtype

pull/519/head
Jonathan G Rennison 1 year ago
parent 62ecad1b63
commit c14085f425

@ -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);
}

Loading…
Cancel
Save