61 #define NR_OF_HOOKS 89
164 static char buf[256];
168 err = GetLastError();
169 if (FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, NULL, err, 0, buf,
sizeof(buf), NULL) == 0)
170 snprintf(buf,
sizeof(buf),
"error %lu", err);
171 p = strchr(buf,
'\0');
172 while (p > buf && (p[-1] ==
'\r' || p[-1] ==
'\n'))
188 if (op->
env != NULL) {
203 for (tmp = op->
above; tmp != NULL; tmp = tmp->
above)
209 int user_event(
object *op,
object *activator,
object *third,
const char *message,
int fix) {
213 int execute_event(
object *op,
int eventcode,
object *activator,
object *third,
const char *message,
int fix) {
218 for (tmp = op->
inv; tmp != NULL; tmp = next) {
222 LOG(
llevDebug,
"********** EVENT HANDLER **********\n");
224 if (activator != NULL)
229 if (tmp->
title != NULL)
233 if (tmp->
name != NULL)
237 if (tmp->
title == NULL) {
242 }
else if (tmp->
slaying == NULL) {
249 if (plugin == NULL) {
258 rv = plugin->
eventfunc(&rvt, op, activator, third, message, fix, tmp);
284 if (plugins_list == NULL)
287 va_start(args, eventcode);
292 op = va_arg(args,
object *);
293 for (cp = plugins_list; cp != NULL; cp = cp->
next) {
294 if (cp->
gevent[eventcode] != NULL)
295 cp->
gevent[eventcode](&rt, eventcode, op);
301 for (cp = plugins_list; cp != NULL; cp = cp->
next) {
302 if (cp->
gevent[eventcode] != NULL)
303 cp->
gevent[eventcode](&rt, eventcode);
308 for (cp = plugins_list; cp != NULL; cp = cp->
next) {
309 if (cp->
gevent[eventcode] != NULL)
310 cp->
gevent[eventcode](&rt, eventcode);
316 op = va_arg(args,
object *);
317 for (cp = plugins_list; cp != NULL; cp = cp->
next) {
318 if (cp->
gevent[eventcode] != NULL)
319 cp->
gevent[eventcode](&rt, eventcode, op);
325 op = va_arg(args,
object *);
326 op2 = va_arg(args,
object *);
327 for (cp = plugins_list; cp != NULL; cp = cp->
next) {
328 if (cp->
gevent[eventcode] != NULL)
329 cp->
gevent[eventcode](&rt, eventcode, op, op2);
335 pl = va_arg(args,
player *);
336 buf = va_arg(args,
char *);
337 for (cp = plugins_list; cp != NULL; cp = cp->
next) {
338 if (cp->
gevent[eventcode] != NULL)
339 cp->
gevent[eventcode](&rt, eventcode, pl, buf);
345 pl = va_arg(args,
player *);
346 buf = va_arg(args,
char *);
347 for (cp = plugins_list; cp != NULL; cp = cp->
next) {
348 if (cp->
gevent[eventcode] != NULL)
349 cp->
gevent[eventcode](&rt, eventcode, pl, buf);
355 op = va_arg(args,
object *);
357 for (cp = plugins_list; cp != NULL; cp = cp->
next) {
358 if (cp->
gevent[eventcode] != NULL)
359 cp->
gevent[eventcode](&rt, eventcode, op, map);
365 op = va_arg(args,
object *);
367 for (cp = plugins_list; cp != NULL; cp = cp->
next) {
368 if (cp->
gevent[eventcode] != NULL)
369 cp->
gevent[eventcode](&rt, eventcode, op, map);
376 for (cp = plugins_list; cp != NULL; cp = cp->
next) {
377 if (cp->
gevent[eventcode] != NULL)
378 cp->
gevent[eventcode](&rt, eventcode, map);
384 op = va_arg(args,
object *);
385 for (cp = plugins_list; cp != NULL; cp = cp->
next) {
386 if (cp->
gevent[eventcode] != NULL)
387 cp->
gevent[eventcode](&rt, eventcode, op);
393 op = va_arg(args,
object *);
394 buf = va_arg(args,
char *);
395 i = va_arg(args,
int);
396 for (cp = plugins_list; cp != NULL; cp = cp->
next) {
397 if (cp->
gevent[eventcode] != NULL)
398 cp->
gevent[eventcode](&rt, eventcode, op, buf, i);
404 op = va_arg(args,
object *);
405 buf = va_arg(args,
const char *);
406 op2 = va_arg(args,
object *);
407 for (cp = plugins_list; cp != NULL; cp = cp->
next) {
408 if (cp->
gevent[eventcode] != NULL)
409 cp->
gevent[eventcode](&rt, eventcode, op, buf, op2);
415 op = va_arg(args,
object *);
416 buf = va_arg(args,
char *);
417 for (cp = plugins_list; cp != NULL; cp = cp->
next) {
418 if (cp->
gevent[eventcode] != NULL)
419 cp->
gevent[eventcode](&rt, eventcode, op, buf);
425 op = va_arg(args,
object *);
426 buf = va_arg(args,
char *);
427 for (cp = plugins_list; cp != NULL; cp = cp->
next) {
428 if (cp->
gevent[eventcode] != NULL)
429 cp->
gevent[eventcode](&rt, eventcode, op, buf);
436 for (cp = plugins_list; cp != NULL; cp = cp->
next) {
437 if (cp->
gevent[eventcode] != NULL)
438 cp->
gevent[eventcode](&rt, eventcode, map);
445 for (cp = plugins_list; cp != NULL; cp = cp->
next) {
446 if (cp->
gevent[eventcode] != NULL)
447 cp->
gevent[eventcode](&rt, eventcode, map);
473 if (initfunc == NULL) {
479 if (propfunc == NULL) {
485 if (eventfunc == NULL) {
491 if (postfunc == NULL) {
497 if (closefunc == NULL) {
510 propfunc(&i,
"Identification", cp->
id,
sizeof(cp->
id));
514 if (plugins_list == NULL) {
517 for (ccp = plugins_list; ccp->
next != NULL; ccp = ccp->
next)
537 va_start(args, type);
538 request_type = va_arg(args,
int);
539 if (request_type == 0) {
540 fid = va_arg(args,
int);
546 *rapi = plug_hooks[fid].
func;
550 buf = va_arg(args,
char *);
555 if (!strcmp(buf, plug_hooks[i].fname)) {
556 *rapi = plug_hooks[i].
func;
569 if (plugins_list == NULL)
572 for (cp = plugins_list; cp != NULL; cp = cp->
next) {
573 if (!strcmp(
id, cp->
id)) {
607 if (plugins_list == NULL)
610 for (cp = plugins_list; cp != NULL; cp = cp->
next) {
611 if (!strcmp(
id, cp->
id)) {
626 "List of loaded plugins:\n-----------------------", NULL);
628 if (plugins_list == NULL)
631 for (cp = plugins_list; cp != NULL; cp = cp->
next) {
653 va_start(args, type);
654 anim = va_arg(args,
const char *);
655 num = va_arg(args,
int *);
676 va_start(args, type);
677 face = va_arg(args,
const char *);
678 error = va_arg(args,
int);
679 num = va_arg(args,
int *);
699 va_start(args, type);
700 txt = va_arg(args,
const char *);
701 ret = va_arg(args,
char **);
716 va_start(args, type);
717 eventcode = va_arg(args,
int);
718 pname = va_arg(args,
char *);
725 cp->
gevent[eventcode] = hook;
735 va_start(args, type);
736 eventcode = va_arg(args,
int);
737 pname = va_arg(args,
char *);
743 cp->
gevent[eventcode] = NULL;
761 va_start(args, type);
762 str = va_arg(args,
const char *);
783 va_start(args, type);
805 va_start(args, type);
806 str = va_arg(args,
const char *);
828 va_start(args, type);
830 name = va_arg(args,
char *);
831 prepend_dir = va_arg(args,
int);
832 ret = va_arg(args,
int *);
854 va_start(args, type);
856 str = va_arg(args,
char *);
857 regexp = va_arg(args,
char *);
858 rv = va_arg(args,
const char **);
860 *rv =
re_cmp(str, regexp);
872 va_start(args, type);
874 dirtype = va_arg(args,
int);
875 str = va_arg(args,
const char **);
928 va_start(args, type);
937 #define string_get_int(name) \
941 va_start(args, type); \
942 index = va_arg(args, int); \
943 str = va_arg(args, const char **); \
945 *str = name(index); \
946 *type = CFAPI_STRING; \
1018 va_start(args, type);
1019 ob = va_arg(args,
object *);
1020 delay = va_arg(args,
long);
1021 mode = va_arg(args,
int);
1022 timer = va_arg(args,
int *);
1051 va_start(args, type);
1052 id = va_arg(args,
int);
1053 err = va_arg(args,
int *);
1072 const char *message;
1074 va_start(args, type);
1076 message = va_arg(args,
const char *);
1077 LOG(logLevel,
"%s", message);
1104 va_start(args, type);
1106 ctype = va_arg(args,
int);
1110 x = va_arg(args,
int);
1111 y = va_arg(args,
int);
1117 name = va_arg(args,
const char *);
1118 x = va_arg(args,
int);
1125 nx = va_arg(args,
int);
1126 ny = va_arg(args,
int);
1154 va_start(args, type);
1155 string = va_arg(args,
char *);
1176 va_start(args, type);
1178 ctype = va_arg(args,
int);
1179 str = va_arg(args,
const char *);
1180 name = va_arg(args,
char *);
1181 size = va_arg(args,
int);
1217 va_start(args, type);
1220 property = va_arg(args,
int);
1225 x = va_arg(args,
int);
1226 y = va_arg(args,
int);
1227 nx = va_arg(args,
sint16 *);
1228 ny = va_arg(args,
sint16 *);
1229 rint = va_arg(args,
int *);
1235 rint = va_arg(args,
int *);
1241 rstr = va_arg(args,
sstring *);
1247 rstr = va_arg(args,
sstring *);
1253 rstr = va_arg(args,
sstring *);
1259 rint = va_arg(args,
int *);
1265 rint = va_arg(args,
int *);
1271 rint = va_arg(args,
int *);
1277 rint = va_arg(args,
int *);
1283 rint = va_arg(args,
int *);
1289 rint = va_arg(args,
int *);
1295 rint = va_arg(args,
int *);
1301 rint = va_arg(args,
int *);
1307 rstr = va_arg(args,
sstring *);
1319 rreg = va_arg(args,
region **);
1325 rint = va_arg(args,
int *);
1344 va_start(args, type);
1347 property = va_arg(args,
int);
1351 buf = va_arg(args,
const char *);
1377 va_start(args, type);
1379 x = va_arg(args,
int);
1380 y = va_arg(args,
int);
1381 rint = va_arg(args,
int *);
1401 va_start(args, type);
1404 x = va_arg(args,
int);
1405 y = va_arg(args,
int);
1416 va_start(args, type);
1432 va_start(args, type);
1434 string = va_arg(args,
const char *);
1435 color = va_arg(args,
int);
1458 va_start(args, type);
1460 x = va_arg(args,
int);
1461 y = va_arg(args,
int);
1462 robj = va_arg(args,
object **);
1490 va_start(args, type);
1492 msg = va_arg(args,
char *);
1494 x = va_arg(args,
int);
1495 y = va_arg(args,
int);
1496 robj = va_arg(args,
object **);
1518 va_start(args, type);
1520 change = va_arg(args,
int);
1521 rint = va_arg(args,
int *);
1555 va_start(args, type);
1556 kind = va_arg(args,
int);
1559 op = va_arg(args,
object *);
1560 direction = va_arg(args,
int);
1561 activator = va_arg(args,
object *);
1562 ret = va_arg(args,
int *);
1564 *ret =
move_ob(op, direction, activator);
1568 pl = va_arg(args,
player *);
1569 direction = va_arg(args,
int);
1570 ret = va_arg(args,
int *);
1590 const char *keyname;
1594 va_start(args, type);
1595 op = va_arg(args,
object *);
1596 keyname = va_arg(args,
const char *);
1597 value = va_arg(args,
const char **);
1615 const char *keyname;
1621 va_start(args, type);
1622 op = va_arg(args,
object *);
1623 keyname = va_arg(args,
char *);
1624 value = va_arg(args,
char *);
1625 add_key = va_arg(args,
int);
1626 ret = va_arg(args,
int *);
1655 va_start(args, type);
1657 op = va_arg(args,
object *);
1658 property = va_arg(args,
int);
1661 robject = va_arg(args,
object **);
1662 *robject = op->
above;
1667 robject = va_arg(args,
object **);
1668 *robject = op->
below;
1673 robject = va_arg(args,
object **);
1679 robject = va_arg(args,
object **);
1685 robject = va_arg(args,
object **);
1691 robject = va_arg(args,
object **);
1697 robject = va_arg(args,
object **);
1698 *robject = op->
head;
1703 robject = va_arg(args,
object **);
1715 rint = va_arg(args,
int *);
1721 rbuffer = va_arg(args,
char *);
1722 rbufsize = va_arg(args,
int);
1728 rsstring = va_arg(args,
sstring *);
1734 rsstring = va_arg(args,
sstring *);
1735 *rsstring = op->
title;
1740 rsstring = va_arg(args,
sstring *);
1741 *rsstring = op->
race;
1746 rsstring = va_arg(args,
sstring *);
1752 rsstring = va_arg(args,
sstring *);
1753 *rsstring = op->
skill;
1758 rsstring = va_arg(args,
sstring *);
1759 *rsstring = op->
msg;
1764 rsstring = va_arg(args,
sstring *);
1765 *rsstring = op->
lore;
1770 rint = va_arg(args,
int *);
1776 rint = va_arg(args,
int *);
1782 rfloat = va_arg(args,
float *);
1783 *rfloat = op->
speed;
1788 rfloat = va_arg(args,
float *);
1794 rint = va_arg(args,
int *);
1800 rint = va_arg(args,
int *);
1806 rint = va_arg(args,
int *);
1812 rint = va_arg(args,
int *);
1818 rint = va_arg(args,
int *);
1824 rint = va_arg(args,
int *);
1833 idx = va_arg(args,
int);
1834 resist = va_arg(args,
sint16 *);
1835 *resist = op->
resist[idx];
1841 rint = va_arg(args,
int *);
1847 rint = va_arg(args,
int *);
1853 rint = va_arg(args,
int *);
1859 rint = va_arg(args,
int *);
1865 rint = va_arg(args,
int *);
1871 rsstring = va_arg(args,
sstring *);
1877 rint = va_arg(args,
int *);
1883 rlong = va_arg(args,
long *);
1889 rint = va_arg(args,
int *);
1895 rint = va_arg(args,
int *);
1901 rint = va_arg(args,
int *);
1907 rint = va_arg(args,
int *);
1913 rint = va_arg(args,
int *);
1919 rint = va_arg(args,
int *);
1925 rint = va_arg(args,
int *);
1931 rint = va_arg(args,
int *);
1937 rint = va_arg(args,
int *);
1943 rint = va_arg(args,
int *);
1949 rint = va_arg(args,
int *);
1955 rint = va_arg(args,
int *);
1961 rint = va_arg(args,
int *);
1967 rint64 = va_arg(args, sint64 *);
1973 robject = va_arg(args,
object **);
1979 robject = va_arg(args,
object **);
1980 *robject = op->
enemy;
1985 robject = va_arg(args,
object **);
1991 rint = va_arg(args,
int *);
1997 robject = va_arg(args,
object **);
2003 rint = va_arg(args,
int *);
2009 rint = va_arg(args,
int *);
2015 rint = va_arg(args,
int *);
2021 robject = va_arg(args,
object **);
2027 rdouble = va_arg(args,
double *);
2045 rsstring = va_arg(args,
sstring *);
2051 rint = va_arg(args,
int *);
2057 rint = va_arg(args,
int *);
2063 rbuffer = va_arg(args,
char *);
2064 rbufsize = va_arg(args,
int);
2072 i = va_arg(args,
int);
2073 rbuffer = va_arg(args,
char *);
2074 rbufsize = va_arg(args,
int);
2081 rint = va_arg(args,
int *);
2087 rint = va_arg(args,
int *);
2093 rint64 = va_arg(args, sint64 *);
2099 robject = va_arg(args,
object **);
2107 stype = va_arg(args,
int);
2109 unsigned char ptype;
2114 ptype = (
unsigned char)(va_arg(args,
int));
2115 robject = va_arg(args,
object **);
2120 ptype = (
unsigned char)(va_arg(args,
int));
2121 buf = va_arg(args,
char *);
2122 robject = va_arg(args,
object **);
2128 robject = va_arg(args,
object **);
2137 rint = va_arg(args,
int *);
2145 op2 = va_arg(args,
object *);
2146 rint = va_arg(args,
int *);
2155 op2 = va_arg(args,
object *);
2156 rint = va_arg(args,
int *);
2165 fl = va_arg(args,
int);
2166 rint = va_arg(args,
int *);
2173 rint = va_arg(args,
int *);
2179 rint = va_arg(args,
int *);
2185 rint = va_arg(args,
int *);
2191 rint = va_arg(args,
int *);
2197 rint = va_arg(args,
int *);
2203 rint = va_arg(args,
int *);
2209 rint = va_arg(args,
int *);
2215 rint = va_arg(args,
int *);
2221 rint = va_arg(args,
int *);
2227 rint = va_arg(args,
int *);
2233 rint = va_arg(args,
int *);
2239 rint = va_arg(args,
int *);
2245 rint = va_arg(args,
int *);
2251 rint = va_arg(args,
int *);
2257 rint = va_arg(args,
int *);
2263 rint = va_arg(args,
int *);
2269 rint = va_arg(args,
int *);
2275 rsstring = va_arg(args,
sstring *);
2281 rsstring = va_arg(args,
sstring *);
2287 rint = va_arg(args,
int *);
2293 rint = va_arg(args,
int *);
2299 rint = va_arg(args,
int *);
2305 rsstring = va_arg(args,
sstring *);
2311 robject = va_arg(args,
object **);
2323 robject = va_arg(args,
object **);
2333 rsstring = va_arg(args,
sstring *);
2339 rint = va_arg(args,
int *);
2381 rfloat = va_arg(args,
float *);
2387 rbuffer = va_arg(args,
char *);
2388 rbufsize = va_arg(args,
int);
2394 rint = va_arg(args,
int *);
2400 rint = va_arg(args,
int *);
2406 rint = va_arg(args,
int *);
2436 if (msg[0] != 0 && msg[size-1] ==
'\n') {
2441 temp = malloc(size+2);
2444 snprintf(temp, size+2,
"%s\n", msg);
2472 va_start(args, type);
2473 op = va_arg(args,
object *);
2474 property = va_arg(args,
int);
2477 if (op != NULL && (!op->
arch || (op != &op->
arch->
clone))) {
2480 sarg = va_arg(args,
char *);
2487 sarg = va_arg(args,
char *);
2494 sarg = va_arg(args,
char *);
2500 sarg = va_arg(args,
char *);
2506 sarg = va_arg(args,
char *);
2512 sarg = va_arg(args,
char *);
2518 sarg = va_arg(args,
char *);
2524 sarg = va_arg(args,
char *);
2530 farg = va_arg(args,
double);
2532 if (farg != op->
speed) {
2539 farg = va_arg(args,
double);
2545 iarg = va_arg(args,
int);
2556 if (op->
env != NULL) {
2573 object *above = op->
above;
2575 for (tmp = above; tmp != NULL; tmp = tmp->
above)
2583 iarg = va_arg(args,
int);
2589 iarg = va_arg(args,
int);
2595 int iargbis = va_arg(args,
int);
2598 iarg = va_arg(args,
int);
2599 op->
resist[iargbis] = iarg;
2604 iarg = va_arg(args,
int);
2610 iarg = va_arg(args,
int);
2616 iarg = va_arg(args,
int);
2622 iarg = va_arg(args,
int);
2628 iarg = va_arg(args,
int);
2637 iarg = va_arg(args,
int);
2643 larg = va_arg(args,
long);
2649 iarg = va_arg(args,
int);
2655 iarg = va_arg(args,
int);
2661 iarg = va_arg(args,
int);
2667 iarg = va_arg(args,
int);
2673 iarg = va_arg(args,
int);
2679 iarg = va_arg(args,
int);
2685 iarg = va_arg(args,
int);
2691 iarg = va_arg(args,
int);
2697 iarg = va_arg(args,
int);
2703 iarg = va_arg(args,
int);
2705 if (op->
weight != iarg) {
2710 if (op->
env != NULL) {
2727 object *above = op->
above;
2729 for (tmp = above; tmp != NULL; tmp = tmp->
above)
2737 iarg = va_arg(args,
int);
2743 iarg = va_arg(args,
int);
2750 if (tmp->
map != NULL) {
2759 s64arg = va_arg(args, sint64);
2765 oparg = va_arg(args,
object *);
2771 iarg = va_arg(args,
int);
2777 oparg = va_arg(args,
object *);
2783 iarg = va_arg(args,
int);
2789 iarg = va_arg(args,
int);
2795 iarg = va_arg(args,
int);
2801 oparg = va_arg(args,
object *);
2807 darg = va_arg(args,
double);
2813 sarg = va_arg(args,
char *);
2820 iarg = va_arg(args,
int);
2826 iarg = va_arg(args,
int);
2835 iarg = va_arg(args,
int);
2841 s64arg = va_arg(args, sint64);
2847 oparg = va_arg(args,
object *);
2860 iarg = va_arg(args,
int);
2861 iargbis = va_arg(args,
int);
2872 iarg = va_arg(args,
int);
2878 iarg = va_arg(args,
int);
2884 iarg = va_arg(args,
int);
2890 iarg = va_arg(args,
int);
2896 iarg = va_arg(args,
int);
2902 iarg = va_arg(args,
int);
2908 iarg = va_arg(args,
int);
2914 iarg = va_arg(args,
int);
2920 iarg = va_arg(args,
int);
2926 iarg = va_arg(args,
int);
2932 iarg = va_arg(args,
int);
2938 iarg = va_arg(args,
int);
2944 iarg = va_arg(args,
int);
2950 iarg = va_arg(args,
int);
2956 iarg = va_arg(args,
int);
2962 iarg = va_arg(args,
int);
2968 iarg = va_arg(args,
int);
2974 iarg = va_arg(args,
int);
2982 iarg = va_arg(args,
int);
2990 iarg = va_arg(args,
int);
2997 oparg = va_arg(args,
object *);
3014 iarg = va_arg(args,
int);
3020 sarg = va_arg(args,
char *);
3026 iarg = va_arg(args,
int);
3032 iarg = va_arg(args,
int);
3038 sarg = va_arg(args,
char *);
3065 va_start(args, type);
3067 applier = va_arg(args,
object *);
3091 va_start(args, type);
3093 applier = va_arg(args,
object *);
3094 applied = va_arg(args,
object *);
3095 aflags = va_arg(args,
int);
3096 ret = va_arg(args,
int *);
3116 va_start(args, type);
3118 op = va_arg(args,
object *);
3141 va_start(args, type);
3143 op = va_arg(args,
object *);
3144 owner = va_arg(args,
object *);
3145 desc = va_arg(args,
char *);
3146 size = va_arg(args,
int);
3160 va_start(args, type);
3162 op = va_arg(args,
object *);
3163 ds = va_arg(args,
int);
3177 va_start(args, type);
3179 op = va_arg(args,
object *);
3195 va_start(args, type);
3197 op = va_arg(args,
object *);
3198 skillname = va_arg(args,
char *);
3212 va_start(args, type);
3214 op = va_arg(args,
object *);
3215 chg = va_arg(args,
object *);
3228 va_start(args, type);
3230 op = va_arg(args,
object *);
3249 va_start(args, type);
3251 op = va_arg(args,
object *);
3254 LOG(
llevError,
"Plugin trying to free freed/non removed object %s\n", op->
name);
3280 va_start(args, type);
3282 op = va_arg(args,
object *);
3283 kind = va_arg(args,
int);
3284 robj = va_arg(args,
object **);
3310 va_start(args, type);
3313 ftype = va_arg(args,
int);
3316 ival = va_arg(args,
int);
3321 sval = va_arg(args,
char *);
3326 op = va_arg(args,
object *);
3327 ival = va_arg(args,
int);
3328 ival2 = va_arg(args,
int);
3333 op = va_arg(args,
object *);
3359 va_start(args, type);
3360 ival = va_arg(args,
int);
3365 robj = va_arg(args,
object **);
3373 sval = va_arg(args,
const char *);
3374 robj = va_arg(args,
object **);
3403 va_start(args, type);
3405 op = va_arg(args,
object *);
3407 LOG(
llevError,
"cfapi_object_insert: called with NULL object!\n");
3412 LOG(
llevError,
"cfapi_object_insert: called with FREED object!\n");
3417 LOG(
llevError,
"cfapi_object_insert: called with not removed object %s!\n", op->
name);
3420 itype = va_arg(args,
int);
3425 orig = va_arg(args,
object *);
3426 flag = va_arg(args,
int);
3427 x = va_arg(args,
int);
3428 y = va_arg(args,
int);
3429 robj = va_arg(args,
object **);
3431 LOG(
llevError,
"cfapi_object_insert (0): called with NULL map, object %s!\n", op->
name);
3441 orig = va_arg(args,
object *);
3442 flag = va_arg(args,
int);
3443 robj = va_arg(args,
object **);
3445 LOG(
llevError,
"cfapi_object_insert (1): called with NULL map, object %s!\n", op->
name);
3454 orig = va_arg(args,
object *);
3455 robj = va_arg(args,
object **);
3457 LOG(
llevError,
"cfapi_object_insert (3): called with NULL orig, object %s!\n", op->
name);
3466 LOG(
llevError,
"cfapi_object_insert (1): called with itype %d which is not valid, object %s!\n", itype, op->
name);
3491 va_start(args, type);
3493 op = va_arg(args,
object *);
3494 nr = va_arg(args,
int);
3495 buf = va_arg(args,
char *);
3496 size = va_arg(args,
int);
3497 split = va_arg(args,
object **);
3518 va_start(args, type);
3520 op = va_arg(args,
object *);
3521 op2 = va_arg(args,
object *);
3522 merge = va_arg(args,
object **);
3543 va_start(args, type);
3545 op = va_arg(args,
object *);
3546 op2 = va_arg(args,
object *);
3547 rint = va_arg(args,
int *);
3566 va_start(args, type);
3568 op = va_arg(args,
object *);
3569 action = va_arg(args,
int);
3588 va_start(args, type);
3590 op = va_arg(args,
object *);
3610 va_start(args, type);
3612 op = va_arg(args,
object *);
3628 va_start(args, type);
3630 op = va_arg(args,
object *);
3631 op2 = va_arg(args,
object *);
3632 checktype = va_arg(args,
int);
3634 if (checktype == 0) {
3651 va_start(args, type);
3652 op = va_arg(args,
object *);
3665 va_start(args, type);
3666 op1 = va_arg(args,
object *);
3667 op2 = va_arg(args,
object *);
3668 rint = va_arg(args,
int *);
3682 va_start(args, type);
3683 trap = va_arg(args,
object *);
3684 victim = va_arg(args,
object *);
3705 va_start(args, type);
3706 op = va_arg(args,
object *);
3707 cause = va_arg(args,
object *);
3708 rint = va_arg(args,
int *);
3735 va_start(args, type);
3737 cause = va_arg(args,
object *);
3738 state = va_arg(args,
int);
3759 va_start(args, type);
3760 op = va_arg(args,
object *);
3761 who = va_arg(args,
object *);
3762 flags = va_arg(args,
int);
3763 rint = va_arg(args,
int *);
3783 va_start(args, type);
3784 op = va_arg(args,
object *);
3785 rint = va_arg(args,
int *);
3809 va_start(args, type);
3810 op = va_arg(args,
object *);
3811 caster = va_arg(args,
object *);
3812 dir = va_arg(args,
int);
3813 sp = va_arg(args,
object *);
3814 str = va_arg(args,
char *);
3815 rint = va_arg(args,
int *);
3825 *rint =
cast_spell(op, caster, dir, sp, str);
3835 va_start(args, type);
3836 op = va_arg(args,
object *);
3837 sp = va_arg(args,
object *);
3838 prayer = va_arg(args,
int);
3851 va_start(args, type);
3852 op = va_arg(args,
object *);
3853 sp = va_arg(args,
object *);
3874 va_start(args, type);
3875 op = va_arg(args,
object *);
3876 spellname = va_arg(args,
char *);
3877 robj = va_arg(args,
object **);
3897 va_start(args, type);
3898 op = va_arg(args,
object *);
3899 amount = va_arg(args, uint64);
3900 rint = va_arg(args,
int *);
3921 va_start(args, type);
3922 tobuy = va_arg(args,
object *);
3923 op = va_arg(args,
object *);
3924 rint = va_arg(args,
int *);
3944 int x, y, randompos, ttype, flag;
3950 va_start(args, type);
3951 op = va_arg(args,
object *);
3952 ttype = va_arg(args,
int);
3955 x = va_arg(args,
int);
3956 y = va_arg(args,
int);
3957 randompos = va_arg(args,
int);
3958 originator = va_arg(args,
object *);
3959 rint = va_arg(args,
int *);
3962 *rint =
transfer_ob(op, x, y, randompos, originator);
3969 originator = va_arg(args,
object *);
3970 flag = va_arg(args,
int);
3971 x = va_arg(args,
int);
3972 y = va_arg(args,
int);
3973 robj = va_arg(args,
object **);
3975 if (x < 0 || y < 0) {
3985 x = va_arg(args,
int);
3986 y = va_arg(args,
int);
3987 rint = va_arg(args,
int *);
4011 va_start(args, type);
4012 op = va_arg(args,
object *);
4014 str = va_arg(args,
char *);
4015 robj = va_arg(args,
object **);
4017 if (*robj == NULL) {
4022 for (tmp = op->
inv; tmp; tmp = tmp->
below) {
4024 if (!strncmp(name, str, strlen(str)))
4026 if (!strncmp(tmp->
name, str, strlen(str)))
4049 va_start(args, type);
4050 op = va_arg(args,
object *);
4051 author = va_arg(args,
object *);
4075 va_start(args, type);
4076 op = va_arg(args,
object *);
4077 tmp = va_arg(args,
object *);
4078 rint = va_arg(args,
int *);
4093 va_start(args, type);
4094 op = va_arg(args,
object *);
4095 msg = va_arg(args,
char *);
4096 rint = va_arg(args,
int *);
4122 va_start(args, type);
4124 sval = va_arg(args,
char *);
4125 rpl = va_arg(args,
player **);
4141 va_start(args, type);
4143 flags = va_arg(args,
int);
4144 pri = va_arg(args,
int);
4145 pl = va_arg(args,
object *);
4146 buf = va_arg(args,
char *);
4169 va_start(args, type);
4170 ob = va_arg(args,
object *);
4171 exp = va_arg(args, sint64);
4172 skill = va_arg(args,
const char *);
4173 flag = va_arg(args,
int);
4193 va_start(args, type);
4194 pl = va_arg(args,
object *);
4195 rint = va_arg(args,
int *);
4217 va_start(args, type);
4218 who = va_arg(args,
object *);
4220 x = va_arg(args,
int);
4221 y = va_arg(args,
int);
4222 res = va_arg(args,
int *);
4251 va_start(args, type);
4252 who = va_arg(args,
object *);
4253 what = va_arg(args,
object *);
4270 va_start(args, type);
4272 prop = va_arg(args,
int);
4276 rsstring = va_arg(args,
sstring *);
4277 *rsstring = arch->
name;
4289 *rarch = arch->
head;
4295 *rarch = arch->
more;
4300 robject = va_arg(args,
object **);
4301 *robject = &arch->
clone;
4329 va_start(args, type);
4331 prop = va_arg(args,
int);
4334 rsstring = va_arg(args,
sstring *);
4346 rsstring = va_arg(args,
sstring *);
4347 *rsstring = party->
passwd;
4353 obarg = va_arg(args,
object *);
4354 rplayer = va_arg(args,
player **);
4356 for (; *rplayer != NULL; (*rplayer) = (*rplayer)->
next)
4357 if ((*rplayer)->ob->contr->party == party) {
4386 va_start(args, type);
4387 reg = va_arg(args,
region *);
4388 prop = va_arg(args,
int);
4391 rsstring = va_arg(args,
sstring *);
4392 *rsstring = reg->
name;
4397 rregion = va_arg(args,
region **);
4403 rregion = va_arg(args,
region **);
4409 rsstring = va_arg(args,
sstring *);
4415 rsstring = va_arg(args,
sstring *);
4416 *rsstring = reg->
msg;
4445 va_start(args, type);
4446 ob = va_arg(args,
object *);
4447 robject = va_arg(args,
object **);
4455 if (ob == link->
ob) {
4457 *robject = link->
next->
ob;
4491 va_start(args, type);
4493 buf = va_arg(args,
const char *);
4494 ret = va_arg(args,
int *);
4518 va_start(args, type);
4519 name = va_arg(args,
const char *);
4521 use_layout = va_arg(args,
char **);
4534 const char *message;
4539 va_start(args, type);
4540 op = va_arg(args,
object *);
4541 activator = va_arg(args,
object *);
4542 third = va_arg(args,
object *);
4543 message = va_arg(args,
const char *);
4544 fix = va_arg(args,
int);
4545 ret = va_arg(args,
int *);
4548 *ret =
user_event(op, activator, third, message, fix);
4573 if (plugins_list == NULL)
4576 for (cp = plugins_list; cp != NULL; cp = cp->
next) {
4577 if (cp->
propfunc(&i,
"command?", cmd, &rtn_cmd) != NULL)
4589 struct dirent *currentfile;
4600 if (plugdir == NULL)
4604 while ((currentfile =
readdir(plugdir)) != NULL) {
4605 l = strlen(currentfile->
d_name);
4629 for (cp = plugins_list; cp != NULL; ) {
4642 plugins_list = NULL;
void * cfapi_timer_create(int *type,...)
#define CFAPI_OBJECT_PROP_STR
#define CFAPI_OBJECT_PROP_MAP
void * cfapi_system_directory(int *type,...)
#define CFAPI_OBJECT_PROP_RUN_AWAY
void * cfapi_object_insert(int *type,...)
void spring_trap(object *trap, object *victim)
static void copy_message(object *op, const char *msg)
#define CFAPI_OBJECT_PROP_MAGIC
int get_map_flags(mapstruct *oldmap, mapstruct **newmap, sint16 x, sint16 y, sint16 *nx, sint16 *ny)
#define CFAPI_PARTY_PROP_PASSWORD
void * cfapi_system_find_string(int *type,...)
#define CFAPI_OBJECT_PROP_MATERIAL
const char * determine_god(object *op)
#define CFAPI_OBJECT_PROP_NO_SAVE
#define CFAPI_OBJECT_PROP_ANIMATION
void * cfapi_object_remove(int *type,...)
#define CFAPI_OBJECT_PROP_SP
uint64 query_money(const object *op)
void * cfapi_object_reset(int *type,...)
void * cfapi_object_clone(int *type,...)
#define CFAPI_OBJECT_PROP_CARRYING
#define plugins_dlopen(fname)
#define CFAPI_OBJECT_PROP_NAME
#define CFAPI_OBJECT_PROP_OB_BELOW
#define CFAPI_PLAYER_PROP_TITLE
#define CFAPI_MAP_PROP_NAME
const char * get_ob_key_value(const object *op, const char *const key)
int move_player(object *op, int dir)
void npc_say(object *npc, const char *cp)
void * cfapi_system_remove_string(int *type,...)
void * cfapi_map_present_arch_by_name(int *type,...)
void * cfapi_map_get_object_at(int *type,...)
object * find_obj_by_type_subtype(const object *who, int type, int subtype)
void change_exp(object *op, sint64 exp, const char *skill_name, int flag)
#define CFAPI_OBJECT_PROP_RACE
object * check_spell_known(object *op, const char *name)
#define CFAPI_MAP_PROP_ENTER_Y
static const hook_entry plug_hooks[NR_OF_HOOKS]
#define CFAPI_REGION_PROP_MESSAGE
void set_owner(object *op, object *owner)
int is_magical(const object *op)
void * cfapi_map_change_light(int *type,...)
#define CFAPI_MAP_PROP_FLAGS
#define CFAPI_MAP_PROP_DARKNESS
#define CFAPI_OBJECT_PROP_ARCHETYPE
#define CFAPI_OBJECT_PROP_WEIGHT
#define CFAPI_OBJECT_PROP_ATTACK_TYPE
#define CFAPI_OBJECT_PROP_FACE
mapstruct * get_empty_map(int sizex, int sizey)
object * present_in_ob(uint8 type, const object *op)
void do_forget_spell(object *op, const char *spell)
#define plugins_dlsym(lib, name)
mapstruct * generate_random_map(const char *OutFileName, RMParms *RP, char **use_layout)
#define CFAPI_OBJECT_PROP_GOD
#define CFAPI_OBJECT_PROP_PICK_UP
#define CFAPI_MAP_PROP_DIFFICULTY
#define CFAPI_MAP_PROP_HEIGHT
#define CFAPI_OBJECT_PROP_DIRECTION
void * cfapi_object_say(int *type,...)
void * cfapi_object_clean_object(int *type,...)
object * object_get_env_recursive(object *op)
EXTERN objectlink * first_friendly_object
#define CFAPI_OBJECT_PROP_NEXT_ACTIVE_OB
#define CFAPI_OBJECT_PROP_MAXGP
#define CFAPI_OBJECT_PROP_HIDDEN
object * insert_ob_in_map_at(object *op, mapstruct *m, object *originator, int flag, int x, int y)
#define CFAPI_OBJECT_PROP_MOVE_STATUS
const char * get_season_name(const int index)
char * create_pathname(const char *name, char *buf, size_t size)
void * cfapi_object_identify(int *type,...)
void * cfapi_object_move(int *type,...)
mapstruct * ready_map_name(const char *name, int flags)
#define CFAPI_OBJECT_PROP_SUBTYPE
object * find_object_name(const char *str)
void free_string(sstring str)
#define CFAPI_ARCH_PROP_MORE
#define SET_ANIMATION(ob, newanim)
void esrv_update_item(int flags, object *pl, object *op)
#define CFAPI_OBJECT_PROP_CONTAINER
void pick_up(object *op, object *alt)
#define CFAPI_OBJECT_PROP_INVENTORY
void query_base_name(const object *op, int plural, char *buf, size_t size)
void * cfapi_map_has_been_loaded(int *type,...)
#define CFAPI_OBJECT_PROP_FLAGS
int calculate_difficulty(mapstruct *m)
object * merge_ob(object *op, object *top)
#define CFAPI_OBJECT_PROP_NAME_PLURAL
void draw_ext_info(int flags, int pri, const object *pl, uint8 type, uint8 subtype, const char *message, const char *oldmessage)
const char * get_weekday(const int index)
region * get_region_by_map(mapstruct *m)
DIR * opendir(const char *)
void *(* f_plug_api)(int *type,...)
#define CFAPI_OBJECT_PROP_OWNER
void update_object(object *op, int action)
void * cfapi_object_set_property(int *type,...)
crossfire_plugin * plugins_list
#define CFAPI_OBJECT_PROP_MOVE_ON
#define CFAPI_OBJECT_PROP_MESSAGE
#define CFAPI_OBJECT_PROP_EXP_MULTIPLIER
void * cfapi_object_get_key(int *type,...)
#define plugins_dlclose(lib)
void * cfapi_log(int *type,...)
void * cfapi_get_time(int *type,...)
#define CFAPI_MAP_PROP_RESET_TIMEOUT
int manual_apply(object *op, object *tmp, int aflag)
void * cfapi_object_clear(int *type,...)
void * cfapi_object_query_money(int *type,...)
void * cfapi_object_apply_below(int *type,...)
void remove_friendly_object(object *op)
signed long sum_weight(object *op)
#define CFAPI_REGION_PROP_NEXT
object * find_object(tag_t i)
int distance(const object *ob1, const object *ob2)
#define CFAPI_MAP_PROP_NEXT
#define CFAPI_OBJECT_PROP_SLAYING
void * cfapi_object_create(int *type,...)
int(* f_plug_postinit)(void)
void draw_ext_info_format(int flags, int pri, const object *pl, uint8 type, uint8 subtype, const char *new_format, const char *old_format,...)
struct archt * other_arch
void transmute_materialname(object *op, const object *change)
char savebed_map[MAX_BUF]
#define CFAPI_OBJECT_PROP_CHOSEN_SKILL
#define CFAPI_OBJECT_PROP_OTHER_ARCH
#define CFAPI_OBJECT_PROP_LAST_SP
int change_map_light(mapstruct *m, int change)
#define CFAPI_OBJECT_PROP_LAST_GRACE
#define CFAPI_OBJECT_PROP_COUNT
void * cfapi_system_add_string(int *type,...)
int command_say(object *op, char *params)
object * give_skill_by_name(object *op, const char *skill_name)
const char * get_month_name(const int index)
void map_newmap_cmd(socket_struct *ns)
void * cfapi_object_learn_spell(int *type,...)
void * cfapi_player_can_pay(int *type,...)
struct _crossfire_plugin * next
#define CFAPI_PLAYER_PROP_BED_X
crossfire_plugin * plugins_find_plugin(const char *id)
struct obj * chosen_skill
int change_abil(object *op, object *tmp)
#define CFAPI_MAP_PROP_PLAYERS
int move_to(object *op, int x, int y)
void remove_ob(object *op)
int is_friendly(const object *op)
sstring find_string(const char *str)
#define CFAPI_OBJECT_PROP_FACING
void * cfapi_object_merge(int *type,...)
int user_event(object *op, object *activator, object *third, const char *message, int fix)
command_array_struct * find_plugin_command(char *cmd, object *op)
#define CFAPI_PLAYER_PROP_IP
#define CFAPI_OBJECT_PROP_ENVIRONMENT
#define CFAPI_OBJECT_PROP_GP
#define CFAPI_OBJECT_PROP_CHA
#define CFAPI_PARTY_PROP_PLAYER
#define CFAPI_OBJECT_PROP_ATTACKED_BY
#define CFAPI_OBJECT_PROP_MOVE_SLOW_PENALTY
object * get_player_container(object *op)
#define CFAPI_MAP_PROP_UNIQUE
void * cfapi_object_check_spell(int *type,...)
struct party_struct * next
#define CFAPI_OBJECT_PROP_INT
void * cfapi_generate_random_map(int *type,...)
#define CFAPI_MAP_PROP_RESET_TIME
#define CFAPI_ARCH_PROP_HEAD
const char * materialname
void * cfapi_object_transmute(int *type,...)
#define CFAPI_OBJECT_PROP_LEVEL
void update_all_los(const mapstruct *map, int x, int y)
f_plug_api gevent[NR_EVENTS]
#define CFAPI_OBJECT_PROP_HEAD
#define CFAPI_PLAYER_PROP_BED_MAP
#define CFAPI_OBJECT_PROP_MOVE_ALLOW
void * cfapi_object_drain(int *type,...)
int pay_for_item(object *op, object *pl)
void * cfapi_system_strdup_local(int *type,...)
void * cfapi_object_drop(int *type,...)
void drain_specific_stat(object *op, int deplete_stats)
#define CFAPI_ARCH_PROP_NEXT
f_plug_postinit closefunc
int plugins_init_plugin(const char *libfile)
void identify(object *op)
void * cfapi_party_get_property(int *type,...)
int find_first_free_spot(const object *ob, mapstruct *m, int x, int y)
void update_position(mapstruct *m, int x, int y)
int execute_event(object *op, int eventcode, object *activator, object *third, const char *message, int fix)
void * cfapi_object_on_same_map(int *type,...)
void add_friendly_object(object *op)
#define CFAPI_OBJECT_PROP_FP
void * cfapi_system_find_face(int *type,...)
int can_merge(object *ob1, object *ob2)
#define CFAPI_OBJECT_PROP_MAGICAL
void * cfapi_map_get_map_property(int *type,...)
object * get_owner(object *op)
void * cfapi_get_month_name(int *type,...)
archetype * find_archetype_by_object_name(const char *name)
#define CFAPI_OBJECT_PROP_LAST_EAT
void * cfapi_object_teleport(int *type,...)
const char * re_cmp(const char *, const char *)
#define CFAPI_OBJECT_PROP_MOVE_OFF
#define CFAPI_OBJECT_PROP_WEIGHT_LIMIT
struct obj * current_weapon
void * cfapi_object_pay_item(int *type,...)
object * object_create_clone(object *asrc)
void * cfapi_object_get_property(int *type,...)
#define string_get_int(name)
void * cfapi_object_give_skill(int *type,...)
#define CFAPI_OBJECT_PROP_CURRENT_WEAPON
int find_animation(const char *name)
object * present_in_ob_by_name(int type, const char *str, const object *op)
mapstruct * get_map_from_coord(mapstruct *m, sint16 *x, sint16 *y)
int move_ob(object *op, int dir, object *originator)
int cftimer_destroy(int id)
#define CFAPI_OBJECT_PROP_X
void do_learn_spell(object *op, object *spell, int special_prayer)
#define CFAPI_OBJECT_PROP_CHEATER
#define CFAPI_OBJECT_PROP_PICKABLE
void cleanupPlugins(void)
int can_pick(const object *who, const object *item)
#define CFAPI_MAP_PROP_MESSAGE
void * cfapi_object_set_key(int *type,...)
#define CFAPI_OBJECT_PROP_ENEMY
void * cfapi_get_weekday_name(int *type,...)
object * find_marked_object(object *op)
#define CFAPI_OBJECT_PROP_PATH_REPELLED
void plugins_display_list(object *op)
object * present_arch(const archetype *at, mapstruct *m, int x, int y)
archetype * try_find_archetype(const char *name)
void player_apply_below(object *pl)
char d_name[_MAX_FNAME+1]
#define CFAPI_MAP_PROP_TMPNAME
struct regiondef * parent
int on_same_map(const object *op1, const object *op2)
#define QUERY_FLAG(xyz, p)
#define CLEAR_FLAG(xyz, p)
char * strdup_local(const char *str)
#define CFAPI_OBJECT_PROP_LORE
void * cfapi_object_query_cost(int *type,...)
#define CFAPI_OBJECT_PROP_ITEM_POWER
void * cfapi_map_out_of_map(int *type,...)
#define CFAPI_REGION_PROP_LONGNAME
object * insert_ob_in_ob(object *op, object *where)
void * cfapi_map_message(int *type,...)
#define CFAPI_PARTY_PROP_NAME
void * cfapi_system_re_cmp(int *type,...)
#define CFAPI_PLAYER_PROP_PARTY
void * cfapi_get_periodofday_name(int *type,...)
object * object_create_arch(archetype *at)
object * get_object(void)
void drop(object *op, object *tmp)
#define CFAPI_OBJECT_PROP_EXP
void * cfapi_system_unregister_global_event(int *type,...)
#define MSG_TYPE_COMMAND_DEBUG
object * insert_ob_in_map(object *op, mapstruct *m, object *originator, int flag)
#define plugins_dlerror()
int(* f_plug_init)(const char *iversion, f_plug_api gethooksptr)
void * cfapi_timer_destroy(int *type,...)
static const flag_definition flags[]
#define CFAPI_OBJECT_PROP_PERM_EXP
void * cfapi_map_get_map(int *type,...)
void * cfapi_object_fix(int *type,...)
sint16 resist[NROFATTACKS]
void * cfapi_get_season_name(int *type,...)
void * cfapi_archetype_get_property(int *type,...)
void * cfapi_object_split(int *type,...)
#define CFAPI_OBJECT_PROP_DAM
#define CFAPI_OBJECT_PROP_MOVE_TYPE
#define CFAPI_OBJECT_PROP_SKILL
#define CFAPI_PLAYER_PROP_NEXT
uint64 query_cost(const object *tmp, object *who, int flag)
int snprintf(char *dest, int max, const char *format,...)
#define CFAPI_OBJECT_PROP_AC
#define SET_MAP_FLAGS(M, X, Y, C)
void * cfapi_player_message(int *type,...)
#define CFAPI_OBJECT_PROP_BASE_NAME
#define CFAPI_REGION_PROP_PARENT
void * cfapi_map_update_position(int *type,...)
#define CFAPI_ARCH_PROP_NAME
void * cfapi_object_delete(int *type,...)
void * cfapi_object_pickup(int *type,...)
void * cfapi_object_forget_spell(int *type,...)
partylist * get_firstparty(void)
int set_random_map_variable(RMParms *rp, const char *buf)
void * cfapi_friendlylist_get_next(int *type,...)
void * cfapi_region_get_property(int *type,...)
#define CFAPI_OBJECT_PROP_SPEED_LEFT
void * cfapi_get_hooks(int *type,...)
#define FREE_AND_COPY(sv, nv)
int set_ob_key_value(object *op, const char *key, const char *value, int add_key)
void get_tod(timeofday_t *tod)
void * cfapi_object_cast(int *type,...)
void * cfapi_object_change_exp(int *type,...)
void set_cheat(object *op)
int cftimer_create(int id, long delay, object *ob, int mode)
mapstruct * has_been_loaded(const char *name)
#define CFAPI_OBJECT_PROP_HP
void * cfapi_object_pay_amount(int *type,...)
object * present_arch_in_ob(const archetype *at, const object *op)
#define CFAPI_OBJECT_PROP_TITLE
int cftimer_find_free_id(void)
object * decrease_ob_nr(object *op, uint32 i)
#define CFAPI_PLAYER_PROP_BED_Y
#define CFAPI_OBJECT_PROP_SPEED
void reset_object(object *op)
void * cfapi_object_apply(int *type,...)
#define CFAPI_MAP_PROP_PATH
void * cfapi_map_create_path(int *type,...)
#define CFAPI_OBJECT_PROP_FRIENDLY
#define CFAPI_OBJECT_PROP_ANIM_SPEED
#define CFAPI_OBJECT_PROP_LUCK
void * cfapi_object_transfer(int *type,...)
struct dirent * readdir(DIR *)
const char * get_periodofday(const int index)
#define CFAPI_OBJECT_PROP_ARCH_NAME
void query_short_name(const object *op, char *buf, size_t size)
int out_of_map(mapstruct *m, int x, int y)
#define CFAPI_OBJECT_PROP_INVISIBLE_TIME
#define CFAPI_OBJECT_PROP_DEX
void * cfapi_map_trigger_connected(int *type,...)
#define CFAPI_OBJECT_PROP_ATTACK_MOVEMENT
#define CFAPI_MAP_PROP_REGION
void delete_map(mapstruct *m)
#define CFAPI_MAP_PROP_WIDTH
void * cfapi_object_find(int *type,...)
#define CFAPI_OBJECT_PROP_CON
void * cfapi_system_register_global_event(int *type,...)
void describe_item(const object *op, const object *owner, char *retbuf, size_t size)
void update_ob_speed(object *op)
void * cfapi_object_check_trigger(int *type,...)
void * cfapi_object_find_archetype_inside(int *type,...)
sstring add_string(const char *str)
EXTERN player * first_player
void * cfapi_object_describe(int *type,...)
#define CFAPI_PARTY_PROP_NEXT
void * cfapi_object_spring_trap(int *type,...)
#define GET_MAP_OB(M, X, Y)
int check_path(const char *name, int prepend_dir)
#define CFAPI_OBJECT_PROP_NROF
void clear_object(object *op)
void * cfapi_object_change_abil(int *type,...)
#define CFAPI_OBJECT_PROP_MAXSP
#define CFAPI_ARCH_PROP_CLONE
struct _crossfire_plugin * prev
#define EVENT_PLAYER_DEATH
#define CFAPI_PLAYER_PROP_MARKED_ITEM
#define CFAPI_OBJECT_PROP_LAST_HEAL
#define CFAPI_OBJECT_PROP_CLIENT_TYPE
#define CFAPI_OBJECT_PROP_INVISIBLE
void LOG(LogLevel logLevel, const char *format,...)
#define CFAPI_OBJECT_PROP_TYPE
object * get_split_ob(object *orig_ob, uint32 nr, char *err, size_t size)
#define CFAPI_OBJECT_PROP_POW
EXTERN region * first_region
#define CFAPI_OBJECT_PROP_GEN_SP_ARMOUR
int transfer_ob(object *op, int x, int y, int randomly, object *originator)
void * cfapi_map_delete_map(int *type,...)
#define CFAPI_OBJECT_PROP_GLOW_RADIUS
void * cfapi_object_update(int *type,...)
#define CFAPI_OBJECT_PROP_PRESENT
void copy_object(object *op2, object *op)
#define CFAPI_OBJECT_PROP_MERGEABLE
#define CFAPI_OBJECT_PROP_WC
void query_name(const object *op, char *buf, size_t size)
#define CFAPI_OBJECT_PROP_RESIST
#define CFAPI_OBJECT_PROP_SHORT_NAME
#define CFAPI_OBJECT_PROP_MOVE_SLOW
#define CFAPI_OBJECT_PROP_MATERIAL_NAME
void free_object(object *ob)
void create_overlay_pathname(const char *name, char *buf, size_t size)
int pay_for_amount(uint64 to_pay, object *pl)
void * cfapi_object_user_event(int *type,...)
#define CFAPI_OBJECT_PROP_MAXHP
void * cfapi_object_distance(int *type,...)
#define CFAPI_OBJECT_PROP_VALUE
#define CFAPI_OBJECT_PROP_SPELL_ITEM
void * cfapi_system_find_animation(int *type,...)
#define CFAPI_OBJECT_PROP_PATH_ATTUNED
void fix_object(object *op)
static void send_changed_object(object *op)
unsigned find_face(const char *name, unsigned error)
player * find_player_partial_name(const char *plname)
#define CFAPI_OBJECT_PROP_WIS
EXTERN mapstruct * first_map
#define CFAPI_OBJECT_PROP_DURATION
EXTERN archetype * first_archetype
void * cfapi_system_check_path(int *type,...)
#define CFAPI_MAP_PROP_ENTER_X
void clean_object(object *op)
void * cfapi_map_set_map_property(int *type,...)
#define CFAPI_OBJECT_PROP_OB_ABOVE
void * cfapi_object_check_inventory(int *type,...)
#define CFAPI_OBJECT_PROP_Y
#define CFAPI_OBJECT_PROP_CUSTOM_NAME
void ext_info_map(int color, const mapstruct *map, uint8 type, uint8 subtype, const char *str1, const char *str2)
int plugins_remove_plugin(const char *id)
int execute_global_event(int eventcode,...)
#define CFAPI_OBJECT_PROP_PREV_ACTIVE_OB
int cast_spell(object *op, object *caster, int dir, object *spell_ob, char *stringarg)
#define CFAPI_OBJECT_PROP_PATH_DENIED
#define CFAPI_OBJECT_PROP_MOVE_BLOCK
#define CFAPI_REGION_PROP_NAME
void * cfapi_set_random_map_variable(int *type,...)
void * cfapi_player_find(int *type,...)