From 614849b4a63fb5b1f920e5fb69bf2dab59b1d635 Mon Sep 17 00:00:00 2001 From: Joe DiPrima Date: Sun, 2 Aug 2026 08:43:33 -0500 Subject: [PATCH] #110 coverage: all 8 chassis + all 3 weapon-class gates verified through ZONE death Answering "are you 100% positive this works for every weapon type" -- it was not a yes when asked, and the gaps were closed with measurement rather than assurance: 1. AUTHORED DATA, all eight chassis (zonesweep.sh; the [zone-armor] dump now carries the zone NAME): every arm zone AND every missile-rack zone on every chassis authors descend=1 (ava/bhk/lok/mad/own/snd/thr/vul); every gun/rack zone lists 1-4 critical subsystems; doors are inert (0/0/0); bhk uniquely adds destroySibs=1 on its arm chain. No chassis is missing the cascade authoring. 2. WEAPON-CLASS GATES, end to end through a ZONE death (not direct weapon destruction, which was #86's verification gap): ballistic AFC100 (projweap gate1) -- dz_rarm, ava1 [prior commit] energy PPC (emitter gate) -- dz_larm, ava1 [prior commit] missile NRK5_2 (projweap gate1) -- dz_rmissle, own1 [this pass] [cascade] zone 12 -> NRK5_2 + AmmoBinNRK5_2 force-failed [ammo] NRK5_2 -> NoAmmo (gate1): destroyed=1 All three fire-gate code paths are now exercised by the cascade. 3. One anomaly chased to ground rather than waved off: the Owens rack cascade also killed Avionics/HUD/Searchlight/ThermalSight -- zone 15 dz_searchlight, an authored CHILD SEGMENT of the missile rack (the sensor mast sits on the shoulder pod). Authored skeleton + authored descend flag, walked faithfully. Remaining surface NOT bench-verified, stated plainly: cross-pod -- the cascade is master-authoritative (crit plugs bind on masters only) and the resulting alarm states ride the existing weapon update records, but no two-node run has watched a peer's view of an arm death. The field re-test (Lynx/Conn Man's own audit, in MP) covers exactly that. Co-Authored-By: Claude Opus 5 (1M context) --- game/reconstructed/mechdmg.cpp | 1 + scratchpad/night9/zonesweep.sh | 16 ++++++++++++++++ 2 files changed, 17 insertions(+) create mode 100644 scratchpad/night9/zonesweep.sh diff --git a/game/reconstructed/mechdmg.cpp b/game/reconstructed/mechdmg.cpp index 2c6517f..8b12682 100644 --- a/game/reconstructed/mechdmg.cpp +++ b/game/reconstructed/mechdmg.cpp @@ -278,6 +278,7 @@ Mech__DamageZone::Mech__DamageZone( // the authored ram economy. if (getenv("BT_DMG_LOG")) DEBUG_STREAM << "[zone-armor] zone=" << damageZoneIndex + << " '" << (const char *)damageZoneName << "'" << " armorPts=" << defaultArmorPoints << " raw={" << rawScale[0] << "," << rawScale[1] << "," << rawScale[2] << "," << rawScale[3] << "," << rawScale[4] << "}" diff --git a/scratchpad/night9/zonesweep.sh b/scratchpad/night9/zonesweep.sh new file mode 100644 index 0000000..4e8b70e --- /dev/null +++ b/scratchpad/night9/zonesweep.sh @@ -0,0 +1,16 @@ +#!/usr/bin/env bash +# #110 coverage: dump EVERY chassis's zone-cascade authoring (no combat -- just +# boot, let the mech build, capture the [zone-armor] table, exit). +set -x +. /c/git/bt411/scratchpad/night6/bench_common.sh +cd /c/git/bt411/content || exit 1 +V="$1" +taskkill //F //IM btl4.exe > /dev/null 2>&1 +sleep 2 +sed "s/^map=.*/map=grass/; s/^time=.*/time=day/; 0,/^vehicle=.*/s//vehicle=$V/" MP.EGG > ZS.EGG +rm -f zonesweep_$V.log +export BT_DMG_LOG=1 +bt_launch zonesweep_$V.log ZS.EGG 0x03 +sleep 55 +taskkill //F //IM btl4.exe > /dev/null 2>&1 +sleep 2