REDIVIVUS

Proposals / #1249

Mac SKILLS_NecroShredAlignmentCallback: void __cdecl (pUnit, eD2States eAlignmentState, int32_t nUnused)

checked · by KierTaylor · submitted 2026-11-06

This is the state-expire callback stored by Skills_SrvDoFunc_059_CastCorpseSkill (LEA at 0x0026362a), the same slot as SKILLNEC_OnCurseExpire, typed void(*)(D2UnitStrc*, eD2States, int32_t). The Mac body reads [EBP+8] (pUnit, passed to every callee) and [EBP+0xc] (the state, passed as the 2nd arg at 0x0026370a). The 3rd slot is passed by the slot type but never read; the Windows twin 0x005c3b00 keeps it too (RET 0x4). It ends in a plain RET with no return value.

Changes 1, applied together

  1. Set prototype mac 0x002636e8

    signatureundefined SKILLS_NecroShredAlignmentCallback(void)→void SKILLS_NecroShredAlignmentCallback(D2UnitStrc* pUnit, eD2States eAlignmentState, int32_t nUnused)
    conventionunknown→__cdecl