BT410 5.3.119: the master gate comes home -- 0xC/0x100 decoded as the engine's own enums, and every [T2] mirror retired
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>
This commit is contained in:
@@ -87,7 +87,6 @@ Torso::Torso(
|
||||
Check(owner);
|
||||
Check_Pointer(r);
|
||||
|
||||
isDamagedCopy = (owner->GetInstance() == Entity::ReplicantInstance);
|
||||
|
||||
statusFlags = 0;
|
||||
buttonAccelerationPerSecond = r->buttonAccelerationPerSecond;
|
||||
@@ -168,19 +167,25 @@ Torso::Torso(
|
||||
lastUpdateTime = 0L;
|
||||
|
||||
//
|
||||
// Install the per-frame Performance. The binary's gate @004b6b0c is
|
||||
// (owner->simulationFlags & 0xC) == 0 && (owner->simulationFlags & 0x100)
|
||||
// != 0 -- the master-segment flag pair seeded by the mech stream builders,
|
||||
// which are not reconstructed yet. [T2] Until they land, the whole
|
||||
// watcher family mirrors that gate with the instance test (same sites:
|
||||
// heat.cpp / powersub.cpp / gyro.cpp registrations); revisit together.
|
||||
// Install the per-frame Performance -- the binary's gate @004b6b0c
|
||||
// verbatim: (flags & 0xC) == 0 && (flags & 0x100) != 0, which decodes to
|
||||
// the engine's own MasterInstance + DynamicFlag (InstanceBits=2 puts the
|
||||
// instance field at mask 0xC with ReplicantInstance=4; DynamicBit=8 is
|
||||
// 0x100). Entity::DefaultFlags = DynamicFlag|MasterInstance and the
|
||||
// engine seeds simulationFlags from the MakeMessage, so the gate is live
|
||||
// with no stream-builder dependency. [T2 RETIRED 5.3.119.]
|
||||
//
|
||||
if (owner->GetInstance() != Entity::ReplicantInstance)
|
||||
if (
|
||||
(owner->simulationFlags & Entity::InstanceMask) == Entity::MasterInstance &&
|
||||
(owner->simulationFlags & Entity::DynamicFlag) != 0
|
||||
)
|
||||
{
|
||||
isDamagedCopy = 0;
|
||||
SetPerformance(&Torso::TorsoSimulation);
|
||||
}
|
||||
else
|
||||
{
|
||||
isDamagedCopy = 1;
|
||||
SetPerformance(&Torso::TorsoCopySimulation); // binary PTR @00510c1c
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user