Tighten route-mode ladder docs

This commit is contained in:
Jan Petykiewicz 2026-04-06 20:36:20 -07:00
commit d783822b1c
2 changed files with 17 additions and 5 deletions

View file

@ -487,10 +487,15 @@ transition.
context `[transport+0x17f8]`. The grounded live-route connect path at
`multiplayer_transport_try_connect_live_route` does not currently perform any matching
post-construction patch for `[route+0xa0]`, `[route+0xa4]`, or `[route+0xd4]`, and the higher
route-mode state machine now looks consistent with that: current grounded mode transitions switch
by releasing route objects through `multiplayer_gamespy_route_release_and_free` and rebuilding
them through `multiplayer_transport_try_connect_live_route`, not by mutating callback slots in
place. The parser behavior is now tighter as well: semicolon lines only dispatch when
route-mode state machine now looks consistent with that: `multiplayer_transport_set_route_mode`
latches the requested small mode at `[this+0x18b8]`, then uses mode `0` for the direct-versus
queued `gsi_am_rating` split, mode `1` for the ready-bit plus queued fallback, mode `2` for
pending-descriptor cleanup, mode `3` for the empty-table fallback, mode `4` for deferred
route-status recovery, and mode `5` for copying the staged route companion dword into `[this+0x54]`
and the local field cache. The current grounded mode transitions still switch by releasing route
objects through `multiplayer_gamespy_route_release_and_free` and rebuilding them through
`multiplayer_transport_try_connect_live_route`, not by mutating callback slots in place. The
parser behavior is now tighter as well: semicolon lines only dispatch when
`[route+0xd4]` is non-null, and the subtype-`6` raw fallback only dispatches when `[route+0xa4]`
is non-null. For the currently grounded transport-owned status and live routes, those two branches
therefore remain optional and can cleanly no-op instead of implying a hidden mandatory callback