Issue #31: wire the EJECT button (EjectAmmo msg 0xb @004bb9b8) -- the in-mission unjam
Disasm-faithful transcription of the export-gap handler onto ProjectileWeapon (MESSAGE_ENTRY id 0xb, the #19 pattern). PRESS arms the ~3s UpdateEject countdown (bin alarm -> Ejecting(3); gate 2 parks the weapon offline mid-eject -- authentic). HOLD to completion = DumpAmmo jettisons the bay -> NoAmmo. TAP (release early) cycles ONE round out via FeedAmmo and returns the weapon to Loading -- clears a jam at the cost of a round (and recovers a FailureHeat 7 while rounds remain). Binary structure kept exactly incl. the press-no-bin fall-through into the release block. AmmoBin: Ejecting(3)/Ejected(4) alarm levels decoded + named SetAmmoState accessor (databinding rule). Always-on forensics: '[weap] EJECT tap' + '[ammo] bay DUMPED overboard (N rounds)'. Rig-verified live (BT_EJECTTEST=1 / =hold on LRM15): taps eject one round each and return the weapon to service (15->8 across cycles); hold dumps all 16 -> NoAmmo. Awaiting a human press of the actual ENG-page button on a jammed weapon. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
225fe43f0c
commit
2edd1b5363
@@ -273,7 +273,11 @@ From the weapon `.SUB` records + the charge-curve `.data` constants (PE-parsed a
|
||||
novice + @4ad7d4 heat-model + press-only, then idx@0x320=(idx+1)%(max@0x32C+1), NO
|
||||
ResetFiringState); Emitter's faithful body existed as the orphaned "AdvanceSeekVoltage" (zero
|
||||
callers) -- both registered via MESSAGE_ENTRY (ids 9/0xb). Verify: BT_SEEKTEST=1 +
|
||||
BT_SEEK_LOG=1 → `[seek] <name> -> gear N` cycling. EjectAmmo remains unwired (#31).
|
||||
BT_SEEK_LOG=1 → `[seek] <name> -> gear N` cycling. **EjectAmmo WIRED 2026-07-23 (issue
|
||||
#31)**: MESSAGE_ENTRY id 0xb on `ProjectileWeapon::GetMessageHandlers` (projweap.cpp) +
|
||||
`AmmoBin::SetAmmoState` accessor; rig-verified both paths (`BT_EJECTTEST=1` tap = one round
|
||||
out/return to Loading, `=hold` = bay DUMPED; `[weap] EJECT tap` / `[ammo] bay DUMPED` logs).
|
||||
Awaiting live cockpit-button verification.
|
||||
**EjectAmmo @004bb9b8 DECODED 2026-07-23 (raw disasm; the fn sits in a Ghidra export gap)
|
||||
[T1]** — old-timer testimony ("tap ejects a round, hold ejects the bay, eject clears a jam")
|
||||
matched the bytes exactly: novice guard @4ac9c8 → **PRESS** (`msg+0xc > 0`): bin alarm
|
||||
|
||||
Reference in New Issue
Block a user