ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/include/plugin.h
Revision: 1.18
Committed: Sun Sep 30 16:24:30 2007 UTC (16 years, 7 months ago) by root
Content type: text/plain
Branch: MAIN
CVS Tags: HEAD
Changes since 1.17: +0 -0 lines
State: FILE REMOVED
Log Message:
finally remove the old buggy plug-in cruft

File Contents

# Content
1 /*
2 * This file is part of Crossfire TRT, the Roguelike Realtime MORPG.
3 *
4 * Copyright (©) 2005,2006,2007 Marc Alexander Lehmann / Robin Redeker / the Crossfire TRT team
5 * Copyright (©) 2002,2007 Mark Wedel & Crossfire Development Team
6 * Copyright (©) 1992,2007 Frank Tore Johansen
7 *
8 * Crossfire TRT is free software: you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License as published by
10 * the Free Software Foundation, either version 3 of the License, or
11 * (at your option) any later version.
12 *
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public License
19 * along with this program. If not, see <http://www.gnu.org/licenses/>.
20 *
21 * The authors can be reached via e-mail to <crossfire@schmorp.de>
22 */
23
24 /*****************************************************************************/
25 /* Headers needed. */
26 /*****************************************************************************/
27
28 #ifndef PLUGIN_H_
29 #define PLUGIN_H_
30
31 /*****************************************************************************/
32 /* This one does not exist under Win32. */
33 /*****************************************************************************/
34 #include <dlfcn.h>
35
36 #define MODULEAPI
37
38 #include <global.h>
39 #include <object.h>
40
41 #ifdef HAVE_TIME_H
42 #include <time.h>
43 #endif
44 #include <../random_maps/random_map.h>
45 #include <../random_maps/rproto.h>
46
47
48 /*****************************************************************************/
49 /* This one does not exist under Win32. */
50 /*****************************************************************************/
51 #include <dirent.h>
52
53 #define NR_EVENTS 42
54
55 #include <stdarg.h>
56
57 #define CFAPI_NONE 0
58 #define CFAPI_INT 1
59 #define CFAPI_LONG 2
60 #define CFAPI_CHAR 3
61 #define CFAPI_STRING 4
62 #define CFAPI_POBJECT 5
63 #define CFAPI_PMAP 6
64 #define CFAPI_FLOAT 7
65 #define CFAPI_DOUBLE 8
66 #define CFAPI_PARCH 9
67 #define CFAPI_FUNC 10
68 #define CFAPI_PPLAYER 11
69 #define CFAPI_PPARTY 12
70 #define CFAPI_PREGION 13
71 #define CFAPI_INT16 14
72
73 typedef void* (*f_plug_api) (int* type, ...);
74 typedef int (*f_plug_postinit) (void);
75 typedef int (*f_plug_init)(const char* iversion, f_plug_api gethooksptr);
76
77 #define LIBPTRTYPE void*
78
79 typedef struct _crossfire_plugin
80 {
81 f_plug_api eventfunc; /* Event Handler function */
82 f_plug_api propfunc; /* Plugin getProperty function */
83 f_plug_postinit closefunc; /* Plugin Termination function */
84 LIBPTRTYPE libptr; /* Pointer to the plugin library */
85 char id[MAX_BUF]; /* Plugin identification string */
86 char fullname[MAX_BUF]; /* Plugin full name */
87 f_plug_api gevent[NR_EVENTS]; /* Global events registered */
88 struct _crossfire_plugin *next;
89 struct _crossfire_plugin *prev;
90 } crossfire_plugin;
91
92 extern int plugin_number;
93 extern crossfire_plugin* plugins_list;
94
95 #define plugins_dlopen(fname) dlopen(fname,RTLD_NOW|RTLD_GLOBAL)
96 #define plugins_dlclose(lib) dlclose(lib)
97 #define plugins_dlsym(lib,name) dlsym(lib,name)
98 #define plugins_dlerror() dlerror()
99
100
101 /* OBJECT-RELATED HOOKS */
102
103 #define CFAPI_OBJECT_PROP_OB_ABOVE 1
104 #define CFAPI_OBJECT_PROP_OB_BELOW 2
105 #define CFAPI_OBJECT_PROP_NEXT_ACTIVE_OB 3
106 #define CFAPI_OBJECT_PROP_PREV_ACTIVE_OB 4
107 #define CFAPI_OBJECT_PROP_INVENTORY 5
108 #define CFAPI_OBJECT_PROP_ENVIRONMENT 6
109 #define CFAPI_OBJECT_PROP_HEAD 7
110 #define CFAPI_OBJECT_PROP_CONTAINER 8
111 #define CFAPI_OBJECT_PROP_MAP 9
112 #define CFAPI_OBJECT_PROP_COUNT 10
113 #define CFAPI_OBJECT_PROP_REFCOUNT 11
114 #define CFAPI_OBJECT_PROP_NAME 12
115 #define CFAPI_OBJECT_PROP_NAME_PLURAL 13
116 #define CFAPI_OBJECT_PROP_TITLE 14
117 #define CFAPI_OBJECT_PROP_RACE 15
118 #define CFAPI_OBJECT_PROP_SLAYING 16
119 #define CFAPI_OBJECT_PROP_SKILL 17
120 #define CFAPI_OBJECT_PROP_MESSAGE 18
121 #define CFAPI_OBJECT_PROP_LORE 19
122 #define CFAPI_OBJECT_PROP_X 20
123 #define CFAPI_OBJECT_PROP_Y 21
124 #define CFAPI_OBJECT_PROP_SPEED 22
125 #define CFAPI_OBJECT_PROP_SPEED_LEFT 23
126 #define CFAPI_OBJECT_PROP_NROF 24
127 #define CFAPI_OBJECT_PROP_DIRECTION 25
128 #define CFAPI_OBJECT_PROP_FACING 26
129 #define CFAPI_OBJECT_PROP_TYPE 27
130 #define CFAPI_OBJECT_PROP_SUBTYPE 28
131 #define CFAPI_OBJECT_PROP_CLIENT_TYPE 29
132 #define CFAPI_OBJECT_PROP_RESIST 30
133 #define CFAPI_OBJECT_PROP_ATTACK_TYPE 31
134 #define CFAPI_OBJECT_PROP_PATH_ATTUNED 32
135 #define CFAPI_OBJECT_PROP_PATH_REPELLED 33
136 #define CFAPI_OBJECT_PROP_PATH_DENIED 34
137 #define CFAPI_OBJECT_PROP_MATERIAL 35
138 #define CFAPI_OBJECT_PROP_MATERIAL_NAME 36
139 #define CFAPI_OBJECT_PROP_MAGIC 37
140 #define CFAPI_OBJECT_PROP_VALUE 38
141 #define CFAPI_OBJECT_PROP_LEVEL 39
142 #define CFAPI_OBJECT_PROP_LAST_HEAL 40
143 #define CFAPI_OBJECT_PROP_LAST_SP 41
144 #define CFAPI_OBJECT_PROP_LAST_GRACE 42
145 #define CFAPI_OBJECT_PROP_LAST_EAT 43
146 #define CFAPI_OBJECT_PROP_INVISIBLE_TIME 44
147 #define CFAPI_OBJECT_PROP_PICK_UP 45
148 #define CFAPI_OBJECT_PROP_ITEM_POWER 46
149 #define CFAPI_OBJECT_PROP_GEN_SP_ARMOUR 47
150 #define CFAPI_OBJECT_PROP_WEIGHT 48
151 #define CFAPI_OBJECT_PROP_WEIGHT_LIMIT 49
152 #define CFAPI_OBJECT_PROP_CARRYING 50
153 #define CFAPI_OBJECT_PROP_GLOW_RADIUS 51
154 #define CFAPI_OBJECT_PROP_PERM_EXP 52
155 #define CFAPI_OBJECT_PROP_CURRENT_WEAPON 53
156 #define CFAPI_OBJECT_PROP_ENEMY 54
157 #define CFAPI_OBJECT_PROP_ATTACKED_BY 55
158 #define CFAPI_OBJECT_PROP_RUN_AWAY 56
159 #define CFAPI_OBJECT_PROP_CHOSEN_SKILL 57
160 #define CFAPI_OBJECT_PROP_HIDDEN 58
161 #define CFAPI_OBJECT_PROP_MOVE_STATUS 59
162 #define CFAPI_OBJECT_PROP_MOVE_TYPE 60
163 #define CFAPI_OBJECT_PROP_SPELL_ITEM 61
164 #define CFAPI_OBJECT_PROP_EXP_MULTIPLIER 62
165 #define CFAPI_OBJECT_PROP_ARCHETYPE 63
166 #define CFAPI_OBJECT_PROP_OTHER_ARCH 64
167 #define CFAPI_OBJECT_PROP_CUSTOM_NAME 65
168 #define CFAPI_OBJECT_PROP_ANIM_SPEED 66
169 #define CFAPI_OBJECT_PROP_FRIENDLY 67
170 #define CFAPI_OBJECT_PROP_SHORT_NAME 68
171 #define CFAPI_OBJECT_PROP_BASE_NAME 69
172 #define CFAPI_OBJECT_PROP_MAGICAL 70
173 #define CFAPI_OBJECT_PROP_LUCK 71
174 #define CFAPI_OBJECT_PROP_EXP 72
175 #define CFAPI_OBJECT_PROP_OWNER 73
176 #define CFAPI_OBJECT_PROP_PRESENT 74
177 #define CFAPI_OBJECT_PROP_CHEATER 75
178 #define CFAPI_OBJECT_PROP_MERGEABLE 76
179 #define CFAPI_OBJECT_PROP_PICKABLE 77
180 #define CFAPI_OBJECT_PROP_FLAGS 78
181 #define CFAPI_OBJECT_PROP_STR 79
182 #define CFAPI_OBJECT_PROP_DEX 80
183 #define CFAPI_OBJECT_PROP_CON 81
184 #define CFAPI_OBJECT_PROP_WIS 82
185 #define CFAPI_OBJECT_PROP_INT 83
186 #define CFAPI_OBJECT_PROP_POW 84
187 #define CFAPI_OBJECT_PROP_CHA 85
188 #define CFAPI_OBJECT_PROP_WC 86
189 #define CFAPI_OBJECT_PROP_AC 87
190 #define CFAPI_OBJECT_PROP_HP 88
191 #define CFAPI_OBJECT_PROP_SP 89
192 #define CFAPI_OBJECT_PROP_GP 90
193 #define CFAPI_OBJECT_PROP_FP 91
194 #define CFAPI_OBJECT_PROP_MAXHP 92
195 #define CFAPI_OBJECT_PROP_MAXSP 93
196 #define CFAPI_OBJECT_PROP_MAXGP 94
197 #define CFAPI_OBJECT_PROP_DAM 95
198 #define CFAPI_OBJECT_PROP_GOD 96
199 #define CFAPI_OBJECT_PROP_ARCH_NAME 97
200 #define CFAPI_OBJECT_PROP_INVISIBLE 98
201 #define CFAPI_OBJECT_PROP_FACE 99
202 #define CFAPI_OBJECT_ANIMATION 100
203 #define CFAPI_PLAYER_PROP_IP 150
204 #define CFAPI_PLAYER_PROP_MARKED_ITEM 151
205 #define CFAPI_PLAYER_PROP_PARTY 152
206
207 #define CFAPI_MAP_PROP_FLAGS 0
208 #define CFAPI_MAP_PROP_DIFFICULTY 1
209 #define CFAPI_MAP_PROP_PATH 2
210 #define CFAPI_MAP_PROP_TMPNAME 3
211 #define CFAPI_MAP_PROP_NAME 4
212 #define CFAPI_MAP_PROP_RESET_TIME 5
213 #define CFAPI_MAP_PROP_RESET_TIMEOUT 6
214 #define CFAPI_MAP_PROP_PLAYERS 7
215 #define CFAPI_MAP_PROP_LIGHT 8
216 #define CFAPI_MAP_PROP_DARKNESS 9
217 #define CFAPI_MAP_PROP_WIDTH 10
218 #define CFAPI_MAP_PROP_HEIGHT 11
219 #define CFAPI_MAP_PROP_ENTER_X 12
220 #define CFAPI_MAP_PROP_ENTER_Y 13
221 #define CFAPI_MAP_PROP_TEMPERATURE 14
222 #define CFAPI_MAP_PROP_PRESSURE 15
223 #define CFAPI_MAP_PROP_HUMIDITY 16
224 #define CFAPI_MAP_PROP_WINDSPEED 17
225 #define CFAPI_MAP_PROP_WINDDIR 18
226 #define CFAPI_MAP_PROP_SKY 19
227 #define CFAPI_MAP_PROP_WPARTX 20
228 #define CFAPI_MAP_PROP_WPARTY 21
229 #define CFAPI_MAP_PROP_MESSAGE 22
230 #define CFAPI_MAP_PROP_NEXT 23
231 #define CFAPI_MAP_PROP_REGION 24
232
233 #define CFAPI_ARCH_PROP_NAME 0
234 #define CFAPI_ARCH_PROP_NEXT 1
235 #define CFAPI_ARCH_PROP_HEAD 2
236 #define CFAPI_ARCH_PROP_MORE 3
237 #define CFAPI_ARCH_PROP_CLONE 4
238
239 #define CFAPI_PARTY_PROP_NAME 0
240 #define CFAPI_PARTY_PROP_NEXT 1
241 #define CFAPI_PARTY_PROP_PASSWORD 2
242 #define CFAPI_PARTY_PROP_PLAYER 3
243
244 #define CFAPI_REGION_PROP_NAME 0
245 #define CFAPI_REGION_PROP_NEXT 1
246 #define CFAPI_REGION_PROP_PARENT 2
247 #define CFAPI_REGION_PROP_LONGNAME 3
248 #define CFAPI_REGION_PROP_MESSAGE 4
249
250 /*****************************************************************************/
251 /* Exportable functions. Any plugin should define all those. */
252 /* initPlugin is called when the plugin initialization process starts.*/
253 /* endPlugin is called before the plugin gets unloaded from memory. */
254 /* getPluginProperty is currently unused. */
255 /* registerHook is used to transmit hook pointers from server to plugin.*/
256 /* triggerEvent is called whenever an event occurs. */
257 /*****************************************************************************/
258 /*extern MODULEAPI CFParm* initPlugin(CFParm* PParm);
259 extern MODULEAPI CFParm* endPlugin(CFParm* PParm);
260 extern MODULEAPI CFParm* getPluginProperty(CFParm* PParm);
261 extern MODULEAPI CFParm* registerHook(CFParm* PParm);
262 extern MODULEAPI CFParm* triggerEvent(CFParm* PParm);
263 */
264
265 typedef struct _hook_entry
266 {
267 f_plug_api func;
268 int fid;
269 char fname[256];
270 } hook_entry;
271
272 #endif /*PLUGIN_H_*/