From 89e004fbceeeb5061fa545413b3271aca96a85dd Mon Sep 17 00:00:00 2001 From: deskull Date: Fri, 3 May 2019 10:39:53 +0900 Subject: [PATCH] =?utf8?q?[Refactor]=20#37353=20spells1.h,=20spells2.h?= =?utf8?q?=E3=80=80=E3=81=AE=E5=AE=A3=E8=A8=80=E3=82=92=E6=95=B4=E7=90=86?= =?utf8?q?=EF=BC=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- src/externs.h | 136 --------------------------------------------------- src/floor-save.c | 1 + src/floor-streams.c | 1 + src/geometry.c | 2 +- src/monster-status.c | 1 + src/object.h | 4 +- src/player-effects.h | 1 + src/spells-summon.c | 1 + src/spells.h | 134 ++++++++++++++++++++++++++++++++++++++++++++++++++ src/xtra2.c | 1 + 10 files changed, 144 insertions(+), 138 deletions(-) diff --git a/src/externs.h b/src/externs.h index 60b17a6d1..bf9a7730c 100644 --- a/src/externs.h +++ b/src/externs.h @@ -342,142 +342,6 @@ extern bool load_player(void); extern void remove_loc(void); extern bool save_floor(saved_floor_type *sf_ptr, BIT_FLAGS mode); -/* spells1.c */ -extern PERCENTAGE 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, POSITION *gm, POSITION *pgm_rad, POSITION rad, POSITION y1, POSITION x1, POSITION y2, POSITION x2, EFFECT_ID typ); -extern int take_hit(int damage_type, HIT_POINT damage, concptr kb_str, int monspell); -extern u16b bolt_pict(POSITION y, POSITION x, POSITION ny, POSITION nx, EFFECT_ID typ); -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, EFFECT_ID typ, BIT_FLAGS flg, int monspell); -extern int project_length; -extern bool binding_field(HIT_POINT dam); -extern void seal_of_mirror(HIT_POINT dam); -extern concptr spell_category_name(OBJECT_TYPE_VALUE tval); - -/* spells2.c */ -extern bool detect_traps(POSITION range, bool known); -extern bool detect_doors(POSITION range); -extern bool detect_stairs(POSITION range); -extern bool detect_treasure(POSITION range); -extern bool detect_objects_gold(POSITION range); -extern bool detect_objects_normal(POSITION range); -extern bool detect_objects_magic(POSITION range); -extern bool detect_monsters_normal(POSITION range); -extern bool detect_monsters_invis(POSITION range); -extern bool detect_monsters_evil(POSITION range); -extern bool detect_monsters_xxx(POSITION range, u32b match_flag); -extern bool detect_monsters_string(POSITION range, concptr); -extern bool detect_monsters_nonliving(POSITION range); -extern bool detect_monsters_mind(POSITION range); -extern bool detect_all(POSITION range); -extern bool wall_stone(void); -extern bool speed_monsters(void); -extern bool slow_monsters(int power); -extern bool sleep_monsters(int power); -extern void aggravate_monsters(MONSTER_IDX who); -extern bool genocide_aux(MONSTER_IDX m_idx, int power, bool player_cast, int dam_side, concptr spell_name); -extern bool symbol_genocide(int power, bool player_cast); -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(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 cleansing_nova(player_type *creature_ptr, bool magic, bool powerful); -extern bool unleash_mana_storm(player_type *creature_ptr, bool powerful); -extern bool crusade(void); -extern bool turn_undead(void); -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(POSITION y1, POSITION x1); -extern bool starlight(bool magic); -extern void unlite_room(POSITION y1, POSITION x1); -extern bool lite_area(HIT_POINT dam, POSITION rad); -extern bool unlite_area(HIT_POINT dam, POSITION rad); -extern bool fire_ball(EFFECT_ID typ, DIRECTION dir, HIT_POINT dam, POSITION rad); -extern bool fire_breath(EFFECT_ID typ, DIRECTION dir, HIT_POINT dam, POSITION rad); -extern bool fire_rocket(EFFECT_ID typ, DIRECTION dir, HIT_POINT dam, POSITION rad); -extern bool fire_ball_hide(EFFECT_ID typ, DIRECTION dir, HIT_POINT dam, POSITION rad); -extern bool fire_meteor(MONSTER_IDX who, EFFECT_ID typ, POSITION x, POSITION y, HIT_POINT dam, POSITION rad); -extern bool fire_bolt(EFFECT_ID typ, DIRECTION dir, HIT_POINT dam); -extern bool fire_blast(EFFECT_ID typ, DIRECTION dir, DICE_NUMBER dd, DICE_SID ds, int num, int dev); -extern void call_chaos(void); -extern bool fire_beam(EFFECT_ID typ, DIRECTION dir, HIT_POINT dam); -extern bool fire_bolt_or_beam(PERCENTAGE prob, EFFECT_ID typ, DIRECTION dir, HIT_POINT dam); -extern bool lite_line(DIRECTION dir, HIT_POINT dam); -extern bool hypodynamic_bolt(DIRECTION dir, HIT_POINT dam); -extern bool death_ray(DIRECTION dir, PLAYER_LEVEL plev); -extern bool wall_to_mud(DIRECTION dir, HIT_POINT dam); -extern bool destroy_door(DIRECTION dir); -extern bool disarm_trap(DIRECTION dir); -extern bool wizard_lock(DIRECTION dir); -extern bool teleport_monster(DIRECTION dir, int distance); -extern bool door_creation(void); -extern bool trap_creation(POSITION y, POSITION x); -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(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(POSITION y, POSITION x, bool can_pet); -extern void wall_breaker(void); -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(HIT_POINT dam); -extern bool turn_evil(HIT_POINT dam); -extern bool deathray_monsters(void); -extern bool charm_monster(DIRECTION dir, PLAYER_LEVEL plev); -extern bool control_one_undead(DIRECTION dir, PLAYER_LEVEL plev); -extern bool control_one_demon(DIRECTION dir, PLAYER_LEVEL plev); -extern bool charm_animal(DIRECTION dir, PLAYER_LEVEL plev); -extern bool mindblast_monsters(HIT_POINT dam); -extern s32b flag_cost(object_type *o_ptr, int plusses); -extern bool teleport_swap(DIRECTION dir); -extern bool project_hook(EFFECT_ID typ, DIRECTION dir, HIT_POINT dam, BIT_FLAGS flg); -extern bool project_all_los(EFFECT_ID 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(DIRECTION dir); -extern void wild_magic(int spell); -extern void cast_meteor(HIT_POINT dam, POSITION rad); -extern bool cast_wrath_of_the_god(HIT_POINT dam, POSITION rad); -extern void cast_wonder(DIRECTION dir); -extern void cast_invoke_spirits(DIRECTION dir); -extern void cast_shuffle(void); -extern void stop_mouth(void); -extern bool_hack vampirism(void); -extern bool panic_hit(void); -extern bool psychometry(void); -extern bool draconian_breath(player_type *creature_ptr); -extern bool android_inside_weapon(player_type *creature_ptr); -extern bool create_ration(player_type *crature_ptr); -extern void hayagake(player_type *creature_ptr); -extern bool double_attack(player_type *creature_ptr); -extern bool comvert_hp_to_mp(player_type *creature_ptr); -extern bool comvert_mp_to_hp(player_type *creature_ptr); -extern bool demonic_breath(player_type *creature_ptr); -extern bool mirror_concentration(player_type *creature_ptr); -extern bool sword_dancing(player_type *creature_ptr); -extern bool confusing_light(player_type *creature_ptr); -extern bool rodeo(player_type *creature_ptr); -extern bool clear_mind(player_type *creature_ptr); -extern bool concentration(player_type *creature_ptr); - /* xtra1.c */ extern void handle_stuff(void); extern void update_output(void); diff --git a/src/floor-save.c b/src/floor-save.c index 288de4508..e31d4ad51 100644 --- a/src/floor-save.c +++ b/src/floor-save.c @@ -31,6 +31,7 @@ #include "files.h" #include "player-effects.h" #include "world.h" +#include "spells.h" static FLOOR_IDX new_floor_id; /*!<次のフロアのID / floor_id of the destination */ static u32b change_floor_mode; /*!<フロア移行処理に関するフラグ / Mode flags for changing floor */ diff --git a/src/floor-streams.c b/src/floor-streams.c index 1eb85b8b7..e80ff5e11 100644 --- a/src/floor-streams.c +++ b/src/floor-streams.c @@ -28,6 +28,7 @@ #include "feature.h" #include "object-flavor.h" #include "object-hook.h" +#include "spells.h" /*! diff --git a/src/geometry.c b/src/geometry.c index 4d4fe814a..075d78af0 100644 --- a/src/geometry.c +++ b/src/geometry.c @@ -1,6 +1,6 @@ #include "angband.h" #include "floor.h" - +#include "spells.h" /*! * @brief 2点間の距離をニュートン・ラプソン法で算出する / Distance between two points via Newton-Raphson technique diff --git a/src/monster-status.c b/src/monster-status.c index fe3df2568..b0075e0b7 100644 --- a/src/monster-status.c +++ b/src/monster-status.c @@ -8,6 +8,7 @@ #include "monster-status.h" #include "monster-spell.h" #include "monster-process.h" +#include "spells.h" #include "spells-summon.h" #include "monsterrace-hook.h" #include "object-curse.h" diff --git a/src/object.h b/src/object.h index ba37c6b80..70047ebfa 100644 --- a/src/object.h +++ b/src/object.h @@ -171,4 +171,6 @@ extern void display_koff(KIND_OBJECT_IDX k_idx); extern void torch_flags(object_type *o_ptr, BIT_FLAGS *flgs); extern void torch_dice(object_type *o_ptr, DICE_NUMBER *dd, DICE_SID *ds); extern void torch_lost_fuel(object_type *o_ptr); -extern concptr essence_name[]; \ No newline at end of file +extern concptr essence_name[]; + +extern s32b flag_cost(object_type *o_ptr, int plusses); diff --git a/src/player-effects.h b/src/player-effects.h index 5a1f203a7..b3c91b2a0 100644 --- a/src/player-effects.h +++ b/src/player-effects.h @@ -10,6 +10,7 @@ struct kamae }; /* effects.c */ +extern int take_hit(int damage_type, HIT_POINT damage, concptr kb_str, int monspell); extern void set_action(ACTION_IDX typ); extern void reset_tim_flags(void); extern void dispel_player(void); diff --git a/src/spells-summon.c b/src/spells-summon.c index a4348fee5..fbbeb4d40 100644 --- a/src/spells-summon.c +++ b/src/spells-summon.c @@ -1,6 +1,7 @@ #include "angband.h" #include "util.h" +#include "spells.h" #include "spells-summon.h" #include "monster-status.h" #include "floor.h" diff --git a/src/spells.h b/src/spells.h index f01c62f3a..1ce2dcba8 100644 --- a/src/spells.h +++ b/src/spells.h @@ -128,6 +128,140 @@ struct magic_type extern const magic_type technic_info[NUM_TECHNIC][32]; +/* spells1.c */ +extern PERCENTAGE 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, POSITION *gm, POSITION *pgm_rad, POSITION rad, POSITION y1, POSITION x1, POSITION y2, POSITION x2, EFFECT_ID typ); +extern u16b bolt_pict(POSITION y, POSITION x, POSITION ny, POSITION nx, EFFECT_ID typ); +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, EFFECT_ID typ, BIT_FLAGS flg, int monspell); +extern int project_length; +extern bool binding_field(HIT_POINT dam); +extern void seal_of_mirror(HIT_POINT dam); +extern concptr spell_category_name(OBJECT_TYPE_VALUE tval); + +/* spells2.c */ +extern bool detect_traps(POSITION range, bool known); +extern bool detect_doors(POSITION range); +extern bool detect_stairs(POSITION range); +extern bool detect_treasure(POSITION range); +extern bool detect_objects_gold(POSITION range); +extern bool detect_objects_normal(POSITION range); +extern bool detect_objects_magic(POSITION range); +extern bool detect_monsters_normal(POSITION range); +extern bool detect_monsters_invis(POSITION range); +extern bool detect_monsters_evil(POSITION range); +extern bool detect_monsters_xxx(POSITION range, u32b match_flag); +extern bool detect_monsters_string(POSITION range, concptr); +extern bool detect_monsters_nonliving(POSITION range); +extern bool detect_monsters_mind(POSITION range); +extern bool detect_all(POSITION range); +extern bool wall_stone(void); +extern bool speed_monsters(void); +extern bool slow_monsters(int power); +extern bool sleep_monsters(int power); +extern void aggravate_monsters(MONSTER_IDX who); +extern bool genocide_aux(MONSTER_IDX m_idx, int power, bool player_cast, int dam_side, concptr spell_name); +extern bool symbol_genocide(int power, bool player_cast); +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(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 cleansing_nova(player_type *creature_ptr, bool magic, bool powerful); +extern bool unleash_mana_storm(player_type *creature_ptr, bool powerful); +extern bool crusade(void); +extern bool turn_undead(void); +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(POSITION y1, POSITION x1); +extern bool starlight(bool magic); +extern void unlite_room(POSITION y1, POSITION x1); +extern bool lite_area(HIT_POINT dam, POSITION rad); +extern bool unlite_area(HIT_POINT dam, POSITION rad); +extern bool fire_ball(EFFECT_ID typ, DIRECTION dir, HIT_POINT dam, POSITION rad); +extern bool fire_breath(EFFECT_ID typ, DIRECTION dir, HIT_POINT dam, POSITION rad); +extern bool fire_rocket(EFFECT_ID typ, DIRECTION dir, HIT_POINT dam, POSITION rad); +extern bool fire_ball_hide(EFFECT_ID typ, DIRECTION dir, HIT_POINT dam, POSITION rad); +extern bool fire_meteor(MONSTER_IDX who, EFFECT_ID typ, POSITION x, POSITION y, HIT_POINT dam, POSITION rad); +extern bool fire_bolt(EFFECT_ID typ, DIRECTION dir, HIT_POINT dam); +extern bool fire_blast(EFFECT_ID typ, DIRECTION dir, DICE_NUMBER dd, DICE_SID ds, int num, int dev); +extern void call_chaos(void); +extern bool fire_beam(EFFECT_ID typ, DIRECTION dir, HIT_POINT dam); +extern bool fire_bolt_or_beam(PERCENTAGE prob, EFFECT_ID typ, DIRECTION dir, HIT_POINT dam); +extern bool lite_line(DIRECTION dir, HIT_POINT dam); +extern bool hypodynamic_bolt(DIRECTION dir, HIT_POINT dam); +extern bool death_ray(DIRECTION dir, PLAYER_LEVEL plev); +extern bool wall_to_mud(DIRECTION dir, HIT_POINT dam); +extern bool destroy_door(DIRECTION dir); +extern bool disarm_trap(DIRECTION dir); +extern bool wizard_lock(DIRECTION dir); +extern bool teleport_monster(DIRECTION dir, int distance); +extern bool door_creation(void); +extern bool trap_creation(POSITION y, POSITION x); +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(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(POSITION y, POSITION x, bool can_pet); +extern void wall_breaker(void); +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(HIT_POINT dam); +extern bool turn_evil(HIT_POINT dam); +extern bool deathray_monsters(void); +extern bool charm_monster(DIRECTION dir, PLAYER_LEVEL plev); +extern bool control_one_undead(DIRECTION dir, PLAYER_LEVEL plev); +extern bool control_one_demon(DIRECTION dir, PLAYER_LEVEL plev); +extern bool charm_animal(DIRECTION dir, PLAYER_LEVEL plev); +extern bool mindblast_monsters(HIT_POINT dam); +extern bool teleport_swap(DIRECTION dir); +extern bool project_hook(EFFECT_ID typ, DIRECTION dir, HIT_POINT dam, BIT_FLAGS flg); +extern bool project_all_los(EFFECT_ID 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(DIRECTION dir); +extern void wild_magic(int spell); +extern void cast_meteor(HIT_POINT dam, POSITION rad); +extern bool cast_wrath_of_the_god(HIT_POINT dam, POSITION rad); +extern void cast_wonder(DIRECTION dir); +extern void cast_invoke_spirits(DIRECTION dir); +extern void cast_shuffle(void); +extern void stop_mouth(void); +extern bool_hack vampirism(void); +extern bool panic_hit(void); +extern bool psychometry(void); +extern bool draconian_breath(player_type *creature_ptr); +extern bool android_inside_weapon(player_type *creature_ptr); +extern bool create_ration(player_type *crature_ptr); +extern void hayagake(player_type *creature_ptr); +extern bool double_attack(player_type *creature_ptr); +extern bool comvert_hp_to_mp(player_type *creature_ptr); +extern bool comvert_mp_to_hp(player_type *creature_ptr); +extern bool demonic_breath(player_type *creature_ptr); +extern bool mirror_concentration(player_type *creature_ptr); +extern bool sword_dancing(player_type *creature_ptr); +extern bool confusing_light(player_type *creature_ptr); +extern bool rodeo(player_type *creature_ptr); +extern bool clear_mind(player_type *creature_ptr); +extern bool concentration(player_type *creature_ptr); + /* spells3.c */ extern bool teleport_away(MONSTER_IDX m_idx, POSITION dis, BIT_FLAGS mode); extern void teleport_monster_to(MONSTER_IDX m_idx, POSITION ty, POSITION tx, int power, BIT_FLAGS mode); diff --git a/src/xtra2.c b/src/xtra2.c index 29da22887..a3934bb2b 100644 --- a/src/xtra2.c +++ b/src/xtra2.c @@ -35,6 +35,7 @@ #include "feature.h" #include "quest.h" #include "dungeon.h" +#include "spells.h" /*! * @brief コンソール上におけるマップ表示の左上位置を返す / -- 2.11.0