REDIVIVUS

Proposals / #1214

Mac QUEST_DispatchToUnit: void __fastcc (D2QuestArgStrc* pCall ECX, uint8_t bForce EDX)

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

Mac 0x00213a76 is "undefined (void)", convention unknown. Entry: ESI=ECX read as a quest call record ([ESI+8] unit -> its +0x74 quest list; [ESI+4] event index into the per-quest callbacks at +0xa0; ESI itself is passed as the 2nd arg of each callback CALL [ECX+EAX*4+0xa0] at 0x00213aeb), EBX=EDX used only as a byte flag (CMP BL,1 lets a callback run even when the quest's +0xa active byte is 0). No [EBP+n] reads; plain RET. Caller QUEST_OnItemDropped builds the record on its stack and calls with ECX=LEA [EBP-0x20], EDX=0 (0x00213daa-0x00213daf). Windows twin 0x005439a0 passes the same D2QuestArgStrc* pCall.

Changes 1, applied together

  1. Set prototype mac 0x00213a76

    signatureundefined QUEST_DispatchToUnit(void)→void QUEST_DispatchToUnit(D2QuestArgStrc * pCall, uint8_t bForce)
    conventionunknown→__fastcc