Files
BT412/game
arcattackandClaude Opus 4.8 062c66999e Warp polish: animate scroll, recenter, no depth-clip, expand-only respawn
Four fixes for the user's "static / above the viewport / cavern clips it / doesn't
shoot off" report, each root-caused:

1. STATIC swirl -> now animates.  The material's SCROLL (0.0 0.0 0.1 0.5) only
   reaches the draw via a per-texture .met file (L4D3D.cpp:640) that tsphere lacks,
   and the ramp-bake path leaves doScroll=false -- so the swirl was frozen.  Set the
   authored scroll rates (u -0.1/s, v +0.5/s) + REPEAT wrap on the sphere's draw-ops
   at load, so SetTextureScrolling churns the swirl (the "spins around").

2. "Above the viewport" -> recenter.  tsphere.bgf is modelled with its centre at
   y=+8.25 (logged: center=(0,8.25,0.47) r=21.5); scaled x100-150 that threw the
   sphere ~1000 units overhead.  Translate the mesh's mCullCenter to the origin
   before scaling so it sits ON the eye/anchor.  (Added public-ish mCullCenter use;
   l4d3d.h already exposes it.)

3. Cavern clip -> Z-test off.  The arena is an enclosed cavern; a depth-tested 150x
   sphere gets occluded by the ceiling/walls.  Draw the POV overlay with ZENABLE off
   (ZWRITE already off, so no depth pollution).  BT_WARP_ZTEST=1 restores it.

4. "Fades in then disappears" -> expand-only.  A respawn now starts in the EXPAND
   phase (1->150 over 1s) so the swirl immediately bursts and blasts outward ("shoots
   off into the distance").  The collapse (100->1) is the DEATH warp, not the
   respawn.  BT_WARP_COLLAPSE=1 plays the full collapse->expand.

Build + render + no-crash verified 2-node; expand warp fires POV/world.  Still
deferred: the SetIsDead world-mask (black-out that makes the expand "reveal" the
world) -- carries the camera-coupling risk, add scoped if wanted.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-10 09:09:21 -05:00
..