Mech: THE 0xBD3 UNTANGLE -- real SubsystemMessageManager in [0x10d], the mapper's one true home is roster slot 0 (task #7)
Binary census [T1]: mech+0x434 has exactly 2 writers (ctor init + factory case 0xBD3) and ONE reader (@0x4b984b in MechWeapon::SendDamageMessage @004b9728) -- pure message-manager semantics, nothing mapper-like. The factory case now builds the real SubsystemMessageManager (ctor @0049bca4, 0x130, ConsolidateAndSendDamage Performance); the misbuilt MechControlsMapper squatter is evicted. Every mapper consumer re-pointed to MappingMapper() (roster slot 0 = the binary's **(mech+0x128); SetMappingSubsystem @0049fe40 touches ONLY slot 0 -- its [0x10d] mirror removed). Non-viewpoint mechs get a slot-0 demand LATCH (base mapper, [T3] accommodation -- the binary leaves slot 0 NULL off-viewpoint but never drives/animates those paths; ours does). Verified: solo drive+gait clean; MP replicant gait through the latch (full run lifecycle); 3x kill/respawn cycle with type-6 records on the observer. Remaining (task #7 tail): the messmgr's consolidated TakeDamageStream send + weapon-path routing (@004b9728 real body). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Fable 5
parent
8ed6184d65
commit
afefaeece5
@@ -153,7 +153,8 @@ void Mech::SetMappingSubsystem(Subsystem *subsystem)
|
||||
delete subsystemArray[0];
|
||||
}
|
||||
subsystemArray[0] = subsystem;
|
||||
controlsMapper = (MechControlsMapper *)subsystem;
|
||||
// (task #7: no [0x10d] mirror -- the binary FUN_0049fe40 touches ONLY
|
||||
// slot 0; the 0x434 cache belongs to the SubsystemMessageManager.)
|
||||
}
|
||||
|
||||
// TODO(bring-up): raise a mech-level status alarm of the given id.
|
||||
|
||||
Reference in New Issue
Block a user