object_type forge;
object_type *q_ptr;
q_ptr = &forge;
+
/**********Create shots*********/
if (ext == 1)
{
msg_print(_("そこには岩石がない。", "You need pile of rubble."));
return FALSE;
}
- else if (!cave_have_flag_grid(g_ptr, FF_CAN_DIG) || !cave_have_flag_grid(g_ptr, FF_HURT_ROCK))
+
+ if (!cave_have_flag_grid(g_ptr, FF_CAN_DIG) || !cave_have_flag_grid(g_ptr, FF_HURT_ROCK))
{
msg_print(_("硬すぎて崩せなかった。", "You failed to make ammo."));
+ return TRUE;
}
- else
- {
- s16b slot;
- q_ptr = &forge;
+
+ s16b slot;
+ q_ptr = &forge;
- /* Hack -- Give the player some small firestones */
- object_prep(q_ptr, lookup_kind(TV_SHOT, (OBJECT_SUBTYPE_VALUE)m_bonus(1, creature_ptr->lev) + 1));
- q_ptr->number = (byte)rand_range(15, 30);
- object_aware(q_ptr);
- object_known(q_ptr);
- apply_magic(q_ptr, creature_ptr->lev, AM_NO_FIXED_ART);
- q_ptr->discount = 99;
+ /* Hack -- Give the player some small firestones */
+ object_prep(q_ptr, lookup_kind(TV_SHOT, (OBJECT_SUBTYPE_VALUE)m_bonus(1, creature_ptr->lev) + 1));
+ q_ptr->number = (byte)rand_range(15, 30);
+ object_aware(creature_ptr, q_ptr);
+ object_known(q_ptr);
+ apply_magic(creature_ptr, q_ptr, creature_ptr->lev, AM_NO_FIXED_ART);
+ q_ptr->discount = 99;
- slot = inven_carry(q_ptr);
+ slot = inven_carry(creature_ptr, q_ptr);
- object_desc(o_name, q_ptr, 0);
- msg_format(_("%sを作った。", "You make some ammo."), o_name);
+ object_desc(o_name, q_ptr, 0);
+ msg_format(_("%sを作った。", "You make some ammo."), o_name);
- /* Auto-inscription */
- if (slot >= 0) autopick_alter_item(slot, FALSE);
+ /* Auto-inscription */
+ if (slot >= 0) autopick_alter_item(slot, FALSE);
- /* Destroy the wall */
- cave_alter_feat(y, x, FF_HURT_ROCK);
+ /* Destroy the wall */
+ cave_alter_feat(creature_ptr, y, x, FF_HURT_ROCK);
- creature_ptr->update |= (PU_FLOW);
- }
+ creature_ptr->update |= (PU_FLOW);
+ return TRUE;
}
+
/**********Create arrows*********/
- else if (ext == 2)
+ if (ext == 2)
{
OBJECT_IDX item;
concptr q, s;
/* Hack -- Give the player some small firestones */
object_prep(q_ptr, lookup_kind(TV_ARROW, (OBJECT_SUBTYPE_VALUE)m_bonus(1, creature_ptr->lev) + 1));
q_ptr->number = (byte)rand_range(5, 10);
- object_aware(q_ptr);
+ object_aware(creature_ptr, q_ptr);
object_known(q_ptr);
- apply_magic(q_ptr, creature_ptr->lev, AM_NO_FIXED_ART);
+ apply_magic(creature_ptr, q_ptr, creature_ptr->lev, AM_NO_FIXED_ART);
q_ptr->discount = 99;
object_desc(o_name, q_ptr, 0);
msg_format(_("%sを作った。", "You make some ammo."), o_name);
- vary_item(item, -1);
- slot = inven_carry(q_ptr);
+ vary_item(creature_ptr, item, -1);
+ slot = inven_carry(creature_ptr, q_ptr);
/* Auto-inscription */
if (slot >= 0) autopick_alter_item(slot, FALSE);
+ return TRUE;
}
+
/**********Create bolts*********/
- else if (ext == 3)
+ if (ext == 3)
{
OBJECT_IDX item;
concptr q, s;
/* Hack -- Give the player some small firestones */
object_prep(q_ptr, lookup_kind(TV_BOLT, (OBJECT_SUBTYPE_VALUE)m_bonus(1, creature_ptr->lev) + 1));
q_ptr->number = (byte)rand_range(4, 8);
- object_aware(q_ptr);
+ object_aware(creature_ptr, q_ptr);
object_known(q_ptr);
- apply_magic(q_ptr, creature_ptr->lev, AM_NO_FIXED_ART);
+ apply_magic(creature_ptr, q_ptr, creature_ptr->lev, AM_NO_FIXED_ART);
q_ptr->discount = 99;
object_desc(o_name, q_ptr, 0);
msg_format(_("%sを作った。", "You make some ammo."), o_name);
- vary_item(item, -1);
+ vary_item(creature_ptr, item, -1);
- slot = inven_carry(q_ptr);
+ slot = inven_carry(creature_ptr, q_ptr);
/* Auto-inscription */
if (slot >= 0) autopick_alter_item(slot, FALSE);
}
+
return TRUE;
}
object_desc(o_name, o_ptr, 0);
msg_format(_("%sの魔力を取り込んだ。", "You absorb magic of %s."), o_name);
- vary_item(item, -999);
+ vary_item(user_ptr, item, -999);
take_turn(user_ptr, 100);
return TRUE;
}
/*!
* @brief 誰得ドロップを行う。
+ * @param creature_ptr プレーヤーへの参照ポインタ
* @param y1 配置したいフロアのY座標
* @param x1 配置したいフロアのX座標
* @param num 誰得の処理回数
* @param known TRUEならばオブジェクトが必ず*鑑定*済になる
* @return なし
*/
-void amusement(POSITION y1, POSITION x1, int num, bool known)
+void amusement(player_type *creature_ptr, POSITION y1, POSITION x1, int num, bool known)
{
int t = 0;
for (int n = 0; amuse_info[n].tval != 0; n++)
/* Make an object (if possible) */
object_prep(i_ptr, k_idx);
if (a_idx) i_ptr->name1 = a_idx;
- apply_magic(i_ptr, 1, AM_NO_FIXED_ART);
+ apply_magic(creature_ptr, i_ptr, 1, AM_NO_FIXED_ART);
if (amuse_info[i].flag & AMS_NO_UNIQUE)
{
if (known)
{
- object_aware(i_ptr);
+ object_aware(creature_ptr, i_ptr);
object_known(i_ptr);
}
/* Paranoia - reroll if nothing */
if (!(i_ptr->k_idx)) continue;
- (void)drop_near(i_ptr, -1, y1, x1);
+ (void)drop_near(creature_ptr, i_ptr, -1, y1, x1);
num--;
}
/*!
* @brief 獲得ドロップを行う。
* Scatter some "great" objects near the player
+ * @param caster_ptr プレーヤーへの参照ポインタ
* @param y1 配置したいフロアのY座標
* @param x1 配置したいフロアのX座標
* @param num 獲得の処理回数
* @param known TRUEならばオブジェクトが必ず*鑑定*済になる
* @return なし
*/
-void acquirement(POSITION y1, POSITION x1, int num, bool great, bool special, bool known)
+void acquirement(player_type *caster_ptr, POSITION y1, POSITION x1, int num, bool great, bool special, bool known)
{
object_type *i_ptr;
object_type object_type_body;
object_wipe(i_ptr);
/* Make a good (or great) object (if possible) */
- if (!make_object(i_ptr, mode)) continue;
+ if (!make_object(caster_ptr, i_ptr, mode)) continue;
if (known)
{
- object_aware(i_ptr);
+ object_aware(caster_ptr, i_ptr);
object_known(i_ptr);
}
- (void)drop_near(i_ptr, -1, y1, x1);
+ (void)drop_near(caster_ptr, i_ptr, -1, y1, x1);
}
}
q_ptr->to_d = 3 + randint1(creature_ptr->current_floor_ptr->dun_level) % 10;
one_resistance(q_ptr);
q_ptr->name2 = EGO_CHAOTIC;
- (void)drop_near(q_ptr, -1, creature_ptr->y, creature_ptr->x);
+ (void)drop_near(creature_ptr, q_ptr, -1, creature_ptr->y, creature_ptr->x);
}
{
if (flush_failure) flush();
- msg_print(_("属性付加に失敗した。", "The Branding failed."));
+ msg_print(_("属性付加に失敗した。", "The branding failed."));
chg_virtue(caster_ptr, V_ENCHANT, -2);
calc_android_exp(caster_ptr);
return;