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 (©) 2001-2005,2007 by Chachkoff Yann (Feel free to deliver your complaints) |
6 |
* Copyright (©) 2002,2007 Mark Wedel & Crossfire Development Team |
7 |
* Copyright (©) 1992,2007 Frank Tore Johansen |
8 |
* |
9 |
* Crossfire TRT is free software: you can redistribute it and/or modify |
10 |
* it under the terms of the GNU General Public License as published by |
11 |
* the Free Software Foundation, either version 3 of the License, or |
12 |
* (at your option) any later version. |
13 |
* |
14 |
* This program is distributed in the hope that it will be useful, |
15 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
16 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
17 |
* GNU General Public License for more details. |
18 |
* |
19 |
* You should have received a copy of the GNU General Public License |
20 |
* along with this program. If not, see <http://www.gnu.org/licenses/>. |
21 |
* |
22 |
* The authors can be reached via e-mail to <crossfire@schmorp.de> |
23 |
*/ |
24 |
|
25 |
/*****************************************************************************/ |
26 |
/* Crossfire Plugin Interface Common Parts */ |
27 |
/* Version: 2.0beta8 (also known as "Alexander") */ |
28 |
/* Contact: yann.chachkoff@myrealbox.com */ |
29 |
/*****************************************************************************/ |
30 |
|
31 |
#ifndef PLUGIN_COMMON_H |
32 |
#define PLUGIN_COMMON_H |
33 |
|
34 |
#ifdef WIN32 |
35 |
#define CF_PLUGIN __declspec(dllexport) |
36 |
#else |
37 |
#define CF_PLUGIN |
38 |
#endif |
39 |
|
40 |
#include <plugin.h> |
41 |
|
42 |
#define PLUGIN_ERROR_INT 0x0FFFFF |
43 |
|
44 |
extern int cf_init_plugin( f_plug_api getHooks ); |
45 |
extern void cf_system_register_global_event( int event, const char* name, f_plug_api hook ); |
46 |
|
47 |
/* General functions */ |
48 |
extern char* cf_add_string( char* str ); |
49 |
extern void cf_free_string( char* str ); |
50 |
extern char* cf_strdup_local(char* txt); |
51 |
extern char* cf_get_maps_directory( char* str ); |
52 |
extern int cf_find_animation(char* txt); |
53 |
|
54 |
/* Objects */ |
55 |
extern void* cf_object_set_int_property(object* op, int propcode, int value); |
56 |
extern void* cf_object_get_property(object* op, int propcode); |
57 |
extern void cf_free_object( object* ob ); |
58 |
extern void cf_fix_object( object* pl ); |
59 |
extern char* cf_query_name( object* ob ); |
60 |
extern char* cf_query_name_pl( object* ob ); |
61 |
extern char* cf_query_base_name( object* ob, int plural ); |
62 |
extern object* cf_insert_ob_in_ob( object* ob, object* where ); |
63 |
extern const char* cf_object_get_msg( object* ); |
64 |
extern void cf_object_set_weight( object* ob, int weight ); |
65 |
extern int cf_object_get_weight( object* ob ); |
66 |
extern void cf_object_set_weight_limit( object* ob, int weight ); |
67 |
extern int cf_object_get_weight_limit( object* ob ); |
68 |
extern int cf_object_set_nrof( object*, int nrof ); |
69 |
extern int cf_object_get_nrof( object* ); |
70 |
extern int cf_object_get_flag( object* ob, int flag ); |
71 |
extern void cf_object_set_flag( object* ob, int flag, int value ); |
72 |
extern object* cf_object_insert_in_ob( object* ob, object* where ); |
73 |
extern void* cf_object_set_string_property(object* op, int propcode, char* value); |
74 |
extern void cf_object_activate_rune( object* op , object* victim); |
75 |
extern int cf_object_check_trigger( object* op, object* cause ); |
76 |
extern int cf_object_query_money( object* op); |
77 |
extern int cf_object_query_cost( object* op, object* who, int flags); |
78 |
extern void* cf_object_set_string_property(object* op, int propcode, char* value); |
79 |
extern int cf_object_cast_spell(object* caster, object* ctoo, int dir, object* sp, char* flags); |
80 |
extern void cf_object_learn_spell(object* op, object* sp); |
81 |
extern void cf_object_forget_spell(object* op, object* sp); |
82 |
extern object* cf_object_check_for_spell(object* op, char* spellname); |
83 |
extern int cf_object_cast_ability(object* caster, object* ctoo, int dir, object* sp, char* flags); |
84 |
extern int cf_object_pay_amount(object* op, uint64 amount); |
85 |
extern int cf_object_pay_item(object* op, object* buyer); |
86 |
extern void* cf_object_set_long_property(object* op, int propcode, long value); |
87 |
extern int cf_object_transfer(object* op,int x,int y,int r,object* orig); |
88 |
extern int cf_object_out_of_map( object* op, int x, int y); |
89 |
extern void cf_object_drop( object* op, object* author); |
90 |
extern void cf_object_take( object* op, object* author); |
91 |
extern void cf_object_say( object* op, char* msg); |
92 |
extern void cf_object_speak( object* op, char* msg); |
93 |
extern object* cf_object_insert_object(object* op, object* container); |
94 |
extern object* cf_object_present_archname_inside(object* op, char* whatstr); |
95 |
extern void cf_object_apply(object* op, object* author, int flags); |
96 |
extern void cf_object_remove(object* op); |
97 |
extern void cf_object_free(object* op); |
98 |
extern object* cf_create_object(void); |
99 |
extern object* cf_create_object_by_name( const char* name ); |
100 |
extern int cf_object_change_map(object* op, int x, int y, maptile* map); |
101 |
extern int cf_object_teleport( object* ob, maptile* map, int x, int y ); |
102 |
extern void cf_object_update( object* op, int flags); |
103 |
extern void cf_object_pickup( object* op, object* what); |
104 |
extern char* cf_object_get_key(object* op, char* keyname); |
105 |
extern void cf_object_set_key(object* op, char* keyname, char* value); |
106 |
extern sint16 cf_object_get_resistance(object* op, int rtype); |
107 |
extern void cf_object_move(object* op, int dir, object*originator); |
108 |
extern void cf_object_apply_below(object* op); |
109 |
extern object* cf_object_clone(object* op, int clonetype); |
110 |
|
111 |
/* Maps */ |
112 |
extern void* cf_map_get_property(maptile* map, int propcode); |
113 |
extern void* cf_map_set_int_property(maptile* map, int propcode, int value); |
114 |
extern maptile* cf_map_get_map( char* name ); |
115 |
extern maptile* cf_map_get_first(void); |
116 |
extern void cf_map_message(maptile* m, char* msg, int color); |
117 |
extern object* cf_map_get_object_at(maptile* m, int x, int y); |
118 |
extern object* cf_map_insert_object(maptile* where, object* op, int x, int y); |
119 |
extern object* cf_map_present_arch_by_name(const char* str, maptile* map, int nx, int ny); |
120 |
extern int cf_map_get_flags( maptile* map, maptile** nmap, sint16 x, sint16 y, sint16* nx, sint16* ny ); |
121 |
extern object* cf_map_insert_object_there(maptile* where, object* op, object* originator, int flags); |
122 |
extern int cf_map_get_difficulty(maptile* map); |
123 |
extern int cf_map_get_reset_time(maptile* map); |
124 |
extern int cf_map_get_reset_timeout(maptile* map); |
125 |
extern int cf_map_get_players(maptile* map); |
126 |
extern int cf_map_get_darkness(maptile* map); |
127 |
extern int cf_map_get_width(maptile* map); |
128 |
extern int cf_map_get_height(maptile* map); |
129 |
extern int cf_map_get_enter_x(maptile* map); |
130 |
extern int cf_map_get_enter_y(maptile* map); |
131 |
extern int cf_map_get_temperature(maptile* map); |
132 |
extern int cf_map_get_pressure(maptile* map); |
133 |
extern int cf_map_get_humidity(maptile* map); |
134 |
extern int cf_map_get_windspeed(maptile* map); |
135 |
extern int cf_map_get_winddir(maptile* map); |
136 |
extern int cf_map_get_sky(maptile* map); |
137 |
extern int cf_map_get_wpartx(maptile* map); |
138 |
extern int cf_map_get_wparty(maptile* map); |
139 |
|
140 |
/* Players */ |
141 |
extern char* cf_player_get_ip(object* op); |
142 |
extern object* cf_player_get_marked_item(object* op); |
143 |
extern void cf_player_set_marked_item(object* op, object* ob); |
144 |
extern player* cf_player_find(char* txt); |
145 |
extern void cf_player_message(object* op, char* txt, int flags); |
146 |
extern object* cf_player_send_inventory(object* op); |
147 |
extern void cf_player_move(player* pl, int dir); |
148 |
extern partylist* cf_player_get_party(object* op); |
149 |
extern void cf_player_set_party(object* op, partylist* party); |
150 |
|
151 |
/* Archetypes */ |
152 |
extern archetype* cf_archetype_get_first(void); |
153 |
extern const char* cf_archetype_get_name(archetype* arch); |
154 |
extern archetype* cf_archetype_get_next(archetype* arch); |
155 |
extern archetype* cf_archetype_get_more(archetype* arch); |
156 |
extern archetype* cf_archetype_get_head(archetype* arch); |
157 |
extern object* cf_archetype_get_clone(archetype* arch); |
158 |
|
159 |
/* Parties */ |
160 |
extern partylist* cf_party_get_first(void); |
161 |
extern const char* cf_party_get_name(partylist* party); |
162 |
extern partylist* cf_party_get_next(partylist* party); |
163 |
extern const char* cf_party_get_password(partylist* party); |
164 |
extern player* cf_party_get_first_player(partylist* party); |
165 |
extern player* cf_party_get_next_player(partylist* party, player* op); |
166 |
|
167 |
/* Regions */ |
168 |
extern region* cf_region_get_first(void); |
169 |
extern const char* cf_region_get_name(region* reg); |
170 |
extern region* cf_region_get_next(region* reg); |
171 |
extern region* cf_region_get_parent(region* reg); |
172 |
extern const char* cf_region_get_longname(region* reg); |
173 |
extern const char* cf_region_get_message(region* reg); |
174 |
|
175 |
/* temp */ |
176 |
//extern f_plug_api cfapi_object_get_property; |
177 |
//extern f_plug_api cfapi_object_set_property; |
178 |
//extern f_plug_api cfapi_object_apply; |
179 |
//extern f_plug_api cfapi_object_remove; |
180 |
|
181 |
#ifdef WIN32 |
182 |
|
183 |
struct timezone { |
184 |
int tz_minuteswest; |
185 |
int tz_dsttime; |
186 |
}; |
187 |
int gettimeofday(struct timeval *time_Info, struct timezone *timezone_Info); |
188 |
|
189 |
#endif |
190 |
|
191 |
#endif /* PLUGIN_COMMON_H */ |