REDIVIVUS

Proposals / #1439

Mac SERVER_CalculateExperienceForUnit: uint32_t __fastcc (pGame, pUnit, nPlayerLevel, nKillerLevel, nBaseExperience)

checked · by KierTaylor · submitted 2026-11-08

Resubmit of #1264 with the Mac register convention __fastcc, as the reviewer asked; parameters are unchanged. ECX = pGame, EDX = pUnit, [EBP+8] = nPlayerLevel, [EBP+0xc] = nKillerLevel, [EBP+0x10] = base experience. EAX is used by the callers (IMUL at 0x00280bb8). Windows twin 0x0057e480.

Changes 1, applied together

  1. Set prototype mac 0x00280d15

    signatureundefined SERVER_CalculateExperienceForUnit(void)→uint32_t SERVER_CalculateExperienceForUnit(D2GameStrc* pGame, D2UnitStrc* pUnit, int32_t nPlayerLevel, int32_t nKillerLevel, int32_t nBaseExperience)
    conventionunknown→__fastcc