Skip to content

Commit 550cb02

Browse files
committed
feat(saved-array-info): Convert it to function as well
1 parent 8781e90 commit 550cb02

File tree

1 file changed

+14
-7
lines changed

1 file changed

+14
-7
lines changed

src/roulette/manager/DataManager.hpp

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -61,11 +61,18 @@ namespace DataManager
6161
{}
6262
};
6363

64-
const std::unordered_map<DMArrayKey, const SavedArrayInfo> ARRAY_TO_SAI{
65-
{ DMArrayKey::DIFFICULTY_ARRAY, { 6, { true, false, false, false, false, false } } },
66-
{ DMArrayKey::DEMON_DIFFICULTY_ARRAY, { 5, { true, false, false, false, false, false }} },
67-
{ DMArrayKey::SELECTED_LIST_ARRAY, { 4, { true, false, false, false }} }
68-
};
64+
template <DMArrayKey key>
65+
const SavedArrayInfo getSAI()
66+
{
67+
if constexpr (key == DMArrayKey::DIFFICULTY_ARRAY)
68+
return { 6, { true, false, false, false, false, false } };
69+
else if constexpr (key == DMArrayKey::DEMON_DIFFICULTY_ARRAY)
70+
return { 5, { true, false, false, false, false, false } };
71+
else if constexpr (key == DMArrayKey::SELECTED_LIST_ARRAY)
72+
return { 4, { true, false, false, false } };
73+
74+
std::unreachable();
75+
}
6976
}
7077

7178
namespace
@@ -239,12 +246,12 @@ namespace DataManager
239246

240247
if (auto res = container.get(values::getKeyString<key>()); res.isOk())
241248
if (auto resv = res.unwrap().asArray(); resv.isOkAnd([](auto&& vec) {
242-
return vec.size() == values::ARRAY_TO_SAI.at(key).size &&
249+
return vec.size() == values::getSAI<key>().size &&
243250
std::all_of(vec.begin(), vec.end(), [](auto& v) { return v.asBool().isOk(); });
244251
}))
245252
return resv.unwrap();
246253

247-
container.set(values::getKeyString<key>(), values::ARRAY_TO_SAI.at(key).default_value);
254+
container.set(values::getKeyString<key>(), values::getSAI<key>().default_value);
248255

249256
return container.get(values::getKeyString<key>()).unwrap().asArray().unwrap();
250257
}

0 commit comments

Comments
 (0)