Add setting to allow track editing to ignore realistic braking restrictions

This commit is contained in:
Jonathan G Rennison
2024-05-28 17:13:09 +01:00
parent 7874fb7a12
commit f2f8692fb2
5 changed files with 17 additions and 3 deletions

View File

@@ -1353,7 +1353,7 @@ Train *GetTrainForReservation(TileIndex tile, Track track)
CommandCost CheckTrainReservationPreventsTrackModification(TileIndex tile, Track track)
{
if (_settings_game.vehicle.train_braking_model == TBM_REALISTIC) {
if (_settings_game.vehicle.train_braking_model == TBM_REALISTIC && !_settings_game.vehicle.track_edit_ignores_realistic_braking) {
return CheckTrainReservationPreventsTrackModification(GetTrainForReservation(tile, track));
}
return CommandCost();
@@ -1361,7 +1361,8 @@ CommandCost CheckTrainReservationPreventsTrackModification(TileIndex tile, Track
CommandCost CheckTrainReservationPreventsTrackModification(const Train *v)
{
if (_settings_game.vehicle.train_braking_model == TBM_REALISTIC && v != nullptr && v->UsingRealisticBraking() && (v->cur_speed > 0 || !(v->vehstatus & (VS_STOPPED | VS_CRASHED)))) {
if (_settings_game.vehicle.train_braking_model == TBM_REALISTIC && !_settings_game.vehicle.track_edit_ignores_realistic_braking &&
v != nullptr && v->UsingRealisticBraking() && (v->cur_speed > 0 || !(v->vehstatus & (VS_STOPPED | VS_CRASHED)))) {
return_cmd_error(STR_ERROR_CANNOT_MODIFY_TRACK_TRAIN_APPROACHING);
}
return CommandCost();
@@ -1376,7 +1377,7 @@ static Vehicle *TrainInTunnelBridgePreventsTrackModificationEnum(Vehicle *v, voi
CommandCost CheckTrainInTunnelBridgePreventsTrackModification(TileIndex start, TileIndex end)
{
if (_settings_game.vehicle.train_braking_model != TBM_REALISTIC) return CommandCost();
if (_settings_game.vehicle.train_braking_model != TBM_REALISTIC || _settings_game.vehicle.track_edit_ignores_realistic_braking) return CommandCost();
if (HasVehicleOnPos(start, VEH_TRAIN, nullptr, &TrainInTunnelBridgePreventsTrackModificationEnum) ||
HasVehicleOnPos(end, VEH_TRAIN, nullptr, &TrainInTunnelBridgePreventsTrackModificationEnum)) {