The 'mysterious flag pair' gating every master-only registration was never
BT-specific state waiting on unreconstructed stream builders. It is the
Entity base itself: InstanceBits=2 puts the instance field at mask 0xC
(ReplicantInstance=4), DynamicBit=8 makes DynamicFlag 0x100 -- so the
binary's (flags & 0xC)==0 && (flags & 0x100)!=0 reads 'a master-instance
dynamic entity', spelled MasterInstance + DynamicFlag in the 1995 headers.
Mover::DefaultFlags = DynamicFlag|MasterInstance, ENTITY.CPP:978 seeds
simulationFlags from the MakeMessage's instanceFlags, and our spawn recipe
has passed Mech::DefaultFlags since the boot ladder -- the authentic gate
was live all along. The BT411 donor's 'MasterHeatSinkFlag' name was a
fabrication that made an engine constant look like a missing subsystem
feature (donor drift #12).
Eleven sites flip from the GetInstance() mirror to the binary pair: the
heat-family registrations (x4), powersub (x3), gyro, hud, myomers,
emitter, and the Torso ctor's master/copy selection (@004b6b0c verbatim,
isDamagedCopy set in both branches). The MECHWEAP score-post and MECH view
gates are different families and stay as they are.
Statically proven (DefaultFlags carries both bits) and mission-soaked
clean. No [T2] divergence markers remain in the tree.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The feel wave's cornerstone, transcribed from the task-#56 byte-exact donor
per the GYRO.NOTES.md plan:
THE SPRINGS. IntegrateEyeJoint (@004b2ec0): the eye TRANSLATION spring
whose equilibrium (posSpring+negSpring)/2 IS the authentic steady eye
offset, with the byte-verified quirks intact -- the damping step
OVERWRITES the force accumulator (it carries last frame's damping and
the damage impulses by design) and the position step has NO dt.
IntegrateBody (@004b30ec): the body ROTATION spring, X/Z-crossed on the
spring force and crossed AGAIN on the orientation step.
THE SIM (@004b275c): chain the power watch (5.3.109's mirrors), slew the
sway angle between the powered and impaired percentages -- impaired reads
the gyro's OWN mirrored alarms: watchdog != Ready or heat == Failure --
band-clamp, run both integrators. The Performance ends there.
THE JOINT WRITES (@004b33e0/@004b34ec) live where the binary calls them:
the MECH master-perf tail after the gait pass, death-gated -- the idle
sway onto the EyeJoint, and TRANSLATION <- eyePosition + ROTATION <-
bodyOrientation onto 'jointeye', the BallTranslation joint the cockpit
eyepoint rides. Every write QuantiseEps-gated.
THE HIT BOUNCE (@004b2980): every non-collision hit shakes the cockpit.
Direction from the damage force (random horizontal when ~zero), rotated
into the yaw-only torso frame, per-type priced amount/multiplier*response
(Explosive alone reads burstCount), clamped 1.3 UPPER only, then the four
kicks -- impulse, torque (which zeroes .y and negates itself), the fixed
up-axis vibration, and the vertical mirror. Fed from the damage hub's
step 1, BEFORE zone resolution -- an invalid-zone hit still shakes you.
THE CRUNCH: driving through a crushable prop now kicks the gyro (torque
0.4 along the contact normal, upward impulse 0.2) -- the 5.3.102 staged
site, closed.
Resource: the five DamageResponse quads {trans,pitchRoll,yaw,vibration}
appended after the multipliers (record 0x21C, binary-verified layout) --
they were always in the stream; we simply never read them. The ctor now
zeroes every accumulator (the donor's history records a NaN poison from
exactly that omission), copies the clamp pairs (body doubled), self-points
externalPitchPtr at spare0 until a torso binds it, and REGISTERS the
Performance on the master -- it ticks live, no fault.
Stub census: 19 across 13 files.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Eye/body stabilisation subsystem. Full resource struct + tuning members
(springs/damping/noise/percentages/damage multipliers) reconstructed; the
eye/body dynamics accumulators held in a reserved pad until the per-frame
GyroscopeSimulation is reconstructed (phase 5). Ctor chains PowerWatcher + copies
tuning; statics/dtor/test/reset real; sim staged. BT: 28 ok.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>