REDIVIVUS

Proposals / #1180

Mac InitDrlgAct: void __fastcc (D2GameStrc* pGame ECX, uint8_t nActNo EDX) prototype

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

Mac 0x001b00a5 is "undefined (void)", convention unknown. Entry: ESI=ECX (game: [ESI+0x6d], [ESI+0x1c], [ESI+0x7c], stores the new act at [ESI+EDI*4+0xbc]), EBX=EDX used only as a byte (MOVZX EAX,BL / MOVZX EDI,BL = act number, index into the 0xbc act array); no [EBP+n] reads; plain RET 0x001b012e, no result. Caller CLIENT_WarpToAct loads EDX=MOVZX byte [EBP-0x25] and ECX=EBX (game) and CALLs at 0x001afdd8 with no stack args. Same two values as Windows twin 0x0053ac70 void (pGame, char nActNo).

Changes 1, applied together

  1. Set prototype mac 0x001b00a5

    signatureundefined InitDrlgAct(void)→void InitDrlgAct(D2GameStrc * pGame, uint8_t nActNo)
    conventionunknown→__fastcc