X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=gacela_mobs.lisp;h=62e6e6cf2668a68866831b030226c28a553c47c5;hb=eede4e38936f10c03f4a66427ccb885142cf4237;hp=558a1b686c7b79e4d59d776442ccbe2189389349;hpb=678a1561ca858c34fecf04792831caf68559c2ac;p=gacela.git diff --git a/gacela_mobs.lisp b/gacela_mobs.lisp index 558a1b6..62e6e6c 100755 --- a/gacela_mobs.lisp +++ b/gacela_mobs.lisp @@ -15,19 +15,28 @@ ;;; along with this program. If not, see . -(in-package :gacela) - ;;; World of Mob + +;(in-package :gacela) + +(defmacro makemob (name variables &rest methods) + `(let ,variables + (defun ,name (&rest args &aux (option (car args))) + ,(mob-options methods)))) + +(defun mob-options (methods) + ) + (defmacro defmob (name variables &key init logic render) `(let ((make-name ',(intern (concatenate 'string "MAKE-" (string name))))) (setf (symbol-function make-name) (makemob ,variables :init ,init :logic ,logic :render ,render)) make-name)) -(defmacro makemob (variables &key init logic render) - `(lambda - ,(if (null variables) () (cons '&key variables)) - (mob-structure ,variables ,init ,logic ,render))) +;(defmacro makemob (variables &key init logic render) +; `(lambda +; ,(if (null variables) () (cons '&key variables)) +; (mob-structure ,variables ,init ,logic ,render))) (defmacro mob-structure (variables init logic render) `(list