REDIVIVUS

Proposals / #1155

Mac AI_CanApplyColdState: uint32_t __cdecl (pUnit, pMonStatsTxtRecord, eState, bCheckMonsterType)

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

Mac 0x001a44dc is "undefined (void)", convention unknown. Reads [EBP+8] (unit: passed to CheckMonsterType and [ESI+4] class id), [EBP+0x10] (state, compared with 0xa..0xc), [EBP+0x14] (flag: when non-zero calls CheckMonsterType(pUnit, 2) at 0x001a4511); [EBP+0xc] is forwarded by callers as the monstats record (caller 0x001a6c1c computes IMUL ECX,0x1a8 + [tables+0xa78], i.e. a D2MonStatsTxt*). Returns EAX; plain RET 0x001a4537. Both callers store 4 dwords [ESP]..[ESP+0xc] and TEST EAX after the call. Windows twin 0x005b0da0: uint32_t (D2UnitStrc* pUnit, D2MonStatsTxt* pMonStatsTxtRecord, eD2States eState, int32_t nParam); last param renamed by its use.

Changes 1, applied together

  1. Set prototype mac 0x001a44dc

    signatureundefined AI_CanApplyColdState(void)→uint32_t AI_CanApplyColdState(D2UnitStrc * pUnit, D2MonStatsTxt * pMonStatsTxtRecord, eD2States eState, BOOL bCheckMonsterType)
    conventionunknown→__cdecl