From 53634b508991c69fbeafb61039ad44ec90b30b2e Mon Sep 17 00:00:00 2001 From: Erik Date: Fri, 29 May 2026 19:46:53 +0200 Subject: [PATCH] =?UTF-8?q?docs(render):=20Phase=20A8.F=20=E2=80=94=20supe?= =?UTF-8?q?rsede=20the=20old=20"no=20camera=20collision"=20note?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The 2026-05-18 retail-chase-camera spec scoped collision out citing "retail doesn't raycast." Phase A8.F falsified that (SmartBox::update_viewer DOES sweep viewer_sphere); mark the note superseded and point to the A8.F spec. Co-Authored-By: Claude Opus 4.7 --- .../specs/2026-05-18-retail-chase-camera-design.md | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/docs/superpowers/specs/2026-05-18-retail-chase-camera-design.md b/docs/superpowers/specs/2026-05-18-retail-chase-camera-design.md index 14946d5..72f493b 100644 --- a/docs/superpowers/specs/2026-05-18-retail-chase-camera-design.md +++ b/docs/superpowers/specs/2026-05-18-retail-chase-camera-design.md @@ -451,10 +451,14 @@ Quick check during impl — if not present, add it to mode for inventory drag/drop. Out of scope. - **Map mode (`ToggleMapMode`)** — retail's "top-down map view." Out of scope. -- **Camera-vs-world collision.** Retail's per-frame update doesn't - raycast world geometry (see investigation report 2026-05-18 in chat). - The auto-fade handles "camera passes through player"; we don't - attempt "camera collides with wall" — same as retail. +- **Camera-vs-world collision.** ~~Retail's per-frame update doesn't + raycast world geometry; we don't attempt "camera collides with wall" + — same as retail.~~ **SUPERSEDED 2026-05-29:** this was a research + error — retail DOES collide the camera in `SmartBox::update_viewer` + (0x00453ce0), which the earlier pass missed by tracing only the + desired-eye producer (`CameraManager::UpdateCamera`). Implemented as a + swept-sphere spring arm in Phase A8.F; see + `docs/superpowers/specs/2026-05-29-a8f-camera-collision-design.md`. - **Making retail the default.** Default stays off in this spec; flip in a follow-up commit after visual verification. - **Deleting legacy `ChaseCamera`.** Stays around for A/B comparison