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, 11 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

# 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 /* anim.c */
25 extern void free_all_anim();
26 extern void init_anim();
27 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 extern archetype *find_archetype_by_object_type_name(int type, const char *name);
32 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 extern void clear_archetable();
39 extern void dump_arch(archetype *at);
40 extern void dump_all_archetypes();
41 extern void free_all_archs();
42 extern void check_generators();
43 extern bool load_archetype_file(const char *filename);
44 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 extern void activate_connection (maptile *map, long connection, bool state = true);
54 extern void update_button(object *op);
55 extern oblinkpt *get_connection_links (maptile *map, long connection);
56 extern void use_trigger(object *op);
57 extern void animate_turning(object *op);
58 extern int check_altar_sacrifice(const object *altar, const object *sacrifice);
59 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 extern void add_button_link(object *button, maptile *map, int connected);
63 extern void remove_button_link(object *op);
64 extern oblinkpt *get_button_links(const object *button);
65 extern int get_button_value(const object *button);
66 extern void do_mood_floor(object *op, object *source = 0);
67 extern object *check_inv_recursive(object *op, const object *trig);
68 extern void check_inv(object *op, object *trig);
69 extern void verify_button_links(const maptile *map);
70 /* exp.c */
71 extern int new_exp(const object *ob);
72 extern int has_ability(const object *ob);
73 extern void init_experience();
74 extern void dump_experience();
75 /* friend.c */
76 extern void add_friendly_object(object *op);
77 extern void remove_friendly_object(object *op);
78 extern void dump_friendly_objects();
79 extern void clean_friendly_list();
80 extern int is_friendly(const object *op);
81 /* glue.c */
82 extern void fatal(int err);
83 /* holy.c */
84 extern void init_gods();
85 extern void add_god_to_list(archetype *god_arch);
86 extern int baptize_altar(object *op);
87 extern godlink *get_rand_god();
88 extern object *pntr_to_god_obj(godlink *godlnk);
89 extern void free_all_god();
90 extern void dump_gods();
91 /* info.c */
92 extern void dump_abilities();
93 extern void print_monsters();
94 extern void bitstostring(long bits, int num, char *str);
95 /* image.c */
96 extern void ReadBmapNames();
97 extern int FindFace(const char *name, int error);
98 extern int ReadSmooth();
99 extern int FindSmooth(uint16 face, uint16 *smoothed);
100 extern void free_all_images();
101 /* init.c */
102 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 /* item.c */
111 extern int get_power_from_ench(int ench);
112 extern int calc_item_power(const object *op, int flag);
113 extern const typedata *get_typedata(int itemtype);
114 extern const typedata *get_typedata_by_name(const char *name);
115 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 extern const char *query_short_name(const object *op);
121 extern const char *query_name(const object *op);
122 extern const char *query_base_name(const object *op, int plural);
123 extern const char *describe_item(const object *op, object *owner);
124 extern int is_magical(const object *op);
125 extern int need_identify(const object *op);
126 extern void identify(object *op);
127 /* links.c */
128 extern objectlink *get_objectlink();
129 extern oblinkpt *get_objectlinkpt();
130 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 extern int allowed_class(const object *op);
137 extern void set_dragon_name(object *pl, const object *abil, const object *skin);
138 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 extern sint64 check_exp_loss(const object *op, sint64 exp);
144 extern sint64 check_exp_adjust(const object *op, sint64 exp);
145 extern void change_exp(object *op, sint64 exp, const char *skill_name, int flag);
146 extern void apply_death_exp_penalty(object *op);
147 extern int did_make_save(const object *op, int level, int bonus);
148 /* los.c */
149 extern void init_block();
150 extern void clear_los(player *pl);
151 extern int has_carried_lights(const object *op);
152 extern void update_los(object *op);
153 extern void update_all_map_los(maptile *map);
154 extern void update_all_los(const maptile *map, int x, int y);
155 extern void print_los(object *op);
156 extern void make_sure_seen(const object *op);
157 extern void make_sure_not_seen(const object *op);
158 /* map.c */
159 extern const char *create_pathname (const char *name);
160 extern int check_path(const char *name, int prepend_dir);
161 extern int blocked_link(object *ob, maptile *m, int sx, int sy);
162 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 extern char *dump_object(object *op);
167 extern void dump_me(object *op, char *outstr);
168 extern object *get_nearest_part(object *op, const object *pl);
169 extern object *find_object(tag_t i);
170 extern object *find_object_name(const char *str);
171 extern void free_all_object_data();
172 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 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 extern void replace_insert_ob_in_map(const char *arch_string, object *op);
179 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 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 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 extern void flag_inv(object *op, int flag);
190 extern void unflag_inv(object *op, int flag);
191 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 extern void get_search_arr(int *search_arr);
194 extern int find_dir(maptile *m, int x, int y, object *exclude);
195 extern int distance(const object *ob1, const object *ob2);
196 extern int find_dir_2(int x, int y);
197 extern int dirdiff(int dir1, int dir2);
198 extern int can_see_monsterP(maptile *m, int x, int y, int dir);
199 extern int can_pick(const object *who, const object *item);
200 extern object *object_create_clone(object *asrc);
201 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 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 /* 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 /* 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 extern int is_dragon_pl(const object *op);
222 /* quest.c */
223 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 extern void quest_apply_items(object *wrapper, player *pl);
232 extern int quest_on_activate(object *ob, player *pl);
233 extern int quest_is_override_compatible(const object *marker, const object *pl);
234 /* 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 extern void init_readable();
239 extern void change_book(object *book, int msgtype);
240 extern object *get_random_mon(int level);
241 extern char *mon_desc(const object *mon);
242 extern object *get_next_mon(object *tmp);
243 extern char *mon_info_msg(int level, int booksize);
244 extern const char *artifact_msg(int level, int booksize);
245 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 extern void free_all_readable();
251 extern void write_book_archive();
252 extern readable_message_type *get_readable_message_type(object *readable);
253 /* recipe.c */
254 extern recipelist *get_formulalist(int i);
255 extern void init_formulae();
256 extern void check_formulae();
257 extern void dump_alchemy();
258 extern archetype *find_treasure_by_name(const treasure *t, const char *name, int depth);
259 extern long find_ingred_cost(const char *name);
260 extern void dump_alchemy_costs();
261 extern const char *ingred_name(const char *name);
262 extern int strtoint(const char *buf);
263 extern artifact *locate_recipe_artifact(const recipe *rp, size_t idx);
264 extern int numb_ingred(const char *buf);
265 extern recipelist *get_random_recipelist();
266 extern recipe *get_random_recipe(recipelist *rpl);
267 extern void free_all_recipes();
268 /* region.c */
269 extern object *get_jail_exit(object *op);
270 extern void init_regions();
271 /* shstr.c */
272 extern int buf_overflow(const char *buf1, const char *buf2, int bufsize);
273 /* time.c */
274 extern void reset_sleep();
275 extern void log_time(long process_utime);
276 extern int enough_elapsed_time();
277 extern void sleep_delta();
278 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 extern void init_archetype_pointers();
283 extern bool load_treasure_file(const char *filename);
284 extern object *generate_treasure(treasurelist *t, int difficulty);
285 extern int level_for_item(const object *op, int difficulty);
286 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 extern void dump_artifacts();
293 extern void dump_monster_treasure_rec(const char *name, treasure *t, int depth);
294 extern void dump_monster_treasure(const char *name);
295 extern void init_artifacts();
296 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 extern void free_all_treasures();
306 /* utils.c */
307 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 extern materialtype_t *name_to_material (const shstr &name);
311 extern void transmute_materialname(object *op, const object *change);
312 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 extern void init_vars();
321 extern char *get_ob_diff(object *op, object *op2);