From 51a1eeb9de81049dff28b09b3c6a49cd82975712 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Thu, 4 Jun 2020 23:18:31 -0700 Subject: [PATCH] sigh --- code/_globalvars/lists/client.dm | 2 ++ code/modules/client/preferences.dm | 6 +++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/code/_globalvars/lists/client.dm b/code/_globalvars/lists/client.dm index 5181d870c4..3c7429ff09 100644 --- a/code/_globalvars/lists/client.dm +++ b/code/_globalvars/lists/client.dm @@ -1,5 +1,7 @@ GLOBAL_LIST_EMPTY(classic_keybinding_list_by_key) GLOBAL_LIST_EMPTY(hotkey_keybinding_list_by_key) +GLOBAL_LIST_EMPTY(classic_keybinding_modless_defaults) +GLOBAL_LIST_EMPTY(hotkey_keybinding_modless_defaults) GLOBAL_LIST_EMPTY(keybindings_by_name) // This is a mapping from JS keys to Byond - ref: https://keycode.info/ diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 0a7d838aa2..800d29d77a 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -1104,9 +1104,12 @@ GLOBAL_LIST_EMPTY(preferences_datums) holding down shift for sprint. Each keybind can only have one independent binding, and each key can only have one keybind independently bound to it." // Create an inverted list of keybindings -> key var/list/user_binds = list() + var/list/user_modless_binds = list() for (var/key in key_bindings) for(var/kb_name in key_bindings[key]) user_binds[kb_name] += list(key) + for (var/key in modless_key_bindings) + user_modless_binds[modless_key_bindings[key]] = key var/list/kb_categories = list() // Group keybinds by category @@ -1120,7 +1123,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "

[category]

" for (var/i in kb_categories[category]) var/datum/keybinding/kb = i - var/current_independent_binding = modless_key_bindings[kb.name] || "Unbound" + var/current_independent_binding = user_modless_binds[kb.name] || "Unbound" if(!length(user_binds[kb.name])) dat += "[kb.full_name] Unbound" var/list/default_keys = hotkeys ? kb.hotkey_keys : kb.classic_keys @@ -2447,6 +2450,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) return hotkeys = (choice == "Hotkey") key_bindings = (hotkeys) ? deepCopyList(GLOB.hotkey_keybinding_list_by_key) : deepCopyList(GLOB.classic_keybinding_list_by_key) + modless_key_bindings = (hotkeys) ? GLOB.hotkey_modless_keybinding_defaults.Copy() : GLOB.classic_modless_keybinding_defaults.Copy() user.client.update_movement_keys() if("chat_on_map")