Coolant-loop cross-check vs the 1995 manual: structure strongly faithful
Dumped each mech's subsystem->coolant-loop (BT_SPEC_LOG in mech4: walks the roster once, resolves each subsystem's linked-condenser number via BTCoolingLoopFrame) and diffed all 6 manual mechs' COOLANT LOOPS tables. RESULT -- the structure survives the 4.0->4.10 gap remarkably well: - BACKBONE identical on ALL 6: Generator A/B/C/D on loops 1/2/3/5, Sensors(our Avionics) on loop 2, Myomers on loop 5, LRMs on 1&3, autocannon on 4, big energy weapon on 6 -- exact match - weapon LOADOUT identical on 5 of 6 (Thor/Vulture/MadCat/Owens/ Blackhawk); Loki is the one full rework (4.0 PPCx2/AFC100/SRM6 -> 4.10 AFC50x2/ER Medium x2/SRM4) - the consistent 4.0->4.10 change is a small-laser REDISTRIBUTION: the 2 ER Small Lasers moved off the sensor/heavy loops onto the energy loops 4&6 (Thor/MadCat/Vulture); Owens near-perfect (loops 1&3 exact) - Loop 0 = correctly UNCOOLED infrastructure (condensers, reservoir, gyro, torso, HUD, ammo bins, ...) -- not a coolant loop CONCLUSION: the coolant-loop reconstruction is faithful; every diff is 4.0->4.10 balance tuning, not a bug. BT_SPEC_LOG retained. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Fable 5
parent
f4cf1e631a
commit
ff5260ce98
@@ -149,6 +149,26 @@ NEW LEADS (manual describes, port lacks input/UI): **CROUCH** (button by the sec
|
||||
EjectButton01_z*.wav), hot-box viewscreen framing (the deferred PNAME marker chain). Per-mech
|
||||
stat tables = a systematic cross-check source for our streamed subsystem resources.
|
||||
|
||||
### Coolant-loop cross-check RESULT (2026-07-18) [T1] -- STRUCTURE strongly faithful
|
||||
Dumped each mech's subsystem->loop (subsystem's linked-condenser number, `BTCoolingLoopFrame`)
|
||||
and diffed vs the manual's COOLANT LOOPS tables. The 4.0->4.10 drift shows here too, but the
|
||||
STRUCTURE is remarkably intact:
|
||||
- **Backbone identical on ALL 6 mechs:** Generator A/B/C/D on loops 1/2/3/5, **Sensors** (our
|
||||
"Avionics") on loop 2, **Myomers** on loop 5, LRMs on loops 1&3, autocannon on loop 4, the
|
||||
large energy weapon on loop 6 -- match the manual exactly.
|
||||
- **Weapon LOADOUT identical on 5 of 6** (Thor, Vulture, MadCat, Owens, Blackhawk carry the exact
|
||||
same weapon set 4.0->4.10). **Loki is the one full rework** (4.0 PPC x2 / AFC100 / SRM6 / Medium
|
||||
Laser -> 4.10 AFC50 x2 / ER Medium x2 / SRM4).
|
||||
- **The consistent 4.0->4.10 change:** the small energy weapons were REDISTRIBUTED across loops --
|
||||
the 2 ER Small Lasers moved off the sensor/heavy loops (4.0) onto the energy-weapon loops 4&6
|
||||
(4.10) on Thor/MadCat/Vulture; SRM/laser placement reshuffled on Blackhawk. Owens is a
|
||||
near-PERFECT match (loops 1&3 exact; only a 4.0 "second myomer set" on loop 2 is absent).
|
||||
- **`Loop 0` = correctly UNCOOLED infrastructure** (condensers, reservoir, gyro, torso, HUD,
|
||||
searchlight, thermal sight, ammo bins, message manager, mechtech, controls mapper) -- not a loop.
|
||||
CONCLUSION: the coolant-loop reconstruction is faithful; every difference is 4.0->4.10 tuning
|
||||
(loadout rework on Loki, small-laser redistribution elsewhere), NOT a bug. `BT_SPEC_LOG` (mech4)
|
||||
re-dumps on demand.
|
||||
|
||||
## Key Relationships
|
||||
- Renders: [[gauges-hud]] (the MFD surfaces), [[rendering]] (the main 3D view).
|
||||
- Input: [[locomotion]] (the mapper).
|
||||
|
||||
@@ -2514,6 +2514,28 @@ void
|
||||
AuthenticGroundAndCollide(dt, preMovePos);
|
||||
}
|
||||
|
||||
// SPEC AUDIT (BT_SPEC_LOG): once, after all subsystems are built + linked,
|
||||
// dump each subsystem -> coolant loop (BTCoolingLoopFrame resolves the
|
||||
// linked condenser's number, the manual's "Loop N"). Diffs the per-mech
|
||||
// COOLANT LOOPS table vs the 1995 manual (structural, less tuning-prone).
|
||||
if (isPlayerMech && getenv("BT_SPEC_LOG"))
|
||||
{
|
||||
static int s_specDumped = 0;
|
||||
if (!s_specDumped && dt > 0.0001f)
|
||||
{
|
||||
s_specDumped = 1;
|
||||
extern int BTCoolingLoopFrame(void *subsystem);
|
||||
for (int i = 0; i < GetSubsystemCount(); ++i)
|
||||
{
|
||||
Subsystem *s = GetSubsystem(i);
|
||||
if (s == 0) continue;
|
||||
DEBUG_STREAM << "[spec] loop " << BTCoolingLoopFrame(s)
|
||||
<< " <- " << (s->GetName() ? s->GetName() : "?")
|
||||
<< "\n" << std::flush;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (isPlayerMech && dt > 0.0001f && dt < 0.5f) // ignore zero / huge (stall) slices
|
||||
{
|
||||
// --- VIRTUAL CONTROLS (dev keyboard -> the pod's analog inputs) --------
|
||||
|
||||
Reference in New Issue
Block a user