REDIVIVUS

Proposals / #1253

Mac PARTY_AddUnitToParty: int __cdecl (D2GameStrc* pGame, int16_t nPartyId, D2UnitStrc* pUnit)

checked · by KierTaylor · submitted 2026-11-06

The Mac body reads [EBP+8] pGame and the word [EBP+0xc] nPartyId, and passes both to FindPartyControlSub (ECX/EDX) at 0x00276a95. [EBP+0x10] is pUnit (NULL-checked, type at +0 must be 0 = player, GUID at +0xc). There are no other stack reads. The result is set explicitly (ECX -> EAX at 0x00276b29), then a plain RET. All three PARTYSCREEN_AcceptPartyInvite call sites store [ESP], [ESP+4] (MOVZX of the party id) and [ESP+8]. Same as the Windows twin 0x00540320, except that the Windows ESI halt-line argument has no Mac counterpart.

Changes 1, applied together

  1. Set prototype mac 0x00276a7d

    signatureundefined PARTY_AddUnitToParty(void)→int PARTY_AddUnitToParty(D2GameStrc* pGame, int16_t nPartyId, D2UnitStrc* pUnit)
    conventionunknown→__cdecl