From eb309b74b1ae2df1e74c459be7455e06c8907231 Mon Sep 17 00:00:00 2001 From: joren Date: Mon, 23 Mar 2026 11:21:31 +0100 Subject: [PATCH] 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 --- pacman-project/adt/game.rkt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/pacman-project/adt/game.rkt b/pacman-project/adt/game.rkt index dba9ca6..590a156 100644 --- a/pacman-project/adt/game.rkt +++ b/pacman-project/adt/game.rkt @@ -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))