REDIVIVUS

Proposals / #808

Recover the unit input and Boolean result of Mac UNITS_IsInRange

applied · by Commit-Will · submitted 2026-11-02, applied 2026-11-02

Ghidra vmac 110 · 9528519

The complete Mac body consumes a unit's type and path union, then normalizes a signed comparison to full EAX0/1. Its sole native caller passes a cursor from a room's typed unit list and tests the full return. Use existing D2UnitStrc* and four-byte BOOL, preserving selected names, all three stack slots, cdecl, the existing int* coordinate buffer and signed int distance. All target, caller, room/coordinate producers and path helpers were independently decoded. No Windows twin, shared layout, helper prototype or runtime/build change is claimed.

Changes 1, applied together

  1. Set prototype mac 0x00193723

    signatureundefined UNITS_IsInRange(uint * pUnit, int * pCoord, int nDistance)→BOOL UNITS_IsInRange(D2UnitStrc * pUnit, int * pCoord, int nDistance)
    convention__cdecl