From ea15c97c5f120575aa77fb79261df0fb263f3d2e Mon Sep 17 00:00:00 2001 From: Resurrected Trader Date: Sat, 10 Oct 2026 22:13:18 +0100 Subject: [PATCH] Fix UNITS_IsAnimModeGetHit testing the block modes UNITS_IsAnimModeGetHit compared against PLRMODE_BLOCK / MONMODE_BLOCK, which makes it a copy of UNITS_IsAnimModeBlocking. Since the block test runs first in UNITS_UpdateAnimRateAndVelocity, the get-hit branch was unreachable and a get-hit animation ran at the default rate instead of (faster hit recovery + 50)%. In 1.10f the check is inlined in UNITS_UpdateAnimRateAndVelocity (D2Common.0x6FDBF050): after the block test (player 9 / monster 6) it compares player mode 4 (0x6FDBF285) and monster mode 3 (0x6FDBF212), then reads STAT_ITEM_FASTERGETHITRATE and adds 50. 1.14d does the same (Game.exe.0x624095 / 0x62409A). Co-Authored-By: Claude Opus 5.5 (1M context) --- source/D2Common/src/Units/Units.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/D2Common/src/Units/Units.cpp b/source/D2Common/src/Units/Units.cpp index d1346b73a..635fa90b1 100644 --- a/source/D2Common/src/Units/Units.cpp +++ b/source/D2Common/src/Units/Units.cpp @@ -1528,9 +1528,9 @@ BOOL UNITS_IsAnimModeGetHit(int nUnitType, int nAnimMode) switch (nUnitType) { case UNIT_PLAYER: - return nAnimMode == PLRMODE_BLOCK; + return nAnimMode == PLRMODE_GETHIT; case UNIT_MONSTER: - return nAnimMode == MONMODE_BLOCK; + return nAnimMode == MONMODE_GETHIT; default: return FALSE;