Probe GPS search edge costs
This commit is contained in:
@@ -236,6 +236,31 @@ Current static producer lead:
|
||||
`0x41be69`; patching there would alter copied/displayed records after route
|
||||
choice. The cost patch needs to happen upstream of the `0x44cc7c` result
|
||||
construction path.
|
||||
- `0x44f054` is the strongest route-planning lead so far. It validates the
|
||||
packed start/target lane handles, initializes a search-state table and open
|
||||
list, pushes the start state, repeatedly pops the best state, checks for the
|
||||
destination handle, traverses adjacency lists, and writes predecessor,
|
||||
accumulated-cost, and priority fields for improved neighbor states. This is
|
||||
the native GPS graph search loop.
|
||||
- The search-state record is 0x20 bytes. Offsets `+0x00/+0x04/+0x08` are a
|
||||
world position, `+0x0c` is accumulated path cost, `+0x10` is priority
|
||||
(`cost + heuristic`), `+0x14` stores open/closed flags and the predecessor
|
||||
index, and `+0x18` stores the packed lane handle.
|
||||
- `0x44f7bc` is the heuristic helper. It returns world-space distance to the
|
||||
target scaled by the constant at `0x1431ef3a0` (`0.9990000129`), unless a
|
||||
route-shape helper supplies a shorter adjusted distance.
|
||||
- The search loop calls a strategy object's vtable slot `+0x08` as an edge
|
||||
admissibility predicate and slot `+0x10` as the edge-cost callback. For the
|
||||
base/class-filter strategies, slot `+0x10` resolves to `0x44f838`.
|
||||
- `0x44f838` computes the geometric edge distance and multiplies it by
|
||||
`provider[0x08 + classId * 4]`, where `classId` is
|
||||
`(*(routePoint + 0x13) & 0x3f)`. The GPS planner is therefore weighted, but
|
||||
by a compact baked road-class table, not by traffic `maxSpeed` or lane
|
||||
connection probabilities.
|
||||
- The active probe now hooks `0x44f054` and `0x44f838` read-only. It logs the
|
||||
live provider vtable, the 64 class multipliers, start/target handles, and a
|
||||
capped sample of edge-cost calls with point class IDs, masks, handles, and
|
||||
returned costs.
|
||||
|
||||
Autodrive finding:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user