if (snipe_type == SP_FINAL)
{
msg_print(_("射撃の反動が体を襲った。", "A reactionary of shooting attacked you. "));
- (void)set_slow(p_ptr->slow + randint0(7) + 7, FALSE);
+ (void)set_slow(p_ptr, p_ptr->slow + randint0(7) + 7, FALSE);
(void)set_stun(p_ptr->stun + randint1(25));
}
}
break;
case SV_POTION_SLOWNESS:
- if (set_slow(randint1(25) + 15, FALSE)) ident = TRUE;
+ if (set_slow(p_ptr, randint1(25) + 15, FALSE)) ident = TRUE;
break;
case SV_POTION_SALT_WATER:
case SV_STAFF_SLOWNESS:
{
- if (set_slow(p_ptr->slow + randint1(30) + 15, FALSE)) ident = TRUE;
+ if (set_slow(p_ptr, p_ptr->slow + randint1(30) + 15, FALSE)) ident = TRUE;
break;
}
/* Slow */
if (p_ptr->slow)
{
- (void)set_slow(p_ptr->slow - dec_count, TRUE);
+ (void)set_slow(p_ptr, p_ptr->slow - dec_count, TRUE);
}
/* Protection from evil */
}
else
{
- set_slow(randint1(30) + 10, FALSE);
+ set_slow(p_ptr, randint1(30) + 10, FALSE);
}
}
else
if (p_ptr->slow > 0)
{
- set_slow(0, TRUE);
+ set_slow(p_ptr, 0, TRUE);
}
else
{
}
else
{
- if (set_slow((p_ptr->slow + 4 + randint0(rlev / 10)), FALSE))
+ if (set_slow(p_ptr, (p_ptr->slow + 4 + randint0(rlev / 10)), FALSE))
{
obvious = TRUE;
}
if (!resist && !saving_throw)
{
- (void)set_slow(p_ptr->slow + randint0(4) + 4, FALSE);
+ (void)set_slow(p_ptr, p_ptr->slow + randint0(4) + 4, FALSE);
}
learn_spell(MS_SLOW);
update_smart_learn(m_idx, DRS_FREE);
{
(void)set_fast(p_ptr, 0, TRUE);
(void)set_lightspeed(0, TRUE);
- (void)set_slow(0, TRUE);
+ (void)set_slow(p_ptr, 0, TRUE);
(void)set_shield(0, TRUE);
(void)set_blessed(0, TRUE);
(void)set_tsuyoshi(0, TRUE);
* @param do_dec 現在の継続時間より長い値のみ上書きする
* @return ステータスに影響を及ぼす変化があった場合TRUEを返す。
*/
-bool set_slow(TIME_EFFECT v, bool do_dec)
+bool set_slow(player_type *creature_ptr, TIME_EFFECT v, bool do_dec)
{
bool notice = FALSE;
v = (v > 10000) ? 10000 : (v < 0) ? 0 : v;
- if (p_ptr->is_dead) return FALSE;
+ if (creature_ptr->is_dead) return FALSE;
/* Open */
if (v)
{
- if (p_ptr->slow && !do_dec)
+ if (creature_ptr->slow && !do_dec)
{
- if (p_ptr->slow > v) return FALSE;
+ if (creature_ptr->slow > v) return FALSE;
}
- else if (!p_ptr->slow)
+ else if (!creature_ptr->slow)
{
msg_print(_("体の動きが遅くなってしまった!", "You feel yourself moving slower!"));
notice = TRUE;
/* Shut */
else
{
- if (p_ptr->slow)
+ if (creature_ptr->slow)
{
msg_print(_("動きの遅さがなくなったようだ。", "You feel yourself speed up."));
notice = TRUE;
}
/* Use the value */
- p_ptr->slow = v;
+ creature_ptr->slow = v;
/* Nothing to notice */
if (!notice) return (FALSE);
if (disturb_state) disturb(FALSE, FALSE);
- p_ptr->update |= (PU_BONUS);
+ creature_ptr->update |= (PU_BONUS);
handle_stuff();
return (TRUE);
}
extern bool set_paralyzed(player_type *creature_ptr, TIME_EFFECT v);
extern bool set_image(player_type *creature_ptr, TIME_EFFECT v);
extern bool set_fast(player_type *creature_ptr, TIME_EFFECT v, bool do_dec);
-extern bool set_slow(TIME_EFFECT v, bool do_dec);
+extern bool set_slow(player_type *creature_ptr, TIME_EFFECT v, bool do_dec);
extern bool set_shield(TIME_EFFECT v, bool do_dec);
extern bool set_tsubureru(TIME_EFFECT v, bool do_dec);
extern bool set_magicdef(TIME_EFFECT v, bool do_dec);
case GF_INERTIAL:
{
if (fuzzy) msg_print(_("何か遅いもので攻撃された!", "You are hit by something slow!"));
- if (!CHECK_MULTISHADOW()) (void)set_slow(p_ptr->slow + randint0(4) + 4, FALSE);
+ if (!CHECK_MULTISHADOW()) (void)set_slow(p_ptr, p_ptr->slow + randint0(4) + 4, FALSE);
get_damage = take_hit(DAMAGE_ATTACK, dam, killer, monspell);
break;
}
{
teleport_player(5, TELEPORT_PASSIVE);
if (!p_ptr->levitation)
- (void)set_slow(p_ptr->slow + randint0(4) + 4, FALSE);
+ (void)set_slow(p_ptr, p_ptr->slow + randint0(4) + 4, FALSE);
if (!(p_ptr->resist_sound || p_ptr->levitation))
{
int plus_stun = (randint1((dam > 90) ? 35 : (dam / 3 + 5)));
case GF_OLD_SLOW:
{
if (fuzzy) msg_print(_("何か遅いもので攻撃された!", "You are hit by something slow!"));
- (void)set_slow(p_ptr->slow + randint0(4) + 4, FALSE);
+ (void)set_slow(p_ptr, p_ptr->slow + randint0(4) + 4, FALSE);
break;
}
{
(void)set_paralyzed(p_ptr, p_ptr->paralyzed + randint0(4) + 4);
}
- (void)set_slow(p_ptr->slow + randint0(4) + 4, FALSE);
+ (void)set_slow(p_ptr, p_ptr->slow + randint0(4) + 4, FALSE);
while (randint0(100 + rlev / 2) > (MAX(5, p_ptr->skill_sav)))
(void)do_dec_stat(p_ptr, A_INT);
{
if (hit_trap_dart())
{
- set_slow(p_ptr->slow + randint0(20) + 20, FALSE);
+ set_slow(p_ptr, p_ptr->slow + randint0(20) + 20, FALSE);
}
}