• R/O
  • HTTP
  • SSH
  • HTTPS

hengband: Commit

変愚蛮怒のメインリポジトリです


Commit MetaInfo

Revisionfbf383a1be63ca7828b73d6dae4b92cd77752407 (tree)
Time2019-03-14 18:39:11
Authordeskull <deskull@user...>
Commiterdeskull

Log Message

[Refactor] #37353 one_high_resistance(), one_ele_resistance(), one_dragon_ele_resistance(), dragon_resist() to object-boost.c.

Change Summary

Incremental Difference

--- a/src/artifact.c
+++ b/src/artifact.c
@@ -15,6 +15,7 @@
1515
1616 #include "avatar.h"
1717 #include "cmd-activate.h"
18+#include "object-boost.h"
1819 #include "object-curse.h"
1920 #include "object-hook.h"
2021 #include "spells-object.h"
@@ -75,30 +76,6 @@ const concptr artifact_bias_name[MAX_BIAS] =
7576 };
7677 #endif
7778
78-/*!
79- * @brief 対象のオブジェクトにランダムな上位耐性を一つ付加する。/ Choose one random high resistance
80- * @details 重複の抑止はない。候補は毒、閃光、暗黒、破片、盲目、混乱、地獄、因果混乱、カオス、劣化、恐怖のいずれか。
81- * @param o_ptr 対象のオブジェクト構造体ポインタ
82- * @return なし
83- */
84-void one_high_resistance(object_type *o_ptr)
85-{
86- switch (randint0(12))
87- {
88- case 0: add_flag(o_ptr->art_flags, TR_RES_POIS); break;
89- case 1: add_flag(o_ptr->art_flags, TR_RES_LITE); break;
90- case 2: add_flag(o_ptr->art_flags, TR_RES_DARK); break;
91- case 3: add_flag(o_ptr->art_flags, TR_RES_SHARDS); break;
92- case 4: add_flag(o_ptr->art_flags, TR_RES_BLIND); break;
93- case 5: add_flag(o_ptr->art_flags, TR_RES_CONF); break;
94- case 6: add_flag(o_ptr->art_flags, TR_RES_SOUND); break;
95- case 7: add_flag(o_ptr->art_flags, TR_RES_NETHER); break;
96- case 8: add_flag(o_ptr->art_flags, TR_RES_NEXUS); break;
97- case 9: add_flag(o_ptr->art_flags, TR_RES_CHAOS); break;
98- case 10: add_flag(o_ptr->art_flags, TR_RES_DISEN); break;
99- case 11: add_flag(o_ptr->art_flags, TR_RES_FEAR); break;
100- }
101-}
10279
10380 /*!
10481 * @brief 対象のオブジェクトに王者の指輪向けの上位耐性を一つ付加する。/ Choose one random high resistance
@@ -125,40 +102,6 @@ void one_lordly_high_resistance(object_type *o_ptr)
125102 }
126103 }
127104
128-/*!
129- * @brief 対象のオブジェクトに元素耐性を一つ付加する。/ Choose one random element resistance
130- * @details 候補は火炎、冷気、電撃、酸のいずれかであり、重複の抑止はない。
131- * @param o_ptr 対象のオブジェクト構造体ポインタ
132- * @return なし
133- */
134-void one_ele_resistance(object_type *o_ptr)
135-{
136- switch (randint0(4))
137- {
138- case 0: add_flag(o_ptr->art_flags, TR_RES_ACID); break;
139- case 1: add_flag(o_ptr->art_flags, TR_RES_ELEC); break;
140- case 2: add_flag(o_ptr->art_flags, TR_RES_COLD); break;
141- case 3: add_flag(o_ptr->art_flags, TR_RES_FIRE); break;
142- }
143-}
144-
145-/*!
146- * @brief 対象のオブジェクトにドラゴン装備向け元素耐性を一つ付加する。/ Choose one random element or poison resistance
147- * @details 候補は1/7の確率で毒、6/7の確率で火炎、冷気、電撃、酸のいずれか(one_ele_resistance()のコール)であり、重複の抑止はない。
148- * @param o_ptr 対象のオブジェクト構造体ポインタ
149- * @return なし
150- */
151-void one_dragon_ele_resistance(object_type *o_ptr)
152-{
153- if (one_in_(7))
154- {
155- add_flag(o_ptr->art_flags, TR_RES_POIS);
156- }
157- else
158- {
159- one_ele_resistance(o_ptr);
160- }
161-}
162105
163106 /*!
164107 * @brief 対象のオブジェクトに弱いESPを一つ付加する。/ Choose one lower rank esp
--- a/src/artifact.h
+++ b/src/artifact.h
@@ -1,8 +1,5 @@
11 /* artifact.c */
2-extern void one_high_resistance(object_type *o_ptr);
32 extern void one_lordly_high_resistance(object_type *o_ptr);
4-extern void one_ele_resistance(object_type *o_ptr);
5-extern void one_dragon_ele_resistance(object_type *o_ptr);
63 extern void one_low_esp(object_type *o_ptr);
74 extern void one_resistance(object_type *o_ptr);
85 extern void one_ability(object_type *o_ptr);
--- a/src/bldg.c
+++ b/src/bldg.c
@@ -14,6 +14,7 @@
1414
1515 #include "angband.h"
1616 #include "floor.h"
17+#include "object-boost.h"
1718 #include "object-hook.h"
1819 #include "monsterrace-hook.h"
1920 #include "melee.h"
--- a/src/object-boost.c
+++ b/src/object-boost.c
@@ -156,3 +156,79 @@ void add_esp_weak(object_type *o_ptr, bool extra)
156156 }
157157 }
158158
159+/*!
160+ * @brief 対象のオブジェクトに元素耐性を一つ付加する。/ Choose one random element resistance
161+ * @details 候補は火炎、冷気、電撃、酸のいずれかであり、重複の抑止はない。
162+ * @param o_ptr 対象のオブジェクト構造体ポインタ
163+ * @return なし
164+ */
165+void one_ele_resistance(object_type *o_ptr)
166+{
167+ switch (randint0(4))
168+ {
169+ case 0: add_flag(o_ptr->art_flags, TR_RES_ACID); break;
170+ case 1: add_flag(o_ptr->art_flags, TR_RES_ELEC); break;
171+ case 2: add_flag(o_ptr->art_flags, TR_RES_COLD); break;
172+ case 3: add_flag(o_ptr->art_flags, TR_RES_FIRE); break;
173+ }
174+}
175+
176+/*!
177+ * @brief 対象のオブジェクトにドラゴン装備向け元素耐性を一つ付加する。/ Choose one random element or poison resistance
178+ * @details 候補は1/7の確率で毒、6/7の確率で火炎、冷気、電撃、酸のいずれか(one_ele_resistance()のコール)であり、重複の抑止はない。
179+ * @param o_ptr 対象のオブジェクト構造体ポインタ
180+ * @return なし
181+ */
182+void one_dragon_ele_resistance(object_type *o_ptr)
183+{
184+ if (one_in_(7))
185+ {
186+ add_flag(o_ptr->art_flags, TR_RES_POIS);
187+ }
188+ else
189+ {
190+ one_ele_resistance(o_ptr);
191+ }
192+}
193+
194+/*!
195+ * @brief 対象のオブジェクトにランダムな上位耐性を一つ付加する。/ Choose one random high resistance
196+ * @details 重複の抑止はない。候補は毒、閃光、暗黒、破片、盲目、混乱、地獄、因果混乱、カオス、劣化、恐怖のいずれか。
197+ * @param o_ptr 対象のオブジェクト構造体ポインタ
198+ * @return なし
199+ */
200+void one_high_resistance(object_type *o_ptr)
201+{
202+ switch (randint0(12))
203+ {
204+ case 0: add_flag(o_ptr->art_flags, TR_RES_POIS); break;
205+ case 1: add_flag(o_ptr->art_flags, TR_RES_LITE); break;
206+ case 2: add_flag(o_ptr->art_flags, TR_RES_DARK); break;
207+ case 3: add_flag(o_ptr->art_flags, TR_RES_SHARDS); break;
208+ case 4: add_flag(o_ptr->art_flags, TR_RES_BLIND); break;
209+ case 5: add_flag(o_ptr->art_flags, TR_RES_CONF); break;
210+ case 6: add_flag(o_ptr->art_flags, TR_RES_SOUND); break;
211+ case 7: add_flag(o_ptr->art_flags, TR_RES_NETHER); break;
212+ case 8: add_flag(o_ptr->art_flags, TR_RES_NEXUS); break;
213+ case 9: add_flag(o_ptr->art_flags, TR_RES_CHAOS); break;
214+ case 10: add_flag(o_ptr->art_flags, TR_RES_DISEN); break;
215+ case 11: add_flag(o_ptr->art_flags, TR_RES_FEAR); break;
216+ }
217+}
218+
219+/*!
220+ * @brief ドラゴン装備にランダムな耐性を与える
221+ * @param o_ptr 強化を与えたいオブジェクトの構造体参照ポインタ
222+ * @return なし
223+ */
224+void dragon_resist(object_type * o_ptr)
225+{
226+ do
227+ {
228+ if (one_in_(4))
229+ one_dragon_ele_resistance(o_ptr);
230+ else
231+ one_high_resistance(o_ptr);
232+ } while (one_in_(2));
233+}
234+
--- a/src/object-boost.h
+++ b/src/object-boost.h
@@ -3,6 +3,10 @@ extern int m_bonus(int max, DEPTH level);
33 extern void one_sustain(object_type *o_ptr);
44 extern bool add_esp_strong(object_type *o_ptr);
55 extern void add_esp_weak(object_type *o_ptr, bool extra);
6+extern void one_dragon_ele_resistance(object_type *o_ptr);
7+extern void one_high_resistance(object_type *o_ptr);
8+extern void one_ele_resistance(object_type *o_ptr);
9+extern void dragon_resist(object_type * o_ptr);
610
711
812 extern void apply_magic_weapon(object_type *o_ptr, DEPTH level, int power);
--- a/src/object2.c
+++ b/src/object2.c
@@ -2312,25 +2312,6 @@ void apply_magic_weapon(object_type *o_ptr, DEPTH level, int power)
23122312 }
23132313 }
23142314
2315-
2316-/*!
2317- * @brief ドラゴン装備にランダムな耐性を与える
2318- * @param o_ptr 強化を与えたいオブジェクトの構造体参照ポインタ
2319- * @return なし
2320- */
2321-static void dragon_resist(object_type * o_ptr)
2322-{
2323- do
2324- {
2325- if (one_in_(4))
2326- one_dragon_ele_resistance(o_ptr);
2327- else
2328- one_high_resistance(o_ptr);
2329- }
2330- while (one_in_(2));
2331-}
2332-
2333-
23342315 /*!
23352316 * @brief 防具系オブジェクトに生成ランクごとの強化を与えるサブルーチン
23362317 * Apply magic to an item known to be "armor"
Show on old repository browser