REDIVIVUS

Proposals / #1082

Recover the Mac near-room count and completeness contracts

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

Restore both complete related Mac contracts:0015001a loads the full RoomEx count DWORD for actual array-size arithmetic/count comparison;00165cf8 returns fullEAX0/1 and both server calls test it. Recover existing int4/BOOL4 results and existing RoomEx*/Room* inputs, preserving chosen names, one Stack4 DWORD each, cdecl, locals and noVarArgs. All4recorded target calls are covered by native typed Game→Client→Room and Room.RoomEx+16 routes plus Room-factory field construction. Four complete bodies2407B/623instructions and a separately read16B guarded PIC table close the selected paths. Existing API/layout/native roles corroborate inputs; no unchanged-value/opaque-writer invariant or allocation-token guarantee is asserted. No exact flag meaning, unique original typedef/MachO identity/execution, or runtime/build/matching gain. Any contradiction/refusal holds the complete family, without a narrower input/result/alias/name/helper/ABI fallback.

Changes 2, applied together

  1. Set prototype mac 0x0015001a

    signatureundefined GetRoomsNearCount(int pRoomEx)→int GetRoomsNearCount(D2RoomExStrc * pRoomEx)
    convention__cdecl
  2. Set prototype mac 0x00165cf8

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