@@ -131,11 +131,11 @@ namespace REL
131131 { IDDB::Loader::OBSE, { L" versionlib" } },
132132 };
133133
134- std::unordered_map<IDDB::Loader, std::string> g_loaderMap{
135- { IDDB::Loader::SKSE, " SKSE" },
136- { IDDB::Loader::F4SE, " F4SE" },
137- { IDDB::Loader::SFSE, " SFSE" },
138- { IDDB::Loader::OBSE, " OBSE" },
134+ std::unordered_map<IDDB::Loader, std::pair<std:: string, std::wstring> > g_loaderMap{
135+ { IDDB::Loader::SKSE, { " SKSE" , L" SKSE " } },
136+ { IDDB::Loader::F4SE, { " F4SE" , L" F4SE " } },
137+ { IDDB::Loader::SFSE, { " SFSE" , L" SFSE " } },
138+ { IDDB::Loader::OBSE, { " OBSE" , L" OBSE " } },
139139 };
140140
141141 wchar_t buffer[REX::W32::MAX_PATH];
@@ -145,15 +145,12 @@ namespace REL
145145 auto loader = plugin.parent_path ().parent_path ();
146146 auto loaderName = loader.filename ().wstring ();
147147 std::transform (loaderName.begin (), loaderName.end (), loaderName.begin (), std::towupper);
148- if (loaderName == L" SKSE" ) {
149- m_loader = Loader::SKSE;
150- } else if (loaderName == L" F4SE" ) {
151- m_loader = Loader::F4SE;
152- } else if (loaderName == L" SFSE" ) {
153- m_loader = Loader::SFSE;
154- } else if (loaderName == L" OBSE" ) {
155- m_loader = Loader::OBSE;
156- }
148+ for (auto & entry : g_loaderMap)
149+ if (loaderName == entry.second .second )
150+ {
151+ m_loader = entry.first ;
152+ break ;
153+ }
157154
158155 if (m_loader == Loader::None)
159156 REX::FAIL (" Failed to determine Address Library loader!" );
@@ -173,7 +170,7 @@ namespace REL
173170 }
174171
175172 if (m_path.empty ())
176- REX::FAIL (" Failed to determine Address Library path!\n Loader: {}" , g_loaderMap[m_loader]);
173+ REX::FAIL (" Failed to determine Address Library path!\n Loader: {}" , g_loaderMap[m_loader]. first );
177174
178175 if (m_format == Format::V0) {
179176 load_v0 ();
0 commit comments