REDIVIVUS

Proposals / #1272

Mac SendMercForHireList: void __cdecl (pGame, pClient, pNpcUnit, BOOL bFirstInteraction)

checked · by KierTaylor · submitted 2026-11-06

[EBP+8] = pGame (read at 0x00285e84). [EBP+0xc] = pClient (the target of the 0x4f/0x4e merc packets). [EBP+0x10] = pNpcUnit (NULL-checked, class id at +4 compared with the hireling vendors 0x96/0xc6/0xfc/0x202/0x203). The caller NPC_BeginInteraction 0x001d922e stores four slots, the 4th being a MOVZX'd flag, which matches the Windows twin 0x00576770's bFirstInteraction. The Mac body no longer reads it, but the slot is kept because that caller passes it. NPC_ProcessMercHire 0x00287879 stores the first three. Plain RET; callers ignore EAX.

Changes 1, applied together

  1. Set prototype mac 0x00285dc4

    signatureundefined SendMercForHireList(void)→void SendMercForHireList(D2GameStrc* pGame, D2ClientStrc* pClient, D2UnitStrc* pNpcUnit, BOOL bFirstInteraction)
    conventionunknown→__cdecl