#81 follow-ups: peer warp must not stomp the POV vortex; panel draw probe; mech3 ghost symbols
Two field observations from watching the 4-node stress, both run down: 1. "A respawn happened without the blue vortex" -- REAL. The translocation effect is ONE global slot shared by the POV lifecycle and the world-anchored peer sphere (a port extension). A peer's un-wreck arriving while the local pilot's own collapse/wait/expand was in flight overwrote gWarpPhase/gWarpPOV and killed the POV vortex. Invisible before the respawn fix only because overlapping respawns barely existed; now they are routine. Fix: the POV lifecycle owns the slot -- BTStartWarpEffect self-skips while it is active ([tloc] peer warp SKIPPED). 2-node bench: 20/20 POV collapse+expand pairs, 9 peer spheres played, 11 correctly skipped; solo: 8/8 pairs unchanged. 2. "Comms panel counted no deaths" -- panel machinery CORRECT; the 4-node zeros were the bench's own CPU crush (4 core-pinned instances starved the PilotList to <0.6 Hz, so rows redrew minutes-stale). Added the arbiter: [score] panel DRAW slot/pilot/kills/deaths edge log (BT_SCORE_LOG) -- the 2-node rerun drew 0->9 / 0->11 live on both nodes, local AND replicated (SBMIRROR rows confirm owner->replicant tally flow on all 4 stress nodes). Also: the mech3 offline-authoring stubs declared every <Subsystem>::DefaultData as Entity__SharedData while the real statics are Simulation__SharedData (this engine derives Entity FROM Simulation) -- ~20 ghost symbols /FORCE silently resolved to garbage. DefaultData half fixed (SubsystemDefaultData now returns the true common base Simulation::SharedData); the CreateStreamedSubsystem stub signatures remain wrong (nested SubsystemResource* + ResourceFile*), are cold (no callers), and are tracked in open-questions + gotchas §6 stub-typedef corollary. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Fable 5
parent
830a976192
commit
bfa1b04990
@@ -2878,6 +2878,20 @@ void BTStartWarpExpandPOV()
|
||||
//
|
||||
void BTStartWarpEffect(float x, float y, float z)
|
||||
{
|
||||
// ONE warp slot (the authentic effect is POV-only; this world-anchored peer
|
||||
// sphere is the port extension). The local pilot's own death/respawn
|
||||
// lifecycle OWNS the slot: a peer's un-wreck landing mid-collapse/wait/expand
|
||||
// would overwrite gWarpPhase/gWarpPOV and kill the POV vortex ("my respawn
|
||||
// had no blue vortex"). Harmless before the #81 respawn fix only because
|
||||
// overlapping respawns barely existed; now they are routine. Skip the peer
|
||||
// sphere instead -- the observer still sees the un-wreck swap itself.
|
||||
if (gWarpPhase != 0 && gWarpPOV)
|
||||
{
|
||||
if (getenv("BT_TLOC_LOG"))
|
||||
DEBUG_STREAM << "[tloc] peer warp SKIPPED (own POV warp active, phase "
|
||||
<< gWarpPhase << ")\n" << std::flush;
|
||||
return;
|
||||
}
|
||||
BTWarpApplyScaleEnv();
|
||||
gWarpPhase = 2; // ExpandReveal
|
||||
gWarpT = 0.0f;
|
||||
|
||||
Reference in New Issue
Block a user