Buried wreck: PARK the collision volume (count-zero alone doesn't unblock)
The mech-vs-mech gather (Mover::GetCurrentCollisions) tests mover->collisionVolume DIRECTLY -- it never consults collisionVolumeCount -- so the previous inert fix left the stale box blocking at the wreck spot. The count-zero now serves only to stop MoveCollisionVolume from re-placing the box, and the box itself is parked 100km underground where it intersects nothing. Verified: the autodrive harness, previously pinned at ~7m from the enemy, drives straight through the spot after burial (341,155 -> 992,-971). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Fable 5
parent
9b5004c39d
commit
a2333de7c1
@@ -981,11 +981,21 @@ void
|
||||
// the empty spot).
|
||||
if (!wreck_visible && collisionVolumeCount != 0)
|
||||
{
|
||||
// Zeroing the count stops MoveCollisionVolume from re-placing the
|
||||
// box -- but the mech-vs-mech gather (Mover::GetCurrentCollisions)
|
||||
// tests mover->collisionVolume DIRECTLY, never the count, so the
|
||||
// stale box would keep blocking at the wreck spot. PARK it far
|
||||
// underground: a box 100km down intersects nothing, ever.
|
||||
collisionVolumeCount = 0;
|
||||
if (collisionVolume != 0)
|
||||
{
|
||||
collisionVolume->minY -= 100000.0f;
|
||||
collisionVolume->maxY -= 100000.0f;
|
||||
}
|
||||
if ((Entity *)this == gEnemyMech)
|
||||
gEnemyMech = 0;
|
||||
if (getenv("BT_DEATH_LOG"))
|
||||
DEBUG_STREAM << "[death] buried wreck went INERT (collision off, "
|
||||
DEBUG_STREAM << "[death] buried wreck went INERT (collision parked, "
|
||||
"target lock dropped)\n" << std::flush;
|
||||
}
|
||||
wreckSmokeTimer -= dt;
|
||||
|
||||
Reference in New Issue
Block a user