diff --git a/src/game/boe.startup.cpp b/src/game/boe.startup.cpp index 0a68edb6..586eee85 100644 --- a/src/game/boe.startup.cpp +++ b/src/game/boe.startup.cpp @@ -80,6 +80,9 @@ void handle_startup_button_click(eStartButton btn, eKeyMod mods) { case STARTBTN_JOIN: if(!party_in_memory) { if(mod_contains(mods, mod_alt)) { + // This is a special case fix for issue #476: + kb.flushModifiers(); + force_party = true; start_new_game(true); } else { diff --git a/src/tools/keymods.cpp b/src/tools/keymods.cpp index 8dba0c93..f8a62b32 100644 --- a/src/tools/keymods.cpp +++ b/src/tools/keymods.cpp @@ -91,3 +91,10 @@ bool keymods_t::handleModifier(const sf::Event& evt) { } return true; } + +void keymods_t::flushModifiers() { + alt = false; + ctrl = false, + shift = false, + meta = false; +} \ No newline at end of file diff --git a/src/tools/keymods.hpp b/src/tools/keymods.hpp index 02127844..daa3dd8b 100644 --- a/src/tools/keymods.hpp +++ b/src/tools/keymods.hpp @@ -26,6 +26,7 @@ public: bool isLeftPressed() const; bool isRightPressed() const; bool handleModifier(const sf::Event& evt); + void flushModifiers(); }; extern keymods_t kb;