diff options
-rw-r--r-- | src/doom/m_menu.c | 14 | ||||
-rw-r--r-- | src/strife/m_menu.c | 12 |
2 files changed, 23 insertions, 3 deletions
diff --git a/src/doom/m_menu.c b/src/doom/m_menu.c index 233fe641..4951d9a6 100644 --- a/src/doom/m_menu.c +++ b/src/doom/m_menu.c @@ -1586,9 +1586,19 @@ boolean M_Responder (event_t* ev) if (savegamestrings[saveSlot][0]) M_DoSave(saveSlot); break; - + default: - // Entering a character - use the 'ch' value, not the key + // This is complicated. + // Vanilla has a bug where the shift key is ignored when entering + // a savegame name. If vanilla_keyboard_mapping is on, we want + // to emulate this bug by using 'data1'. But if it's turned off, + // it implies the user doesn't care about Vanilla emulation: just + // use the correct 'data2'. + + if (vanilla_keyboard_mapping) + { + ch = key; + } ch = toupper(ch); diff --git a/src/strife/m_menu.c b/src/strife/m_menu.c index 6426232f..e278bc74 100644 --- a/src/strife/m_menu.c +++ b/src/strife/m_menu.c @@ -1869,7 +1869,17 @@ boolean M_Responder (event_t* ev) break; default: - // Entering a character - use the 'ch' value, not the key + // This is complicated. + // Vanilla has a bug where the shift key is ignored when entering + // a savegame name. If vanilla_keyboard_mapping is on, we want + // to emulate this bug by using 'data1'. But if it's turned off, + // it implies the user doesn't care about Vanilla emulation: just + // use the correct 'data2'. + + if (vanilla_keyboard_mapping) + { + ch = key; + } ch = toupper(ch); |