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)))