REDIVIVUS

Proposals / #738

Retype pLevelCtx to D2DrlgLevelStrc * in DRLGOUTROOM_PathSearchStep and DRLGOUTROOM_ValidatePathStep

applied · by Captain-Fwiffo · submitted 2026-11-01, applied 2026-11-02

Ghidra v1803 · bc4e150

pLevelCtx is the DRLG level being pathed: ValidatePathStep reads pLevelCtx[5] (+0x14, D2DrlgLevelStrc.pDrlgLevelData) and uses that wilderness data at +0x54 as coordinates and +0x2c as a D2DrlgGridStrc. The chain is single-caller all the way down: DRLGOUTROOM_FindPathBetweenExits(D2DrlgLevelStrc * pLevel, ...) stores its entry ECX at [EBP-0x14] (0x006817e5, the only write) and pushes it as the third stack argument of PathSearchStep (0x006819b0/bd); PathSearchStep pushes its own pLevelCtx ([EBP+0x10]) as the first stack argument of ValidatePathStep (0x0068167e-83). Same-width retypes; names kept.

Changes 2, applied together

  1. Retype variable win 0x00681630 Stack[0xc]

    typeint32_t→D2DrlgLevelStrc *
  2. Retype variable win 0x006815c0 Stack[0x4]

    typeint *→D2DrlgLevelStrc *