OSDN Git Service

[Refactor] do_cmd_go_up 内の quest_numberを変数で受けた
authorSlimebreath6078 <slimebreath6078@yahoo.co.jp>
Thu, 24 Feb 2022 12:56:49 +0000 (21:56 +0900)
committerSlimebreath6078 <slimebreath6078@yahoo.co.jp>
Sat, 26 Feb 2022 10:00:56 +0000 (19:00 +0900)
do_cmd_go_up() 関数内の player_ptr->current_floor_ptr->quest_number の数が
多いため、const auto変数で受ける

src/cmd-action/cmd-move.cpp

index 441e81d..f7ee311 100644 (file)
@@ -101,16 +101,17 @@ void do_cmd_go_up(PlayerType *player_ptr)
 
         leave_quest_check(player_ptr);
         player_ptr->current_floor_ptr->quest_number = i2enum<QuestId>(g_ptr->special);
-        if (quest[player_ptr->current_floor_ptr->quest_number].status == QuestStatusType::UNTAKEN) {
-            if (quest[player_ptr->current_floor_ptr->quest_number].type != QuestKindType::RANDOM) {
+        const auto quest_number = player_ptr->current_floor_ptr->quest_number;
+        if (quest[quest_number].status == QuestStatusType::UNTAKEN) {
+            if (quest[quest_number].type != QuestKindType::RANDOM) {
                 init_flags = INIT_ASSIGN;
                 parse_fixed_map(player_ptr, "q_info.txt", 0, 0, 0, 0);
             }
 
-            quest[player_ptr->current_floor_ptr->quest_number].status = QuestStatusType::TAKEN;
+            quest[quest_number].status = QuestStatusType::TAKEN;
         }
 
-        if (!inside_quest(player_ptr->current_floor_ptr->quest_number)) {
+        if (!inside_quest(quest_number)) {
             player_ptr->current_floor_ptr->dun_level = 0;
             player_ptr->word_recall = 0;
         }
@@ -138,12 +139,14 @@ void do_cmd_go_up(PlayerType *player_ptr)
         do_cmd_save_game(player_ptr, true);
     }
 
-    if (inside_quest(player_ptr->current_floor_ptr->quest_number) && quest[player_ptr->current_floor_ptr->quest_number].type == QuestKindType::RANDOM) {
+    const auto quest_number = player_ptr->current_floor_ptr->quest_number;
+
+    if (inside_quest(quest_number) && quest[quest_number].type == QuestKindType::RANDOM) {
         leave_quest_check(player_ptr);
         player_ptr->current_floor_ptr->quest_number = QuestId::NONE;
     }
 
-    if (inside_quest(player_ptr->current_floor_ptr->quest_number) && quest[player_ptr->current_floor_ptr->quest_number].type != QuestKindType::RANDOM) {
+    if (inside_quest(quest_number) && quest[quest_number].type != QuestKindType::RANDOM) {
         leave_quest_check(player_ptr);
         player_ptr->current_floor_ptr->quest_number = i2enum<QuestId>(g_ptr->special);
         player_ptr->current_floor_ptr->dun_level = 0;