OSDN Git Service

[Refactor] #38997 complete_quest() と check_find_art_quest_completion() にplayer_type...
authorHourier <hourier@users.sourceforge.jp>
Sat, 11 Jan 2020 13:36:27 +0000 (22:36 +0900)
committerHourier <hourier@users.sourceforge.jp>
Sat, 11 Jan 2020 13:36:27 +0000 (22:36 +0900)
src/cmd/cmd-item.c
src/player-move.c
src/quest.c
src/quest.h
src/wizard2.c

index 277a9c1..2518e72 100644 (file)
@@ -318,7 +318,7 @@ void do_cmd_wield(player_type *creature_ptr)
                slot = need_switch_wielding;
        }
 
-       check_find_art_quest_completion(o_ptr);
+       check_find_art_quest_completion(creature_ptr, o_ptr);
 
        if (creature_ptr->pseikaku == SEIKAKU_MUNCHKIN)
        {
index 99d6628..fde30af 100644 (file)
@@ -345,7 +345,7 @@ void py_pickup_aux(player_type *owner_ptr, OBJECT_IDX o_idx)
        record_turn = current_world_ptr->game_turn;
 
 
-       check_find_art_quest_completion(o_ptr);
+       check_find_art_quest_completion(owner_ptr, o_ptr);
 }
 
 
@@ -756,7 +756,7 @@ bool move_player_effect(player_type *creature_ptr, POSITION ny, POSITION nx, BIT
        {
                if (quest[creature_ptr->current_floor_ptr->inside_quest].type == QUEST_TYPE_FIND_EXIT)
                {
-                       complete_quest(creature_ptr->current_floor_ptr->inside_quest);
+                       complete_quest(creature_ptr, creature_ptr->current_floor_ptr->inside_quest);
                }
 
                leave_quest_check(creature_ptr);
index ee37ee1..820e3fc 100644 (file)
@@ -78,25 +78,26 @@ void determine_random_questor(quest_type *q_ptr)
 
 /*!
  * @brief クエストを達成状態にする /
+ * @param player_ptr プレーヤーへの参照ポインタ
  * @param quest_num 達成状態にしたいクエストのID
  * @return なし
  */
-void complete_quest(QUEST_IDX quest_num)
+void complete_quest(player_type *player_ptr, QUEST_IDX quest_num)
 {
        quest_type* const q_ptr = &quest[quest_num];
 
        switch (q_ptr->type)
        {
        case QUEST_TYPE_RANDOM:
-               if (record_rand_quest) exe_write_diary(p_ptr, NIKKI_RAND_QUEST_C, quest_num, NULL);
+               if (record_rand_quest) exe_write_diary(player_ptr, NIKKI_RAND_QUEST_C, quest_num, NULL);
                break;
        default:
-               if (record_fix_quest) exe_write_diary(p_ptr, NIKKI_FIX_QUEST_C, quest_num, NULL);
+               if (record_fix_quest) exe_write_diary(player_ptr, NIKKI_FIX_QUEST_C, quest_num, NULL);
                break;
        }
 
        q_ptr->status = QUEST_STATUS_COMPLETED;
-       q_ptr->complev = p_ptr->lev;
+       q_ptr->complev = player_ptr->lev;
        update_playtime();
        q_ptr->comptime = current_world_ptr->play_time;
 
@@ -191,7 +192,7 @@ void check_quest_completion(player_type *player_ptr, monster_type *m_ptr)
 
                        if (q_ptr->cur_num >= q_ptr->num_mon)
                        {
-                               complete_quest(quest_num);
+                               complete_quest(player_ptr, quest_num);
 
                                q_ptr->cur_num = 0;
                        }
@@ -209,7 +210,7 @@ void check_quest_completion(player_type *player_ptr, monster_type *m_ptr)
                                }
                                else
                                {
-                                       complete_quest(quest_num);
+                                       complete_quest(player_ptr, quest_num);
                                }
                        }
                        break;
@@ -225,7 +226,7 @@ void check_quest_completion(player_type *player_ptr, monster_type *m_ptr)
 
                        if (q_ptr->cur_num >= q_ptr->max_num)
                        {
-                               complete_quest(quest_num);
+                               complete_quest(player_ptr, quest_num);
 
                                if (!(q_ptr->flags & QUEST_FLAG_PRESET))
                                {
@@ -252,7 +253,7 @@ void check_quest_completion(player_type *player_ptr, monster_type *m_ptr)
                        q_ptr->cur_num++;
                        if (q_ptr->cur_num >= q_ptr->max_num)
                        {
-                               complete_quest(quest_num);
+                               complete_quest(player_ptr, quest_num);
                                q_ptr->cur_num = 0;
                        }
                        break;
@@ -270,7 +271,7 @@ void check_quest_completion(player_type *player_ptr, monster_type *m_ptr)
                                        (quest[QUEST_TOWER3].status == QUEST_STATUS_STAGE_COMPLETED))
                                {
 
-                                       complete_quest(QUEST_TOWER1);
+                                       complete_quest(player_ptr, QUEST_TOWER1);
                                }
                        }
                        break;
@@ -325,10 +326,11 @@ void check_quest_completion(player_type *player_ptr, monster_type *m_ptr)
 /*!
  * @brief 特定のアーティファクトを入手した際のクエスト達成処理 /
  * Check for "Quest" completion when a quest monster is killed or charmed.
+ * @param player_ptr プレーヤーへの参照ポインタ
  * @param o_ptr 入手したオブジェクトの構造体参照ポインタ
  * @return なし
  */
-void check_find_art_quest_completion(object_type *o_ptr)
+void check_find_art_quest_completion(player_type *player_ptr, object_type *o_ptr)
 {
        QUEST_IDX i;
        /* Check if completed a quest */
@@ -338,7 +340,7 @@ void check_find_art_quest_completion(object_type *o_ptr)
                        (quest[i].status == QUEST_STATUS_TAKEN) &&
                        (quest[i].k_idx == o_ptr->name1))
                {
-                       complete_quest(i);
+                       complete_quest(player_ptr, i);
                }
        }
 }
index 7390caa..70c24c4 100644 (file)
@@ -86,9 +86,9 @@ extern int quest_text_line;
 extern int leaving_quest;
 
 extern void determine_random_questor(quest_type *q_ptr);
-extern void complete_quest(QUEST_IDX quest_num);
+extern void complete_quest(player_type *player_ptr, QUEST_IDX quest_num);
 extern void check_quest_completion(player_type *player_ptr, monster_type *m_ptr);
-extern void check_find_art_quest_completion(object_type *o_ptr);
+extern void check_find_art_quest_completion(player_type *player_ptr, object_type *o_ptr);
 extern void quest_discovery(QUEST_IDX q_idx);
 extern QUEST_IDX quest_number(DEPTH level);
 extern QUEST_IDX random_quest_number(DEPTH level);
index d08fdf8..de07eee 100644 (file)
@@ -1908,7 +1908,7 @@ void do_cmd_debug(player_type *creature_ptr)
                {
                        if (quest[creature_ptr->current_floor_ptr->inside_quest].status == QUEST_STATUS_TAKEN)
                        {
-                               complete_quest(creature_ptr->current_floor_ptr->inside_quest);
+                               complete_quest(creature_ptr, creature_ptr->current_floor_ptr->inside_quest);
                                break;
                        }
                }