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

# User Rev Content
1 root 1.2 /*
2 root 1.3 * This file is part of Crossfire TRT, the Roguelike Realtime MORPG.
3 root 1.2 *
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 root 1.3 * 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 root 1.2 *
14 root 1.3 * 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 root 1.2 *
19 root 1.3 * 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 root 1.2 *
22     * The authors can be reached via e-mail to <crossfire@schmorp.de>
23     */
24    
25 root 1.1 /*****************************************************************************/
26     /* Crossfire Plugin Interface Common Parts */
27     /* Version: 2.0beta8 (also known as "Alexander") */
28     /* Contact: yann.chachkoff@myrealbox.com */
29     /*****************************************************************************/
30 root 1.2
31 root 1.1 #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 */