REDIVIVUS

Proposals / #1161

Mac MONSTERAI_ConvertMonstersInRadius: void __fastcc (pGame, pUnit, nUnitType, nMinDelay, nMaxDelay, bUndeadOnly)

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

Mac 0x002455f5 is "undefined (void)", convention unknown. Entry: ECX saved to [EBP-0x7c] (game), EDI=EDX (unit: passed to UNITS_GetRoom 0x0018f1ae, [EDI] unit-type check). Stack: [EBP+8] read at 0x00245704, [EBP+0x10]-[EBP+0xc] used as a random range (0x00245622/0x002456a8) and [EBP+0xc] added back (0x002457f2) = min/max delay, [EBP+0x14] compared with 0 (flag, 0x00245790). Plain RET 0x00245861, no result. Caller MONSTERAI_ThinkRangedSpecial: ECX=[EBP+8] (pGame), EDX=[EBP+0xc] (pUnit), [ESP]=0x23, [ESP+4]=0x19, [ESP+8]=0x7d, [ESP+0xc]=1 (0x002455c6-0x002455eb). Windows twin 0x005dfbf0 has the same six values: void (int32_t nUnitType, int32_t nMinDelay, int32_t nMaxDelay, int32_t bUndeadOnly, pUnit, pGame).

Changes 1, applied together

  1. Set prototype mac 0x002455f5

    signatureundefined MONSTERAI_ConvertMonstersInRadius(void)→void MONSTERAI_ConvertMonstersInRadius(D2GameStrc * pGame, D2UnitStrc * pUnit, int32_t nUnitType, int32_t nMinDelay, int32_t nMaxDelay, int32_t bUndeadOnly)
    conventionunknown→__fastcc