--- deliantra/server/include/cfperl.h 2006/11/17 19:40:54 1.32 +++ deliantra/server/include/cfperl.h 2006/12/11 22:56:57 1.33 @@ -38,6 +38,7 @@ KLASS_PLAYER, KLASS_OBJECT, KLASS_MAP, + KLASS_COMMAND, }; enum event_type @@ -66,20 +67,20 @@ // all these return true when the normal event processing should be skipped (if any) #define INVOKE_(event, ...) cfperl_invoke (event, ## __VA_ARGS__, DT_END) -#define INVOKE(klass, event, ...) INVOKE_(EVENT_ ## klass ## _ ## event, ## __VA_ARGS__) -#define INVOKE_GLOBAL(event, ...) INVOKE_(EVENT_ ## GLOBAL ## _ ## event, ## __VA_ARGS__) -#define INVOKE_OBJECT(event, op, ...) INVOKE_(EVENT_ ## OBJECT ## _ ## event, ARG_OBJECT (op), ## __VA_ARGS__) -#define INVOKE_PLAYER(event, pl, ...) INVOKE_(EVENT_ ## PLAYER ## _ ## event, ARG_PLAYER (pl), ## __VA_ARGS__) -#define INVOKE_MAP(event, map, ...) INVOKE_(EVENT_ ## MAP ## _ ## event, ARG_MAP (map) , ## __VA_ARGS__) +#define INVOKE(klass, event, ...) INVOKE_(EVENT_ ## klass ## _ ## event, ## __VA_ARGS__) +#define INVOKE_GLOBAL(event, ...) INVOKE_(EVENT_ ## GLOBAL ## _ ## event, ## __VA_ARGS__) +#define INVOKE_OBJECT(event, op, ...) INVOKE_(EVENT_ ## OBJECT ## _ ## event, ARG_OBJECT (op), ## __VA_ARGS__) +#define INVOKE_PLAYER(event, pl, ...) INVOKE_(EVENT_ ## PLAYER ## _ ## event, ARG_PLAYER (pl), ## __VA_ARGS__) +#define INVOKE_MAP(event, map, ...) INVOKE_(EVENT_ ## MAP ## _ ## event, ARG_MAP (map) , ## __VA_ARGS__) //TODO should index into @result #define RESULT(idx,type) cfperl_result_ ## type (idx) -#define RESULT_INT(idx) RESULT(idx, INT) -#define RESULT_MAP(idx) RESULT(idx, MAP) +#define RESULT_DOUBLE(idx) RESULT(idx, DOUBLE) +#define RESULT_INT(idx) RESULT(idx, INT) bool cfperl_invoke (event_type event, ...); -int cfperl_result_INT (int idx); -int cfperl_result_MAP (int idx); +int cfperl_result_DOUBLE (int idx); +int cfperl_result_INT (int idx); struct attachable_base {