変愚蛮怒のメインリポジトリです
Revision | f492cf0039fe18a1a81ee742e4f3d6ef369a3b80 (tree) |
---|---|
Time | 2019-01-04 12:07:02 |
Author | Deskull <deskull@user...> |
Commiter | Deskull |
[Refactor] #37353 summon_kin_player() を spells-summon.c へ移動。 / Separate summon_kin_player() to spells-summon.c.
@@ -8,6 +8,7 @@ | ||
8 | 8 | |
9 | 9 | #include "angband.h" |
10 | 10 | #include "object-hook.h" |
11 | +#include "spells-summon.h" | |
11 | 12 | |
12 | 13 | /*! |
13 | 14 | * @brief 巻物を読むコマンドのサブルーチン |
@@ -1064,7 +1064,6 @@ extern bool brand_bolts(void); | ||
1064 | 1064 | extern bool polymorph_monster(POSITION y, POSITION x); |
1065 | 1065 | extern bool dimension_door(void); |
1066 | 1066 | extern bool mirror_tunnel(void); |
1067 | -extern bool summon_kin_player(DEPTH level, POSITION y, POSITION x, BIT_FLAGS mode); | |
1068 | 1067 | extern void massacre(void); |
1069 | 1068 | extern bool eat_lock(void); |
1070 | 1069 | extern bool shock_power(void); |
@@ -11,6 +11,7 @@ | ||
11 | 11 | */ |
12 | 12 | |
13 | 13 | #include "angband.h" |
14 | +#include "spells-summon.h" | |
14 | 15 | |
15 | 16 | static int damage; |
16 | 17 |
@@ -793,7 +793,6 @@ static bool summon_specific_aux(MONRACE_IDX r_idx) | ||
793 | 793 | break; |
794 | 794 | } |
795 | 795 | |
796 | - | |
797 | 796 | case SUMMON_KIN: |
798 | 797 | { |
799 | 798 | okay = ((r_ptr->d_char == summon_kin_type) && (r_idx != MON_HAGURE)); |
@@ -11,6 +11,7 @@ | ||
11 | 11 | */ |
12 | 12 | |
13 | 13 | #include "angband.h" |
14 | +#include "spells-summon.h" | |
14 | 15 | |
15 | 16 | #define pseudo_plev() (((p_ptr->lev + 40) * (p_ptr->lev + 40) - 1550) / 130) /*!< モンスター魔法をプレイヤーが使用する場合の換算レベル */ |
16 | 17 |
@@ -164,3 +164,119 @@ bool cast_summon_greater_demon(void) | ||
164 | 164 | |
165 | 165 | return TRUE; |
166 | 166 | } |
167 | + | |
168 | +/*! | |
169 | + * @brief 同族召喚(援軍)処理 | |
170 | + * @param level 召喚基準レベル | |
171 | + * @param y 召喚先Y座標 | |
172 | + * @param x 召喚先X座標 | |
173 | + * @param mode 召喚オプション | |
174 | + * @return ターンを消費した場合TRUEを返す | |
175 | + */ | |
176 | +bool summon_kin_player(DEPTH level, POSITION y, POSITION x, BIT_FLAGS mode) | |
177 | +{ | |
178 | + bool pet = (bool)(mode & PM_FORCE_PET); | |
179 | + if (!pet) mode |= PM_NO_PET; | |
180 | + | |
181 | + switch (p_ptr->mimic_form) | |
182 | + { | |
183 | + case MIMIC_NONE: | |
184 | + switch (p_ptr->prace) | |
185 | + { | |
186 | + case RACE_HUMAN: | |
187 | + case RACE_AMBERITE: | |
188 | + case RACE_BARBARIAN: | |
189 | + case RACE_BEASTMAN: | |
190 | + case RACE_DUNADAN: | |
191 | + summon_kin_type = 'p'; | |
192 | + break; | |
193 | + case RACE_HALF_ELF: | |
194 | + case RACE_ELF: | |
195 | + case RACE_HOBBIT: | |
196 | + case RACE_GNOME: | |
197 | + case RACE_DWARF: | |
198 | + case RACE_HIGH_ELF: | |
199 | + case RACE_NIBELUNG: | |
200 | + case RACE_DARK_ELF: | |
201 | + case RACE_MIND_FLAYER: | |
202 | + case RACE_KUTAR: | |
203 | + case RACE_S_FAIRY: | |
204 | + summon_kin_type = 'h'; | |
205 | + break; | |
206 | + case RACE_HALF_ORC: | |
207 | + summon_kin_type = 'o'; | |
208 | + break; | |
209 | + case RACE_HALF_TROLL: | |
210 | + summon_kin_type = 'T'; | |
211 | + break; | |
212 | + case RACE_HALF_OGRE: | |
213 | + summon_kin_type = 'O'; | |
214 | + break; | |
215 | + case RACE_HALF_GIANT: | |
216 | + case RACE_HALF_TITAN: | |
217 | + case RACE_CYCLOPS: | |
218 | + summon_kin_type = 'P'; | |
219 | + break; | |
220 | + case RACE_YEEK: | |
221 | + summon_kin_type = 'y'; | |
222 | + break; | |
223 | + case RACE_KLACKON: | |
224 | + summon_kin_type = 'K'; | |
225 | + break; | |
226 | + case RACE_KOBOLD: | |
227 | + summon_kin_type = 'k'; | |
228 | + break; | |
229 | + case RACE_IMP: | |
230 | + if (one_in_(13)) summon_kin_type = 'U'; | |
231 | + else summon_kin_type = 'u'; | |
232 | + break; | |
233 | + case RACE_DRACONIAN: | |
234 | + summon_kin_type = 'd'; | |
235 | + break; | |
236 | + case RACE_GOLEM: | |
237 | + case RACE_ANDROID: | |
238 | + summon_kin_type = 'g'; | |
239 | + break; | |
240 | + case RACE_SKELETON: | |
241 | + if (one_in_(13)) summon_kin_type = 'L'; | |
242 | + else summon_kin_type = 's'; | |
243 | + break; | |
244 | + case RACE_ZOMBIE: | |
245 | + summon_kin_type = 'z'; | |
246 | + break; | |
247 | + case RACE_VAMPIRE: | |
248 | + summon_kin_type = 'V'; | |
249 | + break; | |
250 | + case RACE_SPECTRE: | |
251 | + summon_kin_type = 'G'; | |
252 | + break; | |
253 | + case RACE_SPRITE: | |
254 | + summon_kin_type = 'I'; | |
255 | + break; | |
256 | + case RACE_ENT: | |
257 | + summon_kin_type = '#'; | |
258 | + break; | |
259 | + case RACE_ANGEL: | |
260 | + summon_kin_type = 'A'; | |
261 | + break; | |
262 | + case RACE_DEMON: | |
263 | + summon_kin_type = 'U'; | |
264 | + break; | |
265 | + default: | |
266 | + summon_kin_type = 'p'; | |
267 | + break; | |
268 | + } | |
269 | + break; | |
270 | + case MIMIC_DEMON: | |
271 | + if (one_in_(13)) summon_kin_type = 'U'; | |
272 | + else summon_kin_type = 'u'; | |
273 | + break; | |
274 | + case MIMIC_DEMON_LORD: | |
275 | + summon_kin_type = 'U'; | |
276 | + break; | |
277 | + case MIMIC_VAMPIRE: | |
278 | + summon_kin_type = 'V'; | |
279 | + break; | |
280 | + } | |
281 | + return summon_specific((pet ? -1 : 0), y, x, level, SUMMON_KIN, mode); | |
282 | +} |
@@ -2,3 +2,5 @@ | ||
2 | 2 | extern bool cast_summon_demon(int power); |
3 | 3 | extern bool item_tester_offer(object_type *o_ptr); |
4 | 4 | extern bool cast_summon_greater_demon(void); |
5 | +extern bool summon_kin_player(DEPTH level, POSITION y, POSITION x, BIT_FLAGS mode); | |
6 | + |
@@ -4750,121 +4750,6 @@ bool eat_magic(int power) | ||
4750 | 4750 | return TRUE; |
4751 | 4751 | } |
4752 | 4752 | |
4753 | -/*! | |
4754 | - * @brief 同族召喚(援軍)処理 | |
4755 | - * @param level 召喚基準レベル | |
4756 | - * @param y 召喚先Y座標 | |
4757 | - * @param x 召喚先X座標 | |
4758 | - * @param mode 召喚オプション | |
4759 | - * @return ターンを消費した場合TRUEを返す | |
4760 | - */ | |
4761 | -bool summon_kin_player(DEPTH level, POSITION y, POSITION x, BIT_FLAGS mode) | |
4762 | -{ | |
4763 | - bool pet = (bool)(mode & PM_FORCE_PET); | |
4764 | - if (!pet) mode |= PM_NO_PET; | |
4765 | - | |
4766 | - switch (p_ptr->mimic_form) | |
4767 | - { | |
4768 | - case MIMIC_NONE: | |
4769 | - switch (p_ptr->prace) | |
4770 | - { | |
4771 | - case RACE_HUMAN: | |
4772 | - case RACE_AMBERITE: | |
4773 | - case RACE_BARBARIAN: | |
4774 | - case RACE_BEASTMAN: | |
4775 | - case RACE_DUNADAN: | |
4776 | - summon_kin_type = 'p'; | |
4777 | - break; | |
4778 | - case RACE_HALF_ELF: | |
4779 | - case RACE_ELF: | |
4780 | - case RACE_HOBBIT: | |
4781 | - case RACE_GNOME: | |
4782 | - case RACE_DWARF: | |
4783 | - case RACE_HIGH_ELF: | |
4784 | - case RACE_NIBELUNG: | |
4785 | - case RACE_DARK_ELF: | |
4786 | - case RACE_MIND_FLAYER: | |
4787 | - case RACE_KUTAR: | |
4788 | - case RACE_S_FAIRY: | |
4789 | - summon_kin_type = 'h'; | |
4790 | - break; | |
4791 | - case RACE_HALF_ORC: | |
4792 | - summon_kin_type = 'o'; | |
4793 | - break; | |
4794 | - case RACE_HALF_TROLL: | |
4795 | - summon_kin_type = 'T'; | |
4796 | - break; | |
4797 | - case RACE_HALF_OGRE: | |
4798 | - summon_kin_type = 'O'; | |
4799 | - break; | |
4800 | - case RACE_HALF_GIANT: | |
4801 | - case RACE_HALF_TITAN: | |
4802 | - case RACE_CYCLOPS: | |
4803 | - summon_kin_type = 'P'; | |
4804 | - break; | |
4805 | - case RACE_YEEK: | |
4806 | - summon_kin_type = 'y'; | |
4807 | - break; | |
4808 | - case RACE_KLACKON: | |
4809 | - summon_kin_type = 'K'; | |
4810 | - break; | |
4811 | - case RACE_KOBOLD: | |
4812 | - summon_kin_type = 'k'; | |
4813 | - break; | |
4814 | - case RACE_IMP: | |
4815 | - if (one_in_(13)) summon_kin_type = 'U'; | |
4816 | - else summon_kin_type = 'u'; | |
4817 | - break; | |
4818 | - case RACE_DRACONIAN: | |
4819 | - summon_kin_type = 'd'; | |
4820 | - break; | |
4821 | - case RACE_GOLEM: | |
4822 | - case RACE_ANDROID: | |
4823 | - summon_kin_type = 'g'; | |
4824 | - break; | |
4825 | - case RACE_SKELETON: | |
4826 | - if (one_in_(13)) summon_kin_type = 'L'; | |
4827 | - else summon_kin_type = 's'; | |
4828 | - break; | |
4829 | - case RACE_ZOMBIE: | |
4830 | - summon_kin_type = 'z'; | |
4831 | - break; | |
4832 | - case RACE_VAMPIRE: | |
4833 | - summon_kin_type = 'V'; | |
4834 | - break; | |
4835 | - case RACE_SPECTRE: | |
4836 | - summon_kin_type = 'G'; | |
4837 | - break; | |
4838 | - case RACE_SPRITE: | |
4839 | - summon_kin_type = 'I'; | |
4840 | - break; | |
4841 | - case RACE_ENT: | |
4842 | - summon_kin_type = '#'; | |
4843 | - break; | |
4844 | - case RACE_ANGEL: | |
4845 | - summon_kin_type = 'A'; | |
4846 | - break; | |
4847 | - case RACE_DEMON: | |
4848 | - summon_kin_type = 'U'; | |
4849 | - break; | |
4850 | - default: | |
4851 | - summon_kin_type = 'p'; | |
4852 | - break; | |
4853 | - } | |
4854 | - break; | |
4855 | - case MIMIC_DEMON: | |
4856 | - if (one_in_(13)) summon_kin_type = 'U'; | |
4857 | - else summon_kin_type = 'u'; | |
4858 | - break; | |
4859 | - case MIMIC_DEMON_LORD: | |
4860 | - summon_kin_type = 'U'; | |
4861 | - break; | |
4862 | - case MIMIC_VAMPIRE: | |
4863 | - summon_kin_type = 'V'; | |
4864 | - break; | |
4865 | - } | |
4866 | - return summon_specific((pet ? -1 : 0), y, x, level, SUMMON_KIN, mode); | |
4867 | -} | |
4868 | 4753 | |
4869 | 4754 | /*! |
4870 | 4755 | * @brief 皆殺し(全方向攻撃)処理 |