From bf3029cdab22e72b60b26e1fa23c1568dc78041d Mon Sep 17 00:00:00 2001 From: christoph Date: Mon, 24 May 2010 05:01:03 +0200 Subject: [PATCH] Finally no nonsense is done with defconstant anymore. --- constants.lisp | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/constants.lisp b/constants.lisp index c788c2d..40c5204 100755 --- a/constants.lisp +++ b/constants.lisp @@ -2,10 +2,18 @@ (in-package :uxul-world) -(defconstant +screen-width+ 1024) -(defconstant +screen-height+ 768) +(defmacro mydefconst (x y) + `(eval-when (:compile-toplevel :load-toplevel) + (when (or (not (boundp ',x)) + (not (equal ,y + (symbol-value ',x)))) + (defconstant ,x ,y)))) -(defconstant +class-indices+ '(t uxul-world::animation + +(mydefconst +screen-width+ 1024) +(mydefconst +screen-height+ 768) + +(mydefconst +class-indices+ '(t uxul-world::animation uxul-world::collision uxul-world::game-object uxul-world::player uxul-world::room uxul-world::stone uxul-world::xy-coordinates uxul-world::bottom uxul-world::moving-enemy -- 2.20.1