REDIVIVUS

Proposals / #1156

Mac MONSTERAI_CanTargetUnit: uint32_t __fastcc (pGame, pUnit, pTarget) prototype

approved · by KierTaylor · submitted 2026-11-05, approved 2026-11-05

Mac 0x001a6d32 is "undefined (void)", convention unknown. Entry: ESI=ECX, EDI=EDX (unit, NULL-checked and [EDI]<=1 player/monster), EBX=[EBP+8] (second unit, same checks, then passed to 0x0027ae7d); [EBP+8] is the only stack read; plain RET 0x001a6e41 (caller cleans). Caller AI_ForEachFn06_NearestTargetByThreat loads ECX=[EBP+8] (pGame), EDX=[EBP+0xc] (pUnit), stores [ESP]=[EBP+0x10] then TEST EAX,EAX (0x001a5b40-0x001a5b53). That is the Mac fastcc shape with the same three values as Windows twin 0x005dc970 uint32_t (pGame, pUnit, pTarget).

Changes 1, applied together

  1. Set prototype mac 0x001a6d32

    signatureundefined MONSTERAI_CanTargetUnit(void)→uint32_t MONSTERAI_CanTargetUnit(D2GameStrc * pGame, D2UnitStrc * pUnit, D2UnitStrc * pTarget)
    conventionunknown→__fastcc