REDIVIVUS

Proposals / #1077

Recover both Mac room flag predicate prototypes

checked · by Commit-Will · submitted 2026-11-03

Two fresh Mac HasWaypoint functions retain undefined results and int pointer formals. The69-byte inner reads the RoomEx flags byte and normalizes every normal result to full EAX0/1. Its70-byte wrapper passes Room+0x10 to it and forwards EAX; the actual caller tests full EAX. Recover existing BOOL4 with precise existing RoomEx*/Room* inputs as one complete family, preserving selected names, genuine single Stack4 DWORDs, cdecl, locals and noVarArgs. Source identity uses a typed Room API, native seed/field copies, existing128/236-byte layouts and full factory bodies, not names or a claimed allocator-token chain. Five complete Mac bodies1921B/569instructions close bounded native paths. No exact flag-bit meaning, opaque effect/nonreturn, valid-input safety, original typedef/image/execution or build-gain claim. Any source/ABI/model contradiction or refusal holds the complete family without an input/result/alias/name fallback.

Changes 2, applied together

  1. Set prototype mac 0x0014ffd5

    signatureundefined HasWaypoint(int pRoomEx)→BOOL HasWaypoint(D2RoomExStrc * pRoomEx)
    convention__cdecl
  2. Set prototype mac 0x00165af2

    signatureundefined HasWaypoint(int pRoom)→BOOL HasWaypoint(D2RoomStrc * pRoom)
    convention__cdecl