diff options
Diffstat (limited to 'Source/Core/DolphinWX/ISOProperties.cpp')
| -rw-r--r-- | Source/Core/DolphinWX/ISOProperties.cpp | 37 |
1 files changed, 21 insertions, 16 deletions
diff --git a/Source/Core/DolphinWX/ISOProperties.cpp b/Source/Core/DolphinWX/ISOProperties.cpp index 71445c15d9..f5884f03d9 100644 --- a/Source/Core/DolphinWX/ISOProperties.cpp +++ b/Source/Core/DolphinWX/ISOProperties.cpp @@ -1019,9 +1019,9 @@ void CISOProperties::SetCheckboxValueFromGameini(const char* section, const char { // Prefer local gameini value over default gameini value. bool value; - if (GameIniLocal.Get(section, key, &value)) + if (GameIniLocal.GetOrCreateSection(section)->Get(key, &value)) checkbox->Set3StateValue((wxCheckBoxState)value); - else if (GameIniDefault.Get(section, key, &value)) + else if (GameIniDefault.GetOrCreateSection(section)->Get(key, &value)) checkbox->Set3StateValue((wxCheckBoxState)value); else checkbox->Set3StateValue(wxCHK_UNDETERMINED); @@ -1042,34 +1042,39 @@ void CISOProperties::LoadGameConfig() SetCheckboxValueFromGameini("Wii", "Widescreen", EnableWideScreen); SetCheckboxValueFromGameini("Video", "UseBBox", UseBBox); + IniFile::Section* default_video = GameIniDefault.GetOrCreateSection("Video"); + IniFile::Section* local_video = GameIniLocal.GetOrCreateSection("Video"); + // First set values from default gameini, then apply values from local gameini int iTemp; - GameIniDefault.Get("Video", "ProjectionHack", &iTemp); + default_video->Get("ProjectionHack", &iTemp); PHackEnable->SetValue(!!iTemp); - if (GameIniLocal.Get("Video", "ProjectionHack", &iTemp)) + if (local_video->Get("ProjectionHack", &iTemp)) PHackEnable->SetValue(!!iTemp); - GameIniDefault.Get("Video", "PH_SZNear", &PHack_Data.PHackSZNear); + default_video->Get("PH_SZNear", &PHack_Data.PHackSZNear); if (GameIniLocal.GetIfExists("Video", "PH_SZNear", &iTemp)) PHack_Data.PHackSZNear = !!iTemp; - GameIniDefault.Get("Video", "PH_SZFar", &PHack_Data.PHackSZFar); + default_video->Get("PH_SZFar", &PHack_Data.PHackSZFar); if (GameIniLocal.GetIfExists("Video", "PH_SZFar", &iTemp)) PHack_Data.PHackSZFar = !!iTemp; std::string sTemp; - GameIniDefault.Get("Video", "PH_ZNear", &PHack_Data.PHZNear); + default_video->Get("PH_ZNear", &PHack_Data.PHZNear); if (GameIniLocal.GetIfExists("Video", "PH_ZNear", &sTemp)) PHack_Data.PHZNear = sTemp; - GameIniDefault.Get("Video", "PH_ZFar", &PHack_Data.PHZFar); + default_video->Get("PH_ZFar", &PHack_Data.PHZFar); if (GameIniLocal.GetIfExists("Video", "PH_ZFar", &sTemp)) PHack_Data.PHZFar = sTemp; - GameIniDefault.Get("EmuState", "EmulationStateId", &iTemp, 0/*Not Set*/); + + IniFile::Section* default_emustate = GameIniDefault.GetOrCreateSection("EmuState"); + default_emustate->Get("EmulationStateId", &iTemp, 0/*Not Set*/); EmuState->SetSelection(iTemp); if (GameIniLocal.GetIfExists("EmuState", "EmulationStateId", &iTemp)) EmuState->SetSelection(iTemp); - GameIniDefault.Get("EmuState", "EmulationIssues", &sTemp); + default_emustate->Get("EmulationIssues", &sTemp); if (!sTemp.empty()) EmuIssues->SetValue(StrToWxStr(sTemp)); if (GameIniLocal.GetIfExists("EmuState", "EmulationIssues", &sTemp)) @@ -1092,13 +1097,13 @@ void CISOProperties::SaveGameIniValueFrom3StateCheckbox(const char* section, con if (checkbox->Get3StateValue() == wxCHK_UNDETERMINED) GameIniLocal.DeleteKey(section, key); else if (!GameIniDefault.Exists(section, key)) - GameIniLocal.Set(section, key, checkbox_val); + GameIniLocal.GetOrCreateSection(section)->Set(key, checkbox_val); else { bool default_value; - GameIniDefault.Get(section, key, &default_value); + GameIniDefault.GetOrCreateSection(section)->Get(key, &default_value); if (default_value != checkbox_val) - GameIniLocal.Set(section, key, checkbox_val); + GameIniLocal.GetOrCreateSection(section)->Set(key, checkbox_val); else GameIniLocal.DeleteKey(section, key); } @@ -1122,13 +1127,13 @@ bool CISOProperties::SaveGameConfig() #define SAVE_IF_NOT_DEFAULT(section, key, val, def) do { \ if (GameIniDefault.Exists((section), (key))) { \ std::remove_reference<decltype((val))>::type tmp__; \ - GameIniDefault.Get((section), (key), &tmp__); \ + GameIniDefault.GetOrCreateSection((section))->Get((key), &tmp__); \ if ((val) != tmp__) \ - GameIniLocal.Set((section), (key), (val)); \ + GameIniLocal.GetOrCreateSection((section))->Set((key), (val)); \ else \ GameIniLocal.DeleteKey((section), (key)); \ } else if ((val) != (def)) \ - GameIniLocal.Set((section), (key), (val)); \ + GameIniLocal.GetOrCreateSection((section))->Set((key), (val)); \ else \ GameIniLocal.DeleteKey((section), (key)); \ } while (0) |
