Probe journal route listeners
This commit is contained in:
@@ -16,6 +16,11 @@ Current behavior:
|
||||
- Registers Running game-state callbacks so route tests can be timestamped.
|
||||
- Hooks selected native wrappers and cores around `GPSSystem`, mappin tracking,
|
||||
world-map mappin selection, and map path framing.
|
||||
- Hooks `JournalManager.TrackEntry` at RVA `0x5944fc`, which is the native
|
||||
handoff used by quest/objective world-map route plotting.
|
||||
- Dumps the `JournalManager` listener array at offsets `0x210`/`0x21c` and the
|
||||
listener vtable slots `0x28`, `0x30`, and `0x50`, matching the indirect calls
|
||||
made by the native `TrackEntry` implementation.
|
||||
- Resolves the native mappin system when one of those paths fires, logs relevant
|
||||
vtable slot addresses, and temporarily hooks the route-adjacent slots.
|
||||
|
||||
@@ -26,6 +31,12 @@ Current route-probe focus:
|
||||
`0x27c49c4`, `0x27c1684`
|
||||
- `TrackCustomPositionMappin` wrapper/core: `0x27c4aac`, `0x27c2318`
|
||||
- mappin-system slots `0x1f0`, `0x280`, and `0x2f0`
|
||||
- `JournalManager.TrackEntry` implementation: `0x5944fc`
|
||||
|
||||
Quest/objective pins did not fire the mappin tracking hooks in live tests. The
|
||||
REDscript decompile shows that those pins call `JournalManager.TrackEntry`
|
||||
instead, so the current useful runtime question is which native listener reacts
|
||||
to tracked-entry changes.
|
||||
|
||||
Build and install from the Fedora toolbox:
|
||||
|
||||
|
||||
@@ -546,6 +546,8 @@ Better versions of this mod could:
|
||||
graph component
|
||||
- ship multiple archives only if a data patch is proven to affect routing
|
||||
|
||||
The next practical step is one more in-game route-plotting run with the current
|
||||
RED4ext mappin-system slot probe installed. If it logs concrete slot RVAs, the
|
||||
next static-disassembly target is no longer a guess.
|
||||
The next practical runtime step is no longer broad map/mappin logging. The
|
||||
installed RED4ext shim now hooks `JournalManager.TrackEntry` directly and dumps
|
||||
the listener array that native `TrackEntry` calls through. A short route-plotting
|
||||
run should identify which native listener consumes tracked quest/objective
|
||||
changes; that listener is the next focused static-disassembly target.
|
||||
|
||||
Reference in New Issue
Block a user