From c667e69554d116c6294394f33eb828f03393b98b Mon Sep 17 00:00:00 2001 From: Anders Jenbo Date: Wed, 13 Apr 2022 04:19:29 +0200 Subject: [PATCH] [gamepad] Fix repeated spell casting getting stuck if there is no target --- Source/controls/plrctrls.h | 1 + Source/track.cpp | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/Source/controls/plrctrls.h b/Source/controls/plrctrls.h index 913005bfd..f3f382f09 100644 --- a/Source/controls/plrctrls.h +++ b/Source/controls/plrctrls.h @@ -72,6 +72,7 @@ void PerformPrimaryAction(); // Open chests, doors, pickup items. void PerformSecondaryAction(); +void UpdateSpellTarget(spell_id spell); bool TryDropItem(); void InvalidateInventorySlot(); void FocusOnInventory(); diff --git a/Source/track.cpp b/Source/track.cpp index aaab9e94a..da22496d1 100644 --- a/Source/track.cpp +++ b/Source/track.cpp @@ -97,7 +97,10 @@ void RepeatMouseAction() NetSendCmdParam1(true, rangedAttack ? CMD_RATTACKPID : CMD_ATTACKPID, pcursplr); break; case MouseActionType::Spell: - CheckPlrSpell(true); + if (ControlMode != ControlTypes::KeyboardAndMouse) { + UpdateSpellTarget(MyPlayer->_pRSpell); + } + CheckPlrSpell(ControlMode == ControlTypes::KeyboardAndMouse); break; case MouseActionType::SpellMonsterTarget: if (pcursmonst != -1)