Add setting to allow track editing to ignore realistic braking restrictions
This commit is contained in:
@@ -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)) {
|
||||
|
Reference in New Issue
Block a user