-
-#include "angband.h"
+#include "angband.h"
#include "util.h"
+#include "main/sound-definitions-table.h"
-#include "spells.h"
+#include "spell/spells-type.h"
#include "spells-summon.h"
#include "floor.h"
#include "trap.h"
#include "player-class.h"
#include "player-effects.h"
#include "grid.h"
-#include "realm-song.h"
+#include "spell/spells2.h"
/*!
* @brief 箱からアイテムを引き出す /
object_type forge;
object_type *q_ptr;
- object_type *o_ptr = &owner_ptr->current_floor_ptr->o_list[o_idx];
-
+ floor_type *floor_ptr = owner_ptr->current_floor_ptr;
+ object_type *o_ptr = &floor_ptr->o_list[o_idx];
/* Small chests often hold "gold" */
small = (o_ptr->sval < SV_CHEST_MIN_LARGE);
number = 5;
small = FALSE;
mode |= AM_GREAT;
- owner_ptr->current_floor_ptr->object_level = o_ptr->xtra3;
+ floor_ptr->object_level = o_ptr->xtra3;
}
else
{
/* Determine the "value" of the items */
- owner_ptr->current_floor_ptr->object_level = ABS(o_ptr->pval) + 10;
+ floor_ptr->object_level = ABS(o_ptr->pval) + 10;
}
/* Zero pval means empty chest */
if (small && (randint0(100) < 25))
{
/* Make some gold */
- if (!make_gold(q_ptr)) continue;
+ if (!make_gold(floor_ptr, q_ptr)) continue;
}
/* Otherwise drop an item */
else
{
/* Make a good object */
- if (!make_object(q_ptr, mode)) continue;
+ if (!make_object(owner_ptr, q_ptr, mode)) continue;
}
/* If chest scatters its contents, pick any floor square. */
x = randint0(MAX_WID);
/* Must be an empty floor. */
- if (!cave_empty_bold(owner_ptr->current_floor_ptr, y, x)) continue;
+ if (!is_cave_empty_bold(owner_ptr, y, x)) continue;
/* Place the object there. */
- (void)drop_near(q_ptr, -1, y, x);
+ (void)drop_near(owner_ptr, q_ptr, -1, y, x);
/* Done. */
break;
}
}
/* Normally, drop object near the chest. */
- else (void)drop_near(q_ptr, -1, y, x);
+ else (void)drop_near(owner_ptr, q_ptr, -1, y, x);
}
/* Reset the object level */
- owner_ptr->current_floor_ptr->object_level = owner_ptr->current_floor_ptr->base_level;
+ floor_ptr->object_level = floor_ptr->base_level;
/* Empty */
o_ptr->pval = 0;
if (trap & (CHEST_POISON))
{
msg_print(_("突如吹き出した緑色のガスに包み込まれた!", "A puff of green gas surrounds you!"));
- if (!(target_ptr->resist_pois || IS_OPPOSE_POIS()))
+ if (!(target_ptr->resist_pois || is_oppose_pois(target_ptr)))
{
(void)set_poisoned(target_ptr, target_ptr->poisoned + 10 + randint1(20));
}
for (i = 0; i < num; i++)
{
if (randint1(100)<target_ptr->current_floor_ptr->dun_level)
- activate_hi_summon(target_ptr->y, target_ptr->x, FALSE);
+ activate_hi_summon(target_ptr, target_ptr->y, target_ptr->x, FALSE);
else
- (void)summon_specific(0, y, x, mon_level, 0, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE | PM_NO_PET));
+ (void)summon_specific(target_ptr, 0, y, x, mon_level, 0, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE | PM_NO_PET));
}
}
msg_print(_("宝を守るためにエレメンタルが現れた!", "Elemental beings appear to protect their treasures!"));
for (i = 0; i < randint1(3) + 5; i++)
{
- (void)summon_specific(0, y, x, mon_level, SUMMON_ELEMENTAL, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE | PM_NO_PET));
+ (void)summon_specific(target_ptr, 0, y, x, mon_level, SUMMON_ELEMENTAL, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE | PM_NO_PET));
}
}
msg_print(_("鳥の群れがあなたを取り巻いた!", "A storm of birds swirls around you!"));
for (i = 0; i < randint1(3) + 3; i++)
- (void)fire_meteor(-1, GF_FORCE, y, x, o_ptr->pval / 5, 7);
+ (void)fire_meteor(target_ptr, -1, GF_FORCE, y, x, o_ptr->pval / 5, 7);
for (i = 0; i < randint1(5) + o_ptr->pval / 5; i++)
{
- (void)summon_specific(0, y, x, mon_level, SUMMON_BIRD, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE | PM_NO_PET));
+ (void)summon_specific(target_ptr, 0, y, x, mon_level, SUMMON_BIRD, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE | PM_NO_PET));
}
}
msg_print(_("炎と硫黄の雲の中に悪魔が姿を現した!", "Demons materialize in clouds of fire and brimstone!"));
for (i = 0; i < randint1(3) + 2; i++)
{
- (void)fire_meteor(-1, GF_FIRE, y, x, 10, 5);
- (void)summon_specific(0, y, x, mon_level, SUMMON_DEMON, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE | PM_NO_PET));
+ (void)fire_meteor(target_ptr, -1, GF_FIRE, y, x, 10, 5);
+ (void)summon_specific(target_ptr, 0, y, x, mon_level, SUMMON_DEMON, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE | PM_NO_PET));
}
}
msg_print(_("暗闇にドラゴンの影がぼんやりと現れた!", "Draconic forms loom out of the darkness!"));
for (i = 0; i < randint1(3) + 2; i++)
{
- (void)summon_specific(0, y, x, mon_level, SUMMON_DRAGON, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE | PM_NO_PET));
+ (void)summon_specific(target_ptr, 0, y, x, mon_level, SUMMON_DRAGON, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE | PM_NO_PET));
}
}
msg_print(_("奇妙な姿の怪物が襲って来た!", "Creatures strange and twisted assault you!"));
for (i = 0; i < randint1(5) + 3; i++)
{
- (void)summon_specific(0, y, x, mon_level, SUMMON_HYBRID, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE | PM_NO_PET));
+ (void)summon_specific(target_ptr, 0, y, x, mon_level, SUMMON_HYBRID, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE | PM_NO_PET));
}
}
msg_print(_("渦巻が合体し、破裂した!", "Vortices coalesce and wreak destruction!"));
for (i = 0; i < randint1(3) + 2; i++)
{
- (void)summon_specific(0, y, x, mon_level, SUMMON_VORTEX, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE | PM_NO_PET));
+ (void)summon_specific(target_ptr, 0, y, x, mon_level, SUMMON_VORTEX, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE | PM_NO_PET));
}
}
}
(void)do_dec_stat(target_ptr, A_WIS);
(void)do_dec_stat(target_ptr, A_CHR);
}
- else (void)fire_meteor(-1, GF_NETHER, y, x, 150, 1);
+ else (void)fire_meteor(target_ptr, -1, GF_NETHER, y, x, 150, 1);
}
}
}