From 6c46b37b821d7863f8eefa2ae4e3cf096cdf5dc7 Mon Sep 17 00:00:00 2001 From: Hourier Date: Sat, 4 Jul 2020 14:39:28 +0900 Subject: [PATCH] [Refactor] #40482 Separated death-crimson.c/h from spells3.c/h; what's this source codes!? --- Hengband/Hengband/Hengband.vcxproj | 2 ++ Hengband/Hengband/Hengband.vcxproj.filters | 6 ++++ src/Makefile.am | 1 + src/cmd-item/cmd-activate.c | 1 + src/specific-object/death-crimson.c | 44 ++++++++++++++++++++++++++++++ src/specific-object/death-crimson.h | 5 ++++ src/spell/spells3.c | 38 -------------------------- src/spell/spells3.h | 1 - 8 files changed, 59 insertions(+), 39 deletions(-) create mode 100644 src/specific-object/death-crimson.c create mode 100644 src/specific-object/death-crimson.h diff --git a/Hengband/Hengband/Hengband.vcxproj b/Hengband/Hengband/Hengband.vcxproj index 5e676bb2e..99df11274 100644 --- a/Hengband/Hengband/Hengband.vcxproj +++ b/Hengband/Hengband/Hengband.vcxproj @@ -236,6 +236,7 @@ + @@ -690,6 +691,7 @@ + diff --git a/Hengband/Hengband/Hengband.vcxproj.filters b/Hengband/Hengband/Hengband.vcxproj.filters index 32d8e8897..80c2734e0 100644 --- a/Hengband/Hengband/Hengband.vcxproj.filters +++ b/Hengband/Hengband/Hengband.vcxproj.filters @@ -1589,6 +1589,9 @@ object-potion + + specific-object + @@ -3475,6 +3478,9 @@ object-potion + + specific-object + diff --git a/src/Makefile.am b/src/Makefile.am index 4acb51457..7a99be0e7 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -523,6 +523,7 @@ hengband_SOURCES = \ \ specific-object/bow.c specific-object/bow.h \ specific-object/chest.c specific-object/chest.h \ + specific-object/death-crimson.c specific-object/death-crimson.h \ specific-object/death-scythe.c specific-object/death-scythe.h \ specific-object/torch.c specific-object/torch.h \ \ diff --git a/src/cmd-item/cmd-activate.c b/src/cmd-item/cmd-activate.c index e43b86bb0..8f381eb38 100644 --- a/src/cmd-item/cmd-activate.c +++ b/src/cmd-item/cmd-activate.c @@ -53,6 +53,7 @@ #include "status/action-setter.h" #include "player/player-race-types.h" #include "player/special-defense-types.h" +#include "specific-object/death-crimson.h" #include "spell-kind/earthquake.h" #include "spell-kind/spells-beam.h" #include "spell-kind/spells-charm.h" diff --git a/src/specific-object/death-crimson.c b/src/specific-object/death-crimson.c new file mode 100644 index 000000000..02c178e70 --- /dev/null +++ b/src/specific-object/death-crimson.c @@ -0,0 +1,44 @@ +#include "specific-object/death-crimson.h" +#include "effect/effect-characteristics.h" +#include "floor/geometry.h" +#include "io/targeting.h" +#include "spell/process-effect.h" +#include "spell/spell-types.h" + +/*! + * @brief クリムゾンを発射する / Fire Crimson, evoluting gun. + @ @param shooter_ptr 射撃を行うクリーチャー参照 + * @return キャンセルした場合 false. + * @details + * Need to analyze size of the window. + * Need more color coding. + */ +bool fire_crimson(player_type *shooter_ptr) +{ + DIRECTION dir; + if (!get_aim_dir(shooter_ptr, &dir)) + return FALSE; + + POSITION tx = shooter_ptr->x + 99 * ddx[dir]; + POSITION ty = shooter_ptr->y + 99 * ddy[dir]; + if ((dir == 5) && target_okay(shooter_ptr)) { + tx = target_col; + ty = target_row; + } + + int num = 1; + if (shooter_ptr->pclass == CLASS_ARCHER) { + if (shooter_ptr->lev >= 10) + num++; + if (shooter_ptr->lev >= 30) + num++; + if (shooter_ptr->lev >= 45) + num++; + } + + BIT_FLAGS flg = PROJECT_STOP | PROJECT_GRID | PROJECT_ITEM | PROJECT_KILL; + for (int i = 0; i < num; i++) + project(shooter_ptr, 0, shooter_ptr->lev / 20 + 1, ty, tx, shooter_ptr->lev * shooter_ptr->lev * 6 / 50, GF_ROCKET, flg, -1); + + return TRUE; +} diff --git a/src/specific-object/death-crimson.h b/src/specific-object/death-crimson.h new file mode 100644 index 000000000..051af2751 --- /dev/null +++ b/src/specific-object/death-crimson.h @@ -0,0 +1,5 @@ +#pragma once + +#include "system/angband.h" + +bool fire_crimson(player_type *shooter_ptr); diff --git a/src/spell/spells3.c b/src/spell/spells3.c index ab95c2e7e..f9e8d4682 100644 --- a/src/spell/spells3.c +++ b/src/spell/spells3.c @@ -657,44 +657,6 @@ void blood_curse_to_enemy(player_type *caster_ptr, MONSTER_IDX m_idx) } /*! - * @brief クリムゾンを発射する / Fire Crimson, evoluting gun. - @ @param shooter_ptr 射撃を行うクリーチャー参照 - * @return キャンセルした場合 false. - * @details - * Need to analyze size of the window. - * Need more color coding. - */ -bool fire_crimson(player_type *shooter_ptr) -{ - DIRECTION dir; - if (!get_aim_dir(shooter_ptr, &dir)) - return FALSE; - - POSITION tx = shooter_ptr->x + 99 * ddx[dir]; - POSITION ty = shooter_ptr->y + 99 * ddy[dir]; - if ((dir == 5) && target_okay(shooter_ptr)) { - tx = target_col; - ty = target_row; - } - - int num = 1; - if (shooter_ptr->pclass == CLASS_ARCHER) { - if (shooter_ptr->lev >= 10) - num++; - if (shooter_ptr->lev >= 30) - num++; - if (shooter_ptr->lev >= 45) - num++; - } - - BIT_FLAGS flg = PROJECT_STOP | PROJECT_GRID | PROJECT_ITEM | PROJECT_KILL; - for (int i = 0; i < num; i++) - project(shooter_ptr, 0, shooter_ptr->lev / 20 + 1, ty, tx, shooter_ptr->lev * shooter_ptr->lev * 6 / 50, GF_ROCKET, flg, -1); - - return TRUE; -} - -/*! * @brief 町間のテレポートを行うメインルーチン * @param caster_ptr プレーヤーへの参照ポインタ * @return テレポート処理を決定したか否か diff --git a/src/spell/spells3.h b/src/spell/spells3.h index 7e8444212..1a8edbf98 100644 --- a/src/spell/spells3.h +++ b/src/spell/spells3.h @@ -9,4 +9,3 @@ bool recharge(player_type* caster_ptr, int power); void massacre(player_type* caster_ptr); bool shock_power(player_type* caster_ptr); void blood_curse_to_enemy(player_type* caster_ptr, MONSTER_IDX m_idx); -bool fire_crimson(player_type* shooter_ptr); -- 2.11.0