ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/include/libproto.h
Revision: 1.51
Committed: Sun Jul 1 05:00:18 2007 UTC (16 years, 10 months ago) by root
Content type: text/plain
Branch: MAIN
Changes since 1.50: +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.49 /*
2 root 1.51 * This file is part of Crossfire TRT, the Roguelike Realtime MORPG.
3 root 1.49 *
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 root 1.51 * 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 root 1.49 *
13 root 1.51 * 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 root 1.49 *
18 root 1.51 * 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 root 1.49 *
21     * The authors can be reached via e-mail to <crossfire@schmorp.de>
22     */
23    
24 root 1.1 /* anim.c */
25 root 1.44 extern void free_all_anim();
26     extern void init_anim();
27 root 1.1 extern int find_animation(const char *name);
28     extern void animate_object(object *op, int dir);
29     /* arch.c */
30     extern archetype *find_archetype_by_object_name(const char *name);
31 root 1.2 extern archetype *find_archetype_by_object_type_name(int type, const char *name);
32 root 1.1 extern object *get_archetype_by_skill_name(const char *skill, int type);
33     extern archetype *get_archetype_by_type_subtype(int type, int subtype);
34     extern object *get_archetype_by_object_name(const char *name);
35     extern object *find_best_weapon_used_match(object *pl, const char *params);
36     extern int item_matched_string(object *pl, object *op, const char *name);
37     extern void arch_info(object *op);
38 root 1.44 extern void clear_archetable();
39 root 1.1 extern void dump_arch(archetype *at);
40 root 1.44 extern void dump_all_archetypes();
41     extern void free_all_archs();
42     extern void check_generators();
43 root 1.45 extern bool load_archetype_file(const char *filename);
44 root 1.1 extern object *arch_to_object(archetype *at);
45     extern object *create_singularity(const char *name);
46     extern object *get_archetype(const char *name);
47     extern unsigned long hasharch(const char *str, int tablesize);
48     extern archetype *type_to_archetype(int type);
49     extern object *clone_arch(int type);
50     extern object *object_create_arch(archetype *at);
51     /* button.c */
52     extern void push_button(object *op);
53 root 1.17 extern void activate_connection (maptile *map, long connection, bool state = true);
54 root 1.1 extern void update_button(object *op);
55 root 1.17 extern oblinkpt *get_connection_links (maptile *map, long connection);
56 root 1.1 extern void use_trigger(object *op);
57     extern void animate_turning(object *op);
58 root 1.2 extern int check_altar_sacrifice(const object *altar, const object *sacrifice);
59 root 1.1 extern int operate_altar(object *altar, object **sacrifice);
60     extern void trigger_move(object *op, int state);
61     extern int check_trigger(object *op, object *cause);
62 root 1.17 extern void add_button_link(object *button, maptile *map, int connected);
63 root 1.1 extern void remove_button_link(object *op);
64 elmex 1.6 extern oblinkpt *get_button_links(const object *button);
65 root 1.2 extern int get_button_value(const object *button);
66 elmex 1.6 extern void do_mood_floor(object *op, object *source = 0);
67 root 1.2 extern object *check_inv_recursive(object *op, const object *trig);
68 elmex 1.27 extern void check_inv(object *op, object *trig);
69 root 1.17 extern void verify_button_links(const maptile *map);
70 root 1.1 /* exp.c */
71 root 1.2 extern int new_exp(const object *ob);
72     extern int has_ability(const object *ob);
73 root 1.44 extern void init_experience();
74     extern void dump_experience();
75 root 1.1 /* friend.c */
76     extern void add_friendly_object(object *op);
77     extern void remove_friendly_object(object *op);
78 root 1.44 extern void dump_friendly_objects();
79     extern void clean_friendly_list();
80 root 1.2 extern int is_friendly(const object *op);
81 root 1.1 /* glue.c */
82     extern void fatal(int err);
83     /* holy.c */
84 root 1.44 extern void init_gods();
85 root 1.1 extern void add_god_to_list(archetype *god_arch);
86     extern int baptize_altar(object *op);
87 root 1.44 extern godlink *get_rand_god();
88 root 1.1 extern object *pntr_to_god_obj(godlink *godlnk);
89 root 1.44 extern void free_all_god();
90     extern void dump_gods();
91 root 1.1 /* info.c */
92 root 1.44 extern void dump_abilities();
93     extern void print_monsters();
94 root 1.1 extern void bitstostring(long bits, int num, char *str);
95     /* image.c */
96 root 1.44 extern void ReadBmapNames();
97 root 1.2 extern int FindFace(const char *name, int error);
98 root 1.44 extern int ReadSmooth();
99 root 1.1 extern int FindSmooth(uint16 face, uint16 *smoothed);
100 root 1.44 extern void free_all_images();
101 root 1.1 /* init.c */
102 root 1.44 extern void init_library();
103     extern void init_environ();
104     extern void init_globals();
105     extern void init_objects();
106     extern void init_defaults();
107     extern void init_dynamic();
108     extern void init_clocks();
109     extern void init_attackmess();
110 root 1.1 /* item.c */
111     extern int get_power_from_ench(int ench);
112 root 1.2 extern int calc_item_power(const object *op, int flag);
113 root 1.1 extern const typedata *get_typedata(int itemtype);
114     extern const typedata *get_typedata_by_name(const char *name);
115 root 1.42 extern const char *describe_resistance(const object *op, int newline);
116     extern const char *query_weight(const object *op);
117     extern const char *get_levelnumber(int i);
118     extern const char *get_number(int i);
119     extern const char *ring_desc(const object *op);
120 root 1.2 extern const char *query_short_name(const object *op);
121 root 1.42 extern const char *query_name(const object *op);
122 root 1.2 extern const char *query_base_name(const object *op, int plural);
123 root 1.42 extern const char *describe_item(const object *op, object *owner);
124 root 1.2 extern int is_magical(const object *op);
125     extern int need_identify(const object *op);
126 root 1.1 extern void identify(object *op);
127     /* links.c */
128 root 1.44 extern objectlink *get_objectlink();
129     extern oblinkpt *get_objectlinkpt();
130 root 1.1 extern void free_objectlink(objectlink *ol);
131     extern void free_objectlinkpt(oblinkpt *obp);
132     /* living.c */
133     extern void change_attr_value(living *stats, int attr, sint8 value);
134     extern void check_stat_bounds(living *stats);
135     extern int change_abil(object *op, object *tmp);
136 root 1.2 extern int allowed_class(const object *op);
137     extern void set_dragon_name(object *pl, const object *abil, const object *skin);
138 root 1.1 extern void dragon_level_gain(object *who);
139     extern object *give_skill_by_name(object *op, const char *skill_name);
140     extern void player_lvl_adj(object *who, object *op);
141     extern sint64 level_exp(int level, double expmul);
142     extern void calc_perm_exp(object *op);
143 root 1.2 extern sint64 check_exp_loss(const object *op, sint64 exp);
144     extern sint64 check_exp_adjust(const object *op, sint64 exp);
145 root 1.1 extern void change_exp(object *op, sint64 exp, const char *skill_name, int flag);
146     extern void apply_death_exp_penalty(object *op);
147 root 1.2 extern int did_make_save(const object *op, int level, int bonus);
148 root 1.1 /* los.c */
149 root 1.44 extern void init_block();
150 root 1.50 extern void clear_los(player *pl);
151 root 1.2 extern int has_carried_lights(const object *op);
152 root 1.1 extern void update_los(object *op);
153 root 1.17 extern void update_all_map_los(maptile *map);
154     extern void update_all_los(const maptile *map, int x, int y);
155 root 1.1 extern void print_los(object *op);
156 root 1.2 extern void make_sure_seen(const object *op);
157     extern void make_sure_not_seen(const object *op);
158 root 1.1 /* map.c */
159 root 1.33 extern const char *create_pathname (const char *name);
160 root 1.1 extern int check_path(const char *name, int prepend_dir);
161 root 1.17 extern int blocked_link(object *ob, maptile *m, int sx, int sy);
162 root 1.1 extern void fix_container(object *container);
163     /* object.c */
164     extern signed long sum_weight(object *op);
165     extern object *object_get_env_recursive(object *op);
166 root 1.18 extern char *dump_object(object *op);
167 root 1.1 extern void dump_me(object *op, char *outstr);
168 root 1.2 extern object *get_nearest_part(object *op, const object *pl);
169 root 1.1 extern object *find_object(tag_t i);
170 root 1.2 extern object *find_object_name(const char *str);
171 root 1.44 extern void free_all_object_data();
172 root 1.1 extern void update_turn_face(object *op);
173     extern void update_object(object *op, int action);
174     extern void sub_weight(object *op, signed long weight);
175     extern object *merge_ob(object *op, object *top);
176 root 1.17 extern object *insert_ob_in_map_at(object *op, maptile *m, object *originator, int flag, int x, int y);
177     extern object *insert_ob_in_map(object *op, maptile *m, object *originator, int flag);
178 root 1.2 extern void replace_insert_ob_in_map(const char *arch_string, object *op);
179 root 1.1 extern object *get_split_ob(object *orig_ob, uint32 nr);
180     extern object *decrease_ob_nr(object *op, uint32 i);
181     extern void add_weight(object *op, signed long weight);
182     extern object *insert_ob_in_ob(object *op, object *where);
183     extern int check_move_on(object *op, object *originator);
184 root 1.17 extern object *present_arch(const archetype *at, maptile *m, int x, int y);
185     extern object *present(unsigned char type, maptile *m, int x, int y);
186 root 1.2 extern object *present_in_ob(unsigned char type, const object *op);
187     extern object *present_in_ob_by_name(int type, const char *str, const object *op);
188     extern object *present_arch_in_ob(const archetype *at, const object *op);
189 root 1.1 extern void flag_inv(object *op, int flag);
190     extern void unflag_inv(object *op, int flag);
191 root 1.17 extern int find_free_spot(const object *ob, maptile *m, int x, int y, int start, int stop);
192     extern int find_first_free_spot(const object *ob, maptile *m, int x, int y);
193 root 1.1 extern void get_search_arr(int *search_arr);
194 root 1.17 extern int find_dir(maptile *m, int x, int y, object *exclude);
195 root 1.2 extern int distance(const object *ob1, const object *ob2);
196 root 1.1 extern int find_dir_2(int x, int y);
197     extern int dirdiff(int dir1, int dir2);
198 root 1.17 extern int can_see_monsterP(maptile *m, int x, int y, int dir);
199 root 1.2 extern int can_pick(const object *who, const object *item);
200 root 1.1 extern object *object_create_clone(object *asrc);
201 root 1.2 extern object *find_obj_by_type_subtype(const object *who, int type, int subtype);
202     extern key_value *get_ob_key_link(const object *ob, const char *key);
203     extern const char *get_ob_key_value(const object *op, const char *const key);
204 root 1.1 extern int set_ob_key_value_s(object *op, const char *canonical_key, const char *value, int add_key);
205     extern int set_ob_key_value(object *op, const char *key, const char *value, int add_key);
206 root 1.2 /* path.c */
207     extern char *path_combine(const char *src, const char *dst);
208     extern void path_normalize(char *path);
209     extern char *path_combine_and_normalize(const char *src, const char *dst);
210 root 1.1 /* porting.c */
211     extern void remove_directory(const char *path);
212     extern char *strcasestr_local(const char *s, const char *find);
213     extern char *ltostr10(signed long n);
214     extern char *doubletostr10(double v);
215     extern FILE *open_and_uncompress(const char *name, int flag, int *compressed);
216     extern void close_and_delete(FILE *fp, int compressed);
217     extern void make_path_to_file(char *filename);
218     /* player.c */
219     extern void free_player(player *pl);
220     extern int atnr_is_dragon_enabled(int attacknr);
221 root 1.2 extern int is_dragon_pl(const object *op);
222 root 1.1 /* quest.c */
223 root 1.2 extern int quest_is_quest_marker(const object *marker, int task);
224     extern int quest_is_in_progress(const object *marker, int task);
225     extern int quest_is_completed(const object *marker, int task);
226     extern const char *quest_get_name(const object *marker);
227     extern object *quest_get_player_quest(const object *pl, const char *name, const char *name_pl);
228     extern object *quest_get_override(const object *ob, const object *pl);
229     extern const char *quest_get_override_slaying(const object *ob, const object *pl);
230     extern const char *quest_get_override_msg(const object *ob, const object *pl);
231 root 1.1 extern void quest_apply_items(object *wrapper, player *pl);
232     extern int quest_on_activate(object *ob, player *pl);
233 root 1.2 extern int quest_is_override_compatible(const object *marker, const object *pl);
234 root 1.1 /* readable.c */
235     extern int nstrtok(const char *buf1, const char *buf2);
236     extern char *strtoktolin(const char *buf1, const char *buf2);
237     extern int book_overflow(const char *buf1, const char *buf2, int booksize);
238 root 1.44 extern void init_readable();
239 root 1.1 extern void change_book(object *book, int msgtype);
240     extern object *get_random_mon(int level);
241 root 1.2 extern char *mon_desc(const object *mon);
242 root 1.1 extern object *get_next_mon(object *tmp);
243     extern char *mon_info_msg(int level, int booksize);
244 root 1.42 extern const char *artifact_msg(int level, int booksize);
245 root 1.1 extern char *spellpath_msg(int level, int booksize);
246     extern void make_formula_book(object *book, int level);
247     extern char *msgfile_msg(int level, int booksize);
248     extern const char *god_info_msg(int level, int booksize);
249     extern void tailor_readable_ob(object *book, int msg_type);
250 root 1.44 extern void free_all_readable();
251     extern void write_book_archive();
252 root 1.1 extern readable_message_type *get_readable_message_type(object *readable);
253     /* recipe.c */
254     extern recipelist *get_formulalist(int i);
255 root 1.44 extern void init_formulae();
256     extern void check_formulae();
257     extern void dump_alchemy();
258 root 1.2 extern archetype *find_treasure_by_name(const treasure *t, const char *name, int depth);
259 root 1.1 extern long find_ingred_cost(const char *name);
260 root 1.44 extern void dump_alchemy_costs();
261 root 1.1 extern const char *ingred_name(const char *name);
262     extern int strtoint(const char *buf);
263 root 1.2 extern artifact *locate_recipe_artifact(const recipe *rp, size_t idx);
264 root 1.1 extern int numb_ingred(const char *buf);
265 root 1.44 extern recipelist *get_random_recipelist();
266 root 1.1 extern recipe *get_random_recipe(recipelist *rpl);
267 root 1.44 extern void free_all_recipes();
268 root 1.1 /* region.c */
269 root 1.2 extern object *get_jail_exit(object *op);
270 root 1.44 extern void init_regions();
271 root 1.1 /* shstr.c */
272     extern int buf_overflow(const char *buf1, const char *buf2, int bufsize);
273     /* time.c */
274 root 1.44 extern void reset_sleep();
275 root 1.1 extern void log_time(long process_utime);
276 root 1.44 extern int enough_elapsed_time();
277     extern void sleep_delta();
278 root 1.1 extern void get_tod(timeofday_t *tod);
279     extern void print_tod(object *op);
280     extern void time_info(object *op);
281     /* treasure.c */
282 root 1.44 extern void init_archetype_pointers();
283 root 1.45 extern bool load_treasure_file(const char *filename);
284 root 1.1 extern object *generate_treasure(treasurelist *t, int difficulty);
285 elmex 1.3 extern int level_for_item(const object *op, int difficulty);
286 root 1.1 extern int magic_from_difficulty(int difficulty);
287     extern void set_abs_magic(object *op, int magic);
288     extern void set_ring_bonus(object *op, int bonus);
289     extern int get_magic(int diff);
290     extern void fix_generated_item(object *op, object *creator, int difficulty, int max_magic, int flags);
291     extern artifactlist *find_artifactlist(int type);
292 root 1.44 extern void dump_artifacts();
293 root 1.1 extern void dump_monster_treasure_rec(const char *name, treasure *t, int depth);
294     extern void dump_monster_treasure(const char *name);
295 root 1.44 extern void init_artifacts();
296 root 1.1 extern void add_abilities(object *op, object *change);
297     extern void give_artifact_abilities(object *op, object *artifct);
298     extern void generate_artifact(object *op, int difficulty);
299     extern void fix_flesh_item(object *item, object *donor);
300     extern int special_potion(object *op);
301     extern void free_treasurestruct(treasure *t);
302     extern void free_charlinks(linked_char *lc);
303     extern void free_artifact(artifact *at);
304     extern void free_artifactlist(artifactlist *al);
305 root 1.44 extern void free_all_treasures();
306 root 1.1 /* utils.c */
307 root 1.2 extern int random_roll(int min, int max, const object *op, int goodbad);
308     extern sint64 random_roll64(sint64 min, sint64 max, const object *op, int goodbad);
309     extern int die_roll(int num, int size, const object *op, int goodbad);
310 root 1.39 extern materialtype_t *name_to_material (const shstr &name);
311 root 1.2 extern void transmute_materialname(object *op, const object *change);
312 root 1.1 extern void set_materialname(object *op, int difficulty, materialtype_t *nmt);
313     extern void strip_media_tag(char *message);
314     extern const char *strrstr(const char *haystack, const char *needle);
315     extern void strip_endline(char *buf);
316     extern void replace(const char *src, const char *key, const char *replacement, char *result, size_t resultsize);
317     extern void make_list_like(char *input);
318     /* loader.c */
319     extern int set_variable(object *op, char *buf);
320 root 1.44 extern void init_vars();
321 root 1.1 extern char *get_ob_diff(object *op, object *op2);