Track GPS query status lifecycle

This commit is contained in:
2026-06-20 13:00:35 -05:00
parent 50c81b780a
commit 751e2175f7
2 changed files with 283 additions and 79 deletions
+26 -3
View File
@@ -53,9 +53,14 @@ Current behavior:
native registration cluster:
`0x29bd128` (`RunGPSQuery` body), `0x29bd254` (`UpdateGPSQuery` body),
`0x70a42c` (shared query submitter), `0x70a570` (low-level query dispatch),
and `0x7094b8` (query result/path fetch).
`0x7094b8` (query result/path fetch), and `0xaa5704` (query status check).
- Logs query endpoints, returned query IDs, shared submitter return RVAs, query
state fields, result-fetch success, and summarized path buffers/point counts.
state fields, status values, result-fetch success, and summarized path
buffers/point counts.
- The active probe now records query IDs returned from `0x70a42c` and always
logs result/status polling for those tracked IDs. Startup polling of query
IDs `0`/`1` is sampled only briefly so it cannot exhaust the route-click log
budget.
- Resolves the native mappin system when one of those paths fires, logs relevant
vtable slot addresses, and temporarily hooks the route-adjacent slots.
@@ -79,7 +84,7 @@ Current route-probe focus:
classified as journal metadata)
- route-build candidate called by the bridge: `0x5625a4`
- GPS query lifecycle: `0x29bd128`, `0x29bd254`, `0x70a42c`, `0x70a570`,
`0x7094b8`
`0x7094b8`, `0xaa5704`
Quest/objective pins did not fire the mappin tracking hooks in live tests. The
REDscript decompile shows that those pins call `JournalManager.TrackEntry`
@@ -134,6 +139,24 @@ Current static lead:
so return RVAs and query IDs are important for separating map GPS from traffic
or AI path requests.
Latest GPS-query finding:
- During a controlled route test, the normal world-map GPS path did not call
the script-native `RunGPSQuery`/`UpdateGPSQuery` bodies.
- Each deliberate quest/custom route click called the shared submitter
`0x70a42c` from return RVA `0x8d20d4`, then returned query IDs `3`, `4`, `5`,
and `6` for the three quest routes plus the custom pin.
- Each submitted route produced three `0x70a570` dispatches: current/player
position, a nearby snapped/lane position, then the destination position.
- The dense log stream immediately after Space-to-Continue was repeated
`0x7094b8` result polling for startup query IDs `0`/`1`, matching the HUD /
minimap route initialization delay. The next probe tracks submitted IDs so
route-click completion can be captured without being drowned by startup
polling.
- Static disassembly confirms `0xaa5704` takes `(manager, queryId)` and returns
a small status code; one caller checks for value `1` as the completed-query
state.
Build and install from the Fedora toolbox:
```bash