1 /* $Id$ */
2 /* File: externs.h */
3 
4 /* Purpose: extern declarations (variables and functions) */
5 
6 /*
7  * Note that some files have their own header files
8  * (z-virt.h, z-util.h, z-form.h, term.h, random.h)
9  */
10 
11 
12 /*
13  * Automatically generated "variable" declarations
14  */
15 
16 /* netserver.c */
17 extern long Id;
18 extern int NumPlayers;
19 
20 /* tables.c */
21 extern s16b ddd[9];
22 extern s16b ddx[10];
23 extern s16b ddy[10];
24 extern s16b ddx_ddd[9];
25 extern s16b ddy_ddd[9];
26 extern char hexsym[16];
27 extern byte adj_val_min[];
28 extern byte adj_val_max[];
29 extern byte adj_mag_study[];
30 extern byte adj_mag_mana[];
31 extern byte adj_mag_fail[];
32 extern byte adj_mag_stat[];
33 extern byte adj_chr_gold[];
34 extern byte adj_int_dev[];
35 extern byte adj_wis_sav[];
36 extern byte adj_wis_msane[];
37 extern byte adj_dex_dis[];
38 extern byte adj_int_dis[];
39 extern byte adj_dex_ta[];
40 extern byte adj_str_td[];
41 extern byte adj_dex_th[];
42 extern byte adj_str_th[];
43 extern byte adj_str_wgt[];
44 extern byte adj_str_hold[];
45 extern byte adj_str_dig[];
46 extern byte adj_str_blow[];
47 extern byte adj_dex_blow[];
48 extern byte adj_dex_safe[];
49 extern byte adj_con_fix[];
50 extern byte adj_con_mhp[];
51 extern byte blows_table[12][12];
52 extern owner_type owners[MAX_BASE_STORES][MAX_STORE_OWNERS];
53 extern s16b extract_energy[256];
54 extern s32b player_exp[PY_MAX_LEVEL];
55 extern player_race race_info[MAX_RACE];
56 extern player_class class_info[MAX_CLASS];
57 extern player_trait trait_info[MAX_TRAIT];
58 extern player_magic magic_info[MAX_CLASS];
59 extern u32b spell_flags[2][9][2];
60 extern cptr spell_names[2][64];
61 extern byte chest_traps[64];
62 extern cptr player_title[MAX_CLASS][11];
63 extern cptr sound_names[SOUND_MAX];
64 extern cptr stat_names[6];
65 extern cptr stat_names_reduced[6];
66 
67 /* variable.c */
68 extern cptr copyright[6];
69 extern byte version_major;
70 extern byte version_minor;
71 extern byte version_patch;
72 extern byte version_extra;
73 extern byte sf_major;
74 extern byte sf_minor;
75 extern byte sf_patch;
76 extern byte sf_extra;
77 extern u32b sf_xtra;
78 extern u32b sf_when;
79 extern u16b sf_lives;
80 extern u16b sf_saves;
81 extern byte ssf_major;
82 extern byte ssf_minor;
83 extern byte ssf_patch;
84 extern byte ssf_extra;
85 extern byte qsf_major;
86 extern byte qsf_minor;
87 extern byte qsf_patch;
88 extern byte qsf_extra;
89 extern bool arg_wizard;
90 extern bool arg_fiddle;
91 extern bool arg_force_original;
92 extern bool arg_force_roguelike;
93 extern bool server_generated;
94 extern bool server_dungeon;
95 extern bool server_state_loaded;
96 extern bool server_saved;
97 extern bool character_loaded;
98 extern bool character_icky;
99 extern bool character_xtra;
100 extern u32b seed_flavor;
101 extern u32b seed_town;
102 extern s16b command_cmd;
103 extern s16b command_arg;
104 /*extern s16b command_rep;*/
105 extern s16b command_dir;
106 extern s16b command_see;
107 extern s16b command_gap;
108 extern s16b command_wrk;
109 extern s16b command_new;
110 /*extern s16b energy_use;*/
111 extern s16b choose_default;
112 extern bool create_up_stair;
113 extern bool create_down_stair;
114 extern bool msg_flag;
115 extern s16b num_repro;
116 extern s16b object_level;
117 extern s16b monster_level;
118 extern s32b turn;
119 extern s32b old_turn;
120 extern bool wizard;
121 extern bool to_be_wizard;
122 extern bool can_be_wizard;
123 extern u16b panic_save;
124 extern bool scan_monsters;
125 extern bool scan_objects;
126 extern s16b inven_nxt;
127 extern s16b o_nxt;
128 extern s16b m_nxt;
129 extern s16b o_max;
130 extern s16b m_max;
131 extern s16b o_top;
132 extern s16b m_top;
133 
134 
135 //deprecate: game options -- nowadays they're client options instead -- todo: clear
136 extern player_type **Players;
137 extern long GetInd[];
138 extern s16b o_fast[MAX_O_IDX];
139 extern s16b m_fast[MAX_M_IDX];
140 extern object_type *o_list;
141 extern monster_type *m_list;
142 extern xorder xo_list[MAX_XO_IDX];
143 extern store_type *store;
144 /*extern object_type *inventory;*/
145 extern s16b alloc_kind_size;
146 extern alloc_entry *alloc_kind_table;
147 extern s16b alloc_race_size;
148 extern alloc_entry *alloc_race_table;
149 extern byte tval_to_attr[128];
150 extern char tval_to_char[128];
151 
152 extern header *v_head;
153 extern vault_type *v_info;
154 extern char *v_name;
155 extern char *v_text;
156 extern header *f_head;
157 extern feature_type *f_info;
158 extern char *f_name;
159 extern char *f_text;
160 extern header *k_head;
161 extern object_kind *k_info;
162 extern char *k_name;
163 extern char *k_text;
164 extern header *a_head;
165 extern artifact_type *a_info;
166 extern char *a_name;
167 extern char *a_text;
168 extern header *e_head;
169 extern ego_item_type *e_info;
170 extern char *e_name;
171 extern char *e_text;
172 extern header *r_head;
173 extern monster_race *r_info;
174 extern char *r_name;
175 extern char *r_text;
176 extern cptr ANGBAND_SYS;
177 extern cptr ANGBAND_DIR;
178 extern cptr ANGBAND_DIR_SCPT;
179 extern cptr ANGBAND_DIR_TEXT;
180 extern cptr ANGBAND_DIR_USER;
181 extern cptr ANGBAND_DIR_XTRA;
182 extern bool item_tester_full;
183 extern byte item_tester_tval;
184 extern bool (*item_tester_hook)(object_type *o_ptr);
185 extern bool (*ang_sort_comp)(int Ind, vptr u, vptr v, int a, int b);
186 extern void (*ang_sort_swap)(int Ind, vptr u, vptr v, int a, int b);
187 extern bool (*get_mon_num_hook)(int r_idx);
188 extern bool (*get_obj_num_hook)(int k_idx);
189 
190 
191 
192 
193 /*
194  * Automatically generated "function declarations"
195  */
196 
197 /* birth.c */
198 extern void player_birth(int Ind, cptr name, int conn, int race, int class, int sex);
199 
200 /* cave.c */
201 extern int distance(int y1, int x1, int y2, int x2);
202 extern bool los(int Depth, int y1, int x1, int y2, int x2);
203 extern bool player_can_see_bold(int Ind, int y, int x);
204 extern bool no_lite(int Ind);
205 extern void map_info(int Ind, int y, int x, byte *ap, char *cp);
206 extern void move_cursor_relative(int row, int col);
207 extern void print_rel(char c, byte a, int y, int x);
208 extern void note_spot(int Ind, int y, int x);
209 extern void note_spot_depth(int Depth, int y, int x);
210 extern void everyone_lite_spot(int Depth, int y, int x);
211 extern void lite_spot(int Ind, int y, int x);
212 extern void prt_map(int Ind);
213 extern void display_map(int *cy, int *cx);
214 extern void do_cmd_view_map(void);
215 extern void forget_lite(int Ind);
216 extern void update_lite(int Ind);
217 extern void forget_view(int Ind);
218 extern void update_view(int Ind);
219 extern void forget_flow(void);
220 extern void update_flow(void);
221 extern void map_area(int Ind);
222 extern void wiz_lite(int Ind);
223 extern void wiz_dark(int Ind);
224 extern void mmove2(int *y, int *x, int y1, int x1, int y2, int x2);
225 extern bool projectable(int Depth, int y1, int x1, int y2, int x2);
226 extern void scatter(int Depth, int *yp, int *xp, int y, int x, int d, int m);
227 extern void health_track(int m_idx);
228 extern void recent_track(int r_idx);
229 extern void disturb(int Ind, int stop_search, int flush_output);
230 extern bool is_quest(int level);
231 
232 /* cmd1.c */
233 extern bool test_hit_fire(int chance, int ac, int vis);
234 extern bool test_hit_melee(int chance, int ac, int vis);
235 extern s16b critical_shot(int Ind, int weight, int plus, int dam);
236 extern s16b critical_melee(int Ind, int weight, int plus, int dam);
237 extern s16b tot_dam_aux(object_type *o_ptr, int tdam, monster_type *m_ptr);
238 extern void search(int Ind);
239 extern void carry(int Ind, int pickup);
240 extern void py_attack(int Ind, int y, int x);
241 extern void move_player(int Ind, int dir, int do_pickup);
242 extern void run_step(int Ind, int dir);
243 
244 /* cmd2.c */
245 extern void do_cmd_go_up(int Ind);
246 extern void do_cmd_go_down(int Ind);
247 extern void do_cmd_search(int Ind);
248 extern void do_cmd_toggle_search(int Ind);
249 extern void do_cmd_open(int Ind, int dir);
250 extern void do_cmd_close(int Ind, int dir);
251 extern void do_cmd_tunnel(int Ind, int dir);
252 extern void do_cmd_disarm(int Ind, int dir);
253 extern void do_cmd_bash(int Ind, int dir);
254 extern void do_cmd_spike(int Ind, int dir);
255 extern void do_cmd_walk(int Ind, int dir, int pickup);
256 extern void do_cmd_stay(int Ind, int pickup);
257 extern void do_cmd_run(int Ind, int dir);
258 /*extern void do_cmd_rest(void);*/
259 extern void do_cmd_fire(int Ind, int dir, int item);
260 extern void do_cmd_throw(int Ind, int dir, int item);
261 
262 /* cmd3.c */
263 extern void do_cmd_inven(void);
264 extern void do_cmd_equip(void);
265 extern void do_cmd_wield(int Ind, int item);
266 extern void do_cmd_takeoff(int Ind, int item);
267 extern void do_cmd_drop(int Ind, int item, int quantity);
268 extern void do_cmd_destroy(int Ind, int item, int quantity);
269 extern void do_cmd_observe(int Ind, int item);
270 extern void do_cmd_uninscribe(int Ind, int item);
271 extern void do_cmd_inscribe(int Ind, int item, cptr inscription);
272 extern void do_cmd_refill(int Ind, int item);
273 extern void do_cmd_target(int Ind, int dir);
274 extern void do_cmd_look(int Ind, int dir);
275 extern void do_cmd_locate(int Ind, int dir);
276 extern void do_cmd_query_symbol(int Ind, char sym);
277 
278 /* cmd4.c */
279 extern void do_cmd_redraw(void);
280 extern void do_cmd_change_name(void);
281 extern void do_cmd_message_one(void);
282 extern void do_cmd_messages(void);
283 extern void do_cmd_options(void);
284 extern void do_cmd_pref(void);
285 extern void do_cmd_macros(void);
286 extern void do_cmd_visuals(void);
287 extern void do_cmd_colors(void);
288 extern void do_cmd_note(void);
289 extern void do_cmd_version(void);
290 extern void do_cmd_feeling(void);
291 extern void do_cmd_load_screen(void);
292 extern void do_cmd_save_screen(void);
293 extern void do_cmd_check_artifacts(int Ind);
294 extern void do_cmd_check_uniques(int Ind);
295 
296 /* cmd5.c */
297 extern void do_cmd_browse(int Ind, int book);
298 extern void do_cmd_study(int Ind, int book, int spell);
299 
300 /* cmd6.c */
301 extern void do_cmd_eat_food(int Ind, int item);
302 extern void do_cmd_quaff_potion(int Ind, int item);
303 extern void do_cmd_read_scroll(int Ind, int item);
304 extern void do_cmd_aim_wand(int Ind, int item, int dir);
305 extern void do_cmd_use_staff(int Ind, int item);
306 extern void do_cmd_zap_rod(int Ind, int item);
307 extern void do_cmd_zap_rod_dir(int Ind, int dir);
308 extern void do_cmd_activate(int Ind, int item);
309 extern void do_cmd_activate_dir(int Ind, int dir);
310 
311 /* dungeon.c */
312 extern void play_game(bool new_game);
313 
314 /* client/server */
315 extern int Receive_file_data(int ind, unsigned short len, char *buffer);
316 extern int Send_file_check(int ind, unsigned short id, char *fname);
317 extern int Send_file_init(int ind, unsigned short id, char *fname);
318 extern int Send_file_data(int ind, unsigned short id, char *buf, unsigned short len);
319 extern int Send_file_end(int ind, unsigned short id);
320 
321 /* files.c */
322 extern void safe_setuid_drop(void);
323 extern void safe_setuid_grab(void);
324 extern s16b tokenize(char *buf, s16b num, char **tokens);
325 extern void display_player(int Ind, bool do_hist);
326 extern errr file_character(cptr name, bool full);
327 extern errr process_pref_file_aux(char *buf);
328 extern errr process_pref_file(cptr name);
329 extern errr check_time_init(void);
330 extern errr check_load_init(void);
331 extern errr check_time(void);
332 extern errr check_load(void);
333 extern void read_times(void);
334 extern void show_news(void);
335 extern errr show_file(int Ind, cptr name, cptr what);
336 extern void do_cmd_help(cptr name);
337 extern void process_player_name(int Ind, bool sf);
338 extern void get_name(int Ind);
339 extern void do_cmd_suicide(int Ind);
340 extern void do_cmd_save_game(int Ind);
341 extern long total_points(int Ind);
342 extern void display_scores(int from, int to);
343 extern void close_game(void);
344 extern void exit_game_panic(void);
345 extern void save_game_panic(void);
346 extern void signals_ignore_tstp(void);
347 extern void signals_handle_tstp(void);
348 extern void signals_init(void);
349 
350 /* generate.c */
351 extern void generate_cave(int Depth, player_type *p_ptr);
352 
353 /* init-txt.c */
354 extern errr init_v_info_txt(FILE *fp, char *buf);
355 extern errr init_f_info_txt(FILE *fp, char *buf);
356 extern errr init_k_info_txt(FILE *fp, char *buf);
357 extern errr init_a_info_txt(FILE *fp, char *buf);
358 extern errr init_e_info_txt(FILE *fp, char *buf);
359 extern errr init_r_info_txt(FILE *fp, char *buf);
360 
361 /* init.c */
362 extern void init_file_paths(char *path);
363 extern void init_some_arrays(void);
364 
365 /* load1.c */
366 /*extern errr rd_savefile_old(void);*/
367 
368 /* load2.c */
369 extern errr rd_savefile_new(int Ind);
370 
371 /* melee1.c */
372 /* melee2.c */
373 extern bool make_attack_melee(int Ind, int m_idx);
374 extern bool make_attack_spell(int Ind, int m_idx);
375 extern void process_monsters(void);
376 
377 /* mon-desc.c */
378 extern void screen_roff(int r_idx);
379 extern void display_roff(int r_idx);
380 
381 /* monster.c */
382 extern cptr r_name_get(monster_type *m_ptr);
383 extern void delete_monster_idx(int i, bool unfound_art);
384 extern void delete_monster(int Depth, int y, int x, bool unfound_art);
385 extern void compact_monsters(int size);
386 extern void wipe_m_list(int Depth);
387 extern s16b m_pop(void);
388 extern errr get_mon_num_prep(void);
389 extern s16b get_mon_num(int level);
390 extern void monster_desc(char *desc, monster_type *m_ptr, int mode);
391 extern void lore_do_probe(int m_idx);
392 extern void lore_treasure(int m_idx, int num_item, int num_gold);
393 extern void update_mon(int m_idx, bool dist);
394 extern void update_monsters(bool dist);
395 extern bool place_monster_aux(int Depth, int y, int x, int r_idx, bool slp, bool grp);
396 extern bool place_monster(int Depth, int y, int x, bool slp, bool grp);
397 extern bool alloc_monster(int Depth, int dis, int slp);
398 extern bool multiply_monster(int m_idx);
399 extern void update_smart_learn(int m_idx, int what);
400 
401 /* netserver.c */
402 /*extern void Contact(int fd, void *arg);*/
403 extern int Net_input(void);
404 extern int Net_output(void);
405 extern int Net_output1(int i);
406 extern void setup_contact_socket(void);
407 extern int Setup_net_server(void);
408 extern void Destroy_connection(int Ind, char *reason);
409 extern int Send_plusses(int Ind, int tohit, int todam);
410 extern int Send_ac(int Ind, int base, int plus);
411 extern int Send_experience(int Ind, int lev, int max_exp, int cur_exp, s32b adv_exp);
412 extern int Send_gold(int Ind, s32b gold);
413 extern int Send_hp(int Ind, int mhp, int chp);
414 extern int Send_sp(int Ind, int msp, int csp);
415 extern int Send_char_info(int Ind, int race, int class, int sex, int mode);
416 extern int Send_various(int Ind, int height, int weight, int age, int sc);
417 extern int Send_stat(int Ind, int stat, int max, int cur, int cur_base);
418 extern int Send_history(int Ind, int line, cptr hist);
419 extern int Send_inven(int Ind, char pos, byte attr, int wgt, int amt, byte tval, cptr name);
420 extern int Send_equip(int Ind, char pos, byte attr, int wgt, byte tval, cptr name);
421 extern int Send_title(int Ind, cptr title);
422 /*extern int Send_level(int Ind, int max, int cur);*/
423 /*extern void Send_exp(int Ind, s32b max, s32b cur);*/
424 extern int Send_depth(int Ind, int depth);
425 extern int Send_food(int Ind, int food);
426 extern int Send_blind(int Ind, bool blind);
427 extern int Send_confused(int Ind, bool confused);
428 extern int Send_fear(int Ind, bool afraid);
429 extern int Send_poison(int Ind, bool poisoned);
430 extern int Send_paralyzed(int Ind, bool paralyzed);
431 extern int Send_searching(int Ind, bool searching);
432 extern int Send_speed(int Ind, int speed);
433 extern int Send_study(int Ind, bool study);
434 extern int Send_cut(int Ind, int cut);
435 extern int Send_stun(int Ind, int stun);
436 extern int Send_direction(int Ind);
437 extern int Send_message(int Ind, cptr msg);
438 extern int Send_char(int Ind, int x, int y, byte a, char c);
439 extern int Send_spell_info(int Ind, int i, cptr out_val);
440 extern int Send_item_request(int Ind);
441 extern int Send_state(int Ind, bool paralyzed, bool searching);
442 extern int Send_beep(int Ind);
443 
444 extern void Handle_direction(int Ind, int dir);
445 
446 
447 
448 
449 /* object1.c */
450 /* object2.c */
451 extern void flavor_init(void);
452 extern void reset_visuals(void);
453 extern void object_flags(object_type *o_ptr, u32b *f1, u32b *f2, u32b *f3);
454 extern void object_desc(int Ind, char *buf, object_type *o_ptr, int pref, int mode);
455 extern void object_desc_store(char *buf, object_type *o_ptr, int pref, int mode);
456 extern bool identify_fully_aux(object_type *o_ptr);
457 extern s16b index_to_label(int i);
458 extern s16b label_to_inven(int Ind, int c);
459 extern s16b label_to_equip(int Ind, int c);
460 extern s16b wield_slot(int Ind, object_type *o_ptr);
461 extern cptr mention_use(int Ind, int i);
462 extern cptr describe_use(int Ind, int i);
463 extern void inven_item_charges(int Ind, int item);
464 extern void inven_item_describe(int Ind, int item);
465 extern void inven_item_increase(int Ind, int item, int num);
466 extern void inven_item_optimize(int Ind, int item);
467 extern void floor_item_charges(int item);
468 extern void floor_item_describe(int item);
469 extern void floor_item_increase(int item, int num);
470 extern void floor_item_optimize(int item);
471 extern bool inven_carry_okay(int Ind, object_type *o_ptr);
472 extern s16b inven_carry(int Ind, object_type *o_ptr);
473 extern bool item_tester_okay(object_type *o_ptr);
474 extern void display_inven(int Ind);
475 extern void display_equip(int Ind);
476 /*extern void show_inven(void);
477 extern void show_equip(void);
478 extern void toggle_inven_equip(void);
479 extern bool get_item(int Ind, int *cp, cptr pmt, bool equip, bool inven, bool floor);*/
480 extern void delete_object_idx(int i, bool unfound_art);
481 extern void delete_object(int Depth, int y, int x, bool unfound_art);
482 extern void compact_objects(int size);
483 extern void wipe_o_list(int Depth);
484 extern s16b o_pop(void);
485 extern errr get_obj_num_prep(void);
486 extern s16b get_obj_num(int level);
487 extern void object_known(object_type *o_ptr);
488 extern void object_aware(object_type *o_ptr);
489 extern void object_tried(object_type *o_ptr);
490 extern s32b object_value(object_type *o_ptr);
491 extern bool object_similar(object_type *o_ptr, object_type *j_ptr, s16b tolerance);
492 extern void object_absorb(object_type *o_ptr, object_type *j_ptr);
493 extern s16b lookup_kind(int tval, int sval);
494 extern void invwipe(object_type *o_ptr);
495 extern void invcopy(object_type *o_ptr, int k_idx);
496 extern void apply_magic(int Depth, object_type *o_ptr, int lev, bool okay, bool good, bool great, bool verygreat, u16b resf);
497 /*extern void place_object(int Depth, int y, int x, bool good, bool great, bool true_art, int luck);*/
498 extern void place_object(struct worldpos *wpos, int y, int x, bool good, bool great, bool verygreat, u16b resf, obj_theme theme, int luck, byte removal_marker);
499 extern void acquirement(int Depth, int y1, int x1, int num, bool great, bool verygreat, u16b resf);
500 extern void place_trap(int Depth, int y, int x);
501 extern void place_gold(int Depth, int y, int x);
502 extern void process_objects(void);
503 extern void drop_near(object_type *o_ptr, int chance, int Depth, int y, int x);
504 extern void pick_trap(int Depth, int y, int x);
505 extern cptr item_activation(object_type *o_ptr);
506 extern void combine_pack(int Ind);
507 extern void reorder_pack(int Ind);
508 
509 /* save.c */
510 extern bool save_player(int Ind);
511 extern bool load_player(int Ind);
512 extern bool load_server_info(void);
513 extern bool save_server_info(void);
514 
515 
516 /* sched.c */
517 extern void install_timer_tick(void (*func)(void), int freq);
518 extern void install_input(void (*func)(int, void *), int fd, void *arg);
519 extern void remove_input(int fd);
520 extern void sched(void);
521 
522 /* spells1.c */
523 extern s16b poly_r_idx(int r_idx);
524 extern void teleport_away(int m_idx, int dis);
525 extern void teleport_player(int Ind, int dis);
526 extern void teleport_player_to(int Ind, int ny, int nx);
527 extern void teleport_player_level(int Ind);
528 extern void take_hit(int Ind, int damage, cptr kb_str);
529 extern void acid_dam(int Ind, int dam, cptr kb_str);
530 extern void elec_dam(int Ind, int dam, cptr kb_str);
531 extern void fire_dam(int Ind, int dam, cptr kb_str);
532 extern void cold_dam(int Ind, int dam, cptr kb_str);
533 extern bool inc_stat(int Ind, int stat);
534 extern bool dec_stat(int Ind, int stat, int amount, int permanent);
535 extern bool res_stat(int Ind, int stat);
536 extern bool apply_disenchant(int Ind, int mode);
537 extern bool project(int who, int rad, int Depth, int y, int x, int dam, int typ, int flg, char attacker[]);
538 
539 /* spells2.c */
540 extern bool hp_player(int Ind, int num);
541 extern void warding_glyph(int Ind);
542 extern bool do_dec_stat(int Ind, int stat);
543 extern bool do_res_stat(int Ind, int stat);
544 extern bool do_inc_stat(int Ind, int stat);
545 extern void identify_pack(int Ind);
546 extern void message_pain(int Ind, int m_idx, int dam);
547 extern bool remove_curse(int Ind);
548 extern bool remove_all_curse(int Ind);
549 extern bool restore_level(int Ind);
550 extern void self_knowledge(int Ind);
551 extern bool lose_all_info(int Ind);
552 extern bool detect_treasure(int Ind);
553 extern bool detect_magic(int Ind);
554 extern bool detect_invisible(int Ind);
555 extern bool detect_evil(int Ind);
556 extern bool detect_monsters(int Ind);
557 extern bool detection(int Ind);
558 extern bool detect_object(int Ind);
559 extern bool detect_trap(int Ind);
560 extern bool detect_sdoor(int Ind);
561 extern void stair_creation(int Ind);
562 extern bool enchant(int Ind, object_type *o_ptr, int n, int eflag);
563 extern bool enchant_spell(int Ind, int num_hit, int num_dam, int num_ac);
564 extern bool enchant_spell_aux(int Ind, int item, int num_hit, int num_dam, int num_ac);
565 extern bool ident_spell(int Ind);
566 extern bool ident_spell_aux(int Ind, int item);
567 extern bool identify_fully(int Ind);
568 extern bool identify_fully_item(int Ind, int item);
569 extern bool recharge(int Ind, int num);
570 extern bool recharge_aux(int Ind, int item, int num);
571 extern bool speed_monsters(int Ind);
572 extern bool slow_monsters(int Ind);
573 extern bool sleep_monsters(int Ind);
574 extern void aggravate_monsters(int Ind, int who);
575 extern bool genocide(int Ind);
576 extern bool obliteration(int who);
577 extern bool probing(int Ind);
578 extern bool banish_evil(int Ind, int dist);
579 extern bool dispel_evil(int Ind, int dam);
580 extern bool dispel_undead(int Ind, int dam);
581 extern bool dispel_demons(int Ind, int dam);
582 extern bool dispel_monsters(int Ind, int dam);
583 extern bool turn_undead(int Ind);
584 extern void destroy_area(int Depth, int y1, int x1, int r, bool full);
585 extern void earthquake(int Depth, int cy, int cx, int r);
586 extern void lite_room(int Ind, int Depth, int y1, int x1);
587 extern void unlite_room(int Ind, int Depth, int y1, int x1);
588 extern bool lite_area(int Ind, int dam, int rad);
589 extern bool unlite_area(int Ind, int dam, int rad);
590 extern bool fire_ball(int Ind, int typ, int dir, int dam, int rad);
591 extern bool fire_bolt(int Ind, int typ, int dir, int dam);
592 extern bool fire_beam(int Ind, int typ, int dir, int dam);
593 extern bool fire_bolt_or_beam(int Ind, int prob, int typ, int dir, int dam);
594 extern bool lite_line(int Ind, int dir);
595 extern bool drain_life(int Ind, int dir, int dam);
596 extern bool wall_to_mud(int Ind, int dir);
597 extern bool destroy_door(int Ind, int dir);
598 extern bool disarm_trap(int Ind, int dir);
599 extern bool heal_monster(int Ind, int dir);
600 extern bool speed_monster(int Ind, int dir);
601 extern bool slow_monster(int Ind, int dir);
602 extern bool sleep_monster(int Ind, int dir);
603 extern bool confuse_monster(int Ind, int dir, int plev);
604 extern bool fear_monster(int Ind, int dir, int plev);
605 extern bool poly_monster(int Ind, int dir);
606 extern bool clone_monster(int Ind, int dir);
607 extern bool teleport_monster(int Ind, int dir);
608 extern bool door_creation(int Ind);
609 extern bool trap_creation(int Ind);
610 extern bool destroy_doors_touch(int Ind);
611 extern bool sleep_monsters_touch(int Ind);
612 
613 /* store.c */
614 extern void do_cmd_store(int Ind);
615 extern void store_shuffle(int which);
616 extern void store_maint(int which);
617 extern void store_init(int which);
618 
619 /* util.c */
620 extern errr path_parse(char *buf, int max, cptr file);
621 extern errr path_temp(char *buf, int max);
622 extern errr path_build(char *buf, int max, cptr path, cptr file);
623 extern FILE *my_fopen(cptr file, cptr mode);
624 extern errr my_fgets(FILE *fff, char *buf, huge n);
625 extern errr my_fputs(FILE *fff, cptr buf, huge n);
626 extern errr my_fclose(FILE *fff);
627 extern errr fd_kill(cptr file);
628 extern errr fd_move(cptr file, cptr what);
629 extern errr fd_copy(cptr file, cptr what);
630 extern int fd_make(cptr file, int mode);
631 extern int fd_open(cptr file, int flags);
632 extern errr fd_lock(int fd, int what);
633 extern errr fd_seek(int fd, huge n);
634 extern errr fd_read(int fd, char *buf, huge n);
635 extern errr fd_write(int fd, cptr buf, huge n);
636 extern errr fd_close(int fd);
637 extern void flush(void);
638 extern void bell(void);
639 extern void sound(int num);
640 /* extern void move_cursor(int row, int col); */
641 extern void text_to_ascii(char *buf, cptr str);
642 extern void ascii_to_text(char *buf, cptr str);
643 extern void keymap_init(void);
644 extern void macro_add(cptr pat, cptr act, bool cmd_flag);
645 extern char inkey(void);
646 extern cptr quark_str(s16b num);
647 extern s16b quark_add(cptr str);
648 extern s16b message_num(void);
649 extern cptr message_str(s16b age);
650 extern void message_add(cptr msg);
651 extern void msg_print(int Ind, cptr msg);
652 extern void msg_format(int Ind, cptr fmt, ...);
653 extern void c_put_str(byte attr, cptr str, int row, int col);
654 extern void put_str(cptr str, int row, int col);
655 extern void c_prt(byte attr, cptr str, int row, int col);
656 extern void prt(cptr str, int row, int col);
657 extern void c_roff(byte attr, cptr str);
658 extern void roff(cptr str);
659 extern void clear_screen(void);
660 extern void clear_from(int row);
661 extern bool askfor_aux(char *buf, int len);
662 extern bool get_string(cptr prompt, char *buf, int len);
663 extern bool get_check(cptr prompt);
664 extern bool get_com(cptr prompt, char *command);
665 extern s16b get_quantity(cptr prompt, int max);
666 extern void pause_line(int row);
667 extern void request_command(bool shopping);
668 extern bool is_a_vowel(int ch);
669 extern bool is_same_as(version_type *version, int major, int minor, int patch, int extra, int branch, int build);
670 
671 /* xtra1.c */
672 extern void cnv_stat(int val, char *out_val);
673 extern s16b modify_stat_value(int value, int amount);
674 extern void notice_stuff(int Ind);
675 extern void update_stuff(int Ind);
676 extern void redraw_stuff(int Ind);
677 extern void window_stuff(int Ind);
678 extern void handle_stuff(int Ind);
679 
680 /* xtra2.c */
681 extern bool set_blind(int Ind, int v);
682 extern bool set_confused(int Ind, int v);
683 extern bool set_poisoned(int Ind, int v);
684 extern bool set_afraid(int Ind, int v);
685 extern bool set_paralyzed(int Ind, int v);
686 extern bool set_image(int Ind, int v);
687 extern bool set_fast(int Ind, int v);
688 extern bool set_slow(int Ind, int v);
689 extern bool set_shield(int Ind, int v);
690 extern bool set_blessed(int Ind, int v);
691 extern bool set_hero(int Ind, int v);
692 extern bool set_shero(int Ind, int v);
693 extern bool set_protevil(int Ind, int v);
694 extern bool set_zeal(int Ind, int p, int v);
695 extern bool set_martyr(int Ind, int v);
696 extern bool set_invuln(int Ind, int v);
697 extern bool set_tim_invis(int Ind, int v);
698 extern bool set_tim_infra(int Ind, int v);
699 extern bool set_oppose_acid(int Ind, int v);
700 extern bool set_oppose_elec(int Ind, int v);
701 extern bool set_oppose_fire(int Ind, int v);
702 extern bool set_oppose_cold(int Ind, int v);
703 extern bool set_oppose_pois(int Ind, int v);
704 extern bool set_stun(int Ind, int v);
705 extern bool set_cut(int Ind, int v);
706 extern bool set_food(int Ind, int v);
707 extern void check_experience(int Ind);
708 extern void gain_exp(int Ind, s64b amount);
709 extern void lose_exp(int Ind, s32b amount);
710 extern void monster_death(int Ind, int m_idx);
711 extern bool mon_take_hit(int Ind, int m_idx, int dam, bool *fear, cptr note);
712 extern void panel_bounds(int Ind);
713 extern void verify_panel(int Ind);
714 extern cptr look_mon_desc(int m_idx);
715 extern void ang_sort_aux(int Ind, vptr u, vptr v, int p, int q);
716 extern void ang_sort(int Ind, vptr u, vptr v, int n);
717 extern void ang_sort_swap_distance(int Ind, vptr u, vptr v, int a, int b);
718 extern bool ang_sort_comp_distance(int Ind, vptr u, vptr v, int a, int b);
719 extern bool target_able(int Ind, int m_idx);
720 extern bool target_okay(int Ind);
721 extern s16b target_pick(int Ind, int y1, int x1, int dy, int dx);
722 extern bool target_set(int Ind, int dir);
723 extern bool get_aim_dir(int Ind/*, int *dp*/);
724 extern bool get_item(int Ind);
725 /*extern bool get_rep_dir(int *dp);*/
726 
727 extern bool c_get_item(int *cp, cptr pmt, bool equip, bool inven, bool floor);
728 
729 /* common.c */
730 extern int find_realm(int book);
731 extern void version_build(void);
732 
733 /*
734  * Hack -- conditional (or "bizarre") externs
735  */
736 
737 #ifdef SET_UID
738 /* util.c */
739 extern void user_name(char *buf, int id);
740 #endif
741 
742 #ifndef HAS_MEMSET
743 /* util.c */
744 extern char *memset(char*, int, huge);
745 #endif
746 
747 #ifndef HAS_STRICMP
748 /* util.c */
749 extern int stricmp(cptr a, cptr b);
750 #endif
751 
752 #ifdef MACINTOSH
753 /* main-mac.c */
754 /* extern void main(void); */
755 #endif
756 
757 #ifdef WINDOWS
758 /* main-win.c */
759 /* extern int FAR PASCAL WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, ...); */
760 #endif
761 
762 extern cptr longVersion;
763 extern cptr shortVersion;
764