From 8f832dbff1875ba4a6ba73974e1016378218a9c4 Mon Sep 17 00:00:00 2001 From: jsancho Date: Tue, 31 May 2011 19:48:07 +0000 Subject: [PATCH] --- src/gacela_mobs.scm | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/gacela_mobs.scm b/src/gacela_mobs.scm index c0037f1..de527bd 100755 --- a/src/gacela_mobs.scm +++ b/src/gacela_mobs.scm @@ -19,6 +19,19 @@ ;;; Actions for mobs +(define-macro (define-action name attr . code) + `(define (,name mob-attr) + (let ,attr + ,@code + ,(cons 'begin (map #'attribute-save (reverse attr))) + mob-attr))) + +(defun attribute-save (attribute) + (let* ((name (cond ((listp attribute) (car attribute)) + (t attribute))) + (pname (attribute-name name))) + `(setf (getf object-attr ,pname) ,name))) + ;;; Mob Factory -- 2.39.5