Buried wreck goes INERT: collision off + target lock dropped
Answers "it's still there but invisible": not normal -- the real game removes
the dead entity (death row). Full entity teardown needs the mech render tree
unhooked from the renderer first (the remaining P5 follow-through), so until
then the burial transition makes the wreck behaviorally gone:
- collisionVolumeCount = 0 (the collision gather skips volume-less movers;
MoveCollisionVolume early-outs) -> no phantom blocking
- the player's target lock drops -> beams stop converging on / hitting the
empty spot, no phantom impact smoke
Verified: zero [damage] hits after burial; INERT fires one-shot at
"wreck buried".
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Fable 5
parent
5236d4263a
commit
bf87360c42
@@ -961,6 +961,24 @@ void
|
||||
// authored 10s window; once buried, the smoke stops with it.
|
||||
extern int BTWreckSinkTick(Entity *victim, float dt);
|
||||
int wreck_visible = BTWreckSinkTick(this, (float)dt);
|
||||
|
||||
// BURIAL TRANSITION (one-shot): the authentic game REMOVES the dead
|
||||
// entity (the death row) once its wreck is gone; full entity teardown is
|
||||
// the remaining P5 follow-through (the render tree must be unhooked
|
||||
// first), so until then the buried wreck goes INERT instead: no
|
||||
// collision volume (stops phantom blocking -- the assistant's gather
|
||||
// skips a mover with collisionVolumeCount 0, and MoveCollisionVolume
|
||||
// early-outs) and no target lock (stops phantom hits/impact smoke on
|
||||
// the empty spot).
|
||||
if (!wreck_visible && collisionVolumeCount != 0)
|
||||
{
|
||||
collisionVolumeCount = 0;
|
||||
if ((Entity *)this == gEnemyMech)
|
||||
gEnemyMech = 0;
|
||||
if (getenv("BT_DEATH_LOG"))
|
||||
DEBUG_STREAM << "[death] buried wreck went INERT (collision off, "
|
||||
"target lock dropped)\n" << std::flush;
|
||||
}
|
||||
wreckSmokeTimer -= dt;
|
||||
if (wreck_visible && wreckSmokeTimer <= 0.0f)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user