OSDN Git Service

[Refactor] #37353 one_high_resistance(), one_ele_resistance(), one_dragon_ele_resista...
authordeskull <deskull@users.sourceforge.jp>
Thu, 14 Mar 2019 09:39:11 +0000 (18:39 +0900)
committerdeskull <deskull@users.sourceforge.jp>
Thu, 14 Mar 2019 09:39:11 +0000 (18:39 +0900)
src/artifact.c
src/artifact.h
src/bldg.c
src/object-boost.c
src/object-boost.h
src/object2.c

index 16ca064..3120346 100644 (file)
@@ -15,6 +15,7 @@
 
 #include "avatar.h"
 #include "cmd-activate.h"
+#include "object-boost.h"
 #include "object-curse.h"
 #include "object-hook.h"
 #include "spells-object.h"
@@ -75,30 +76,6 @@ const concptr artifact_bias_name[MAX_BIAS] =
 };
 #endif
 
-/*!
- * @brief 対象のオブジェクトにランダムな上位耐性を一つ付加する。/ Choose one random high resistance
- * @details 重複の抑止はない。候補は毒、閃光、暗黒、破片、盲目、混乱、地獄、因果混乱、カオス、劣化、恐怖のいずれか。
- * @param o_ptr 対象のオブジェクト構造体ポインタ
- * @return なし
- */
-void one_high_resistance(object_type *o_ptr)
-{
-       switch (randint0(12))
-       {
-               case  0: add_flag(o_ptr->art_flags, TR_RES_POIS);   break;
-               case  1: add_flag(o_ptr->art_flags, TR_RES_LITE);   break;
-               case  2: add_flag(o_ptr->art_flags, TR_RES_DARK);   break;
-               case  3: add_flag(o_ptr->art_flags, TR_RES_SHARDS); break;
-               case  4: add_flag(o_ptr->art_flags, TR_RES_BLIND);  break;
-               case  5: add_flag(o_ptr->art_flags, TR_RES_CONF);   break;
-               case  6: add_flag(o_ptr->art_flags, TR_RES_SOUND);  break;
-               case  7: add_flag(o_ptr->art_flags, TR_RES_NETHER); break;
-               case  8: add_flag(o_ptr->art_flags, TR_RES_NEXUS);  break;
-               case  9: add_flag(o_ptr->art_flags, TR_RES_CHAOS);  break;
-               case 10: add_flag(o_ptr->art_flags, TR_RES_DISEN);  break;
-               case 11: add_flag(o_ptr->art_flags, TR_RES_FEAR);   break;
-       }
-}
 
 /*!
  * @brief 対象のオブジェクトに王者の指輪向けの上位耐性を一つ付加する。/ Choose one random high resistance
@@ -125,40 +102,6 @@ void one_lordly_high_resistance(object_type *o_ptr)
        }
 }
 
-/*!
- * @brief 対象のオブジェクトに元素耐性を一つ付加する。/ Choose one random element resistance
- * @details 候補は火炎、冷気、電撃、酸のいずれかであり、重複の抑止はない。
- * @param o_ptr 対象のオブジェクト構造体ポインタ
- * @return なし
- */
-void one_ele_resistance(object_type *o_ptr)
-{
-       switch (randint0(4))
-       {
-               case  0: add_flag(o_ptr->art_flags, TR_RES_ACID); break;
-               case  1: add_flag(o_ptr->art_flags, TR_RES_ELEC); break;
-               case  2: add_flag(o_ptr->art_flags, TR_RES_COLD); break;
-               case  3: add_flag(o_ptr->art_flags, TR_RES_FIRE); break;
-       }
-}
-
-/*!
- * @brief 対象のオブジェクトにドラゴン装備向け元素耐性を一つ付加する。/ Choose one random element or poison resistance
- * @details 候補は1/7の確率で毒、6/7の確率で火炎、冷気、電撃、酸のいずれか(one_ele_resistance()のコール)であり、重複の抑止はない。
- * @param o_ptr 対象のオブジェクト構造体ポインタ
- * @return なし
- */
-void one_dragon_ele_resistance(object_type *o_ptr)
-{
-       if (one_in_(7))
-       {
-               add_flag(o_ptr->art_flags, TR_RES_POIS);
-       }
-       else
-       {
-               one_ele_resistance(o_ptr);
-       }
-}
 
 /*!
  * @brief 対象のオブジェクトに弱いESPを一つ付加する。/ Choose one lower rank esp
index 40beffc..2e424ae 100644 (file)
@@ -1,8 +1,5 @@
 /* artifact.c */
-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);
-extern void one_dragon_ele_resistance(object_type *o_ptr);
 extern void one_low_esp(object_type *o_ptr);
 extern void one_resistance(object_type *o_ptr);
 extern void one_ability(object_type *o_ptr);
index 4fd8849..0d95d56 100644 (file)
@@ -14,6 +14,7 @@
 
 #include "angband.h"
 #include "floor.h"
+#include "object-boost.h"
 #include "object-hook.h"
 #include "monsterrace-hook.h"
 #include "melee.h"
index 3dae692..68334a4 100644 (file)
@@ -156,3 +156,79 @@ void add_esp_weak(object_type *o_ptr, bool extra)
        }
 }
 
+/*!
+ * @brief 対象のオブジェクトに元素耐性を一つ付加する。/ Choose one random element resistance
+ * @details 候補は火炎、冷気、電撃、酸のいずれかであり、重複の抑止はない。
+ * @param o_ptr 対象のオブジェクト構造体ポインタ
+ * @return なし
+ */
+void one_ele_resistance(object_type *o_ptr)
+{
+       switch (randint0(4))
+       {
+       case  0: add_flag(o_ptr->art_flags, TR_RES_ACID); break;
+       case  1: add_flag(o_ptr->art_flags, TR_RES_ELEC); break;
+       case  2: add_flag(o_ptr->art_flags, TR_RES_COLD); break;
+       case  3: add_flag(o_ptr->art_flags, TR_RES_FIRE); break;
+       }
+}
+
+/*!
+ * @brief 対象のオブジェクトにドラゴン装備向け元素耐性を一つ付加する。/ Choose one random element or poison resistance
+ * @details 候補は1/7の確率で毒、6/7の確率で火炎、冷気、電撃、酸のいずれか(one_ele_resistance()のコール)であり、重複の抑止はない。
+ * @param o_ptr 対象のオブジェクト構造体ポインタ
+ * @return なし
+ */
+void one_dragon_ele_resistance(object_type *o_ptr)
+{
+       if (one_in_(7))
+       {
+               add_flag(o_ptr->art_flags, TR_RES_POIS);
+       }
+       else
+       {
+               one_ele_resistance(o_ptr);
+       }
+}
+
+/*!
+ * @brief 対象のオブジェクトにランダムな上位耐性を一つ付加する。/ Choose one random high resistance
+ * @details 重複の抑止はない。候補は毒、閃光、暗黒、破片、盲目、混乱、地獄、因果混乱、カオス、劣化、恐怖のいずれか。
+ * @param o_ptr 対象のオブジェクト構造体ポインタ
+ * @return なし
+ */
+void one_high_resistance(object_type *o_ptr)
+{
+       switch (randint0(12))
+       {
+       case  0: add_flag(o_ptr->art_flags, TR_RES_POIS);   break;
+       case  1: add_flag(o_ptr->art_flags, TR_RES_LITE);   break;
+       case  2: add_flag(o_ptr->art_flags, TR_RES_DARK);   break;
+       case  3: add_flag(o_ptr->art_flags, TR_RES_SHARDS); break;
+       case  4: add_flag(o_ptr->art_flags, TR_RES_BLIND);  break;
+       case  5: add_flag(o_ptr->art_flags, TR_RES_CONF);   break;
+       case  6: add_flag(o_ptr->art_flags, TR_RES_SOUND);  break;
+       case  7: add_flag(o_ptr->art_flags, TR_RES_NETHER); break;
+       case  8: add_flag(o_ptr->art_flags, TR_RES_NEXUS);  break;
+       case  9: add_flag(o_ptr->art_flags, TR_RES_CHAOS);  break;
+       case 10: add_flag(o_ptr->art_flags, TR_RES_DISEN);  break;
+       case 11: add_flag(o_ptr->art_flags, TR_RES_FEAR);   break;
+       }
+}
+
+/*!
+ * @brief ドラゴン装備にランダムな耐性を与える
+ * @param o_ptr 強化を与えたいオブジェクトの構造体参照ポインタ
+ * @return なし
+ */
+void dragon_resist(object_type * o_ptr)
+{
+       do
+       {
+               if (one_in_(4))
+                       one_dragon_ele_resistance(o_ptr);
+               else
+                       one_high_resistance(o_ptr);
+       } while (one_in_(2));
+}
+
index 3b4a73c..b1f3dde 100644 (file)
@@ -3,6 +3,10 @@ extern int m_bonus(int max, DEPTH level);
 extern void one_sustain(object_type *o_ptr);
 extern bool add_esp_strong(object_type *o_ptr);
 extern void add_esp_weak(object_type *o_ptr, bool extra);
+extern void one_dragon_ele_resistance(object_type *o_ptr);
+extern void one_high_resistance(object_type *o_ptr);
+extern void one_ele_resistance(object_type *o_ptr);
+extern void dragon_resist(object_type * o_ptr);
 
 
 extern void apply_magic_weapon(object_type *o_ptr, DEPTH level, int power);
index c5e6355..6fd2efd 100644 (file)
@@ -2312,25 +2312,6 @@ void apply_magic_weapon(object_type *o_ptr, DEPTH level, int power)
        }
 }
 
-
-/*!
- * @brief ドラゴン装備にランダムな耐性を与える
- * @param o_ptr 強化を与えたいオブジェクトの構造体参照ポインタ
- * @return なし
- */
-static void dragon_resist(object_type * o_ptr)
-{
-       do
-       {
-               if (one_in_(4))
-                       one_dragon_ele_resistance(o_ptr);
-               else
-                       one_high_resistance(o_ptr);
-       }
-       while (one_in_(2));
-}
-
-
 /*!
  * @brief 防具系オブジェクトに生成ランクごとの強化を与えるサブルーチン
  * Apply magic to an item known to be "armor"