Respawn-reset audit: valve restore + peer smoke cleanup (both binary-grounded)
Operator reports audited vs the binary (full matrix in RESPAWN_REARM_PLAN addendum): - VALVES (real gap): Condenser reset @004ae534 was missing from the decomp export -- raw disasm shows it chains HEATSINK (coolant refill runs; the old body chained HeatableSubsystem per the stale TCP shard) then, respawn- side, resets valveState to detent 1 and restores massScale from refrigerationFactor. Mech::Reset now also runs the binary's tail call (@0049f788 BTRecomputeCondenserValves) so flow fractions rebuild from the reset detents. Bench: detent 5 -> death -> "[respawn] Condenser1 valve detent 5 -> 1". - #129 SMOKE (real gap, peers-only): the replicant un-wreck edge rebuilt the model without the @004d0c14 per-entity effect cleanup, so the observer's last 10s wreck-plume window rode the teleport onto the fresh mech. BTStopEntityPfx now runs on the edge; bench shows no plume line after any un-wreck until the next death. - AUTHENTIC (no fix): weapon->generator taps persist (@004b0e6c only resolves the link) and MFD display/control modes persist (mapper vtables 0050f45c/0051e440 slots 8-11 = plain root bodies, read from the exe). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Fable 5
parent
b6656e35c5
commit
26ab2fee3a
@@ -2142,6 +2142,17 @@ void
|
||||
((MechSubsystem *)s)->RespawnRepair(); // fresh-mech: zone + status
|
||||
}
|
||||
|
||||
// --- coolant-valve redistribution: the binary Reset tail calls @0049f788
|
||||
// after the sweep and before ForceUpdate -- the Condenser resets just
|
||||
// put every valve back at detent 1 (heat.cpp @004ae534), and this
|
||||
// rebuilds the per-loop flow fractions from those defaults. Without it
|
||||
// the fractions keep the previous life's split (the operator-reported
|
||||
// "valves survive a respawn"). [T1 @0049fb74 + raw @004ae534]
|
||||
{
|
||||
extern void BTRecomputeCondenserValves(Entity *owner);
|
||||
BTRecomputeCondenserValves((Entity *)this);
|
||||
}
|
||||
|
||||
// --- locomotion pre-run + interest gates (a reset master must tick) ---
|
||||
SetPreRunFlag();
|
||||
if (interestCount == 0) interestCount = 1;
|
||||
|
||||
Reference in New Issue
Block a user