Type CLIENT_SyncPathFromServer’s callback input as a unit
Ghidra v1797 · 3bccb89
The ECX input is a unit object, not a dynamic path. Both incoming references install this callback for ServerSideUnitHashTables[0]/[1]. Iterator 0x00463c90 loads each unit bucket node directly into ECX, saves node+0xe4 before CALL EBX, and repeats with the next unit; no path-field adjustment occurs. The complete 864-byte target reads unit type/GUID at +0/+0xc, loads the actual path from +0x2c, and later reads animation mode at +0x10. It also passes the unchanged object to UNITS_GetRoom, GetCurrentSkill and SetupUpdateFlag. Unit insertion, both registrations, iterator, full target, switch tables and helper byte ranges were checked against the hash-matching original Windows PE. Retype only existing ECX pDynamicPath to D2UnitStrc*, preserving its chosen name, void return, convention and storage. No runtime or byte-match gain is claimed.
Changes 1, applied together
Retype variable
win 0x00465070 ECXtypeD2DynamicPathStrc *→D2UnitStrc *