From 1c898284a9d3ea84cda71e4ff3c6f39c0bba644b Mon Sep 17 00:00:00 2001 From: Javier Sancho Date: Mon, 24 Sep 2012 21:07:37 +0200 Subject: [PATCH] Catching errors from main loop and square meshes --- src/gacela.scm | 17 +++++++++++++---- src/video.scm | 5 ++++- 2 files changed, 17 insertions(+), 5 deletions(-) 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 diff --git a/src/video.scm b/src/video.scm index e65d6bd..0e6a513 100644 --- a/src/video.scm +++ b/src/video.scm @@ -353,7 +353,7 @@ #:texture-coord texture-coord #:color color))) -(define* (draw-square #:key (size 1) texture color) +(define* (draw-square size #:key texture color) (draw-rectangle size size #:texture texture #:color color)) (define* (draw-cube #:key (size 1) @@ -569,6 +569,9 @@ (mesh-properties-set! m (list ,@(map (lambda (a) `(cons ',a ,a)) (names-arguments args)))) m)))) +(define-mesh (square size #:key texture color) + (draw-square size #:texture texture #:color color)) + (module-map (lambda (sym var) (if (not (eq? sym '%module-public-interface)) -- 2.39.2