(void)set_stun(p_ptr, p_ptr->stun + 10 +
randint0(100));
}
- else if (one_in_(3)) apply_disenchant(0);
+ else if (one_in_(3)) apply_disenchant(p_ptr, 0);
else if (one_in_(2))
{
(void)do_dec_stat(p_ptr, A_STR);
if (!target_ptr->resist_disen && !CHECK_MULTISHADOW(target_ptr))
{
/* Apply disenchantment */
- if (apply_disenchant(0))
+ if (apply_disenchant(target_ptr, 0))
{
/* Hack -- Update AC */
update_creature(target_ptr);
extern bool recall_player(player_type *creature_ptr, TIME_EFFECT turns);
extern bool free_level_recall(player_type *creature_ptr);
extern bool reset_recall(void);
-extern bool apply_disenchant(BIT_FLAGS mode);
+extern bool apply_disenchant(player_type *target_ptr, BIT_FLAGS mode);
extern void call_the_(void);
extern void fetch(player_type *caster_ptr, DIRECTION dir, WEIGHT wgt, bool require_los);
extern void alter_reality(void);
}
else if (!CHECK_MULTISHADOW(target_ptr))
{
- (void)apply_disenchant(0);
+ (void)apply_disenchant(target_ptr, 0);
}
get_damage = take_hit(target_ptr, DAMAGE_ATTACK, dam, killer, monspell);
break;
* @return 劣化処理に関するメッセージが発せられた場合はTRUEを返す /
* Return "TRUE" if the player notices anything
*/
-bool apply_disenchant(BIT_FLAGS mode)
+bool apply_disenchant(player_type *target_ptr, BIT_FLAGS mode)
{
- int t = 0;
+ int t = 0;
object_type *o_ptr;
GAME_TEXT o_name[MAX_NLEN];
int to_h, to_d, to_a, pval;
case 8: t = INVEN_FEET; break;
}
- o_ptr = &p_ptr->inventory_list[t];
+ o_ptr = &target_ptr->inventory_list[t];
/* No item, nothing happens */
if (!o_ptr->k_idx) return (FALSE);
((o_ptr->number != 1) ? "were" : "was"));
#endif
- chg_virtue(p_ptr, V_HARMONY, 1);
- chg_virtue(p_ptr, V_ENCHANT, -2);
- p_ptr->update |= (PU_BONUS);
- p_ptr->window |= (PW_EQUIP | PW_PLAYER);
+ chg_virtue(target_ptr, V_HARMONY, 1);
+ chg_virtue(target_ptr, V_ENCHANT, -2);
+ target_ptr->update |= (PU_BONUS);
+ target_ptr->window |= (PW_EQUIP | PW_PLAYER);
- calc_android_exp(p_ptr);
+ calc_android_exp(target_ptr);
}
return (TRUE);