OSDN Git Service

[Refactor] #38997 Added player_type* argument to object-hook.c
authorHourier <hourier@users.sourceforge.jp>
Sun, 28 Jun 2020 06:02:06 +0000 (15:02 +0900)
committerHourier <hourier@users.sourceforge.jp>
Sun, 28 Jun 2020 06:02:06 +0000 (15:02 +0900)
src/autopick/autopick-destroyer.c
src/autopick/autopick-entry.c
src/autopick/autopick-matcher.c
src/cmd-item/cmd-item.c
src/object/object-flavor.c
src/object/object-hook.c
src/object/object-hook.h
src/spell/spells3.c

index c9016b2..77853a8 100644 (file)
@@ -82,7 +82,7 @@ static bool is_opt_confirm_destroy(player_type *player_ptr, object_type *o_ptr)
                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;
@@ -117,7 +117,7 @@ void auto_destroy_item(player_type *player_ptr, object_type *o_ptr, int autopick
        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);
index 21b541d..ede5d01 100644 (file)
@@ -350,7 +350,7 @@ void autopick_entry_from_object(player_type *player_ptr, autopick_type *entry, o
                        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);
index b9f652d..6944db7 100644 (file)
@@ -50,7 +50,7 @@ bool is_autopick_match(player_type *player_ptr, object_type *o_ptr, autopick_typ
                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;
                }
@@ -190,7 +190,7 @@ bool is_autopick_match(player_type *player_ptr, object_type *o_ptr, autopick_typ
        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) &&
index 04d1618..9b69eba 100644 (file)
@@ -732,7 +732,7 @@ void do_cmd_destroy(player_type *creature_ptr)
        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);
 
index 3dde5fe..9a60e1a 100644 (file)
@@ -2385,7 +2385,7 @@ void object_desc(player_type *player_ptr, char *buf, object_type *o_ptr, BIT_FLA
        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;
                }
index f03d5a0..aea4fd7 100644 (file)
@@ -585,7 +585,7 @@ bool object_is_potion(object_type *o_ptr) { return (k_info[o_ptr->k_idx].tval ==
  * @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;
 
@@ -598,7 +598,7 @@ bool object_is_bounty(object_type *o_ptr)
         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 */
@@ -999,7 +999,7 @@ bool object_can_refill_torch(player_type *player_ptr, object_type *o_ptr)
  * @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))
@@ -1018,8 +1018,8 @@ bool can_player_destroy_object(object_type *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;
     }
@@ -1033,10 +1033,10 @@ bool can_player_destroy_object(object_type *o_ptr)
  * @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)) {
index 37fa224..32ef3ef 100644 (file)
@@ -33,7 +33,7 @@ bool item_tester_high_level_book(object_type *o_ptr);
 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);
@@ -53,8 +53,8 @@ bool object_is_random_artifact(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)
 
index 4197993..0100fdc 100644 (file)
@@ -363,7 +363,7 @@ bool alchemy(player_type *caster_ptr)
         }
     }
 
-    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;
     }