diff --git a/Packaging/resources/assets/ui_art/button.png b/Packaging/resources/assets/ui_art/button.png index 96f908ca8..249964107 100644 Binary files a/Packaging/resources/assets/ui_art/button.png and b/Packaging/resources/assets/ui_art/button.png differ diff --git a/Source/controls/plrctrls.cpp b/Source/controls/plrctrls.cpp index 585d74cff..29ab38442 100644 --- a/Source/controls/plrctrls.cpp +++ b/Source/controls/plrctrls.cpp @@ -31,6 +31,8 @@ bool sgbControllerActive = false; Point speedspellscoords[50]; int speedspellcount = 0; int pcurstrig = -1; +int pcursmissile = -1; +quest_id pcursquest = Q_INVALID; /** * Native game menu, controlled by simulating a keyboard. @@ -374,9 +376,6 @@ void FindActor() CheckPlayerNearby(); } -int pcursmissile; -quest_id pcursquest; - void FindTrigger() { int rotations = 0; diff --git a/Source/controls/touch/renderers.cpp b/Source/controls/touch/renderers.cpp index 216437da5..a01cc0519 100644 --- a/Source/controls/touch/renderers.cpp +++ b/Source/controls/touch/renderers.cpp @@ -377,32 +377,37 @@ VirtualGamepadButtonType PrimaryActionButtonRenderer::GetInventoryButtonType() } extern int pcurstrig; +extern int pcursmissile; +extern quest_id pcursquest; VirtualGamepadButtonType SecondaryActionButtonRenderer::GetButtonType() { - if (pcurstrig != -1) + if (pcursmissile != -1 || pcurstrig != -1 || pcursquest != Q_INVALID) { return GetStairsButtonType(virtualPadButton->isHeld); + } if (InGameMenu() || QuestLogIsOpen || sbookflag) return GetBlankButtonType(virtualPadButton->isHeld); if (pcursobj != -1) return GetObjectButtonType(virtualPadButton->isHeld); if (pcursitem != -1) return GetItemButtonType(virtualPadButton->isHeld); - if (pcurs > CURSOR_HAND && pcurs < CURSOR_FIRSTITEM) - return GetApplyButtonType(virtualPadButton->isHeld); - - if (pcursinvitem != -1) { - Item *item; - if (pcursinvitem < INVITEM_INV_FIRST) - item = &MyPlayer->InvBody[pcursinvitem]; - else if (pcursinvitem <= INVITEM_INV_LAST) - item = &MyPlayer->InvList[pcursinvitem - INVITEM_INV_FIRST]; - else - item = &MyPlayer->SpdList[pcursinvitem - INVITEM_BELT_FIRST]; - - if (!item->IsScroll() || !spelldata[item->_iSpell].sTargeted) { - if (!item->isEquipment()) { - return GetApplyButtonType(virtualPadButton->isHeld); + if (invflag) { + if (pcurs > CURSOR_HAND && pcurs < CURSOR_FIRSTITEM) + return GetApplyButtonType(virtualPadButton->isHeld); + + if (pcursinvitem != -1) { + Item *item; + if (pcursinvitem < INVITEM_INV_FIRST) + item = &MyPlayer->InvBody[pcursinvitem]; + else if (pcursinvitem <= INVITEM_INV_LAST) + item = &MyPlayer->InvList[pcursinvitem - INVITEM_INV_FIRST]; + else + item = &MyPlayer->SpdList[pcursinvitem - INVITEM_BELT_FIRST]; + + if (!item->IsScroll() || !spelldata[item->_iSpell].sTargeted) { + if (!item->isEquipment()) { + return GetApplyButtonType(virtualPadButton->isHeld); + } } } } @@ -415,7 +420,7 @@ VirtualGamepadButtonType SpellActionButtonRenderer::GetButtonType() if (pcurs >= CURSOR_FIRSTITEM) return GetDropButtonType(virtualPadButton->isHeld); - if (pcursinvitem != -1 && pcurs == CURSOR_HAND) { + if (invflag && pcursinvitem != -1 && pcurs == CURSOR_HAND) { return GetEquipButtonType(virtualPadButton->isHeld); }