root/trunk/src/externs.h

Revision 966, 21.7 kB (checked in by takkaria, 1 month ago)

Remove the "new savefile" code, since it's not suitable for shipping and won't be used because it's not space-efficient enough. This should fix #505, too.

  • Property svn:eol-style set to native
Line 
1 /* File: externs.h */
2
3 #ifndef INCLUDED_EXTERNS_H
4 #define INCLUDED_EXTERNS_H
5
6 /*
7  * Copyright (c) 1997 Ben Harrison
8  *
9  * This software may be copied and distributed for educational, research,
10  * and not for profit purposes provided that this copyright and statement
11  * are included in all such copies.
12  */
13
14
15 /*
16  * Note that some files have their own header files
17  * (z-virt.h, z-util.h, z-form.h, z-term.h, z-rand.h)
18  */
19
20
21 /*
22  * Automatically generated "variable" declarations
23  */
24
25 extern int max_macrotrigger;
26 extern char *macro_template;
27 extern char *macro_modifier_chr;
28 extern char *macro_modifier_name[MAX_MACRO_MOD];
29 extern char *macro_trigger_name[MAX_MACRO_TRIGGER];
30 extern char *macro_trigger_keycode[2][MAX_MACRO_TRIGGER];
31
32 /* pathfind.c */
33 extern char pf_result[];
34 extern int pf_result_index;
35
36 /* tables.c */
37 extern const s16b ddd[9];
38 extern const s16b ddx[10];
39 extern const s16b ddy[10];
40 extern const s16b ddx_ddd[9];
41 extern const s16b ddy_ddd[9];
42 extern const char hexsym[16];
43 extern const int adj_mag_study[];
44 extern const int adj_mag_mana[];
45 extern const byte adj_mag_fail[];
46 extern const int adj_mag_stat[];
47 extern const byte adj_chr_gold[];
48 extern const byte adj_int_dev[];
49 extern const byte adj_wis_sav[];
50 extern const byte adj_dex_dis[];
51 extern const byte adj_int_dis[];
52 extern const byte adj_dex_ta[];
53 extern const byte adj_str_td[];
54 extern const byte adj_dex_th[];
55 extern const byte adj_str_th[];
56 extern const byte adj_str_wgt[];
57 extern const byte adj_str_hold[];
58 extern const byte adj_str_dig[];
59 extern const byte adj_str_blow[];
60 extern const byte adj_dex_blow[];
61 extern const byte adj_dex_safe[];
62 extern const byte adj_con_fix[];
63 extern const int adj_con_mhp[];
64 extern const byte blows_table[12][12];
65 extern const byte extract_energy[200];
66 extern const s32b player_exp[PY_MAX_LEVEL];
67 extern const player_sex sex_info[MAX_SEXES];
68 extern const byte chest_traps[64];
69 extern cptr color_names[BASIC_COLORS];
70 extern cptr stat_names[A_MAX];
71 extern cptr stat_names_reduced[A_MAX];
72 extern cptr stat_names_full[A_MAX];
73 extern const char *window_flag_desc[32];
74 extern const char *inscrip_text[];
75 extern const grouper object_text_order[];
76
77 /* variable.c */
78 extern cptr copyright;
79 extern byte version_major;
80 extern byte version_minor;
81 extern byte version_patch;
82 extern byte version_extra;
83 extern byte sf_major;
84 extern byte sf_minor;
85 extern byte sf_patch;
86 extern byte sf_extra;
87 extern u32b sf_xtra;
88 extern u32b sf_when;
89 extern u16b sf_lives;
90 extern u16b sf_saves;
91 extern bool arg_wizard;
92 extern int arg_graphics;
93 extern bool character_generated;
94 extern bool character_existed;
95 extern bool character_dungeon;
96 extern bool character_saved;
97 extern s16b character_icky;
98 extern s16b character_xtra;
99 extern u32b seed_randart;
100 extern u32b seed_flavor;
101 extern u32b seed_town;
102 extern s16b num_repro;
103 extern char summon_kin_type;
104 extern s32b turn;
105 extern s32b old_turn;
106 extern int use_graphics;
107 extern bool use_bigtile;
108 extern s16b signal_count;
109 extern bool msg_flag;
110 extern bool inkey_base;
111 extern bool inkey_xtra;
112 extern u32b inkey_scan;
113 extern bool inkey_flag;
114 extern bool opening_chest;
115 extern bool shimmer_monsters;
116 extern bool shimmer_objects;
117 extern bool repair_mflag_nice;
118 extern bool repair_mflag_show;
119 extern bool repair_mflag_mark;
120 extern s16b o_max;
121 extern s16b o_cnt;
122 extern s16b mon_max;
123 extern s16b mon_cnt;
124 extern byte feeling;
125 extern s16b rating;
126 extern bool good_item_flag;
127 extern bool closing_flag;
128 extern char savefile[1024];
129 extern char panic_savefile[1024];
130 extern s16b macro__num;
131 extern char **macro__pat;
132 extern char **macro__act;
133 extern term *angband_term[ANGBAND_TERM_MAX];
134 extern char angband_term_name[ANGBAND_TERM_MAX][16];
135 extern byte angband_color_table[MAX_COLORS][4];
136 extern const cptr angband_sound_name[MSG_MAX];
137 extern int view_n;
138 extern u16b *view_g;
139 extern int temp_n;
140 extern u16b *temp_g;
141 extern byte *temp_y;
142 extern byte *temp_x;
143 extern byte (*cave_info)[256];
144 extern byte (*cave_info2)[256];
145 extern byte (*cave_feat)[DUNGEON_WID];
146 extern s16b (*cave_o_idx)[DUNGEON_WID];
147 extern s16b (*cave_m_idx)[DUNGEON_WID];
148 extern byte (*cave_cost)[DUNGEON_WID];
149 extern byte (*cave_when)[DUNGEON_WID];
150 extern maxima *z_info;
151 extern object_type *o_list;
152 extern monster_type *mon_list;
153 extern monster_lore *l_list;
154 extern quest *q_list;
155 extern store_type *store;
156 extern object_type *inventory;
157 extern s16b alloc_ego_size;
158 extern alloc_entry *alloc_ego_table;
159 extern s16b alloc_race_size;
160 extern alloc_entry *alloc_race_table;
161 extern byte misc_to_attr[256];
162 extern char misc_to_char[256];
163 extern byte tval_to_attr[128];
164 extern char macro_buffer[1024];
165 extern char *keymap_act[KEYMAP_MODES][256];
166 extern const player_sex *sp_ptr;
167 extern const player_race *rp_ptr;
168 extern const player_class *cp_ptr;
169 extern const player_magic *mp_ptr;
170 extern player_other *op_ptr;
171 extern player_type *p_ptr;
172 extern vault_type *v_info;
173 extern char *v_name;
174 extern char *v_text;
175 extern feature_type *f_info;
176 extern char *f_name;
177 extern char *f_text;
178 extern object_kind *k_info;
179 extern char *k_name;
180 extern char *k_text;
181 extern artifact_type *a_info;
182 extern char *a_name;
183 extern char *a_text;
184 extern ego_item_type *e_info;
185 extern char *e_name;
186 extern char *e_text;
187 extern monster_race *r_info;
188 extern char *r_name;
189 extern char *r_text;
190 extern player_race *p_info;
191 extern char *p_name;
192 extern char *p_text;
193 extern player_class *c_info;
194 extern char *c_name;
195 extern char *c_text;
196 extern hist_type *h_info;
197 extern char *h_text;
198 extern owner_type *b_info;
199 extern char *b_name;
200 extern char *b_text;
201 extern byte *g_info;
202 extern char *g_name;
203 extern char *g_text;
204 extern flavor_type *flavor_info;
205 extern char *flavor_name;
206 extern char *flavor_text;
207 extern spell_type *s_info;
208 extern char *s_name;
209 extern char *s_text;
210 extern s16b spell_list[MAX_REALMS][BOOKS_PER_REALM][SPELLS_PER_BOOK];
211 extern const char *ANGBAND_SYS;
212 extern const char *ANGBAND_GRAF;
213 extern char *ANGBAND_DIR;
214 extern char *ANGBAND_DIR_APEX;
215 extern char *ANGBAND_DIR_BONE;
216 extern char *ANGBAND_DIR_DATA;
217 extern char *ANGBAND_DIR_EDIT;
218 extern char *ANGBAND_DIR_FILE;
219 extern char *ANGBAND_DIR_HELP;
220 extern char *ANGBAND_DIR_INFO;
221 extern char *ANGBAND_DIR_SAVE;
222 extern char *ANGBAND_DIR_PREF;
223 extern char *ANGBAND_DIR_USER;
224 extern char *ANGBAND_DIR_XTRA;
225 extern bool item_tester_full;
226 extern byte item_tester_tval;
227 extern bool (*item_tester_hook)(const object_type*);
228 extern bool (*get_mon_num_hook)(int r_idx);
229 extern bool (*get_obj_num_hook)(int k_idx);
230 extern ang_file *text_out_file;
231 extern void (*text_out_hook)(byte a, cptr str);
232 extern int text_out_wrap;
233 extern int text_out_indent;
234 extern bool use_transparency;
235 extern void (*sound_hook)(int);
236 extern autoinscription *inscriptions;
237 extern u16b inscriptions_count;
238
239 /* history.c */
240 extern history_info *history_list;
241
242 /* squelch.c */
243 extern byte squelch_level[SQUELCH_BYTES];
244
245
246 /*
247  * Automatically generated "function declarations"
248  */
249
250 /* attack.c */
251 extern int breakage_chance(const object_type *o_ptr);
252 extern bool test_hit(int chance, int ac, int vis);
253 extern void py_attack(int y, int x);
254 extern void do_cmd_fire(void);
255 extern void do_cmd_throw(void);
256
257 /* birth.c */
258 extern void player_birth(bool quickstart_allowed);
259
260 /* button.c */
261 int button_add_text(const char *label, unsigned char keypress);
262 int button_add(char *label, unsigned char keypress);
263 void button_backup_all(void);
264 void button_restore(void);
265 int button_kill_text(unsigned char keypress);
266 int button_kill(unsigned char keypress);
267 void button_kill_all(void);
268 void button_init(button_add_f add, button_kill_f kill);
269 char button_get_key(int x, int y);
270 size_t button_print(int row, int col);
271
272 /* cave.c */
273 extern int distance(int y1, int x1, int y2, int x2);
274 extern bool los(int y1, int x1, int y2, int x2);
275 extern bool no_lite(void);
276 extern bool cave_valid_bold(int y, int x);
277 extern bool feat_supports_lighting(int feat);
278 extern void map_info(unsigned x, unsigned y, grid_data *g);
279 extern void move_cursor_relative(int y, int x);
280 extern void print_rel(char c, byte a, int y, int x);
281 extern void note_spot(int y, int x);
282 extern void lite_spot(int y, int x);
283 extern void prt_map(void);
284 extern void display_map(int *cy, int *cx);
285 extern void do_cmd_view_map(void);
286 extern errr vinfo_init(void);
287 extern void forget_view(void);
288 extern void update_view(void);
289 extern void forget_flow(void);
290 extern void update_flow(void);
291 extern void map_area(void);
292 extern void wiz_lite(void);
293 extern void wiz_dark(void);
294 extern void town_illuminate(bool daytime);
295 extern void cave_set_feat(int y, int x, int feat);
296 extern int project_path(u16b *gp, int range, \
297                          int y1, int x1, int y2, int x2, int flg);
298 extern bool projectable(int y1, int x1, int y2, int x2);
299 extern void scatter(int *yp, int *xp, int y, int x, int d, int m);
300 extern void health_track(int m_idx);
301 extern void monster_race_track(int r_idx);
302 extern void object_kind_track(int k_idx);
303 extern void disturb(int stop_search, int unused_flag);
304 extern bool is_quest(int level);
305 extern bool dtrap_edge(int y, int x);
306
307 /* cmd1.c */
308 extern void search(void);
309 extern byte py_pickup(int pickup);
310 extern void move_player(int dir);
311
312 /* cmd5.c */
313 s16b spell_chance(int spell);
314 bool spell_okay(int spell, bool known, bool browse);
315 int spell_choose_new(const object_type *o_ptr);
316 bool spell_cast(int spell);
317 void spell_learn(int spell);
318
319 int get_spell(const object_type *o_ptr, cptr prompt, bool known, bool browse);
320 void do_cmd_browse_aux(const object_type *o_ptr);
321
322 /* death.c */
323 void death_screen(void);
324
325 /* dungeon.c */
326 extern void play_game(void);
327 extern int value_check_aux1(const object_type *o_ptr);
328
329 /* files.c */
330 extern void html_screenshot(cptr name, int mode);
331 extern void safe_setuid_drop(void);
332 extern void safe_setuid_grab(void);
333 extern s16b tokenize(char *buf, s16b num, char **tokens);
334 extern errr process_pref_file_command(char *buf);
335 extern errr process_pref_file(cptr name);
336 extern void player_flags(u32b *f1, u32b *f2, u32b *f3);
337 extern void display_player(int mode);
338 extern void display_player_stat_info(void);
339 extern void display_player_xtra_info(void);
340 extern errr file_character(cptr name, bool full);
341 extern bool show_file(cptr name, cptr what, int line, int mode);
342 extern void do_cmd_help(void);
343 extern void process_player_name(bool sf);
344 extern bool get_name(char *buf, size_t buflen);
345 extern void do_cmd_suicide(void);
346 extern void do_cmd_save_game(void);
347 extern void close_game(void);
348 extern void exit_game_panic(void);
349
350 /* generate.c */
351 extern void generate_cave(void);
352
353 /* history.c */
354 void history_clear(void);
355 size_t history_get_num(void);
356 bool history_add_full(u16b type, byte a_idx, s16b dlev, s16b clev, s32b turn, const char *text);
357 bool history_add(const char *event, u16b type, byte a_idx);
358 bool history_add_artifact(byte a_idx, bool known);
359 void history_unmask_unknown(void);
360 bool history_lose_artifact(byte a_idx);
361 void history_display(void);
362
363 /* init2.c */
364 extern void init_file_paths(const char *path);
365 extern void create_user_dirs(void);
366 extern bool init_angband(void);
367 extern void cleanup_angband(void);
368
369 /* load.c */
370 extern bool old_load(void);
371
372 /* melee1.c */
373 bool check_hit(int power, int level);
374 bool make_attack_normal(int m_idx);
375
376 /* melee2.c */
377 extern bool make_attack_spell(int m_idx);
378 extern void process_monsters(byte minimum_energy);
379
380 /* monster1.c */
381 extern void describe_monster(int r_idx, bool spoilers);
382 extern void roff_top(int r_idx);
383 extern void screen_roff(int r_idx);
384 extern void display_roff(int r_idx);
385
386 /* monster2.c */
387 extern void delete_monster_idx(int i);
388 extern void delete_monster(int y, int x);
389 extern void compact_monsters(int size);
390 extern void wipe_mon_list(void);
391 extern s16b mon_pop(void);
392 extern void get_mon_num_prep(void);
393 extern s16b get_mon_num(int level);
394 extern void display_monlist(void);
395 extern void monster_desc(char *desc, size_t max, const monster_type *m_ptr, int mode);
396 extern void lore_do_probe(int m_idx);
397 extern void lore_treasure(int m_idx, int num_item, int num_gold);
398 extern void update_mon(int m_idx, bool full);
399 extern void update_monsters(bool full);
400 extern s16b monster_carry(int m_idx, object_type *j_ptr);
401 extern void monster_swap(int y1, int x1, int y2, int x2);
402 extern s16b player_place(int y, int x);
403 extern s16b monster_place(int y, int x, monster_type *n_ptr);
404 extern bool place_monster_aux(int y, int x, int r_idx, bool slp, bool grp);
405 extern bool place_monster(int y, int x, int depth, bool slp, bool grp);
406 extern bool alloc_monster(int dis, bool slp, int depth);
407 extern bool summon_specific(int y1, int x1, int lev, int type);
408 extern bool multiply_monster(int m_idx);
409 extern void message_pain(int m_idx, int dam);
410 extern void update_smart_learn(int m_idx, int what);
411
412 /* pathfind.c */
413 extern bool findpath(int y, int x);
414 extern byte get_angle_to_grid[41][41];
415 extern int get_angle_to_target(int y0, int x0, int y1, int x1, int dir);
416 extern void get_grid_using_angle(int angle, int y0, int x0,
417         int *ty, int *tx);
418 extern void run_step(int dir);
419
420 /* randart.c */
421 extern errr do_randart(u32b randart_seed, bool full);
422
423 /* score.c */
424 extern void enter_score(time_t *death_time);
425 extern void show_scores(void);
426 extern void predict_score(void);
427
428
429 /* signals.c */
430 extern void signals_ignore_tstp(void);
431 extern void signals_handle_tstp(void);
432 extern void signals_init(void);
433
434 /* save.c */
435 extern bool old_save(void);
436
437 /* spells1.c */
438 extern s16b poly_r_idx(int r_idx);
439 extern void teleport_away(int m_idx, int dis);
440 extern void teleport_player(int dis);
441 extern void teleport_player_to(int ny, int nx);
442 extern void teleport_player_level(void);
443 extern void take_hit(int dam, cptr kb_str);
444 extern void acid_dam(int dam, cptr kb_str);
445 extern void elec_dam(int dam, cptr kb_str);
446 extern void fire_dam(int dam, cptr kb_str);
447 extern void cold_dam(int dam, cptr kb_str);
448 extern bool inc_stat(int stat);
449 extern bool dec_stat(int stat, int amount, bool permanent);
450 extern bool res_stat(int stat);
451 extern bool apply_disenchant(int mode);
452 extern bool project(int who, int rad, int y, int x, int dam, int typ, int flg);
453
454 /* spells2.c */
455 extern bool hp_player(int num);
456 extern bool heal_player(int perc, int min);
457 extern void warding_glyph(void);
458 extern bool do_dec_stat(int stat, bool perma);
459 extern bool do_res_stat(int stat);
460 extern bool do_inc_stat(int stat);
461 extern void identify_pack(void);
462 extern bool remove_curse(void);
463 extern bool remove_all_curse(void);
464 extern bool restore_level(void);
465 extern void self_knowledge(bool spoil);
466 extern bool lose_all_info(void);
467 extern void set_recall(void);
468 extern bool detect_traps(bool aware);
469 extern bool detect_doorstairs(bool aware);
470 extern bool detect_treasure(bool aware);
471 extern bool detect_objects_magic(bool aware);
472 extern bool detect_monsters_normal(bool aware);
473 extern bool detect_monsters_invis(bool aware);
474 extern bool detect_monsters_evil(bool aware);
475 extern bool detect_all(bool aware);
476 extern void stair_creation(void);
477 extern bool enchant(object_type *o_ptr, int n, int eflag);
478 extern bool enchant_spell(int num_hit, int num_dam, int num_ac);
479 extern void do_ident_item(int item, object_type *o_ptr);
480 extern bool ident_spell(void);
481 extern bool recharge(int num);
482 extern bool speed_monsters(void);
483 extern bool slow_monsters(void);
484 extern bool confuse_monsters(void);
485 extern bool sleep_monsters(void);
486 extern bool banish_evil(int dist);
487 extern bool turn_undead(void);
488 extern bool dispel_undead(int dam);
489 extern bool dispel_evil(int dam);
490 extern bool dispel_monsters(int dam);
491 extern void aggravate_monsters(int who);
492 extern bool banishment(void);
493 extern bool mass_banishment(void);
494 extern bool probing(void);
495 extern void destroy_area(int y1, int x1, int r, bool full);
496 extern void earthquake(int cy, int cx, int r);
497 extern void lite_room(int y1, int x1);
498 extern void unlite_room(int y1, int x1);
499 extern bool lite_area(int dam, int rad);
500 extern bool unlite_area(int dam, int rad);
501 extern bool fire_ball(int typ, int dir, int dam, int rad);
502 extern bool fire_swarm(int num, int typ, int dir, int dam, int rad);
503 extern bool fire_bolt(int typ, int dir, int dam);
504 extern bool fire_beam(int typ, int dir, int dam);
505 extern bool fire_bolt_or_beam(int prob, int typ, int dir, int dam);
506 extern bool project_los(int typ, int dam);
507 extern bool lite_line(int dir);
508 extern bool strong_lite_line(int dir);
509 extern bool drain_life(int dir, int dam);
510 extern bool wall_to_mud(int dir);
511 extern bool destroy_door(int dir);
512 extern bool disarm_trap(int dir);
513 extern bool heal_monster(int dir);
514 extern bool speed_monster(int dir);
515 extern bool slow_monster(int dir);
516 extern bool sleep_monster(int dir);
517 extern bool confuse_monster(int dir, int plev);
518 extern bool poly_monster(int dir);
519 extern bool clone_monster(int dir);
520 extern bool fear_monster(int dir, int plev);
521 extern bool teleport_monster(int dir);
522 extern bool door_creation(void);
523 extern bool trap_creation(void);
524 extern bool destroy_doors_touch(void);
525 extern bool sleep_monsters_touch(void);
526 extern bool curse_armor(void);
527 extern bool curse_weapon(void);
528 extern void brand_object(object_type *o_ptr, byte brand_type);
529 extern void brand_weapon(void);
530 extern bool brand_ammo(void);
531 extern bool brand_bolts(void);
532 extern void ring_of_power(int dir);
533
534 /* squelch.c */
535 int get_autoinscription_index(s16b k_idx);
536 const char *get_autoinscription(s16b kind_idx);
537 int apply_autoinscription(object_type *o_ptr);
538 int remove_autoinscription(s16b kind);
539 int add_autoinscription(s16b kind, cptr inscription);
540 void autoinscribe_ground(void);
541 void autoinscribe_pack(void);
542
543 bool squelch_tval(int tval);
544 bool squelch_item_ok(const object_type *o_ptr);
545 bool squelch_hide_item(object_type *o_ptr);
546 void squelch_drop(void);
547 void squelch_items(void);
548 void do_cmd_options_item(void *, cptr);
549
550 /* store.c */
551 s32b price_item(const object_type *o_ptr, bool store_buying, int qty);
552 void store_init(void);
553 void store_shuffle(int which);
554 void store_maint(int which);
555 bool store_overflow(void);
556 void do_cmd_store(void);
557
558 /* target.c */
559 bool target_able(int m_idx);
560 bool target_okay(void);
561 void target_set_monster(int m_idx);
562 void target_set_location(int y, int x);
563 bool target_set_interactive(int mode, int x, int y);
564 bool get_aim_dir(int *dp);
565 void target_get(s16b *col, s16b *row);
566 s16b target_get_monster(void);
567
568 /* trap.c */
569 extern void hit_trap(int y, int x);
570 extern void pick_trap(int y, int x);
571 extern void place_trap(int y, int x);
572
573 /* typeutils.c */
574 void display_panel(const data_panel *panel, int count,
575                    bool left_adj, const region *bounds);
576
577 /* util.c */
578 extern void text_to_ascii(char *buf, size_t len, cptr str);
579 extern void ascii_to_text(char *buf, size_t len, cptr str);
580 extern int macro_find_exact(cptr pat);
581 extern errr macro_add(cptr pat, cptr act);
582 extern errr macro_init(void);
583 extern errr macro_free(void);
584 extern errr macro_trigger_free(void);
585 extern void flush(void);
586 extern void flush_fail(void);
587 extern char inkey(void);
588 extern ui_event_data inkey_ex(void);
589 extern char anykey(void);
590 extern void bell(cptr reason);
591 extern void sound(int val);
592 extern void msg_print(cptr msg);
593 extern void msg_format(cptr fmt, ...);
594 extern void message(u16b message_type, s16b extra, cptr message);
595 extern void message_format(u16b message_type, s16b extra, cptr fmt, ...);
596 extern void message_flush(void);
597 extern void screen_save(void);
598 extern void screen_load(void);
599 extern void c_put_str(byte attr, cptr str, int row, int col);
600 extern void put_str(cptr str, int row, int col);
601 extern void c_prt(byte attr, cptr str, int row, int col);
602 extern void prt(cptr str, int row, int col);
603 extern void text_out_to_file(byte attr, cptr str);
604 extern void text_out_to_screen(byte a, cptr str);
605 extern void text_out(const char *fmt, ...);
606 extern void text_out_c(byte a, const char *fmt, ...);
607 extern void text_out_e(const char *fmt, ...);
608 extern void clear_from(int row);
609 extern bool askfor_aux_keypress(char *buf, size_t buflen, size_t *curs, size_t *len, char keypress, bool firsttime);
610 extern bool askfor_aux(char *buf, size_t len, bool keypress_h(char *, size_t, size_t *, size_t *, char, bool));
611 extern bool get_string(cptr prompt, char *buf, size_t len);
612 extern s16b get_quantity(cptr prompt, int max);
613 extern bool get_check(cptr prompt);
614 extern bool get_com(cptr prompt, char *command);
615 extern bool get_com_ex(cptr prompt, ui_event_data *command);
616 extern void grid_data_as_text(grid_data *g, byte *ap, char *cp, byte *tap, char *tcp);
617 extern void pause_line(int row);
618 extern void request_command(void);
619 extern bool is_a_vowel(int ch);
620 extern int color_char_to_attr(char c);
621 extern int color_text_to_attr(cptr name);
622 extern cptr attr_to_text(byte a);
623
624 #ifdef SUPPORT_GAMMA
625 extern void build_gamma_table(int gamma);
626 extern byte gamma_table[256];
627 #endif /* SUPPORT_GAMMA */
628
629 /* util.c */
630 extern void repeat_push(int what);
631 extern bool repeat_pull(int *what);
632 extern void repeat_clear(void);
633 extern void repeat_check(void);
634
635 /* x-spell.c */
636 extern int get_spell_index(const object_type *o_ptr, int index);
637 extern cptr get_spell_name(int tval, int index);
638 extern void get_spell_info(int tval, int index, char *buf, size_t len);
639 extern bool cast_spell(int tval, int index);
640
641 /* xtra1.c */
642 s16b modify_stat_value(int value, int amount);
643 int calc_blows(const object_type *o_ptr);
644 void notice_stuff(void);
645 void update_stuff(void);
646 void redraw_stuff(void);
647 void handle_stuff(void);
648
649 /* xtra2.c */
650 bool set_timed(int idx, int v);
651 bool inc_timed(int idx, int v);
652 bool dec_timed(int idx, int v);
653 bool clear_timed(int idx);
654 bool set_food(int v);
655 void check_experience(void);
656 void gain_exp(s32b amount);
657 void lose_exp(s32b amount);
658 void monster_death(int m_idx);
659 bool mon_take_hit(int m_idx, int dam, bool *fear, cptr note);
660 bool modify_panel(term *t, int wy, int wx);
661 bool adjust_panel(int y, int x);
662 bool change_panel(int dir);
663 void verify_panel