Mac: type pRoomEx as D2RoomExStrc * in DRLGWARP_UpdateWarpRoomExSelect/Deselect and DRLGOUTROOM_FreeOutRoomEx
Ghidra vmac 108 · bc4e150
All three take the DRLG room as an int. The warp helpers start from pRoomEx + 0x4c (D2RoomExStrc.pRoomTileNodes, the warp tile node list) and walk it by +4; FreeOutRoomEx reads pRoomEx+0x20 (pRoomExData) and frees the outdoor grids/vertices when it is set. Each function's comment names its Windows twin with the same name (0066ab90, 0066abe0, 0067d680). Same-width retypes of the first stack parameter; names kept. nLevelId in the warp helpers is untouched. The warp helpers' +0x4c is address arithmetic (ADD EDX,0x4c) rather than a load, so the field_access evidence cites FreeOutRoomEx only. Mac callers were not traced.
Changes 3, applied together
Retype variable
mac 0x00150ec8 Stack[0x4]typeint→D2RoomExStrc *Retype variable
mac 0x00150f0a Stack[0x4]typeint→D2RoomExStrc *Retype variable
mac 0x0015c165 Stack[0x4]typeint→D2RoomExStrc *