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 custom_command_type custom_commands[MAX_CUSTOM_COMMANDS]; 17 extern const stream_type streams[MAX_STREAMS]; 18 extern item_tester_type item_tester[MAX_ITEM_TESTERS]; 19 extern const indicator_type indicators[MAX_INDICATORS]; 20 extern custom_command_type priest_study_cmd; 21 extern int study_cmd_id; 22 extern byte eq_pos[INVEN_TOTAL-INVEN_WIELD+1][2]; 23 extern s16b ddd[9]; 24 extern s16b ddx[10]; 25 extern s16b ddy[10]; 26 extern s16b ddx_ddd[9]; 27 extern s16b ddy_ddd[9]; 28 extern char hexsym[16]; 29 extern byte adj_val_min[]; 30 extern byte adj_val_max[]; 31 extern const int adj_mag_study[]; 32 extern const int adj_mag_mana[]; 33 extern byte adj_mag_fail[]; 34 extern const int adj_mag_stat[]; 35 extern byte adj_chr_gold[]; 36 extern byte adj_int_dev[]; 37 extern byte adj_wis_sav[]; 38 extern byte adj_dex_dis[]; 39 extern byte adj_int_dis[]; 40 extern byte adj_dex_ta[]; 41 extern byte adj_str_td[]; 42 extern byte adj_dex_th[]; 43 extern byte adj_str_th[]; 44 extern byte adj_str_wgt[]; 45 extern byte adj_str_hold[]; 46 extern byte adj_str_dig[]; 47 extern byte adj_str_blow[]; 48 extern byte adj_dex_blow[]; 49 extern byte adj_dex_safe[]; 50 extern byte adj_con_fix[]; 51 extern byte trees_in_town; 52 extern const int adj_con_mhp[]; 53 extern byte blows_table[12][12]; 54 extern owner_type owners[MAX_STORES][MAX_OWNERS]; 55 extern u16b extract_energy[200]; 56 extern u16b level_speeds[128]; 57 extern s32b player_exp[PY_MAX_LEVEL]; 58 extern player_race race_info[MAX_RACES]; 59 extern player_magic magic_info[MAX_CLASS]; 60 extern byte chest_traps[64]; 61 extern cptr player_title[MAX_CLASS][PY_MAX_LEVEL/5]; 62 extern cptr color_names[16]; 63 extern cptr stat_names[6]; 64 extern cptr stat_names_reduced[6]; 65 extern cptr stat_names_full[6]; 66 extern cptr ang_term_name[8]; 67 extern cptr window_flag_desc[32]; 68 extern cptr option_group[]; 69 extern option_type option_info[]; 70 extern const cptr custom_command_schemes[SCHEME_LAST+1]; 71 72 /* variable.c */ 73 extern cptr copyright[6]; 74 extern byte version_major; 75 extern byte version_minor; 76 extern byte version_patch; 77 extern byte version_extra; 78 extern u16b shutdown_timer; 79 extern u32b sf_xtra; 80 extern u32b sf_when; 81 extern u16b sf_lives; 82 extern u16b sf_saves; 83 extern cptr arg_config_file; 84 extern bool arg_wizard; 85 extern bool arg_fiddle; 86 extern bool arg_force_original; 87 extern bool arg_force_roguelike; 88 extern bool server_generated; 89 extern bool server_dungeon; 90 extern bool server_state_loaded; 91 extern bool server_saved; 92 extern bool character_loaded; 93 extern bool character_died; 94 extern bool character_xtra; 95 extern u32b seed_flavor; 96 extern u32b seed_town; 97 extern s16b command_cmd; 98 extern s16b command_arg; 99 /*extern s16b command_rep;*/ 100 extern s16b command_dir; 101 extern s16b command_see; 102 extern s16b command_gap; 103 extern s16b command_wrk; 104 extern s16b command_new; 105 extern s16b choose_default; 106 extern bool create_up_stair; 107 extern bool create_down_stair; 108 extern bool msg_flag; 109 /*extern bool alive; 110 extern bool death;*/ 111 /*extern s16b running;*/ 112 extern s16b resting; 113 /*extern s16b cur_hgt; 114 extern s16b cur_wid;*/ 115 /*extern s16b dun_level;*/ 116 extern s16b *players_on_depth; 117 extern s16b special_levels[MAX_SPECIAL_LEVELS]; 118 extern s16b num_repro; 119 extern s16b object_level; 120 extern char summon_kin_type; 121 extern s16b monster_level; 122 extern byte level_up_x[MAX_DEPTH]; 123 extern byte level_up_y[MAX_DEPTH]; 124 extern byte level_down_x[MAX_DEPTH]; 125 extern byte level_down_y[MAX_DEPTH]; 126 extern byte level_rand_x[MAX_DEPTH]; 127 extern byte level_rand_y[MAX_DEPTH]; 128 extern hturn turn; 129 extern hturn old_turn; 130 extern s32b player_id; 131 extern bool wizard; 132 extern bool to_be_wizard; 133 extern bool can_be_wizard; 134 /*extern u16b total_winner;*/ 135 extern u16b panic_save; 136 /*extern u16b noscore;*/ 137 extern s16b signal_count; 138 extern bool inkey_base; 139 extern bool inkey_xtra; 140 extern bool inkey_scan; 141 extern bool inkey_flag; 142 extern s16b coin_type; 143 extern bool opening_chest; 144 extern int use_graphics; 145 extern bool use_sound; 146 extern bool scan_monsters; 147 extern bool scan_objects; 148 /*extern s16b total_weight;*/ 149 extern s16b inven_nxt; 150 /*extern s16b inven_cnt; 151 extern s16b equip_cnt;*/ 152 extern s32b o_nxt; 153 extern s32b m_nxt; 154 extern s32b o_max; 155 extern s32b m_max; 156 extern s32b o_top; 157 extern s32b m_top; 158 extern s32b p_max; 159 extern maxima *z_info; 160 extern u32b eq_name_size; 161 162 extern bool cfg_report_to_meta; 163 extern char * cfg_meta_address; 164 extern char * cfg_report_address; 165 extern char * cfg_console_password; 166 extern bool cfg_console_local_only; 167 extern char * cfg_dungeon_master; 168 extern char * cfg_load_pref_file; 169 extern bool cfg_secret_dungeon_master; 170 extern s16b cfg_fps; 171 extern s32b cfg_tcp_port; 172 extern bool cfg_safe_recharge; 173 extern bool cfg_no_steal; 174 extern bool cfg_newbies_cannot_drop; 175 extern bool cfg_ghost_diving; 176 extern s32b cfg_level_unstatic_chance; 177 extern s32b cfg_retire_timer; 178 extern bool cfg_random_artifacts; 179 extern s16b cfg_preserve_artifacts; 180 extern bool cfg_ironman; 181 extern bool cfg_more_towns; 182 extern bool cfg_town_wall; 183 extern s32b cfg_unique_respawn_time; 184 extern s32b cfg_unique_max_respawn_time; 185 extern s16b cfg_max_townies; 186 extern s16b cfg_max_trees; 187 extern s16b cfg_max_houses; 188 extern bool cfg_chardump_color; 189 extern s16b cfg_pvp_hostility; 190 extern bool cfg_pvp_notify; 191 extern s16b cfg_pvp_safehostility; 192 extern s16b cfg_pvp_safedepth; 193 extern s16b cfg_pvp_saferadius; 194 extern s16b cfg_pvp_safelevel; 195 extern bool cfg_party_share_exp; 196 extern bool cfg_party_share_quest; 197 extern bool cfg_party_share_kill; 198 extern bool cfg_party_share_win; 199 extern s16b cfg_party_sharelevel; 200 extern bool cfg_instance_closed; 201 202 extern s16b hitpoint_warn; 203 extern s16b delay_factor; 204 extern bool dungeon_align; 205 extern s16b feeling; 206 extern s16b rating; 207 extern bool good_item_flag; 208 /*extern bool new_level_flag;*/ 209 extern bool closing_flag; 210 /*extern s16b max_panel_rows, max_panel_cols; 211 extern s16b panel_row, panel_col;*/ 212 /*extern s16b panel_row_min, panel_row_max; 213 extern s16b panel_col_min, panel_col_max; 214 extern s16b panel_col_prt, panel_row_prt; 215 extern s16b py; 216 extern s16b px;*/ 217 /*extern s16b target_who; 218 extern s16b target_col; 219 extern s16b target_row;*/ 220 /* extern s16b health_who; */ 221 extern s16b recent_idx; 222 extern element_group* players; 223 extern int player_uid; 224 extern int player_euid; 225 extern int player_egid; 226 extern player_type* player_textout; 227 extern party_type parties[MAX_PARTIES]; 228 extern channel_type channels[MAX_CHANNELS]; 229 extern house_type houses[MAX_HOUSES]; 230 extern byte spell_flags[MAX_SPELL_REALMS][PY_MAX_SPELLS]; 231 extern byte spell_tests[MAX_SPELL_REALMS][PY_MAX_SPELLS]; 232 extern arena_type arenas[MAX_ARENAS]; 233 extern int num_houses; 234 extern int num_arenas; 235 extern int chan_audit; 236 extern int chan_debug; 237 extern int chan_cheat; 238 /*extern char player_name[32]; 239 extern char player_base[32]; 240 extern char died_from[80]; 241 extern char history[4][60]; 242 extern char savefile[1024];*/ 243 /*extern s16b lite_n; 244 extern byte lite_y[LITE_MAX]; 245 extern byte lite_x[LITE_MAX]; 246 extern s16b view_n; 247 extern byte view_y[VIEW_MAX]; 248 extern byte view_x[VIEW_MAX]; 249 extern s16b temp_n; 250 extern byte temp_y[TEMP_MAX]; 251 extern byte temp_x[TEMP_MAX];*/ 252 extern s16b macro__num; 253 extern cptr *macro__pat; 254 extern cptr *macro__act; 255 extern bool *macro__cmd; 256 extern char *macro__buf; 257 extern s16b quark__num; 258 extern cptr *quark__str; 259 extern u16b message__next; 260 extern u16b message__last; 261 extern u16b message__head; 262 extern u16b message__tail; 263 extern u16b *message__ptr; 264 extern char *message__buf; 265 /*extern u32b option_flag[8]; 266 extern u32b option_mask[8]; 267 extern u32b window_flag[8]; 268 extern u32b window_mask[8];*/ 269 /*extern term *ang_term[8];*/ 270 extern s16b o_fast[MAX_O_IDX]; 271 extern s16b m_fast[MAX_M_IDX]; 272 extern cave_type ***cave; 273 extern wilderness_type *wild_info; 274 extern hturn *turn_cavegen; 275 extern object_type *o_list; 276 extern monster_type *m_list; 277 extern player_type **p_list; 278 extern quest q_list[MAX_Q_IDX]; 279 extern store_type *store; 280 /*extern object_type *inventory;*/ 281 extern s16b alloc_kind_size; 282 extern alloc_entry *alloc_kind_table; 283 extern s16b alloc_race_size; 284 extern alloc_entry *alloc_race_table; 285 extern byte misc_to_attr[1024]; 286 extern char misc_to_char[1024]; 287 extern byte tval_to_attr[128]; 288 extern char tval_to_char[128]; 289 extern byte keymap_cmds[128]; 290 extern byte keymap_dirs[128]; 291 extern byte color_table[256][4]; 292 extern char text_screen[MAX_TEXTFILES][TEXTFILE__WID * TEXTFILE__HGT]; 293 /*extern player_type *p_ptr;*/ 294 /*extern player_race *rp_ptr; 295 extern player_class *cp_ptr; 296 extern player_magic *mp_ptr;*/ 297 /*extern u32b spell_learned1; 298 extern u32b spell_learned2; 299 extern u32b spell_worked1; 300 extern u32b spell_worked2; 301 extern u32b spell_forgotten1; 302 extern u32b spell_forgotten2; 303 extern byte spell_order[64]; 304 extern s16b player_hp[PY_MAX_LEVEL];*/ 305 extern vault_type *v_info; 306 extern char *v_name; 307 extern char *v_text; 308 extern feature_type *f_info; 309 extern char *f_name; 310 extern char *f_text; 311 extern char *f_char_s; 312 extern byte *f_attr_s; 313 extern object_kind *k_info; 314 extern char *k_name; 315 extern char *k_text; 316 extern char *k_char_s; 317 extern byte *k_attr_s; 318 extern artifact_type *a_info; 319 extern char *a_name; 320 extern char *a_text; 321 extern ego_item_type *e_info; 322 extern char *e_name; 323 extern char *e_text; 324 extern monster_race *r_info; 325 extern char *r_name; 326 extern char *r_text; 327 extern char *r_char_s; 328 extern byte *r_attr_s; 329 extern player_race *p_info; 330 extern char *p_name; 331 extern char *p_text; 332 extern player_class *c_info; 333 extern char *c_name; 334 extern char *c_text; 335 extern cptr store_names[MAX_STORES]; 336 extern owner_type *b_info; 337 extern char *b_name; 338 extern char *b_text; 339 extern byte *g_info; 340 extern char *g_name; 341 extern char *g_text; 342 extern hist_type *h_info; 343 extern char *h_text; 344 extern flavor_type *flavor_info; 345 extern char *flavor_name; 346 extern char *flavor_text; 347 extern char *flavor_char_s; 348 extern byte *flavor_attr_s; 349 extern cptr ANGBAND_SYS; 350 extern cptr ANGBAND_DIR; 351 extern cptr ANGBAND_DIR_APEX; 352 extern cptr ANGBAND_DIR_BONE; 353 extern cptr ANGBAND_DIR_DATA; 354 extern cptr ANGBAND_DIR_EDIT; 355 extern cptr ANGBAND_DIR_FILE; 356 extern cptr ANGBAND_DIR_HELP; 357 extern cptr ANGBAND_DIR_INFO; 358 extern cptr ANGBAND_DIR_SAVE; 359 extern cptr ANGBAND_DIR_PREF; 360 extern cptr ANGBAND_DIR_USER; 361 extern cptr ANGBAND_DIR_XTRA; 362 extern cptr ANGBAND_DIR_GAME; 363 extern cptr ANGBAND_DIR_TEXT; 364 extern bool item_tester_full; 365 extern byte item_tester_tval; 366 extern bool (*item_tester_hook)(object_type *o_ptr); 367 extern bool (*get_mon_num_hook)(int r_idx); 368 extern bool (*get_obj_num_hook)(int k_idx); 369 extern bool (*master_move_hook)(player_type *p_ptr, char * parms); 370 extern char * cfg_bind_name; 371 extern const player_sex sex_info[MAX_SEXES]; 372 373 /* 374 * Automatically generated "function declarations" 375 */ 376 377 /* birth.c */ 378 extern player_type* player_alloc(void); 379 extern void player_free(player_type *p_ptr); 380 extern void player_wipe(player_type *p_ptr); 381 extern void player_net_wipe(player_type *p_ptr, int reach); 382 extern bool player_birth(int ind, int race, int pclass, int sex, int stat_order[]); 383 extern void server_birth(void); 384 extern void player_setup(player_type *p_ptr); 385 extern void player_verify_visual(player_type *p_ptr); 386 387 /* cave.c */ 388 extern int distance(int y1, int x1, int y2, int x2); 389 extern bool los(int Depth, int y1, int x1, int y2, int x2); 390 extern bool player_can_see_bold(player_type *p_ptr, int y, int x); 391 extern bool no_lite(player_type *p_ptr); 392 extern void map_info(player_type *p_ptr, int y, int x, byte *ap, char *cp, byte *tap, char *tcp, bool server); 393 extern int color_char_to_attr(char c); 394 extern void move_cursor_relative(int row, int col); 395 extern void print_rel(char c, byte a, int y, int x); 396 extern void cave_set_feat(int Depth, int y, int x, int feat); 397 extern void spot_updates(int Depth, int y, int x, u32b updates); 398 extern void note_spot(player_type *p_ptr, int y, int x); 399 extern void note_spot_depth(int Depth, int y, int x); 400 extern void everyone_lite_spot(int Depth, int y, int x); 401 extern void everyone_forget_spot(int Depth, int y, int x); 402 extern void lite_spot(player_type *p_ptr, int y, int x); 403 extern void prt_map(player_type *p_ptr); 404 extern void display_map(player_type *p_ptr, bool quiet); 405 extern void do_cmd_view_map(player_type *p_ptr, char query); 406 extern void forget_lite(player_type *p_ptr); 407 extern void update_lite(player_type *p_ptr); 408 extern void forget_view(player_type *p_ptr); 409 extern void update_view(player_type *p_ptr); 410 extern void forget_flow(void); 411 extern void update_flow(void); 412 extern void wiz_lite(player_type *p_ptr); 413 extern void wiz_dark(player_type *p_ptr); 414 extern void mmove2(int *y, int *x, int y1, int x1, int y2, int x2); 415 extern bool projectable(int Depth, int y1, int x1, int y2, int x2); 416 extern bool projectable_wall(int Depth, int y1, int x1, int y2, int x2); 417 extern void scatter(int Depth, int *yp, int *xp, int y, int x, int d, int m); 418 extern void health_track(player_type *p_ptr, int m_idx); 419 extern void update_health(int m_idx); 420 extern void monster_race_track(player_type *p_ptr, int r_idx); 421 extern void disturb(player_type *p_ptr, int stop_search, int flush_output); 422 extern bool is_quest(int level); 423 extern bool is_quest_level(player_type *p_ptr, int level); 424 extern void update_players(void); 425 extern void update_cursor(int); 426 extern void cursor_track(player_type *p_ptr, int m_idx); 427 extern int player_pict(player_type *p_ptr, player_type *who); 428 extern player_type* player_on_cave_p(cave_type *c_ptr); 429 extern player_type* player_on_cave(int Depth, int y, int x); 430 431 432 /* cmd1.c */ 433 extern bool test_hit_fire(int chance, int ac, int vis); 434 extern bool test_hit_norm(int chance, int ac, int vis); 435 extern s16b critical_shot(player_type *p_ptr, int weight, int plus, int dam); 436 extern s16b critical_norm(player_type *p_ptr, int weight, int plus, int dam); 437 extern s16b tot_dam_aux(player_type *p_ptr, object_type *o_ptr, int tdam, monster_type *m_ptr, bool ml); 438 extern s16b tot_dam_aux_player(object_type *o_ptr, int tdam, player_type *p_ptr); 439 extern void search(player_type *p_ptr); 440 extern void carry(player_type *p_ptr, int pickup, int confirm); 441 extern void py_attack(player_type *p_ptr, int y, int x); 442 extern void move_player(player_type *p_ptr, int dir, int do_pickup); 443 extern void run_step(player_type *p_ptr, int dir); 444 extern int see_wall(player_type *p_ptr, int dir, int y, int x); 445 446 /* cmd2.c */ 447 extern bool house_inside(player_type *p_ptr, int house); 448 extern bool house_owned(int house); 449 extern bool house_owned_by(player_type *p_ptr, int house); 450 extern bool set_house_owner(player_type *p_ptr, int house); 451 extern bool create_house(player_type *p_ptr); 452 extern int houses_owned(player_type *p_ptr); 453 extern void disown_house(int house); 454 extern void do_cmd_go_up(player_type *p_ptr); 455 extern void do_cmd_go_down(player_type *p_ptr); 456 extern void do_cmd_search(player_type *p_ptr); 457 extern void do_cmd_toggle_search(player_type *p_ptr); 458 extern void do_cmd_alter(player_type *p_ptr, int dir); 459 extern void do_cmd_open(player_type *p_ptr, int dir); 460 extern void do_cmd_close(player_type *p_ptr, int dir); 461 extern void do_cmd_tunnel(player_type *p_ptr, int dir); 462 extern void do_cmd_disarm(player_type *p_ptr, int dir); 463 extern void do_cmd_bash(player_type *p_ptr, int dir); 464 extern void do_cmd_spike(player_type *p_ptr, int dir); 465 extern void do_cmd_walk(player_type *p_ptr, int dir, int pickup); 466 extern void do_cmd_stay(player_type *p_ptr); 467 extern int do_cmd_run(player_type *p_ptr, int dir); 468 extern void do_cmd_hold(player_type *p_ptr); 469 extern void do_cmd_hold_or_stay(player_type *p_ptr, int pickup, int take_stairs); 470 extern void do_cmd_enterfeat(player_type *p_ptr); 471 extern void do_cmd_toggle_rest(player_type *p_ptr); 472 extern void do_cmd_pathfind(player_type *p_ptr, int y, int x); 473 /*extern void do_cmd_rest(void);*/ 474 extern void do_cmd_fire(player_type *p_ptr, int item, int dir); 475 extern void do_cmd_throw(player_type *p_ptr, int item, int dir); 476 extern void do_cmd_purchase_house(player_type *p_ptr, int dir); 477 extern int pick_house(int Depth, int y, int x); 478 extern void do_cmd_mouseclick(player_type *p_ptr, int mod, int y, int x); 479 480 /* cmd3.c */ 481 extern void do_cmd_inven(void); 482 extern void do_cmd_equip(void); 483 extern void do_cmd_wield(player_type *p_ptr, int item); 484 extern void do_cmd_takeoff(player_type *p_ptr, int item); 485 extern void do_cmd_drop(player_type *p_ptr, int item, int quantity); 486 extern void do_cmd_drop_gold(player_type *p_ptr, s32b amt); 487 extern void do_cmd_destroy(player_type *p_ptr, int item, int quantity); 488 extern void do_cmd_observe(player_type *p_ptr, int item); 489 extern void do_cmd_uninscribe(player_type *p_ptr, int item); 490 extern void do_cmd_inscribe(player_type *p_ptr, int item, cptr inscription); 491 extern void do_cmd_steal(player_type *p_ptr, int dir); 492 extern void do_cmd_refill(player_type *p_ptr, int item); 493 extern void do_cmd_target(player_type *p_ptr, char dir); 494 extern void do_cmd_target_friendly(player_type *p_ptr, char dir); 495 extern void do_cmd_look(player_type *p_ptr, char dir); 496 extern void do_cmd_locate(player_type *p_ptr, int dir); 497 extern void do_cmd_query_symbol(player_type *p_ptr, char sym); 498 extern void do_cmd_monlist(player_type *p_ptr); 499 extern void do_cmd_itemlist(player_type *p_ptr); 500 extern void describe_floor_tile(cave_type *c_ptr, cptr out_val, player_type *p_ptr, bool active, byte cave_flag); 501 extern void do_cmd_monster_desc_aux(player_type *p_ptr, int r_idx, bool quiet); 502 extern void do_cmd_monster_desc_all(player_type *p_ptr, char sym); 503 extern bool ang_sort_comp_monsters(void *player_context, vptr u, vptr v, int a, int b); 504 extern void ang_sort_swap_u16b(void *player_context, vptr u, vptr v, int a, int b); 505 506 /* cmd4.c */ 507 extern void do_cmd_redraw(void); 508 extern void do_cmd_change_name(void); 509 extern void do_cmd_message_one(void); 510 extern void do_cmd_messages(void); 511 extern void do_cmd_options(void); 512 extern void do_cmd_pref(void); 513 extern void do_cmd_macros(void); 514 extern void do_cmd_visuals(void); 515 extern void do_cmd_colors(void); 516 extern void do_cmd_note(void); 517 extern void do_cmd_version(void); 518 extern void do_cmd_feeling(player_type *p_ptr); 519 extern void do_cmd_load_screen(void); 520 extern void do_cmd_save_screen(void); 521 extern void do_cmd_check_artifacts(player_type *p_ptr, int line); 522 extern void do_cmd_check_uniques(player_type *p_ptr, int line); 523 extern void do_cmd_check_players(player_type *p_ptr, int line); 524 extern void do_cmd_check_other(player_type *p_ptr, int line); 525 extern void do_cmd_knowledge(player_type *p_ptr, char query); 526 extern void do_cmd_interactive(player_type *p_ptr, char query); 527 extern void do_cmd_interactive_input(player_type *p_ptr, char query); 528 extern void common_peruse(player_type *p_ptr, char query); 529 530 /* cmd5.c */ 531 extern void do_cmd_browse(player_type *p_ptr, int book); 532 extern void do_cmd_study(player_type *p_ptr, int book, int spell); 533 extern void do_cmd_cast_pre(player_type *p_ptr, int book, int dir, int spell); 534 extern void do_cmd_cast(player_type *p_ptr, int book, int spell); 535 extern void do_cmd_cast_fin(player_type *p_ptr, bool tried); 536 extern void do_cmd_pray_pre(player_type *p_ptr, int book, int dir, int spell); 537 extern void do_cmd_pray(player_type *p_ptr, int book, int spell); 538 extern void show_ghost_spells(player_type *p_ptr); 539 extern void do_cmd_ghost_power_pre(player_type *p_ptr, int dir, int ability); 540 extern void do_cmd_ghost_power(player_type *p_ptr, int ability); 541 extern void do_cmd_ghost_power_fin(player_type *p_ptr); 542 543 544 /* cmd6.c */ 545 extern void do_cmd_eat_food(player_type *p_ptr, int item); 546 extern void do_cmd_quaff_potion(player_type *p_ptr, int item); 547 extern void do_cmd_read_scroll(player_type *p_ptr, int item); 548 extern void do_cmd_read_scroll_end(player_type *p_ptr, int item, bool ident); 549 extern void do_cmd_read_scroll_on(player_type *p_ptr, int item, int item2); 550 extern void do_cmd_aim_wand(player_type *p_ptr, int item, int dir); 551 extern void do_cmd_use_staff_pre(player_type *p_ptr, int item, int item2); 552 extern void do_cmd_use_staff(player_type *p_ptr, int item); 553 extern void do_cmd_use_staff_discharge(player_type *p_ptr, int item, bool ident); 554 extern void do_cmd_zap_rod_pre(player_type *p_ptr, int item, int dir); 555 extern void do_cmd_zap_rod(player_type *p_ptr, int item); 556 extern void do_cmd_zap_rod_discharge(player_type *p_ptr, int dir, bool ident); 557 extern void do_cmd_activate(player_type *p_ptr, int item); 558 extern void do_cmd_activate_dir(player_type *p_ptr, int item, int dir); 559 extern void do_cmd_refill_potion(player_type *p_ptr, int item); 560 561 /* pathfind.c */ 562 extern bool findpath(player_type *p_ptr, int y, int x); 563 564 /* control.c */ 565 extern void console_print(char *msg, int chan); 566 567 /* dungeon.c */ 568 extern bool is_boring(byte feat); 569 extern void play_game(bool new_game); 570 extern void shutdown_server(void); 571 extern void dungeon(void); 572 extern bool check_special_level(s16b special_depth); 573 extern int find_player_name(char *name); 574 extern int find_player(s32b id); 575 extern int count_players(int Depth); 576 577 /* files.c */ 578 extern void safe_setuid_drop(void); 579 extern void safe_setuid_grab(void); 580 extern s16b tokenize(char *buf, s16b num, char **tokens); 581 extern void display_player(player_type *p_ptr); 582 extern errr file_character(cptr name, bool full); 583 extern errr process_pref_file_aux(char *buf); 584 extern errr process_pref_file(cptr name); 585 extern errr check_time_init(void); 586 extern errr check_load_init(void); 587 extern errr check_time(void); 588 extern errr check_load(void); 589 extern void read_times(void); 590 extern void show_news(void); 591 extern errr show_file(player_type *p_ptr, cptr name, cptr what, int line, int color); 592 extern int file_peruse_next(player_type *p_ptr, char query, int next); 593 extern void common_file_peruse(player_type *p_ptr, char query); 594 extern void copy_file_info(player_type *p_ptr, cptr name, int line, int color); 595 extern void do_cmd_help(player_type *p_ptr, int line); 596 extern int rewrite_player_name(char *wptr, char *bptr, const char *nick_name); 597 extern bool process_player_name(player_type *p_ptr, bool sf); 598 extern int process_player_name_aux(cptr name, cptr basename, bool sf); 599 /*extern void get_name(player_type *p_ptr);*/ 600 extern void do_cmd_suicide(player_type *p_ptr); 601 extern void do_cmd_save_game(player_type *p_ptr); 602 extern long total_points(player_type *p_ptr); 603 extern void display_scores(player_type *p_ptr, int to); 604 extern void add_high_score(player_type *p_ptr); 605 extern void close_game(void); 606 extern void exit_game_panic(void); 607 extern void signals_ignore_tstp(void); 608 extern void signals_handle_tstp(void); 609 extern void signals_init(void); 610 extern void kingly(player_type *p_ptr); 611 extern void setup_exit_handler(void); 612 extern errr get_rnd_line(cptr file_name, int entry, char *output); 613 extern errr file_character_server(player_type *p_ptr, cptr name); 614 615 /* generate.c */ 616 extern void alloc_dungeon_level(int Depth); 617 extern void dealloc_dungeon_level(int Depth); 618 extern void generate_cave(player_type *p_ptr, int Depth, int auto_scum); 619 extern void build_vault(int Depth, int yval, int xval, int ymax, int xmax, cptr data); 620 extern void place_closed_door(int Depth, int y, int x); 621 622 /* wilderness.c */ 623 extern int world_index(int world_x, int world_y); 624 extern void wild_cat_depth(int Depth, char *buf); 625 extern void init_wild_info(void); 626 extern void wild_apply_day(int Depth); 627 extern void wild_apply_night(int Depth); 628 extern int determine_wilderness_type(int Depth); 629 extern void wilderness_gen(int Depth); 630 extern void wild_add_monster(int Depth); 631 extern void wild_grow_crops(int Depth); 632 extern void do_cmd_plant_seed(player_type *p_ptr, int item); 633 634 /* init-txt.c */ 635 extern errr init_v_info_txt(FILE *fp, char *buf); 636 extern errr init_f_info_txt(FILE *fp, char *buf); 637 extern errr init_k_info_txt(FILE *fp, char *buf); 638 extern errr init_a_info_txt(FILE *fp, char *buf); 639 extern errr init_e_info_txt(FILE *fp, char *buf); 640 extern errr init_r_info_txt(FILE *fp, char *buf); 641 extern errr parse_file(struct parser *p, const char *filename); 642 643 /* init.c */ 644 extern void init_file_paths(char *path, char *path_wr); 645 extern void free_file_paths(void); 646 extern void init_some_arrays(void); 647 extern void load_server_cfg(void); 648 extern void unload_server_cfg(void); 649 extern void cleanup_angband(void); 650 651 /* load1.c */ 652 /*extern errr rd_savefile_old(void);*/ 653 654 /* load2.c */ 655 extern errr rd_savefile_new(player_type *p_ptr); 656 extern errr rd_server_savefile(void); 657 extern errr rd_savefile_new_scoop_aux(char *sfile, char *pass_word); 658 extern bool rd_dungeon_special_ext(int Depth, cptr levelname); 659 660 /* melee1.c */ 661 /* melee2.c */ 662 extern bool make_attack_normal(player_type *p_ptr, int m_idx); 663 extern bool make_attack_spell(player_type *p_ptr, int m_idx); 664 extern void process_monsters(void); 665 666 /* mon-desc.c */ 667 extern void screen_roff(int r_idx); 668 extern void display_roff(int r_idx); 669 670 /* monster.c */ 671 extern void describe_monster(player_type *p_ptr, int m_ind, bool spoilers); 672 extern void delete_monster_idx(int i); 673 extern void delete_monster(int Depth, int y, int x); 674 extern void compact_monsters(int size); 675 extern void wipe_m_list(int Depth); 676 extern s16b m_pop(void); 677 extern errr get_mon_num_prep(void); 678 extern s16b get_mon_num(int level); 679 extern void monster_desc(player_type *p_ptr, char *desc, int m_idx, int mode); 680 extern void lore_do_probe(player_type *p_ptr, int m_idx); 681 extern void lore_treasure(player_type *p_ptr, int m_idx, int num_item, int num_gold); 682 extern void update_mon(int m_idx, bool dist); 683 extern void update_monsters(bool dist); 684 extern void update_player(player_type *p_ptr); 685 extern void update_players(void); 686 extern bool place_monster_aux(int Depth, int y, int x, int r_idx, bool slp, bool grp); 687 extern bool place_monster(int Depth, int y, int x, bool slp, bool grp); 688 extern bool alloc_monster(int Depth, int dis, int slp); 689 extern bool summon_specific(int Depth, int y1, int x1, int lev, int type); 690 extern bool multiply_monster(int m_idx); 691 extern void update_smart_learn(int m_idx, int what); 692 extern void setup_monsters(void); 693 extern int race_index(char * name); 694 extern bool summon_specific_race(int Depth, int y1, int x1, int r_idx, unsigned char num); 695 extern bool summon_specific_race_somewhere(int Depth, int r_idx, unsigned char num); 696 extern int race_index_fuzzy(char * name); 697 extern int monster_richness(int r_idx); 698 extern u16b rand_mimic_kind(int r_idx); 699 700 /* monster2.c */ 701 extern bool is_detected(u32b flag, u32b esp); 702 extern void reveal_mimic(int m_idx); 703 extern void forget_monster(player_type *p_ptr, int m_idx, bool deleted); 704 extern s16b monster_carry(player_type *p_ptr, int m_idx, object_type *j_ptr); 705 extern bool monster_can_carry(int m_idx); 706 extern bool summon_specific_okay_aux(int r_idx, int summon_type); 707 extern void display_monlist(player_type *p_ptr); 708 709 // Transitional network hacks 710 #define Send_term_info(IND, FLAG, ARG) send_term_info(Players[Ind], FLAG, ARG) 711 #define Send_special_other(PLR, HEADER) send_term_header(PLR, NTERM_POP, HEADER) 712 #define Send_direction(IND) plog("Send_direction unimplemented\n") 713 #define Send_item_request(IND, tval_hook) plog("Send_item_request unimplemented\n") 714 #define Send_flush(IND) plog("Send_flush unimplemented\n") 715 #define Send_pause(PLR) send_term_info(PLR, NTERM_HOLD, NTERM_PAUSE) 716 717 /* net-server.c */ 718 extern void setup_network_server(); 719 extern void network_loop(); 720 extern void close_network_server(); 721 extern void report_to_meta_die(void); 722 extern int player_leave(int p_idx); 723 extern int player_disconnect(player_type *p_ptr, cptr reason); 724 725 /* net-game.c */ 726 extern int process_player_commands(player_type *p_ptr); 727 extern int stream_char_raw(player_type *p_ptr, int st, int y, int x, byte a, char c, byte ta, char tc); 728 extern int stream_char(player_type *p_ptr, int st, int y, int x); 729 extern int stream_line_as(player_type *p_ptr, int st, int y, int x); 730 extern int send_term_info(player_type *p_ptr, byte flag, u16b line); 731 extern int send_term_header(player_type *p_ptr, byte hint, cptr header); 732 extern int send_term_writefile(connection_type *ct, byte fmode, cptr filename); 733 extern int send_term_write(player_type *p_ptr, byte fmode, cptr filename); 734 extern int send_cursor(player_type *p_ptr, byte vis, byte x, byte y); 735 extern int send_target_info(player_type *p_ptr, byte x, byte y, byte win, cptr str); 736 extern int send_character_info(player_type *p_ptr); 737 extern int send_slash_fx(player_type *p_ptr, byte y, byte x, byte dir, byte fx); 738 extern int send_air_char(player_type *p_ptr, byte y, byte x, char a, char c, u16b delay, u16b fade); 739 extern int send_floor(player_type *p_ptr, byte a, char c, byte attr, int amt, byte tval, byte flag, byte s_tester, cptr name, cptr name_one); 740 extern int send_inven(player_type *p_ptr, char pos, byte a, char c, byte attr, int wgt, int amt, byte tval, byte flag, byte s_tester, cptr name, cptr name_one); 741 extern int send_equip(player_type *p_ptr, char pos, byte attr, int wgt, byte tval, byte flag, cptr name); 742 extern int send_spell_info(player_type *p_ptr, u16b book, u16b id, byte flag, byte item_tester, cptr desc); 743 extern int send_ghost(player_type *p_ptr); 744 extern int send_inventory_info_DEPRECATED(connection_type *ct); 745 extern int send_inventory_info(connection_type *ct); 746 extern int send_objflags_info(connection_type *ct); 747 extern int send_floor_info(connection_type *ct); 748 extern int send_indication(player_type *p_ptr, int id, ...); 749 extern int send_objflags(player_type *p_ptr, int line); 750 extern int send_party_info(player_type *p_ptr); 751 extern int send_message(player_type *p_ptr, cptr msg, u16b typ); 752 extern int send_message_repeat(player_type *p_ptr, u16b typ); 753 extern int send_sound(player_type *p_ptr, u16b sound); 754 extern int send_channel(player_type *p_ptr, char mode, u16b id, cptr name); 755 extern int send_store(player_type *p_ptr, char pos, byte ga, char gc, byte attr, s16b wgt, s16b number, long price, cptr name); 756 extern int send_store_info(player_type *p_ptr, byte flag, cptr name, char *owner, int items, long purse); 757 extern int send_store_sell(player_type *p_ptr, u32b price); 758 extern int send_store_leave(player_type *p_ptr); 759 extern int send_confirm_request(player_type *p_ptr, byte type, cptr buf); 760 extern int send_pickup_check(player_type *p_ptr, cptr buf); 761 762 763 764 /* obj-info.c */ 765 /* object1.c */ 766 /* object2.c */ 767 extern void object_info_screen(const object_type *o_ptr); 768 extern void flavor_init(void); 769 extern void reset_visuals(void); 770 extern void flavor_copy(char *buf, u16b flavor, object_type *o_ptr); 771 extern void object_prep(object_type *o_ptr, int k_idx); 772 extern void object_flags(const object_type *o_ptr, u32b *f1, u32b *f2, u32b *f3); 773 extern void object_flags_known(const player_type *p_ptr, const object_type *o_ptr, u32b *f1, u32b *f2, u32b *f3); 774 extern void object_desc(const player_type *p_ptr, char *buf, size_t buflen, const object_type *o_ptr, int pref, int mode); 775 extern void object_desc_one(const player_type *p_ptr, char *buf, size_t bufsize, object_type *o_ptr, int force, int mode); 776 extern void object_desc_store(const player_type *p_ptr, char *buf, object_type *o_ptr, int pref, int mode); 777 extern bool identify_fully_aux(player_type *p_ptr, object_type *o_ptr); 778 extern char index_to_label(int i); 779 extern s16b label_to_inven(player_type *p_ptr, int c); 780 extern s16b label_to_equip(player_type *p_ptr, int c); 781 extern s16b wield_slot(player_type *p_ptr, object_type *o_ptr); 782 extern cptr mention_use(player_type *p_ptr, int i); 783 extern cptr describe_use(player_type *p_ptr, int i); 784 extern void inven_item_charges(player_type *p_ptr, int item); 785 extern void inven_item_describe(player_type *p_ptr, int item); 786 extern void inven_item_increase(player_type *p_ptr, int item, int num); 787 extern void inven_item_optimize(player_type *p_ptr, int item); 788 extern void floor_item_charges(int item); 789 extern void floor_item_describe(int item); 790 extern void floor_item_increase(int item, int num); 791 extern void floor_item_optimize(int item); 792 extern void floor_item_notify(player_type *p_ptr, s16b o_idx, bool force); 793 extern bool inven_drop_okay(player_type *p_ptr, object_type *o_ptr); 794 extern bool inven_carry_okay(player_type *p_ptr, object_type *o_ptr); 795 extern s16b inven_carry(player_type *p_ptr, object_type *o_ptr); 796 extern bool item_tester_okay(object_type *o_ptr); 797 extern void display_inven(player_type *p_ptr); 798 extern void display_equip(player_type *p_ptr); 799 /*extern void show_inven(void); 800 extern void show_equip(void); 801 extern void toggle_inven_equip(void); 802 extern bool get_item(player_type *p_ptr, int *cp, cptr pmt, bool equip, bool inven, bool floor);*/ 803 extern void delete_object_idx(int i); 804 extern void delete_object_ptr(object_type * o_ptr); 805 extern void delete_object(int Depth, int y, int x); 806 extern void compact_objects(int size); 807 extern void wipe_o_list(int Depth); 808 extern s16b o_pop(void); 809 extern errr get_obj_num_prep(void); 810 extern s16b get_obj_num(int level); 811 extern bool object_is_fuel(player_type *p_ptr, object_type *o_ptr, bool *fits); 812 extern byte object_tester_flag(player_type *p_ptr, object_type *o_ptr, byte *secondary_tester); 813 extern void object_known(object_type *o_ptr); 814 extern void object_aware(player_type *p_ptr, object_type *o_ptr); 815 extern void object_tried(player_type *p_ptr, object_type *o_ptr); 816 extern s32b object_value(player_type *p_ptr, object_type *o_ptr); 817 extern bool object_similar_floor(object_type *o_ptr, object_type *j_ptr); 818 extern bool object_similar(const player_type *p_ptr, const object_type *o_ptr, const object_type *j_ptr); 819 extern void object_absorb(player_type *p_ptr, object_type *o_ptr, object_type *j_ptr); 820 extern s16b lookup_kind(int tval, int sval); 821 extern void invwipe(object_type *o_ptr); 822 extern void invcopy(object_type *o_ptr, int k_idx); 823 extern bool check_ego(object_type *o_ptr, int level, int power, int idx); 824 extern void apply_magic(int Depth, object_type *o_ptr, int lev, bool okay, bool good, bool great); 825 extern object_type* place_object(int Depth, int y, int x, bool good, bool great, byte origin); 826 extern void acquirement(int Depth, int y1, int x1, int num, bool great); 827 extern void place_trap(int Depth, int y, int x); 828 extern void place_gold(int Depth, int y, int x); 829 extern void process_objects(void); 830 extern void drop_near(object_type *o_ptr, int chance, int Depth, int y, int x); 831 extern void pick_trap(int Depth, int y, int x); 832 extern cptr item_activation(object_type *o_ptr); 833 extern void combine_pack(player_type *p_ptr); 834 extern void reorder_pack(player_type *p_ptr); 835 extern void setup_objects(void); 836 extern void distribute_charges(object_type *o_ptr, object_type *q_ptr, int amt); 837 extern void reduce_charges(object_type *o_ptr, int amt); 838 extern void object_audit(player_type *p_ptr, object_type *o_ptr, int amt); 839 extern void object_own(player_type *p_ptr, object_type *o_ptr); 840 extern void artifact_notify(player_type *p_ptr, object_type *o_ptr); 841 extern object_type* player_get_item(player_type *p_ptr, int item, int *idx); 842 extern object_type* player_get_floor_item(player_type *p_ptr, int *idx); 843 extern void player_redraw_item(player_type *p_ptr, int item); 844 extern void player_redraw_fuel_items(player_type *p_ptr); 845 extern u16b rand_tval_kind(int tval); 846 extern void display_itemlist(player_type *p_ptr); 847 848 /* randart.c */ 849 extern artifact_type *randart_make(const object_type *o_ptr); 850 extern void randart_name(const object_type *o_ptr, char *buffer); 851 852 /* party.c */ 853 extern int party_lookup(cptr name); 854 extern bool player_in_party(int party_id, player_type *p_ptr); 855 extern int party_create(player_type *p_ptr, cptr name); 856 extern int party_add(player_type *p_ptr, cptr name); 857 extern int party_remove(player_type *p_ptr, cptr name); 858 extern void party_leave(player_type *p_ptr); 859 extern void party_msg(int party_id, cptr msg); 860 extern void party_msg_format(int party_id, cptr fmt, ...); 861 extern void party_msg_format_near(player_type *p_ptr, u16b type, cptr fmt, ...); 862 extern void party_gain_exp(player_type *p_ptr, int party_id, s32b amount, int m_idx); 863 extern int party_mark_members(player_type *p_ptr, int m_idx); 864 extern void party_share_hurt(player_type *p_ptr, player_type *q_ptr); 865 extern bool add_hostility(player_type *p_ptr, cptr name); 866 extern bool remove_hostility(player_type *p_ptr, cptr name); 867 extern bool check_hostile(player_type *attacker, player_type *target); 868 extern cptr lookup_player_name(int id); 869 extern int lookup_player_id(cptr name); 870 extern void add_player_name(cptr name, int id); 871 extern void delete_player_id(int id); 872 extern void delete_player_name(cptr name); 873 extern void wipe_player_names(); 874 extern int player_id_list(int **list); 875 extern bool pvp_okay(player_type *attacker, player_type *target, int mode); 876 extern int ego_kind_index_fuzzy(char * name); 877 extern int item_kind_index_fuzzy(char * name); 878 extern bool place_specific_object(int Depth, int y1, int x1, object_type *forge, int lev, int num); 879 880 /* save.c */ 881 extern bool save_player(player_type *p_ptr); 882 extern int scoop_player(char *nick, char *pass); 883 extern bool load_player(player_type *p_ptr); 884 extern bool load_server_info(void); 885 extern bool save_server_info(void); 886 extern bool wr_dungeon_special_ext(int Depth, cptr levelname); 887 888 889 /* spells1.c */ 890 extern u16b default_bolt_pict(int typ, int dir, int *index); 891 extern s16b poly_r_idx(int r_idx); 892 extern void teleport_away(int m_idx, int dis); 893 extern void teleport_player(player_type *p_ptr, int dis); 894 extern void teleport_player_to(player_type *p_ptr, int ny, int nx); 895 extern void teleport_player_level(player_type *p_ptr); 896 extern void take_hit(player_type *p_ptr, int damage, cptr kb_str); 897 extern void acid_dam(player_type *p_ptr, int dam, cptr kb_str); 898 extern void elec_dam(player_type *p_ptr, int dam, cptr kb_str); 899 extern void fire_dam(player_type *p_ptr, int dam, cptr kb_str); 900 extern void cold_dam(player_type *p_ptr, int dam, cptr kb_str); 901 extern bool inc_stat(player_type *p_ptr, int stat); 902 extern bool dec_stat(player_type *p_ptr, int stat, int amount, int permanent); 903 extern bool res_stat(player_type *p_ptr, int stat); 904 extern bool apply_disenchant(player_type *p_ptr, int mode); 905 extern bool project(int who, int rad, int Depth, int y, int x, int dam, int typ, int flg); 906 extern bool project_hook(player_type *p_ptr, int typ, int dir, int dam, int flg); 907 908 /* spells2.c */ 909 extern void wipe_spell(int Depth, int cy, int cx, int r); 910 extern bool hp_player(player_type *p_ptr, int num); 911 extern bool hp_player_quiet(player_type *p_ptr, int num); 912 extern bool warding_glyph(player_type *p_ptr); 913 extern bool do_dec_stat(player_type *p_ptr, int stat); 914 extern bool do_res_stat(player_type *p_ptr, int stat); 915 extern bool do_inc_stat(player_type *p_ptr, int stat); 916 extern void identify_pack(player_type *p_ptr); 917 extern void message_pain(player_type *p_ptr, int m_idx, int dam); 918 extern bool remove_curse(player_type *p_ptr); 919 extern bool remove_all_curse(player_type *p_ptr); 920 extern bool restore_level(player_type *p_ptr); 921 extern void self_knowledge(player_type *p_ptr, bool spoil); 922 extern bool lose_all_info(player_type *p_ptr); 923 extern void map_area(player_type *p_ptr); 924 extern bool detect_treasure(player_type *p_ptr); 925 extern bool detect_objects_magic(player_type *p_ptr); 926 extern bool detect_invisible(player_type *p_ptr, bool pause); 927 extern bool detect_evil(player_type *p_ptr); 928 extern bool detect_creatures(player_type *p_ptr, bool pause); 929 extern bool detection(player_type *p_ptr); 930 extern bool detect_objects_normal(player_type *p_ptr); 931 extern bool detect_trap(player_type *p_ptr); 932 extern bool detect_sdoor(player_type *p_ptr); 933 extern void stair_creation(player_type *p_ptr); 934 extern bool enchant(player_type *p_ptr, object_type *o_ptr, int n, int eflag); 935 extern bool enchant_spell(player_type *p_ptr, int num_hit, int num_dam, int num_ac, bool discount); 936 extern bool enchant_spell_aux(player_type *p_ptr, int item, int num_hit, int num_dam, int num_ac, bool discount); 937 extern bool ident_spell(player_type *p_ptr); 938 extern bool ident_spell_aux(player_type *p_ptr, int item); 939 extern bool identify_fully(player_type *p_ptr); 940 extern bool identify_fully_item(player_type *p_ptr, int item); 941 extern bool recharge(player_type *p_ptr, int num); 942 extern bool recharge_aux(player_type *p_ptr, int item, int num); 943 extern bool speed_monsters(player_type *p_ptr); 944 extern bool slow_monsters(player_type *p_ptr); 945 extern bool sleep_monsters(player_type *p_ptr); 946 extern void aggravate_monsters(player_type *p_ptr, int who); 947 extern bool banishment(player_type *p_ptr); 948 extern bool mass_banishment(player_type *p_ptr); 949 extern bool probing(player_type *p_ptr); 950 extern bool banish_evil(player_type *p_ptr, int dist); 951 extern bool dispel_evil(player_type *p_ptr, int dam); 952 extern bool dispel_undead(player_type *p_ptr, int dam); 953 extern bool dispel_monsters(player_type *p_ptr, int dam); 954 extern bool turn_undead(player_type *p_ptr); 955 extern void destroy_area(int Depth, int y1, int x1, int r, bool full); 956 extern void earthquake(int Depth, int cy, int cx, int r); 957 extern void lite_room(player_type *p_ptr, int Depth, int y1, int x1); 958 extern void unlite_room(player_type *p_ptr, int Depth, int y1, int x1); 959 extern bool lite_area(player_type *p_ptr, int dam, int rad); 960 extern bool unlite_area(player_type *p_ptr, int dam, int rad); 961 extern bool fire_swarm(player_type *p_ptr, int num, int typ, int dir, int dam, int rad); 962 extern bool fire_ball(player_type *p_ptr, int typ, int dir, int dam, int rad); 963 extern bool fire_bolt(player_type *p_ptr, int typ, int dir, int dam); 964 extern bool fire_beam(player_type *p_ptr, int typ, int dir, int dam); 965 extern bool fire_bolt_or_beam(player_type *p_ptr, int prob, int typ, int dir, int dam); 966 extern bool lite_line(player_type *p_ptr, int dir); 967 extern bool strong_lite_line(player_type *p_ptr, int dir); 968 extern bool drain_life(player_type *p_ptr, int dir, int dam); 969 extern bool wall_to_mud(player_type *p_ptr, int dir); 970 extern bool destroy_door(player_type *p_ptr, int dir); 971 extern bool disarm_trap(player_type *p_ptr, int dir); 972 extern bool heal_monster(player_type *p_ptr, int dir); 973 extern bool speed_monster(player_type *p_ptr, int dir); 974 extern bool slow_monster(player_type *p_ptr, int dir); 975 extern bool sleep_monster(player_type *p_ptr, int dir); 976 extern bool confuse_monster(player_type *p_ptr, int dir, int plev); 977 extern bool fear_monster(player_type *p_ptr, int dir, int plev); 978 extern bool poly_monster(player_type *p_ptr, int dir); 979 extern bool clone_monster(player_type *p_ptr, int dir); 980 extern bool teleport_monster(player_type *p_ptr, int dir); 981 extern bool alter_reality(player_type *p_ptr, bool power); 982 extern bool heal_player_ball(player_type *p_ptr, int dir, int dam); 983 extern bool project_spell_ball(player_type *p_ptr, int dir, int spell); 984 extern bool project_prayer_ball(player_type *p_ptr, int dir, int spell); 985 extern bool door_creation(player_type *p_ptr); 986 extern bool trap_creation(player_type *p_ptr); 987 extern bool destroy_doors_touch(player_type *p_ptr); 988 extern bool sleep_monsters_touch(player_type *p_ptr); 989 extern bool create_artifact(player_type *p_ptr); 990 extern bool create_artifact_aux(player_type *p_ptr, int item); 991 extern void brand_ammo(player_type *p_ptr, int item, bool discount); 992 extern void brand_weapon(player_type *p_ptr, bool discount); 993 extern bool brand_bolts(player_type *p_ptr, bool discount); 994 extern void ring_of_power(player_type *p_ptr, int dir); 995 extern bool curse_armor(player_type *p_ptr); 996 extern bool curse_weapon(player_type *p_ptr); 997 998 999 /* store.c */ 1000 extern bool get_store_item(player_type *p_ptr, int item, object_type *i_ptr); 1001 extern int get_player_store_name(int num, char *name); 1002 extern void store_purchase(player_type *p_ptr, int item, int amt, cptr checksum); 1003 extern void store_sell(player_type *p_ptr, int item, int amt); 1004 extern void store_confirm(player_type *p_ptr); 1005 extern void do_cmd_store(player_type *p_ptr, int pstore); 1006 extern void store_shuffle(int which); 1007 extern void store_maint(int which); 1008 extern void store_init(int which); 1009 extern s32b player_price_item(player_type *p_ptr, object_type *o_ptr); 1010 1011 /* util.c */ 1012 extern errr path_temp(char *buf, int max); 1013 extern void flush(void); 1014 extern void bell(void); 1015 extern void sound(player_type *p_ptr, int num); 1016 extern void text_to_ascii(char *buf, cptr str); 1017 extern void ascii_to_text(char *buf, cptr str); 1018 extern void keymap_init(void); 1019 extern void macro_add(cptr pat, cptr act, bool cmd_flag); 1020 extern char inkey(void); 1021 extern cptr quark_str(s16b num); 1022 extern s16b quark_add(cptr str); 1023 extern void fill_prevent_inscription(bool *arr, s16b quark); 1024 extern void update_prevent_inscriptions(player_type *p_ptr); 1025 extern bool check_guard_inscription( s16b quark, char what); 1026 extern s16b message_num(void); 1027 extern cptr message_str(s16b age); 1028 extern void message_add(cptr msg); 1029 extern void msg_print(player_type *p_ptr, cptr msg); 1030 extern void msg_print_aux(player_type *p_ptr, cptr msg, u16b type); 1031 extern void msg_broadcast(player_type *p_ptr, cptr msg); 1032 extern void msg_channel(int chan, cptr msg); 1033 extern void msg_format_p(player_type *p_ptr, cptr fmt, ...); 1034 extern void msg_format(player_type *p_ptr, cptr fmt, ...); 1035 extern void msg_format_type(player_type *p_ptr, u16b type, cptr fmt, ...); 1036 extern void msg_print_near(player_type *p_ptr, cptr msg); 1037 extern void msg_format_near(player_type *p_ptr, cptr fmt, ...); 1038 extern void msg_print_complex_near(player_type *p_ptr, player_type *q_ptr, u16b type, cptr msg); 1039 extern void msg_format_complex_near(player_type *p_ptr, player_type *q_ptr, u16b type, cptr fmt, ...); 1040 extern void msg_format_complex_far(player_type *p_ptr, player_type *q_ptr, u16b type, cptr fmt, cptr sender, ...); 1041 extern void msg_format_monster(int m_idx, player_type *q_ptr, u16b type, cptr fmt_vis, cptr fmt_inv, ...); 1042 extern void player_talk(player_type *p_ptr, char *msg); 1043 extern void channel_join(player_type *p_ptr, cptr channel, bool quiet); 1044 extern void channel_leave(player_type *p_ptr, cptr channel); 1045 extern void channel_leave_id(player_type *p_ptr, int i, bool quiet); 1046 extern void channels_leave(player_type *p_ptr); 1047 extern bool is_a_vowel(int ch); 1048 extern void log_history_event(player_type *p_ptr, char *msg, bool unique); 1049 extern void history_wipe(history_event *evt); 1050 extern cptr format_history_event(history_event *evt); 1051 extern int color_text_to_attr(cptr name); 1052 extern int color_opposite(int color); 1053 extern cptr attr_to_text(byte a); 1054 extern void send_prepared_info(player_type *p_ptr, byte win, byte stream, byte extra_params); 1055 extern void send_prepared_popup(player_type *p_ptr, cptr header); 1056 extern void monster_race_track_hack(player_type *p_ptr); 1057 extern void text_out(cptr buf); 1058 extern void text_out_c(byte a, cptr buf); 1059 extern void text_out_init(player_type *p_ptr); 1060 extern void text_out_done(); 1061 extern void text_out_save(); 1062 extern void text_out_load(); 1063 extern void c_prt(player_type *p_ptr, byte attr, cptr str, int row, int col); 1064 extern void prt(player_type *p_ptr, cptr str, int row, int col); 1065 extern void clear_line(player_type *p_ptr, int row); 1066 extern void clear_from(player_type *p_ptr, int row); 1067 extern bool ask_for(player_type *p_ptr, char query, char *buf); 1068 extern bool askfor_aux(player_type *p_ptr, char query, char *buf, int row, int col, cptr prompt, cptr default_value, byte prompt_attr, byte input_attr); 1069 1070 /* xtra1.c */ 1071 extern void cnv_stat(int val, char *out_val); 1072 extern s16b modify_stat_value(int value, int amount); 1073 extern void notice_stuff(player_type *p_ptr); 1074 extern void update_stuff(player_type *p_ptr); 1075 extern void redraw_stuff(player_type *p_ptr); 1076 extern void window_stuff(player_type *p_ptr); 1077 extern void handle_stuff(player_type *p_ptr); 1078 extern void prt_history(player_type *p_ptr); 1079 extern void c_prt_status_line(player_type *p_ptr, cave_view_type *dest, int len); 1080 extern void player_flags(player_type *p_ptr, u32b *f1, u32b * f2, u32b *f3); 1081 1082 /* xtra2.c */ 1083 extern int get_player(player_type *p_ptr, object_type *o_ptr); 1084 extern void describe_player(player_type *p_ptr, player_type *who); 1085 extern bool set_blind(player_type *p_ptr, int v); 1086 extern bool set_confused(player_type *p_ptr, int v); 1087 extern bool set_poisoned(player_type *p_ptr, int v); 1088 extern bool set_afraid(player_type *p_ptr, int v); 1089 extern bool set_paralyzed(player_type *p_ptr, int v); 1090 extern bool set_image(player_type *p_ptr, int v); 1091 extern bool set_fast(player_type *p_ptr, int v); 1092 extern bool set_slow(player_type *p_ptr, int v); 1093 extern bool set_shield(player_type *p_ptr, int v); 1094 extern bool set_blessed(player_type *p_ptr, int v); 1095 extern bool set_hero(player_type *p_ptr, int v); 1096 extern bool set_shero(player_type *p_ptr, int v); 1097 extern bool set_protevil(player_type *p_ptr, int v); 1098 extern bool set_invuln(player_type *p_ptr, int v); 1099 extern bool set_tim_invis(player_type *p_ptr, int v); 1100 extern bool set_tim_infra(player_type *p_ptr, int v); 1101 extern bool set_oppose_acid(player_type *p_ptr, int v); 1102 extern bool set_oppose_elec(player_type *p_ptr, int v); 1103 extern bool set_oppose_fire(player_type *p_ptr, int v); 1104 extern bool set_oppose_cold(player_type *p_ptr, int v); 1105 extern bool set_oppose_pois(player_type *p_ptr, int v); 1106 extern bool set_stun(player_type *p_ptr, int v); 1107 extern bool set_cut(player_type *p_ptr, int v); 1108 extern bool set_food(player_type *p_ptr, int v); 1109 extern void set_recall(player_type *p_ptr, object_type * o_ptr); 1110 extern bool set_noise(player_type *p_ptr, int v); 1111 extern void check_experience(player_type *p_ptr); 1112 extern void gain_exp(player_type *p_ptr, s32b amount); 1113 extern void lose_exp(player_type *p_ptr, s32b amount); 1114 extern void monster_death(player_type *p_ptr, int m_idx); 1115 extern void player_death(player_type *p_ptr); 1116 extern void resurrect_player(player_type *p_ptr); 1117 extern bool mon_take_hit(player_type *p_ptr, int m_idx, int dam, bool *fear, cptr note); 1118 extern bool adjust_panel(player_type *p_ptr, int y, int x); 1119 extern void panel_bounds(player_type *p_ptr); 1120 extern void verify_panel(player_type *p_ptr); 1121 extern void setup_panel(player_type *p_ptr, bool adjust); 1122 extern cptr look_mon_desc(int m_idx); 1123 extern int pick_arena(int Depth, int y, int x); 1124 extern int pick_arena_opponent(player_type *p_ptr, int a); 1125 extern void access_arena(player_type *p_ptr, int y, int x); 1126 extern void ang_sort_swap_distance(void *player_context, vptr u, vptr v, int a, int b); 1127 extern bool ang_sort_comp_distance(void *player_context, vptr u, vptr v, int a, int b); 1128 extern bool ang_sort_comp_value(void *player_context, vptr u, vptr v, int a, int b); 1129 extern void ang_sort_swap_value(void *player_context, vptr u, vptr v, int a, int b); 1130 extern bool target_able(player_type *p_ptr, int m_idx); 1131 extern bool target_okay(player_type *p_ptr); 1132 extern s16b target_pick(player_type *p_ptr, int y1, int x1, int dy, int dx); 1133 extern bool target_set_interactive(player_type *p_ptr, int mode, char query); 1134 extern bool target_set_interactive_mouse(player_type *p_ptr, int mod, int y, int x); 1135 extern bool get_aim_dir(player_type *p_ptr, int *dp); 1136 extern bool get_item(player_type *p_ptr, int *cp, byte tval_hook); 1137 extern bool confuse_dir(bool confused, int *dp); 1138 extern int motion_dir(int y1, int x1, int y2, int x2); 1139 extern bool do_scroll_life(player_type *p_ptr); 1140 extern bool do_restoreXP_other(player_type *p_ptr); 1141 extern u32b level_speed(int Depth); 1142 extern int time_factor(player_type *p_ptr); 1143 extern int base_time_factor(player_type *p_ptr, int slowest); 1144 extern void show_motd(player_type *p_ptr); 1145 extern void show_tombstone(player_type *p_ptr); 1146 extern void wipe_socials(); 1147 extern void boot_socials(); 1148 extern void show_socials(player_type *p_ptr); 1149 extern void do_cmd_social(player_type *p_ptr, int dir, int i); 1150 extern void do_cmd_dungeon_master(player_type *p_ptr, char query); 1151 1152 extern void master_new_hook(player_type *p_ptr, char hook_q, s16b oy, s16b ox); 1153 1154 extern bool master_level(player_type *p_ptr, char * parms); 1155 extern bool master_build(player_type *p_ptr, char * parms); 1156 extern bool master_summon(player_type *p_ptr, char * parms); 1157 extern bool master_generate(player_type *p_ptr, char * parms); 1158 extern bool master_acquire(player_type *p_ptr, char * parms); 1159 extern bool master_player(player_type *p_ptr, char * parms); 1160 1161 /*extern bool get_rep_dir(int *dp);*/ 1162 1163 extern bool c_get_item(int *cp, cptr pmt, bool equip, bool inven, bool floor); 1164 1165 /* x-spell.c */ 1166 extern cptr spell_names[MAX_SPELL_REALMS][PY_MAX_SPELLS]; 1167 extern magic_type ghost_spells[8]; 1168 extern void spells_init(); 1169 extern int get_spell_index(const player_type *p_ptr, const object_type *o_ptr, int index); 1170 extern cptr get_spell_name(int tval, int index); 1171 extern cptr get_spell_info(player_type *p_ptr, int index); 1172 extern byte get_spell_flag(int tval, int spell, byte player_flag, byte *item_tester); 1173 extern bool cast_spell(player_type *p_ptr, int tval, int index); 1174 extern bool cast_spell_hack(player_type *p_ptr, int tval, int index); 1175 1176 /* use-obj.c */ 1177 extern bool use_object(player_type *p_ptr, object_type *o_ptr, int item, bool *ident); 1178 extern bool use_object_current(player_type *p_ptr); 1179 1180 /* 1181 * Hack -- conditional (or "bizarre") externs 1182 */ 1183 1184 1185 #ifndef HAVE_MEMSET 1186 /* util.c */ 1187 extern void *memset(void*, int, size_t); 1188 #endif 1189 1190 #ifndef HAVE_STRICMP 1191 /* util.c */ 1192 extern int stricmp(cptr a, cptr b); 1193 #endif 1194 1195 #ifdef MACINTOSH 1196 /* main-mac.c */ 1197 /* extern void main(void); */ 1198 #endif 1199 1200 #ifdef WINDOWS 1201 /* main-win.c */ 1202 /* extern int FAR PASCAL WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, ...); */ 1203 #endif 1204