ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/include/plugin_common.h
Revision: 1.3
Committed: Sun Jul 1 05:00:18 2007 UTC (16 years, 10 months ago) by root
Content type: text/plain
Branch: MAIN
CVS Tags: rel-2_2
Changes since 1.2: +11 -12 lines
Log Message:
- upgrade crossfire trt to the GPL version 3 (hopefully correctly).
- add a single file covered by the GNU Affero General Public License
  (which is not yet released, so I used the current draft, which is
  legally a bit wavy, but its likely better than nothing as it expresses
  direct intent by the authors, and we can upgrade as soon as it has been
  released).
  * this should ensure availability of source code for the server at least
    and hopefully also archetypes and maps even when modified versions
    are not being distributed, in accordance of section 13 of the agplv3.

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 (©) 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 */