Malte Langkabel 62c26b91f9 Fix restart fast-forwarding by the time spent in a modal dialog
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
2026-07-19 18:27:32 +02:00
2026-07-12 09:16:49 +02:00
2026-04-19 10:19:27 +02:00
Description
No description provided
20 MiB
Languages
C++ 96%
CMake 2.2%
Python 1.1%
C 0.7%