Type the Mac player cursor-item wrapper returns
Ghidra vmac 111 · 3cfe190
Both Mac wrappers have undefined return metadata, but complete native paths return the exact inventory cursor-item D2UnitStrc* or fullEAX zero. Existing typed player global/getter, unit.pInventory+96 and independently read hand-item producer establish precise provenance; six actual callers null-test/dereference or forward the full unit pointer. Resolve only returns to existing D2UnitStrc*, preserving chosen names, existing zero formals, locals and unknown conventions verbatim. This is not ABI recovery: no semantic incoming register/positive-frame slot is read, plainRET does not establish cdecl, and unresolved cleanup/clobber/shared-funcdef models remain untouched. Full12Mac code regions2244bytes match separate current assembly, every return/allrefs/call/argument route checked. No global/layout/producer/caller/name edits, Windows pairing/runtime/build gain or reduced withdrawn-claim replacement.
Changes 2, applied together
Set prototype
mac 0x000aa1f4signatureundefined HIREABLES_GetPlayerCursorItem(void)→D2UnitStrc * HIREABLES_GetPlayerCursorItem(void)conventionunknownSet prototype
mac 0x000fa9besignatureundefined USEITEM_GetCursorItem(void)→D2UnitStrc * USEITEM_GetCursorItem(void)conventionunknown