o_ptr->discount = 99;
p_ptr->total_weight += o_ptr->weight;
- calc_android_exp();
+ calc_android_exp(p_ptr);
/* Decrease material object */
inven_item_increase(mater, -1);
/* Charge the money */
p_ptr->au -= (cost * o_ptr->number);
- if (item >= INVEN_RARM) calc_android_exp();
+ if (item >= INVEN_RARM) calc_android_exp(p_ptr);
/* Something happened */
return (TRUE);
if (!success)
msg_print(_("おっと、解放に失敗した。", "Oops. You failed to release your pet."));
}
- calc_android_exp();
+ calc_android_exp(p_ptr);
return;
}
if (o_ptr->name1 != ART_BLOOD) return FALSE;
msg_print(_("鎌が明るく輝いた...", "Your scythe glows brightly!"));
get_bloody_moon_flags(o_ptr);
- if (p_ptr->prace == RACE_ANDROID) calc_android_exp();
+ if (p_ptr->prace == RACE_ANDROID) calc_android_exp(p_ptr);
p_ptr->update |= (PU_BONUS | PU_HP);
break;
}
else if (equiped_item)
{
kamaenaoshi(item);
- calc_android_exp();
+ calc_android_exp(p_ptr);
}
if (do_drop)
handle_stuff();
- if (p_ptr->prace == RACE_ANDROID) calc_android_exp();
+ if (p_ptr->prace == RACE_ANDROID) calc_android_exp(p_ptr);
/* Redraw every window */
p_ptr->redraw |= (PR_EQUIPPY);
p_ptr->window |= (PW_INVEN | PW_EQUIP | PW_PLAYER);
- calc_android_exp();
+ calc_android_exp(p_ptr);
}
/*!
/* Take off the item */
(void)inven_takeoff(item, 255);
kamaenaoshi(item);
- calc_android_exp();
+ calc_android_exp(p_ptr);
p_ptr->redraw |= (PR_EQUIPPY);
}
if (item >= INVEN_RARM)
{
kamaenaoshi(item);
- calc_android_exp();
+ calc_android_exp(p_ptr);
}
p_ptr->redraw |= (PR_EQUIPPY);
if (q_ptr->to_a != 0 || q_ptr->to_d != 0 || q_ptr->to_h != 0)
chg_virtue(V_HARMONY, 1);
- if (item >= INVEN_RARM) calc_android_exp();
+ if (item >= INVEN_RARM) calc_android_exp(p_ptr);
}
/* Hack -- Enforce "delayed death" */
if (p_ptr->chp < 0) p_ptr->is_dead = TRUE;
- if (p_ptr->prace == RACE_ANDROID) calc_android_exp();
+ if (p_ptr->prace == RACE_ANDROID) calc_android_exp(p_ptr);
if (new_game && ((p_ptr->pclass == CLASS_CAVALRY) || (p_ptr->pclass == CLASS_BEASTMASTER)))
{
p_ptr->update |= (PU_BONUS);
p_ptr->window |= (PW_EQUIP | PW_PLAYER);
- calc_android_exp();
+ calc_android_exp(p_ptr);
/* Item was damaged */
return (TRUE);
}
-void calc_android_exp(void)
+void calc_android_exp(player_type *creature_ptr)
{
int i;
u32b total_exp = 0;
- if (p_ptr->is_dead) return;
+ if (creature_ptr->is_dead) return;
- if (p_ptr->prace != RACE_ANDROID) return;
+ if (creature_ptr->prace != RACE_ANDROID) return;
for (i = INVEN_RARM; i < INVEN_TOTAL; i++)
{
- object_type *o_ptr = &p_ptr->inventory_list[i];
+ object_type *o_ptr = &creature_ptr->inventory_list[i];
object_type forge;
object_type *q_ptr = &forge;
u32b value, exp;
value = object_value_real(q_ptr);
if (value <= 0) continue;
- if ((o_ptr->tval == TV_SOFT_ARMOR) && (o_ptr->sval == SV_ABUNAI_MIZUGI) && (p_ptr->pseikaku != SEIKAKU_SEXY)) value /= 32;
+ if ((o_ptr->tval == TV_SOFT_ARMOR) && (o_ptr->sval == SV_ABUNAI_MIZUGI) && (creature_ptr->pseikaku != SEIKAKU_SEXY)) value /= 32;
if (value > 5000000L) value = 5000000L;
if ((o_ptr->tval == TV_DRAG_ARMOR) || (o_ptr->tval == TV_CARD)) level /= 2;
else total_exp += exp / 16;
if (i == INVEN_BODY) total_exp += exp / 32;
}
- p_ptr->exp = p_ptr->max_exp = total_exp;
+ creature_ptr->exp = creature_ptr->max_exp = total_exp;
/* Check Experience */
check_experience();
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 calc_android_exp(void);
+extern void calc_android_exp(player_type *creature_ptr);
extern void lose_exp(s32b amount);
extern bool drain_exp(s32b drain, s32b slip, int hold_exp_prob);
extern void do_poly_self(void);
msg_format("%s %s %s now protected against corrosion.", ((item >= 0) ? "Your" : "The"), o_name, ((o_ptr->number > 1) ? "are" : "is"));
#endif
- calc_android_exp();
+ calc_android_exp(p_ptr);
return TRUE;
}
p_ptr->update |= (PU_BONUS);
p_ptr->window |= (PW_EQUIP | PW_PLAYER);
- calc_android_exp();
+ calc_android_exp(p_ptr);
return TRUE;
}
msg_print(_("失敗した。", "Failed."));
chg_virtue(V_ENCHANT, -2);
}
- calc_android_exp();
+ calc_android_exp(p_ptr);
return FALSE;
}
p_ptr->update |= (PU_BONUS | PU_COMBINE | PU_REORDER);
p_ptr->window |= (PW_INVEN | PW_EQUIP | PW_PLAYER);
- calc_android_exp();
+ calc_android_exp(p_ptr);
/* Success */
return (TRUE);
else
chg_virtue(V_ENCHANT, 1);
- calc_android_exp();
+ calc_android_exp(p_ptr);
/* Something happened */
return (TRUE);
msg_print(_("属性付加に失敗した。", "The Branding failed."));
chg_virtue(V_ENCHANT, -2);
}
- calc_android_exp();
+ calc_android_exp(p_ptr);
}
p_ptr->update |= (PU_BONUS);
p_ptr->window |= (PW_EQUIP | PW_PLAYER);
- calc_android_exp();
+ calc_android_exp(p_ptr);
}
return (TRUE);
chg_virtue(V_ENCHANT, 1);
}
- calc_android_exp();
+ calc_android_exp(p_ptr);
/* Something happened */
return (TRUE);
o_ptr->inscription = inscription;
if (item >= 0) p_ptr->total_weight += (o_ptr->weight - weight);
}
- calc_android_exp();
+ calc_android_exp(p_ptr);
/* Something happened */
return TRUE;
if ((choice == 0) && (item >= INVEN_RARM))
{
- calc_android_exp();
+ calc_android_exp(p_ptr);
kamaenaoshi(item);
}
}