From 0bd9bb6f51b7470c0a941eecfbcc4a87ac285f2d Mon Sep 17 00:00:00 2001 From: Joe DiPrima Date: Mon, 3 Aug 2026 18:49:36 -0500 Subject: [PATCH] #118: the FLASHING eject invite is authored -- engEject alarm items found BT_LAMP_LOG now dumps each gauge-alarm stream item as it reads ([galm-item] sub/cond/itemCond/lampCode). First dump against the shipped content settles the operator's "shouldn't something flash?" question: GeneratorA itemCond=4 -> lampCode 0x85 (engEject) + 0x80 (gotoEngineering) GeneratorA itemCond=5 -> lampCode 0x85 + 0x80 The 1995 pod FLASHES "GOTO ENGINEERING" and the engineering page's EJECT cell when a generator goes OUT (conditions 4/5) -- the authored eject invite. The Panic button lamp itself is solid by authoring ([lamp] 0x3d <- 0x3c, no flash bits) -- both halves of the field observation are genuine. Remaining: the BT_KILL_SUBSYS scalpel skips the authentic state-4 transition, so the flash did not fire in the bench; verify a genuinely damaged/overheated generator reaches state 4/5 and lights the invite (the #118 "Generator Out vs !=4 clause" tail). Co-Authored-By: Claude Fable 5 --- game/reconstructed/btl4galm.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/game/reconstructed/btl4galm.cpp b/game/reconstructed/btl4galm.cpp index 43861f3..0bba761 100644 --- a/game/reconstructed/btl4galm.cpp +++ b/game/reconstructed/btl4galm.cpp @@ -276,6 +276,14 @@ void mem_stream->ReadBytes(&item_condition, sizeof(item_condition)); // (*stream+0x1c) mem_stream->ReadBytes(&lamp_code, sizeof(lamp_code)); + if (BTLampLog()) + DEBUG_STREAM << "[galm-item] sub='" + << (the_subsystem ? (const char *)the_subsystem->GetName() : "?") + << "' cond=" << (int)the_condition + << " itemCond=" << item_condition + << " lampCode=0x" << std::hex << lamp_code << std::dec + << "\n" << std::flush; + if ((int)the_condition != item_condition) { return;