From 02a1224535c56754cdcaa834f1fc1b7b23d64976 Mon Sep 17 00:00:00 2001 From: dP Date: Wed, 22 Sep 2021 18:28:40 +0300 Subject: [PATCH] Fix order modifier settings --- src/lang/english.txt | 30 ++++---- src/lang/german.txt | 29 ++++---- src/order_gui.cpp | 2 +- src/table/settings/citymania_settings.ini | 83 ++++++++++------------- 4 files changed, 68 insertions(+), 76 deletions(-) diff --git a/src/lang/english.txt b/src/lang/english.txt index 940b655b13..7f421e915b 100644 --- a/src/lang/english.txt +++ b/src/lang/english.txt @@ -1834,20 +1834,6 @@ STR_CONFIG_SETTING_ORDER_SHORTCUTS :{ORANGE}Order's STR_CONFIG_SETTING_AUTOSET_NOLOAD_ON_TRANSFER :"Transfer" orders are "No Loading" by default: {STRING2} STR_CONFIG_SETTING_AUTOSET_NOLOAD_ON_UNLOAD :"Unload all" orders are "No Loading" by default: {STRING2} -STR_CONFIG_SETTING_CTRL_GOTOSHORTCUT_CTRLLCLICK :ctrl+left-click: {STRING2} -STR_CONFIG_SETTING_CTRL_GOTOSHORTCUT_CTRLSHIFTLCLICK :ctrl+shift+left-click: {STRING2} -STR_CONFIG_SETTING_CTRL_GOTOSHORTCUT_SHIFTLCLICK :shift+left-click: {STRING2} -STR_CONFIG_SETTING_CTRL_GOTOSHORTCUT_ALTLCLICK :alt+left-click: {STRING2} -STR_CONFIG_SETTING_CTRL_GOTOSHORTCUT_ALTSHIFTCLICK :alt+shift+left-click: {STRING2} -STR_CONFIG_SETTING_CTRL_GOTOSHORTCUT_CTRLALTLCLICK :ctrl+alt+left-click: {STRING2} -STR_CONFIG_SETTING_CTRL_GOTOSHORTOPTS_NONE :do nothing -STR_CONFIG_SETTING_CTRL_GOTOSHORTOPTS_FULL_LOAD_ANY :Full load any cargo -STR_CONFIG_SETTING_CTRL_GOTOSHORTOPTS_TRANSFER_CARGO :Transfer cargo -STR_CONFIG_SETTING_CTRL_GOTOSHORTOPTS_UNLOAD_ALL :Force unload of all cargo -STR_CONFIG_SETTING_CTRL_GOTOSHORTOPTS_FEEDERLOAD :Feeder Load (replace first order) -STR_CONFIG_SETTING_CTRL_GOTOSHORTOPTS_FEEDERDROP :Feeder Unload (replace last order) -STR_CONFIG_SETTING_CTRL_GOTOSHORTOPTS_NO_LOAD :Do not load any cargo - # Config errors STR_CONFIG_ERROR :{WHITE}Error with the configuration file... STR_CONFIG_ERROR_ARRAY :{WHITE}... error in array '{RAW_STRING}' @@ -5664,4 +5650,18 @@ STR_CM_LOGIN_WINDOW_PASSWORD_DISPLAY :{WHITE}{STRING} STR_CM_NETWORK_COMPANY_LIST_NEW_COMPANY :New company STR_CM_NETWORK_COMPANY_LIST_SPECTATE :Spectate -STR_CM_RAIL_TOOLBAR_TOOLTIP_BLUEPRINT : {BLACK}Rail blueprint tool (copy-paste) \ No newline at end of file +STR_CM_RAIL_TOOLBAR_TOOLTIP_BLUEPRINT : {BLACK}Rail blueprint tool (copy-paste) + +STR_CM_CONFIG_SETTING_ORDER_MOD_CTRL :Ctrl+click: {STRING2} +STR_CM_CONFIG_SETTING_ORDER_MOD_SHIFT :Shift+click: {STRING2} +STR_CM_CONFIG_SETTING_ORDER_MOD_CTRL_SHIFT :Ctrl+Shift+lick: {STRING2} +STR_CM_CONFIG_SETTING_ORDER_MOD_ALT :Alt+Click: {STRING2} +STR_CM_CONFIG_SETTING_ORDER_MOD_ALT_SHIFT :Alt+Shift+click: {STRING2} +STR_CM_CONFIG_SETTING_ORDER_MOD_ALT_CTRL :Ctrl+Alt+click: {STRING2} +STR_CM_CONFIG_SETTING_ORDER_MOD_ACTION_NONE :do nothing +STR_CM_CONFIG_SETTING_ORDER_MOD_ACTION_FULL_LOAD_ANY :Full load any cargo +STR_CM_CONFIG_SETTING_ORDER_MOD_ACTION_TRANSFER_CARGO :Transfer cargo +STR_CM_CONFIG_SETTING_ORDER_MOD_ACTION_UNLOAD_ALL :Force unload of all cargo +STR_CM_CONFIG_SETTING_ORDER_MOD_ACTION_FEEDER_LOAD :Feeder Load (replace first order) +STR_CM_CONFIG_SETTING_ORDER_MOD_ACTION_FEEDER_UNLOAD :Feeder Unload (replace last order) +STR_CM_CONFIG_SETTING_ORDER_MOD_ACTION_NO_LOAD :Do not load any cargo diff --git a/src/lang/german.txt b/src/lang/german.txt index 32fc41086c..76eb55416e 100644 --- a/src/lang/german.txt +++ b/src/lang/german.txt @@ -1834,20 +1834,6 @@ STR_CONFIG_SETTING_CTRL_ENABLE_CTRLCLICK_STARTSTOP :Strg+Linksklick STR_CONFIG_SETTING_AUTOSET_NOLOAD_ON_TRANSFER :"Umladen"-Aufträge sind standardmäßig "Nicht beladen": {STRING} STR_CONFIG_SETTING_AUTOSET_NOLOAD_ON_UNLOAD :"Alles entladen"-Aufträge sind standardmäßig "Nicht beladen": {STRING} -STR_CONFIG_SETTING_CTRL_GOTOSHORTCUT_CTRLLCLICK :Strg+Linksklick: {STRING} -STR_CONFIG_SETTING_CTRL_GOTOSHORTCUT_CTRLSHIFTLCLICK :Strg+Umschalt+Linksklick: {STRING} -STR_CONFIG_SETTING_CTRL_GOTOSHORTCUT_SHIFTLCLICK :Umschalt+Linksklick: {STRING} -STR_CONFIG_SETTING_CTRL_GOTOSHORTCUT_ALTLCLICK :Alt+Linksklick: {STRING} -STR_CONFIG_SETTING_CTRL_GOTOSHORTCUT_ALTSHIFTCLICK :Alt+Umschalt+Linksklick: {STRING} -STR_CONFIG_SETTING_CTRL_GOTOSHORTCUT_CTRLALTLCLICK :Strg+Alt+Linksklick: {STRING} -STR_CONFIG_SETTING_CTRL_GOTOSHORTOPTS_NONE :Nichts machen -STR_CONFIG_SETTING_CTRL_GOTOSHORTOPTS_FULL_LOAD_ANY :Mit beliebiger Fracht voll beladen -STR_CONFIG_SETTING_CTRL_GOTOSHORTOPTS_TRANSFER_CARGO :Fracht umladen -STR_CONFIG_SETTING_CTRL_GOTOSHORTOPTS_UNLOAD_ALL :Entladen jeder Fracht erzwingen -STR_CONFIG_SETTING_CTRL_GOTOSHORTOPTS_FEEDERLOAD :Zulieferer-Beladung (ersten Auftrag ersetzen) -STR_CONFIG_SETTING_CTRL_GOTOSHORTOPTS_FEEDERDROP :Zulieferer-Entladung (letzten Auftrag ersetzen) -STR_CONFIG_SETTING_CTRL_GOTOSHORTOPTS_NO_LOAD :Mit keiner Fracht beladen - # Config errors STR_CONFIG_ERROR :{WHITE}Fehler in der Konfigurations-Datei ... STR_CONFIG_ERROR_ARRAY :{WHITE}... Fehler im Array „{STRING}“ @@ -5658,3 +5644,18 @@ STR_CM_LOGIN_WINDOW_CHANGE_PASSWORD_HELPTEXT :{BLACK}Passwort ändern STR_CM_LOGIN_WINDOW_SIGN_IN_HELPTEXT :{BLACK}Login abschicken (sie müssen auf dem richtigen Community-Server sein) STR_CM_LOGIN_WINDOW_USERNAME_DISPLAY :{WHITE}{STRING} STR_CM_LOGIN_WINDOW_PASSWORD_DISPLAY :{WHITE}{STRING} + +STR_CM_CONFIG_SETTING_ORDER_MOD_CTRL :Strg+Linksklick: {STRING} +STR_CM_CONFIG_SETTING_ORDER_MOD_SHIFT :Umschalt+Linksklick: {STRING} +STR_CM_CONFIG_SETTING_ORDER_MOD_CTRL_SHIFT :Strg+Umschalt+Linksklick: {STRING} +STR_CM_CONFIG_SETTING_ORDER_MOD_ALT :Alt+Linksklick: {STRING} +STR_CM_CONFIG_SETTING_ORDER_MOD_ALT_SHIFT :Alt+Umschalt+Linksklick: {STRING} +STR_CM_CONFIG_SETTING_ORDER_MOD_ALT_CTRL :Strg+Alt+Linksklick: {STRING} +STR_CM_CONFIG_SETTING_ORDER_MOD_ACTIONS_NONE :Nichts machen +STR_CM_CONFIG_SETTING_ORDER_MOD_ACTIONS_FULL_LOAD_ANY :Mit beliebiger Fracht voll beladen +STR_CM_CONFIG_SETTING_ORDER_MOD_ACTIONS_TRANSFER_CARGO :Fracht umladen +STR_CM_CONFIG_SETTING_ORDER_MOD_ACTIONS_UNLOAD_ALL :Entladen jeder Fracht erzwingen +STR_CM_CONFIG_SETTING_ORDER_MOD_ACTIONS_FEEDER_LOAD :Zulieferer-Beladung (ersten Auftrag ersetzen) +STR_CM_CONFIG_SETTING_ORDER_MOD_ACTIONS_FEEDER_UNLOAD :Zulieferer-Entladung (letzten Auftrag ersetzen) +STR_CM_CONFIG_SETTING_ORDER_MOD_ACTIONS_NO_LOAD :Mit keiner Fracht beladen + diff --git a/src/order_gui.cpp b/src/order_gui.cpp index ffc256aeed..58565af42a 100644 --- a/src/order_gui.cpp +++ b/src/order_gui.cpp @@ -516,7 +516,7 @@ static std::pair GetOrderCmdFromTile(const Vehicle *v, Ti if (_alt_pressed) os = _settings_client.gui.cm_alt_shift_order_mod; else - os = _settings_client.gui.cm_ctrl_order_mod; + os = _settings_client.gui.cm_shift_order_mod; } else if (_alt_pressed) os = _settings_client.gui.cm_alt_order_mod; diff --git a/src/table/settings/citymania_settings.ini b/src/table/settings/citymania_settings.ini index 261aa3d1d6..eb3de56337 100644 --- a/src/table/settings/citymania_settings.ini +++ b/src/table/settings/citymania_settings.ini @@ -1,12 +1,15 @@ [pre-amble] static void cm_v_RedrawStatusBar(int32 p1); +static std::initializer_list _order_mod_actions{"nothing", "full_load", "transfer", "unload_all", "feeder_load", "feeder_unload", "no_load"}; + static const SettingVariant _citymania_settings_table[] = { [post-amble] }; [templates] SDTC_BOOL = SDTC_BOOL( $var, $flags, $def, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup), SDTC_VAR = SDTC_VAR( $var, $type, $flags, $def, $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup), +SDTC_OMANY = SDTC_OMANY( $var, $type, $flags, $def, $max, $full, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup), [validation] SDTC_VAR = static_assert($max <= MAX_$type, "Maximum value for $var exceeds storage size"); @@ -50,82 +53,70 @@ var = gui.cm_no_loading_on_unload_order def = true str = STR_CONFIG_SETTING_AUTOSET_NOLOAD_ON_UNLOAD -[SDTC_VAR] +[SDTC_OMANY] var = gui.cm_ctrl_order_mod type = SLE_UINT8 -guiflags = SGF_MULTISTRING +flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_GUI_DROPDOWN def = 1 -min = 0 max = 6 -interval = 1 -str = STR_CONFIG_SETTING_CTRL_GOTOSHORTCUT_CTRLLCLICK -strval = STR_CONFIG_SETTING_CTRL_GOTOSHORTOPTS_NONE -post_cb = [](auto) { MarkWholeScreenDirty(); } +full = _order_mod_actions +str = STR_CM_CONFIG_SETTING_ORDER_MOD_CTRL +strval = STR_CM_CONFIG_SETTING_ORDER_MOD_ACTION_NONE cat = SC_BASIC -[SDTC_VAR] +[SDTC_OMANY] var = gui.cm_shift_order_mod type = SLE_UINT8 -guiflags = SGF_MULTISTRING +flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_GUI_DROPDOWN def = 0 -min = 0 max = 6 -interval = 1 -str = STR_CONFIG_SETTING_CTRL_GOTOSHORTCUT_SHIFTLCLICK -strval = STR_CONFIG_SETTING_CTRL_GOTOSHORTOPTS_NONE -post_cb = [](auto) { MarkWholeScreenDirty(); } +full = _order_mod_actions +str = STR_CM_CONFIG_SETTING_ORDER_MOD_SHIFT +strval = STR_CM_CONFIG_SETTING_ORDER_MOD_ACTION_NONE cat = SC_BASIC -[SDTC_VAR] +[SDTC_OMANY] var = gui.cm_ctrl_shift_order_mod type = SLE_UINT8 -guiflags = SGF_MULTISTRING -def = 0 -min = 0 +flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_GUI_DROPDOWN +def = 2 max = 6 -interval = 1 -str = STR_CONFIG_SETTING_CTRL_GOTOSHORTCUT_CTRLSHIFTLCLICK -strval = STR_CONFIG_SETTING_CTRL_GOTOSHORTOPTS_NONE -post_cb = [](auto) { MarkWholeScreenDirty(); } +full = _order_mod_actions +str = STR_CM_CONFIG_SETTING_ORDER_MOD_CTRL_SHIFT +strval = STR_CM_CONFIG_SETTING_ORDER_MOD_ACTION_NONE cat = SC_BASIC -[SDTC_VAR] +[SDTC_OMANY] var = gui.cm_alt_order_mod type = SLE_UINT8 -guiflags = SGF_MULTISTRING -def = 0 -min = 0 +flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_GUI_DROPDOWN +def = 4 max = 6 -interval = 1 -str = STR_CONFIG_SETTING_CTRL_GOTOSHORTCUT_ALTLCLICK -strval = STR_CONFIG_SETTING_CTRL_GOTOSHORTOPTS_NONE -post_cb = [](auto) { MarkWholeScreenDirty(); } +full = _order_mod_actions +str = STR_CM_CONFIG_SETTING_ORDER_MOD_ALT +strval = STR_CM_CONFIG_SETTING_ORDER_MOD_ACTION_NONE cat = SC_BASIC -[SDTC_VAR] +[SDTC_OMANY] var = gui.cm_alt_shift_order_mod type = SLE_UINT8 -guiflags = SGF_MULTISTRING -def = 0 -min = 0 +flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_GUI_DROPDOWN +def = 3 max = 6 -interval = 1 -str = STR_CONFIG_SETTING_CTRL_GOTOSHORTCUT_ALTSHIFTCLICK -strval = STR_CONFIG_SETTING_CTRL_GOTOSHORTOPTS_NONE -post_cb = [](auto) { MarkWholeScreenDirty(); } +full = _order_mod_actions +str = STR_CM_CONFIG_SETTING_ORDER_MOD_ALT_SHIFT +strval = STR_CM_CONFIG_SETTING_ORDER_MOD_ACTION_NONE cat = SC_BASIC -[SDTC_VAR] +[SDTC_OMANY] var = gui.cm_alt_ctrl_order_mod type = SLE_UINT8 -guiflags = SGF_MULTISTRING -def = 0 -min = 0 +flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_GUI_DROPDOWN +def = 5 max = 6 -interval = 1 -str = STR_CONFIG_SETTING_CTRL_GOTOSHORTCUT_CTRLALTLCLICK -strval = STR_CONFIG_SETTING_CTRL_GOTOSHORTOPTS_NONE -post_cb = [](auto) { MarkWholeScreenDirty(); } +full = _order_mod_actions +str = STR_CM_CONFIG_SETTING_ORDER_MOD_ALT_CTRL +strval = STR_CM_CONFIG_SETTING_ORDER_MOD_ACTION_NONE cat = SC_BASIC [SDTC_BOOL]