# Campaign board Status flow: `backlog → in-progress → mapped → verified` (or `blocked`). `verified` requires re-verifier evidence. Maintained by **re-quartermaster**. | Target | Type | Status | Conf | Coverage | Updated | Notes | |---|---|---|---|---|---|---| | RTTI class inventory | meta | mapped | high | 100% | 2026-09-07 | `findings/objects/00-inventory.md` — 1924 types, engine=Mars | | `.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 | 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 | | `Game::GameCombatSim` + `CombatCommand*` | subsystem | backlog | — | 0% | 2026-09-07 | tactical combat (~40 command types) | | D3D9 device init | subsystem | backlog | — | 0% | 2026-09-07 | `Mars::DrawDevice`/`Camera` → Direct3DCreate9/CreateDevice | | `Mars::Buffer::gobio` | subsystem | in-progress | — | 0% | 2026-09-07 | .gob I/O; anchors the verify/ parser | | serializable-types vs save structs | verify | mapped | high | 100% | 2026-09-07 | findings/objects/save-editor-structs.md (~130 structs, exact order); verifier: cross-check vs binary next | | battle-load path | subsystem | mapped | med | 60% | 2026-09-07 | mitigation = blunt affinity pin FUN_0089ee70 (SetProcessAffinityMask); NO topology detection -> no adaptive branch; cause = emergent multi-core contention | | 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 | 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 |