From: christoph Date: Mon, 24 May 2010 03:01:03 +0000 (+0200) Subject: Finally no nonsense is done with defconstant anymore. X-Git-Url: http://uxul.de/gitweb/?p=uxul-world.git;a=commitdiff_plain;h=bf3029cdab22e72b60b26e1fa23c1568dc78041d Finally no nonsense is done with defconstant anymore. --- 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