X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=src%2Fexterns.h;h=b87d72e40552cc492909bc04ce8798f53a9bbcad;hb=bd687f64105e6bfae94c16b16b5c499ed060064b;hp=cd7b9776bf273124aefe13c4836020f2ac493616;hpb=f5310c158052385a30b6ff366642891e0070473f;p=hengband%2Fhengband.git diff --git a/src/externs.h b/src/externs.h index cd7b9776b..b87d72e40 100644 --- a/src/externs.h +++ b/src/externs.h @@ -93,7 +93,6 @@ extern const cptr color_names[16]; extern const cptr stat_names[6]; extern const cptr stat_names_reduced[6]; extern const cptr window_flag_desc[32]; -extern const option_type option_info[]; extern const cptr chaos_patrons[MAX_PATRON]; extern const int chaos_stats[MAX_PATRON]; extern const int chaos_rewards[MAX_PATRON][20]; @@ -116,6 +115,10 @@ extern const dragonbreath_type dragonbreath_info[]; extern const activation_type activation_info[]; extern const cptr artifact_bias_name[MAX_BIAS]; +extern const option_type option_info[]; +extern const option_type cheat_info[CHEAT_MAX]; +extern const option_type autosave_info[2]; + /* variable.c */ extern const cptr copyright[5]; extern byte h_ver_major; @@ -153,12 +156,12 @@ extern COMMAND_ARG command_arg; extern s16b command_rep; extern DIRECTION command_dir; extern s16b command_see; -extern s16b command_gap; +extern TERM_POSITION command_gap; extern s16b command_wrk; extern s16b command_new; extern bool msg_flag; extern s16b running; -extern s16b resting; +extern GAME_TURN resting; extern POSITION cur_hgt; extern POSITION cur_wid; extern DEPTH dun_level; @@ -166,6 +169,7 @@ extern s16b num_repro; extern DEPTH object_level; extern DEPTH monster_level; extern DEPTH base_level; +extern bool invoking_midnight_curse; extern s32b turn; extern s32b turn_limit; extern s32b dungeon_turn; @@ -188,7 +192,6 @@ extern bool shimmer_monsters; extern bool shimmer_objects; extern bool repair_monsters; extern bool repair_objects; -extern s16b inven_nxt; extern s16b inven_cnt; extern s16b equip_cnt; extern s16b o_max; @@ -203,7 +206,7 @@ extern int leaving_quest; extern bool reinit_wilderness; extern bool multi_rew; extern char summon_kin_type; -extern bool hack_mind; +extern bool is_loading_now; extern bool hack_mutation; @@ -282,7 +285,7 @@ extern bool ignore_unview; /* Ignore whenever any monster does */ extern bool show_ammo_detail; /* Show Description of ammo damage */ extern bool show_ammo_no_crit; /* Show No-crit damage of ammo */ extern bool show_ammo_crit_ratio; /* Show critical ratio of ammo */ - +extern bool show_actual_value; /* Show actual value of skill */ /*** Game-Play Options ***/ @@ -383,6 +386,7 @@ extern bool cheat_live; extern bool cheat_save; extern bool cheat_diary_output; extern bool cheat_turn; +extern bool cheat_sight; extern char record_o_name[MAX_NLEN]; extern s32b record_turn; @@ -405,19 +409,19 @@ extern int player_egid; extern char player_base[32]; extern char savefile[1024]; extern char savefile_base[40]; -extern s16b lite_n; +extern POSITION_IDX lite_n; extern POSITION lite_y[LITE_MAX]; extern POSITION lite_x[LITE_MAX]; -extern s16b mon_lite_n; +extern POSITION_IDX mon_lite_n; extern POSITION mon_lite_y[MON_LITE_MAX]; extern POSITION mon_lite_x[MON_LITE_MAX]; -extern s16b view_n; +extern POSITION_IDX view_n; extern POSITION view_y[VIEW_MAX]; extern POSITION view_x[VIEW_MAX]; -extern s16b temp_n; +extern POSITION_IDX temp_n; extern POSITION temp_y[TEMP_MAX]; extern POSITION temp_x[TEMP_MAX]; -extern s16b redraw_n; +extern POSITION_IDX redraw_n; extern POSITION redraw_y[REDRAW_MAX]; extern POSITION redraw_x[REDRAW_MAX]; extern s16b macro__num; @@ -425,7 +429,7 @@ extern cptr *macro__pat; extern cptr *macro__act; extern bool *macro__cmd; extern char *macro__buf; -extern s16b quark__num; +extern STR_OFFSET quark__num; extern cptr *quark__str; extern u32b message__next; extern u32b message__last; @@ -516,20 +520,20 @@ extern bool (*ang_sort_comp)(vptr u, vptr v, int a, int b); extern void (*ang_sort_swap)(vptr u, vptr v, int a, int b); extern monster_hook_type get_mon_num_hook; extern monster_hook_type get_mon_num2_hook; -extern bool (*get_obj_num_hook)(int k_idx); +extern bool (*get_obj_num_hook)(KIND_OBJECT_IDX k_idx); extern bool monk_armour_aux; extern bool monk_notify_aux; extern wilderness_type **wilderness; extern building_type building[MAX_BLDG]; -extern IDX max_quests; +extern QUEST_IDX max_q_idx; extern MONRACE_IDX max_r_idx; extern IDX max_k_idx; extern IDX max_v_idx; extern IDX max_f_idx; -extern IDX max_a_idx; +extern ARTIFACT_IDX max_a_idx; extern IDX max_e_idx; -extern IDX max_d_idx; -extern IDX max_o_idx; +extern DUNGEON_IDX max_d_idx; +extern OBJECT_IDX max_o_idx; extern MONSTER_IDX max_m_idx; extern POSITION max_wild_x; extern POSITION max_wild_y; @@ -545,18 +549,18 @@ extern s16b world_monster; extern bool world_player; extern int cap_mon; extern int cap_mspeed; -extern int cap_hp; -extern int cap_maxhp; -extern u16b cap_nickname; -extern IDX battle_mon[4]; +extern HIT_POINT cap_hp; +extern HIT_POINT cap_maxhp; +extern STR_OFFSET cap_nickname; +extern MONRACE_IDX battle_mon[4]; extern int sel_monster; extern int battle_odds; -extern int kakekin; +extern PRICE kakekin; extern u32b mon_odds[4]; extern MONSTER_IDX pet_t_m_idx; extern MONSTER_IDX riding_t_m_idx; -extern s16b kubi_r_idx[MAX_KUBI]; -extern s16b today_mon; +extern MONRACE_IDX kubi_r_idx[MAX_KUBI]; +extern MONRACE_IDX today_mon; extern bool write_level; extern u32b playtime; extern u32b start_time; @@ -620,7 +624,7 @@ extern FEAT_IDX feat_wall_inner; extern FEAT_IDX feat_wall_solid; extern FEAT_IDX floor_type[100], fill_type[100]; extern bool now_damaged; -extern s16b now_message; +extern COMMAND_CODE now_message; extern bool use_menu; /* autopick.c */ @@ -688,7 +692,7 @@ extern bool is_glyph_grid(cave_type *c_ptr); extern bool is_explosive_rune_grid(cave_type *c_ptr); extern void mmove2(int *y, int *x, int y1, int x1, int y2, int x2); extern bool projectable(POSITION y1, POSITION x1, POSITION y2, POSITION x2); -extern void scatter(POSITION *yp, POSITION *xp, POSITION y, POSITION x, POSITION d, int mode); +extern void scatter(POSITION *yp, POSITION *xp, POSITION y, POSITION x, POSITION d, BIT_FLAGS mode); extern void health_track(MONSTER_IDX m_idx); extern void monster_race_track(MONRACE_IDX r_idx); extern void object_kind_track(IDX k_idx); @@ -696,15 +700,12 @@ extern void disturb(int stop_search, int flush_output); extern void glow_deep_lava_and_bldg(void); /* cmd1.c */ -extern bool test_hit_fire(int chance, monster_type *m_ptr, int vis, char* o_name); extern bool test_hit_norm(int chance, int ac, int vis); extern HIT_POINT critical_shot(int weight, int plus_ammo, int plus_bow, HIT_POINT dam); -extern HIT_POINT critical_norm(int weight, int plus, HIT_POINT dam, s16b meichuu, int mode); -extern s16b tot_dam_aux(object_type *o_ptr, int tdam, monster_type *m_ptr, int mode, bool thrown); +extern s16b tot_dam_aux(object_type *o_ptr, int tdam, monster_type *m_ptr, BIT_FLAGS mode, bool thrown); extern void search(void); extern void py_pickup_aux(int o_idx); extern void carry(bool pickup); -extern bool py_attack(int y, int x, int mode); extern bool pattern_seq(int c_y, int c_x, int n_y, int n_x); extern bool player_can_enter(s16b feature, u16b mode); extern bool move_player_effect(POSITION ny, POSITION nx, u32b mpe_mode); @@ -734,31 +735,11 @@ extern void do_cmd_run(void); extern void do_cmd_rest(void); extern void do_cmd_fire(void); extern void do_cmd_fire_aux(int item, object_type *j_ptr); -extern void do_cmd_throw(void); -extern bool do_cmd_throw_aux(int mult, bool boomerang, int shuriken); +extern bool do_cmd_throw(int mult, bool boomerang, OBJECT_IDX shuriken); #ifdef TRAVEL extern void do_cmd_travel(void); #endif -/* cmd3.c */ -extern void do_cmd_inven(void); -extern void do_cmd_equip(void); -extern void do_cmd_wield(void); -extern void do_cmd_takeoff(void); -extern void do_cmd_drop(void); -extern void do_cmd_destroy(void); -extern void do_cmd_observe(void); -extern void do_cmd_uninscribe(void); -extern void do_cmd_inscribe(void); -extern void do_cmd_refill(void); -extern void do_cmd_target(void); -extern void do_cmd_look(void); -extern void do_cmd_locate(void); -extern void do_cmd_query_symbol(void); -extern void kamaenaoshi(int item); -extern bool ang_sort_comp_hook(vptr u, vptr v, int a, int b); -extern void ang_sort_swap_hook(vptr u, vptr v, int a, int b); - /* cmd4.c */ #ifndef JP extern cptr get_ordinal_number_suffix(int num); @@ -796,30 +777,11 @@ extern cptr spell_category_name(OBJECT_TYPE_VALUE tval); extern void do_cmd_browse(void); extern void do_cmd_study(void); extern void do_cmd_cast(void); -extern bool rakuba(int dam, bool force); -extern bool do_riding(bool force); -extern void check_pets_num_and_align(monster_type *m_ptr, bool inc); -extern int calculate_upkeep(void); -extern void do_cmd_pet_dismiss(void); -extern void do_cmd_pet(void); - -/* cmd6.c */ -extern void do_cmd_eat_food(void); -extern void do_cmd_quaff_potion(void); -extern void do_cmd_read_scroll(void); -extern void do_cmd_aim_wand(void); -extern void do_cmd_use_staff(void); -extern void do_cmd_zap_rod(void); -extern void do_cmd_activate(void); -extern void do_cmd_rerate_aux(void); -extern void do_cmd_rerate(bool display); -extern void ring_of_power(int dir); -extern void do_cmd_use(void); -extern bool do_cmd_magic_eater(bool only_browse, bool powerful); -/* do-spell.c */ +/* cmd-spell.c */ extern void stop_singing(void); -extern cptr do_spell(REALM_IDX realm, SPELL_IDX spell, int mode); +extern cptr do_spell(REALM_IDX realm, SPELL_IDX spell, BIT_FLAGS mode); +extern bool trump_summoning(int num, bool pet, POSITION y, POSITION x, DEPTH lev, int type, BIT_FLAGS mode); /* dungeon.c */ extern void leave_quest_check(void); @@ -829,8 +791,6 @@ extern void determine_bounty_uniques(void); extern void determine_today_mon(bool conv_old); extern void play_game(bool new_game); extern bool psychometry(void); -extern void leave_level(int level); -extern void enter_level(int level); extern s32b turn_real(s32b hoge); extern void prevent_turn_overflow(void); @@ -838,8 +798,8 @@ extern void prevent_turn_overflow(void); /* files.c */ extern void safe_setuid_drop(void); extern void safe_setuid_grab(void); -extern s16b tokenize(char *buf, s16b num, char **tokens, int mode); -extern void display_player(int mode); +extern s16b tokenize(char *buf, s16b num, char **tokens, BIT_FLAGS mode); +extern void display_player(BIT_FLAGS mode); extern errr make_character_dump(FILE *fff); extern errr file_character(cptr name); extern errr process_pref_file_command(char *buf); @@ -852,7 +812,7 @@ extern errr check_time_init(void); extern errr check_load_init(void); extern errr check_time(void); extern errr check_load(void); -extern bool show_file(bool show_version, cptr name, cptr what, int line, int mode); +extern bool show_file(bool show_version, cptr name, cptr what, int line, BIT_FLAGS mode); extern void do_cmd_help(void); extern void process_player_name(bool sf); extern void get_name(void); @@ -881,24 +841,19 @@ extern void get_table_sindarin_aux(char *out_string); extern void get_table_sindarin(char *out_string); extern void flavor_init(void); extern char *object_desc_kosuu(char *t, object_type *o_ptr); -extern void object_desc(char *buf, object_type *o_ptr, u32b mode); +extern void object_desc(char *buf, object_type *o_ptr, BIT_FLAGS mode); /* floors.c */ extern void init_saved_floors(bool force); extern void clear_saved_floor_files(void); extern saved_floor_type *get_sf_ptr(s16b floor_id); extern s16b get_new_floor_id(void); -extern void prepare_change_floor_mode(u32b mode); +extern void prepare_change_floor_mode(BIT_FLAGS mode); extern void precalc_cur_num_of_pet(void); extern void leave_floor(void); extern void change_floor(void); extern void stair_creation(void); -/* generate.c */ -extern bool place_quest_monsters(void); -extern void wipe_generate_cave_flags(void); -extern void clear_cave(void); -extern void generate_cave(void); /* init1.c */ extern byte color_char_to_attr(char c); @@ -916,12 +871,16 @@ extern cptr get_check_sum(void); /* load.c */ extern errr rd_savefile_new(void); -extern bool load_floor(saved_floor_type *sf_ptr, u32b mode); +extern bool load_floor(saved_floor_type *sf_ptr, BIT_FLAGS mode); /* melee1.c */ -/* melee2.c */ +/* monster-process.c */ +extern bool test_hit_fire(int chance, monster_type *m_ptr, int vis, char* o_name); +extern HIT_POINT critical_norm(int weight, int plus, HIT_POINT dam, s16b meichuu, BIT_FLAGS mode); +extern bool py_attack(POSITION y, POSITION x, BIT_FLAGS mode); extern bool make_attack_normal(MONSTER_IDX m_idx); extern void process_monsters(void); +extern void process_monster(MONSTER_IDX m_idx); extern int get_mproc_idx(MONSTER_IDX m_idx, int mproc_type); extern void mproc_init(void); extern bool set_monster_csleep(MONSTER_IDX m_idx, int v); @@ -941,20 +900,19 @@ extern void monster_gain_exp(MONSTER_IDX m_idx, IDX s_idx); /* monster1.c */ extern void roff_top(MONRACE_IDX r_idx); -extern void screen_roff(MONRACE_IDX r_idx, int mode); +extern void screen_roff(MONRACE_IDX r_idx, BIT_FLAGS mode); extern void display_roff(MONRACE_IDX r_idx); extern void output_monster_spoiler(MONRACE_IDX r_idx, void (*roff_func)(byte attr, cptr str)); extern void create_name(int type, char *name); -extern bool mon_hook_dungeon(MONRACE_IDX r_idx); extern monster_hook_type get_monster_hook(void); -extern monster_hook_type get_monster_hook2(int y, int x); +extern monster_hook_type get_monster_hook2(POSITION y, POSITION x); extern void set_friendly(monster_type *m_ptr); extern void set_pet(monster_type *m_ptr); extern void set_hostile(monster_type *m_ptr); extern void anger_monster(monster_type *m_ptr); extern bool monster_can_cross_terrain(s16b feat, monster_race *r_ptr, u16b mode); -extern bool monster_can_enter(int y, int x, monster_race *r_ptr, u16b mode); +extern bool monster_can_enter(POSITION y, POSITION x, monster_race *r_ptr, u16b mode); extern bool are_enemies(monster_type *m_ptr1, monster_type *m_ptr2); extern bool monster_has_hostile_align(monster_type *m_ptr, int pa_good, int pa_evil, monster_race *r_ptr); extern bool monster_living(monster_race *r_ptr); @@ -976,9 +934,9 @@ extern void wipe_m_list(void); extern MONSTER_IDX m_pop(void); extern errr get_mon_num_prep(monster_hook_type monster_hook, monster_hook_type monster_hook2); extern MONRACE_IDX get_mon_num(DEPTH level); -extern void monster_desc(char *desc, monster_type *m_ptr, int mode); +extern void monster_desc(char *desc, monster_type *m_ptr, BIT_FLAGS mode); extern int lore_do_probe(MONRACE_IDX r_idx); -extern void lore_treasure(MONSTER_IDX m_idx, int num_item, int num_gold); +extern void lore_treasure(MONSTER_IDX m_idx, ITEM_NUMBER num_item, ITEM_NUMBER num_gold); extern void sanity_blast(monster_type *m_ptr, bool necro); extern void update_mon(MONSTER_IDX m_idx, bool full); extern void update_monsters(bool full); @@ -986,10 +944,10 @@ extern bool place_monster_aux(MONSTER_IDX who, POSITION y, POSITION x, MONRACE_I extern bool place_monster(POSITION y, POSITION x, BIT_FLAGS mode); extern bool alloc_horde(POSITION y, POSITION x); extern bool alloc_guardian(bool def_val); -extern bool alloc_monster(int dis, u32b mode); +extern bool alloc_monster(POSITION dis, BIT_FLAGS mode); extern bool summon_specific(MONSTER_IDX who, POSITION y1, POSITION x1, DEPTH lev, int type, BIT_FLAGS mode); extern bool summon_named_creature (MONSTER_IDX who, POSITION oy, POSITION ox, MONRACE_IDX r_idx, BIT_FLAGS mode); -extern bool multiply_monster(MONSTER_IDX m_idx, bool clone, u32b mode); +extern bool multiply_monster(MONSTER_IDX m_idx, bool clone, BIT_FLAGS mode); extern void update_smart_learn(MONSTER_IDX m_idx, int what); extern void choose_new_monster(MONSTER_IDX m_idx, bool born, MONRACE_IDX r_idx); extern byte get_mspeed(monster_race *r_ptr); @@ -997,13 +955,13 @@ extern bool player_place(POSITION y, POSITION x); extern void monster_drop_carried_objects(monster_type *m_ptr); /* object1.c */ -extern s16b m_bonus(int max, int level); +extern int m_bonus(int max, DEPTH level); extern void reset_visuals(void); extern void object_flags(object_type *o_ptr, u32b flgs[TR_FLAG_SIZE]); extern void object_flags_known(object_type *o_ptr, u32b flgs[TR_FLAG_SIZE]); extern cptr item_activation(object_type *o_ptr); -extern bool screen_object(object_type *o_ptr, u32b mode); +extern bool screen_object(object_type *o_ptr, BIT_FLAGS mode); extern char index_to_label(int i); extern INVENTORY_IDX label_to_inven(int c); extern INVENTORY_IDX label_to_equip(int c); @@ -1014,11 +972,11 @@ extern bool check_book_realm(const OBJECT_TYPE_VALUE book_tval, const OBJECT_SUB extern bool item_tester_okay(object_type *o_ptr); extern void display_inven(void); extern void display_equip(void); -extern int show_inven(int target_item); -extern int show_equip(int target_item); +extern COMMAND_CODE show_inven(int target_item); +extern COMMAND_CODE show_equip(int target_item); extern void toggle_inven_equip(void); extern bool can_get_item(void); -extern bool get_item(int *cp, cptr pmt, cptr str, int mode); +extern bool get_item(OBJECT_IDX *cp, cptr pmt, cptr str, BIT_FLAGS mode); /* object2.c */ extern void excise_object_idx(int o_idx); @@ -1041,20 +999,16 @@ extern bool object_similar(object_type *o_ptr, object_type *j_ptr); extern void object_absorb(object_type *o_ptr, object_type *j_ptr); extern IDX lookup_kind(OBJECT_TYPE_VALUE tval, OBJECT_SUBTYPE_VALUE sval); extern void object_wipe(object_type *o_ptr); -extern void object_prep(object_type *o_ptr, IDX k_idx); +extern void object_prep(object_type *o_ptr, KIND_OBJECT_IDX k_idx); extern void object_copy(object_type *o_ptr, object_type *j_ptr); extern void apply_magic(object_type *o_ptr, DEPTH lev, BIT_FLAGS mode); extern bool make_object(object_type *j_ptr, BIT_FLAGS mode); extern void place_object(POSITION y, POSITION x, BIT_FLAGS mode); extern bool make_gold(object_type *j_ptr); extern void place_gold(POSITION y, POSITION x); -extern s16b drop_near(object_type *o_ptr, int chance, int y, int x); -extern void acquirement(int y1, int x1, int num, bool great, bool special, bool known); -extern void amusement(int y1, int x1, int num, bool known); -extern void init_normal_traps(void); -extern s16b choose_random_trap(void); -extern void disclose_grid(int y, int x); -extern void place_trap(int y, int x); +extern OBJECT_IDX drop_near(object_type *o_ptr, PERCENTAGE chance, POSITION y, POSITION x); +extern void acquirement(POSITION y1, POSITION x1, int num, bool great, bool special, bool known); +extern void amusement(POSITION y1, POSITION x1, int num, bool known); extern void inven_item_charges(int item); extern void inven_item_describe(int item); extern void inven_item_increase(int item, int num); @@ -1066,8 +1020,8 @@ extern void floor_item_optimize(int item); extern bool inven_carry_okay(object_type *o_ptr); extern bool object_sort_comp(object_type *o_ptr, s32b o_value, object_type *j_ptr); extern s16b inven_carry(object_type *o_ptr); -extern s16b inven_takeoff(int item, int amt); -extern void inven_drop(int item, int amt); +extern INVENTORY_IDX inven_takeoff(INVENTORY_IDX item, ITEM_NUMBER amt); +extern void inven_drop(INVENTORY_IDX item, ITEM_NUMBER amt); extern void combine_pack(void); extern void reorder_pack(void); extern void display_koff(IDX k_idx); @@ -1087,23 +1041,23 @@ extern void do_cmd_racial_power(void); extern bool save_player(void); extern bool load_player(void); extern void remove_loc(void); -extern bool save_floor(saved_floor_type *sf_ptr, u32b mode); +extern bool save_floor(saved_floor_type *sf_ptr, BIT_FLAGS mode); /* spells1.c */ +extern int beam_chance(void); extern bool in_disintegration_range(POSITION y1, POSITION x1, POSITION y2, POSITION x2); -extern void breath_shape(u16b *path_g, int dist, int *pgrids, POSITION *gx, POSITION *gy, byte *gm, int *pgm_rad, int rad, int y1, int x1, int y2, int x2, int typ); +extern void breath_shape(u16b *path_g, int dist, int *pgrids, POSITION *gx, POSITION *gy, POSITION *gm, POSITION *pgm_rad, POSITION rad, POSITION y1, POSITION x1, POSITION y2, POSITION x2, int typ); extern int take_hit(int damage_type, HIT_POINT damage, cptr kb_str, int monspell); extern u16b bolt_pict(POSITION y, POSITION x, POSITION ny, POSITION nx, int typ); -extern sint project_path(u16b *gp, POSITION range, POSITION y1, POSITION x1, POSITION y2, POSITION x2, int flg); -extern int dist_to_line(int y, int x, int y1, int x1, int y2, int x2); -extern bool project(int who, POSITION rad, POSITION y, POSITION x, HIT_POINT dam, int typ, int flg, int monspell); +extern sint project_path(u16b *gp, POSITION range, POSITION y1, POSITION x1, POSITION y2, POSITION x2, BIT_FLAGS flg); +extern POSITION dist_to_line(POSITION y, POSITION x, POSITION y1, POSITION x1, POSITION y2, POSITION x2); +extern bool project(MONSTER_IDX who, POSITION rad, POSITION y, POSITION x, HIT_POINT dam, int typ, BIT_FLAGS flg, int monspell); extern int project_length; -extern bool binding_field(int dam); -extern void seal_of_mirror(int dam); +extern bool binding_field(HIT_POINT dam); +extern void seal_of_mirror(HIT_POINT dam); /* spells2.c */ -extern void message_pain(MONSTER_IDX m_idx, int dam); -extern void self_knowledge(void); +extern void message_pain(MONSTER_IDX m_idx, HIT_POINT dam); extern bool detect_traps(POSITION range, bool known); extern bool detect_doors(POSITION range); extern bool detect_stairs(POSITION range); @@ -1130,38 +1084,39 @@ extern bool mass_genocide(int power, bool player_cast); extern bool mass_genocide_undead(int power, bool player_cast); extern bool probing(void); extern bool banish_evil(int dist); -extern bool dispel_evil(int dam); -extern bool dispel_good(int dam); -extern bool dispel_undead(int dam); -extern bool dispel_monsters(int dam); -extern bool dispel_living(int dam); -extern bool dispel_demons(int dam); +extern bool dispel_evil(HIT_POINT dam); +extern bool dispel_good(HIT_POINT dam); +extern bool dispel_undead(HIT_POINT dam); +extern bool dispel_monsters(HIT_POINT dam); +extern bool dispel_living(HIT_POINT dam); +extern bool dispel_demons(HIT_POINT dam); extern bool crusade(void); extern bool turn_undead(void); -extern bool destroy_area(int y1, int x1, int r, bool in_generate); -extern bool earthquake_aux(int cy, int cx, int r, MONSTER_IDX m_idx); -extern bool earthquake(int cy, int cx, int r); +extern bool destroy_area(POSITION y1, POSITION x1, POSITION r, bool in_generate); +extern bool earthquake_aux(POSITION cy, POSITION cx, POSITION r, MONSTER_IDX m_idx); +extern bool earthquake(POSITION cy, POSITION cx, POSITION r); extern void lite_room(int y1, int x1); extern void unlite_room(int y1, int x1); -extern bool lite_area(int dam, int rad); -extern bool unlite_area(int dam, int rad); -extern bool fire_ball(int typ, int dir, int dam, int rad); -extern bool fire_rocket(int typ, int dir, int dam, int rad); -extern bool fire_ball_hide(int typ, int dir, int dam, int rad); -extern bool fire_meteor(int who, int typ, int x, int y, int dam, int rad); -extern bool fire_bolt(int typ, int dir, int dam); +extern bool lite_area(HIT_POINT dam, int rad); +extern bool unlite_area(HIT_POINT dam, int rad); +extern bool fire_ball(int typ, int dir, HIT_POINT dam, int rad); +extern bool fire_breath(int typ, int dir, HIT_POINT dam, int rad); +extern bool fire_rocket(int typ, int dir, HIT_POINT dam, int rad); +extern bool fire_ball_hide(int typ, int dir, HIT_POINT dam, int rad); +extern bool fire_meteor(MONSTER_IDX who, EFFECT_ID typ, POSITION x, POSITION y, HIT_POINT dam, POSITION rad); +extern bool fire_bolt(int typ, int dir, HIT_POINT dam); extern bool fire_blast(int typ, int dir, int dd, int ds, int num, int dev); extern void call_chaos(void); -extern bool fire_beam(int typ, int dir, int dam); -extern bool fire_bolt_or_beam(int prob, int typ, int dir, int dam); -extern bool lite_line(int dir, int dam); -extern bool drain_life(int dir, int dam); +extern bool fire_beam(int typ, int dir, HIT_POINT dam); +extern bool fire_bolt_or_beam(int prob, int typ, int dir, HIT_POINT dam); +extern bool lite_line(int dir, HIT_POINT dam); +extern bool hypodynamic_bolt(int dir, HIT_POINT dam); extern bool death_ray(int dir, int plev); -extern bool wall_to_mud(int dir, int dam); +extern bool wall_to_mud(int dir, HIT_POINT dam); extern bool destroy_door(int dir); extern bool disarm_trap(int dir); extern bool wizard_lock(int dir); -extern bool heal_monster(int dir, int dam); +extern bool heal_monster(int dir, HIT_POINT dam); extern bool speed_monster(int dir, int power); extern bool slow_monster(int dir, int power); extern bool sleep_monster(int dir, int power); @@ -1179,60 +1134,76 @@ extern bool tree_creation(void); extern bool glyph_creation(void); extern bool destroy_doors_touch(void); extern bool disarm_traps_touch(void); -extern bool animate_dead(int who, int y, int x); +extern bool animate_dead(MONSTER_IDX who, POSITION y, POSITION x); extern bool sleep_monsters_touch(void); extern bool activate_ty_curse(bool stop_ty, int *count); -extern int activate_hi_summon(int y, int x, bool can_pet); -extern int summon_cyber(int who, int y, int x); +extern int activate_hi_summon(POSITION y, POSITION x, bool can_pet); +extern int summon_cyber(MONSTER_IDX who, POSITION y, POSITION x); extern void wall_breaker(void); -extern bool confuse_monsters(int dam); -extern bool charm_monsters(int dam); -extern bool charm_animals(int dam); -extern bool stun_monsters(int dam); -extern bool stasis_monsters(int dam); +extern bool confuse_monsters(HIT_POINT dam); +extern bool charm_monsters(HIT_POINT dam); +extern bool charm_animals(HIT_POINT dam); +extern bool stun_monsters(HIT_POINT dam); +extern bool stasis_monsters(HIT_POINT dam); extern bool banish_monsters(int dist); -extern bool turn_monsters(int dam); -extern bool turn_evil(int dam); +extern bool turn_monsters(HIT_POINT dam); +extern bool turn_evil(HIT_POINT dam); extern bool deathray_monsters(void); extern bool charm_monster(int dir, int plev); extern bool control_one_undead(int dir, int plev); extern bool control_one_demon(int dir, int plev); extern bool charm_animal(int dir, int plev); -extern bool charm_living(int dir, int plev); -extern bool mindblast_monsters(int dam); +extern bool mindblast_monsters(HIT_POINT dam); extern s32b flag_cost(object_type *o_ptr, int plusses); -extern void report_magics(void); extern bool teleport_swap(int dir); -extern bool item_tester_hook_recharge(object_type *o_ptr); -extern bool project_hook(int typ, int dir, int dam, int flg); -extern bool project_hack(int typ, int dam); +extern bool project_hook(int typ, int dir, HIT_POINT dam, BIT_FLAGS flg); +extern bool project_hack(int typ, HIT_POINT dam); extern bool eat_magic(int power); extern void discharge_minion(void); extern bool kawarimi(bool success); extern bool rush_attack(bool *mdeath); extern void remove_all_mirrors(bool explode); +extern void ring_of_power(int dir); +extern void wild_magic(int spell); +extern void cast_meteor(HIT_POINT dam, int rad); +extern bool cast_wrath_of_the_god(HIT_POINT dam, int rad); +extern void cast_wonder(int dir); +extern void cast_invoke_spirits(int dir); +extern void cast_shuffle(void); +extern bool_hack life_stream(bool_hack message, bool_hack virtue); +extern bool_hack heroism(int base); +extern bool_hack berserk(int base); +extern bool_hack cure_light_wounds(int dice, int sides); +extern bool_hack cure_serious_wounds(int dice, int sides); +extern bool_hack cure_critical_wounds(HIT_POINT pow); +extern bool_hack true_healing(HIT_POINT pow); +extern bool_hack restore_mana(bool_hack magic_eater); +extern bool restore_all_status(void); +extern void stop_mouth(void); +extern bool_hack vampirism(void); +extern bool panic_hit(void); /* spells3.c */ -extern bool teleport_away(MONSTER_IDX m_idx, int dis, u32b mode); -extern void teleport_monster_to(MONSTER_IDX m_idx, POSITION ty, POSITION tx, int power, u32b mode); -extern bool cave_player_teleportable_bold(int y, int x, u32b mode); -extern bool teleport_player_aux(int dis, u32b mode); -extern void teleport_player(int dis, u32b mode); +extern bool teleport_away(MONSTER_IDX m_idx, int dis, BIT_FLAGS mode); +extern void teleport_monster_to(MONSTER_IDX m_idx, POSITION ty, POSITION tx, int power, BIT_FLAGS mode); +extern bool cave_player_teleportable_bold(int y, int x, BIT_FLAGS mode); +extern bool teleport_player_aux(int dis, BIT_FLAGS mode); +extern void teleport_player(int dis, BIT_FLAGS mode); extern void teleport_player_away(MONSTER_IDX m_idx, int dis); -extern void teleport_player_to(POSITION ny, POSITION nx, u32b mode); +extern void teleport_player_to(POSITION ny, POSITION nx, BIT_FLAGS mode); extern void teleport_away_followable(MONSTER_IDX m_idx); extern void teleport_level(MONSTER_IDX m_idx); -extern IDX choose_dungeon(cptr note, int y, int x); -extern bool recall_player(int turns); +extern DUNGEON_IDX choose_dungeon(cptr note, POSITION y, POSITION x); +extern bool recall_player(TIME_EFFECT turns); extern bool word_of_recall(void); extern bool reset_recall(void); -extern bool apply_disenchant(int mode); +extern bool apply_disenchant(BIT_FLAGS mode); extern void mutate_player(void); extern void apply_nexus(monster_type *m_ptr); extern void phlogiston(void); extern void brand_weapon(int brand_type); extern void call_the_(void); -extern void fetch(int dir, int wgt, bool require_los); +extern void fetch(DIRECTION dir, WEIGHT wgt, bool require_los); extern void alter_reality(void); extern bool warding_glyph(void); extern bool place_mirror(void); @@ -1242,7 +1213,7 @@ extern int remove_curse(void); extern int remove_all_curse(void); extern bool alchemy(void); extern bool enchant(object_type *o_ptr, int n, int eflag); -extern bool enchant_spell(int num_hit, int num_dam, int num_ac); +extern bool enchant_spell(HIT_PROB num_hit, HIT_POINT num_dam, ARMOUR_CLASS num_ac); extern bool artifact_scroll(void); extern bool ident_spell(bool only_equip); extern bool mundane_spell(bool only_equip); @@ -1251,13 +1222,13 @@ extern bool identify_fully(bool only_equip); extern bool recharge(int num); extern bool bless_weapon(void); extern bool pulish_shield(void); -extern bool potion_smash_effect(int who, POSITION y, POSITION x, int k_idx); +extern bool potion_smash_effect(MONSTER_IDX who, POSITION y, POSITION x, KIND_OBJECT_IDX k_idx); extern void display_spell_list(void); extern s16b experience_of_spell(int spell, int realm); extern int mod_need_mana(int need_mana, int spell, int realm); -extern int mod_spell_chance_1(int chance); -extern int mod_spell_chance_2(int chance); -extern s16b spell_chance(int spell,int realm); +extern PERCENTAGE mod_spell_chance_1(PERCENTAGE chance); +extern PERCENTAGE mod_spell_chance_2(PERCENTAGE chance); +extern PERCENTAGE spell_chance(SPELL_IDX spell, REALM_IDX realm); extern bool spell_okay(int spell, bool learned, bool study_pray, int realm); extern void print_spells(SPELL_IDX target_spell, SPELL_IDX *spells, int num, TERM_POSITION y, TERM_POSITION x, REALM_IDX realm); extern bool hates_acid(object_type *o_ptr); @@ -1269,10 +1240,10 @@ extern int set_elec_destroy(object_type *o_ptr); extern int set_fire_destroy(object_type *o_ptr); extern int set_cold_destroy(object_type *o_ptr); extern int inven_damage(inven_func typ, int perc); -extern int acid_dam(int dam, cptr kb_str, int monspell, bool aura); -extern int elec_dam(int dam, cptr kb_str, int monspell, bool aura); -extern int fire_dam(int dam, cptr kb_str, int monspell, bool aura); -extern int cold_dam(int dam, cptr kb_str, int monspell, bool aura); +extern int acid_dam(HIT_POINT dam, cptr kb_str, int monspell, bool aura); +extern int elec_dam(HIT_POINT dam, cptr kb_str, int monspell, bool aura); +extern int fire_dam(HIT_POINT dam, cptr kb_str, int monspell, bool aura); +extern int cold_dam(HIT_POINT dam, cptr kb_str, int monspell, bool aura); extern bool rustproof(void); extern bool curse_armor(void); extern bool curse_weapon_object(bool force, object_type *o_ptr); @@ -1281,7 +1252,7 @@ extern bool brand_bolts(void); extern bool polymorph_monster(POSITION y, POSITION x); extern bool dimension_door(void); extern bool mirror_tunnel(void); -extern bool summon_kin_player(int level, int y, int x, u32b mode); +extern bool summon_kin_player(int level, int y, int x, BIT_FLAGS mode); extern void massacre(void); /* store.c */ @@ -1302,8 +1273,8 @@ extern IDX quest_number(DEPTH level); extern IDX random_quest_number(DEPTH level); extern bool tele_town(void); extern HIT_POINT calc_crit_ratio_shot(HIT_POINT plus_ammo, HIT_POINT plus_bow); -extern HIT_POINT calc_expect_crit_shot(int weight, int plus_ammo,int plus_bow, int dam); -extern HIT_POINT calc_expect_crit(int weight, int plus, int dam, s16b meichuu, bool dokubari); +extern HIT_POINT calc_expect_crit_shot(int weight, int plus_ammo,int plus_bow, HIT_POINT dam); +extern HIT_POINT calc_expect_crit(int weight, int plus, HIT_POINT dam, s16b meichuu, bool dokubari); /* util.c */ extern errr path_parse(char *buf, int max, cptr file); @@ -1316,7 +1287,7 @@ extern errr my_fclose(FILE *fff); extern errr fd_kill(cptr file); extern errr fd_move(cptr file, cptr what); extern errr fd_copy(cptr file, cptr what); -extern int fd_make(cptr file, int mode); +extern int fd_make(cptr file, BIT_FLAGS mode); extern int fd_open(cptr file, int flags); extern errr fd_lock(int fd, int what); extern errr fd_seek(int fd, huge n); @@ -1335,9 +1306,9 @@ extern void ascii_to_text(char *buf, cptr str); extern errr macro_add(cptr pat, cptr act); extern sint macro_find_exact(cptr pat); extern char inkey(void); -extern cptr quark_str(s16b num); +extern cptr quark_str(STR_OFFSET num); extern void quark_init(void); -extern s16b quark_add(cptr str); +extern u16b quark_add(cptr str); extern s32b message_num(void); extern cptr message_str(int age); extern void message_add(cptr msg); @@ -1360,9 +1331,9 @@ extern bool askfor_aux(char *buf, int len, bool numpad_cursor); extern bool askfor(char *buf, int len); extern bool get_string(cptr prompt, char *buf, int len); extern bool get_check(cptr prompt); -extern bool get_check_strict(cptr prompt, int mode); +extern bool get_check_strict(cptr prompt, BIT_FLAGS mode); extern bool get_com(cptr prompt, char *command, bool z_escape); -extern s16b get_quantity(cptr prompt, int max); +extern QUANTITY get_quantity(cptr prompt, QUANTITY max); extern void pause_line(int row); extern void request_command(int shopping); extern bool is_a_vowel(int ch); @@ -1394,7 +1365,7 @@ extern bool is_daytime(void); extern void extract_day_hour_min(int *day, int *hour, int *min); extern void prt_time(void); extern cptr map_name(void); -extern u32b weight_limit(void); +extern WEIGHT weight_limit(void); extern bool buki_motteruka(int i); extern bool is_heavy_shoot(object_type *o_ptr); extern int bow_tval_ammo(object_type *o_ptr); @@ -1412,7 +1383,7 @@ extern void update_playtime(void); /* effects.c */ -extern void set_action(int typ); +extern void set_action(ACTION_IDX typ); extern void reset_tim_flags(void); extern void dispel_player(void); extern bool set_mimic(TIME_EFFECT v, IDX p, bool do_dec); @@ -1489,31 +1460,31 @@ extern void check_quest_completion(monster_type *m_ptr); extern void check_find_art_quest_completion(object_type *o_ptr); extern cptr extract_note_dies(monster_race *r_ptr); extern void monster_death(MONSTER_IDX m_idx, bool drop_item); -extern bool mon_take_hit(MONSTER_IDX m_idx, int dam, bool *fear, cptr note); +extern bool mon_take_hit(MONSTER_IDX m_idx, HIT_POINT dam, bool *fear, cptr note); extern void get_screen_size(int *wid_p, int *hgt_p); extern void panel_bounds_center(void); extern void resize_map(void); extern void redraw_window(void); extern bool change_panel(int dy, int dx); extern void verify_panel(void); -extern cptr look_mon_desc(monster_type *m_ptr, u32b mode); +extern cptr look_mon_desc(monster_type *m_ptr, BIT_FLAGS mode); extern void ang_sort_aux(vptr u, vptr v, int p, int q); extern void ang_sort(vptr u, vptr v, int n); extern bool target_able(MONSTER_IDX m_idx); extern bool target_okay(void); -extern bool target_set(int mode); +extern bool target_set(BIT_FLAGS mode); extern void target_set_prepare_look(void); -extern bool get_aim_dir(int *dp); -extern bool get_hack_dir(int *dp); -extern bool get_rep_dir(int *dp, bool under); -extern bool get_rep_dir2(int *dp); +extern bool get_aim_dir(DIRECTION *dp); +extern bool get_hack_dir(DIRECTION *dp); +extern bool get_rep_dir(DIRECTION *dp, bool under); +extern bool get_rep_dir2(DIRECTION *dp); extern void gain_level_reward(int chosen_reward); extern bool tgt_pt(POSITION *x, POSITION *y); extern void do_poly_wounds(void); extern void change_race(CHARACTER_IDX new_race, cptr effect_msg); extern HIT_POINT mon_damage_mod(monster_type *m_ptr, HIT_POINT dam, bool is_psy_spear); extern s16b gain_energy(void); -extern s16b bow_energy(OBJECT_SUBTYPE_VALUE sval); +extern ENERGY bow_energy(OBJECT_SUBTYPE_VALUE sval); extern int bow_tmul(OBJECT_SUBTYPE_VALUE sval); extern cptr your_alignment(void); extern int weapon_exp_level(int weapon_exp); @@ -1522,7 +1493,6 @@ extern int spell_exp_level(int spell_exp); extern void display_rumor(bool ex); /* artifact.c */ -extern void one_sustain(object_type *o_ptr); extern void one_high_resistance(object_type *o_ptr); extern void one_lordly_high_resistance(object_type *o_ptr); extern void one_ele_resistance(object_type *o_ptr); @@ -1533,11 +1503,9 @@ extern void one_ability(object_type *o_ptr); extern void one_activation(object_type *o_ptr); extern bool create_artifact(object_type *o_ptr, bool a_scroll); extern int activation_index(object_type *o_ptr); -extern bool activate_random_artifact(object_type * o_ptr); extern const activation_type* find_activation_info(object_type *o_ptr); -extern void get_bloody_moon_flags(object_type *o_ptr); extern void random_artifact_resistance(object_type * o_ptr, artifact_type *a_ptr); -extern bool create_named_art(int a_idx, int y, int x); +extern bool create_named_art(ARTIFACT_IDX a_idx, POSITION y, POSITION x); /* scores.c */ extern void display_scores_aux(int from, int to, int note, high_score *score); @@ -1571,33 +1539,34 @@ extern void bolt(MONSTER_IDX m_idx, int y, int x, int typ, int dam_hp, int monsp extern void breath(int y, int x, MONSTER_IDX m_idx, int typ, int dam_hp, int rad, bool breath, int monspell, int target_type); /* mspells2.c */ -extern void get_project_point(int sy, int sx, int *ty, int *tx, int flg); +extern void get_project_point(int sy, int sx, int *ty, int *tx, BIT_FLAGS flg); extern bool monst_spell_monst(MONSTER_IDX m_idx); /* mspells3.c */ extern bool do_cmd_cast_learned(void); extern void learn_spell(int monspell); -extern void set_rf_masks(s32b *f4, s32b *f5, s32b *f6, int mode); +extern void set_rf_masks(s32b *f4, s32b *f5, s32b *f6, BIT_FLAGS mode); /* mspells4.c */ extern bool spell_learnable(MONSTER_IDX m_idx); -extern int monspell_to_player(int SPELL_NUM, POSITION y, POSITION x, MONSTER_IDX m_idx); -extern int monspell_to_monster(int SPELL_NUM, POSITION y, POSITION x, MONSTER_IDX m_idx, IDX t_idx); -extern int monspell_damage(int SPELL_NUM, MONSTER_IDX m_idx, int TYPE); -extern int monspell_race_damage(int SPELL_NUM, MONRACE_IDX r_idx, int TYPE); -extern int monspell_bluemage_damage(int SPELL_NUM, int plev, int TYPE); +extern HIT_POINT monspell_to_player(int SPELL_NUM, POSITION y, POSITION x, MONSTER_IDX m_idx); +extern HIT_POINT monspell_to_monster(int SPELL_NUM, POSITION y, POSITION x, MONSTER_IDX m_idx, IDX t_idx); +extern HIT_POINT monspell_damage(int SPELL_NUM, MONSTER_IDX m_idx, int TYPE); +extern HIT_POINT monspell_race_damage(int SPELL_NUM, MONRACE_IDX r_idx, int TYPE); +extern HIT_POINT monspell_bluemage_damage(int SPELL_NUM, int plev, int TYPE); /* hissatsu.c */ extern void hissatsu_info(char *p, int power); extern void do_cmd_hissatsu(void); extern void do_cmd_hissatsu_browse(void); extern void do_cmd_gain_hissatsu(void); -extern s16b mult_hissatsu(int mult, u32b *flgs, monster_type *m_ptr, int mode); +extern MULTIPLY mult_hissatsu(MULTIPLY mult, BIT_FLAGS *flgs, monster_type *m_ptr, BIT_FLAGS mode); /* mutation.c */ -extern int count_bits(u32b x); +extern int count_bits(BIT_FLAGS x); extern bool gain_random_mutation(int choose_mut); extern bool lose_mutation(int choose_mut); +extern void lose_all_mutations(void); extern void dump_mutations(FILE *OutFile); extern void do_cmd_knowledge_mutations(void); extern int calc_mutant_regenerate_mod(void); @@ -1683,9 +1652,9 @@ extern bool do_cmd_disarm_aux(int y, int x, int dir); #ifdef ALLOW_EASY_FLOOR /* TNB */ /* object1.c */ -extern int scan_floor(int *items, int y, int x, int mode); -extern int show_floor(int target_item, int y, int x, int *min_width); -extern bool get_item_floor(COMMAND_CODE *cp, cptr pmt, cptr str, int mode); +extern ITEM_NUMBER scan_floor(OBJECT_IDX *items, POSITION y, POSITION x, BIT_FLAGS mode); +extern COMMAND_CODE show_floor(int target_item, POSITION y, POSITION x, TERM_POSITION *min_width); +extern bool get_item_floor(COMMAND_CODE *cp, cptr pmt, cptr str, BIT_FLAGS mode); extern void py_pickup_floor(bool pickup); /* variable.c */ @@ -1729,7 +1698,9 @@ extern bool change_wild_mode(void); extern void spoil_random_artifact(cptr fname); /* wizard2.c */ -extern void strip_name(char *buf, int k_idx); +extern void strip_name(char *buf, KIND_OBJECT_IDX k_idx); +extern void do_cmd_rerate_aux(void); +extern void do_cmd_rerate(bool display); /* avatar.c */ extern bool compare_virtue(int type, int num, int tekitou); @@ -1759,6 +1730,7 @@ extern cptr make_screen_dump(void); /* inet.c */ extern int soc_write(int sd, char *buf, size_t sz); +extern int soc_read(int sd, char *buf, size_t sz); extern void set_proxy(char *default_url, int default_port); extern int connect_server(int timeout, const char *host, int port); extern int disconnect_server(int sd); @@ -1805,7 +1777,12 @@ extern bool stop_hex_spell(void); extern void check_hex(void); extern bool hex_spell_fully(void); extern void revenge_spell(void); -extern void revenge_store(int dam); +extern void revenge_store(HIT_POINT dam); extern bool teleport_barrier(MONSTER_IDX m_idx); extern bool magic_barrier(MONSTER_IDX m_idx); extern bool multiply_barrier(MONSTER_IDX m_idx); + +extern void kamaenaoshi(int item); + +extern bool ang_sort_comp_hook(vptr u, vptr v, int a, int b); +extern void ang_sort_swap_hook(vptr u, vptr v, int a, int b);