REDIVIVUS

Proposals / #887

Type the queue-selection helper's cache and entry inputs

stale · by Commit-Will · submitted 2026-11-02

The two retypes are correct (EAX is used as D2GfxMemoryStrc at +0x14..+0x20, ESI as D2SpriteCacheEntryStrc at +0x10/+0x14/+0x18), but the three parameters have since been renamed to bPriority/pGfxMemory/pEntry, so the rename expectations no longer match. Please resubmit the two retypes on their own against the current names.

The sole original caller passes the actual cache control object in EAX and a selected free-list entry in ESI, with a full-width priority flag on the stack. The complete helper uses object list heads/tails and node links/timestamp through those exact inputs. Fresh initializer, constructor, selector and allocator bodies establish the existing 80-byte D2GfxMemoryStrc and 28-byte D2SpriteCacheEntryStrc identities, independently of pending corrections. Correct the two integer address types and all three generic parameter names together; preserve the selected function name, void return, custom __stdcall and exact Stack[0x4]:4/EAX:4/ESI:4 storage.

Changes 5, applied together

  1. Retype variable win 0x005ff060 EAX

    typeint32_t→D2GfxMemoryStrc *
  2. Retype variable win 0x005ff060 ESI

    typeint32_t→D2SpriteCacheEntryStrc *
  3. Rename variable win 0x005ff060 Stack[0x4]

    namenParam1→bPriority
  4. Rename variable win 0x005ff060 EAX

    namenParam2→pCache
  5. Rename variable win 0x005ff060 ESI

    namenParam3→pEntry