Skip to content

Commit 7846340

Browse files
committed
Use settings version way
1 parent 5f569db commit 7846340

File tree

2 files changed

+30
-50
lines changed

2 files changed

+30
-50
lines changed

Core/Config.cpp

Lines changed: 29 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -586,6 +586,7 @@ static ConfigSetting generalSettings[] = {
586586
ConfigSetting("EnablePlugins", &g_Config.bLoadPlugins, true, true, true),
587587

588588
ReportedConfigSetting("IgnoreCompatSettings", &g_Config.sIgnoreCompatSettings, "", true, true),
589+
ConfigSetting("SettingsVersion", &g_Config.uSettingsVersion, 0u, true, true), // Per game for game configs
589590

590591
ConfigSetting(false),
591592
};
@@ -1270,6 +1271,24 @@ void Config::UpdateIniLocation(const char *iniFileName, const char *controllerIn
12701271
controllerIniFilename_ = FindConfigFile(useControllerIniFilename ? controllerIniFilename : "controls.ini");
12711272
}
12721273

1274+
static void loadOldControlSettings(IniFile &iniFile) {
1275+
iniFile.GetIfExists("General", "RightAnalogUp", &g_Config.iRightAnalogUp);
1276+
iniFile.GetIfExists("General", "RightAnalogDown", &g_Config.iRightAnalogDown);
1277+
iniFile.GetIfExists("General", "RightAnalogLeft", &g_Config.iRightAnalogLeft);
1278+
iniFile.GetIfExists("General", "RightAnalogRight", &g_Config.iRightAnalogRight);
1279+
iniFile.GetIfExists("General", "RightAnalogPress", &g_Config.iRightAnalogPress);
1280+
iniFile.GetIfExists("General", "SwipeUp", &g_Config.iSwipeUp);
1281+
iniFile.GetIfExists("General", "SwipeDown", &g_Config.iSwipeDown);
1282+
iniFile.GetIfExists("General", "SwipeLeft", &g_Config.iSwipeLeft);
1283+
iniFile.GetIfExists("General", "SwipeRight", &g_Config.iSwipeRight);
1284+
iniFile.GetIfExists("General", "DoubleTapGesture", &g_Config.iDoubleTapGesture);
1285+
iniFile.GetIfExists("General", "SwipeSensitivity", &g_Config.fSwipeSensitivity);
1286+
iniFile.GetIfExists("General", "SwipeSmoothing", &g_Config.fSwipeSmoothing);
1287+
iniFile.GetIfExists("General", "RightAnalogCustom", &g_Config.bRightAnalogCustom);
1288+
iniFile.GetIfExists("General", "RightAnalogDisableDiagonal", &g_Config.bRightAnalogDisableDiagonal);
1289+
iniFile.GetIfExists("General", "GestureControlEnabled", &g_Config.bGestureControlEnabled);
1290+
}
1291+
12731292
void Config::Load(const char *iniFileName, const char *controllerIniFilename) {
12741293
if (!bUpdatedInstanceCounter) {
12751294
InitInstanceCounter();
@@ -1368,22 +1387,11 @@ void Config::Load(const char *iniFileName, const char *controllerIniFilename) {
13681387
ResetControlLayout();
13691388
}
13701389

1371-
// Migrate from wrong section...
1372-
iniFile.GetIfExists("General", "RightAnalogUp", &g_Config.iRightAnalogUp);
1373-
iniFile.GetIfExists("General", "RightAnalogDown", &g_Config.iRightAnalogDown);
1374-
iniFile.GetIfExists("General", "RightAnalogLeft", &g_Config.iRightAnalogLeft);
1375-
iniFile.GetIfExists("General", "RightAnalogRight", &g_Config.iRightAnalogRight);
1376-
iniFile.GetIfExists("General", "RightAnalogPress", &g_Config.iRightAnalogPress);
1377-
iniFile.GetIfExists("General", "SwipeUp", &g_Config.iSwipeUp);
1378-
iniFile.GetIfExists("General", "SwipeDown", &g_Config.iSwipeDown);
1379-
iniFile.GetIfExists("General", "SwipeLeft", &g_Config.iSwipeLeft);
1380-
iniFile.GetIfExists("General", "SwipeRight", &g_Config.iSwipeRight);
1381-
iniFile.GetIfExists("General", "DoubleTapGesture", &g_Config.iDoubleTapGesture);
1382-
iniFile.GetIfExists("General", "SwipeSensitivity", &g_Config.fSwipeSensitivity);
1383-
iniFile.GetIfExists("General", "SwipeSmoothing", &g_Config.fSwipeSmoothing);
1384-
iniFile.GetIfExists("General", "RightAnalogCustom", &g_Config.bRightAnalogCustom);
1385-
iniFile.GetIfExists("General", "RightAnalogDisableDiagonal", &g_Config.bRightAnalogDisableDiagonal);
1386-
iniFile.GetIfExists("General", "GestureControlEnabled", &g_Config.bGestureControlEnabled);
1390+
if (g_Config.uSettingsVersion == 0) {
1391+
g_Config.uSettingsVersion = 1;
1392+
1393+
loadOldControlSettings(iniFile);
1394+
}
13871395

13881396
const char *gitVer = PPSSPP_GIT_VERSION;
13891397
Version installed(gitVer);
@@ -1577,24 +1585,6 @@ bool Config::Save(const char *saveReason) {
15771585
Section *control = iniFile.GetOrCreateSection("Control");
15781586
control->Delete("DPadRadius");
15791587

1580-
// Migrate from wrong section...
1581-
Section *general = iniFile.GetOrCreateSection("General");
1582-
general->Delete("RightAnalogUp");
1583-
general->Delete("RightAnalogDown");
1584-
general->Delete("RightAnalogLeft");
1585-
general->Delete("RightAnalogRight");
1586-
general->Delete("RightAnalogPress");
1587-
general->Delete("SwipeUp");
1588-
general->Delete("SwipeDown");
1589-
general->Delete("SwipeLeft");
1590-
general->Delete("SwipeRight");
1591-
general->Delete("DoubleTapGesture");
1592-
general->Delete("SwipeSensitivity");
1593-
general->Delete("SwipeSmoothing");
1594-
general->Delete("RightAnalogCustom");
1595-
general->Delete("RightAnalogDisableDiagonal");
1596-
general->Delete("GestureControlEnabled");
1597-
15981588
Section *log = iniFile.GetOrCreateSection(logSectionName);
15991589
if (LogManager::GetInstance())
16001590
LogManager::GetInstance()->SaveConfig(log);
@@ -1908,22 +1898,11 @@ bool Config::loadGameConfig(const std::string &pGameId, const std::string &title
19081898
}
19091899
});
19101900

1911-
// Migrate from wrong section...
1912-
iniFile.GetIfExists("General", "RightAnalogUp", &g_Config.iRightAnalogUp);
1913-
iniFile.GetIfExists("General", "RightAnalogDown", &g_Config.iRightAnalogDown);
1914-
iniFile.GetIfExists("General", "RightAnalogLeft", &g_Config.iRightAnalogLeft);
1915-
iniFile.GetIfExists("General", "RightAnalogRight", &g_Config.iRightAnalogRight);
1916-
iniFile.GetIfExists("General", "RightAnalogPress", &g_Config.iRightAnalogPress);
1917-
iniFile.GetIfExists("General", "SwipeUp", &g_Config.iSwipeUp);
1918-
iniFile.GetIfExists("General", "SwipeDown", &g_Config.iSwipeDown);
1919-
iniFile.GetIfExists("General", "SwipeLeft", &g_Config.iSwipeLeft);
1920-
iniFile.GetIfExists("General", "SwipeRight", &g_Config.iSwipeRight);
1921-
iniFile.GetIfExists("General", "DoubleTapGesture", &g_Config.iDoubleTapGesture);
1922-
iniFile.GetIfExists("General", "SwipeSensitivity", &g_Config.fSwipeSensitivity);
1923-
iniFile.GetIfExists("General", "SwipeSmoothing", &g_Config.fSwipeSmoothing);
1924-
iniFile.GetIfExists("General", "RightAnalogCustom", &g_Config.bRightAnalogCustom);
1925-
iniFile.GetIfExists("General", "RightAnalogDisableDiagonal", &g_Config.bRightAnalogDisableDiagonal);
1926-
iniFile.GetIfExists("General", "GestureControlEnabled", &g_Config.bGestureControlEnabled);
1901+
if (g_Config.uSettingsVersion == 0) {
1902+
g_Config.uSettingsVersion = 1;
1903+
1904+
loadOldControlSettings(iniFile);
1905+
}
19271906

19281907
KeyMap::LoadFromIni(iniFile);
19291908
return true;

Core/Config.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,7 @@ struct Config {
9191
bool bEnableLogging;
9292
bool bDumpDecryptedEboot;
9393
bool bFullscreenOnDoubleclick;
94+
uint32_t uSettingsVersion;
9495

9596
// These four are Win UI only
9697
bool bPauseOnLostFocus;

0 commit comments

Comments
 (0)