X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=gacela_objects.lisp;h=c3f9ea255ab258d8ab895b8cf1e2e6c6db54a767;hb=21d0c96bd43aa2cc5f8546af2c2953d993e9986e;hp=602318d9f749bfb60ecbaad972e5fb0215bf94da;hpb=9c98c44926dbe855bb09bd76631d07b5f1fc3933;p=gacela.git diff --git a/gacela_objects.lisp b/gacela_objects.lisp index 602318d..c3f9ea2 100755 --- a/gacela_objects.lisp +++ b/gacela_objects.lisp @@ -74,12 +74,17 @@ active-objects)) -(defun make-object (&key name class attr bhv look) +(defun make-object-old (name &key attr bhv look) (let ((object - `(:name ,name :class ,class :attr ,(make-object-attributes attr) :bhv ,(make-object-behaviour bhv) :look ,look))) + `(:name ,name :attr ,(make-object-attributes attr) :bhv ,(make-object-behaviour bhv) :look ,look))) (add-object object) object)) +(defmacro make-object (name attr bhv &body look) + `(let ((attr ,(make-object-attributes attr) bhv ,(make-object-behaviour bhv))) + (defun ,name (option) ,@look) + )) + (defun make-object-attributes (attr) (cond ((or (null attr) (atom attr)) nil) (t (let ((rest (make-object-attributes (cdr attr)))