Fix ctrl-click signal cycling not checking custom signal style restrictions

This commit is contained in:
Jonathan G Rennison
2023-12-06 21:04:42 +00:00
parent b6768e4f5a
commit 0aa27cfda3

View File

@@ -1755,6 +1755,14 @@ CommandCost CmdBuildSingleSignal(TileIndex tile, DoCommandFlag flags, uint32 p1,
}
} else {
if (_ctrl_pressed && GetSignalStyle(tile, track) != 0) {
SignalType new_sigtype = GetSignalType(tile, track);
do {
new_sigtype = NextSignalType(new_sigtype, which_signals);
} while (_settings_game.vehicle.train_braking_model == TBM_REALISTIC && IsSignalTypeUnsuitableForRealisticBraking(new_sigtype));
if (!is_style_usable(GetSignalVariant(tile, track), GetSignalStyle(tile, track), 1 << new_sigtype)) return_cmd_error(STR_ERROR_UNSUITABLE_SIGNAL_TYPE);
}
/* it is free to change orientation/pre-exit-combo signals */
cost = CommandCost();
}