Valve forensics + KB: the boost mechanic is real; the field cook-off was a detent question
Measured A/B/C (Blackhawk, sustained autofire, 150s soaks): SRM6 on
Condenser2 plateaus ~531 and COOLS at share 0.91 (boost 2), climbs to
the jam band at balanced (0.167), and runs at the 2000 failure line
starved (0.018). MoveValve reruns the redistribute every press;
veteran passes the novice guard. The field 'boosted loop 2 still
cooked' therefore means the valve was NOT at the 50 detent during the
fight -- the 1->5->50->0 cycle turns the loop OFF one press past max.
MoveValve presses now log always-on ('[valve] <name> -> detent N' +
a CLOSED warning) so the next field session records the detents.
Also: solo mission clock verified live (60s egg self-ends,
'[mission] solo game clock expired' -> RunMissions returns).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
a8a6da6760
commit
86e387b6c7
@@ -120,6 +120,21 @@ manual), bluish cloud screenshot-confirmed (scratchpad/flush_cloud.png). Replica
|
||||
receive @4aeef8 sets the alarm from the state stream — the port's reservoir state replication is not
|
||||
wired, so remote clouds are deferred (solo/master path complete).
|
||||
|
||||
## Valve boost A/B/C (2026-07-23, field "boosted loop still cooked" audit) [T2 measured]
|
||||
Blackhawk, sustained BT_AUTOFIRE, 150 s soaks, `[heat-t]` 5 s cadence. Valve shares are
|
||||
zero-sum (`valveState/Σ`); detent cycle per press = **1 → 5 → 50 → 0 (CLOSED) → 1** (@4ae464,
|
||||
one past max turns the loop OFF). SRM6s (+ GeneratorB + Avionics) are on **Condenser2**
|
||||
([heat-link] dump; the MFD loop readout matches the heatSinkIndex truth). Results, SRM6_1:
|
||||
- **boost 2 (share 0.91)**: plateau ~531, then COOLS under nonstop fire — never jams/fails.
|
||||
- **balanced (0.167)**: ~1162 @ 70 s and climbing (the jam band; field jams logged 1043-1469).
|
||||
- **starved (0.018)**: ~1440 @ 70 s, slope → the 2000 FailureHeat line.
|
||||
The valve mechanic is REAL and powerful; MoveValve reruns the redistribute on every press
|
||||
(not a placebo), veteran role passes the guard. The field double-failure with "loop 2
|
||||
boosted" is therefore a DETENT question — most likely one press past max (detent 0 = closed,
|
||||
share 0) — now diagnosable: valve presses log always-on (`[valve] ... -> detent N`, with a
|
||||
CLOSED warning). Solo clock shim verified the same day (60 s egg self-ends;
|
||||
`[mission] solo game clock expired`).
|
||||
|
||||
## The four systemic checks (every subsystem)
|
||||
See [[reconstruction-gotchas]]: (1) shadowing (re-declared engine-base fields), (2) the `Wword` trap,
|
||||
(3) message-handler chaining, (4) entity validity. Plus resource-struct layout (must mirror the class
|
||||
|
||||
@@ -175,9 +175,14 @@ void
|
||||
case 0: valveState = 1; break; // @4ae499
|
||||
case 1: valveState = 5; break; // @4ae4a5
|
||||
case 5: valveState = 50; break; // @4ae4b1 (0x32)
|
||||
case 50: valveState = 0; break; // @4ae4bd
|
||||
case 50: valveState = 0; break; // @4ae4bd -- one past max = CLOSED
|
||||
default: return; // @4ae497 unknown -> no change / no recompute
|
||||
}
|
||||
// ALWAYS log a valve press (rare + forensic -- the 2026-07-23 "boosted loop
|
||||
// still cooked" field case could not be reconstructed without the detents)
|
||||
DEBUG_STREAM << "[valve] " << GetName() << " valve -> detent " << valveState
|
||||
<< (valveState == 0 ? " (CLOSED -- this loop is now UNCOOLED)" : "")
|
||||
<< "\n" << std::flush;
|
||||
BTRecomputeCondenserValves((Entity *)owner); // FUN_0049f788(this[0xd0]=owner Mech)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user