The subsystem (sim/toggle/attribute/replication) was already complete; this lands the missing VISUALS, decoded from MakeMechRenderables @004cef28 case 0xbd8 (raw pseudocode part_014): - COCKPIT: the 1995 searchlight is a FOG SWAP -- the @00456778/@00456814 watcher switches DPLRenderer::SetFogStyle between the authored fog= (lit) and nosearchlightfog= (dark) sets per map/time page in BTDPL.INI. The engine kept the whole system under its real names; completed the stubbed plane application (currentFogNear/Far) and transcribed the watcher (with its inverted-cache seed) into TickSearchlight. CONSEQUENCE: night now STARTS on the authentic dark set (near-plane 5u on arena pages) -- our builds had rendered the searchlight-ON fog permanently. - EXTERNAL: spot.bgf beam cone hung on the searchlight SITE joint, shown/ hidden from the replicated LightOn attribute (@0045612c watcher). Site segments now build geometry-less DCS children (posed + parentable, as the 1995 graph did) -- previously they were skipped entirely. - searchlight.hpp: commandedOn @0x1DC identified as mountSegment (resource segmentIndex; the cone's mount joint). Benches: searchfog.sh (solo cockpit: first-tick dark sync, F5/0x14 press -> SetFogStyle(2), red-fog probe end-to-end), spotcone.sh (2-node: B's button -> lightState replication -> A logs "[spot] cone SHOWN (seg 20)"). Cone look (size/aim on the mount) pending an eyeball pass. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
32 lines
1.3 KiB
Bash
32 lines
1.3 KiB
Bash
#!/bin/bash
|
|
# SEARCHLIGHT bench 1 (cockpit fog swap): solo night run; BT_BTNTEST presses
|
|
# the searchlight button (0x14 = F5's binding) at poll 600, releases 700.
|
|
# PASS (log): "[spot] searchlight pass: N light(s) ... (cockpit: fog watcher)";
|
|
# first tick "[spot] cockpit fog -> searchLightOff" (the inverted-seed sync ->
|
|
# authentic DARK night start on nosearchlightfog=5..400); after the press
|
|
# "[light] ... requested ON", "[fogstyle] SetFogStyle(2)", "[spot] cockpit fog
|
|
# -> searchLightOn". BT_SHOT frames: post-toggle frames measurably brighter
|
|
# (fog near 5 -> 40 on arena_night-family pages).
|
|
set -e
|
|
cd /c/git/bt411/content
|
|
. /c/git/bt411/scratchpad/night6/bench_common.sh
|
|
taskkill //F //IM btl4.exe > /dev/null 2>&1 || true; sleep 2
|
|
rm -f sfog_*.png sfog.log
|
|
sed "s/^map=.*/map=grass/; s/^time=.*/time=night/; 0,/^vehicle=.*/s//vehicle=madcat/" MP.EGG > SG2.EGG
|
|
|
|
(
|
|
export BT_START_INSIDE=1 BT_SHOT_EVERY=60 BT_SHOT_PREFIX=sfog
|
|
export BT_BTNTEST=0x14,600,700
|
|
export BT_FIRE_LOG=1 BT_FOG_LOG=1 BT_DEV_GAUGES=1
|
|
bt_launch "sfog.log" SG2.EGG 0x03
|
|
)
|
|
sleep 75
|
|
taskkill //F //IM btl4.exe > /dev/null 2>&1 || true; sleep 3
|
|
|
|
echo "=== searchlight pass + fog receipts:"
|
|
grep -aE "\[spot\]|\[fogstyle\]|\[light\]|btntest" sfog.log | head -16
|
|
echo "=== fog page resolve:"
|
|
grep -a "\[fog\] resolved" sfog.log | head -2
|
|
echo "=== frames:"
|
|
ls sfog_*.png 2>/dev/null | head -20
|