if ((o_ptr->tval == TV_CHEST) && o_ptr->pval) return FALSE;
if (leave_wanted)
- if (object_is_bounty(o_ptr)) return FALSE;
+ if (object_is_bounty(player_ptr, o_ptr)) return FALSE;
if (leave_corpse)
if (o_ptr->tval == TV_CORPSE) return FALSE;
if (!destroy) return;
disturb(player_ptr, FALSE, FALSE);
- if (!can_player_destroy_object(o_ptr))
+ if (!can_player_destroy_object(player_ptr, o_ptr))
{
GAME_TEXT o_name[MAX_NLEN];
object_desc(player_ptr, o_name, o_ptr, 0);
ADD_FLG(FLG_BOOSTED);
}
- if (object_is_bounty(o_ptr))
+ if (object_is_bounty(player_ptr, o_ptr))
{
REM_FLG(FLG_WORTHLESS);
ADD_FLG(FLG_WANTED);
if ((o_ptr->dd == k_ptr->dd) && (o_ptr->ds == k_ptr->ds))
return FALSE;
- if (!object_is_known(o_ptr) && object_is_quest_target(o_ptr))
+ if (!object_is_known(o_ptr) && object_is_quest_target(player_ptr, o_ptr))
{
return FALSE;
}
if (IS_FLG(FLG_COMMON) && object_is_rare(o_ptr))
return FALSE;
- if (IS_FLG(FLG_WANTED) && !object_is_bounty(o_ptr))
+ if (IS_FLG(FLG_WANTED) && !object_is_bounty(player_ptr, o_ptr))
return FALSE;
if (IS_FLG(FLG_UNIQUE) &&
take_turn(creature_ptr, 100);
/* Artifacts cannot be destroyed */
- if (!can_player_destroy_object(o_ptr))
+ if (!can_player_destroy_object(creature_ptr, o_ptr))
{
free_turn(creature_ptr);
case TV_DIGGING:
/* In Vault Quest, hide the dice of target weapon. */
- if (object_is_quest_target(o_ptr) && !known)
+ if (object_is_quest_target(player_ptr, o_ptr) && !known)
{
break;
}
* @param o_ptr 対象のオブジェクト構造体ポインタ
* @return オブジェクトが報酬対象になるならTRUEを返す
*/
-bool object_is_bounty(object_type *o_ptr)
+bool object_is_bounty(player_type *player_ptr, object_type *o_ptr)
{
int i;
return FALSE;
/* Today's wanted */
- if (p_ptr->today_mon > 0 && (streq(r_name + r_info[o_ptr->pval].name, r_name + r_info[today_mon].name)))
+ if (player_ptr->today_mon > 0 && (streq(r_name + r_info[o_ptr->pval].name, r_name + r_info[today_mon].name)))
return TRUE;
/* Tsuchinoko */
* @param o_ptr 破壊可能かを確認したいオブジェクトの構造体参照ポインタ
* @return オブジェクトが破壊可能ならばTRUEを返す
*/
-bool can_player_destroy_object(object_type *o_ptr)
+bool can_player_destroy_object(player_type *player_ptr, object_type *o_ptr)
{
/* Artifacts cannot be destroyed */
if (!object_is_artifact(o_ptr))
/* We have "felt" it (again) */
o_ptr->ident |= (IDENT_SENSE);
- p_ptr->update |= (PU_COMBINE);
- p_ptr->window |= (PW_INVEN | PW_EQUIP);
+ player_ptr->update |= (PU_COMBINE);
+ player_ptr->window |= (PW_INVEN | PW_EQUIP);
return FALSE;
}
* @param o_ptr 特性短縮表記を得たいオブジェクト構造体の参照ポインタ
* @return 現在クエスト達成目的のアイテムならばTRUEを返す。
*/
-bool object_is_quest_target(object_type *o_ptr)
+bool object_is_quest_target(player_type *player_ptr, object_type *o_ptr)
{
- if (p_ptr->current_floor_ptr->inside_quest) {
- ARTIFACT_IDX a_idx = quest[p_ptr->current_floor_ptr->inside_quest].k_idx;
+ if (player_ptr->current_floor_ptr->inside_quest) {
+ ARTIFACT_IDX a_idx = quest[player_ptr->current_floor_ptr->inside_quest].k_idx;
if (a_idx) {
artifact_type *a_ptr = &a_info[a_idx];
if (!(a_ptr->gen_flags & TRG_INSTA_ART)) {
bool item_tester_refill_lantern(player_type *player_ptr, object_type *o_ptr);
bool object_is_potion(object_type *o_ptr);
-bool object_is_bounty(object_type *o_ptr);
+bool object_is_bounty(player_type *player_ptr, object_type *o_ptr);
bool object_is_favorite(player_type *player_ptr, object_type *o_ptr);
bool object_is_rare(object_type *o_ptr);
bool object_is_weapon(player_type *player_ptr, object_type *o_ptr);
bool object_is_nameless(player_type *player_ptr, object_type *o_ptr);
bool object_allow_two_hands_wielding(object_type *o_ptr);
bool object_can_refill_torch(player_type *player_ptr, object_type *o_ptr);
-bool can_player_destroy_object(object_type *o_ptr);
-bool object_is_quest_target(object_type *o_ptr);
+bool can_player_destroy_object(player_type *player_ptr, object_type *o_ptr);
+bool object_is_quest_target(player_type *player_ptr, object_type *o_ptr);
#define OBJECT_IS_VALID(T) ((T)->k_idx != 0)
}
}
- if (!can_player_destroy_object(o_ptr)) {
+ if (!can_player_destroy_object(caster_ptr, o_ptr)) {
msg_format(_("%sを金に変えることに失敗した。", "You fail to turn %s to gold!"), o_name);
return FALSE;
}