Death gate: a destroyed mech takes no pilot input (ghost-drive fix)
User report from 2-window play: after dying, the pilot could still steer the wreck around invisibly. Zero throttle/turn/fire and the forced harnesses at the gBTDrive source when IsMechDestroyed() -- deliberately INPUT-only, so the gait/animation machinery keeps running and the death collapse plays out. Also recorded in the KB: the killer's screen shows the wreck SWAP but not the death SINK (needs the Mech-level death/knockdown update records, disasm preserved from task #51), and the respawn-cycle scouting (type-12 intro scripts are binary ref-records; adrop; DropZone + Mech::Reset machinery) for the recovery-whirlwind reconstruction (task #52). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Fable 5
parent
29035028fd
commit
e430e474cb
@@ -1487,6 +1487,22 @@ void
|
||||
gBTDrive.turn = sStick;
|
||||
}
|
||||
|
||||
// DEATH GATE (task #52): a DESTROYED mech takes no pilot input -- kill
|
||||
// throttle/turn/fire and the forced harnesses at the source so the
|
||||
// wreck can't be steered around invisibly ("ghost mode", user-reported
|
||||
// from 2-window play). Deliberately INPUT-only: the gait/animation
|
||||
// machinery below keeps running so the death collapse plays out and the
|
||||
// wind-down settles; respawn is the recovery/drop cycle (task #52 open).
|
||||
if (IsMechDestroyed())
|
||||
{
|
||||
gBTDrive.throttle = 0.0f;
|
||||
gBTDrive.turn = 0.0f;
|
||||
gBTDrive.fire = 0;
|
||||
gBTDrive.fireForced = 0;
|
||||
gBTDrive.forced = 0;
|
||||
gBTLaserKey = gBTPPCKey = gBTMissileKey = 0;
|
||||
}
|
||||
|
||||
float throttle = gBTDrive.forced ? gBTDrive.forcedThrottle : gBTDrive.throttle;
|
||||
float turn = gBTDrive.forced ? 0.0f : gBTDrive.turn;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user