Wreck sink (quadratic burial) + ldbr debris field -- the 1996 script completed

Answers "does the wreck fade away?": YES, by sinking.  FUN_00456410 (the 1996
sink renderable) computes offsetY = rate * t^2; the hulk's authored rate is
-0.025 -> the ~7-unit hulk is fully underground ~17s after the kill.  The
script also pairs the standing hulk with the LDBR strewn-debris field (12x13u
flat scatter), parented together and sinking together.

Also verified from the mesh data: BLHDBR (1537 verts -- more than the intact
torso) IS the authored Blackhawk wreck: the classic standing-leg-in-rubble
sculpt.  The "just a leg standing there" report is the authentic art.
(THRDBR -- the mesh the 1996 script hardcoded -- parses to ZERO vertices;
more evidence the hardcode was an unfinished dev shortcut.)

Implementation: SwapToWreck adds the ldbr piece; TickWreck applies the
quadratic sink per frame (driven from the dead mech's UpdateDeathState),
hides both pieces at burial and reports it so the wreck-smoke re-arm stops
with the wreck.  DPLStaticChildRenderable::SetOffsetTranslation added
(Execute re-reads OrientationMatrix per frame -- same in-place idiom as
SetDrawObj).

Lifecycle verified live: kill -> 'blhdbr.bgf' + ldbr debris -> smoke re-arm
@10s -> wreck buried @~17s -> smoke stops.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
arcattack
2026-07-08 15:55:01 -05:00
co-authored by Claude Fable 5
parent c0fa6bf21a
commit 5236d4263a
5 changed files with 166 additions and 9 deletions
+10
View File
@@ -1900,6 +1900,16 @@ public:
Logical TestInstance() const;
virtual void Execute();
// Overwrite the offset's translation row in place. Execute() re-reads
// OrientationMatrix every frame, so this animates the child -- the BT
// death-wreck SINK (the 1996 script's quadratic burial) drives it.
void SetOffsetTranslation(float x, float y, float z)
{
OrientationMatrix(3, 0) = x;
OrientationMatrix(3, 1) = y;
OrientationMatrix(3, 2) = z;
}
protected:
dpl_DCS *myDCS, *myParentDCS;