ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/include/cfperl.h
(Generate patch)

Comparing deliantra/server/include/cfperl.h (file contents):
Revision 1.32 by root, Fri Nov 17 19:40:54 2006 UTC vs.
Revision 1.33 by root, Mon Dec 11 22:56:57 2006 UTC

36 KLASS_NONE, 36 KLASS_NONE,
37 KLASS_GLOBAL, 37 KLASS_GLOBAL,
38 KLASS_PLAYER, 38 KLASS_PLAYER,
39 KLASS_OBJECT, 39 KLASS_OBJECT,
40 KLASS_MAP, 40 KLASS_MAP,
41 KLASS_COMMAND,
41}; 42};
42 43
43enum event_type 44enum event_type
44{ 45{
45# define def(klass,name) EVENT_ ## klass ## _ ## name, 46# define def(klass,name) EVENT_ ## klass ## _ ## name,
64// the ", ## __VA_ARGS" is, unfortunately, a gnu-cpp extension 65// the ", ## __VA_ARGS" is, unfortunately, a gnu-cpp extension
65 66
66// all these return true when the normal event processing should be skipped (if any) 67// all these return true when the normal event processing should be skipped (if any)
67#define INVOKE_(event, ...) cfperl_invoke (event, ## __VA_ARGS__, DT_END) 68#define INVOKE_(event, ...) cfperl_invoke (event, ## __VA_ARGS__, DT_END)
68 69
69#define INVOKE(klass, event, ...) INVOKE_(EVENT_ ## klass ## _ ## event, ## __VA_ARGS__) 70#define INVOKE(klass, event, ...) INVOKE_(EVENT_ ## klass ## _ ## event, ## __VA_ARGS__)
70#define INVOKE_GLOBAL(event, ...) INVOKE_(EVENT_ ## GLOBAL ## _ ## event, ## __VA_ARGS__) 71#define INVOKE_GLOBAL(event, ...) INVOKE_(EVENT_ ## GLOBAL ## _ ## event, ## __VA_ARGS__)
71#define INVOKE_OBJECT(event, op, ...) INVOKE_(EVENT_ ## OBJECT ## _ ## event, ARG_OBJECT (op), ## __VA_ARGS__) 72#define INVOKE_OBJECT(event, op, ...) INVOKE_(EVENT_ ## OBJECT ## _ ## event, ARG_OBJECT (op), ## __VA_ARGS__)
72#define INVOKE_PLAYER(event, pl, ...) INVOKE_(EVENT_ ## PLAYER ## _ ## event, ARG_PLAYER (pl), ## __VA_ARGS__) 73#define INVOKE_PLAYER(event, pl, ...) INVOKE_(EVENT_ ## PLAYER ## _ ## event, ARG_PLAYER (pl), ## __VA_ARGS__)
73#define INVOKE_MAP(event, map, ...) INVOKE_(EVENT_ ## MAP ## _ ## event, ARG_MAP (map) , ## __VA_ARGS__) 74#define INVOKE_MAP(event, map, ...) INVOKE_(EVENT_ ## MAP ## _ ## event, ARG_MAP (map) , ## __VA_ARGS__)
74 75
75//TODO should index into @result 76//TODO should index into @result
76#define RESULT(idx,type) cfperl_result_ ## type (idx) 77#define RESULT(idx,type) cfperl_result_ ## type (idx)
78#define RESULT_DOUBLE(idx) RESULT(idx, DOUBLE)
77#define RESULT_INT(idx) RESULT(idx, INT) 79#define RESULT_INT(idx) RESULT(idx, INT)
78#define RESULT_MAP(idx) RESULT(idx, MAP)
79 80
80bool cfperl_invoke (event_type event, ...); 81bool cfperl_invoke (event_type event, ...);
82int cfperl_result_DOUBLE (int idx);
81int cfperl_result_INT (int idx); 83int cfperl_result_INT (int idx);
82int cfperl_result_MAP (int idx);
83 84
84struct attachable_base 85struct attachable_base
85{ 86{
86 SV *self; 87 SV *self;
87 AV *cb; // CF+ perl self and callback 88 AV *cb; // CF+ perl self and callback

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines