Type Mac roster position input and coordinate outputs
Ghidra vmac 110 · 9528519
Mac ROSTER_GetPosition still has int pRoster and undefined4* outputs. Its complete40-byte body reads existing roster DWORD nX+40/nY+44, or writes0 to both outputs fornull roster. Type pRoster D2RosterStrc* and pX/pY int32_t*, preserving all three selected names, exact Stack4/8/0xc slots, cdecl and existing undefined return. Sole caller00099dbc supplies typed GetNextRosterPlayer provenance and two distinct four-byte frame addresses. It passes those same addresses to existing CoordsMapToScreen(int32_t*,int32_t*) then uses signed CDQ/IDIV. Full target/caller/producer/converter native memory(6018bytes) independently matches separate assembly; all4 PIC table entries and reaching definitions checked. EAX incidentally retains pY, unused before the next call: no void/pointer-return inference or prototype bypass. Current existing layouts/types agree; no names/shared-layout/arity/helper changes. Static original Mac database proof, no runtime/build claim.
Changes 3, applied together
Retype variable
mac 0x00075c97 Stack[0x4]typeint→D2RosterStrc *Retype variable
mac 0x00075c97 Stack[0x8]typeundefined4 *→int32_t *Retype variable
mac 0x00075c97 Stack[0xc]typeundefined4 *→int32_t *