diff --git a/game/reconstructed/mech4.cpp b/game/reconstructed/mech4.cpp index 2f1ba3b..09cca72 100644 --- a/game/reconstructed/mech4.cpp +++ b/game/reconstructed/mech4.cpp @@ -6961,10 +6961,16 @@ void // there, moving caret gone". Re-seed instead of propagating. if (!(trueRange == trueRange) || !(sShownRange == sShownRange)) { - if (getenv("BT_RANGE_LOG")) + // #147: ALWAYS-ON (capped) -- the trap is the ONLY evidence + // that can name the NaN source in a field log, and Friday's + // fleet does not set BT_RANGE_LOG. Fires once per poisoning + // (the re-seed clears it); the #172 rare-forensic precedent. + static int s_nanPrints = 0; + if (s_nanPrints < 20 && ++s_nanPrints) DEBUG_STREAM << "[range] NaN TRAPPED (true=" << trueRange - << " shown=" << sShownRange << ") -- re-seeded to 1200\n" - << std::flush; + << " shown=" << sShownRange << ") -- re-seeded to 1200" + << ((s_nanPrints == 20) ? " (cap reached)" : "") + << "\n" << std::flush; trueRange = 1200.0f; sShownRange = 1200.0f; }