Files
TeslaRel410/emulator/render-bridge
CydandClaude Fable 5 7b57f6b059 BT410 5.3.125: the pilot punches out -- the effectiveness census and EjectPilot complete the authentic message roster, 6 of 6
The combat-effectiveness census (@0049fa1c, the master perf's opening
call) runs at the top of every Simulate frame: a mech is combat-
INEFFECTIVE when its working weapons fall below the ctor-hardcoded
minimum of 2 (+0x448, part_012.c:15749 -- a weapon works when not
destroyed and not a dry launcher, fire state 7 == our NoAmmoState
exactly), when no generator survives (state != 1 and generator state !=
GeneratorFailed -- the binary's +0x210 != 4, our enum value matching),
when the aggregate bank's coolant fraction drops below 0.05 (@0049fb50),
or when limping without the crouch cell held.  Census corrections over
the first read: 0xBBE is the AGGREGATE HEATSINK BANK (coolant fraction,
not generator charge) and 0xBC1 is the GENERATOR (count, not coolant
units) -- both re-pinned through our own classID map.

EjectPilot (@0049f854, id 0x19) consumes it: only a CRIPPLED mech that
is not already dying may eject -- mode 10 (EJECTED, the reason
IsMechDestroyed tests >= 9), the mapper's eject latch (+0x258), and a
self-dispatched explosive TakeDamage (type 2, zone -1 through the
cylinder resolver at the mech's own position).  Staged with the decode
recorded: the damage amount (the binary reads a bound cell through
mapper+0x208 -- no game-side writer exists, the mapper binding-loop
decode will name it) and the score notify (@00429078 + app+0x20 vcall,
event code 5).

Soak (pod_render_eject.conf, BT_FORCE_CRIPPLED + BT_PRESS_EJECT): the
census reads the real roster (weapons=6 generators=4 bank=1.0), the
press runs the whole chain -- eject, vital kill through the cylinder
table, VehicleDead, +5s respawn, HEALED at a fresh drop zone --
crash-sig 0.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-07 13:39:24 -05:00
..