From 32e5e8c6a6265450b57d2d7cb50b8e35eca343e3 Mon Sep 17 00:00:00 2001 From: Joe DiPrima Date: Fri, 14 Aug 2026 00:03:10 -0500 Subject: [PATCH] KB: #111 paperwork -- translocation-warp topic updated (peer sphere retired: port extension vs the POV-only authentic effect; the DropZoneLocation-anchor nuance and the slot-contention skip both moot; observers see the un-wreck swap). Release notes gain the no-bubble-on-others line crediting Lynx's night-9 call. Tracker comment posted, field-verify Friday. Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_016bw71WVsccjwW7uKRg4aWD --- context/translocation-warp.md | 27 ++++++++++++--------------- 1 file changed, 12 insertions(+), 15 deletions(-) diff --git a/context/translocation-warp.md b/context/translocation-warp.md index 2527eef..2b7f26b 100644 --- a/context/translocation-warp.md +++ b/context/translocation-warp.md @@ -6,7 +6,7 @@ source_sections: "multiplayer.md (lifecycle + trigger wiring, task #52); referen related_topics: [rendering, multiplayer, combat-damage, reconstruction-gotchas, asset-formats, bgf-format] key_terms: [material-ramp] open_questions: - - "Peer warp IS wired + visible -- observer sees a peer's un-wreck warp (world-anchored BTStartWarpEffect, 160b78e). Remaining nuance [T3]: anchor to the peer's authentic DropZoneLocation (not replicated) vs the peer's world position." + - "Peer warp RETIRED (#111, 2026-08-14): the world-anchored peer sphere was a port extension; the authentic effect is POV-only. Observers see the un-wreck model swap. The old DropZoneLocation-anchor nuance is moot." - "In the 2-node force-damage test only the EXPAND (respawn) warp logs reliably; confirm the COLLAPSE (death-side) fires on every MP death path." --- @@ -118,20 +118,17 @@ it impossible to ignore. Generalized in [[reconstruction-gotchas]] §13. ## Trigger wiring (summary; full detail in [[multiplayer]]) [T2] Local player's own death → `BTStartWarpCollapsePOV()` (btplayer.cpp `VehicleDeadMessageHandler`, `deathCount==-1`, guarded `this==GetMissionPlayer()`). Respawn `DropZoneReply` → `BTStartWarpExpandPOV()` -(local-guarded). `BTWarpForceUnmask()` on mission-end / no-DropZones. **Peer warp IS wired + visible -(`160b78e`):** an observer sees a peer's death/respawn warp — the replicant un-wreck fires the -world-anchored `BTStartWarpEffect(x,y,z)` at the peer's position (`MechDeathHandler::Tick`, -since the #94 fix triggered by the death-state EXIT edge of the replicated `MovementMode` — -cause-agnostic, covers zone-less collision deaths; gated to -`ReplicantInstance`; the effect machine is a SINGLE global slot, and since 2026-07-30 the local -pilot's own POV lifecycle OWNS it — `BTStartWarpEffect` self-skips while `gWarpPhase!=0 && gWarpPOV` -(`[tloc] peer warp SKIPPED`), because a peer's un-wreck landing mid-collapse/wait/expand used to -overwrite the machine and kill the POV vortex ("my respawn had no blue whirlwind"). Invisible -before the #81 respawn fix only because overlapping respawns barely existed; 2-node bench: 20/20 -POV collapse+expand pairs, 9 peer spheres played, 11 correctly skipped; `simulationState` rides every update-record header so the observer tracks the -peer's state). The ONLY remaining nuance [T3, non-gating]: the observer's peer sphere is anchored to -the peer's WORLD position rather than the peer's authentic `DropZoneLocation` (that attribute isn't -replicated) — a fidelity refinement, not a missing effect. +(local-guarded). `BTWarpForceUnmask()` on mission-end / no-DropZones. **Peer warp RETIRED +(#111, 3013cf8, 2026-08-14):** the world-anchored `BTStartWarpEffect` peer sphere (`160b78e`, +fired on the replicant un-wreck edge) was a PORT EXTENSION — the authentic effect is POV-ONLY, +and the field read a blue bubble on another player's mech as a wrong effect ("should just be +the big boom from other POV" — Lynx, night 9, confirmed). Observers now see exactly what the +pods showed: the un-wreck model swap itself (pfx cleanup + rebuild + the ungated `[respawn]` +receipt all stay; only the sphere call is gone). `BTStartWarpEffect` remains defined, +caller-less, as documentation of the one-warp-slot guard; the old drop-zone-anchor nuance and +the slot-contention skip are both moot with it. `simulationState` still rides every +update-record header so the observer tracks the peer's state (night-16 field receipts: all +un-wreck edges clean `mode 9->1`). ## How it was solved (method) + verification [T2] 1. **Dump the real asset** (`dump_tsphere.py`) — established it's a bicone with cylindrical UVs, ending