OSDN Git Service

[Refactor] ランダムクエストのIDの範囲を定数で定義
authorHabu <habu1010+github@gmail.com>
Sat, 22 Jun 2024 04:29:35 +0000 (13:29 +0900)
committerHabu <habu1010+github@gmail.com>
Sat, 22 Jun 2024 04:39:42 +0000 (13:39 +0900)
ランダムクエストのIDの範囲の生成が複数箇所で個別に行われているので、
quest.h で定数として定義する。

src/birth/game-play-initializer.cpp
src/dungeon/quest.h
src/load/dungeon-loader.cpp
src/system/floor-type-definition.cpp
src/world/world-movement-processor.cpp

index 6ba1bbe..10bece6 100644 (file)
@@ -161,7 +161,7 @@ void init_dungeon_quests(PlayerType *player_ptr)
     floor.quest_number = QuestId::RANDOM_QUEST1;
     parse_fixed_map(player_ptr, QUEST_DEFINITION_LIST, 0, 0, 0, 0);
     floor.quest_number = QuestId::NONE;
-    for (auto quest_id : EnumRangeInclusive(QuestId::RANDOM_QUEST1, QuestId::RANDOM_QUEST10)) {
+    for (auto quest_id : RANDOM_QUEST_ID_RANGE) {
         auto &quest = quests.get_quest(quest_id);
         quest.status = QuestStatusType::TAKEN;
         determine_random_questor(player_ptr, quest);
index 523d33d..9155894 100644 (file)
@@ -2,6 +2,7 @@
 
 #include "system/angband.h"
 #include "util/enum-converter.h"
+#include "util/enum-range.h"
 #include <map>
 #include <string>
 #include <vector>
@@ -59,6 +60,7 @@ enum class QuestId : short{
        RANDOM_QUEST10 = 49, /*<! ランダムクエストを割り当てるクエストIDの終了値 */
 };
 
+constexpr auto RANDOM_QUEST_ID_RANGE = EnumRangeInclusive(QuestId::RANDOM_QUEST1, QuestId::RANDOM_QUEST10);
 constexpr auto MIN_RANDOM_QUEST = enum2i(QuestId::RANDOM_QUEST1);
 constexpr auto MAX_RANDOM_QUEST = enum2i(QuestId::RANDOM_QUEST10);
 
index fd92a10..bdbcc11 100644 (file)
@@ -135,7 +135,7 @@ errr restore_dungeon(PlayerType *player_ptr)
 {
     if (player_ptr->is_dead) {
         auto &quests = QuestList::get_instance();
-        for (const auto quest_id : EnumRangeInclusive(QuestId::RANDOM_QUEST1, QuestId::RANDOM_QUEST10)) {
+        for (const auto quest_id : RANDOM_QUEST_ID_RANGE) {
             quests.get_quest(quest_id).get_bounty().misc_flags.reset(MonsterMiscType::QUESTOR);
         }
 
index 8adf958..6f78baf 100644 (file)
@@ -64,7 +64,7 @@ QuestId FloorType::get_random_quest_id(std::optional<int> level_opt) const
 
     const auto level = level_opt.value_or(this->dun_level);
     const auto &quests = QuestList::get_instance();
-    for (auto quest_id : EnumRangeInclusive(QuestId::RANDOM_QUEST1, QuestId::RANDOM_QUEST10)) {
+    for (auto quest_id : RANDOM_QUEST_ID_RANGE) {
         const auto &quest = quests.get_quest(quest_id);
         auto is_random_quest = (quest.type == QuestKindType::RANDOM);
         is_random_quest &= (quest.status == QuestStatusType::TAKEN);
index bbcfa2d..c80b531 100644 (file)
@@ -32,7 +32,7 @@ void check_random_quest_auto_failure(PlayerType *player_ptr)
     }
 
     auto &world = AngbandWorld::get_instance();
-    for (auto quest_id : EnumRangeInclusive(QuestId::RANDOM_QUEST1, QuestId::RANDOM_QUEST10)) {
+    for (auto quest_id : RANDOM_QUEST_ID_RANGE) {
         auto &quest = quests.get_quest(quest_id);
         auto is_taken_quest = (quest.type == QuestKindType::RANDOM);
         is_taken_quest &= (quest.status == QuestStatusType::TAKEN);