From dd1e7160820e4de517fab6aad5a569560456be1a Mon Sep 17 00:00:00 2001 From: Mitchell Richters Date: Fri, 13 Aug 2021 15:18:02 +1000 Subject: [PATCH] - Blood: Extend backported voodoo doll fix from BloodGDX to always use `kQAVVDIDLE2` when the player is moving. As `kQAVVDIDLE2` has moving frames and is not a static idle animation, call it via `StartQAV()` so that `weaponTimer` is started. --- source/games/blood/src/weapon.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/source/games/blood/src/weapon.cpp b/source/games/blood/src/weapon.cpp index 8671189a9..cb3184ffb 100644 --- a/source/games/blood/src/weapon.cpp +++ b/source/games/blood/src/weapon.cpp @@ -984,8 +984,8 @@ void WeaponUpdateState(PLAYER *pPlayer) pPlayer->weaponQav = kQAVFLARIDLE; break; case kWeapVoodooDoll: - if (pXSprite->height < 256 && abs(pPlayer->swayHeight) > 16) - pPlayer->weaponQav = kQAVVDIDLE2; + if (pXSprite->height < 256 && pPlayer->swayHeight != 0) + StartQAV(pPlayer, kQAVVDIDLE2); else pPlayer->weaponQav = kQAVVDIDLE1; break; @@ -2024,6 +2024,7 @@ void WeaponProcess(PLAYER *pPlayer) { pPlayer->weaponTimer -= 4; bool bShoot = pPlayer->input.actions & SB_FIRE; bool bShoot2 = pPlayer->input.actions & SB_ALTFIRE; + if ((bShoot || bShoot2) && pPlayer->weaponQav == kQAVVDIDLE2) pPlayer->weaponTimer = 0; if (pPlayer->qavLoop && pPlayer->pXSprite->health > 0) { if (bShoot && CheckAmmo(pPlayer, pPlayer->weaponAmmo, 1))