USER REPORT: "when you destroy a mech, it continues to smoke for a very long
time after the mech disappears... up to 30secs to a minute."
MEASURED (new [pfx] timed census with per-def particle attribution): the
death plume (psfx 1 DDTHSMK) was re-armed on a 10s cadence as a WORLD effect
(ownerTag=0) -- so neither the burial transition nor the respawn cleanup
(StopAllEntityEffects) could touch it. The last-armed window kept emitting
over the empty spot for up to 10s after the hulk vanished, plus 6+-2s authored
particle lives, and back-to-back windows stretched the visible tail to the
reported range. The re-arm itself is a marked PORT ADDITION [T3]; the binary
fired DDTHSMK once -- its 10s window + particle lives ended right around the
~17s hulk sink. The authored design: the smoke dies WITH the burial.
FIX: the plume is spawned ATTACHED (BTStartPfxAttached, tagged to the dying
entity -- it also rides the sinking hulk now), and the burial transition calls
BTStopEntityPfx alongside the respawn cleanup that already did. Verified over
a 175s run containing FOUR wreck events (the enemy kill + three player bay-
fire deaths): every plume's emission ends at its wreck's burial or respawn,
particles fade within ~8-11s, no orphan emitters remain.
THE COUPLING (user relay of Oracle: "prolonged smoke and explosion INCLUDING
SOUND... same lever?") -- CONFIRMED as a family: the binary's audio layer
times in FRAME COUNTS converted by the engine frame-rate global:
AudioTime::Seconds_To_Frames == fmul [0x52140c]=28.0; fadd 0.5; round
(@0x42c611, @0x42dd86 -- the 0x42xxxx cluster of the ~90 global consumers)
Our engine's DefaultRendererRate said 30: every audio duration, sequence
delay and compression window ran ~7% fast. Calibrated to 28 [T1]. NOT yet
explained by this: a truly SUSTAINED/looping explosion sound (7% is not
"prolonged") -- the effect stop-path trace stays open on #114/#51.
Tooling: BTPfxParticle carries defIndex; [pfx] census (BT_PFX_LOG, 2s) prints
emitters + particles PER EFFECT SLOT with a timestamp; wrecksmoke.sh.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
20 lines
764 B
Bash
20 lines
764 B
Bash
#!/usr/bin/env bash
|
|
# Wreck-smoke tail: kill the enemy, then WATCH 90s after the kill.
|
|
# Reads: [pfx] census every 2s (emitters by psfx slot + particle count),
|
|
# [death] wreck re-arm lines, BT_SHOT frames for the visual tail.
|
|
set -x
|
|
. /c/git/bt411/scratchpad/night6/bench_common.sh
|
|
cd /c/git/bt411/content || exit 1
|
|
taskkill //F //IM btl4.exe > /dev/null 2>&1
|
|
sleep 2
|
|
sed "s/^map=.*/map=grass/; s/^time=.*/time=day/" MP.EGG > WS.EGG
|
|
rm -f wrecksmoke.log smoke_*.png
|
|
export BT_SPAWN_ENEMY=1 BT_GOTO=enemy BT_GOTO_STOP=60
|
|
export BT_AUTOFIRE=1 BT_AF_MISSILE=1 BT_AF_PERIOD=3
|
|
export BT_PFX_LOG=1 BT_DEATH_LOG=1 BT_DMG_LOG=1
|
|
export BT_SHOT_EVERY=60 BT_SHOT_PREFIX=smoke
|
|
bt_launch wrecksmoke.log WS.EGG 0x03
|
|
sleep 190
|
|
taskkill //F //IM btl4.exe > /dev/null 2>&1
|
|
sleep 2
|