@@ -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