62c26b91f97fd1c3eecb6c7aa3e76cd02ec0beaa
The Game Over, Win, and escape-menu Restart paths did not rebase the wall-clock time source. Time spent with one of those dialogs open accumulated in the frame timer and, on the first frame after the reset, was converted into ticks on the fresh simulation, fast-forwarding the new run by the dialog-open duration. resetForNewGame() now restarts m_frameTimer and resets m_tickDriver so a new run starts from a clean time base. The drained-ResetCommand path (Game Over / escape) also samples elapsed before the reset applies, so onFrame() now skips the tick advance on the frame it resets, discarding that stale delta. Adds a TickDriver regression test for the invariant the fix relies on. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Y7N59FsLA5e2kuVdqe4Uhc
Description
No description provided
Languages
C++
96%
CMake
2.2%
Python
1.1%
C
0.7%