From a2333de7c17bdd3ebf05fc7c5e5bec37d1c12df8 Mon Sep 17 00:00:00 2001 From: arcattack Date: Wed, 8 Jul 2026 16:19:35 -0500 Subject: [PATCH] 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 --- game/reconstructed/mech4.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/game/reconstructed/mech4.cpp b/game/reconstructed/mech4.cpp index 77b77f3..ee88af5 100644 --- a/game/reconstructed/mech4.cpp +++ b/game/reconstructed/mech4.cpp @@ -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;