diff --git a/campaign/board.md b/campaign/board.md index e9924be..61a0800 100644 --- a/campaign/board.md +++ b/campaign/board.md @@ -9,9 +9,9 @@ Status flow: `backlog → in-progress → mapped → verified` (or `blocked`). | `.gob` format | subsystem | mapped | high | 100% | 2026-09-07 | renamed uncompressed ZIP (community-known) | | `Mars::AppStartup` (entry) | control-flow | backlog | — | 0% | 2026-09-07 | bootstrap → main loop | | main loop / tick dispatch | control-flow | backlog | — | 0% | 2026-09-07 | how subsystems are pumped per frame/turn | -| `Game::ClientPlayer` / `AIPlayer` | object | in-progress | low | 30% | 2026-09-07 | vft ClientPlayer@0x00a32b68 (8) : StrategyPlayer, NetworkObject; AIPlayer@0x00a199c4 (11) : AIObject, IStreamable. fields TBD | -| `Game::StarSystem` | object | in-progress | low | 30% | 2026-09-07 | vft@0x00a200e4 (8) : StarMapNode + NetworkObject/HandleObject/IStreamable. fields TBD | -| `Game::Planet` / `DOPlanet` | object | in-progress | low | 30% | 2026-09-07 | vft@0x009ef144 (36) : Actor->TargetableEntity->PhysicalEntity->EntityBase; DOPlanet@0x00a28cfc (7). fields TBD | +| `Game::ClientPlayer` / `AIPlayer` | object | in-progress | low | 30% | 2026-09-07 | R2: struct recovery via save-name xrefs (SimPlayerDetails); vft ClientPlayer@0x00a32b68 : StrategyPlayer, NetworkObject | +| `Game::StarSystem` | object | in-progress | low | 30% | 2026-09-07 | R2: struct recovery via save-name xrefs; vft@0x00a200e4 : StarMapNode | +| `Game::Planet` / `DOPlanet` | object | in-progress | low | 30% | 2026-09-07 | R2: struct recovery via save-name xrefs; vft@0x009ef144 (36) : Actor chain | | `Game::ShipDesignDef` / `DesignList` | object | in-progress | low | 30% | 2026-09-07 | vft@0x009fef64 (3), leaf (0 bases); mostly data-defined via .shipsection. fields TBD | | `Game::FleetLayout` | object | backlog | — | 0% | 2026-09-07 | fleet composition | | Mars entity chain | object | mapped | high | 100% | 2026-09-07 | EntityBase@0x00a36fd0 (10) -> PhysicalEntity@0x00a3710c (12) -> TargetableEntity -> Actor@0x009e2114 (36); mixins RigidBody/Body/NetworkObject/HandleObject/IScriptable | @@ -23,6 +23,7 @@ Status flow: `backlog → in-progress → mapped → verified` (or `blocked`). | class hierarchy + key vftables | meta | mapped | high | 100% | 2026-09-07 | findings/objects/ghidra-recon.md - RTTI Base_Class_Array read directly; vftables for 8 core classes | | data-model (.gob data files) | subsystem | mapped | high | 100% | 2026-09-07 | findings/subsystems/data-model.md - tech/weapons/sections/races/AI all data-driven | | string / config intel | meta | mapped | high | 100% | 2026-09-07 | findings/subsystems/strings-and-config.md | -| Mars brace-block parser | subsystem | backlog | — | 0% | 2026-09-07 | one recursive KV parser; reimpl lever + feeds verify/parsers | +| Mars brace-block parser | subsystem | in-progress | — | 0% | 2026-09-07 | R2: python parsers + 100% parse proof + cross-links -> verify/parsers/ | | networking (SNM/FNM + GameSpy) | subsystem | backlog | — | 0% | 2026-09-07 | ~60 SNM strategy msgs, FNM file-xfer/host-migration; lockstep sim | | battle-load: thread contention | subsystem | backlog | — | 0% | 2026-09-07 | root cause hunt: CreateThread sites FUN_00902350, FUN_00736e30, FUN_008a0e50; streaming-sound thread; lockstep sync waits | +| UI screen & flow map | meta | in-progress | — | 0% | 2026-09-07 | R2: GUI .script + Strings.csv + *Panel classes -> screen catalog + game flow |