REDIVIVUS

Proposals / #707

Type the Windows path hash lookups as context-to-node operations

rejected · by Commit-Will · submitted 2026-11-01, rejected 2026-11-01

Win 0067ae00/0067ae50 receive the existing D2DrlgPathSearchCtxStrc pointer and return D2DrlgPathNodeStrc* or null, currently int32_t input and short* return. Complete 74/78-byte bodies index context buckets at +0/+512, compare the node coordinate words and follow its +48 node link; normal EAX values are only a bucket/linked node or explicit zero. Independent complete insertion/pop bodies write actual pool-node pointers to those bucket heads and links. All references are audited: each lookup has one call in 0067b200, whose context comes through all eight 0067b440 calls from the exact 13036-byte frame object in 0067b850. Restore input and return together, preserving nOpenListBase, uint32_t nPackedPos, two dword stack slots, stdcall RET8 and all locals. Existing context/node layouts, full callers/producers and original Windows bytes independently prove identity. No pending allocator metadata, custom ABI, shared type, Mac pair or runtime change is relied on.

Changes 2, applied together

  1. Set prototype win 0x0067ae00

    signatureshort * DRLGPATH_FindNodeInOpenList(int32_t nOpenListBase, uint32_t nPackedPos)→D2DrlgPathNodeStrc * DRLGPATH_FindNodeInOpenList(D2DrlgPathSearchCtxStrc * nOpenListBase, uint32_t nPackedPos)
    convention__stdcall
  2. Set prototype win 0x0067ae50

    signatureshort * DRLGPATH_FindNodeInClosedList(int32_t nOpenListBase, uint32_t nPackedPos)→D2DrlgPathNodeStrc * DRLGPATH_FindNodeInClosedList(D2DrlgPathSearchCtxStrc * nOpenListBase, uint32_t nPackedPos)
    convention__stdcall