From 0aa27cfda30ac7f11c16089b1f1aa9ff70b46d42 Mon Sep 17 00:00:00 2001 From: Jonathan G Rennison Date: Wed, 6 Dec 2023 21:04:42 +0000 Subject: [PATCH] Fix ctrl-click signal cycling not checking custom signal style restrictions --- src/rail_cmd.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/rail_cmd.cpp b/src/rail_cmd.cpp index d71dd2e332..ef6bfa2fe7 100644 --- a/src/rail_cmd.cpp +++ b/src/rail_cmd.cpp @@ -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(); }