From 24d5fb09da679e2f62737678ad21668b10fa49a9 Mon Sep 17 00:00:00 2001
From: Finbar Crago <finbar@crago.email>
Date: Thu, 28 Jun 2018 22:55:02 +1000
Subject: [PATCH] fix crash on simultaneous key presses

---
 apps/openmw/mwgui/quickkeysmenu.cpp | 20 ++++++--------------
 1 file changed, 6 insertions(+), 14 deletions(-)

diff --git a/apps/openmw/mwgui/quickkeysmenu.cpp b/apps/openmw/mwgui/quickkeysmenu.cpp
index b2bf9df0e..4c5a7bf16 100644
--- a/apps/openmw/mwgui/quickkeysmenu.cpp
+++ b/apps/openmw/mwgui/quickkeysmenu.cpp
@@ -303,7 +303,8 @@ namespace MWGui
 
     void QuickKeysMenu::activateQuickKey(int index)
     {
-        assert(index > 0);
+        assert(index >= 1 && index <= 9);
+
         struct keyData *key = &mKey[index-1];
 
         MWWorld::Ptr player = MWMechanics::getPlayer();
@@ -318,15 +319,12 @@ namespace MWGui
 
         bool isReturnNeeded = playerStats.isParalyzed() || playerStats.isDead();
 
-        if (isReturnNeeded && key->type != Type_Item)
-        {
+        if (isReturnNeeded)
             return;
-        }
-        else if(isDelayNeeded && key->type != Type_Item)
-        {
+
+        else if (isDelayNeeded)
             mActivated = key;
-            return;
-        }
+
         else
             mActivated = nullptr;
 
@@ -367,12 +365,6 @@ namespace MWGui
 
                 // delay weapon switching if player is busy
                 if (isDelayNeeded && (isWeapon || isTool))
-                {
-                    mActivated = key;
-                    return;
-                }
-                // disable weapon switching if player is dead or paralyzed
-                else if (isReturnNeeded && (isWeapon || isTool))
                 {
                     return;
                 }