• R/O
  • HTTP
  • SSH
  • HTTPS

hengband: Commit

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


Commit MetaInfo

Revisione10c6848a65051c7d0d143ca9e7537f7e2b8f9b9 (tree)
Time2019-05-05 11:40:44
Authordeskull <deskull@user...>
Commiterdeskull

Log Message

[Refactor] #39068 summon_kin_type によるグローバル変数渡しを修正.

Change Summary

Incremental Difference

--- a/src/chest.c
+++ b/src/chest.c
@@ -198,7 +198,7 @@ void chest_trap(POSITION y, POSITION x, OBJECT_IDX o_idx)
198198 if (randint1(100)<current_floor_ptr->dun_level)
199199 activate_hi_summon(p_ptr->y, p_ptr->x, FALSE);
200200 else
201- (void)summon_specific(0, y, x, mon_level, 0, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE | PM_NO_PET), '\0');
201+ (void)summon_specific(0, y, x, mon_level, 0, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE | PM_NO_PET));
202202 }
203203 }
204204
@@ -208,7 +208,7 @@ void chest_trap(POSITION y, POSITION x, OBJECT_IDX o_idx)
208208 msg_print(_("宝を守るためにエレメンタルが現れた!", "Elemental beings appear to protect their treasures!"));
209209 for (i = 0; i < randint1(3) + 5; i++)
210210 {
211- (void)summon_specific(0, y, x, mon_level, SUMMON_ELEMENTAL, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE | PM_NO_PET), '\0');
211+ (void)summon_specific(0, y, x, mon_level, SUMMON_ELEMENTAL, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE | PM_NO_PET));
212212 }
213213 }
214214
@@ -222,7 +222,7 @@ void chest_trap(POSITION y, POSITION x, OBJECT_IDX o_idx)
222222
223223 for (i = 0; i < randint1(5) + o_ptr->pval / 5; i++)
224224 {
225- (void)summon_specific(0, y, x, mon_level, SUMMON_BIRD, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE | PM_NO_PET), '\0');
225+ (void)summon_specific(0, y, x, mon_level, SUMMON_BIRD, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE | PM_NO_PET));
226226 }
227227 }
228228
@@ -236,7 +236,7 @@ void chest_trap(POSITION y, POSITION x, OBJECT_IDX o_idx)
236236 for (i = 0; i < randint1(3) + 2; i++)
237237 {
238238 (void)fire_meteor(-1, GF_FIRE, y, x, 10, 5);
239- (void)summon_specific(0, y, x, mon_level, SUMMON_DEMON, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE | PM_NO_PET), '\0');
239+ (void)summon_specific(0, y, x, mon_level, SUMMON_DEMON, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE | PM_NO_PET));
240240 }
241241 }
242242
@@ -246,7 +246,7 @@ void chest_trap(POSITION y, POSITION x, OBJECT_IDX o_idx)
246246 msg_print(_("暗闇にドラゴンの影がぼんやりと現れた!", "Draconic forms loom out of the darkness!"));
247247 for (i = 0; i < randint1(3) + 2; i++)
248248 {
249- (void)summon_specific(0, y, x, mon_level, SUMMON_DRAGON, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE | PM_NO_PET), '\0');
249+ (void)summon_specific(0, y, x, mon_level, SUMMON_DRAGON, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE | PM_NO_PET));
250250 }
251251 }
252252
@@ -256,7 +256,7 @@ void chest_trap(POSITION y, POSITION x, OBJECT_IDX o_idx)
256256 msg_print(_("奇妙な姿の怪物が襲って来た!", "Creatures strange and twisted assault you!"));
257257 for (i = 0; i < randint1(5) + 3; i++)
258258 {
259- (void)summon_specific(0, y, x, mon_level, SUMMON_HYBRID, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE | PM_NO_PET), '\0');
259+ (void)summon_specific(0, y, x, mon_level, SUMMON_HYBRID, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE | PM_NO_PET));
260260 }
261261 }
262262
@@ -266,7 +266,7 @@ void chest_trap(POSITION y, POSITION x, OBJECT_IDX o_idx)
266266 msg_print(_("渦巻が合体し、破裂した!", "Vortices coalesce and wreak destruction!"));
267267 for (i = 0; i < randint1(3) + 2; i++)
268268 {
269- (void)summon_specific(0, y, x, mon_level, SUMMON_VORTEX, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE | PM_NO_PET), '\0');
269+ (void)summon_specific(0, y, x, mon_level, SUMMON_VORTEX, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE | PM_NO_PET));
270270 }
271271 }
272272 }
--- a/src/cmd-activate.c
+++ b/src/cmd-activate.c
@@ -1189,14 +1189,14 @@ bool activate_artifact(object_type *o_ptr)
11891189
11901190 case ACT_SUMMON_ANIMAL:
11911191 {
1192- (void)summon_specific(-1, p_ptr->y, p_ptr->x, plev, SUMMON_ANIMAL_RANGER, (PM_ALLOW_GROUP | PM_FORCE_PET), '\0');
1192+ (void)summon_specific(-1, p_ptr->y, p_ptr->x, plev, SUMMON_ANIMAL_RANGER, (PM_ALLOW_GROUP | PM_FORCE_PET));
11931193 break;
11941194 }
11951195
11961196 case ACT_SUMMON_PHANTOM:
11971197 {
11981198 msg_print(_("幻霊を召喚した。", "You summon a phantasmal servant."));
1199- (void)summon_specific(-1, p_ptr->y, p_ptr->x, current_floor_ptr->dun_level, SUMMON_PHANTOM, (PM_ALLOW_GROUP | PM_FORCE_PET), '\0');
1199+ (void)summon_specific(-1, p_ptr->y, p_ptr->x, current_floor_ptr->dun_level, SUMMON_PHANTOM, (PM_ALLOW_GROUP | PM_FORCE_PET));
12001200 break;
12011201 }
12021202
@@ -1221,7 +1221,7 @@ bool activate_artifact(object_type *o_ptr)
12211221 case ACT_SUMMON_DAWN:
12221222 {
12231223 msg_print(_("暁の師団を召喚した。", "You summon the Legion of the Dawn."));
1224- (void)summon_specific(-1, p_ptr->y, p_ptr->x, current_floor_ptr->dun_level, SUMMON_DAWN, (PM_ALLOW_GROUP | PM_FORCE_PET), '\0');
1224+ (void)summon_specific(-1, p_ptr->y, p_ptr->x, current_floor_ptr->dun_level, SUMMON_DAWN, (PM_ALLOW_GROUP | PM_FORCE_PET));
12251225 break;
12261226 }
12271227
--- a/src/cmd-mane.c
+++ b/src/cmd-mane.c
@@ -761,7 +761,7 @@ static bool use_mane(int spell)
761761 msg_print(_("サイバーデーモンを召喚した!", "You summon Cyberdemons!"));
762762 if (max_cyber > 4) max_cyber = 4;
763763 for (k = 0;k < max_cyber; k++)
764- summon_specific(-1, target_row, target_col, plev, SUMMON_CYBER, mode, '\0');
764+ summon_specific(-1, target_row, target_col, plev, SUMMON_CYBER, mode);
765765 break;
766766 }
767767 case MS_S_MONSTER:
@@ -770,7 +770,7 @@ static bool use_mane(int spell)
770770 if (!target_set(TARGET_KILL)) return FALSE;
771771 msg_print(_("仲間を召喚した。", "You summon help."));
772772 for (k = 0;k < 1; k++)
773- summon_specific(-1, target_row, target_col, plev, 0, (mode | u_mode), '\0');
773+ summon_specific(-1, target_row, target_col, plev, 0, (mode | u_mode));
774774 break;
775775 }
776776 case MS_S_MONSTERS:
@@ -779,7 +779,7 @@ static bool use_mane(int spell)
779779 if (!target_set(TARGET_KILL)) return FALSE;
780780 msg_print(_("モンスターを召喚した!", "You summon monsters!"));
781781 for (k = 0; k < 6; k++)
782- summon_specific(-1, target_row, target_col, plev, 0, (mode | u_mode), '\0');
782+ summon_specific(-1, target_row, target_col, plev, 0, (mode | u_mode));
783783 break;
784784 }
785785 case MS_S_ANT:
@@ -788,7 +788,7 @@ static bool use_mane(int spell)
788788 if (!target_set(TARGET_KILL)) return FALSE;
789789 msg_print(_("アリを召喚した。", "You summon ants."));
790790 for (k = 0; k < 6; k++)
791- summon_specific(-1, target_row, target_col, plev, SUMMON_ANT, mode, '\0');
791+ summon_specific(-1, target_row, target_col, plev, SUMMON_ANT, mode);
792792 break;
793793 }
794794 case MS_S_SPIDER:
@@ -797,7 +797,7 @@ static bool use_mane(int spell)
797797 if (!target_set(TARGET_KILL)) return FALSE;
798798 msg_print(_("蜘蛛を召喚した。", "You summon spiders."));
799799 for (k = 0; k < 6; k++)
800- summon_specific(-1, target_row, target_col, plev, SUMMON_SPIDER, mode, '\0');
800+ summon_specific(-1, target_row, target_col, plev, SUMMON_SPIDER, mode);
801801 break;
802802 }
803803 case MS_S_HOUND:
@@ -806,7 +806,7 @@ static bool use_mane(int spell)
806806 if (!target_set(TARGET_KILL)) return FALSE;
807807 msg_print(_("ハウンドを召喚した。", "You summon hounds."));
808808 for (k = 0; k < 4; k++)
809- summon_specific(-1, target_row, target_col, plev, SUMMON_HOUND, mode, '\0');
809+ summon_specific(-1, target_row, target_col, plev, SUMMON_HOUND, mode);
810810 break;
811811 }
812812 case MS_S_HYDRA:
@@ -815,7 +815,7 @@ static bool use_mane(int spell)
815815 if (!target_set(TARGET_KILL)) return FALSE;
816816 msg_print(_("ヒドラを召喚した。", "You summon hydras."));
817817 for (k = 0; k < 4; k++)
818- summon_specific(-1, target_row, target_col, plev, SUMMON_HYDRA, mode, '\0');
818+ summon_specific(-1, target_row, target_col, plev, SUMMON_HYDRA, mode);
819819 break;
820820 }
821821 case MS_S_ANGEL:
@@ -824,7 +824,7 @@ static bool use_mane(int spell)
824824 if (!target_set(TARGET_KILL)) return FALSE;
825825 msg_print(_("天使を召喚した!", "You summon angel!"));
826826 for (k = 0; k < 1; k++)
827- summon_specific(-1, target_row, target_col, plev, SUMMON_ANGEL, mode, '\0');
827+ summon_specific(-1, target_row, target_col, plev, SUMMON_ANGEL, mode);
828828 break;
829829 }
830830 case MS_S_DEMON:
@@ -833,7 +833,7 @@ static bool use_mane(int spell)
833833 if (!target_set(TARGET_KILL)) return FALSE;
834834 msg_print(_("混沌の宮廷から悪魔を召喚した!", "You summon a demon from the Courts of Chaos!"));
835835 for (k = 0; k < 1; k++)
836- summon_specific(-1, target_row, target_col, plev, SUMMON_DEMON, (mode | u_mode), '\0');
836+ summon_specific(-1, target_row, target_col, plev, SUMMON_DEMON, (mode | u_mode));
837837 break;
838838 }
839839 case MS_S_UNDEAD:
@@ -842,7 +842,7 @@ static bool use_mane(int spell)
842842 if (!target_set(TARGET_KILL)) return FALSE;
843843 msg_print(_("アンデッドの強敵を召喚した!", "You summon an undead adversary!"));
844844 for (k = 0; k < 1; k++)
845- summon_specific(-1, target_row, target_col, plev, SUMMON_UNDEAD, (mode | u_mode), '\0');
845+ summon_specific(-1, target_row, target_col, plev, SUMMON_UNDEAD, (mode | u_mode));
846846 break;
847847 }
848848 case MS_S_DRAGON:
@@ -851,7 +851,7 @@ static bool use_mane(int spell)
851851 if (!target_set(TARGET_KILL)) return FALSE;
852852 msg_print(_("ドラゴンを召喚した!", "You summon dragon!"));
853853 for (k = 0; k < 1; k++)
854- summon_specific(-1, target_row, target_col, plev, SUMMON_DRAGON, (mode | u_mode), '\0');
854+ summon_specific(-1, target_row, target_col, plev, SUMMON_DRAGON, (mode | u_mode));
855855 break;
856856 }
857857 case MS_S_HI_UNDEAD:
@@ -860,7 +860,7 @@ static bool use_mane(int spell)
860860 if (!target_set(TARGET_KILL)) return FALSE;
861861 msg_print(_("強力なアンデッドを召喚した!", "You summon greater undead!"));
862862 for (k = 0; k < 6; k++)
863- summon_specific(-1, target_row, target_col, plev, SUMMON_HI_UNDEAD, (mode | u_mode), '\0');
863+ summon_specific(-1, target_row, target_col, plev, SUMMON_HI_UNDEAD, (mode | u_mode));
864864 break;
865865 }
866866 case MS_S_HI_DRAGON:
@@ -869,7 +869,7 @@ static bool use_mane(int spell)
869869 if (!target_set(TARGET_KILL)) return FALSE;
870870 msg_print(_("古代ドラゴンを召喚した!", "You summon ancient dragons!"));
871871 for (k = 0; k < 4; k++)
872- summon_specific(-1, target_row, target_col, plev, SUMMON_HI_DRAGON, (mode | u_mode), '\0');
872+ summon_specific(-1, target_row, target_col, plev, SUMMON_HI_DRAGON, (mode | u_mode));
873873 break;
874874 }
875875 case MS_S_AMBERITE:
@@ -878,7 +878,7 @@ static bool use_mane(int spell)
878878 if (!target_set(TARGET_KILL)) return FALSE;
879879 msg_print(_("アンバーの王族を召喚した!", "You summon Lords of Amber!"));
880880 for (k = 0; k < 4; k++)
881- summon_specific(-1, target_row, target_col, plev, SUMMON_AMBERITES, (mode | PM_ALLOW_UNIQUE), '\0');
881+ summon_specific(-1, target_row, target_col, plev, SUMMON_AMBERITES, (mode | PM_ALLOW_UNIQUE));
882882 break;
883883 }
884884 case MS_S_UNIQUE:
@@ -887,9 +887,9 @@ static bool use_mane(int spell)
887887 if (!target_set(TARGET_KILL)) return FALSE;
888888 msg_print(_("特別な強敵を召喚した!", "You summon special opponents!"));
889889 for (k = 0;k < 4; k++)
890- if (summon_specific(-1, target_row, target_col, plev, SUMMON_UNIQUE, (mode | PM_ALLOW_UNIQUE), '\0')) count++;
890+ if (summon_specific(-1, target_row, target_col, plev, SUMMON_UNIQUE, (mode | PM_ALLOW_UNIQUE))) count++;
891891 for (k = count;k < 4; k++)
892- summon_specific(-1, target_row, target_col, plev, SUMMON_HI_UNDEAD, (mode | u_mode), '\0');
892+ summon_specific(-1, target_row, target_col, plev, SUMMON_HI_UNDEAD, (mode | u_mode));
893893 break;
894894 }
895895 default:
--- a/src/cmd-read.c
+++ b/src/cmd-read.c
@@ -129,7 +129,7 @@ void do_cmd_read_scroll_aux(INVENTORY_IDX item, bool known)
129129 {
130130 for (k = 0; k < randint1(3); k++)
131131 {
132- if (summon_specific(0, p_ptr->y, p_ptr->x, current_floor_ptr->dun_level, 0, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE | PM_NO_PET), '\0'))
132+ if (summon_specific(0, p_ptr->y, p_ptr->x, current_floor_ptr->dun_level, 0, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE | PM_NO_PET)))
133133 {
134134 ident = TRUE;
135135 }
@@ -141,7 +141,7 @@ void do_cmd_read_scroll_aux(INVENTORY_IDX item, bool known)
141141 {
142142 for (k = 0; k < randint1(3); k++)
143143 {
144- if (summon_specific(0, p_ptr->y, p_ptr->x, current_floor_ptr->dun_level, SUMMON_UNDEAD, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE | PM_NO_PET), '\0'))
144+ if (summon_specific(0, p_ptr->y, p_ptr->x, current_floor_ptr->dun_level, SUMMON_UNDEAD, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE | PM_NO_PET)))
145145 {
146146 ident = TRUE;
147147 }
@@ -151,7 +151,7 @@ void do_cmd_read_scroll_aux(INVENTORY_IDX item, bool known)
151151
152152 case SV_SCROLL_SUMMON_PET:
153153 {
154- if (summon_specific(-1, p_ptr->y, p_ptr->x, current_floor_ptr->dun_level, 0, (PM_ALLOW_GROUP | PM_FORCE_PET), '\0'))
154+ if (summon_specific(-1, p_ptr->y, p_ptr->x, current_floor_ptr->dun_level, 0, (PM_ALLOW_GROUP | PM_FORCE_PET)))
155155 {
156156 ident = TRUE;
157157 }
--- a/src/cmd-usestaff.c
+++ b/src/cmd-usestaff.c
@@ -61,7 +61,7 @@ int staff_effect(OBJECT_SUBTYPE_VALUE sval, bool *use_charge, bool powerful, boo
6161 const int times = randint1(powerful ? 8 : 4);
6262 for (k = 0; k < times; k++)
6363 {
64- if (summon_specific(0, p_ptr->y, p_ptr->x, current_floor_ptr->dun_level, 0, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE | PM_NO_PET), '\0'))
64+ if (summon_specific(0, p_ptr->y, p_ptr->x, current_floor_ptr->dun_level, 0, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE | PM_NO_PET)))
6565 {
6666 ident = TRUE;
6767 }
--- a/src/core.c
+++ b/src/core.c
@@ -2226,7 +2226,7 @@ static void process_world_aux_mutation(void)
22262226 if (pet) mode |= PM_FORCE_PET;
22272227 else mode |= (PM_ALLOW_UNIQUE | PM_NO_PET);
22282228
2229- if (summon_specific((pet ? -1 : 0), p_ptr->y, p_ptr->x, current_floor_ptr->dun_level, SUMMON_DEMON, mode, '\0'))
2229+ if (summon_specific((pet ? -1 : 0), p_ptr->y, p_ptr->x, current_floor_ptr->dun_level, SUMMON_DEMON, mode))
22302230 {
22312231 msg_print(_("あなたはデーモンを引き寄せた!", "You have attracted a demon!"));
22322232 disturb(FALSE, TRUE);
@@ -2335,7 +2335,7 @@ static void process_world_aux_mutation(void)
23352335 if (pet) mode |= PM_FORCE_PET;
23362336 else mode |= (PM_ALLOW_UNIQUE | PM_NO_PET);
23372337
2338- if (summon_specific((pet ? -1 : 0), p_ptr->y, p_ptr->x, current_floor_ptr->dun_level, SUMMON_ANIMAL, mode, '\0'))
2338+ if (summon_specific((pet ? -1 : 0), p_ptr->y, p_ptr->x, current_floor_ptr->dun_level, SUMMON_ANIMAL, mode))
23392339 {
23402340 msg_print(_("動物を引き寄せた!", "You have attracted an animal!"));
23412341 disturb(FALSE, TRUE);
@@ -2413,7 +2413,7 @@ static void process_world_aux_mutation(void)
24132413 if (pet) mode |= PM_FORCE_PET;
24142414 else mode |= (PM_ALLOW_UNIQUE | PM_NO_PET);
24152415
2416- if (summon_specific((pet ? -1 : 0), p_ptr->y, p_ptr->x, current_floor_ptr->dun_level, SUMMON_DRAGON, mode, '\0'))
2416+ if (summon_specific((pet ? -1 : 0), p_ptr->y, p_ptr->x, current_floor_ptr->dun_level, SUMMON_DRAGON, mode))
24172417 {
24182418 msg_print(_("ドラゴンを引き寄せた!", "You have attracted a dragon!"));
24192419 disturb(FALSE, TRUE);
@@ -2676,7 +2676,7 @@ static void process_world_aux_curse(void)
26762676 /* Call animal */
26772677 if ((p_ptr->cursed & TRC_CALL_ANIMAL) && one_in_(2500))
26782678 {
2679- if (summon_specific(0, p_ptr->y, p_ptr->x, current_floor_ptr->dun_level, SUMMON_ANIMAL, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE | PM_NO_PET), '\0'))
2679+ if (summon_specific(0, p_ptr->y, p_ptr->x, current_floor_ptr->dun_level, SUMMON_ANIMAL, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE | PM_NO_PET)))
26802680 {
26812681 GAME_TEXT o_name[MAX_NLEN];
26822682
@@ -2688,7 +2688,7 @@ static void process_world_aux_curse(void)
26882688 /* Call demon */
26892689 if ((p_ptr->cursed & TRC_CALL_DEMON) && one_in_(1111))
26902690 {
2691- if (summon_specific(0, p_ptr->y, p_ptr->x, current_floor_ptr->dun_level, SUMMON_DEMON, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE | PM_NO_PET), '\0'))
2691+ if (summon_specific(0, p_ptr->y, p_ptr->x, current_floor_ptr->dun_level, SUMMON_DEMON, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE | PM_NO_PET)))
26922692 {
26932693 GAME_TEXT o_name[MAX_NLEN];
26942694
@@ -2701,7 +2701,7 @@ static void process_world_aux_curse(void)
27012701 if ((p_ptr->cursed & TRC_CALL_DRAGON) && one_in_(800))
27022702 {
27032703 if (summon_specific(0, p_ptr->y, p_ptr->x, current_floor_ptr->dun_level, SUMMON_DRAGON,
2704- (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE | PM_NO_PET), '\0'))
2704+ (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE | PM_NO_PET)))
27052705 {
27062706 GAME_TEXT o_name[MAX_NLEN];
27072707
@@ -2714,7 +2714,7 @@ static void process_world_aux_curse(void)
27142714 if ((p_ptr->cursed & TRC_CALL_UNDEAD) && one_in_(1111))
27152715 {
27162716 if (summon_specific(0, p_ptr->y, p_ptr->x, current_floor_ptr->dun_level, SUMMON_UNDEAD,
2717- (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE | PM_NO_PET), '\0'))
2717+ (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE | PM_NO_PET)))
27182718 {
27192719 GAME_TEXT o_name[MAX_NLEN];
27202720
--- a/src/externs.h
+++ b/src/externs.h
@@ -146,7 +146,6 @@ extern int total_friends;
146146 extern int leaving_quest;
147147 extern bool reinit_wilderness;
148148 extern bool multi_rew;
149-extern char summon_kin_type;
150149 extern bool is_loading_now;
151150 extern bool reset_concent;
152151 extern bool is_fired;
--- a/src/mind.c
+++ b/src/mind.c
@@ -1255,7 +1255,7 @@ static bool cast_force_spell(int spell)
12551255 bool success = FALSE;
12561256
12571257 for (i = 0; i < 1 + boost/100; i++)
1258- if (summon_specific(-1, p_ptr->y, p_ptr->x, plev, SUMMON_PHANTOM, PM_FORCE_PET, '\0'))
1258+ if (summon_specific(-1, p_ptr->y, p_ptr->x, plev, SUMMON_PHANTOM, PM_FORCE_PET))
12591259 success = TRUE;
12601260 if (success)
12611261 {
--- a/src/monster-process.c
+++ b/src/monster-process.c
@@ -2199,7 +2199,7 @@ void process_monster(MONSTER_IDX m_idx)
21992199
22002200 for (k = 0; k < A_MAX; k++)
22012201 {
2202- if (summon_specific(m_idx, m_ptr->fy, m_ptr->fx, rlev, SUMMON_MOLD, (PM_ALLOW_GROUP | p_mode), '\0'))
2202+ if (summon_specific(m_idx, m_ptr->fy, m_ptr->fx, rlev, SUMMON_MOLD, (PM_ALLOW_GROUP | p_mode)))
22032203 {
22042204 if (current_floor_ptr->m_list[hack_m_idx_ii].ml) count++;
22052205 }
--- a/src/monster1.c
+++ b/src/monster1.c
@@ -2688,7 +2688,7 @@ void monster_death(MONSTER_IDX m_idx, bool drop_item)
26882688
26892689 if (pet) mode |= PM_FORCE_PET;
26902690
2691- if (summon_specific((pet ? -1 : m_idx), wy, wx, 100, SUMMON_BLUE_HORROR, mode, '\0'))
2691+ if (summon_specific((pet ? -1 : m_idx), wy, wx, 100, SUMMON_BLUE_HORROR, mode))
26922692 {
26932693 if (player_can_see_bold(wy, wx)) notice = TRUE;
26942694 }
@@ -2753,7 +2753,7 @@ void monster_death(MONSTER_IDX m_idx, bool drop_item)
27532753 BIT_FLAGS mode = 0L;
27542754 if (pet) mode |= PM_FORCE_PET;
27552755
2756- if (summon_specific((pet ? -1 : m_idx), wy, wx, 100, SUMMON_DAWN, mode, '\0'))
2756+ if (summon_specific((pet ? -1 : m_idx), wy, wx, 100, SUMMON_DAWN, mode))
27572757 {
27582758 if (player_can_see_bold(wy, wx))
27592759 msg_print(_("新たな戦士が現れた!", "A new warrior steps forth!"));
--- a/src/monster2.c
+++ b/src/monster2.c
@@ -26,9 +26,10 @@
2626 #include "quest.h"
2727 #include "grid.h"
2828 #include "player-move.h"
29+#include "player-status.h"
30+#include "player-race.h"
2931 #include "wild.h"
3032 #include "warning.h"
31-#include "player-status.h"
3233 #include "monster-spell.h"
3334 #include "files.h"
3435 #include "view-mainwindow.h"
@@ -514,7 +515,7 @@ static bool summon_unique_okay = FALSE;
514515 * @return 召喚条件が一致するならtrue
515516 * @details
516517 */
517-static bool summon_specific_aux(MONRACE_IDX r_idx)
518+static bool summon_specific_aux(MONRACE_IDX summoner_idx, MONRACE_IDX r_idx)
518519 {
519520 monster_race *r_ptr = &r_info[r_idx];
520521 int okay = FALSE;
@@ -652,6 +653,16 @@ static bool summon_specific_aux(MONRACE_IDX r_idx)
652653
653654 case SUMMON_KIN:
654655 {
656+ SYMBOL_CODE summon_kin_type;
657+ if (summoner_idx)
658+ {
659+ summon_kin_type = r_info[summoner_idx].d_char;
660+ }
661+ else
662+ {
663+ summon_kin_type = get_summon_symbol_from_player(p_ptr);
664+ }
665+
655666 okay = ((r_ptr->d_char == summon_kin_type) && (r_idx != MON_HAGURE));
656667 break;
657668 }
@@ -3264,7 +3275,7 @@ bool alloc_horde(POSITION y, POSITION x)
32643275 {
32653276 scatter(&cy, &cx, y, x, 5, 0);
32663277
3267- (void)summon_specific(m_idx, cy, cx, current_floor_ptr->dun_level + 5, SUMMON_KIN, PM_ALLOW_GROUP, r_ptr->d_char);
3278+ (void)summon_specific(m_idx, cy, cx, current_floor_ptr->dun_level + 5, SUMMON_KIN, PM_ALLOW_GROUP);
32683279
32693280 y = cy;
32703281 x = cx;
@@ -3389,6 +3400,7 @@ bool alloc_monster(POSITION dis, BIT_FLAGS mode)
33893400 static bool summon_specific_okay(MONRACE_IDX r_idx)
33903401 {
33913402 monster_race *r_ptr = &r_info[r_idx];
3403+ monster_type *m_ptr = &current_floor_ptr->m_list[summon_specific_who];
33923404
33933405 /* Hack - Only summon dungeon monsters */
33943406 if (!mon_hook_dungeon(r_idx)) return (FALSE);
@@ -3396,7 +3408,6 @@ static bool summon_specific_okay(MONRACE_IDX r_idx)
33963408 /* Hack -- identify the summoning monster */
33973409 if (summon_specific_who > 0)
33983410 {
3399- monster_type *m_ptr = &current_floor_ptr->m_list[summon_specific_who];
34003411
34013412 /* Do not summon enemies */
34023413
@@ -3425,7 +3436,7 @@ static bool summon_specific_okay(MONRACE_IDX r_idx)
34253436
34263437 if ((r_ptr->flags7 & RF7_CHAMELEON) && (d_info[p_ptr->dungeon_idx].flags1 & DF1_CHAMELEON)) return TRUE;
34273438
3428- return (summon_specific_aux(r_idx));
3439+ return (summon_specific_aux(m_ptr->r_idx, r_idx));
34293440 }
34303441
34313442
@@ -3460,7 +3471,7 @@ static bool summon_specific_okay(MONRACE_IDX r_idx)
34603471 *
34613472 * Note that this function may not succeed, though this is very rare.
34623473 */
3463-bool summon_specific(MONSTER_IDX who, POSITION y1, POSITION x1, DEPTH lev, int type, BIT_FLAGS mode, SYMBOL_CODE symbol)
3474+bool summon_specific(MONSTER_IDX who, POSITION y1, POSITION x1, DEPTH lev, int type, BIT_FLAGS mode)
34643475 {
34653476 POSITION x, y;
34663477 MONRACE_IDX r_idx;
@@ -3475,8 +3486,6 @@ bool summon_specific(MONSTER_IDX who, POSITION y1, POSITION x1, DEPTH lev, int t
34753486 /* Save the "summon" type */
34763487 summon_specific_type = type;
34773488
3478- summon_kin_type = symbol;
3479-
34803489 summon_unique_okay = (mode & PM_ALLOW_UNIQUE) ? TRUE : FALSE;
34813490 get_mon_num_prep(summon_specific_okay, get_monster_hook2(y, x));
34823491
--- a/src/mspells3.c
+++ b/src/mspells3.c
@@ -1387,7 +1387,7 @@ static bool cast_learned_spell(int spell, bool success)
13871387
13881388 msg_print(_("サイバーデーモンを召喚した!", "You summon a Cyberdemon!"));
13891389 for (k = 0 ;k < 1 ; k++)
1390- if (summon_specific((pet ? -1 : 0), p_ptr->y, p_ptr->x, summon_lev, SUMMON_CYBER, p_mode, '\0'))
1390+ if (summon_specific((pet ? -1 : 0), p_ptr->y, p_ptr->x, summon_lev, SUMMON_CYBER, p_mode))
13911391 {
13921392 if (!pet)
13931393 msg_print(_("召喚されたサイバーデーモンは怒っている!", "The summoned Cyberdemon are angry!"));
@@ -1403,7 +1403,7 @@ static bool cast_learned_spell(int spell, bool success)
14031403 int k;
14041404 msg_print(_("仲間を召喚した。", "You summon help."));
14051405 for (k = 0;k < 1; k++)
1406- if (summon_specific((pet ? -1 : 0), p_ptr->y, p_ptr->x, summon_lev, 0, p_mode, '\0'))
1406+ if (summon_specific((pet ? -1 : 0), p_ptr->y, p_ptr->x, summon_lev, 0, p_mode))
14071407 {
14081408 if (!pet)
14091409 msg_print(_("召喚されたモンスターは怒っている!", "The summoned monster is angry!"));
@@ -1419,7 +1419,7 @@ static bool cast_learned_spell(int spell, bool success)
14191419 int k;
14201420 msg_print(_("モンスターを召喚した!", "You summon monsters!"));
14211421 for (k = 0;k < plev / 15 + 2; k++)
1422- if(summon_specific((pet ? -1 : 0), p_ptr->y, p_ptr->x, summon_lev, 0, (p_mode | u_mode), '\0'))
1422+ if(summon_specific((pet ? -1 : 0), p_ptr->y, p_ptr->x, summon_lev, 0, (p_mode | u_mode)))
14231423 {
14241424 if (!pet)
14251425 msg_print(_("召喚されたモンスターは怒っている!", "The summoned monsters are angry!"));
@@ -1435,7 +1435,7 @@ static bool cast_learned_spell(int spell, bool success)
14351435 int k;
14361436 msg_print(_("アリを召喚した。", "You summon ants."));
14371437 for (k = 0; k < 1; k++)
1438- if (summon_specific((pet ? -1 : 0), p_ptr->y, p_ptr->x, summon_lev, SUMMON_ANT, (PM_ALLOW_GROUP | p_mode), '\0'))
1438+ if (summon_specific((pet ? -1 : 0), p_ptr->y, p_ptr->x, summon_lev, SUMMON_ANT, (PM_ALLOW_GROUP | p_mode)))
14391439 {
14401440 if (!pet)
14411441 msg_print(_("召喚されたアリは怒っている!", "The summoned ants are angry!"));
@@ -1451,7 +1451,7 @@ static bool cast_learned_spell(int spell, bool success)
14511451 int k;
14521452 msg_print(_("蜘蛛を召喚した。", "You summon spiders."));
14531453 for (k = 0;k < 1; k++)
1454- if (summon_specific((pet ? -1 : 0), p_ptr->y, p_ptr->x, summon_lev, SUMMON_SPIDER, (PM_ALLOW_GROUP | p_mode), '\0'))
1454+ if (summon_specific((pet ? -1 : 0), p_ptr->y, p_ptr->x, summon_lev, SUMMON_SPIDER, (PM_ALLOW_GROUP | p_mode)))
14551455 {
14561456 if (!pet)
14571457 msg_print(_("召喚された蜘蛛は怒っている!", "Summoned spiders are angry!"));
@@ -1467,7 +1467,7 @@ static bool cast_learned_spell(int spell, bool success)
14671467 int k;
14681468 msg_print(_("ハウンドを召喚した。", "You summon hounds."));
14691469 for (k = 0;k < 1; k++)
1470- if (summon_specific((pet ? -1 : 0), p_ptr->y, p_ptr->x, summon_lev, SUMMON_HOUND, (PM_ALLOW_GROUP | p_mode), '\0'))
1470+ if (summon_specific((pet ? -1 : 0), p_ptr->y, p_ptr->x, summon_lev, SUMMON_HOUND, (PM_ALLOW_GROUP | p_mode)))
14711471 {
14721472 if (!pet)
14731473 msg_print(_("召喚されたハウンドは怒っている!", "Summoned hounds are angry!"));
@@ -1483,7 +1483,7 @@ static bool cast_learned_spell(int spell, bool success)
14831483 int k;
14841484 msg_print(_("ヒドラを召喚した。", "You summon a hydras."));
14851485 for (k = 0;k < 1; k++)
1486- if (summon_specific((pet ? -1 : 0), p_ptr->y, p_ptr->x, summon_lev, SUMMON_HYDRA, (g_mode | p_mode), '\0'))
1486+ if (summon_specific((pet ? -1 : 0), p_ptr->y, p_ptr->x, summon_lev, SUMMON_HYDRA, (g_mode | p_mode)))
14871487 {
14881488 if (!pet)
14891489 msg_print(_("召喚されたヒドラは怒っている!", "Summoned hydras are angry!"));
@@ -1499,7 +1499,7 @@ static bool cast_learned_spell(int spell, bool success)
14991499 int k;
15001500 msg_print(_("天使を召喚した!", "You summon an angel!"));
15011501 for (k = 0;k < 1; k++)
1502- if (summon_specific((pet ? -1 : 0), p_ptr->y, p_ptr->x, summon_lev, SUMMON_ANGEL, (g_mode | p_mode), '\0'))
1502+ if (summon_specific((pet ? -1 : 0), p_ptr->y, p_ptr->x, summon_lev, SUMMON_ANGEL, (g_mode | p_mode)))
15031503 {
15041504 if (!pet)
15051505 msg_print(_("召喚された天使は怒っている!", "Summoned angels are angry!"));
@@ -1515,7 +1515,7 @@ static bool cast_learned_spell(int spell, bool success)
15151515 int k;
15161516 msg_print(_("混沌の宮廷から悪魔を召喚した!", "You summon a demon from the Courts of Chaos!"));
15171517 for (k = 0;k < 1; k++)
1518- if (summon_specific((pet ? -1 : 0), p_ptr->y, p_ptr->x, summon_lev, SUMMON_DEMON, (g_mode | p_mode), '\0'))
1518+ if (summon_specific((pet ? -1 : 0), p_ptr->y, p_ptr->x, summon_lev, SUMMON_DEMON, (g_mode | p_mode)))
15191519 {
15201520 if (!pet)
15211521 msg_print(_("召喚されたデーモンは怒っている!", "Summoned demons are angry!"));
@@ -1531,7 +1531,7 @@ static bool cast_learned_spell(int spell, bool success)
15311531 int k;
15321532 msg_print(_("アンデッドの強敵を召喚した!", "You summon an undead adversary!"));
15331533 for (k = 0;k < 1; k++)
1534- if (summon_specific((pet ? -1 : 0), p_ptr->y, p_ptr->x, summon_lev, SUMMON_UNDEAD, (g_mode | p_mode), '\0'))
1534+ if (summon_specific((pet ? -1 : 0), p_ptr->y, p_ptr->x, summon_lev, SUMMON_UNDEAD, (g_mode | p_mode)))
15351535 {
15361536 if (!pet)
15371537 msg_print(_("召喚されたアンデッドは怒っている!", "Summoned undeads are angry!"));
@@ -1547,7 +1547,7 @@ static bool cast_learned_spell(int spell, bool success)
15471547 int k;
15481548 msg_print(_("ドラゴンを召喚した!", "You summon a dragon!"));
15491549 for (k = 0;k < 1; k++)
1550- if (summon_specific((pet ? -1 : 0), p_ptr->y, p_ptr->x, summon_lev, SUMMON_DRAGON, (g_mode | p_mode), '\0'))
1550+ if (summon_specific((pet ? -1 : 0), p_ptr->y, p_ptr->x, summon_lev, SUMMON_DRAGON, (g_mode | p_mode)))
15511551 {
15521552 if (!pet)
15531553 msg_print(_("召喚されたドラゴンは怒っている!", "Summoned dragons are angry!"));
@@ -1563,7 +1563,7 @@ static bool cast_learned_spell(int spell, bool success)
15631563 int k;
15641564 msg_print(_("強力なアンデッドを召喚した!", "You summon a greater undead!"));
15651565 for (k = 0;k < 1; k++)
1566- if (summon_specific((pet ? -1 : 0), p_ptr->y, p_ptr->x, summon_lev, SUMMON_HI_UNDEAD, (g_mode | p_mode | u_mode), '\0'))
1566+ if (summon_specific((pet ? -1 : 0), p_ptr->y, p_ptr->x, summon_lev, SUMMON_HI_UNDEAD, (g_mode | p_mode | u_mode)))
15671567 {
15681568 if (!pet)
15691569 msg_print(_("召喚された上級アンデッドは怒っている!", "Summoned greater undeads are angry!"));
@@ -1579,7 +1579,7 @@ static bool cast_learned_spell(int spell, bool success)
15791579 int k;
15801580 msg_print(_("古代ドラゴンを召喚した!", "You summon an ancient dragon!"));
15811581 for (k = 0;k < 1; k++)
1582- if (summon_specific((pet ? -1 : 0), p_ptr->y, p_ptr->x, summon_lev, SUMMON_HI_DRAGON, (g_mode | p_mode | u_mode), '\0'))
1582+ if (summon_specific((pet ? -1 : 0), p_ptr->y, p_ptr->x, summon_lev, SUMMON_HI_DRAGON, (g_mode | p_mode | u_mode)))
15831583 {
15841584 if (!pet)
15851585 msg_print(_("召喚された古代ドラゴンは怒っている!", "Summoned ancient dragons are angry!"));
@@ -1595,7 +1595,7 @@ static bool cast_learned_spell(int spell, bool success)
15951595 int k;
15961596 msg_print(_("アンバーの王族を召喚した!", "You summon a Lord of Amber!"));
15971597 for (k = 0;k < 1; k++)
1598- if (summon_specific((pet ? -1 : 0), p_ptr->y, p_ptr->x, summon_lev, SUMMON_AMBERITES, (g_mode | p_mode | u_mode), '\0'))
1598+ if (summon_specific((pet ? -1 : 0), p_ptr->y, p_ptr->x, summon_lev, SUMMON_AMBERITES, (g_mode | p_mode | u_mode)))
15991599 {
16001600 if (!pet)
16011601 msg_print(_("召喚されたアンバーの王族は怒っている!", "Summoned Lords of Amber are angry!"));
@@ -1611,14 +1611,14 @@ static bool cast_learned_spell(int spell, bool success)
16111611 int k, count = 0;
16121612 msg_print(_("特別な強敵を召喚した!", "You summon a special opponent!"));
16131613 for (k = 0;k < 1; k++)
1614- if (summon_specific((pet ? -1 : 0), p_ptr->y, p_ptr->x, summon_lev, SUMMON_UNIQUE, (g_mode | p_mode | PM_ALLOW_UNIQUE), '\0'))
1614+ if (summon_specific((pet ? -1 : 0), p_ptr->y, p_ptr->x, summon_lev, SUMMON_UNIQUE, (g_mode | p_mode | PM_ALLOW_UNIQUE)))
16151615 {
16161616 count++;
16171617 if (!pet)
16181618 msg_print(_("召喚されたユニーク・モンスターは怒っている!", "Summoned special opponents are angry!"));
16191619 }
16201620 for (k = count;k < 1; k++)
1621- if (summon_specific((pet ? -1 : 0), p_ptr->y, p_ptr->x, summon_lev, SUMMON_HI_UNDEAD, (g_mode | p_mode | PM_ALLOW_UNIQUE), '\0'))
1621+ if (summon_specific((pet ? -1 : 0), p_ptr->y, p_ptr->x, summon_lev, SUMMON_HI_UNDEAD, (g_mode | p_mode | PM_ALLOW_UNIQUE)))
16221622 {
16231623 count++;
16241624 if (!pet)
--- a/src/mspells4.c
+++ b/src/mspells4.c
@@ -2535,7 +2535,7 @@ MONSTER_NUMBER summon_EAGLE(POSITION y, POSITION x, int rlev, MONSTER_IDX m_idx)
25352535 int num = 4 + randint1(3);
25362536 for (k = 0; k < num; k++)
25372537 {
2538- count += summon_specific(m_idx, y, x, rlev, SUMMON_EAGLES, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE), '\0');
2538+ count += summon_specific(m_idx, y, x, rlev, SUMMON_EAGLES, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE));
25392539 }
25402540 return count;
25412541 }
@@ -2592,7 +2592,7 @@ MONSTER_NUMBER summon_Guardian(POSITION y, POSITION x, int rlev, MONSTER_IDX m_i
25922592
25932593 for (k = 0; k < num; k++)
25942594 {
2595- count += summon_specific(m_idx, y, x, rlev, SUMMON_GUARDIANS, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE), '\0');
2595+ count += summon_specific(m_idx, y, x, rlev, SUMMON_GUARDIANS, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE));
25962596 }
25972597 return count;
25982598 }
@@ -2632,7 +2632,7 @@ MONSTER_NUMBER summon_LOUSE(POSITION y, POSITION x, int rlev, MONSTER_IDX m_idx)
26322632 int num = 2 + randint1(3);
26332633 for (k = 0; k < num; k++)
26342634 {
2635- count += summon_specific(m_idx, y, x, rlev, SUMMON_LOUSE, PM_ALLOW_GROUP, '\0');
2635+ count += summon_specific(m_idx, y, x, rlev, SUMMON_LOUSE, PM_ALLOW_GROUP);
26362636 }
26372637 return count;
26382638 }
@@ -2648,12 +2648,10 @@ MONSTER_NUMBER summon_LOUSE(POSITION y, POSITION x, int rlev, MONSTER_IDX m_idx)
26482648 MONSTER_NUMBER summon_Kin(POSITION y, POSITION x, int rlev, MONSTER_IDX m_idx)
26492649 {
26502650 int k, count = 0;
2651- monster_type *m_ptr = &current_floor_ptr->m_list[m_idx];
2652- monster_race *r_ptr = &r_info[m_ptr->r_idx];
26532651
26542652 for (k = 0; k < 4; k++)
26552653 {
2656- count += summon_specific(m_idx, y, x, rlev, SUMMON_KIN, PM_ALLOW_GROUP, r_ptr->d_char);
2654+ count += summon_specific(m_idx, y, x, rlev, SUMMON_KIN, PM_ALLOW_GROUP);
26572655 }
26582656 return count;
26592657 }
@@ -2776,7 +2774,7 @@ void spell_RF6_S_CYBER(POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_
27762774
27772775 if (is_friendly(m_ptr) && mon_to_mon)
27782776 {
2779- count += summon_specific(m_idx, y, x, rlev, SUMMON_CYBER, (PM_ALLOW_GROUP), '\0');
2777+ count += summon_specific(m_idx, y, x, rlev, SUMMON_CYBER, (PM_ALLOW_GROUP));
27802778 }
27812779 else
27822780 {
@@ -2815,10 +2813,10 @@ void spell_RF6_S_MONSTER(POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX
28152813 for (k = 0; k < 1; k++)
28162814 {
28172815 if(mon_to_player)
2818- count += summon_specific(m_idx, y, x, rlev, 0, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE), '\0');
2816+ count += summon_specific(m_idx, y, x, rlev, 0, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE));
28192817
28202818 if(mon_to_mon)
2821- count += summon_specific(m_idx, y, x, rlev, 0, (monster_u_mode(m_idx)), '\0');
2819+ count += summon_specific(m_idx, y, x, rlev, 0, (monster_u_mode(m_idx)));
28222820 }
28232821
28242822 if (p_ptr->blind && count && mon_to_player)
@@ -2853,10 +2851,10 @@ void spell_RF6_S_MONSTERS(POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX
28532851 for (k = 0; k < S_NUM_6; k++)
28542852 {
28552853 if(mon_to_player)
2856- count += summon_specific(m_idx, y, x, rlev, 0, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE), '\0');
2854+ count += summon_specific(m_idx, y, x, rlev, 0, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE));
28572855
28582856 if(mon_to_mon)
2859- count += summon_specific(m_idx, y, x, rlev, 0, (PM_ALLOW_GROUP | monster_u_mode(m_idx)), '\0');
2857+ count += summon_specific(m_idx, y, x, rlev, 0, (PM_ALLOW_GROUP | monster_u_mode(m_idx)));
28602858 }
28612859
28622860 if (p_ptr->blind && count && mon_to_player)
@@ -2890,7 +2888,7 @@ void spell_RF6_S_ANT(POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_id
28902888
28912889 for (k = 0; k < S_NUM_6; k++)
28922890 {
2893- count += summon_specific(m_idx, y, x, rlev, SUMMON_ANT, PM_ALLOW_GROUP, '\0');
2891+ count += summon_specific(m_idx, y, x, rlev, SUMMON_ANT, PM_ALLOW_GROUP);
28942892 }
28952893
28962894 if (p_ptr->blind && count && mon_to_player)
@@ -2924,7 +2922,7 @@ void spell_RF6_S_SPIDER(POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t
29242922
29252923 for (k = 0; k < S_NUM_6; k++)
29262924 {
2927- count += summon_specific(m_idx, y, x, rlev, SUMMON_SPIDER, PM_ALLOW_GROUP, '\0');
2925+ count += summon_specific(m_idx, y, x, rlev, SUMMON_SPIDER, PM_ALLOW_GROUP);
29282926 }
29292927
29302928 if (p_ptr->blind && count && mon_to_player)
@@ -2958,7 +2956,7 @@ void spell_RF6_S_HOUND(POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_
29582956
29592957 for (k = 0; k < S_NUM_4; k++)
29602958 {
2961- count += summon_specific(m_idx, y, x, rlev, SUMMON_HOUND, PM_ALLOW_GROUP, '\0');
2959+ count += summon_specific(m_idx, y, x, rlev, SUMMON_HOUND, PM_ALLOW_GROUP);
29622960 }
29632961
29642962 if (p_ptr->blind && count && mon_to_player)
@@ -2992,7 +2990,7 @@ void spell_RF6_S_HYDRA(POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_
29922990
29932991 for (k = 0; k < S_NUM_4; k++)
29942992 {
2995- count += summon_specific(m_idx, y, x, rlev, SUMMON_HYDRA, PM_ALLOW_GROUP, '\0');
2993+ count += summon_specific(m_idx, y, x, rlev, SUMMON_HYDRA, PM_ALLOW_GROUP);
29962994 }
29972995
29982996 if (p_ptr->blind && count && mon_to_player)
@@ -3033,7 +3031,7 @@ void spell_RF6_S_ANGEL(POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_
30333031
30343032 for (k = 0; k < num; k++)
30353033 {
3036- count += summon_specific(m_idx, y, x, rlev, SUMMON_ANGEL, PM_ALLOW_GROUP, '\0');
3034+ count += summon_specific(m_idx, y, x, rlev, SUMMON_ANGEL, PM_ALLOW_GROUP);
30373035 }
30383036
30393037 if (count < 2)
@@ -3074,7 +3072,7 @@ void spell_RF6_S_DEMON(POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_
30743072
30753073 for (k = 0; k < 1; k++)
30763074 {
3077- count += summon_specific(m_idx, y, x, rlev, SUMMON_DEMON, PM_ALLOW_GROUP, '\0');
3075+ count += summon_specific(m_idx, y, x, rlev, SUMMON_DEMON, PM_ALLOW_GROUP);
30783076 }
30793077
30803078 if (p_ptr->blind && count)
@@ -3107,7 +3105,7 @@ void spell_RF6_S_UNDEAD(POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t
31073105
31083106 for (k = 0; k < 1; k++)
31093107 {
3110- count += summon_specific(m_idx, y, x, rlev, SUMMON_UNDEAD, PM_ALLOW_GROUP, '\0');
3108+ count += summon_specific(m_idx, y, x, rlev, SUMMON_UNDEAD, PM_ALLOW_GROUP);
31113109 }
31123110
31133111 if (p_ptr->blind && count)
@@ -3140,7 +3138,7 @@ void spell_RF6_S_DRAGON(POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t
31403138
31413139 for (k = 0; k < 1; k++)
31423140 {
3143- count += summon_specific(m_idx, y, x, rlev, SUMMON_DRAGON, PM_ALLOW_GROUP, '\0');
3141+ count += summon_specific(m_idx, y, x, rlev, SUMMON_DRAGON, PM_ALLOW_GROUP);
31443142 }
31453143
31463144 if (p_ptr->blind && count)
@@ -3246,10 +3244,10 @@ void spell_RF6_S_HI_UNDEAD(POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_ID
32463244 for (k = 0; k < S_NUM_6; k++)
32473245 {
32483246 if(mon_to_player)
3249- count += summon_specific(m_idx, y, x, rlev, SUMMON_HI_UNDEAD, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE), '\0');
3247+ count += summon_specific(m_idx, y, x, rlev, SUMMON_HI_UNDEAD, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE));
32503248
32513249 if(mon_to_mon)
3252- count += summon_specific(m_idx, y, x, rlev, SUMMON_HI_UNDEAD, (PM_ALLOW_GROUP | monster_u_mode(m_idx)), '\0');
3250+ count += summon_specific(m_idx, y, x, rlev, SUMMON_HI_UNDEAD, (PM_ALLOW_GROUP | monster_u_mode(m_idx)));
32533251 }
32543252 }
32553253 if (p_ptr->blind && count && mon_to_player)
@@ -3286,10 +3284,10 @@ void spell_RF6_S_HI_DRAGON(POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_ID
32863284 for (k = 0; k < S_NUM_4; k++)
32873285 {
32883286 if(mon_to_player)
3289- count += summon_specific(m_idx, y, x, rlev, SUMMON_HI_DRAGON, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE), '\0');
3287+ count += summon_specific(m_idx, y, x, rlev, SUMMON_HI_DRAGON, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE));
32903288
32913289 if(mon_to_mon)
3292- count += summon_specific(m_idx, y, x, rlev, SUMMON_HI_DRAGON, (PM_ALLOW_GROUP | monster_u_mode(m_idx)), '\0');
3290+ count += summon_specific(m_idx, y, x, rlev, SUMMON_HI_DRAGON, (PM_ALLOW_GROUP | monster_u_mode(m_idx)));
32933291 }
32943292
32953293 if (p_ptr->blind && count && mon_to_player)
@@ -3325,7 +3323,7 @@ void spell_RF6_S_AMBERITES(POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_ID
33253323
33263324 for (k = 0; k < S_NUM_4; k++)
33273325 {
3328- count += summon_specific(m_idx, y, x, rlev, SUMMON_AMBERITES, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE), '\0');
3326+ count += summon_specific(m_idx, y, x, rlev, SUMMON_AMBERITES, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE));
33293327 }
33303328
33313329 if (p_ptr->blind && count && mon_to_player)
@@ -3364,7 +3362,7 @@ void spell_RF6_S_UNIQUE(POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t
33643362
33653363 for (k = 0; k < S_NUM_4; k++)
33663364 {
3367- count += summon_specific(m_idx, y, x, rlev, SUMMON_UNIQUE, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE), '\0');
3365+ count += summon_specific(m_idx, y, x, rlev, SUMMON_UNIQUE, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE));
33683366 }
33693367
33703368 if (count) uniques_are_summoned = TRUE;
@@ -3376,7 +3374,7 @@ void spell_RF6_S_UNIQUE(POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t
33763374
33773375 for (k = count; k < S_NUM_4; k++)
33783376 {
3379- count += summon_specific(m_idx, y, x, rlev, non_unique_type, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE), '\0');
3377+ count += summon_specific(m_idx, y, x, rlev, non_unique_type, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE));
33803378 }
33813379
33823380 if (p_ptr->blind && count && mon_to_player)
--- a/src/mutation.c
+++ b/src/mutation.c
@@ -2210,7 +2210,7 @@ bool mutation_power_aux(int power)
22102210 DIRECTION i;
22112211 for (i = 0; i < 8; i++)
22122212 {
2213- summon_specific(-1, p_ptr->y, p_ptr->x, lvl, SUMMON_MOLD, PM_FORCE_PET, '\0');
2213+ summon_specific(-1, p_ptr->y, p_ptr->x, lvl, SUMMON_MOLD, PM_FORCE_PET);
22142214 }
22152215 }
22162216 break;
--- a/src/patron.c
+++ b/src/patron.c
@@ -383,7 +383,7 @@ void gain_level_reward(int chosen_reward)
383383
384384 for (dummy = 0; dummy < randint1(5) + 1; dummy++)
385385 {
386- (void)summon_specific(0, p_ptr->y, p_ptr->x, current_floor_ptr->dun_level, 0, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE | PM_NO_PET), '\0');
386+ (void)summon_specific(0, p_ptr->y, p_ptr->x, current_floor_ptr->dun_level, 0, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE | PM_NO_PET));
387387 }
388388 reward = _("モンスターを召喚された。", "summoning hostile monsters");
389389 break;
@@ -629,7 +629,7 @@ void gain_level_reward(int chosen_reward)
629629
630630 msg_format(_("%sは褒美として悪魔の使いをよこした!", "%s rewards you with a demonic servant!"), chaos_patrons[p_ptr->chaos_patron]);
631631
632- if (!summon_specific(-1, p_ptr->y, p_ptr->x, current_floor_ptr->dun_level, SUMMON_DEMON, PM_FORCE_PET, '\0'))
632+ if (!summon_specific(-1, p_ptr->y, p_ptr->x, current_floor_ptr->dun_level, SUMMON_DEMON, PM_FORCE_PET))
633633 msg_print(_("何も現れなかった...", "Nobody ever turns up..."));
634634 else
635635 reward = _("悪魔がペットになった。", "a demonic servant");
@@ -639,7 +639,7 @@ void gain_level_reward(int chosen_reward)
639639 case REW_SER_MONS:
640640 msg_format(_("%sは褒美として使いをよこした!", "%s rewards you with a servant!"), chaos_patrons[p_ptr->chaos_patron]);
641641
642- if (!summon_specific(-1, p_ptr->y, p_ptr->x, current_floor_ptr->dun_level, 0, PM_FORCE_PET, '\0'))
642+ if (!summon_specific(-1, p_ptr->y, p_ptr->x, current_floor_ptr->dun_level, 0, PM_FORCE_PET))
643643 msg_print(_("何も現れなかった...", "Nobody ever turns up..."));
644644 else
645645 reward = _("モンスターがペットになった。", "a servant");
@@ -649,7 +649,7 @@ void gain_level_reward(int chosen_reward)
649649 case REW_SER_UNDE:
650650 msg_format(_("%sは褒美としてアンデッドの使いをよこした。", "%s rewards you with an undead servant!"), chaos_patrons[p_ptr->chaos_patron]);
651651
652- if (!summon_specific(-1, p_ptr->y, p_ptr->x, current_floor_ptr->dun_level, SUMMON_UNDEAD, PM_FORCE_PET, '\0'))
652+ if (!summon_specific(-1, p_ptr->y, p_ptr->x, current_floor_ptr->dun_level, SUMMON_UNDEAD, PM_FORCE_PET))
653653 msg_print(_("何も現れなかった...", "Nobody ever turns up..."));
654654 else
655655 reward = _("アンデッドがペットになった。", "an undead servant");
--- a/src/player-race.c
+++ b/src/player-race.c
@@ -1,8 +1,6 @@
11 #include "angband.h"
22 #include "player-race.h"
33
4-
5-
64 /*!
75 * @brief 種族情報 /
86 * Player Races
@@ -663,3 +661,109 @@ const player_race mimic_info[] =
663661 };
664662
665663 const player_race *rp_ptr;
664+
665+SYMBOL_CODE get_summon_symbol_from_player(player_type *creature_ptr)
666+{
667+ SYMBOL_CODE symbol = 'N';
668+ switch (creature_ptr->mimic_form)
669+ {
670+ case MIMIC_NONE:
671+ switch (creature_ptr->prace)
672+ {
673+ case RACE_HUMAN:
674+ case RACE_AMBERITE:
675+ case RACE_BARBARIAN:
676+ case RACE_BEASTMAN:
677+ case RACE_DUNADAN:
678+ symbol = 'p';
679+ break;
680+ case RACE_HALF_ELF:
681+ case RACE_ELF:
682+ case RACE_HOBBIT:
683+ case RACE_GNOME:
684+ case RACE_DWARF:
685+ case RACE_HIGH_ELF:
686+ case RACE_NIBELUNG:
687+ case RACE_DARK_ELF:
688+ case RACE_MIND_FLAYER:
689+ case RACE_KUTAR:
690+ case RACE_S_FAIRY:
691+ symbol = 'h';
692+ break;
693+ case RACE_HALF_ORC:
694+ symbol = 'o';
695+ break;
696+ case RACE_HALF_TROLL:
697+ symbol = 'T';
698+ break;
699+ case RACE_HALF_OGRE:
700+ symbol = 'O';
701+ break;
702+ case RACE_HALF_GIANT:
703+ case RACE_HALF_TITAN:
704+ case RACE_CYCLOPS:
705+ symbol = 'P';
706+ break;
707+ case RACE_YEEK:
708+ symbol = 'y';
709+ break;
710+ case RACE_KLACKON:
711+ symbol = 'K';
712+ break;
713+ case RACE_KOBOLD:
714+ symbol = 'k';
715+ break;
716+ case RACE_IMP:
717+ if (one_in_(13)) symbol = 'U';
718+ else symbol = 'u';
719+ break;
720+ case RACE_DRACONIAN:
721+ symbol = 'd';
722+ break;
723+ case RACE_GOLEM:
724+ case RACE_ANDROID:
725+ symbol = 'g';
726+ break;
727+ case RACE_SKELETON:
728+ if (one_in_(13)) symbol = 'L';
729+ else symbol = 's';
730+ break;
731+ case RACE_ZOMBIE:
732+ symbol = 'z';
733+ break;
734+ case RACE_VAMPIRE:
735+ symbol = 'V';
736+ break;
737+ case RACE_SPECTRE:
738+ symbol = 'G';
739+ break;
740+ case RACE_SPRITE:
741+ symbol = 'I';
742+ break;
743+ case RACE_ENT:
744+ symbol = '#';
745+ break;
746+ case RACE_ANGEL:
747+ symbol = 'A';
748+ break;
749+ case RACE_DEMON:
750+ symbol = 'U';
751+ break;
752+ default:
753+ symbol = 'p';
754+ break;
755+ }
756+ break;
757+ case MIMIC_DEMON:
758+ if (one_in_(13)) symbol = 'U';
759+ else symbol = 'u';
760+ break;
761+ case MIMIC_DEMON_LORD:
762+ symbol = 'U';
763+ break;
764+ case MIMIC_VAMPIRE:
765+ symbol = 'V';
766+ break;
767+ }
768+ return symbol;
769+}
--- a/src/player-race.h
+++ b/src/player-race.h
@@ -52,3 +52,5 @@ extern const player_race *rp_ptr;
5252
5353 extern const player_race race_info[MAX_RACES];
5454 extern const player_race mimic_info[];
55+
56+SYMBOL_CODE get_summon_symbol_from_player(player_type *p_ptr);
--- a/src/realm-arcane.c
+++ b/src/realm-arcane.c
@@ -429,7 +429,7 @@ concptr do_arcane_spell(SPELL_IDX spell, BIT_FLAGS mode)
429429 {
430430 if (cast)
431431 {
432- if (!summon_specific(-1, p_ptr->y, p_ptr->x, plev, SUMMON_ELEMENTAL, (PM_ALLOW_GROUP | PM_FORCE_PET), '\0'))
432+ if (!summon_specific(-1, p_ptr->y, p_ptr->x, plev, SUMMON_ELEMENTAL, (PM_ALLOW_GROUP | PM_FORCE_PET)))
433433 {
434434 msg_print(_("エレメンタルは現れなかった。", "No Elementals arrive."));
435435 }
--- a/src/realm-craft.c
+++ b/src/realm-craft.c
@@ -382,7 +382,7 @@ concptr do_craft_spell(SPELL_IDX spell, BIT_FLAGS mode)
382382 {
383383 if (cast)
384384 {
385- if (summon_specific(-1, p_ptr->y, p_ptr->x, plev, SUMMON_GOLEM, PM_FORCE_PET, '\0'))
385+ if (summon_specific(-1, p_ptr->y, p_ptr->x, plev, SUMMON_GOLEM, PM_FORCE_PET))
386386 {
387387 msg_print(_("ゴーレムを作った。", "You make a golem."));
388388 }
--- a/src/realm-crusade.c
+++ b/src/realm-crusade.c
@@ -396,7 +396,7 @@ concptr do_crusade_spell(SPELL_IDX spell, BIT_FLAGS mode)
396396 else flg |= PM_NO_PET;
397397 if (!(pet && (plev < 50))) flg |= PM_ALLOW_GROUP;
398398
399- if (summon_specific((pet ? -1 : 0), p_ptr->y, p_ptr->x, (plev * 3) / 2, SUMMON_ANGEL, flg, '\0'))
399+ if (summon_specific((pet ? -1 : 0), p_ptr->y, p_ptr->x, (plev * 3) / 2, SUMMON_ANGEL, flg))
400400 {
401401 if (pet)
402402 {
@@ -558,7 +558,7 @@ concptr do_crusade_spell(SPELL_IDX spell, BIT_FLAGS mode)
558558 if (cave_empty_bold2(my, mx)) break;
559559 }
560560 if (attempt < 0) continue;
561- summon_specific(-1, my, mx, plev, SUMMON_KNIGHTS, (PM_ALLOW_GROUP | PM_FORCE_PET | PM_HASTE), '\0');
561+ summon_specific(-1, my, mx, plev, SUMMON_KNIGHTS, (PM_ALLOW_GROUP | PM_FORCE_PET | PM_HASTE));
562562 }
563563 set_hero(randint1(base) + base, FALSE);
564564 set_blessed(randint1(base) + base, FALSE);
--- a/src/realm-daemon.c
+++ b/src/realm-daemon.c
@@ -140,7 +140,7 @@ concptr do_daemon_spell(SPELL_IDX spell, BIT_FLAGS mode)
140140 {
141141 if (cast)
142142 {
143- if (!summon_specific(-1, p_ptr->y, p_ptr->x, (plev * 3) / 2, SUMMON_MANES, (PM_ALLOW_GROUP | PM_FORCE_PET), '\0'))
143+ if (!summon_specific(-1, p_ptr->y, p_ptr->x, (plev * 3) / 2, SUMMON_MANES, (PM_ALLOW_GROUP | PM_FORCE_PET)))
144144 {
145145 msg_print(_("古代の死霊は現れなかった。", "No Manes arrive."));
146146 }
--- a/src/realm-nature.c
+++ b/src/realm-nature.c
@@ -298,7 +298,7 @@ concptr do_nature_spell(SPELL_IDX spell, BIT_FLAGS mode)
298298 {
299299 if (cast)
300300 {
301- if (!(summon_specific(-1, p_ptr->y, p_ptr->x, plev, SUMMON_ANIMAL_RANGER, (PM_ALLOW_GROUP | PM_FORCE_PET), '\0')))
301+ if (!(summon_specific(-1, p_ptr->y, p_ptr->x, plev, SUMMON_ANIMAL_RANGER, (PM_ALLOW_GROUP | PM_FORCE_PET))))
302302 {
303303 msg_print(_("動物は現れなかった。", "No animals arrive."));
304304 }
--- a/src/spells-summon.c
+++ b/src/spells-summon.c
@@ -55,7 +55,7 @@ bool trump_summoning(int num, bool pet, POSITION y, POSITION x, DEPTH lev, int t
5555
5656 for (i = 0; i < num; i++)
5757 {
58- if (summon_specific(who, y, x, lev, type, mode, '\0'))
58+ if (summon_specific(who, y, x, lev, type, mode))
5959 success = TRUE;
6060 }
6161
@@ -77,7 +77,7 @@ bool cast_summon_demon(int power)
7777 else flg |= PM_NO_PET;
7878 if (!(pet && (p_ptr->lev < 50))) flg |= PM_ALLOW_GROUP;
7979
80- if (summon_specific((pet ? -1 : 0), p_ptr->y, p_ptr->x, power, SUMMON_DEMON, flg, '\0'))
80+ if (summon_specific((pet ? -1 : 0), p_ptr->y, p_ptr->x, power, SUMMON_DEMON, flg))
8181 {
8282 msg_print(_("硫黄の悪臭が充満した。", "The area fills with a stench of sulphur and brimstone."));
8383 if (pet)
@@ -105,7 +105,7 @@ bool cast_summon_undead(player_type *creature_ptr, int power)
105105 if (pet) mode |= PM_FORCE_PET;
106106 else mode |= (PM_ALLOW_UNIQUE | PM_NO_PET);
107107
108- if (summon_specific((pet ? -1 : 0), creature_ptr->y, creature_ptr->x, power, type, mode, '\0'))
108+ if (summon_specific((pet ? -1 : 0), creature_ptr->y, creature_ptr->x, power, type, mode))
109109 {
110110 msg_print(_("冷たい風があなたの周りに吹き始めた。それは腐敗臭を運んでいる...",
111111 "Cold winds begin to blow around you, carrying with them the stench of decay..."));
@@ -127,7 +127,7 @@ bool cast_summon_hound(player_type *creature_ptr, int power)
127127 if (pet) mode |= PM_FORCE_PET;
128128 else mode |= PM_NO_PET;
129129
130- if (summon_specific((pet ? -1 : 0), creature_ptr->y, creature_ptr->x, power, SUMMON_HOUND, mode, '\0'))
130+ if (summon_specific((pet ? -1 : 0), creature_ptr->y, creature_ptr->x, power, SUMMON_HOUND, mode))
131131 {
132132 if (pet)
133133 msg_print(_("ハウンドがあなたの下僕として出現した。", "A group of hounds appear as your servant."));
@@ -146,7 +146,7 @@ bool cast_summon_elemental(player_type *creature_ptr, int power)
146146 if (pet) mode |= PM_FORCE_PET;
147147 else mode |= PM_NO_PET;
148148
149- if (summon_specific((pet ? -1 : 0), creature_ptr->y, creature_ptr->x, power, SUMMON_ELEMENTAL, mode, '\0'))
149+ if (summon_specific((pet ? -1 : 0), creature_ptr->y, creature_ptr->x, power, SUMMON_ELEMENTAL, mode))
150150 {
151151 msg_print(_("エレメンタルが現れた...", "An elemental materializes..."));
152152 if (pet)
@@ -213,7 +213,7 @@ bool cast_summon_greater_demon(void)
213213
214214 summon_lev = plev * 2 / 3 + r_info[o_ptr->pval].level;
215215
216- if (summon_specific(-1, p_ptr->y, p_ptr->x, summon_lev, SUMMON_HI_DEMON, (PM_ALLOW_GROUP | PM_FORCE_PET), '\0'))
216+ if (summon_specific(-1, p_ptr->y, p_ptr->x, summon_lev, SUMMON_HI_DEMON, (PM_ALLOW_GROUP | PM_FORCE_PET)))
217217 {
218218 msg_print(_("硫黄の悪臭が充満した。", "The area fills with a stench of sulphur and brimstone."));
219219 msg_print(_("「ご用でございますか、ご主人様」", "'What is thy bidding... Master?'"));
@@ -253,110 +253,8 @@ bool cast_summon_greater_demon(void)
253253 bool summon_kin_player(DEPTH level, POSITION y, POSITION x, BIT_FLAGS mode)
254254 {
255255 bool pet = (bool)(mode & PM_FORCE_PET);
256- SYMBOL_CODE symbol = '\0';
257256 if (!pet) mode |= PM_NO_PET;
258-
259- switch (p_ptr->mimic_form)
260- {
261- case MIMIC_NONE:
262- switch (p_ptr->prace)
263- {
264- case RACE_HUMAN:
265- case RACE_AMBERITE:
266- case RACE_BARBARIAN:
267- case RACE_BEASTMAN:
268- case RACE_DUNADAN:
269- symbol = 'p';
270- break;
271- case RACE_HALF_ELF:
272- case RACE_ELF:
273- case RACE_HOBBIT:
274- case RACE_GNOME:
275- case RACE_DWARF:
276- case RACE_HIGH_ELF:
277- case RACE_NIBELUNG:
278- case RACE_DARK_ELF:
279- case RACE_MIND_FLAYER:
280- case RACE_KUTAR:
281- case RACE_S_FAIRY:
282- symbol = 'h';
283- break;
284- case RACE_HALF_ORC:
285- symbol = 'o';
286- break;
287- case RACE_HALF_TROLL:
288- symbol = 'T';
289- break;
290- case RACE_HALF_OGRE:
291- symbol = 'O';
292- break;
293- case RACE_HALF_GIANT:
294- case RACE_HALF_TITAN:
295- case RACE_CYCLOPS:
296- symbol = 'P';
297- break;
298- case RACE_YEEK:
299- symbol = 'y';
300- break;
301- case RACE_KLACKON:
302- symbol = 'K';
303- break;
304- case RACE_KOBOLD:
305- symbol = 'k';
306- break;
307- case RACE_IMP:
308- if (one_in_(13)) symbol = 'U';
309- else symbol = 'u';
310- break;
311- case RACE_DRACONIAN:
312- symbol = 'd';
313- break;
314- case RACE_GOLEM:
315- case RACE_ANDROID:
316- symbol = 'g';
317- break;
318- case RACE_SKELETON:
319- if (one_in_(13)) symbol = 'L';
320- else symbol = 's';
321- break;
322- case RACE_ZOMBIE:
323- symbol = 'z';
324- break;
325- case RACE_VAMPIRE:
326- symbol = 'V';
327- break;
328- case RACE_SPECTRE:
329- symbol = 'G';
330- break;
331- case RACE_SPRITE:
332- symbol = 'I';
333- break;
334- case RACE_ENT:
335- symbol = '#';
336- break;
337- case RACE_ANGEL:
338- symbol = 'A';
339- break;
340- case RACE_DEMON:
341- symbol = 'U';
342- break;
343- default:
344- symbol = 'p';
345- break;
346- }
347- break;
348- case MIMIC_DEMON:
349- if (one_in_(13)) symbol = 'U';
350- else symbol = 'u';
351- break;
352- case MIMIC_DEMON_LORD:
353- symbol = 'U';
354- break;
355- case MIMIC_VAMPIRE:
356- symbol = 'V';
357- break;
358- }
359- return summon_specific((pet ? -1 : 0), y, x, level, SUMMON_KIN, mode, symbol);
257+ return summon_specific((pet ? -1 : 0), y, x, level, SUMMON_KIN, mode);
360258 }
361259
362260 /*!
@@ -384,7 +282,7 @@ int summon_cyber(MONSTER_IDX who, POSITION y, POSITION x)
384282
385283 for (i = 0; i < max_cyber; i++)
386284 {
387- count += summon_specific(who, y, x, 100, SUMMON_CYBER, mode, '\0');
285+ count += summon_specific(who, y, x, 100, SUMMON_CYBER, mode);
388286 }
389287
390288 return count;
--- a/src/spells-summon.h
+++ b/src/spells-summon.h
@@ -53,7 +53,7 @@
5353 #define SUMMON_ARMAGE_GOOD 66 /*!< 召喚タイプ: ハルマゲドン・トラップ用天使陣営 */
5454 #define SUMMON_ARMAGE_EVIL 67 /*!< 召喚タイプ: ハルマゲドン・トラップ用悪魔陣営 */
5555
56-extern bool summon_specific(MONSTER_IDX who, POSITION y1, POSITION x1, DEPTH lev, int type, BIT_FLAGS mode, SYMBOL_CODE symbol);
56+extern bool summon_specific(MONSTER_IDX who, POSITION y1, POSITION x1, DEPTH lev, int type, BIT_FLAGS mode);
5757 extern bool summon_named_creature(MONSTER_IDX who, POSITION oy, POSITION ox, MONRACE_IDX r_idx, BIT_FLAGS mode);
5858
5959 extern bool trump_summoning(int num, bool pet, POSITION y, POSITION x, DEPTH lev, int type, BIT_FLAGS mode);
--- a/src/spells2.c
+++ b/src/spells2.c
@@ -3333,7 +3333,7 @@ bool activate_ty_curse(bool stop_ty, int *count)
33333333 (*count) += activate_hi_summon(p_ptr->y, p_ptr->x, FALSE);
33343334 if (!one_in_(6)) break;
33353335 case 7: case 8: case 9: case 18:
3336- (*count) += summon_specific(0, p_ptr->y, p_ptr->x, current_floor_ptr->dun_level, 0, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE | PM_NO_PET), '\0');
3336+ (*count) += summon_specific(0, p_ptr->y, p_ptr->x, current_floor_ptr->dun_level, 0, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE | PM_NO_PET));
33373337 if (!one_in_(6)) break;
33383338 case 10: case 11: case 12:
33393339 msg_print(_("経験値が体から吸い取られた気がする!", "You feel your experience draining away..."));
@@ -3427,51 +3427,51 @@ int activate_hi_summon(POSITION y, POSITION x, bool can_pet)
34273427 switch (randint1(25) + (current_floor_ptr->dun_level / 20))
34283428 {
34293429 case 1: case 2:
3430- count += summon_specific((pet ? -1 : 0), y, x, summon_lev, SUMMON_ANT, mode, '\0');
3430+ count += summon_specific((pet ? -1 : 0), y, x, summon_lev, SUMMON_ANT, mode);
34313431 break;
34323432 case 3: case 4:
3433- count += summon_specific((pet ? -1 : 0), y, x, summon_lev, SUMMON_SPIDER, mode, '\0');
3433+ count += summon_specific((pet ? -1 : 0), y, x, summon_lev, SUMMON_SPIDER, mode);
34343434 break;
34353435 case 5: case 6:
3436- count += summon_specific((pet ? -1 : 0), y, x, summon_lev, SUMMON_HOUND, mode, '\0');
3436+ count += summon_specific((pet ? -1 : 0), y, x, summon_lev, SUMMON_HOUND, mode);
34373437 break;
34383438 case 7: case 8:
3439- count += summon_specific((pet ? -1 : 0), y, x, summon_lev, SUMMON_HYDRA, mode, '\0');
3439+ count += summon_specific((pet ? -1 : 0), y, x, summon_lev, SUMMON_HYDRA, mode);
34403440 break;
34413441 case 9: case 10:
3442- count += summon_specific((pet ? -1 : 0), y, x, summon_lev, SUMMON_ANGEL, mode, '\0');
3442+ count += summon_specific((pet ? -1 : 0), y, x, summon_lev, SUMMON_ANGEL, mode);
34433443 break;
34443444 case 11: case 12:
3445- count += summon_specific((pet ? -1 : 0), y, x, summon_lev, SUMMON_UNDEAD, mode, '\0');
3445+ count += summon_specific((pet ? -1 : 0), y, x, summon_lev, SUMMON_UNDEAD, mode);
34463446 break;
34473447 case 13: case 14:
3448- count += summon_specific((pet ? -1 : 0), y, x, summon_lev, SUMMON_DRAGON, mode, '\0');
3448+ count += summon_specific((pet ? -1 : 0), y, x, summon_lev, SUMMON_DRAGON, mode);
34493449 break;
34503450 case 15: case 16:
3451- count += summon_specific((pet ? -1 : 0), y, x, summon_lev, SUMMON_DEMON, mode, '\0');
3451+ count += summon_specific((pet ? -1 : 0), y, x, summon_lev, SUMMON_DEMON, mode);
34523452 break;
34533453 case 17:
34543454 if (can_pet) break;
3455- count += summon_specific((pet ? -1 : 0), y, x, summon_lev, SUMMON_AMBERITES, (mode | PM_ALLOW_UNIQUE), '\0');
3455+ count += summon_specific((pet ? -1 : 0), y, x, summon_lev, SUMMON_AMBERITES, (mode | PM_ALLOW_UNIQUE));
34563456 break;
34573457 case 18: case 19:
34583458 if (can_pet) break;
3459- count += summon_specific((pet ? -1 : 0), y, x, summon_lev, SUMMON_UNIQUE, (mode | PM_ALLOW_UNIQUE), '\0');
3459+ count += summon_specific((pet ? -1 : 0), y, x, summon_lev, SUMMON_UNIQUE, (mode | PM_ALLOW_UNIQUE));
34603460 break;
34613461 case 20: case 21:
34623462 if (!can_pet) mode |= PM_ALLOW_UNIQUE;
3463- count += summon_specific((pet ? -1 : 0), y, x, summon_lev, SUMMON_HI_UNDEAD, mode, '\0');
3463+ count += summon_specific((pet ? -1 : 0), y, x, summon_lev, SUMMON_HI_UNDEAD, mode);
34643464 break;
34653465 case 22: case 23:
34663466 if (!can_pet) mode |= PM_ALLOW_UNIQUE;
3467- count += summon_specific((pet ? -1 : 0), y, x, summon_lev, SUMMON_HI_DRAGON, mode, '\0');
3467+ count += summon_specific((pet ? -1 : 0), y, x, summon_lev, SUMMON_HI_DRAGON, mode);
34683468 break;
34693469 case 24:
3470- count += summon_specific((pet ? -1 : 0), y, x, 100, SUMMON_CYBER, mode, '\0');
3470+ count += summon_specific((pet ? -1 : 0), y, x, 100, SUMMON_CYBER, mode);
34713471 break;
34723472 default:
34733473 if (!can_pet) mode |= PM_ALLOW_UNIQUE;
3474- count += summon_specific((pet ? -1 : 0), y, x,pet ? summon_lev : (((summon_lev * 3) / 2) + 5), 0, mode, '\0');
3474+ count += summon_specific((pet ? -1 : 0), y, x,pet ? summon_lev : (((summon_lev * 3) / 2) + 5), 0, mode);
34753475 }
34763476 }
34773477
@@ -4008,7 +4008,7 @@ void wild_magic(int spell)
40084008 case 35:
40094009 while (counter++ < 8)
40104010 {
4011- (void)summon_specific(0, p_ptr->y, p_ptr->x, (current_floor_ptr->dun_level * 3) / 2, type, (PM_ALLOW_GROUP | PM_NO_PET), '\0');
4011+ (void)summon_specific(0, p_ptr->y, p_ptr->x, (current_floor_ptr->dun_level * 3) / 2, type, (PM_ALLOW_GROUP | PM_NO_PET));
40124012 }
40134013 break;
40144014 case 36:
@@ -4289,7 +4289,7 @@ void cast_invoke_spirits(DIRECTION dir)
42894289 msg_print(_("なんてこった!あなたの周りの地面から朽ちた人影が立ち上がってきた!",
42904290 "Oh no! Mouldering forms rise from the earth around you!"));
42914291
4292- (void)summon_specific(0, p_ptr->y, p_ptr->x, current_floor_ptr->dun_level, SUMMON_UNDEAD, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE | PM_NO_PET), '\0');
4292+ (void)summon_specific(0, p_ptr->y, p_ptr->x, current_floor_ptr->dun_level, SUMMON_UNDEAD, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE | PM_NO_PET));
42934293 chg_virtue(V_UNLIFE, 1);
42944294 }
42954295 else if (die < 14)
@@ -4449,7 +4449,7 @@ void cast_shuffle(void)
44494449 else if (die < 14)
44504450 {
44514451 msg_print(_("なんてこった!《悪魔》だ!", "Oh no! It's the Devil!"));
4452- summon_specific(0, p_ptr->y, p_ptr->x, current_floor_ptr->dun_level, SUMMON_DEMON, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE | PM_NO_PET), '\0');
4452+ summon_specific(0, p_ptr->y, p_ptr->x, current_floor_ptr->dun_level, SUMMON_DEMON, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE | PM_NO_PET));
44534453 }
44544454 else if (die < 18)
44554455 {
--- a/src/spells3.c
+++ b/src/spells3.c
@@ -3954,7 +3954,7 @@ void blood_curse_to_enemy(MONSTER_IDX m_idx)
39543954 if (pet) mode |= PM_FORCE_PET;
39553955 else mode |= (PM_NO_PET | PM_FORCE_FRIENDLY);
39563956
3957- count += summon_specific((pet ? -1 : 0), p_ptr->y, p_ptr->x, (pet ? p_ptr->lev * 2 / 3 + randint1(p_ptr->lev / 2) : current_floor_ptr->dun_level), 0, mode, '\0');
3957+ count += summon_specific((pet ? -1 : 0), p_ptr->y, p_ptr->x, (pet ? p_ptr->lev * 2 / 3 + randint1(p_ptr->lev / 2) : current_floor_ptr->dun_level), 0, mode);
39583958 if (!one_in_(6)) break;
39593959 }
39603960 case 23: case 24: case 25:
--- a/src/trap.c
+++ b/src/trap.c
@@ -452,7 +452,7 @@ void hit_trap(bool break_trap)
452452 num = 2 + randint1(3);
453453 for (i = 0; i < num; i++)
454454 {
455- (void)summon_specific(0, y, x, current_floor_ptr->dun_level, 0, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE | PM_NO_PET), '\0');
455+ (void)summon_specific(0, y, x, current_floor_ptr->dun_level, 0, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE | PM_NO_PET));
456456 }
457457
458458 if (current_floor_ptr->dun_level > randint1(100)) /* No nasty effect for low levels */
@@ -614,10 +614,10 @@ void hit_trap(bool break_trap)
614614 /* Require line of projection */
615615 if (!projectable(p_ptr->y, p_ptr->x, y1, x1)) continue;
616616
617- if (summon_specific(0, y1, x1, lev, SUMMON_ARMAGE_EVIL, (PM_NO_PET), '\0'))
617+ if (summon_specific(0, y1, x1, lev, SUMMON_ARMAGE_EVIL, (PM_NO_PET)))
618618 evil_idx = hack_m_idx_ii;
619619
620- if (summon_specific(0, y1, x1, lev, SUMMON_ARMAGE_GOOD, (PM_NO_PET), '\0'))
620+ if (summon_specific(0, y1, x1, lev, SUMMON_ARMAGE_GOOD, (PM_NO_PET)))
621621 {
622622 good_idx = hack_m_idx_ii;
623623 }
@@ -648,7 +648,7 @@ void hit_trap(bool break_trap)
648648 num = 1 + current_floor_ptr->dun_level / 20;
649649 for (i = 0; i < num; i++)
650650 {
651- (void)summon_specific(0, y, x, current_floor_ptr->dun_level, SUMMON_PIRANHAS, (PM_ALLOW_GROUP | PM_NO_PET), '\0');
651+ (void)summon_specific(0, y, x, current_floor_ptr->dun_level, SUMMON_PIRANHAS, (PM_ALLOW_GROUP | PM_NO_PET));
652652 }
653653 break;
654654 }
--- a/src/variable.c
+++ b/src/variable.c
@@ -132,7 +132,6 @@ MONSTER_IDX hack_m_idx = 0; /* Hack -- see "process_monsters()" */
132132 MONSTER_IDX hack_m_idx_ii = 0;
133133
134134 bool multi_rew = FALSE;
135-char summon_kin_type; /* Hack, by Julian Lighton: summon 'relatives' */
136135
137136 int total_friends = 0;
138137 int leaving_quest = 0;
--- a/src/wizard2.c
+++ b/src/wizard2.c
@@ -1425,7 +1425,7 @@ static void do_cmd_wiz_summon(int num)
14251425 int i;
14261426 for (i = 0; i < num; i++)
14271427 {
1428- (void)summon_specific(0, p_ptr->y, p_ptr->x, current_floor_ptr->dun_level, 0, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE), '\0');
1428+ (void)summon_specific(0, p_ptr->y, p_ptr->x, current_floor_ptr->dun_level, 0, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE));
14291429 }
14301430 }
14311431
Show on old repository browser