REDIVIVUS

Proposals / #778

Mac: type pStatList as D2StatListStrc * in STATLIST_SetSkillId and STATLIST_SetSkillLevel

applied · by Captain-Fwiffo · submitted 2026-11-01, applied 2026-11-02

Ghidra vmac 108 · bc4e150

Both Mac setters write straight into the stat list passed as an int: SetSkillId stores nSkillId at +0x1c and SetSkillLevel stores nSkillLevel at +0x20, which are D2StatListStrc.eSkill and D2StatListStrc.nSkillLevel in the Mac database (the per-stat-list creator skill and level). Retype of the first stack parameter only; the value arguments (undefined4) and names are untouched. They have no Windows twin (inlined there). The stat list fields sit in the embedded base list of a D2StatListExStrc, so D2StatListStrc * is the exact type for these offsets. Mac callers were not traced.

Changes 2, applied together

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

    typeint→D2StatListStrc *
  2. Retype variable mac 0x00197730 Stack[0x4]

    typeint→D2StatListStrc *