Mech milestone phase 2: map the complete subsystem family tree

Records the full mech-subsystem hierarchy discovered while reconstructing the
roster, with per-class build status. 6 classes done + verified (MechSubsystem,
HeatableSubsystem, HeatSink, PoweredSubsystem, Sensor, Generator); the tree shows
the remaining intermediates (HeatWatcher : MechSubsystem, PowerWatcher :
HeatWatcher) that unblock the Torso/HUD/Gyroscope branch (the Mech's directly-
referenced subsystems), plus Myomers/Condenser leaves and the separate weapon
subtree. The reconstruction pattern is now a proven template (documented). Enables
efficient continuation.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Cyd
2026-07-19 23:51:55 -05:00
co-authored by Claude Fable 5
parent b5e0c10737
commit e9b51cd6ee
+34 -5
View File
@@ -100,8 +100,37 @@ subsystems must be created AFTER the generator in the segment-walk order, and th
Mech must expose GetSubsystemCount()/GetSubsystem(). This ordering constraint is
a segment-walk (phase-4 ctor) concern; note it there.
**Next roster steps:** add the missing HeatSink class (between HeatableSubsystem
and PoweredSubsystem), fix POWERSUB.HPP's base, reconstruct PoweredSubsystem
(with its alarms + voltage-source slot), then the leaves (Sensor first — its
interface survives). Condenser/HeatWatcher (VDATA 0xBC6/0xBC7) are siblings in
the heat family.
## Complete subsystem family tree (mapped 2026-07-19) + build status
```
MechSubsystem DONE (MECHSUB.HPP/.CPP)
├─ HeatableSubsystem DONE (HEAT)
│ └─ HeatSink DONE (HEAT)
│ ├─ PoweredSubsystem DONE (POWERSUB)
│ │ ├─ Sensor DONE (SENSOR; interface survives in CODE)
│ │ └─ Myomers todo (myomers.hpp)
│ ├─ Generator DONE (POWERSUB; source, GNRATOR.TCP partial)
│ └─ Condenser todo (heat.hpp)
└─ HeatWatcher (: MechSubsystem) todo -- sibling branch to HeatableSubsystem
└─ PowerWatcher (: HeatWatcher) todo
├─ Torso todo (torso.hpp) -- Mech sinkSourceSubsystem
├─ HUD todo (hud.hpp) -- Mech hudSubsystem
└─ Gyroscope todo (gyro.hpp) -- Mech gyroSubsystem
```
Plus the WEAPON family (separate subtree): MechWeapon → {PPC, Gauss, ProjectileWeapon
→ Missile/…}. PPC/GAUSS source survives in CODE/BT/BT; AMMOBIN/EMITTER/MISSILE/
PROJTILE/PROJWEAP have .TCP partials; the rest decomp-only.
**Pattern established** (6 classes verified): each = statics
(ClassDerivations(parent, "Name") + DefaultData reusing Subsystem::MessageHandlers/
AttributeIndex/StateCount), ctor chaining the parent + member init from the
resource, dtor, TestClass/TestInstance/ResetToInitialState real, per-frame
Simulation method + CreateStreamedSubsystem staged with Fail. Embedded alarms =
AlarmIndicator(N); filters = AverageOf<Scalar>; owner->GetInstance() !=
ReplicantInstance gates the master performance install.
**Next:** HeatWatcher (: MechSubsystem) then PowerWatcher (: HeatWatcher) unblock
the Torso/HUD/Gyroscope branch (the Mech's directly-referenced subsystems); Myomers
+ Condenser are direct leaves; then the weapon family. After the roster:
finalize MECH.HPP layout (probe sizeof==0x854), then the Mech ctor + segment walk.