]> git.jsancho.org Git - gacela.git/commitdiff
Mobs Events Engine
authorjsancho <devnull@localhost>
Sun, 9 Oct 2011 21:48:15 +0000 (21:48 +0000)
committerjsancho <devnull@localhost>
Sun, 9 Oct 2011 21:48:15 +0000 (21:48 +0000)
Makefile
src/gacela_mobs.scm

index b562aea6e33ee063dc0b2b4b2577e2d9d8512e5a..05255bf193118bce3e5e1b7b8c1274ce0f0608b2 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -123,11 +123,11 @@ DIST_ARCHIVES = $(distdir).tar.gz
 GZIP_ENV = --best
 distuninstallcheck_listfiles = find . -type f -print
 distcleancheck_listfiles = find . -type f -print
-ACLOCAL = ${SHELL} /home/jsancho/proyectos/guile/missing --run aclocal-1.11
-AMTAR = ${SHELL} /home/jsancho/proyectos/guile/missing --run tar
-AUTOCONF = ${SHELL} /home/jsancho/proyectos/guile/missing --run autoconf
-AUTOHEADER = ${SHELL} /home/jsancho/proyectos/guile/missing --run autoheader
-AUTOMAKE = ${SHELL} /home/jsancho/proyectos/guile/missing --run automake-1.11
+ACLOCAL = ${SHELL} /home/jsancho/proyectos/gacela/trunk/missing --run aclocal-1.11
+AMTAR = ${SHELL} /home/jsancho/proyectos/gacela/trunk/missing --run tar
+AUTOCONF = ${SHELL} /home/jsancho/proyectos/gacela/trunk/missing --run autoconf
+AUTOHEADER = ${SHELL} /home/jsancho/proyectos/gacela/trunk/missing --run autoheader
+AUTOMAKE = ${SHELL} /home/jsancho/proyectos/gacela/trunk/missing --run automake-1.11
 AWK = mawk
 CC = gcc
 CCDEPMODE = depmode=gcc3
@@ -140,11 +140,11 @@ ECHO_C =
 ECHO_N = -n
 ECHO_T = 
 EXEEXT = 
-GUILE = /usr/local/bin/guile
-GUILE_CFLAGS = -I/usr/local/include  -pthread
-GUILE_CONFIG = /usr/local/bin/guile-config
-GUILE_LDFLAGS =  -pthread -L/usr/local/lib -lguile -lltdl -lgmp -lcrypt -lm -lltdl
-GUILE_TOOLS = /usr/local/bin/guile-tools
+GUILE = /usr/bin/guile
+GUILE_CFLAGS =   
+GUILE_CONFIG = /usr/bin/guile-config
+GUILE_LDFLAGS =    -lguile -lltdl -lgmp -lcrypt -lm -lltdl
+GUILE_TOOLS = /usr/bin/guile-tools
 INSTALL = /usr/bin/install -c
 INSTALL_DATA = ${INSTALL} -m 644
 INSTALL_PROGRAM = ${INSTALL}
@@ -154,7 +154,7 @@ LDFLAGS =
 LIBOBJS = 
 LIBS =  -lreadline -lSDL -lSDL_image -lSDL_gfx -lSDL_mixer -lGL -lGLU -lftgl
 LTLIBOBJS = 
-MAKEINFO = ${SHELL} /home/jsancho/proyectos/guile/missing --run makeinfo
+MAKEINFO = ${SHELL} /home/jsancho/proyectos/gacela/trunk/missing --run makeinfo
 MKDIR_P = /bin/mkdir -p
 OBJEXT = o
 PACKAGE = gacela
@@ -169,10 +169,10 @@ SET_MAKE =
 SHELL = /bin/bash
 STRIP = 
 VERSION = 0.5
-abs_builddir = /home/jsancho/proyectos/guile
-abs_srcdir = /home/jsancho/proyectos/guile
-abs_top_builddir = /home/jsancho/proyectos/guile
-abs_top_srcdir = /home/jsancho/proyectos/guile
+abs_builddir = /home/jsancho/proyectos/gacela/trunk
+abs_srcdir = /home/jsancho/proyectos/gacela/trunk
+abs_top_builddir = /home/jsancho/proyectos/gacela/trunk
+abs_top_srcdir = /home/jsancho/proyectos/gacela/trunk
 ac_ct_CC = gcc
 am__include = include
 am__leading_dot = .
@@ -191,7 +191,7 @@ host_alias =
 htmldir = ${docdir}
 includedir = ${prefix}/include
 infodir = ${datarootdir}/info
-install_sh = ${SHELL} /home/jsancho/proyectos/guile/install-sh
+install_sh = ${SHELL} /home/jsancho/proyectos/gacela/trunk/install-sh
 libdir = ${exec_prefix}/lib
 libexecdir = ${exec_prefix}/libexec
 localedir = ${datarootdir}/locale
index f9594cfd58fa983d4189f261dbc93bb2e3fe9bd0..0ae561e8f6eecbdf6c848cc2d7664fa240aa1da0 100755 (executable)
           ((get-type)
            ,type-symbol)
           (else
-           (display ,(cons 'list (map (lambda (x) `(cons ',(car x) ,(car x))) publish)))
-           (newline)
            (catch #t
                   (lambda () ,@body)
-                  (lambda (key . args) #f))))))))
+                  (lambda (key . args) #f))
+           (cond ((not (null? ,publish))
+                  (display ,(cons 'list (map (lambda (x) `(cons ',(car x) ,(car x))) publish)))
+                  (publish-mob-data ,mob-id-symbol ,type-symbol ,(cons 'list (map (lambda (x) `(cons ',(car x) ,(car x))) publish)))))
+           (newline)))))))
 
 (define-macro (lambda-mob attr . body)
   `(the-mob 'undefined ,attr '() ,@body))
+
+
+;;; Events Engine
+
+(define publish-mob-data #f)
+(define published-data (make-hash-table))
+
+(let ((nop #f))
+  (set! publish-mob-data
+       (lambda (mob-id mob-type data)
+         (let ((t (hash-ref published-data mob-type))
+               (i (cons mob-id data)))
+           (hash-set! published-data mob-type
+                      (cond (t (cons i t))
+                            (else (list i))))))))