REDIVIVUS

Proposals / #1302

Mac UIMENU_PlayCutScene: void __fastcall (D2ControlMsg* pControlMsg ECX, char* szSceneName EDX)

checked · by KierTaylor · submitted 2026-11-06

Both callers (MAINMENU_Unused1 0x002c1fb3, MAINMENU_Unused2 0x002c2033) load ECX=[EBP+8] (their own control-message arg) and EDX=LEA of a scene-name string, then set EAX=1 themselves, so the callee's EAX is unused. The Mac body saves EDX (the scene name, used later to build the video path). It overwrites ECX before reading it, but the slot is kept because callers pass it, as in the Windows twin 0x00431870 (szSceneName, pControlMsg; void). There are no stack-arg reads.

Changes 1, applied together

  1. Set prototype mac 0x002ca053

    signatureundefined UIMENU_PlayCutScene(void)→void UIMENU_PlayCutScene(D2ControlMsg* pControlMsg, char* szSceneName)
    conventionunknown→__fastcall