diff --git a/src/api/game/game.cpp b/src/api/game/game.cpp index 54f667fe..4f53efe4 100644 --- a/src/api/game/game.cpp +++ b/src/api/game/game.cpp @@ -29,7 +29,6 @@ #include #include -#include #include "api/api_database.h" #include "api/helpers/logging.h" @@ -161,6 +160,7 @@ void Game::LoadPlugins(const std::vector& plugins, if (logger) { logger->trace("Starting plugin loading."); } + auto masterPath = DataPath() / u8path(masterFilename_); vector threads; while (threads.size() < threadsToUse) { vector& pluginGroup = pluginGroups[threads.size()]; @@ -169,12 +169,12 @@ void Game::LoadPlugins(const std::vector& plugins, if (logger) { logger->trace("Loading {}", pluginName); } + auto pluginPath = DataPath() / u8path(pluginName); const bool loadHeader = - loadHeadersOnly || - boost::locale::to_lower(pluginName) == lowercasedMasterFilename_; + loadHeadersOnly || loot::equivalent(pluginPath, masterPath); try { cache_->AddPlugin(Plugin( - Type(), cache_, loadOrderHandler_, DataPath() / u8path(pluginName), loadHeader)); + Type(), cache_, loadOrderHandler_, pluginPath, loadHeader)); } catch (std::exception& e) { if (logger) { logger->error( @@ -211,7 +211,7 @@ std::set> Game::GetLoadedPlugins() } void Game::IdentifyMainMasterFile(const std::string& masterFile) { - lowercasedMasterFilename_ = boost::locale::to_lower(masterFile); + masterFilename_ = masterFile; } std::vector Game::SortPlugins( diff --git a/src/api/game/game.h b/src/api/game/game.h index 2c1eb136..098e887a 100644 --- a/src/api/game/game.h +++ b/src/api/game/game.h @@ -86,7 +86,7 @@ private: const GameType type_; const std::filesystem::path gamePath_; - std::string lowercasedMasterFilename_; + std::string masterFilename_; }; } #endif