From 811bf57aa7a8fe6d47f596b7dcae1a1905002855 Mon Sep 17 00:00:00 2001 From: Oliver Hamlet Date: Fri, 27 Jan 2017 21:20:23 +0000 Subject: [PATCH] Don't inherit Game from LoadOrderHandler Use a private LoadOrderHandler member instead. This will simplify creating a Game interface. --- src/backend/game/game.cpp | 10 +++++----- src/backend/game/game.h | 3 ++- src/backend/plugin/plugin.cpp | 2 +- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/backend/game/game.cpp b/src/backend/game/game.cpp index 7b43bb16..f531a95e 100644 --- a/src/backend/game/game.cpp +++ b/src/backend/game/game.cpp @@ -117,7 +117,7 @@ void Game::Init() { } } - LoadOrderHandler::Init(*this, localDataPath_); + loadOrderHandler_.Init(*this, localDataPath_); } void Game::RedatePlugins() { @@ -245,7 +245,7 @@ bool Game::IsPluginActive(const std::string& pluginName) const { try { return GetPlugin(pluginName).IsActive(); } catch (...) { - return LoadOrderHandler::IsPluginActive(pluginName); + return loadOrderHandler_.IsPluginActive(pluginName); } } @@ -275,14 +275,14 @@ short Game::GetActiveLoadOrderIndex(const std::string & pluginName, const std::v std::vector Game::GetLoadOrder() const { if (loadOrder_.empty()) - loadOrder_ = LoadOrderHandler::GetLoadOrder(); + loadOrder_ = loadOrderHandler_.GetLoadOrder(); return loadOrder_; } void Game::SetLoadOrder(const std::vector& loadOrder) const { - BackupLoadOrder(loadOrder_, lootDataPath_ / FolderName()); - LoadOrderHandler::SetLoadOrder(loadOrder); + loadOrderHandler_.BackupLoadOrder(loadOrder_, lootDataPath_ / FolderName()); + loadOrderHandler_.SetLoadOrder(loadOrder); loadOrder_ = loadOrder; } diff --git a/src/backend/game/game.h b/src/backend/game/game.h index 7cd65260..24d545dd 100644 --- a/src/backend/game/game.h +++ b/src/backend/game/game.h @@ -34,7 +34,7 @@ #include "backend/game/load_order_handler.h" namespace loot { -class Game : public GameSettings, public LoadOrderHandler, public GameCache { +class Game : public GameSettings, public GameCache { public: Game(const GameSettings& gameSettings, const boost::filesystem::path& lootDataPath, @@ -69,6 +69,7 @@ private: const boost::filesystem::path localDataPath_; bool pluginsFullyLoaded_; + LoadOrderHandler loadOrderHandler_; mutable std::vector loadOrder_; }; } diff --git a/src/backend/plugin/plugin.cpp b/src/backend/plugin/plugin.cpp index 9cbf2c86..079196be 100644 --- a/src/backend/plugin/plugin.cpp +++ b/src/backend/plugin/plugin.cpp @@ -92,7 +92,7 @@ Plugin::Plugin(const Game& game, const std::string& name, const bool headerOnly) } } // Get whether the plugin is active or not. - isActive_ = game.LoadOrderHandler::IsPluginActive(Name()); + isActive_ = game.IsPluginActive(Name()); // Get whether the plugin loads an archive (BSA/BA2) or not. const string archiveExtension = game.GetArchiveFileExtension();