Mac PLRMODES_CreateDeadBody: D2UnitStrc* __cdecl (pGame, pUnit, nX, nY, D2RoomStrc* pRoom)
Mac 0x001fc6be is "undefined (void)", convention unknown. Five cdecl stack args: [EBP+0xc] the dying player (its +0x60 inventory walked at 0x001fc6d0-0x001fc6e6), [EBP+0x18] read at 0x001fc6d9. Sole caller PLRMODES_HandlePlayerDeath stores [ESP]=[EBP+8] (pGame), [ESP+4]=ESI (unit), [ESP+8]=EBX, [ESP+0xc]=EDI (coordinates), [ESP+0x10]=UNITS_GetRoom(unit) (0x001fe21e-0x001fe23c), so the 5th argument is the unit's room. Same values as Windows twin 0x0057f700 D2UnitStrc* (pGame, D2UnitStrc* pUnit, int32_t nX, int32_t nY, pRoom), where Windows mistypes the room as D2UnitStrc*.
Changes 1, applied together
Set prototype
mac 0x001fc6besignatureundefined PLRMODES_CreateDeadBody(void)→D2UnitStrc * PLRMODES_CreateDeadBody(D2GameStrc * pGame, D2UnitStrc * pUnit, int32_t nX, int32_t nY, D2RoomStrc * pRoom)conventionunknown→__cdecl