-/* File: externs.h */
-
-/*
+/*!
+ * @file externs.h
+ * @brief Angband(変愚蛮怒)基本関数、グローバル変数ヘッダファイル /
+ * extern declarations (variables and functions)
+ * @date 2014/08/08
+ * @author
* Copyright (c) 1997 Ben Harrison
- *
+ * @details
* This software may be copied and distributed for educational, research,
* and not for profit purposes provided that this copyright and statement
* are included in all such copies.
- */
-
-/* Purpose: extern declarations (variables and functions) */
-
-/*
* Note that some files have their own header files
* (z-virt.h, z-util.h, z-form.h, term.h, random.h)
*/
/*
* Automatically generated "variable" declarations
*/
-
extern int max_macrotrigger;
extern cptr macro_template;
extern cptr macro_modifier_chr;
extern bool creating_savefile;
extern u32b seed_flavor;
extern u32b seed_town;
-extern s16b command_cmd;
+extern COMMAND_CODE command_cmd;
extern s16b command_arg;
extern s16b command_rep;
-extern s16b command_dir;
+extern DIRECTION command_dir;
extern s16b command_see;
extern s16b command_gap;
extern s16b command_wrk;
extern s16b command_new;
-extern s16b energy_use;
extern bool msg_flag;
extern s16b running;
extern s16b resting;
-extern s16b cur_hgt;
-extern s16b cur_wid;
-extern s16b dun_level;
+extern POSITION cur_hgt;
+extern POSITION cur_wid;
+extern DEPTH dun_level;
extern s16b num_repro;
-extern s16b object_level;
-extern s16b monster_level;
-extern s16b base_level;
+extern DEPTH object_level;
+extern DEPTH monster_level;
+extern DEPTH base_level;
extern s32b turn;
extern s32b turn_limit;
extern s32b dungeon_turn;
extern bool cheat_know;
extern bool cheat_live;
extern bool cheat_save;
+extern bool cheat_diary_output;
+extern bool cheat_turn;
extern char record_o_name[MAX_NLEN];
extern s32b record_turn;
extern bool autosave_t;
extern bool autosave_l;
extern bool closing_flag;
-extern s16b panel_row_min, panel_row_max;
-extern s16b panel_col_min, panel_col_max;
-extern s16b panel_col_prt, panel_row_prt;
-extern int py;
-extern int px;
-extern s16b target_who;
-extern s16b target_col;
-extern s16b target_row;
+extern POSITION panel_row_min, panel_row_max;
+extern POSITION panel_col_min, panel_col_max;
+extern POSITION panel_col_prt, panel_row_prt;
+extern IDX target_who;
+extern POSITION target_col;
+extern POSITION target_row;
extern int player_uid;
extern int player_euid;
extern int player_egid;
-extern char player_name[32];
extern char player_base[32];
extern char savefile[1024];
extern char savefile_base[40];
extern s16b lite_n;
-extern s16b lite_y[LITE_MAX];
-extern s16b lite_x[LITE_MAX];
+extern POSITION lite_y[LITE_MAX];
+extern POSITION lite_x[LITE_MAX];
extern s16b mon_lite_n;
-extern s16b mon_lite_y[MON_LITE_MAX];
-extern s16b mon_lite_x[MON_LITE_MAX];
+extern POSITION mon_lite_y[MON_LITE_MAX];
+extern POSITION mon_lite_x[MON_LITE_MAX];
extern s16b view_n;
-extern byte view_y[VIEW_MAX];
-extern byte view_x[VIEW_MAX];
+extern POSITION view_y[VIEW_MAX];
+extern POSITION view_x[VIEW_MAX];
extern s16b temp_n;
-extern byte temp_y[TEMP_MAX];
-extern byte temp_x[TEMP_MAX];
+extern POSITION temp_y[TEMP_MAX];
+extern POSITION temp_x[TEMP_MAX];
extern s16b redraw_n;
-extern byte redraw_y[REDRAW_MAX];
-extern byte redraw_x[REDRAW_MAX];
+extern POSITION redraw_y[REDRAW_MAX];
+extern POSITION redraw_x[REDRAW_MAX];
extern s16b macro__num;
extern cptr *macro__pat;
extern cptr *macro__act;
extern char *macro__buf;
extern s16b quark__num;
extern cptr *quark__str;
-extern u16b message__next;
-extern u16b message__last;
-extern u16b message__head;
-extern u16b message__tail;
-extern u16b *message__ptr;
+extern u32b message__next;
+extern u32b message__last;
+extern u32b message__head;
+extern u32b message__tail;
+extern u32b *message__ptr;
extern char *message__buf;
extern u32b option_flag[8];
extern u32b option_mask[8];
extern bool monk_notify_aux;
extern wilderness_type **wilderness;
extern building_type building[MAX_BLDG];
-extern u16b max_quests;
-extern u16b max_r_idx;
-extern u16b max_k_idx;
-extern u16b max_v_idx;
-extern u16b max_f_idx;
-extern u16b max_a_idx;
-extern u16b max_e_idx;
-extern u16b max_d_idx;
-extern u16b max_o_idx;
-extern u16b max_m_idx;
-extern s32b max_wild_x;
-extern s32b max_wild_y;
+extern IDX max_quests;
+extern 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 IDX max_e_idx;
+extern IDX max_d_idx;
+extern IDX max_o_idx;
+extern IDX max_m_idx;
+extern POSITION max_wild_x;
+extern POSITION max_wild_y;
extern quest_type *quest;
extern char quest_text[10][80];
extern int quest_text_line;
extern int cap_hp;
extern int cap_maxhp;
extern u16b cap_nickname;
-extern s16b battle_mon[4];
+extern IDX battle_mon[4];
extern int sel_monster;
extern int battle_odds;
extern int kakekin;
extern s16b feat_undetected;
extern byte dungeon_type;
-extern s16b *max_dlv;
+extern DEPTH *max_dlv;
extern s16b feat_wall_outer;
extern s16b feat_wall_inner;
extern s16b feat_wall_solid;
extern void dump_yourself(FILE *fff);
/* cave.c */
-extern int distance(int y1, int x1, int y2, int x2);
-extern bool is_trap(int feat);
+extern POSITION distance(POSITION y1, POSITION x1, POSITION y2, POSITION x2);
+extern bool is_trap(IDX feat);
extern bool is_known_trap(cave_type *c_ptr);
-extern bool is_closed_door(int feat);
+extern bool is_closed_door(IDX feat);
extern bool is_hidden_door(cave_type *c_ptr);
-extern bool los(int y1, int x1, int y2, int x2);
+extern bool los(POSITION y1, POSITION x1, POSITION y2, POSITION x2);
extern void update_local_illumination(int y, int x);
extern bool player_can_see_bold(int y, int x);
extern bool cave_valid_bold(int y, int x);
extern void map_area(int range);
extern void wiz_lite(bool ninja);
extern void wiz_dark(void);
-extern void cave_set_feat(int y, int x, int feat);
-extern int conv_dungeon_feat(int newfeat);
-extern int feat_state(int feat, int action);
+extern void cave_set_feat(POSITION y, POSITION x, IDX feat);
+extern IDX conv_dungeon_feat(IDX newfeat);
+extern IDX feat_state(IDX feat, int action);
extern void cave_alter_feat(int y, int x, int action);
extern void remove_mirror(int y, int x);
extern bool is_mirror_grid(cave_type *c_ptr);
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(int y1, int x1, int y2, int x2);
-extern void scatter(int *yp, int *xp, int y, int x, int d, int mode);
-extern void health_track(int m_idx);
-extern void monster_race_track(int r_idx);
-extern void object_kind_track(int k_idx);
+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 health_track(IDX m_idx);
+extern void monster_race_track(IDX r_idx);
+extern void object_kind_track(IDX k_idx);
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 s16b critical_shot(int weight, int plus_ammo, int plus_bow, int dam);
-extern s16b critical_norm(int weight, int plus, int dam, s16b meichuu, int mode);
+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 void search(void);
extern void py_pickup_aux(int o_idx);
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(int ny, int nx, u32b mpe_mode);
+extern bool move_player_effect(POSITION ny, POSITION nx, u32b mpe_mode);
extern bool trap_can_be_ignored(int feat);
-extern void move_player(int dir, bool do_pickup, bool break_trap);
+extern void move_player(DIRECTION dir, bool do_pickup, bool break_trap);
extern void run_step(int dir);
#ifdef TRAVEL
extern void travel_step(void);
extern void do_cmd_load_screen(void);
extern void do_cmd_save_screen_html_aux(char *filename, int message);
extern void do_cmd_save_screen(void);
-extern void do_cmd_knowledge_quests_completed(FILE *fff, int quest_num[]);
-extern void do_cmd_knowledge_quests_failed(FILE *fff, int quest_num[]);
+extern void do_cmd_knowledge_quests_completed(FILE *fff, IDX quest_num[]);
+extern void do_cmd_knowledge_quests_failed(FILE *fff, IDX quest_num[]);
extern bool ang_sort_comp_quest_num(vptr u, vptr v, int a, int b);
extern void ang_sort_swap_quest_num(vptr u, vptr v, int a, int b);
extern void do_cmd_knowledge(void);
extern void do_cmd_time(void);
/* cmd5.c */
-extern cptr spell_category_name(int tval);
+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);
/* melee1.c */
/* melee2.c */
-extern bool make_attack_normal(int m_idx);
+extern bool make_attack_normal(IDX m_idx);
extern void process_monsters(void);
extern int get_mproc_idx(int m_idx, int mproc_type);
extern void mproc_init(void);
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);
extern bool no_questor_or_bounty_uniques(int r_idx);
+extern void dice_to_string(int base_damage, int dice_num, int dice_side, int dice_mult, int dice_div, char* msg);
/* monster2.c */
extern void update_monsters(bool full);
extern bool place_monster_aux(int who, int y, int x, int r_idx, u32b mode);
extern bool place_monster(int y, int x, u32b mode);
-extern bool alloc_horde(int y, int x);
+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 summon_specific(int who, int y1, int x1, int lev, int type, u32b mode);
extern bool summon_named_creature (int who, int oy, int ox, int r_idx, u32b mode);
extern bool multiply_monster(int m_idx, bool clone, u32b mode);
extern void update_smart_learn(int m_idx, int what);
-extern void choose_new_monster(int m_idx, bool born, int r_idx);
+extern void choose_new_monster(IDX m_idx, bool born, IDX r_idx);
extern byte get_mspeed(monster_race *r_ptr);
-extern bool player_place(int y, int x);
+extern bool player_place(POSITION y, POSITION x);
extern void monster_drop_carried_objects(monster_type *m_ptr);
/* object1.c */
extern void delete_object(int y, int x);
extern void compact_objects(int size);
extern void wipe_o_list(void);
-extern s16b o_pop(void);
+extern IDX o_pop(void);
extern s16b get_obj_num(int level);
extern void object_known(object_type *o_ptr);
extern void object_aware(object_type *o_ptr);
extern int object_similar_part(object_type *o_ptr, object_type *j_ptr);
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 s16b lookup_kind(int tval, int sval);
+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, int k_idx);
+extern void object_prep(object_type *o_ptr, IDX k_idx);
extern void object_copy(object_type *o_ptr, object_type *j_ptr);
extern void apply_magic(object_type *o_ptr, int lev, u32b mode);
extern bool make_object(object_type *j_ptr, u32b mode);
extern void place_object(int y, int x, u32b mode);
extern bool make_gold(object_type *j_ptr);
-extern void place_gold(int y, int x);
+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 inven_drop(int item, int amt);
extern void combine_pack(void);
extern void reorder_pack(void);
-extern void display_koff(int k_idx);
+extern void display_koff(IDX k_idx);
extern object_type *choose_warning_item(void);
extern bool process_warning(int xx, int yy);
extern void do_cmd_kaji(bool only_browse);
extern bool save_floor(saved_floor_type *sf_ptr, u32b mode);
/* spells1.c */
-extern bool in_disintegration_range(int y1, int x1, int y2, int x2);
-extern void breath_shape(u16b *path_g, int dist, int *pgrids, byte *gx, byte *gy, byte *gm, int *pgm_rad, int rad, int y1, int x1, int y2, int x2, int typ);
-extern int take_hit(int damage_type, int damage, cptr kb_str, int monspell);
-extern u16b bolt_pict(int y, int x, int ny, int nx, int typ);
-extern sint project_path(u16b *gp, int range, int y1, int x1, int y2, int x2, int flg);
+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 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, int rad, int y, int x, int dam, int typ, int flg, int monspell);
+extern bool project(int who, POSITION rad, POSITION y, POSITION x, HIT_POINT dam, int typ, int flg, int monspell);
extern int project_length;
extern bool binding_field(int dam);
extern void seal_of_mirror(int dam);
extern void remove_all_mirrors(bool explode);
/* spells3.c */
-extern bool teleport_away(int m_idx, int dis, u32b mode);
-extern void teleport_monster_to(int m_idx, int ty, int tx, int power, u32b mode);
+extern bool teleport_away(IDX m_idx, int dis, u32b mode);
+extern void teleport_monster_to(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 void teleport_player_away(int m_idx, int dis);
-extern void teleport_player_to(int ny, int nx, u32b mode);
+extern void teleport_player_to(POSITION ny, POSITION nx, u32b mode);
extern void teleport_away_followable(int m_idx);
extern void teleport_level(int m_idx);
-extern int choose_dungeon(cptr note, int y, int x);
+extern IDX choose_dungeon(cptr note, int y, int x);
extern bool recall_player(int turns);
extern bool word_of_recall(void);
extern bool reset_recall(void);
extern bool place_mirror(void);
extern bool explosive_rune(void);
extern void identify_pack(void);
-extern bool remove_curse(void);
-extern bool remove_all_curse(void);
+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 recharge(int num);
extern bool bless_weapon(void);
extern bool pulish_shield(void);
-extern bool potion_smash_effect(int who, int y, int x, int k_idx);
+extern bool potion_smash_effect(int who, POSITION y, POSITION x, int 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_2(int chance);
extern s16b spell_chance(int spell,int realm);
extern bool spell_okay(int spell, bool learned, bool study_pray, int realm);
-extern void print_spells(int target_spell, byte *spells, int num, int y, int x, int realm);
+extern void print_spells(int target_spell, int *spells, int num, TERM_POSITION y, TERM_POSITION x, int realm);
extern bool hates_acid(object_type *o_ptr);
extern bool hates_elec(object_type *o_ptr);
extern bool hates_fire(object_type *o_ptr);
extern bool dimension_door(void);
extern bool mirror_tunnel(void);
extern bool summon_kin_player(int level, int y, int x, u32b mode);
-extern void massacre(int py, int px);
+extern void massacre(void);
/* store.c */
extern bool combine_and_reorder_home(int store_num);
extern void move_to_black_market(object_type * o_ptr);
/* bldg.c */
-extern bool get_nightmare(int r_idx);
-extern void have_nightmare(int r_idx);
+extern bool get_nightmare(IDX r_idx);
extern void battle_monsters(void);
extern void do_cmd_bldg(void);
extern void do_cmd_quest(void);
extern void quest_discovery(int q_idx);
-extern int quest_number(int level);
-extern int random_quest_number(int level);
+extern IDX quest_number(DEPTH level);
+extern IDX random_quest_number(DEPTH level);
extern bool tele_town(void);
-extern s16b calc_crit_ratio_shot(int weight, int plus_ammo,int plus_bow, int dam);
-extern s16b calc_expect_crit_shot(int weight, int plus_ammo,int plus_bow, int dam);
-extern s16b calc_expect_crit(int weight, int plus, int dam, s16b meichuu, bool dokubari);
+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);
/* util.c */
extern errr path_parse(char *buf, int max, cptr file);
extern cptr quark_str(s16b num);
extern void quark_init(void);
extern s16b quark_add(cptr str);
-extern s16b message_num(void);
+extern s32b message_num(void);
extern cptr message_str(int age);
extern void message_add(cptr msg);
extern void msg_print(cptr msg);
+extern void msg_print_wizard(int cheat_type, cptr msg);
#ifndef SWIG
extern void msg_format(cptr fmt, ...);
+extern void msg_format_wizard(int cheat_type, cptr fmt, ...);
#endif /* SWIG */
extern void screen_save(void);
extern void screen_load(void);
extern void set_action(int typ);
extern void reset_tim_flags(void);
extern void dispel_player(void);
-extern bool set_mimic(int v, int p, bool do_dec);
-extern bool set_blind(int v);
-extern bool set_confused(int v);
-extern bool set_poisoned(int v);
-extern bool set_afraid(int v);
-extern bool set_paralyzed(int v);
-extern bool set_image(int v);
-extern bool set_fast(int v, bool do_dec);
-extern bool set_slow(int v, bool do_dec);
-extern bool set_shield(int v, bool do_dec);
-extern bool set_tsubureru(int v, bool do_dec);
-extern bool set_magicdef(int v, bool do_dec);
-extern bool set_blessed(int v, bool do_dec);
-extern bool set_hero(int v, bool do_dec);
-extern bool set_shero(int v, bool do_dec);
-extern bool set_protevil(int v, bool do_dec);
-extern bool set_invuln(int v, bool do_dec);
-extern bool set_tim_invis(int v, bool do_dec);
-extern bool set_tim_infra(int v, bool do_dec);
-extern bool set_tim_regen(int v, bool do_dec);
-extern bool set_tim_stealth(int v, bool do_dec);
-extern bool set_lightspeed(int v, bool do_dec);
-extern bool set_tim_levitation(int v, bool do_dec);
-extern bool set_tim_sh_touki(int v, bool do_dec);
-extern bool set_tim_sh_fire(int v, bool do_dec);
-extern bool set_tim_sh_holy(int v, bool do_dec);
-extern bool set_tim_eyeeye(int v, bool do_dec);
-extern bool set_resist_magic(int v, bool do_dec);
-extern bool set_tim_reflect(int v, bool do_dec);
-extern bool set_multishadow(int v, bool do_dec);
-extern bool set_dustrobe(int v, bool do_dec);
-extern bool set_kabenuke(int v, bool do_dec);
-extern bool set_tsuyoshi(int v, bool do_dec);
-extern bool set_ele_attack(u32b attack_type, int v);
-extern bool set_ele_immune(u32b immune_type, int v);
-extern bool set_oppose_acid(int v, bool do_dec);
-extern bool set_oppose_elec(int v, bool do_dec);
-extern bool set_oppose_fire(int v, bool do_dec);
-extern bool set_oppose_cold(int v, bool do_dec);
-extern bool set_oppose_pois(int v, bool do_dec);
-extern bool set_stun(int v);
-extern bool set_cut(int v);
-extern bool set_food(int v);
+extern bool set_mimic(TIME_EFFECT v, IDX p, bool do_dec);
+extern bool set_blind(TIME_EFFECT v);
+extern bool set_confused(TIME_EFFECT v);
+extern bool set_poisoned(TIME_EFFECT v);
+extern bool set_afraid(TIME_EFFECT v);
+extern bool set_paralyzed(TIME_EFFECT v);
+extern bool set_image(TIME_EFFECT v);
+extern bool set_fast(TIME_EFFECT v, bool do_dec);
+extern bool set_slow(TIME_EFFECT v, bool do_dec);
+extern bool set_shield(TIME_EFFECT v, bool do_dec);
+extern bool set_tsubureru(TIME_EFFECT v, bool do_dec);
+extern bool set_magicdef(TIME_EFFECT v, bool do_dec);
+extern bool set_blessed(TIME_EFFECT v, bool do_dec);
+extern bool set_hero(TIME_EFFECT v, bool do_dec);
+extern bool set_shero(TIME_EFFECT v, bool do_dec);
+extern bool set_protevil(TIME_EFFECT v, bool do_dec);
+extern bool set_invuln(TIME_EFFECT v, bool do_dec);
+extern bool set_tim_invis(TIME_EFFECT v, bool do_dec);
+extern bool set_tim_infra(TIME_EFFECT v, bool do_dec);
+extern bool set_tim_regen(TIME_EFFECT v, bool do_dec);
+extern bool set_tim_stealth(TIME_EFFECT v, bool do_dec);
+extern bool set_lightspeed(TIME_EFFECT v, bool do_dec);
+extern bool set_tim_levitation(TIME_EFFECT v, bool do_dec);
+extern bool set_tim_sh_touki(TIME_EFFECT v, bool do_dec);
+extern bool set_tim_sh_fire(TIME_EFFECT v, bool do_dec);
+extern bool set_tim_sh_holy(TIME_EFFECT v, bool do_dec);
+extern bool set_tim_eyeeye(TIME_EFFECT v, bool do_dec);
+extern bool set_resist_magic(TIME_EFFECT v, bool do_dec);
+extern bool set_tim_reflect(TIME_EFFECT v, bool do_dec);
+extern bool set_multishadow(TIME_EFFECT v, bool do_dec);
+extern bool set_dustrobe(TIME_EFFECT v, bool do_dec);
+extern bool set_kabenuke(TIME_EFFECT v, bool do_dec);
+extern bool set_tsuyoshi(TIME_EFFECT v, bool do_dec);
+extern bool set_ele_attack(u32b attack_type, TIME_EFFECT v);
+extern bool set_ele_immune(u32b immune_type, TIME_EFFECT v);
+extern bool set_oppose_acid(TIME_EFFECT v, bool do_dec);
+extern bool set_oppose_elec(TIME_EFFECT v, bool do_dec);
+extern bool set_oppose_fire(TIME_EFFECT v, bool do_dec);
+extern bool set_oppose_cold(TIME_EFFECT v, bool do_dec);
+extern bool set_oppose_pois(TIME_EFFECT v, bool do_dec);
+extern bool set_stun(TIME_EFFECT v);
+extern bool set_cut(TIME_EFFECT v);
+extern bool set_food(TIME_EFFECT v);
extern bool inc_stat(int stat);
extern bool dec_stat(int stat, int amount, int permanent);
extern bool res_stat(int stat);
extern void lose_exp(s32b amount);
extern bool drain_exp(s32b drain, s32b slip, int hold_exp_prob);
extern void do_poly_self(void);
-extern bool set_ultimate_res(int v, bool do_dec);
-extern bool set_tim_res_nether(int v, bool do_dec);
-extern bool set_tim_res_time(int v, bool do_dec);
+extern bool set_ultimate_res(TIME_EFFECT v, bool do_dec);
+extern bool set_tim_res_nether(TIME_EFFECT v, bool do_dec);
+extern bool set_tim_res_time(TIME_EFFECT v, bool do_dec);
extern bool choose_ele_attack(void);
-extern bool choose_ele_immune(int turn);
-extern bool set_wraith_form(int v, bool do_dec);
-extern bool set_tim_esp(int v, bool do_dec);
+extern bool choose_ele_immune(TIME_EFFECT turn);
+extern bool set_wraith_form(TIME_EFFECT v, bool do_dec);
+extern bool set_tim_esp(TIME_EFFECT v, bool do_dec);
extern bool set_superstealth(bool set);
/* xtra2.c */
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(int m_idx, bool drop_item);
+extern void monster_death(IDX m_idx, bool drop_item);
extern bool mon_take_hit(int m_idx, int dam, bool *fear, cptr note);
extern void get_screen_size(int *wid_p, int *hgt_p);
extern void panel_bounds_center(void);
extern bool target_able(int m_idx);
extern bool target_okay(void);
extern bool target_set(int mode);
-extern void target_set_prepare_look();
+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 void gain_level_reward(int chosen_reward);
-extern bool tgt_pt (int *x, int *y);
+extern bool tgt_pt(POSITION *x, POSITION *y);
extern void do_poly_wounds(void);
-extern void change_race(int new_race, cptr effect_msg);
-extern int mon_damage_mod(monster_type *m_ptr, int dam, bool is_psy_spear);
+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(int sval);
-extern int bow_tmul(int sval);
+extern s16b 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);
extern int riding_exp_level(int riding_exp);
extern int spell_exp_level(int spell_exp);
extern void display_rumor(bool ex);
-/* mspells1.c */
-extern bool clean_shot(int y1, int x1, int y2, int x2, bool is_friend);
-extern bool summon_possible(int y1, int x1);
-extern bool raise_possible(monster_type *m_ptr);
-extern bool dispel_check(int m_idx);
-extern bool spell_is_inate(u16b spell);
-extern bool make_attack_spell(int m_idx);
-
-/* mspells2.c */
-extern void get_project_point(int sy, int sx, int *ty, int *tx, int flg);
-extern bool monst_spell_monst(int m_idx);
-
/* artifact.c */
extern void one_sustain(object_type *o_ptr);
extern void one_high_resistance(object_type *o_ptr);
extern void show_highclass(void);
/* mind.c */
-extern mind_power mind_powers[5];
+extern mind_power const mind_powers[5];
extern void mindcraft_info(char *p, int use_mind, int power);
extern void do_cmd_mind(void);
extern void do_cmd_mind_browse(void);
/* mane.c */
extern bool do_cmd_mane(bool baigaesi);
-extern void bolt(int m_idx, int typ, int dam_hp, int monspell, bool learnable);
-extern void breath(int y, int x, int m_idx, int typ, int dam_hp, int rad, bool breath, int monspell, bool learnable);
+
+/* mspells1.c */
+extern bool clean_shot(int y1, int x1, int y2, int x2, bool is_friend);
+extern bool summon_possible(int y1, int x1);
+extern bool raise_possible(monster_type *m_ptr);
+extern bool dispel_check(IDX m_idx);
+extern bool spell_is_inate(u16b spell);
+extern bool make_attack_spell(IDX m_idx);
+extern void beam(int m_idx, int y, int x, int typ, int dam_hp, int monspell, int target_type);
+extern void bolt(int m_idx, int y, int x, int typ, int dam_hp, int monspell, int target_type);
+extern void breath(int y, int x, int 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 bool monst_spell_monst(IDX m_idx);
/* mspells3.c */
extern bool do_cmd_cast_learned(void);
extern void set_rf_masks(s32b *f4, s32b *f5, s32b *f6, int mode);
/* mspells4.c */
-extern void spell_RF4_SHRIEK(int m_idx, cptr m_name);
-extern void spell_RF4_DISPEL(bool blind, cptr m_name);
-extern void spell_RF4_ROCKET(bool blind, cptr m_name, monster_type* m_ptr, int y, int x, int m_idx, bool learnable);
-extern void spell_RF4_SHOOT(bool blind, cptr m_name, monster_race* r_ptr, int m_idx, bool learnable);
-extern void spell_RF4_BREATH(int GF_TYPE, bool blind, cptr m_name, monster_type* m_ptr, int y, int x, int m_idx, bool learnable);
-extern void spell_RF4_BA_CHAO(bool blind, cptr m_name, monster_race* r_ptr, int rlev, int y, int x, int m_idx, bool learnable);
-extern void spell_RF4_BA_NUKE(bool blind, cptr m_name, monster_race* r_ptr, int rlev, int y, int x, int m_idx, bool learnable);
-extern void spell_RF5_BA_ACID(bool blind, cptr m_name, monster_race* r_ptr, int rlev, int y, int x, int m_idx, bool learnable);
-extern void spell_RF5_BA_ELEC(bool blind, cptr m_name, monster_race* r_ptr, int rlev, int y, int x, int m_idx, bool learnable);
-extern void spell_RF5_BA_FIRE(monster_type* m_ptr, bool blind, cptr m_name, monster_race* r_ptr, int rlev, int y, int x, int m_idx, bool learnable);
-extern void spell_RF5_BA_COLD(bool blind, cptr m_name, monster_race* r_ptr, int rlev, int y, int x, int m_idx, bool learnable);
-extern void spell_RF5_BA_POIS(bool blind, cptr m_name, monster_race* r_ptr, int rlev, int y, int x, int m_idx, bool learnable);
-extern void spell_RF5_BA_NETH(bool blind, cptr m_name, monster_race* r_ptr, int rlev, int y, int x, int m_idx, bool learnable);
-extern void spell_RF5_BA_WATE(bool blind, cptr m_name, monster_race* r_ptr, int rlev, int y, int x, int m_idx, bool learnable);
-extern void spell_RF5_BA_MANA(bool blind, cptr m_name, monster_race* r_ptr, int rlev, int y, int x, int m_idx, bool learnable);
-extern void spell_RF5_BA_DARK(bool blind, cptr m_name, monster_race* r_ptr, int rlev, int y, int x, int m_idx, bool learnable);
-extern void spell_RF5_DRAIN_MANA(bool blind, cptr m_name, monster_race* r_ptr, int rlev, int y, int x, int m_idx, bool learnable);
-extern void spell_RF5_MIND_BLAST(bool seen, cptr m_name, monster_race* r_ptr, int rlev, int y, int x, int m_idx, bool learnable);
-extern void spell_RF5_BRAIN_SMASH(bool seen, cptr m_name, monster_race* r_ptr, int rlev, int y, int x, int m_idx, bool learnable);
-extern void spell_RF5_CAUSE_1(bool blind, cptr m_name, monster_race* r_ptr, int rlev, int y, int x, int m_idx, bool learnable);
-extern void spell_RF5_CAUSE_2(bool blind, cptr m_name, monster_race* r_ptr, int rlev, int y, int x, int m_idx, bool learnable);
-extern void spell_RF5_CAUSE_3(bool blind, cptr m_name, monster_race* r_ptr, int rlev, int y, int x, int m_idx, bool learnable);
-extern void spell_RF5_CAUSE_4(bool blind, cptr m_name, monster_race* r_ptr, int rlev, int y, int x, int m_idx, bool learnable);
-extern void spell_RF5_BO_ACID(bool blind, cptr m_name, monster_race* r_ptr, int rlev, int y, int x, int m_idx, bool learnable);
-extern void spell_RF5_BO_ELEC(bool blind, cptr m_name, monster_race* r_ptr, int rlev, int y, int x, int m_idx, bool learnable);
-extern void spell_RF5_BO_FIRE(bool blind, cptr m_name, monster_race* r_ptr, int rlev, int y, int x, int m_idx, bool learnable);
-extern void spell_RF5_BO_COLD(bool blind, cptr m_name, monster_race* r_ptr, int rlev, int y, int x, int m_idx, bool learnable);
-extern void spell_RF5_BA_LITE(bool blind, cptr m_name, monster_race* r_ptr, int rlev, int y, int x, int m_idx, bool learnable);
-extern void spell_RF5_BO_NETH(bool blind, cptr m_name, monster_race* r_ptr, int rlev, int y, int x, int m_idx, bool learnable);
-extern void spell_RF5_BO_WATE(bool blind, cptr m_name, monster_race* r_ptr, int rlev, int y, int x, int m_idx, bool learnable);
-extern void spell_RF5_BO_MANA(bool blind, cptr m_name, monster_race* r_ptr, int rlev, int y, int x, int m_idx, bool learnable);
-extern void spell_RF5_BO_PLAS(bool blind, cptr m_name, monster_race* r_ptr, int rlev, int y, int x, int m_idx, bool learnable);
-extern void spell_RF5_BO_ICEE(bool blind, cptr m_name, monster_race* r_ptr, int rlev, int y, int x, int m_idx, bool learnable);
-extern void spell_RF5_MISSILE(bool blind, cptr m_name, monster_race* r_ptr, int rlev, int y, int x, int m_idx, bool learnable);
+extern bool spell_learnable(int m_idx);
+extern int monspell_to_player(int SPELL_NUM, POSITION y, POSITION x, IDX m_idx);
+extern int monspell_to_monster(int SPELL_NUM, POSITION y, POSITION x, IDX m_idx, IDX t_idx);
+extern int monspell_damage(int SPELL_NUM, int m_idx, int TYPE);
+extern int monspell_race_damage(int SPELL_NUM, int r_idx, int TYPE);
+extern int monspell_bluemage_damage(int SPELL_NUM, int plev, int TYPE);
/* hissatsu.c */
extern void hissatsu_info(char *p, int power);
#ifdef JP
/* japanese.c */
extern void sindarin_to_kana(char *kana, const char *sindarin);
-extern void jverb1( const char *in , char *out);
-extern void jverb2( const char *in , char *out);
-extern void jverb3( const char *in , char *out);
extern void jverb( const char *in , char *out , int flag);
extern void sjis2euc(char *str);
extern void euc2sjis(char *str);
extern byte codeconv(char *str);
extern bool iskanji2(cptr s, int x);
+extern void guess_convert_to_system_encoding(char* strbuf, int buflen);
#endif
#ifdef WORLD_SCORE
extern bool stop_hex_spell(void);
extern void check_hex(void);
extern bool hex_spell_fully(void);
-extern void revenge_spell();
+extern void revenge_spell(void);
extern void revenge_store(int dam);
extern bool teleport_barrier(int m_idx);
extern bool magic_barrier(int m_idx);
extern bool multiply_barrier(int m_idx);
-