]> git.jsancho.org Git - gacela.git/commitdiff
Main loop with recursivity
authorJavier Sancho <jsf@jsancho.org>
Sun, 9 Sep 2012 06:59:53 +0000 (08:59 +0200)
committerJavier Sancho <jsf@jsancho.org>
Sun, 9 Sep 2012 06:59:53 +0000 (08:59 +0200)
src/gacela.scm

index 61ff672c9d90c3f1adc11a18608d5ef685fd6d56..1a5a0d96fff0662c449c52e356200005b61b3df9 100644 (file)
 (define (quit-gacela)
   (hide-all-mobs)
   (set! game-loop-thread #f)
-  (set! loop-flag #f))
+  (set! loop-flag #f)
+  (quit-video))
 
 (define (game-loop)
   (refresh-active-mobs)
   (init-video *width-screen* *height-screen* *bpp-screen* #:title *title* #:mode *mode* #:fps *frames-per-second*)
   (set! loop-flag #t)
-  (while loop-flag
-        (init-frame-time)
+  (let loop ()
+    (cond (loop-flag
+          (init-frame-time)
 ;          (check-connections)
-        (process-events)
-        (cond ((quit-signal?)
-               (quit-gacela))
-              (else
-               (clear-screen)
-               (to-origin)
-               (refresh-active-mobs)
-               (run-mobs)
-               (run-extensions)
-               (flip-screen)
-               (delay-frame))))
-  (quit-video))
+          (process-events)
+          (cond ((quit-signal?)
+                 (quit-gacela))
+                (else
+                 (clear-screen)
+                 (to-origin)
+                 (refresh-active-mobs)
+                 (run-mobs)
+                 (run-extensions)
+                 (flip-screen)
+                 (delay-frame)
+                 (loop)))))))
 
 (define (gacela-script args)
   (while loop-flag (sleep 1)))