48 lines
1.9 KiB
Markdown
48 lines
1.9 KiB
Markdown
# RED4ext logging shim
|
|
|
|
`EdgeWeightGPS` is a RED4ext plugin used to probe native GPS/mappin code paths
|
|
without changing gameplay data.
|
|
|
|
It writes `EdgeWeightGPS.log` beside the installed DLL:
|
|
|
|
```text
|
|
Cyberpunk 2077/red4ext/plugins/EdgeWeightGPS/EdgeWeightGPS.log
|
|
```
|
|
|
|
Current behavior:
|
|
|
|
- Logs plugin load/unload.
|
|
- Logs the RED4ext plugin handle and SDK pointer value passed to `Main`.
|
|
- 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.
|
|
|
|
Current route-probe focus:
|
|
|
|
- `FrameMappinPath` wrapper/core: `0x27c4314`, `0x27bc1ec`
|
|
- `SetSelectedMappin` wrappers/core: `0x27c4a38`, `0x27c4944`,
|
|
`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:
|
|
|
|
```bash
|
|
toolbox run -c 2077 ./tools/install_red4ext_shim.sh
|
|
```
|
|
|
|
This shim is read-only. It does not enable any of the archived traffic data patches.
|