Combat: the AUTHENTIC consolidated damage delivery -- TakeDamageStream through the message manager (task #7 tail)

ConsolidateAndSendDamage @0049b784 fully implemented: the beam path submits
into AddDamageMessage; each messmgr tick builds ONE Entity::
TakeDamageStreamMessage (id 0x13; wire-verified 0x34+4+Nx12) with the
common impact record + appended {type, amount, subsystemID} entries and
Dispatches it at the victim -- the T0 handler (ENTITY.cpp:817) re-splits
into per-record TakeDamage; replicants reroute cross-pod.  Real
ResolveExplosionID (firing weapon's +0x3E4, guarded) + SubmitExplosion via
the Explosion::Make port; TWO chain-purge bugs fixed (the "iterator dtor
clears it" assumption was wrong -- records re-applied every tick, observed
1->2->3->4 double-counting).  @004b9728 identity corrected (SendDamageMessage,
not DrawWeaponPip).  Verified solo: 25 clean single-record consolidations ->
kill -> death transition.  Residue: weapon-side submission awaits the
damage-economy reconciliation (authored 0.25-scale vs kShotDamage=12).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
arcattack
2026-07-11 14:30:30 -05:00
co-authored by Claude Fable 5
parent afefaeece5
commit 77190c93e5
7 changed files with 180 additions and 58 deletions
+9 -4
View File
@@ -454,10 +454,15 @@ void
}
//
// @004b9728 -- register the targeting "pip" / fire marker with the owning Mech's
// cockpit HUD manager (entity+0x434). Skipped for non-pip weapons (the
// IsDerivedFrom(0x50bdb4) / segment-index guard). Builds a HUD element record
// {priority 100, kind 0x12, flags} carrying the pip transform and submits it.
// ⚠ IDENTITY CORRECTION (task #7): @004b9728 is MechWeapon::SendDamageMessage
// -- the weapon-fire damage submission into the owning mech's
// SubsystemMessageManager (mech+0x434 -> AddDamageMessage @0049b6d8), NOT a
// HUD pip. The "HUD element record" reading below was the same 0x434
// misattribution the mapper suffered. The authentic weapon-side submission
// (per-weapon damageData + inflictingSubsystemID) is pending the
// damage-economy reconciliation (authored 0.25-scale amounts vs the
// bring-up kShotDamage=12); the interim submitter is the mech4 fire block
// routing through AddDamageMessage. This body stays dormant meanwhile.
//
void
MechWeapon::DrawWeaponPip(const LinearMatrix &transform)