X-Git-Url: https://git.jsancho.org/?p=gacela.git;a=blobdiff_plain;f=src%2Fgacela.scm;h=b9d13160dccac4bce3695d60fb0922e657d3393f;hp=e2be9a8c5091dd992a49420642b15ced35387927;hb=1c898284a9d3ea84cda71e4ff3c6f39c0bba644b;hpb=bdc03bcc2da4d01745fb542d7a7d642b888b691e diff --git a/src/gacela.scm b/src/gacela.scm index e2be9a8..b9d1316 100644 --- a/src/gacela.scm +++ b/src/gacela.scm @@ -123,11 +123,13 @@ ; (run-mobs) ; (run-extensions) (if game-loop-procedure - (set! game-elements (game-loop-procedure game-elements))) + (catch #t + (lambda () (set! game-elements (game-loop-procedure game-elements))) + (lambda (key . args) #f))) (process-game-elements game-elements) (flip-screen) (delay-frame) - (loop))))))) + (loop game-elements))))))) (define (game-running?) game-loop-flag) @@ -136,8 +138,15 @@ (cond ((not (list? elements)) (process-game-elements (list elements))) (else - (draw-meshes (filter (lambda (e) (mesh? e)) elements)) -))) + (draw-meshes (filter (lambda (e) (mesh? e)) elements))))) + +(define (draw-meshes meshes) + (cond ((null? meshes) #t) + (else + (catch #t + (lambda () (mesh-draw (car meshes))) + (lambda (key . args) #f)) + (draw-meshes (cdr meshes))))) ;;; Extensions to main loop