--- deliantra/server/include/cfperl.h 2007/04/23 18:09:57 1.63 +++ deliantra/server/include/cfperl.h 2007/05/19 00:08:11 1.64 @@ -4,7 +4,9 @@ #ifndef CFPERL_H__ #define CFPERL_H__ +#include #include +#include using namespace std; @@ -90,6 +92,10 @@ NUM_EVENT_TYPES }; +// in which global events or per-type events are we interested +extern bitset ev_want_event; +extern bitset ev_want_type; + #define ARG_AV(o) DT_AV , static_cast (o) #define ARG_INT(v) DT_INT , static_cast (v) #define ARG_INT64(v) DT_INT64 , static_cast (v) @@ -185,7 +191,18 @@ attachable &operator =(const attachable &src); - bool invoke (event_type event, ...); + bool vinvoke (event_type event, va_list &ap); + bool invoke (event_type event, ...) + { + if (ev_want_event [event] || cb) + { + va_list ap; + va_start (ap, event); + vinvoke (event, ap); + va_end (ap); + } + } + MTH void instantiate (); void reattach ();