REDIVIVUS

Proposals / #1355

Type the monster animation updater inputs as a unit and animation-table entry

checked · by eejitgames · submitted 2026-11-06

CLIENT_UpdateMonsterAnimByMode (004b1280) takes a unit and an animation-table entry, not a path pointer and integer. Its sole caller 004b1516 passes the same unit held in ESI and the entry returned by MONSTER_GetAnimModeDataEntry. The body reads unit type/class/mode at +0/+4/+10, passes that pointer to IsAtEndOfFrameCycle and AdvanceAnimFrame, and updates unit frame/speed/flags at +44/+4c/+c4. EDX is saved in EBX and read at +4; its producer returns entries of the existing D2ClientMonAnimModeEntryStrc[16] tables at 007252e0 and 00725220, using stride 12. Retype only these two parameters, preserving chosen names and ABI. No matching issue or accessible proposal found. Static evidence; no compilation or runtime claim.

Changes 2, applied together

  1. Retype variable win 0x004b1280 ECX

    typeD2DynamicPathStrc *→D2UnitStrc *
  2. Retype variable win 0x004b1280 EDX

    typeint32_t→D2ClientMonAnimModeEntryStrc *