wuwiandClaude Opus 5 3d7e66449a A new run rewinds the clock; the camera flashes did not rewind with it
Oliver: "I start a new zombie tennis match. when playing and scoring no
fotograph flashes appear, but at a random place in the crowd some frozen
midflash circle is visible. after a few points the flashes unfreeze."

Both halves are the same cause. resetState() puts G.idleT back to 0 for every
new run, while the flash list and its "next at" live in render.js's own closure
and survive it. So the new run inherited a flashNext from the old one — no
photographs at all until the clock climbed back past it — and any flash still in
flight was left with a t0 in its own future, which makes its fade
1 - (now - t0)/life permanently greater than 1: a shutter stuck at full
brightness in the stand until something else cleared it.

tickFlashes now notices the clock moving backwards and clears and re-arms. One
guard, in the only place that owns the state, so it covers any future mode that
rewinds the clock as well. Verified on the canvas: after a rewind there is no
permanently-bright pixel in the stand, and the photographers resume within
seconds instead of staying dark.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-21 15:04:33 +02:00
S
Description
No description provided
149 MiB
0 Stars 1 Watchers 0 Forks
Languages
JavaScript 75.2%
Python 15.8%
HTML 7.3%
Shell 1.4%
Swift 0.2%