Files
RP412/.gitignore
T
CydandClaude Opus 5 e2bcb29a53 The throttle a pod respawns under is nobody's order
Player request from the six-player night: a pod that dies at full throttle
reappears under a hand still holding full throttle, and launches on it.
The pod should respawn with the throttle at zero and stay there until the
player has brought the control back to zero themselves. The arcade never
met the problem in this form - its throttle was a physical lever that kept
its position regardless - but the same idea protects a real lever too,
which matters now that the pods want this code.

The latch lives in VTVControlsMapper, the one place every control source -
RIO lever, pad trigger, keyboard axis, input script - funnels through, per
simulation step, so it is deterministic and local to the owning machine by
construction (the mapper only runs on MasterInstance).

VTV::Reset arms it through DeathReset, with one wrinkle: the controls
mapper is subsystem ZERO, below BasicSubsystemCount, so Reset's subsystem
loop has never reached it. It is called explicitly now. Only RegularReset
latches - that is the death respawn and the first spawn (so a throttle
held through the countdown no longer buys a flying start). Football's
repositioning reset does not latch, and mission review has no controls.

While latched the mapper computes as though the throttle were zero, but
only for the pass: the true lever position is restored at the bottom of
the function, so the cockpit gauge and the watchers keep showing the
player the hand they need to bring down. The restore also keeps the
release test honest - RIO analog events arrive on CHANGE, so a zeroed
attribute would otherwise sit at zero, release the latch by itself, and
hand back a live throttle the moment the hand twitched.

Release is at 5% of travel: wide enough for a resting trigger or a real
lever's potentiometer sitting a few counts off its stop, narrow enough
that easing off does not satisfy it.

Proven with the input-script harness, both directions. Throttle held at
1.0 from the green light: the pod moves 1.3cm in 30 seconds, all of it
hover settle. Throttle at zero for two seconds then 1.0: the latch
releases in the quiet window and the pod is 665m down the track twenty
seconds later. The second run is also the normal-play case - a control
already at zero releases the latch on the first step, invisibly.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-11 21:08:16 -05:00

108 lines
2.4 KiB
Plaintext

# Visual Studio build artifacts
[Dd]ebug/
[Rr]elease/
[Dd]ebug*/
[Rr]elease*/
x64/
x86/
[Bb]in/
[Oo]bj/
ipch/
*.aps
*.ncb
*.opensdf
*.sdf
*.suo
*.user
*.cachefile
*.sln.cache
*.vspscc
*.vssscc
*.pch
*.ilk
*.tlog
*.lastbuildstate
*.idb
*.pdb
*.obj
*.o
*.exe
*.dll
*.exp
*.map
# Visual Studio per-user / IDE state
.vs/
*.VC.db
*.VC.opendb
# Runtime / generated output
*.log
rpl4.log
# Where the game window and the exploded view's panes were last dragged
# to (RP412MFDLAYOUT). Per-machine by nature - it is screen coordinates
# on somebody's desk.
mfd_layout.cfg
# The pilot's callsign, remembered between sessions. Whoever is sitting
# at this machine, which is not the repo's business.
pilot.cfg
# Generated by stamp-version.ps1 as RP_L4's pre-build step. The patch
# number in it IS this repository's commit count, so a committed copy
# would be stale the moment it was committed.
/RP_L4/rpl4build.h
# Build-output static libs that land in lib/ (the two committed dependency
# libs, OpenAL32.lib and libsndfile-1.lib, stay tracked).
/lib/Munga_L4.lib
/lib/DivLoader.lib
# Stale Subversion metadata
.svn/
# OS cruft
Thumbs.db
desktop.ini
.DS_Store
# Packaged runnable game (pack-dist.ps1 output)
/dist/
# Local cockpit-launcher experiments — deliberately untracked
assets/RP411/startrp-800x600.bat
assets/RP411/startrp-800x600.ps1
# Bundled game working copy: committed wholesale as runtime data (see
# docs/ASSETS.md). Re-include the binaries the global rules above would skip.
!assets/**/*.exe
!assets/**/*.dll
# ...but never the spool runtime output or Windows thumbnail caches.
assets/**/*.spl
assets/**/last.spl
# packaged releases (attached to Gitea releases, not tracked)
RedPlanet-*.zip
# Crash dumps sent in by testers. Read them with cdb against the matching
# Release\rpl4opt.pdb - the PE timestamp in the dump says which build, and
# the symbols only mean anything if it matches. They are not ours to keep
# in the history: a minidump carries process memory and the sender's own
# file paths.
/Crashdmp/
# Runtime files the game writes beside itself when run from the tree.
# environ.ini in particular is GENERATED from the template in
# RP_L4/RPL4ENVIRON.cpp - a copy committed here would be a second source
# of truth that nothing updates.
bindings.txt
environ.ini
rpl4.log
rpl4-fail.log
last.spl
SPOOLS/
# Playtest evidence - dumps, logs, symbol snapshots. Kept on disk, not in history.
playtestlogs/