diff --git a/Source/scrollrt.cpp b/Source/scrollrt.cpp index fb1096964..5a422f4b9 100644 --- a/Source/scrollrt.cpp +++ b/Source/scrollrt.cpp @@ -102,7 +102,7 @@ static void scrollrt_draw_cursor_item() assert(! sgdwCursWdt); - if (pcurs <= 0 || cursW == 0 || cursH == 0 || sgbControllerActive) { + if (pcurs <= 0 || cursW == 0 || cursH == 0 || (sgbControllerActive && !invflag && !chrflag)) { return; } diff --git a/SourceX/controls/plrctrls.cpp b/SourceX/controls/plrctrls.cpp index fc0f6e619..df46902e7 100644 --- a/SourceX/controls/plrctrls.cpp +++ b/SourceX/controls/plrctrls.cpp @@ -145,11 +145,13 @@ bool checkMonstersNearby(bool attack) // hide the cursor when we start walking via keyboard/controller void HideCursor() { - if (pcurs >= CURSOR_FIRSTITEM) // if we don't drop the item on cursor, it will be destroyed + if (pcurs >= CURSOR_FIRSTITEM) // drop item to allow us to pick up other items DropItemBeforeTrig(); SetCursorPos(320, 180); MouseX = 320; MouseY = 180; + if (pcurs == CURSOR_REPAIR || pcurs == CURSOR_RECHARGE) + SetCursor_(CURSOR_HAND); sgbControllerActive = true; } @@ -625,6 +627,8 @@ void performPrimaryAction() CheckIdentify(myplr, pcursinvitem); else if (pcurs == CURSOR_REPAIR) DoRepair(myplr, pcursinvitem); + else if (pcurs == CURSOR_RECHARGE) + DoRecharge(myplr, pcursinvitem); else CheckInvItem(); }