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