Issue #38 (partial): egg camo-color validation + paint forensics

Respawn-paint investigation: 10 forced respawns on the i22 rig showed
paint STABLE across in-place respawns on both master and replicant --
the in-place reset does NOT repaint.  Two real findings landed:

1. 'Red' is NOT a camo color (the vehicle table authors Crimson=red for
   camo; Red exists only as a PATCH color) -- an egg with color=Red
   paints the mech silent gray from first spawn (the engine tolerates
   the table miss by design).  The relay now WARNS at egg load on any
   color= outside the camo set; our MPSHORT test egg had exactly this
   bug (fixed).
2. [paint] log now carries the entity id, so the one-time-observed
   nondeterministic video-model rebuilds (sernos 2-5 with swapped
   colors, run 1 only) will be attributable when they recur.

The reported color/style change on respawn remains unreproduced in the
deterministic rig -- needs the observer detail (whose mech, which view)
from the next field sighting.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
arcattack
2026-07-24 00:22:42 -05:00
co-authored by Claude Opus 4.8
parent 3d8bfdeba6
commit ac7f0cb13a
3 changed files with 266 additions and 1 deletions
+5 -1
View File
@@ -35,6 +35,7 @@
//
#include <bt.hpp>
#include <matchlog.hpp> // [paint] entity ids
#if !defined(EMITTER_HPP)
# include <emitter.hpp> // Emitter/PPC (the reticle's per-weapon pip wiring)
#endif
@@ -2186,7 +2187,10 @@ void
<< "' -> codes color=" << (veh_color ? veh_color : "-")
<< " badge=" << (veh_badge ? veh_badge : "-")
<< " patch=" << (veh_patch ? veh_patch : "-")
<< " serno=" << gSerno << "\n" << std::flush;
<< " serno=" << gSerno
<< " entity=" << BTMatchHostOf(mech->GetEntityID())
<< ":" << (int)mech->GetEntityID()
<< "\n" << std::flush;
//
// Generic substitution list, then expand placeholders per entry.