Add setting to invert Fn behaviour when building signals by dragging

This commit is contained in:
dP
2024-02-22 19:34:47 +05:30
parent f9b82cebae
commit d31b26b189
8 changed files with 15 additions and 6 deletions
+2 -2
View File
@@ -408,13 +408,13 @@ static void HandleAutoSignalPlacement()
if (_remove_button_clicked) {
// TODO invert ctrl option
Command<CMD_REMOVE_SIGNAL_TRACK>::Post(STR_ERROR_CAN_T_REMOVE_SIGNALS_FROM, CcPlaySound_CONSTRUCTION_RAIL,
TileVirtXY(_thd.selstart.x, _thd.selstart.y), TileVirtXY(_thd.selend.x, _thd.selend.y), track, citymania::_fn_mod);
TileVirtXY(_thd.selstart.x, _thd.selstart.y), TileVirtXY(_thd.selend.x, _thd.selend.y), track, citymania::ChooseSignalDragBehaviour());
} else {
bool sig_gui = FindWindowById(WC_BUILD_SIGNAL, 0) != nullptr;
SignalType sigtype = sig_gui ? _cur_signal_type : _settings_client.gui.default_signal_type;
SignalVariant sigvar = sig_gui ? _cur_signal_variant : (TimerGameCalendar::year < _settings_client.gui.semaphore_build_before ? SIG_SEMAPHORE : SIG_ELECTRIC);
Command<CMD_BUILD_SIGNAL_TRACK>::Post(STR_ERROR_CAN_T_BUILD_SIGNALS_HERE, CcPlaySound_CONSTRUCTION_RAIL,
TileVirtXY(_thd.selstart.x, _thd.selstart.y), TileVirtXY(_thd.selend.x, _thd.selend.y), track, sigtype, sigvar, false, citymania::_fn_mod, !_settings_client.gui.drag_signals_fixed_distance, _settings_client.gui.drag_signals_density);
TileVirtXY(_thd.selstart.x, _thd.selstart.y), TileVirtXY(_thd.selend.x, _thd.selend.y), track, sigtype, sigvar, false, citymania::ChooseSignalDragBehaviour(), !_settings_client.gui.drag_signals_fixed_distance, _settings_client.gui.drag_signals_density);
}
}