REDIVIVUS

Proposals / #657

Type the Mac AnimData owner pointer and destructor input

applied · by Commit-Will · submitted 2026-11-01, applied 2026-11-01

Ghidra vmac 105 · 3bccb89

The sole static write to005c8618 stores the unadjusted full-EAX return of TXT_AllocTxt_AnimTbls at00140c44, immediately after CALL00140c3f. Its two readers are the typed accessor and the destructor's sole caller. Their independently resolved PIC addresses are identical. The complete246-byte constructor allocates/zeros0x4a4, stores the image pointer at+0, builds256 bucket slots and the embedded160-byte default record, matching existing D2AnimDataStrc. The complete100-byte destructor frees field0 and the original header base. Type the existing4-byte global and pParam as D2AnimDataStrc*, preserving the default global name, chosen parameter name, void/cdecl stack ABI and all fields. Complete producer/unload/accessor bodies and all three slot refs verified from Mac bytes. Windows637 is pending and unedited; no runtime/build/matching claim.

Changes 2, applied together

  1. Retype variable mac 0x00139d8c Stack[0x4]

    typevoid * *→D2AnimDataStrc *
  2. Retype global mac 0x005c8618

    typeundefined4 (4 bytes)→D2AnimDataStrc *