Mech phase 2->4: roster core complete (16 classes) + segment-walk blueprint
Records the Mech-ctor segment-walk factory (mech.cpp:1146-1330) with the full MISLABELED ClassID->real-class map (VDATA enum names differ from the real classes). 16 roster classes done; 7 remain for a complete walk (Reservoir, HeatSink-bank, Searchlight, MechTech, ThermalSight, SubsystemMessageManager, Actuator). Blueprint in MECHSUB.NOTES.md guides phase 4. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -130,7 +130,46 @@ 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.
|
||||
## ROSTER CORE COMPLETE (2026-07-20) — 16 classes verified
|
||||
|
||||
All committed + compile-verified: MechSubsystem, HeatableSubsystem, HeatSink,
|
||||
HeatWatcher, PowerWatcher, PoweredSubsystem, Generator, Condenser, Sensor,
|
||||
Myomers, Gyroscope, HUD, Torso, MechWeapon, Emitter (+ surviving PPC/GaussRifle),
|
||||
ProjectileWeapon, MissileLauncher, AmmoBin. Tree links clean.
|
||||
|
||||
## Phase-4 blueprint: the Mech-ctor segment-walk factory (mech.cpp:1146-1330)
|
||||
|
||||
The Mech ctor allocates `subsystemArray[subsystemCount]` (+GetSubsystem/Count),
|
||||
then loops segments (from id 2) switching on `seg->classID` to `new <Class>(this,
|
||||
id, seg)`, caching the key ones. **The VDATA ClassID enum names are MISLABELED vs
|
||||
the real class** (BT411's mapping):
|
||||
|
||||
| ClassID | enum name | REAL class | built? |
|
||||
|---|---|---|---|
|
||||
| 0xBBD | CockpitClassID | Condenser | ✅ |
|
||||
| 0xBBE | SensorClassID | HeatSink bank | ~ (HeatSink ✅; bank variant TODO) |
|
||||
| 0xBC0 | CondenserClassID | **Reservoir** | ❌ TODO |
|
||||
| 0xBC1 | GeneratorClassID | Generator | ✅ |
|
||||
| 0xBC2 | PoweredSubsystemClassID | PoweredSubsystem | ✅ |
|
||||
| 0xBC3 | MyomersClassID | Sensor | ✅ |
|
||||
| 0xBC4 | GyroClassID | Gyroscope | ✅ (cache gyroSubsystem) |
|
||||
| 0xBC5 | SinkSourceClassID | Torso | ✅ (cache sinkSourceSubsystem) |
|
||||
| 0xBC6 | ActuatorClassID | Myomers | ✅ |
|
||||
| 0xBC8 | WeaponEmitterClassID | Emitter | ✅ (weaponCount++) |
|
||||
| 0xBCB | JumpJetClassID | AmmoBin | ✅ |
|
||||
| 0xBCD | MechWeaponClassID | ProjectileWeapon | ✅ |
|
||||
| 0xBCE | MissileWeaponClassID | GaussRifle | ✅ |
|
||||
| 0xBD0 | BallisticWeaponClassID | MissileLauncher | ✅ |
|
||||
| 0xBD3 | SubsystemMessageManagerID | **SubsystemMessageManager** | ❌ TODO |
|
||||
| 0xBD4 | GaussWeaponClassID | Emitter (PPC) | ✅ |
|
||||
| 0xBD6 | MechTechClassID | HUD | ✅ (cache hudSubsystem) |
|
||||
| 0xBD8 | LegSubsystemClassID | **Searchlight** (: PowerWatcher) | ❌ TODO |
|
||||
| 0xBDC | HeatableClassID | **MechTech** | ❌ TODO |
|
||||
| 0xBDE | DisplayClassID | **ThermalSight** (: PowerWatcher) | ❌ TODO |
|
||||
|
||||
Remaining subsystem classes for a full walk: Reservoir, HeatSink-bank variant,
|
||||
Searchlight, MechTech, ThermalSight, SubsystemMessageManager, Actuator (fallback).
|
||||
Then the Mech member layout (subsystemArray/subsystemCount + the capability chains
|
||||
controllable/heatable/weaponRoster/damageable + the alarms/reticle/state-indicators
|
||||
/SequenceControllers/NameFilter/CStrings embedded members) must be named in
|
||||
MECH.HPP for the ctor to set them.
|
||||
|
||||
Reference in New Issue
Block a user