Optimize(Game): Wire level change events to draw dirty flags

On start!, connects level's coin/maze change callbacks to the draw
ADT's mark-coins-dirty! and mark-maze-dirty! methods. This completes
the event chain: level state change -> dirty flag -> redraw next frame.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
joren
2026-03-23 11:21:31 +01:00
parent 55f1c2a382
commit eb309b74b1

View File

@@ -34,8 +34,12 @@
((draw 'animate-pacman!) delta-time))
;; start! :: -> /
;; Starts the game by registering all callbacks.
;; Starts the game by registering all callbacks and change listeners.
(define (start!)
;; Wire level change events to draw dirty flags.
((level 'set-on-coins-changed!) (draw 'mark-coins-dirty!))
((level 'set-on-maze-changed!) (draw 'mark-maze-dirty!))
;; Register graphics callbacks.
((draw 'set-game-loop!) game-loop)
((draw 'set-key-callback!) key-handler)
((draw 'start-drawing!) dispatch-game))