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.126 by root, Mon Oct 29 23:55:53 2012 UTC vs.
Revision 1.133 by root, Wed Dec 5 19:13:21 2018 UTC

1/* 1/*
2 * This file is part of Deliantra, the Roguelike Realtime MMORPG. 2 * This file is part of Deliantra, the Roguelike Realtime MMORPG.
3 * 3 *
4 * Copyright (©) 2017,2018 Marc Alexander Lehmann / the Deliantra team
4 * Copyright (©) 2005,2006,2007,2008,2009,2010,2011,2012 Marc Alexander Lehmann / Robin Redeker / the Deliantra team 5 * Copyright (©) 2005,2006,2007,2008,2009,2010,2011,2012,2013,2014,2015,2016 Marc Alexander Lehmann / Robin Redeker / the Deliantra team
5 * 6 *
6 * Deliantra is free software: you can redistribute it and/or modify it under 7 * Deliantra is free software: you can redistribute it and/or modify it under
7 * the terms of the Affero GNU General Public License as published by the 8 * the terms of the Affero GNU General Public License as published by the
8 * Free Software Foundation, either version 3 of the License, or (at your 9 * Free Software Foundation, either version 3 of the License, or (at your
9 * option) any later version. 10 * option) any later version.
101void cfperl_cleanup (int make_core); 102void cfperl_cleanup (int make_core);
102void cfperl_make_book (object *book, int level); 103void cfperl_make_book (object *book, int level);
103void cfperl_send_msg (client *ns, int color, const_utf8_string type, const_utf8_string msg); 104void cfperl_send_msg (client *ns, int color, const_utf8_string type, const_utf8_string msg);
104int cfperl_can_merge (object *ob1, object *ob2); 105int cfperl_can_merge (object *ob1, object *ob2);
105void cfperl_mapscript_activate (object *ob, int state, object *activator, object *originator = 0); 106void cfperl_mapscript_activate (object *ob, int state, object *activator, object *originator = 0);
107void cfperl_ix (client *ns, int set, faceidx idx, int pri);
106 108
107bool is_match_expr (const_utf8_string expr); 109bool is_match_expr (const_utf8_string expr);
108// applies the match expression and returns true if it matches 110// applies the match expression and returns true if it matches
109bool match (const_utf8_string expr, object *ob, object *self = 0, object *source = 0, object *originator = 0); 111bool match (const_utf8_string expr, object *ob, object *self = 0, object *source = 0, object *originator = 0);
110// same as above, but returns the first object found, or 0 112// same as above, but returns the first object found, or 0
129#endif 131#endif
130 132
131extern tstamp runtime; // virtual server time, excluding time jumps and lag 133extern tstamp runtime; // virtual server time, excluding time jumps and lag
132extern tstamp NOW; // real time of current server tick 134extern tstamp NOW; // real time of current server tick
133 135
134noinline utf8_string cfSvPVutf8_nolen (SV *sv); 136ecb_noinline utf8_string cfSvPVutf8_nolen (SV *sv);
135 137
136enum event_klass 138enum event_klass
137{ 139{
138 KLASS_NONE, 140 KLASS_NONE,
139 KLASS_GLOBAL, 141 KLASS_GLOBAL,
170#define ARG_CLIENT(o) DT_CLIENT, (void *)(static_cast<client *> (o)) 172#define ARG_CLIENT(o) DT_CLIENT, (void *)(static_cast<client *> (o))
171#define ARG_PARTY(o) DT_PARTY , (void *)(static_cast<party *> (o)) 173#define ARG_PARTY(o) DT_PARTY , (void *)(static_cast<party *> (o))
172#define ARG_REGION(o) DT_REGION, (void *)(static_cast<region *> (o)) 174#define ARG_REGION(o) DT_REGION, (void *)(static_cast<region *> (o))
173 175
174// the ", ## __VA_ARGS" is, unfortunately, a gnu-cpp extension 176// the ", ## __VA_ARGS" is, unfortunately, a gnu-cpp extension
175#define INVOKE(obj,event, ...) (expect_false ((obj)->should_invoke (event)) ? (obj)->invoke (event, ## __VA_ARGS__, DT_END) : 0) 177#define INVOKE(obj,event, ...) (ecb_expect_false ((obj)->should_invoke (event)) ? (obj)->invoke (event, ## __VA_ARGS__, DT_END) : 0)
176#define INVOKE_GLOBAL(event, ...) INVOKE (&gbl_ev, EVENT_ ## GLOBAL ## _ ## event, ## __VA_ARGS__) 178#define INVOKE_GLOBAL(event, ...) INVOKE (&gbl_ev, EVENT_ ## GLOBAL ## _ ## event, ## __VA_ARGS__)
177#define INVOKE_ATTACHABLE(event, obj, ...) INVOKE (obj , EVENT_ ## ATTACHABLE ## _ ## event, ## __VA_ARGS__) 179#define INVOKE_ATTACHABLE(event, obj, ...) INVOKE (obj , EVENT_ ## ATTACHABLE ## _ ## event, ## __VA_ARGS__)
178#define INVOKE_OBJECT(event, obj, ...) INVOKE (obj , EVENT_ ## OBJECT ## _ ## event, ## __VA_ARGS__) 180#define INVOKE_OBJECT(event, obj, ...) INVOKE (obj , EVENT_ ## OBJECT ## _ ## event, ## __VA_ARGS__)
179#define INVOKE_CLIENT(event, obj, ...) INVOKE (obj , EVENT_ ## CLIENT ## _ ## event, ## __VA_ARGS__) 181#define INVOKE_CLIENT(event, obj, ...) INVOKE (obj , EVENT_ ## CLIENT ## _ ## event, ## __VA_ARGS__)
180#define INVOKE_PLAYER(event, obj, ...) INVOKE (obj , EVENT_ ## PLAYER ## _ ## event, ## __VA_ARGS__) 182#define INVOKE_PLAYER(event, obj, ...) INVOKE (obj , EVENT_ ## PLAYER ## _ ## event, ## __VA_ARGS__)
205 MTH static void check_mortals (); 207 MTH static void check_mortals ();
206 208
207 // object is delete'd after the refcount reaches 0 209 // object is delete'd after the refcount reaches 0
208 MTH int refcnt_cnt () const; 210 MTH int refcnt_cnt () const;
209 // check wether the object has died and destroy 211 // check wether the object has died and destroy
210 MTH void refcnt_chk () { if (expect_false (refcnt <= 0)) do_check (); } 212 MTH void refcnt_chk () { if (ecb_expect_false (refcnt <= 0)) do_check (); }
211 213
212 // destroy the object unless it was already destroyed 214 // destroy the object unless it was already destroyed
213 // this politely asks everybody interested the reduce 215 // this politely asks everybody interested the reduce
214 // the refcount to 0 as soon as possible. 216 // the refcount to 0 as soon as possible.
215 MTH void destroy (); 217 MTH void destroy ();
264 bool should_invoke (event_type event) 266 bool should_invoke (event_type event)
265 { 267 {
266 return ev_want_event [event] || cb; 268 return ev_want_event [event] || cb;
267 } 269 }
268 270
269 bool invoke (event_type event, ...); 271 bool invoke (/*event_type*/int event, ...);
270 272
271 MTH void instantiate (); 273 MTH void instantiate ();
272 void reattach (); 274 void reattach ();
273 275
274protected: 276protected:
307 static void do_cede_to_tick (); 309 static void do_cede_to_tick ();
308 310
309 // actually cede's far more often 311 // actually cede's far more often
310 static bool cede_to_tick () 312 static bool cede_to_tick ()
311 { 313 {
312 if (expect_true (!cede_pending)) 314 if (ecb_expect_true (!cede_pending))
313 return false; 315 return false;
314 316
315 do_cede_to_tick (); 317 do_cede_to_tick ();
316 return true; 318 return true;
317 } 319 }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines