if (randint0(100) < j)
{
msg_print(_("鍵をはずした。", "You have picked the lock."));
- gain_exp(1);
+ gain_exp(p_ptr, 1);
flag = TRUE;
}
sound(SOUND_OPENDOOR);
/* Experience */
- gain_exp(1);
+ gain_exp(p_ptr, 1);
}
/* Failure */
sound(SOUND_OPENDOOR);
/* Experience */
- gain_exp(1);
+ gain_exp(p_ptr, 1);
}
/* Failure */
else if (randint0(100) < j)
{
msg_print(_("箱に仕掛けられていたトラップを解除した。", "You have disarmed the chest."));
- gain_exp(o_ptr->pval);
+ gain_exp(p_ptr, o_ptr->pval);
o_ptr->pval = (0 - o_ptr->pval);
}
msg_format(_("%sを解除した。", "You have disarmed the %s."), name);
/* Reward */
- gain_exp(power);
+ gain_exp(p_ptr, power);
/* Remove the trap */
cave_alter_feat(y, x, FF_DISARM);
if (ident && !object_is_aware(o_ptr))
{
object_aware(o_ptr);
- gain_exp((lev + (p_ptr->lev >> 1)) / p_ptr->lev);
+ gain_exp(p_ptr, (lev + (p_ptr->lev >> 1)) / p_ptr->lev);
}
p_ptr->window |= (PW_INVEN | PW_EQUIP | PW_PLAYER);
if (tester_exp<1) tester_exp = 1;
msg_print(_("更に経験を積んだような気がする。", "You feel more experienced."));
- gain_exp(tester_exp * amt);
+ gain_exp(p_ptr, tester_exp * amt);
}
if (item_tester_high_level_book(q_ptr) && q_ptr->tval == TV_LIFE_BOOK)
{
EXP ee = (p_ptr->exp / 2) + 10;
if (ee > 100000L) ee = 100000L;
msg_print(_("更に経験を積んだような気がする。", "You feel more experienced."));
- gain_exp(ee);
+ gain_exp(p_ptr, ee);
ident = TRUE;
}
break;
if (ident && !object_is_aware(q_ptr))
{
object_aware(q_ptr);
- gain_exp((lev + (p_ptr->lev >> 1)) / p_ptr->lev);
+ gain_exp(p_ptr, (lev + (p_ptr->lev >> 1)) / p_ptr->lev);
}
p_ptr->window |= (PW_INVEN | PW_EQUIP | PW_PLAYER);
if (ident && !object_is_aware(o_ptr))
{
object_aware(o_ptr);
- gain_exp((lev + (p_ptr->lev >> 1)) / p_ptr->lev);
+ gain_exp(p_ptr, (lev + (p_ptr->lev >> 1)) / p_ptr->lev);
}
p_ptr->window |= (PW_INVEN | PW_EQUIP | PW_PLAYER);
}
/* Gain experience */
- gain_exp(e * s_ptr->slevel);
+ gain_exp(p_ptr, e * s_ptr->slevel);
/* Redraw object recall */
p_ptr->window |= (PW_OBJECT);
if (ident && !object_is_aware(o_ptr))
{
object_aware(o_ptr);
- gain_exp((lev + (p_ptr->lev >> 1)) / p_ptr->lev);
+ gain_exp(p_ptr, (lev + (p_ptr->lev >> 1)) / p_ptr->lev);
}
p_ptr->window |= (PW_INVEN | PW_EQUIP | PW_PLAYER);
if (ident && !object_is_aware(o_ptr))
{
object_aware(o_ptr);
- gain_exp((lev + (p_ptr->lev >> 1)) / p_ptr->lev);
+ gain_exp(p_ptr, (lev + (p_ptr->lev >> 1)) / p_ptr->lev);
}
p_ptr->window |= (PW_INVEN | PW_EQUIP | PW_PLAYER);
if (ident && !object_is_aware(o_ptr))
{
object_aware(o_ptr);
- gain_exp((lev + (p_ptr->lev >> 1)) / p_ptr->lev);
+ gain_exp(p_ptr, (lev + (p_ptr->lev >> 1)) / p_ptr->lev);
}
p_ptr->window |= (PW_INVEN | PW_EQUIP | PW_PLAYER);
{
p_ptr->magic_num2[monspell] = 1;
msg_format(_("%sを学習した!", "You have learned %s!"), monster_powers[monspell].name);
- gain_exp(monster_powers[monspell].level * monster_powers[monspell].smana);
+ gain_exp(p_ptr, monster_powers[monspell].level * monster_powers[monspell].smana);
sound(SOUND_STUDY);
if (ee > 100000L) ee = 100000L;
msg_print(_("更に経験を積んだような気がする。", "You feel more experienced."));
- gain_exp(ee);
+ gain_exp(p_ptr, ee);
reward = _("経験値を得た", "experience");
}
break;
/*
* Gain experience
*/
-void gain_exp(s32b amount)
+void gain_exp(player_type *creature_ptr, s32b amount)
{
gain_exp_64(amount, 0L);
}
extern bool restore_level(player_type *creature_ptr);
extern bool lose_all_info(player_type *creature_ptr);
extern void gain_exp_64(s32b amount, u32b amount_frac);
-extern void gain_exp(s32b amount);
+extern void gain_exp(player_type *creature_ptr, s32b amount);
extern void calc_android_exp(player_type *creature_ptr);
extern void lose_exp(player_type *creature_ptr, s32b amount);
extern bool drain_exp(player_type *creature_ptr, s32b drain, s32b slip, int hold_exp_prob);
s32b ee = (p_ptr->exp / 25) + 1;
if (ee > 5000) ee = 5000;
msg_print(_("更に経験を積んだような気がする。", "You feel more experienced."));
- gain_exp(ee);
+ gain_exp(p_ptr, ee);
}
}
}
/* Increase Experience */
case 'x':
- gain_exp(command_arg ? command_arg : (p_ptr->exp + 1));
+ gain_exp(p_ptr, command_arg ? command_arg : (p_ptr->exp + 1));
break;
/* Zap Monsters (Genocide) */