REDIVIVUS

Proposals / #970

Mac CLIENT_PlaySkillSound: __fastcc BOOL (D2UnitStrc * pUnit, D2SkillStrc * pSkill)

applied · by KierTaylor · submitted 2026-11-02, applied 2026-11-02

Ghidra vmac 111 · 3c6740e

Mac body: EDX (EBX) is passed to the skill param1/param2 getters (0x00187e1a/0x00187e58), so it is the skill; ECX (EDI) is the casting unit (passed to the Z-position getter, null-tested, type at +0 compared with 1, class at +0x4); no [EBP+n] reads in the function and a single RET (0x00088f1b), so the Windows dust-overlay flag argument does not exist on Mac. Windows twin CLIENT_PlaySkillSound 0x004c8970 is BOOL (D2SkillStrc * pSkill, int32_t nParam, D2DynamicPathStrc * pDynamicPath), where its own description says the last argument is really the casting unit.

Changes 1, applied together

  1. Set prototype mac 0x00088bdb

    signatureundefined CLIENT_PlaySkillSound(void)→BOOL CLIENT_PlaySkillSound(D2UnitStrc * pUnit, D2SkillStrc * pSkill)
    conventionunknown→__fastcc