OSDN Git Service

[Refactor] #37353 add_esp_strong() and add_esp_weak() to object-boost.c.
authordeskull <deskull@users.sourceforge.jp>
Thu, 14 Mar 2019 05:48:29 +0000 (14:48 +0900)
committerdeskull <deskull@users.sourceforge.jp>
Thu, 14 Mar 2019 05:48:29 +0000 (14:48 +0900)
src/object-boost.c
src/object-boost.h
src/object2.c

index 28f5c00..3dae692 100644 (file)
@@ -102,3 +102,57 @@ void one_sustain(object_type *o_ptr)
        case 5: add_flag(o_ptr->art_flags, TR_SUST_CHR); break;
        }
 }
+
+/*!
+ * @brief オブジェクトにランダムな強いESPを与える
+ * @param o_ptr 強化を与えたいオブジェクトの構造体参照ポインタ
+ * @return TR_ESP_NONLIVINGがついたならばTRUE
+ */
+bool add_esp_strong(object_type *o_ptr)
+{
+       bool nonliv = FALSE;
+
+       switch (randint1(3))
+       {
+       case 1: add_flag(o_ptr->art_flags, TR_ESP_EVIL); break;
+       case 2: add_flag(o_ptr->art_flags, TR_TELEPATHY); break;
+       case 3: add_flag(o_ptr->art_flags, TR_ESP_NONLIVING); nonliv = TRUE; break;
+       }
+
+       return nonliv;
+}
+
+/*!
+ * @brief オブジェクトにランダムな弱いESPを与える
+ * @param o_ptr 強化を与えたいオブジェクトの構造体参照ポインタ
+ * @param extra TRUEならばESPの最大付与数が増える(TRUE -> 3+1d6 / FALSE -> 1d3)
+ * @return なし
+ */
+void add_esp_weak(object_type *o_ptr, bool extra)
+{
+       int i;
+       u32b weak_esp_list[] = {
+               TR_ESP_ANIMAL,
+               TR_ESP_UNDEAD,
+               TR_ESP_DEMON,
+               TR_ESP_ORC,
+               TR_ESP_TROLL,
+               TR_ESP_GIANT,
+               TR_ESP_DRAGON,
+               TR_ESP_HUMAN,
+               TR_ESP_GOOD,
+               TR_ESP_UNIQUE,
+       };
+       const int MAX_ESP_WEAK = sizeof(weak_esp_list) / sizeof(weak_esp_list[0]);
+       const int add_count = MIN(MAX_ESP_WEAK, (extra) ? (3 + randint1(randint1(6))) : randint1(3));
+
+       /* Add unduplicated weak esp flags randomly */
+       for (i = 0; i < add_count; ++i)
+       {
+               int choice = rand_range(i, MAX_ESP_WEAK - 1);
+
+               add_flag(o_ptr->art_flags, weak_esp_list[choice]);
+               weak_esp_list[choice] = weak_esp_list[i];
+       }
+}
+
index 4f41217..3b4a73c 100644 (file)
@@ -1,6 +1,9 @@
 #pragma once
 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 apply_magic_weapon(object_type *o_ptr, DEPTH level, int power);
 
index 39418bb..746a1c2 100644 (file)
@@ -2327,59 +2327,6 @@ static void dragon_resist(object_type * o_ptr)
        while (one_in_(2));
 }
 
-/*!
- * @brief オブジェクトにランダムな強いESPを与える
- * @param o_ptr 強化を与えたいオブジェクトの構造体参照ポインタ
- * @return なし
- */
-static bool add_esp_strong(object_type *o_ptr)
-{
-       bool nonliv = FALSE;
-
-       switch (randint1(3))
-       {
-       case 1: add_flag(o_ptr->art_flags, TR_ESP_EVIL); break;
-       case 2: add_flag(o_ptr->art_flags, TR_TELEPATHY); break;
-       case 3: add_flag(o_ptr->art_flags, TR_ESP_NONLIVING); nonliv = TRUE; break;
-       }
-
-       return nonliv;
-}
-
-/*!
- * @brief オブジェクトにランダムな弱いESPを与える
- * @param o_ptr 強化を与えたいオブジェクトの構造体参照ポインタ
- * @param extra TRUEならばESPの最大付与数が増える(TRUE -> 3+1d6 / FALSE -> 1d3)
- * @return なし
- */
-static void add_esp_weak(object_type *o_ptr, bool extra)
-{
-       int i;
-       u32b weak_esp_list[] = {
-               TR_ESP_ANIMAL,
-               TR_ESP_UNDEAD,
-               TR_ESP_DEMON,
-               TR_ESP_ORC,
-               TR_ESP_TROLL,
-               TR_ESP_GIANT,
-               TR_ESP_DRAGON,
-               TR_ESP_HUMAN,
-               TR_ESP_GOOD,
-               TR_ESP_UNIQUE,
-       };
-       const int MAX_ESP_WEAK = sizeof(weak_esp_list) / sizeof(weak_esp_list[0]);
-       const int add_count = MIN(MAX_ESP_WEAK, (extra) ? (3 + randint1(randint1(6))) : randint1(3));
-
-       /* Add unduplicated weak esp flags randomly */
-       for (i = 0; i < add_count; ++ i)
-       {
-               int choice = rand_range(i, MAX_ESP_WEAK - 1);
-
-               add_flag(o_ptr->art_flags, weak_esp_list[choice]);
-               weak_esp_list[choice] = weak_esp_list[i];
-       }
-}
-
 
 /*!
  * @brief 防具系オブジェクトに生成ランクごとの強化を与えるサブルーチン