1 /* File: externs.h */ 2 3 /* Purpose: extern declarations (variables and functions) */ 4 5 /* 6 * Note that some files have their own header files 7 * (z-virt.h, z-util.h, z-form.h, term.h, random.h) 8 */ 9 10 11 /* 12 * Automatically generated "variable" declarations 13 */ 14 15 /* tables.c */ 16 extern const s16b ddd[9]; 17 extern const s16b ddx[10]; 18 extern const s16b ddy[10]; 19 extern const s16b ddx_ddd[9]; 20 extern const s16b ddy_ddd[9]; 21 extern const s16b cdd[8]; 22 extern const s16b ddx_cdd[8]; 23 extern const s16b ddy_cdd[8]; 24 extern const char hexsym[16]; 25 extern cptr color_char; 26 extern const byte adj_mag_study[]; 27 extern const byte adj_mag_mana[]; 28 extern const byte adj_mag_fail[]; 29 extern const byte adj_mag_stat[]; 30 extern const byte adj_chr_gold[]; 31 extern const byte adj_int_dev[]; 32 extern const byte adj_wis_sav[]; 33 extern const byte adj_dex_dis[]; 34 extern const byte adj_int_dis[]; 35 extern const byte adj_dex_ta[]; 36 extern const byte adj_str_td[]; 37 extern const byte adj_dex_th[]; 38 extern const byte adj_str_wgt[]; 39 extern const byte adj_str_hold[]; 40 extern const byte adj_str_dig[]; 41 extern const byte adj_str_blow[]; 42 extern const byte adj_dex_blow[]; 43 extern const byte adj_dex_safe[]; 44 extern const byte adj_con_fix[]; 45 extern const byte adj_con_mhp[]; 46 extern const byte blows_table[12][12]; 47 extern cptr owner_names[]; 48 extern cptr owner_suffix[]; 49 extern const byte extract_energy[200]; 50 extern const s32b player_exp[PY_MAX_LEVEL]; 51 extern player_sex sex_info[MAX_SEXES]; 52 extern player_race race_info[MAX_RACES]; 53 extern player_class class_info[MAX_CLASS]; 54 extern player_magic magic_info[MAX_CLASS]; 55 extern const u32b fake_spell_flags[4]; 56 extern const byte realm_choices1[]; 57 extern const byte realm_choices2[]; 58 extern cptr realm_names[]; 59 extern cptr spell_names[7][32]; 60 extern const byte chest_traps[64]; 61 extern cptr player_title[MAX_CLASS][PY_MAX_LEVEL / 5]; 62 extern cptr color_names[16]; 63 extern cptr color_seq[16]; 64 extern cptr msg_names[MSG_MAX]; 65 extern cptr stat_names[A_MAX]; 66 extern cptr stat_names_reduced[A_MAX]; 67 extern cptr window_flag_desc[WINDOW_CHOICE_MAX]; 68 extern const int birth_options[OPT_BIRTH + 1]; 69 extern const int server_options[OPT_BIRTH + 1]; 70 extern cptr chaos_patrons[MAX_PATRON]; 71 extern const int chaos_stats[MAX_PATRON]; 72 extern const int chaos_rewards[MAX_PATRON][20]; 73 extern const martial_arts ma_blows[MAX_MA]; 74 extern cptr game_inscriptions[FEEL_MAX]; 75 extern cptr silly_attacks[MAX_SILLY_ATTACK]; 76 extern const rbm_type rbm_info[MAX_RBM]; 77 extern const mutation_type mutations[MUT_SETS_MAX * MUT_PER_SET]; 78 extern const mutation_type race_powers[MAX_RACE_POWERS]; 79 80 /* variable.c */ 81 extern cptr copyright[5]; 82 extern byte version_major; 83 extern byte version_minor; 84 extern byte version_patch; 85 extern byte version_extra; 86 extern byte sf_extra; 87 extern u32b sf_version; 88 extern u32b sf_xtra; 89 extern byte z_major; 90 extern byte z_minor; 91 extern byte z_patch; 92 extern u32b sf_when; 93 extern u16b sf_lives; 94 extern u16b sf_saves; 95 extern bool arg_fiddle; 96 extern bool arg_wizard; 97 extern bool arg_sound; 98 extern byte arg_graphics; 99 extern bool arg_bigtile; 100 extern bool arg_monochrome; 101 extern bool arg_force_original; 102 extern bool arg_force_roguelike; 103 extern bool character_generated; 104 extern bool character_dungeon; 105 extern bool character_loaded; 106 extern bool character_saved; 107 extern bool character_icky; 108 extern bool character_xtra; 109 extern u32b seed_flavor; 110 extern bool msg_flag; 111 extern s16b num_repro; 112 extern s32b turn; 113 extern s32b old_turn; 114 extern bool use_sound; 115 extern byte use_graphics; 116 extern bool use_bigtile; 117 extern bool use_transparency; 118 extern s16b signal_count; 119 extern s16b o_max; 120 extern s16b o_cnt; 121 extern s16b m_max; 122 extern s16b m_cnt; 123 extern s16b q_max; 124 extern s16b fld_max; 125 extern s16b fld_cnt; 126 extern s16b rg_max; 127 extern s16b rg_cnt; 128 extern s16b hack_m_idx; 129 extern int total_friends; 130 extern s32b total_friend_levels; 131 extern s32b friend_align; 132 extern s16b store_cache_num; 133 extern store_type **store_cache; 134 extern char summon_kin_type; 135 extern bool track_follow; 136 extern bool track_target; 137 extern byte hitpoint_warn; 138 extern byte delay_factor; 139 extern s16b autosave_freq; 140 extern byte autosave_t; 141 extern byte autosave_l; 142 extern bool cheat_peek; 143 extern bool cheat_hear; 144 extern bool cheat_room; 145 extern bool cheat_xtra; 146 extern bool cheat_know; 147 extern bool cheat_live; 148 extern bool fake_monochrome; 149 extern byte *mp_a; 150 extern char *mp_c; 151 extern byte *mp_ta; 152 extern char *mp_tc; 153 extern int player_uid; 154 extern int player_egid; 155 extern char player_name[32]; 156 extern char player_base[32]; 157 extern char savefile[1024]; 158 extern s16b view_n; 159 extern s16b view_y[VIEW_MAX]; 160 extern s16b view_x[VIEW_MAX]; 161 extern s16b temp_n; 162 extern s16b temp_y[TEMP_MAX]; 163 extern s16b temp_x[TEMP_MAX]; 164 extern s16b lite_n; 165 extern s16b lite_y[LITE_MAX]; 166 extern s16b lite_x[LITE_MAX]; 167 extern s16b macro__num; 168 extern cptr *macro__pat; 169 extern cptr *macro__act; 170 extern bool *macro__cmd; 171 extern char *macro__buf; 172 extern option_type option_info[OPT_MAX]; 173 extern u32b window_flag[ANGBAND_TERM_MAX]; 174 extern u32b window_mask[ANGBAND_TERM_MAX]; 175 extern u32b option_mask[ANGBAND_TERM_MAX]; 176 extern term *angband_term[ANGBAND_TERM_MAX]; 177 extern char angband_term_name[ANGBAND_TERM_MAX][16]; 178 extern byte angband_color_table[256][4]; 179 extern char angband_sound_name[SOUND_MAX][16]; 180 extern cave_type *(*area_aux) (int, int); 181 extern pcave_type *(*parea_aux) (int, int); 182 extern u16b *temp_block[WILD_BLOCK_SIZE + 1]; 183 extern blk_ptr *wild_cache; 184 extern int **wild_refcount; 185 extern u32b wc_cnt; 186 extern blk_ptr **wild_grid; 187 extern wild_type **wild; 188 extern u32b wild_seed; 189 extern wild_gen_data_type *wild_gen_data; 190 extern wild_choice_tree_type *wild_choice_tree; 191 extern bool (*in_bounds) (int, int); 192 extern bool (*in_bounds2) (int, int); 193 extern bool (*in_boundsp) (int, int); 194 extern region_type cave_data; 195 extern int cur_region; 196 extern maxima *z_info; 197 extern object_type *o_list; 198 extern monster_type *m_list; 199 extern field_type *fld_list; 200 extern region_type *rg_list; 201 extern region_info *ri_list; 202 extern u16b place_count; 203 extern place_type *place; 204 extern s16b alloc_kind_size; 205 extern alloc_entry *alloc_kind_table; 206 extern s16b alloc_race_size; 207 extern alloc_entry *alloc_race_table; 208 extern s16b alloc_ego_size; 209 extern alloc_entry *alloc_ego_table; 210 extern byte misc_to_attr[256]; 211 extern char misc_to_char[256]; 212 extern byte tval_to_attr[128]; 213 extern char tval_to_char[128]; 214 extern cptr keymap_act[KEYMAP_MODES][256]; 215 extern player_type *p_ptr; 216 extern player_sex *sp_ptr; 217 extern player_race *rp_ptr; 218 extern player_class *cp_ptr; 219 extern player_magic *mp_ptr; 220 extern server_type *svr_ptr; 221 extern vault_type *v_info; 222 extern char *v_name; 223 extern char *v_text; 224 extern feature_type *f_info; 225 extern char *f_name; 226 extern char *f_text; 227 extern object_kind *k_info; 228 extern char *k_name; 229 extern char *k_text; 230 extern artifact_type *a_info; 231 extern char *a_name; 232 extern char *a_text; 233 extern ego_item_type *e_info; 234 extern char *e_name; 235 extern char *e_text; 236 extern monster_race *r_info; 237 extern char *r_name; 238 extern char *r_text; 239 extern field_thaum *t_info; 240 extern quest_type *quest; 241 extern cptr ANGBAND_SYS; 242 extern cptr ANGBAND_DIR; 243 extern cptr ANGBAND_DIR_APEX; 244 extern cptr ANGBAND_DIR_BONE; 245 extern cptr ANGBAND_DIR_DATA; 246 extern cptr ANGBAND_DIR_EDIT; 247 extern cptr ANGBAND_DIR_SCRIPT; 248 extern cptr ANGBAND_DIR_FILE; 249 extern cptr ANGBAND_DIR_HELP; 250 extern cptr ANGBAND_DIR_INFO; 251 extern cptr ANGBAND_DIR_PREF; 252 extern cptr ANGBAND_DIR_SAVE; 253 extern cptr ANGBAND_DIR_USER; 254 extern cptr ANGBAND_DIR_XTRA; 255 extern bool item_tester_full; 256 extern byte item_tester_tval; 257 extern bool (*item_tester_hook) (const object_type *o_ptr); 258 extern bool (*ang_sort_comp) (const vptr u, const vptr v, int a, int b); 259 extern void (*ang_sort_swap) (const vptr u, const vptr v, int a, int b); 260 extern s32b max_wild; 261 extern cptr gf_color[MAX_GF]; 262 extern int owner_names_max; 263 extern int owner_suffix_max; 264 265 /* birth.c */ 266 extern void player_birth(void); 267 268 /* cave.c */ 269 extern int distance(int x1, int y1, int x2, int y2); 270 extern bool is_build(const cave_type *c_ptr); 271 extern bool is_trap(const cave_type *c_ptr); 272 extern bool is_visible_trap(const cave_type *c_ptr); 273 extern bool los(int x1, int y1, int x2, int y2); 274 extern void mmove_init(int x1, int y1, int x2, int y2); 275 extern void mmove(int *x, int *y, int x1, int y1); 276 extern bool projectable(int x1, int y1, int x2, int y2); 277 extern sint project_path(coord *gp, int x1, int y1, int x2, int y2, u16b flg); 278 extern bool in_ball_range(int x1, int y1, int x2, int y2); 279 extern bool in_disintegration_range(int x1, int y1, int x2, int y2); 280 extern void scatter(int *xp, int *yp, int x, int y, int d); 281 extern bool player_can_see_bold(int x, int y); 282 extern bool cave_valid_grid(const cave_type *c_ptr); 283 extern bool no_lite(void); 284 extern void move_cursor_relative(int col, int row); 285 extern void print_rel(char c, byte a, int x, int y); 286 extern void note_spot(int x, int y); 287 extern void do_cmd_view_map(void); 288 extern void forget_view(void); 289 extern errr vinfo_init(void); 290 extern void update_view(void); 291 extern void update_mon_lite(void); 292 extern void clear_mon_lite(void); 293 extern void forget_flow(void); 294 extern void update_flow(void); 295 extern void map_area(void); 296 extern void wiz_lite(void); 297 extern void change_wiz_lite(void); 298 extern void wiz_dark(void); 299 extern void cave_set_feat(int x, int y, int feat); 300 301 /* cmd1.c */ 302 extern int deadliness_calc(int attack_power); 303 extern long avg_dam(int attack_power, int dice_num, int dice_sides); 304 extern bool test_hit_fire(int chance, int ac, int vis); 305 extern bool test_hit_norm(int chance, int ac, int vis); 306 extern int tot_dam_aux(const object_type *o_ptr, const monster_type *m_ptr); 307 extern void search(void); 308 extern bool auto_pickup_okay(const object_type *o_ptr); 309 extern void py_pickup_aux(object_type *o_ptr); 310 extern void carry(int pickup); 311 extern void py_attack(int x, int y); 312 extern void move_player(int dir, int do_pickup); 313 extern void run_step(int dir); 314 315 /* cmd2.c */ 316 extern void do_cmd_go_up(void); 317 extern void do_cmd_go_down(void); 318 extern void do_cmd_search(void); 319 extern void do_cmd_toggle_search(void); 320 extern int count_traps(int *x, int *y, bool under); 321 extern void do_cmd_open(void); 322 extern void do_cmd_close(void); 323 extern void do_cmd_tunnel(void); 324 extern void do_cmd_disarm(void); 325 extern void do_cmd_alter(void); 326 extern void do_cmd_spike(void); 327 extern void do_cmd_walk(int pickup); 328 extern void do_cmd_stay(int pickup); 329 extern void do_cmd_run(void); 330 extern void do_cmd_rest(void); 331 extern void do_cmd_fire(void); 332 extern void do_cmd_fire_aux(int mult, object_type *o_ptr, const object_type *j_ptr); 333 extern void do_cmd_throw(void); 334 extern void do_cmd_throw_aux(int mult); 335 extern bool do_cmd_open_aux(int x, int y); 336 extern bool do_cmd_disarm_aux(cave_type *c_ptr, int dir); 337 338 /* cmd3.c */ 339 extern void do_cmd_inven(void); 340 extern void do_cmd_equip(void); 341 extern void do_cmd_wield(void); 342 extern void do_cmd_takeoff(void); 343 extern void do_cmd_drop(void); 344 extern bool destroy_item_aux(object_type *o_ptr, int amt); 345 extern void do_cmd_destroy(void); 346 extern void do_cmd_observe(void); 347 extern void do_cmd_uninscribe(void); 348 extern void do_cmd_inscribe(void); 349 extern void do_cmd_refill(void); 350 extern void do_cmd_target(void); 351 extern void do_cmd_look(void); 352 extern void do_cmd_locate(void); 353 extern bool ang_sort_comp_hook(const vptr u, const vptr v, int a, int b); 354 extern void ang_sort_swap_hook(const vptr u, const vptr v, int a, int b); 355 extern void do_cmd_query_symbol(void); 356 extern bool research_mon(void); 357 358 /* cmd4.c */ 359 extern void do_cmd_redraw(void); 360 extern void resize_map(void); 361 extern void redraw_window(void); 362 extern void do_cmd_messages(void); 363 extern void init_options(byte flags); 364 extern void do_cmd_options(byte flags); 365 extern void do_cmd_pref(void); 366 extern errr macro_dump(cptr fname); 367 extern errr keymap_dump(cptr fname); 368 extern void do_cmd_macros(void); 369 extern void do_cmd_visuals(void); 370 extern void do_cmd_colors(void); 371 extern void do_cmd_note(void); 372 extern void do_cmd_version(void); 373 extern void do_cmd_feeling(void); 374 extern void do_cmd_load_screen(void); 375 extern void do_cmd_save_screen(void); 376 extern bool do_cmd_knowledge_pets(int dummy); 377 extern void dump_town_info(FILE *fff, int town, bool ignore); 378 extern void do_cmd_knowledge(void); 379 extern void plural_aux(char *Name); 380 extern void do_cmd_checkquest(void); 381 extern void do_cmd_time(void); 382 383 /* cmd5.c */ 384 extern void do_cmd_browse(void); 385 extern void do_cmd_browse_aux(const object_type *o_ptr); 386 extern void do_cmd_study(void); 387 extern void do_cmd_cast(void); 388 extern void do_cmd_pray(void); 389 extern void do_cmd_pet(void); 390 391 /* cmd6.c */ 392 extern void do_cmd_eat_food(void); 393 extern void do_cmd_quaff_potion(void); 394 extern void do_cmd_read_scroll(void); 395 extern void do_cmd_aim_wand(void); 396 extern void do_cmd_use_staff(void); 397 extern void do_cmd_zap_rod(void); 398 extern void do_cmd_activate(void); 399 extern void do_cmd_rerate(void); 400 extern void ring_of_power(int dir); 401 402 /* dungeon.c */ 403 extern void sense_item(object_type *o_ptr, bool heavy, bool wield, bool msg); 404 extern void notice_lite_change(object_type *o_ptr); 405 extern bool psychometry(void); 406 extern void play_game(bool new_game); 407 408 /* files.c */ 409 extern s16b tokenize(char *buf, s16b num, char **tokens, int mode); 410 extern void display_player(int mode); 411 extern void do_cmd_character(void); 412 extern errr file_character(cptr name, bool full); 413 extern errr process_pref_file_command(char *buf); 414 extern errr process_pref_file(cptr fmt, ...); 415 extern void print_equippy(void); 416 extern errr check_load_init(void); 417 extern void likert(char *buf, uint max, cptr fmt, va_list *vp); 418 extern void player_flags(object_flags *of_ptr); 419 extern bool show_file(cptr name, cptr what, int line, int mode); 420 extern void do_cmd_help(void); 421 extern void process_player_name(bool sf); 422 extern void change_player_name(void); 423 extern void do_cmd_suicide(void); 424 extern void do_cmd_save_game(int is_autosave); 425 extern void do_cmd_save_and_exit(void); 426 extern errr get_rnd_line(cptr file_name, int entry, char *output); 427 extern void get_character_name(void); 428 429 /* generate.c */ 430 extern void place_closed_door(int x, int y); 431 extern void map_panel_size(void); 432 extern void inc_rating(int delta_rating); 433 extern void set_special(void); 434 extern void del_region(int rg_idx); 435 extern int unref_region(int rg_idx); 436 extern void incref_region(int rg_idx); 437 extern void set_region(int rg_idx); 438 extern void wipe_rg_list(void); 439 extern void create_region_aux(s16b *region, int x, int y, byte flags); 440 extern void generate_cave(void); 441 442 /* init1.c */ 443 extern errr init_w_info_txt(FILE *fp, char *buf); 444 extern errr init_t_info_txt(FILE *fp, char *buf); 445 446 /* init2.c */ 447 extern errr init_w_info(void); 448 extern errr init_t_info(void); 449 extern void init_file_paths(char *path); 450 extern void init_angband(void); 451 extern void cleanup_angband(void); 452 extern errr check_modification_date(int fd, cptr template_file); 453 454 /* load.c */ 455 extern errr rd_savefile_new(void); 456 457 /* melee1.c */ 458 /* melee2.c */ 459 extern void flee_message(cptr m_name, u16b r_idx); 460 extern bool make_attack_normal(int m_idx); 461 extern bool make_attack_spell(int m_idx); 462 extern void process_monsters(int min_energy); 463 extern void reset_monsters(void); 464 extern void curse_equipment(int chance, int heavy_chance); 465 extern void mon_take_hit_mon(int m_idx, int dam, bool *fear, cptr note); 466 467 /* monster1.c */ 468 extern monster_race *monst_race(int r_idx); 469 extern cptr mon_race_name(const monster_race *r_ptr); 470 extern bool mon_name_cont(const monster_race *r_ptr, cptr str); 471 extern void roff_mon_top(int r_idx); 472 extern void screen_roff_mon(int r_idx, int remember); 473 extern void display_roff_mon(int r_idx); 474 extern void display_visible(void); 475 476 /* monster2.c */ 477 extern cptr horror_desc[MAX_SAN_HORROR]; 478 extern cptr funny_desc[MAX_SAN_FUNNY]; 479 extern cptr funny_comments[MAX_SAN_COMMENT]; 480 extern void delete_monster_idx(int i); 481 extern void delete_monster(int x, int y); 482 extern void compact_monsters(int size); 483 extern void wipe_m_list(void); 484 extern void wipe_monsters(int rg_idx); 485 extern s16b m_pop(void); 486 extern void get_mon_num_prep(monster_hook_type monster_hook); 487 extern s16b get_mon_num(int level); 488 extern s16b get_filter_mon_num(int level, monster_hook_type monster_hook); 489 extern void monster_desc(char *desc, const monster_type *m_ptr, int mode, 490 int max); 491 extern void monster_fmt(char *buf, uint max, cptr fmt, va_list *vp); 492 extern void lore_do_probe(int m_idx); 493 extern void lore_treasure(int m_idx, int num_item, int num_gold); 494 extern void update_mon_vis(u16b r_idx, int increment); 495 extern void update_mon(int m_idx, bool full); 496 extern void update_monsters(bool full); 497 extern bool test_monster_square(cave_type *c_ptr, monster_race *r_ptr); 498 extern monster_type *place_monster_aux(int x, int y, int r_idx, bool slp, bool grp, 499 bool friendly, bool pet, bool summon); 500 extern bool place_monster(int x, int y, bool slp, bool grp, int deltalevel); 501 extern bool alloc_horde(int x, int y); 502 extern bool alloc_monster(int dis, bool slp, int delta_level); 503 extern bool summon_specific(int who, int x1, int y1, int lev, int type, 504 bool group, bool friendly, bool pet); 505 extern monster_type *summon_named_creature(int x1, int y1, int r_idx, bool slp, 506 bool group_ok, bool pet); 507 extern monster_type *summon_cloned_creature(int x1, int y1, int r_idx, bool pet); 508 extern monster_type *multiply_monster(int m_idx, bool clone, bool friendly, bool pet); 509 extern void update_smart_learn(int m_idx, int what); 510 extern monster_type *place_monster_one(int x, int y, int r_idx, bool slp, bool friendly, 511 bool pet); 512 513 /* monster3.c (currently in monster1.c) */ 514 extern void set_friendly(monster_type *m_ptr); 515 extern void set_pet(monster_type *m_ptr); 516 extern void set_hostile(monster_type *m_ptr); 517 extern void anger_monster(monster_type *m_ptr); 518 extern bool are_enemies(const monster_type *m_ptr1, const monster_type *m_ptr2); 519 extern bool monster_living(const monster_race *r_ptr); 520 extern void change_shimmer(void); 521 extern void change_repair(void); 522 523 /* flavor.c */ 524 extern void get_table_name(char *out_string, bool quotes); 525 extern void flavor_init(void); 526 extern void object_desc(char *buf, const object_type *o_ptr, int pref, 527 int mode, int size); 528 extern void object_fmt(char *buf, uint max, cptr fmt, va_list *vp); 529 extern void object_desc_store(char *buf, const object_type *o_ptr, int pref, 530 int mode, int size); 531 extern void object_store_fmt(char *buf, uint max, cptr fmt, va_list *vp); 532 533 /* object1.c */ 534 /* object2.c */ 535 536 extern void reset_visuals(void); 537 extern void object_flags_known(const object_type *o_ptr, object_flags *of_ptr); 538 extern void identify_fully_aux(const object_type *o_ptr); 539 extern s16b wield_slot(const object_type *o_ptr); 540 extern cptr mention_use(int i); 541 extern cptr describe_use(int i); 542 extern bool item_tester_hook_weapon(const object_type *o_ptr); 543 extern bool item_tester_hook_melee_weapon(const object_type *o_ptr); 544 extern bool item_tester_hook_nonsword(const object_type *o_ptr); 545 extern bool item_tester_hook_ammo(const object_type *o_ptr); 546 extern bool item_tester_hook_fletcher(const object_type *o_ptr); 547 extern bool item_tester_hook_armour(const object_type *o_ptr); 548 extern bool item_tester_hook_armour_no_acid(const object_type *o_ptr); 549 extern bool item_tester_hook_soft_armour(const object_type *o_ptr); 550 extern bool item_tester_hook_hard_armour(const object_type *o_ptr); 551 extern bool item_tester_hook_helm(const object_type *o_ptr); 552 extern bool item_tester_hook_pure_hard_armour(const object_type *o_ptr); 553 extern bool item_tester_hook_weapon_armour(const object_type *o_ptr); 554 extern bool item_tester_hook_wear(const object_type *o_ptr); 555 extern bool item_tester_hook_recharge(const object_type *o_ptr); 556 extern bool item_tester_hook_jewel(const object_type *o_ptr); 557 extern bool item_tester_hook_tval(const object_type *o_ptr, byte tval); 558 extern bool item_tester_hook_is_blessed(const object_type *o_ptr); 559 extern bool item_tester_hook_is_good(const object_type *o_ptr); 560 extern bool item_tester_hook_is_great(const object_type *o_ptr); 561 extern bool item_tester_hook_is_book(const object_type *o_ptr); 562 extern bool item_tester_okay(const object_type *o_ptr); 563 extern void display_inven(void); 564 extern void display_equip(void); 565 extern void show_list(s16b o_list_ptr, bool store); 566 extern void show_equip(bool store); 567 extern void toggle_inven_equip(void); 568 extern object_type *get_item(cptr pmt, cptr str, int mode); 569 extern void delete_held_object(s16b *o_idx_ptr, object_type *o_ptr); 570 extern void delete_dungeon_object(object_type *o_ptr); 571 extern void delete_object(int x, int y); 572 extern void delete_object_list(s16b *o_idx_ptr); 573 extern void drop_object_list(s16b *o_idx_ptr, int x, int y); 574 extern void compact_objects(int size); 575 extern void wipe_o_list(void); 576 extern void wipe_objects(int rg_idx); 577 extern object_type *add_object_list(s16b *o_idx_ptr, object_type *o_ptr); 578 extern void move_object(s16b *tgt_list_ptr, s16b *cur_list_ptr, 579 object_type *o_ptr); 580 extern void swap_objects(object_type *o1_ptr, object_type *o2_ptr); 581 extern void get_obj_num_prep(object_hook_type object_hook); 582 extern s16b get_obj_num(int level, int min_level); 583 extern void object_known(object_type *o_ptr); 584 extern void object_aware(object_type *o_ptr); 585 extern void object_tried(object_type *o_ptr); 586 extern void object_mental(object_type *o_ptr); 587 extern s32b flag_cost(const object_type *o_ptr, int plusses); 588 extern s32b object_value(const object_type *o_ptr); 589 extern s32b object_value_real(const object_type *o_ptr); 590 extern void distribute_charges(object_type *o_ptr, object_type *q_ptr, int amt); 591 extern void reduce_charges(object_type *o_ptr, int amt); 592 extern bool object_similar(const object_type *o_ptr, const object_type *j_ptr); 593 extern void object_absorb(object_type *o_ptr, const object_type *j_ptr); 594 extern bool object_equal(const object_type *o_ptr, const object_type *j_ptr); 595 extern s16b lookup_kind(int tval, int sval); 596 extern s16b *look_up_list(object_type *o_ptr); 597 extern void object_wipe(object_type *o_ptr); 598 extern object_type *object_prep(int k_idx); 599 extern object_type *object_dup(const object_type *o_ptr); 600 extern void add_ego_flags(object_type *o_ptr, byte ego); 601 extern void add_ego_power(int power, object_type *o_ptr); 602 extern s16b m_bonus(int max, int level); 603 extern void apply_magic(object_type *o_ptr, int lev, int lev_dif, byte flags); 604 extern void init_match_hook(byte tval, byte sval); 605 extern byte kind_is_match(int k_idx); 606 extern void init_match_theme(obj_theme theme); 607 extern byte kind_is_theme(int k_idx); 608 extern object_type *make_object(int level, int delta_level, obj_theme *theme); 609 extern void place_specific_object(int x, int y, int level, int k_idx); 610 extern void place_object(int x, int y, bool good, bool great, int delta_level); 611 extern object_type *make_gold(int level, int coin_type); 612 extern void place_gold(int x, int y); 613 extern void drop_near(object_type *o_ptr, int chance, int x, int y); 614 extern void acquirement(int x1, int y1, int num, bool great, bool known); 615 extern object_type *get_list_item(s16b list_start, int number); 616 extern int get_item_position(s16b list_start, object_type *o_ptr); 617 extern int get_list_length(s16b list_start); 618 extern bool floor_item(object_type *o_ptr); 619 extern bool player_item(object_type *o_ptr); 620 extern void item_charges(object_type *o_ptr); 621 extern void item_describe(object_type *o_ptr); 622 extern void item_describe_roff(object_type *o_ptr); 623 extern void item_describe_faux(object_type *o_ptr); 624 extern object_type *item_split(object_type *o_ptr, int num); 625 extern void item_increase(object_type *o_ptr, int num); 626 extern void item_increase_silent(object_type *o_ptr, int num); 627 extern bool inven_carry_okay(const object_type *o_ptr); 628 extern object_type *reorder_objects_aux(object_type *q_ptr, 629 object_comp comp_func, u16b o_idx); 630 extern object_type *inven_carry(object_type *o_ptr); 631 extern object_type *inven_takeoff(object_type *o_ptr); 632 extern void inven_drop(object_type *o_ptr, int amt); 633 extern cptr item_activation(const object_type *o_ptr); 634 extern void combine_pack(void); 635 extern void reorder_pack(void); 636 extern object_type *combine_pack_watch(object_type *o_ptr); 637 extern object_type *reorder_pack_watch(object_type *o_ptr); 638 extern bool can_player_destroy_object(object_type *o_ptr); 639 extern void display_koff(int k_idx); 640 extern object_type *test_floor(int *num, cave_type *c_ptr, int mode); 641 extern void show_floor(int x, int y); 642 643 /* racial.c */ 644 extern bool racial_aux(s16b min_level, int cost, int use_stat, int difficulty); 645 extern void do_cmd_racial_power(void); 646 647 /* save.c */ 648 extern bool save_player(void); 649 extern bool load_player(void); 650 651 /* spells1.c */ 652 extern void take_hit(int damage, cptr kb_str); 653 extern int dist_to_line(int x, int y, int x1, int y1, int x2, int y2); 654 extern bool project(int who, int rad, int x, int y, int dam, int typ, u16b flg); 655 656 /* spells2.c */ 657 extern void message_pain(int m_idx, int dam); 658 extern void self_knowledge(void); 659 extern bool detect_traps(bool ident); 660 extern void create_closed_door(int x, int y); 661 extern bool detect_doors(void); 662 extern bool detect_stairs(void); 663 extern bool detect_treasure(void); 664 extern bool detect_objects_gold(void); 665 extern bool detect_objects_normal(void); 666 extern bool detect_objects_magic(void); 667 extern bool detect_monsters_normal(void); 668 extern bool detect_monsters_invis(void); 669 extern bool detect_monsters_evil(void); 670 extern bool detect_monsters_xxx(u32b match_flag); 671 extern bool detect_monsters_string(cptr match); 672 extern bool detect_monsters_nonliving(void); 673 extern bool detect_monsters_living(void); 674 extern bool detect_all(void); 675 extern bool wall_stone(void); 676 extern bool speed_monsters(void); 677 extern bool slow_monsters(void); 678 extern bool sleep_monsters(void); 679 extern void aggravate_monsters(int who); 680 extern bool genocide(int player_cast); 681 extern bool mass_genocide(int player_cast); 682 extern bool probing(void); 683 extern bool banish_evil(int dist); 684 extern bool dispel_evil(int dam); 685 extern bool dispel_good(int dam); 686 extern bool dispel_undead(int dam); 687 extern bool dispel_monsters(int dam); 688 extern bool dispel_living(int dam); 689 extern bool dispel_demons(int dam); 690 extern bool raise_dead(int y, int x, bool pet); 691 extern bool turn_undead(void); 692 extern bool destroy_area(int x1, int y1, int r); 693 extern bool earthquake(int cx, int cy, int r); 694 extern void lite_room(int x1, int y1); 695 extern void unlite_room(int x1, int y1); 696 extern bool lite_area(int dam, int rad); 697 extern bool unlite_area(int dam, int rad); 698 extern bool fire_ball(int typ, int dir, int dam, int rad); 699 extern bool fire_bolt(int typ, int dir, int dam); 700 extern void call_chaos(void); 701 extern bool fire_beam(int typ, int dir, int dam); 702 extern bool fire_bolt_or_beam(int prob, int typ, int dir, int dam); 703 extern bool lite_line(int dir, int dam); 704 extern bool drain_life(int dir, int dam); 705 extern bool drain_gain_life(int dor, int dam); 706 extern bool death_ray(int dir, int plev); 707 extern bool wall_to_mud(int dir); 708 extern bool destroy_door(int dir); 709 extern bool disarm_trap(int dir); 710 extern bool wizard_lock(int dir); 711 extern bool heal_monster(int dir); 712 extern bool speed_monster(int dir); 713 extern bool slow_monster(int dir); 714 extern bool sleep_monster(int dir); 715 extern bool stasis_monster(int dir); /* Like sleep, affects undead as well */ 716 extern bool confuse_monster(int dir, int plev); 717 extern bool stun_monster(int dir, int plev); 718 extern bool fear_monster(int dir, int plev); 719 extern bool poly_monster(int dir); 720 extern bool clone_monster(int dir); 721 extern bool teleport_monster(int dir); 722 extern bool door_creation(void); 723 extern bool trap_creation(void); 724 extern bool glyph_creation(void); 725 extern bool destroy_doors_touch(void); 726 extern bool sleep_monsters_touch(void); 727 extern bool activate_ty_curse(bool stop_ty, int *count); 728 extern int activate_hi_summon(void); 729 extern int summon_cyber(int who, int x, int y); 730 extern void wall_breaker(void); 731 extern bool confuse_monsters(int dam); 732 extern bool charm_monsters(int dam); 733 extern bool charm_animals(int dam); 734 extern bool stun_monsters(int dam); 735 extern bool stasis_monsters(int dam); 736 extern bool banish_monsters(int dist); 737 extern bool turn_monsters(int dam); 738 extern bool turn_evil(int dam); 739 extern bool deathray_monsters(void); 740 extern bool charm_monster(int dir, int plev); 741 extern bool control_one_undead(int dir, int plev); 742 extern bool charm_animal(int dir, int plev); 743 extern bool starlite(void); 744 extern bool scatter_ball(int num, int typ, int dam, int rad); 745 extern void create_food(void); 746 extern void whirlwind_attack(void); 747 extern bool mindblast_monsters(int dam); 748 extern void report_magics(void); 749 extern bool teleport_swap(int dir); 750 extern bool project_hook(int typ, int dir, int dam, u16b flg); 751 extern bool project_hack(int typ, int dam); 752 753 /* spells3.c */ 754 extern bool teleport_away(int m_idx, int dis); 755 extern void teleport_to_player(int m_idx); 756 extern void teleport_player(int dis); 757 extern void teleport_player_to(int nx, int ny); 758 extern void teleport_player_level(void); 759 extern bool check_down_wild(void); 760 extern void recall_player(int turns); 761 extern void word_of_recall(void); 762 extern bool apply_disenchant(void); 763 extern void mutate_player(void); 764 extern void apply_nexus(const monster_type *m_ptr); 765 extern void phlogiston(void); 766 extern void brand_weapon(int brand_type); 767 extern void call_the_(void); 768 extern void fetch(int dir, int wgt, bool require_los); 769 extern void alter_reality(void); 770 extern bool warding_glyph(void); 771 extern bool explosive_rune(void); 772 extern void identify_pack(void); 773 extern bool remove_curse(void); 774 extern bool remove_all_curse(void); 775 extern bool alchemy(void); 776 extern void stair_creation(void); 777 extern bool enchant(object_type *o_ptr, int n, int eflag); 778 extern bool enchant_spell(int num_hit, int num_dam, int num_ac); 779 extern bool artifact_scroll(void); 780 extern bool ident_spell(void); 781 extern bool ident_scroll(int k_idx); 782 extern bool mundane_spell(void); 783 extern void identify_item(object_type *o_ptr); 784 extern bool identify_fully(void); 785 extern bool recharge(int num); 786 extern bool bless_weapon(void); 787 extern bool potion_smash_effect(int who, int x, int y, object_type *o_ptr); 788 extern void display_spell_list(void); 789 extern s16b spell_chance(int spell, int realm); 790 extern int spell_mana(int spell, int realm); 791 extern bool spell_okay(int spell, bool known, int realm); 792 extern void spell_info(char *p, int spell, int realm); 793 extern void print_spells(byte *spells, int num, int x, int y, int realm); 794 extern bool hates_acid(const object_type *o_ptr); 795 extern bool hates_elec(const object_type *o_ptr); 796 extern bool hates_fire(const object_type *o_ptr); 797 extern bool hates_cold(const object_type *o_ptr); 798 extern int set_acid_destroy(object_type *o_ptr); 799 extern int set_elec_destroy(object_type *o_ptr); 800 extern int set_fire_destroy(object_type *o_ptr); 801 extern int set_cold_destroy(object_type *o_ptr); 802 extern int inven_damage(inven_func typ, int perc); 803 extern bool rustproof(void); 804 extern bool curse_armor(void); 805 extern bool curse_weapon(void); 806 extern bool brand_bolts(void); 807 extern bool polymorph_monster(int x, int y); 808 extern bool dimension_door(void); 809 extern void map_wilderness(int radius, s32b x, s32b y); 810 extern void sanity_blast(const monster_type *m_ptr); 811 812 /* store.c */ 813 extern s32b price_item(object_type *o_ptr, bool flip); 814 extern bool allocate_store(store_type *st_ptr); 815 extern store_type *get_current_store(void); 816 extern void do_cmd_store(const field_type *f_ptr); 817 extern void store_init(int town_num, int store_num, byte store); 818 extern void place_sb(int greed, int max_cost); 819 extern bool do_standard_command(s16b c); 820 821 /* bldg.c */ 822 extern bool get_nightmare(int r_idx); 823 extern void have_nightmare(void); 824 extern bool test_gold(s32b cost); 825 extern bool build_has_quest(void); 826 extern void build_cmd_quest(int level); 827 extern void display_build(const field_type *f_ptr); 828 extern void do_cmd_bldg(const field_type *f_ptr); 829 extern bool compare_weapons(void); 830 extern bool enchant_item(s32b cost, bool to_hit, bool to_dam, bool to_ac, bool weap); 831 extern void building_recharge(s32b cost); 832 extern bool building_healer(void); 833 extern void record_aura(void); 834 extern bool building_magetower(int factor, bool display); 835 extern void gamble_help(void); 836 extern void gamble_in_between(void); 837 extern void gamble_craps(void); 838 extern void gamble_spin_wheel(void); 839 extern void gamble_dice_slots(void); 840 extern bool inn_rest(void); 841 extern void build_init(int town_num, int build_num, byte build_type); 842 843 /* util.c */ 844 extern void safe_setuid_drop(void); 845 extern void safe_setuid_grab(void); 846 extern void init_setuid(void); 847 extern void signals_ignore_tstp(void); 848 extern void signals_handle_tstp(void); 849 extern void signals_init(void); 850 extern bool assert_helper(cptr expr, cptr file, int line, bool result); 851 extern errr path_parse(char *buf, int max, cptr file); 852 extern void path_build(char *buf, int max, cptr path, cptr file); 853 extern FILE *my_fopen(cptr file, cptr mode); 854 extern FILE *my_fopen_temp(char *buf, int max); 855 extern errr my_fgets(FILE *fff, char *buf, huge n); 856 extern errr my_raw_fgets(FILE *fff, char *buf, huge n); 857 extern void my_fclose(FILE *fff); 858 extern errr fd_kill(cptr file); 859 extern errr fd_move(cptr file, cptr what); 860 extern int fd_make(cptr file, int mode); 861 extern int fd_open(cptr file, int flags); 862 extern errr fd_lock(int fd, int what); 863 extern errr fd_seek(int fd, huge n); 864 extern errr fd_read(int fd, char *buf, huge n); 865 extern errr fd_write(int fd, cptr buf, huge n); 866 extern errr fd_close(int fd); 867 extern int count_bits(u32b x); 868 extern sint macro_find_exact(cptr pat); 869 extern void macro_add(cptr pat, cptr act); 870 extern void flush(void); 871 extern void text_to_ascii(char *buf, cptr str); 872 extern void ascii_to_text(char *buf, cptr str); 873 extern char inkey(void); 874 extern s16b quark_add(cptr str); 875 extern s16b quark_fmt(cptr str, ...); 876 extern void quark_remove(s16b *i); 877 extern void quark_dup(s16b i); 878 extern cptr quark_str(s16b i); 879 extern errr quarks_init(void); 880 extern errr quarks_free(void); 881 extern byte get_msg_type_color(byte a); 882 extern s16b message_num(void); 883 extern cptr message_str(s16b age); 884 extern u16b message_type(s16b age); 885 extern byte message_color(s16b age); 886 extern errr message_color_define(u16b type, byte color); 887 extern void message_add(cptr str, u16b type); 888 extern errr messages_init(void); 889 extern void messages_free(void); 890 extern void set_message_type(char *buf, uint max, cptr fmt, va_list *vp); 891 extern void msgf(cptr fmt, ...); 892 extern void msg_effect(u16b type, s16b extra); 893 extern void message_flush(void); 894 extern bool is_a_vowel(int ch); 895 extern void request_command(int shopping); 896 extern void repeat_push(int what); 897 extern bool repeat_pull(int *what); 898 extern void repeat_clear(void); 899 extern void repeat_check(void); 900 901 #ifdef PRIVATE_USER_PATH 902 extern void create_user_dirs(void); 903 #endif /* PRIVATE_USER_PATH */ 904 905 /* xtra1.c */ 906 extern s16b modify_stat_value(int value, int amount); 907 extern void stat_format(char *buf, uint max, cptr fmt, va_list *vp); 908 extern void notice_stuff(void); 909 extern void update_stuff(void); 910 extern void redraw_stuff(void); 911 extern void window_stuff(void); 912 extern void handle_stuff(void); 913 extern void change_stuff(void); 914 bool player_save(int power); 915 extern void object_bonuses(const object_type *o_ptr, bonuses_type *b); 916 extern void object_bonuses_known(const object_type *o_ptr, bonuses_type *b); 917 918 919 /* effects.c */ 920 extern bool inc_blind(int v); 921 extern bool clear_blind(void); 922 extern bool inc_confused(int v); 923 extern bool clear_confused(void); 924 extern bool inc_poisoned(int v); 925 extern bool clear_poisoned(void); 926 extern bool inc_afraid(int v); 927 extern bool clear_afraid(void); 928 extern bool inc_paralyzed(int v); 929 extern bool clear_paralyzed(void); 930 extern bool inc_image(int v); 931 extern bool clear_image(void); 932 extern bool inc_fast(int v); 933 extern bool clear_fast(void); 934 extern bool inc_slow(int v); 935 extern bool clear_slow(void); 936 extern bool inc_shield(int v); 937 extern bool inc_blessed(int v); 938 extern bool inc_hero(int v); 939 extern bool inc_shero(int v); 940 extern bool inc_protevil(int v); 941 extern bool inc_wraith_form(int v); 942 extern bool inc_tim_esp(int v); 943 extern bool clear_tim_esp(void); 944 extern bool inc_invuln(int v); 945 extern bool inc_tim_invis(int v); 946 extern bool inc_tim_infra(int v); 947 extern bool inc_oppose_acid(int v); 948 extern bool inc_oppose_elec(int v); 949 extern bool inc_oppose_fire(int v); 950 extern bool inc_oppose_cold(int v); 951 extern bool inc_oppose_pois(int v); 952 extern int res_acid_lvl(void); 953 extern int res_elec_lvl(void); 954 extern int res_fire_lvl(void); 955 extern int res_cold_lvl(void); 956 extern int res_pois_lvl(void); 957 extern int resist(int dam, int (*f_func) (void)); 958 extern bool acid_dam(int dam, cptr kb_str); 959 extern bool elec_dam(int dam, cptr kb_str); 960 extern bool fire_dam(int dam, cptr kb_str); 961 extern bool cold_dam(int dam, cptr kb_str); 962 extern bool pois_dam(int dam, cptr kb_str, int pois); 963 extern bool inc_stun(int v); 964 extern bool clear_stun(void); 965 extern bool inc_cut(int v); 966 extern bool clear_cut(void); 967 extern bool set_food(int v); 968 extern bool inc_stat(int stat); 969 extern bool dec_stat(int stat, int amount, int permanent); 970 extern bool res_stat(int stat); 971 extern bool hp_player(int num); 972 extern bool do_dec_stat(int stat); 973 extern bool do_res_stat(int stat); 974 extern bool do_inc_stat(int stat); 975 extern bool restore_level(void); 976 extern bool lose_all_info(void); 977 extern void gain_exp(s32b amount); 978 extern void lose_exp(s32b amount); 979 extern void do_poly_self(void); 980 extern void make_noise(byte amount); 981 982 extern void disturb(bool stop_search); 983 extern void notice_inven(void); 984 extern void notice_equip(void); 985 extern void notice_item(void); 986 987 988 /* xtra2.c */ 989 extern void check_experience(void); 990 extern bool monster_death(int m_idx, bool explode); 991 extern bool mon_take_hit(int m_idx, int dam, bool *fear, cptr note); 992 extern void get_map_size(int *x, int *y); 993 extern bool panel_center(int x, int y); 994 extern bool change_panel(int dx, int dy); 995 extern void verify_panel(void); 996 extern cptr look_mon_desc(int m_idx); 997 extern void ang_sort_aux(vptr u, vptr v, int p, int q); 998 extern void ang_sort(vptr u, vptr v, int n); 999 extern bool target_able(int m_idx); 1000 extern bool target_okay(void); 1001 extern bool target_set(int mode); 1002 extern bool get_aim_dir(int *dp); 1003 extern bool get_hack_dir(int *dp); 1004 extern bool get_rep_dir(int *dp); 1005 extern int get_chaos_patron(void); 1006 extern void gain_level_reward(int chosen_reward); 1007 extern bool tgt_pt(int *x, int *y); 1008 extern void do_poly_wounds(void); 1009 extern int mon_damage_mod(const monster_type *m_ptr, int dam, int type); 1010 extern void exp_for_kill(const monster_race *r_ptr, s32b *new_exp, 1011 s32b *new_exp_frac); 1012 extern int stat_cap(int stat); 1013 extern int adjust_stat(int stat, int value, int amount); 1014 extern void health_track(int m_idx); 1015 extern void monster_race_track(int r_idx); 1016 extern void object_kind_track(int k_idx); 1017 1018 1019 /* mspells1.c */ 1020 extern bool clean_shot(int x1, int y1, int x2, int y2, bool friendly); 1021 1022 /* mspells2.c */ 1023 extern bool monst_spell_monst(int m_idx); 1024 1025 /* artifact.c */ 1026 extern bool create_artifact(object_type *o_ptr, int level, bool a_scroll); 1027 extern void create_named_art(int a_idx, int x, int y); 1028 1029 /* scores.c */ 1030 extern bool display_scores_aux(int from, int to, int note, 1031 const high_score *score); 1032 extern void display_scores(int from, int to); 1033 extern void enter_score(void); 1034 extern void predict_score(void); 1035 extern void race_legends(void); 1036 extern void race_score(int race_num); 1037 extern void show_highclass(void); 1038 extern void ingame_score(bool *initialized, bool game_in_progress); 1039 extern void close_game(void); 1040 extern void exit_game_panic(void); 1041 1042 /* mind.c */ 1043 extern mindcraft_power mindcraft_powers[MINDCRAFT_MAX]; 1044 extern void mindcraft_info(char *p, int power); 1045 extern void do_cmd_mindcraft(void); 1046 1047 /* mutation.c */ 1048 extern bool player_has_mut(int mutation); 1049 extern bool gain_mutation(int choose_mut); 1050 extern bool lose_mutation(int choose_mut); 1051 extern void dump_mutations(FILE *OutFile); 1052 extern bool do_cmd_knowledge_mutations(int dummy); 1053 extern int count_mutations(void); 1054 extern void mutation_power_aux(const mutation_type *mut_ptr); 1055 extern void mutation_random_aux(const mutation_type *mut_ptr); 1056 extern void mutation_effect(void); 1057 1058 1059 /* obj_kind.c */ 1060 extern errr k_info_alloc(void); 1061 extern errr k_info_free(void); 1062 extern object_kind *k_info_add(object_kind *k_info_entry); 1063 extern byte get_object_level(const object_type *o_ptr); 1064 extern cptr get_object_name(const object_type *o_ptr); 1065 extern bool object_is_potion(const object_type *o_ptr); 1066 extern errr init_object_alloc(void); 1067 extern void k_info_reset(void); 1068 1069 /* wild1.c and wild2.c */ 1070 extern void select_town_name(char *name, int pop); 1071 extern const dun_gen_type *pick_dungeon_type(void); 1072 extern void light_dark_square(int y, int x, bool daytime); 1073 extern u16b init_choice_tree(wild_bound_box_type *bound, u16b type); 1074 extern u16b add_node_tree_root(wild_bound_box_type *bound, u16b type); 1075 extern void test_decision_tree(void); 1076 extern void repopulate_wilderness(void); 1077 extern void create_wilderness(void); 1078 extern void move_wild(void); 1079 extern void shift_in_bounds(int *x, int *y); 1080 extern byte the_floor(void); 1081 extern void change_level(int); 1082 extern int base_level(void); 1083 extern void wipe_all_list(void); 1084 extern dun_type *dungeon(void); 1085 extern void move_dun_level(int direction); 1086 extern int max_dun_level_reached(void); 1087 extern cptr building_name(byte build_type); 1088 extern void building_char(byte build_type, byte *a, char *c); 1089 extern cptr dungeon_type_name(u32b dun); 1090 1091 1092 /* avatar.c */ 1093 extern cptr virtue[MAX_VIRTUE]; 1094 extern void get_virtues(void); 1095 extern void chg_virtue(int virtue, int amount); 1096 extern void dump_virtues(FILE *OutFile); 1097 1098 /* notes.c */ 1099 extern cptr notes_file(void); 1100 extern void output_note(cptr final_note, ...); 1101 extern void add_note(char code, cptr note, ...); 1102 extern void add_note_type(int note_number); 1103 1104 /* fields.c */ 1105 extern void notice_field(field_type *f_ptr); 1106 extern cptr field_name(const field_type *f_ptr); 1107 extern void excise_field_idx(int fld_idx); 1108 extern void delete_field_ptr(field_type *f_ptr); 1109 extern void delete_field(int x, int y); 1110 extern void delete_field_location(cave_type *c_ptr); 1111 extern void compact_fields(int size); 1112 extern void wipe_f_list(void); 1113 extern void wipe_fields(int rg_idx); 1114 extern s16b f_pop(void); 1115 extern void field_wipe(field_type *f_ptr); 1116 extern void field_copy(field_type *f_ptr, field_type *j_ptr); 1117 extern s16b field_add(field_type *f_ptr, cave_type *c_ptr); 1118 extern void field_prep(field_type *f_ptr, s16b t_idx); 1119 extern void init_fields(void); 1120 extern field_type *field_is_type(const cave_type *c_ptr, byte typ); 1121 extern field_type *field_first_known(const cave_type *c_ptr, byte typ); 1122 extern u16b fields_have_flags(const cave_type *c_ptr, u16b info); 1123 extern bool field_detect_type(const cave_type *c_ptr, byte typ); 1124 extern void field_destroy_type(cave_type *c_ptr, byte typ); 1125 extern field_type *place_field(int x, int y, s16b t_idx); 1126 extern bool field_script_single(field_type *f_ptr, int action, cptr format, ...); 1127 extern void field_script_const(const field_type *f_ptr, int action, cptr format, ...); 1128 extern void field_script(cave_type *c_ptr, int action, cptr format, ...); 1129 extern bool field_script_special(cave_type *c_ptr, u16b t_idx, cptr format, ...); 1130 extern field_type *field_script_find(cave_type *c_ptr, int action, cptr format, ...); 1131 extern void process_fields(void); 1132 extern void test_field_data_integrity(void); 1133 extern void set_corpse_size(field_type *f_ptr, int size); 1134 extern void place_trap(int x, int y); 1135 extern void make_lockjam_door(int x, int y, int power, bool jam); 1136 extern bool monster_can_open(monster_race *r_ptr, int power); 1137 extern bool check_trap_hit(int power); 1138 extern bool dont_save(int power); 1139 extern void hit_trap(field_type *f_ptr); 1140 extern void evil_trap(void); 1141 extern void drop_random_item(void); 1142 extern void drain_lite(void); 1143 extern void drain_food(void); 1144 extern void drain_magic(void); 1145 extern void print_building_options(cptr strings[], int num); 1146 1147 /* compress.c */ 1148 extern void test_compress_module(void); 1149 1150 /* quest.c */ 1151 extern u16b q_pop(void); 1152 extern void discover_wild_quest(int q_num); 1153 extern u16b insert_dungeon_monster_quest(u16b r_idx, u16b num, u16b level); 1154 extern cptr describe_quest_location(cptr * dirn, int x, int y, bool known); 1155 extern void dump_castle_info(FILE *fff, int place); 1156 extern errr init_quests(void); 1157 extern void init_player_quests(void); 1158 extern void quest_discovery(void); 1159 extern bool is_special_level(int level); 1160 extern void activate_quests(int level); 1161 extern void trigger_quest_create(byte c_type, vptr data); 1162 extern void trigger_quest_complete(byte x_type, vptr data); 1163 extern quest_type *lookup_quest_building(const store_type *b_ptr); 1164 extern void reward_quest(quest_type *q_ptr); 1165 extern void request_quest(const store_type *b_ptr, int scale); 1166 extern bool do_cmd_knowledge_quests(int dummy); 1167 1168 /* maid-grf.c */ 1169 extern void init_term_callbacks(void); 1170 extern void free_term_callbacks(void); 1171 extern void init_overhead_map(void); 1172 extern void del_overhead_map(void); 1173 extern void display_dungeon(void); 1174 extern void lite_spot(int x, int y); 1175 extern void prt_map(void); 1176 extern void display_map(int *cx, int *cy); 1177 extern void update_overhead_map(void); 1178 extern void Term_erase_map(void); 1179 extern void Term_move_player(void); 1180 extern void Term_write_equipment(void); 1181 extern void Term_write_list(s16b o_idx, byte list_type); 1182 1183 /* ui.c */ 1184 extern void center_string(char *buf, uint max, cptr fmt, va_list *vp); 1185 extern void binary_fmt(char *buf, uint max, cptr fmt, va_list *vp); 1186 extern void fmt_clean(char *buf); 1187 extern int get_player_choice(cptr *choices, int num, int col, int wid, 1188 cptr helpfile, void (*hook) (cptr)); 1189 extern int get_player_sort_choice(cptr *choices, int num, int col, int wid, 1190 cptr helpfile, void (*hook) (cptr)); 1191 extern bool display_menu(menu_type *options, int select, bool scroll, 1192 int disp(int), cptr prompt); 1193 extern void bell(cptr reason); 1194 extern void sound(int num); 1195 extern int color_char_to_attr(char c); 1196 extern void screen_save(void); 1197 extern void screen_load(void); 1198 extern int fmt_offset(cptr str1, cptr str2); 1199 extern void put_fstr(int col, int row, cptr str, ...); 1200 extern void prtf(int col, int row, cptr str, ...); 1201 extern void roff(cptr str, ...); 1202 extern void froff(FILE *fff, cptr str, ...); 1203 extern void clear_from(int row); 1204 extern void clear_msg(void); 1205 extern void clear_row(int row); 1206 extern void clear_region(int x, int y1, int y2); 1207 extern bool askfor_aux(char *buf, int len); 1208 extern bool get_string(char *buf, int len, cptr str, ...); 1209 extern bool get_check(cptr prompt, ...); 1210 extern bool get_check_ext(bool def, bool esc, cptr prompt, ...); 1211 extern bool get_com(cptr prompt, char *command); 1212 extern s16b get_quantity(cptr prompt, int max); 1213 extern void pause_line(int row); 1214 extern int get_keymap_dir(char ch); 1215 1216 1217 /* borg.c */ 1218 extern void do_cmd_borg(void); 1219 1220 /* script.c */ 1221 extern void deleteme(void); 1222 extern bool player_res(u32b flag); 1223 1224 /* 1225 * Hack -- conditional (or "bizarre") externs 1226 */ 1227 1228 #ifdef SET_UID 1229 # ifndef HAS_USLEEP 1230 /* util.c */ 1231 extern int usleep(huge usecs); 1232 # endif /* HAS_USLEEP */ 1233 extern void user_name(char *buf, int id); 1234 #endif /* SET_UID */ 1235 1236 #if defined(MAC_MPW) || defined(MACH_O_CARBON) 1237 /* main-mac.c, or its derivatives */ 1238 extern u32b _fcreator; 1239 extern u32b _ftype; 1240 # if defined(MAC_MPW) && defined(CARBON) 1241 extern void convert_pathname(char *path); 1242 # endif 1243 # if defined(MACH_O_CARBON) 1244 extern void fsetfileinfo(cptr path, u32b fcreator, u32b ftype); 1245 # endif 1246 #endif 1247 1248