REDIVIVUS

Proposals / #945

Mac DRAW_DrawEdgeFloorTile: __cdecl void (D2DrawFloorStrc * pDrawFloor, int32_t nWorldX, int32_t nWorldY)

applied · by KierTaylor · submitted 2026-11-02, applied 2026-11-02

Ghidra vmac 111 · 3c6740e

Mac body reads exactly three stack slots and no ECX/EDX: [EBP+8] (EBX) is the draw-floor context whose +0x3c/+0x40 screen offsets are added to the converted position; [EBP+0xc] and [EBP+0x10] (the latter +5) are the world X/Y converted to screen coordinates by the coord-transform call and later reused for the tile lookup. Windows twin DRAW_DrawEdgeFloorTile 0x004de630 is void (D2DrawFloorStrc * pDrawFloor, int32_t nWorldX, int32_t nParam); the third argument is the Y coordinate.

Changes 1, applied together

  1. Set prototype mac 0x00060346

    signatureundefined DRAW_DrawEdgeFloorTile(void)→void DRAW_DrawEdgeFloorTile(D2DrawFloorStrc * pDrawFloor, int32_t nWorldX, int32_t nWorldY)
    conventionunknown→__cdecl