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;