REDIVIVUS

Proposals / #1245

Mac SKILLNEC_ApplyBloodCost: void __cdecl (D2GameStrc* pGame, D2UnitStrc* pUnit)

checked · by KierTaylor · submitted 2026-11-06

Mac body reads only [EBP+8] (pGame, passed on to DAMAGE_ApplyDamageToUnit) and [EBP+0xc] (pUnit, checked for type 0 / mode, then used to read the max HP); it ends in a plain RET. Both callers (RaiseSkeletonFromCorpse 0x002647a0, ReviveCorpseCheck 0x0026582d) store exactly [ESP] and [ESP+4] and ignore EAX. The Windows twin 0x005c2ff0 has the same first two args (pGame, pUnit). On Mac the inlined skill args are dropped.

Changes 1, applied together

  1. Set prototype mac 0x002625ea

    signatureundefined SKILLNEC_ApplyBloodCost(void)→void SKILLNEC_ApplyBloodCost(D2GameStrc* pGame, D2UnitStrc* pUnit)
    conventionunknown→__cdecl