OSDN Git Service

[Refactor] load_quest_info() を、「2つのポインタ引数戻り値なし」から「引数なしタプルの戻り値あり」に変更した
authorHourier <66951241+Hourier@users.noreply.github.com>
Wed, 6 Apr 2022 14:20:18 +0000 (23:20 +0900)
committerHourier <66951241+Hourier@users.noreply.github.com>
Sat, 9 Apr 2022 14:19:58 +0000 (23:19 +0900)
src/load/load.cpp
src/load/quest-loader.cpp
src/load/quest-loader.h

index aa8b2a8..926b9a0 100644 (file)
@@ -56,6 +56,7 @@
  * @brief 変愚蛮怒 v2.1.3で追加された街とクエストについて読み込む
  * @param player_ptr プレイヤーへの参照ポインタ
  * @return エラーコード
+ * @details 旧海底都市クエスト (クエストNo.18)は廃止済
  */
 static errr load_town_quest(PlayerType *player_ptr)
 {
@@ -68,13 +69,8 @@ static errr load_town_quest(PlayerType *player_ptr)
         return load_town_result;
     }
 
-    uint16_t max_quests_load;
-    byte max_rquests_load;
-    load_quest_info(&max_quests_load, &max_rquests_load);
-
+    auto [max_quests_load, max_rquests_load] = load_quest_info();
     analyze_quests(player_ptr, max_quests_load, max_rquests_load);
-
-    /* Quest 18 was removed */
     if (h_older_than(1, 7, 0, 6)) {
         auto &quest_list = QuestList::get_instance();
         quest_list[i2enum<QuestId>(OLD_QUEST_WATER_CAVE)] = {};
index 68e109c..94516da 100644 (file)
@@ -27,14 +27,17 @@ errr load_town(void)
     return 23;
 }
 
-void load_quest_info(uint16_t *max_quests_load, byte *max_rquests_load)
+std::tuple<uint16_t, byte> load_quest_info()
 {
-    *max_quests_load = rd_u16b();
+    auto max_quests_load = rd_u16b();
+    byte max_rquests_load;
     if (h_older_than(1, 0, 7)) {
-        *max_rquests_load = 10;
+        max_rquests_load = 10;
     } else {
-        *max_rquests_load = rd_byte();
+        max_rquests_load = rd_byte();
     }
+
+    return std::make_tuple(max_quests_load, max_rquests_load);
 }
 
 static void load_quest_completion(quest_type *q_ptr)
index 97bf206..3da0c79 100644 (file)
@@ -1,8 +1,9 @@
 #pragma once
 
 #include "system/angband.h"
+#include <tuple>
 
 class PlayerType;
 errr load_town(void);
-void load_quest_info(uint16_t *max_quests_load, byte *max_rquests_load);
+std::tuple<uint16_t, byte> load_quest_info();
 void analyze_quests(PlayerType *player_ptr, const uint16_t max_quests_load, const byte max_rquests_load);