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

Comparing deliantra/server/include/plugin.h (file contents):
Revision 1.1.1.1 by root, Fri Feb 3 07:12:50 2006 UTC vs.
Revision 1.15 by pippijn, Mon Dec 11 19:46:46 2006 UTC

11#define PLUGIN_H_ 11#define PLUGIN_H_
12 12
13/*****************************************************************************/ 13/*****************************************************************************/
14/* This one does not exist under Win32. */ 14/* This one does not exist under Win32. */
15/*****************************************************************************/ 15/*****************************************************************************/
16#ifndef WIN32
17#include <dlfcn.h> 16#include <dlfcn.h>
18#endif
19 17
20#undef MODULEAPI
21#ifdef WIN32
22#ifdef PYTHON_PLUGIN_EXPORTS
23#define MODULEAPI __declspec(dllexport)
24#else
25#define MODULEAPI __declspec(dllimport)
26#endif
27#else
28#define MODULEAPI 18#define MODULEAPI
29#endif
30 19
31#include <global.h> 20#include <global.h>
32#include <object.h> 21#include <object.h>
33 22
34#ifdef HAVE_TIME_H 23#ifdef HAVE_TIME_H
39 28
40 29
41/*****************************************************************************/ 30/*****************************************************************************/
42/* This one does not exist under Win32. */ 31/* This one does not exist under Win32. */
43/*****************************************************************************/ 32/*****************************************************************************/
44#ifndef WIN32
45#include <dirent.h> 33#include <dirent.h>
46#endif
47 34
48/*****************************************************************************/
49/* Event ID codes. I sorted them to present local events first, but it is */
50/* just a 'cosmetic' thing. */
51/*****************************************************************************/
52/*****************************************************************************/
53/* Local events. Those are always linked to a specific object. */
54/*****************************************************************************/
55#define EVENT_NONE 0 /* No event. This exists only to reserve the "0". */
56#define EVENT_APPLY 1 /* Object applied-unapplied. */
57#define EVENT_ATTACK 2 /* Monster attacked or Scripted Weapon used. */
58#define EVENT_DEATH 3 /* Player or monster dead. */
59#define EVENT_DROP 4 /* Object dropped on the floor. */
60#define EVENT_PICKUP 5 /* Object picked up. */
61#define EVENT_SAY 6 /* Someone speaks. */
62#define EVENT_STOP 7 /* Thrown object stopped. */
63#define EVENT_TIME 8 /* Triggered each time the object can react/move. */
64#define EVENT_THROW 9 /* Object is thrown. */
65#define EVENT_TRIGGER 10 /* Button pushed, lever pulled, etc. */
66#define EVENT_CLOSE 11 /* Container closed. */
67#define EVENT_TIMER 12 /* Timer connected triggered it. */
68/*****************************************************************************/
69/* Global events. Those are never linked to a specific object. */
70/*****************************************************************************/
71#define EVENT_BORN 13 /* A new character has been created. */
72#define EVENT_CLOCK 14 /* Global time event. */
73#define EVENT_CRASH 15 /* Triggered when the server crashes. Not recursive*/
74#define EVENT_PLAYER_DEATH 16 /* Global Death event */
75#define EVENT_GKILL 17 /* Triggered when anything got killed by anyone. */
76#define EVENT_LOGIN 18 /* Player login. */
77#define EVENT_LOGOUT 19 /* Player logout. */
78#define EVENT_MAPENTER 20 /* A player entered a map. */
79#define EVENT_MAPLEAVE 21 /* A player left a map. */
80#define EVENT_MAPRESET 22 /* A map is resetting. */
81#define EVENT_REMOVE 23 /* A Player character has been removed. */
82#define EVENT_SHOUT 24 /* A player 'shout' something. */
83#define EVENT_TELL 25 /* A player 'tell' something. */
84#define EVENT_MUZZLE 26 /* A player was Muzzled (no_shout set). */
85#define EVENT_KICK 27 /* A player was Kicked by a DM */
86
87#define NR_EVENTS 28 35#define NR_EVENTS 42
88 36
89#include <stdarg.h> 37#include <stdarg.h>
90 38
91#define CFAPI_NONE 0 39#define CFAPI_NONE 0
92#define CFAPI_INT 1 40#define CFAPI_INT 1
100#define CFAPI_PARCH 9 48#define CFAPI_PARCH 9
101#define CFAPI_FUNC 10 49#define CFAPI_FUNC 10
102#define CFAPI_PPLAYER 11 50#define CFAPI_PPLAYER 11
103#define CFAPI_PPARTY 12 51#define CFAPI_PPARTY 12
104#define CFAPI_PREGION 13 52#define CFAPI_PREGION 13
53#define CFAPI_INT16 14
105 54
106typedef void* (*f_plug_api) (int* type, ...); 55typedef void* (*f_plug_api) (int* type, ...);
107typedef int (*f_plug_postinit) (void); 56typedef int (*f_plug_postinit) (void);
108typedef int (*f_plug_init)(const char* iversion, f_plug_api gethooksptr); 57typedef int (*f_plug_init)(const char* iversion, f_plug_api gethooksptr);
109 58
110#ifndef WIN32
111#define LIBPTRTYPE void* 59#define LIBPTRTYPE void*
112#else
113#define LIBPTRTYPE HMODULE
114#endif
115 60
116typedef struct _crossfire_plugin 61typedef struct _crossfire_plugin
117{ 62{
118 f_plug_api eventfunc; /* Event Handler function */ 63 f_plug_api eventfunc; /* Event Handler function */
119 f_plug_api propfunc; /* Plugin getProperty function */ 64 f_plug_api propfunc; /* Plugin getProperty function */
127} crossfire_plugin; 72} crossfire_plugin;
128 73
129extern int plugin_number; 74extern int plugin_number;
130extern crossfire_plugin* plugins_list; 75extern crossfire_plugin* plugins_list;
131 76
132#ifdef WIN32
133
134#define plugins_dlopen(fname) LoadLibrary(fname)
135#define plugins_dlclose(lib) FreeLibrary(lib)
136#define plugins_dlsym(lib,name) GetProcAddress(lib,name)
137
138#else /*WIN32 */
139
140#define plugins_dlopen(fname) dlopen(fname,RTLD_NOW|RTLD_GLOBAL) 77#define plugins_dlopen(fname) dlopen(fname,RTLD_NOW|RTLD_GLOBAL)
141#define plugins_dlclose(lib) dlclose(lib) 78#define plugins_dlclose(lib) dlclose(lib)
142#define plugins_dlsym(lib,name) dlsym(lib,name) 79#define plugins_dlsym(lib,name) dlsym(lib,name)
143#define plugins_dlerror() dlerror() 80#define plugins_dlerror() dlerror()
144#endif /* WIN32 */
145 81
146 82
147/* OBJECT-RELATED HOOKS */ 83/* OBJECT-RELATED HOOKS */
148 84
149#define CFAPI_OBJECT_PROP_OB_ABOVE 1 85#define CFAPI_OBJECT_PROP_OB_ABOVE 1

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines