mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-10-13 19:49:21 +00:00
Merge pull request #5418 from MerryMage/config-again-and-again
VideoConfig: Port to layered configuration system
This commit is contained in:
commit
c8166951a0
32 changed files with 961 additions and 591 deletions
|
@ -24,12 +24,16 @@
|
|||
#include <vector>
|
||||
|
||||
#include "Common/CommonTypes.h"
|
||||
#include "Common/Config/Config.h"
|
||||
#include "Common/FileUtil.h"
|
||||
#include "Common/IniFile.h"
|
||||
#include "Common/Logging/Log.h"
|
||||
#include "Common/MsgHandler.h"
|
||||
#include "Common/StringUtil.h"
|
||||
|
||||
#include "Core/Config/Config.h"
|
||||
#include "Core/ConfigLoaders/GameConfigLoader.h"
|
||||
#include "Core/ConfigLoaders/NetPlayConfigLoader.h"
|
||||
#include "Core/ConfigManager.h"
|
||||
#include "Core/Core.h"
|
||||
#include "Core/HW/EXI/EXI.h"
|
||||
|
@ -236,6 +240,12 @@ bool BootCore(const std::string& filename, SConfig::EBootBS2 type)
|
|||
// Load game specific settings
|
||||
if (type == SConfig::BOOT_DEFAULT)
|
||||
{
|
||||
std::string game_id = SConfig::GetInstance().GetGameID();
|
||||
u16 revision = SConfig::GetInstance().GetRevision();
|
||||
|
||||
Config::AddLoadLayer(ConfigLoaders::GenerateGlobalGameConfigLoader(game_id, revision));
|
||||
Config::AddLoadLayer(ConfigLoaders::GenerateLocalGameConfigLoader(game_id, revision));
|
||||
|
||||
IniFile game_ini = StartUp.LoadGameIni();
|
||||
|
||||
// General settings
|
||||
|
@ -320,6 +330,7 @@ bool BootCore(const std::string& filename, SConfig::EBootBS2 type)
|
|||
// Movie settings
|
||||
if (Movie::IsPlayingInput() && Movie::IsConfigSaved())
|
||||
{
|
||||
Config::AddLayer(std::make_unique<Config::Layer>(Config::LayerType::Movie));
|
||||
StartUp.bCPUThread = Movie::IsDualCore();
|
||||
StartUp.bDSPHLE = Movie::IsDSPHLE();
|
||||
StartUp.bProgressive = Movie::IsProgressive();
|
||||
|
@ -345,6 +356,7 @@ bool BootCore(const std::string& filename, SConfig::EBootBS2 type)
|
|||
|
||||
if (NetPlay::IsNetPlayRunning())
|
||||
{
|
||||
Config::AddLoadLayer(ConfigLoaders::GenerateNetPlayConfigLoader(g_NetPlaySettings));
|
||||
StartUp.bCPUThread = g_NetPlaySettings.m_CPUthread;
|
||||
StartUp.bEnableCheats = g_NetPlaySettings.m_EnableCheats;
|
||||
StartUp.bDSPHLE = g_NetPlaySettings.m_DSPHLE;
|
||||
|
@ -407,6 +419,11 @@ void Stop()
|
|||
|
||||
void RestoreConfig()
|
||||
{
|
||||
Config::ClearCurrentRunLayer();
|
||||
Config::RemoveLayer(Config::LayerType::Movie);
|
||||
Config::RemoveLayer(Config::LayerType::Netplay);
|
||||
Config::RemoveLayer(Config::LayerType::GlobalGame);
|
||||
Config::RemoveLayer(Config::LayerType::LocalGame);
|
||||
SConfig::GetInstance().LoadSettingsFromSysconf();
|
||||
SConfig::GetInstance().ResetRunningGameMetadata();
|
||||
config_cache.RestoreConfig(&SConfig::GetInstance());
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue