Changed: If char keys/icfg file does not exist, use shared keys/icfg file

This commit is contained in:
Nimetu 2016-07-01 21:37:26 +03:00
parent 7332a26dc6
commit 16c0314701
3 changed files with 57 additions and 7 deletions

View file

@ -2511,7 +2511,12 @@ CCtrlButton *CGroupMap::addUserLandMark(const NLMISC::CVector2f &pos, const ucst
// Save the config file each time a user landmark is created // Save the config file each time a user landmark is created
CInterfaceManager *pIM = CInterfaceManager::getInstance(); CInterfaceManager *pIM = CInterfaceManager::getInstance();
uint8 currMode = pIM->getMode(); uint8 currMode = pIM->getMode();
pIM->saveConfig ("save/interface_" + PlayerSelectedFileName + ".icfg"); std::string filename = "save/interface_" + PlayerSelectedFileName + ".icfg";
if (!CFile::fileExists(filename) && CFile::fileExists("save/shared_interface.icfg"))
{
filename = "save/shared_interface.icfg";
}
pIM->saveConfig (filename);
if (currMode != pIM->getMode()) if (currMode != pIM->getMode())
{ {
pIM->setMode(currMode); pIM->setMode(currMode);

View file

@ -1222,6 +1222,14 @@ void CInterfaceManager::loadKeys()
// Load the user key file // Load the user key file
xmlFilesToParse.push_back (userKeyFileName); xmlFilesToParse.push_back (userKeyFileName);
} }
else
{
string filename = "save/shared_keys.xml";
if(CFile::fileExists(filename) && CFile::getFileSize(filename) > 0)
{
xmlFilesToParse.push_back(filename);
}
}
// Load the default key (but don't replace existings bounds, see keys.xml "key_def_no_replace") // Load the default key (but don't replace existings bounds, see keys.xml "key_def_no_replace")
xmlFilesToParse.push_back ("keys.xml"); xmlFilesToParse.push_back ("keys.xml");
@ -1240,7 +1248,11 @@ void CInterfaceManager::loadInterfaceConfig()
if (ClientCfg.R2EDEnabled) // in R2ED mode the CEditor class deals with it if (ClientCfg.R2EDEnabled) // in R2ED mode the CEditor class deals with it
return; return;
loadConfig ("save/interface_" + PlayerSelectedFileName + ".icfg"); // Invalidate coords of changed groups string filename = "save/interface_" + PlayerSelectedFileName + ".icfg";
if (!CFile::fileExists(filename))
filename = "save/shared_interface.icfg";
loadConfig(filename); // Invalidate coords of changed groups
_ConfigLoaded = true; _ConfigLoaded = true;
} }
@ -1254,7 +1266,11 @@ void CInterfaceManager::uninitInGame0 ()
{ {
if (!ClientCfg.R2EDEnabled) if (!ClientCfg.R2EDEnabled)
{ {
saveKeys ("save/keys_" + PlayerSelectedFileName + ".xml"); string filename = "save/keys_" + PlayerSelectedFileName + ".xml";
if (!CFile::fileExists(filename) && CFile::fileExists("save/shared_keys.xml"))
filename = "save/shared_keys.xml";
saveKeys(filename);
} }
_KeysLoaded = false; _KeysLoaded = false;
} }
@ -1264,7 +1280,11 @@ void CInterfaceManager::uninitInGame0 ()
{ {
if (!ClientCfg.R2EDEnabled) if (!ClientCfg.R2EDEnabled)
{ {
saveConfig ("save/interface_" + PlayerSelectedFileName + ".icfg"); string filename = "save/interface_" + PlayerSelectedFileName + ".icfg";
if (!CFile::fileExists(filename) && CFile::fileExists("save/shared_interface.icfg"))
filename = "save/shared_interface.icfg";
saveConfig(filename);
} }
_ConfigLoaded = false; _ConfigLoaded = false;
} }

View file

@ -2149,6 +2149,14 @@ void CEditor::loadKeySet(const std::string &keySet)
// Load the user key file // Load the user key file
xmlFilesToParse.push_back (userKeyFileName); xmlFilesToParse.push_back (userKeyFileName);
} }
else
{
std::string filename = "save/shared_" + keySet + ".xml";
if (CFile::fileExists(filename) && CFile::getFileSize(filename) > 0)
{
xmlFilesToParse.push_back(filename);
}
}
// Load the default key (but don't replace existings bounds, see keys.xml "key_def_no_replace") // Load the default key (but don't replace existings bounds, see keys.xml "key_def_no_replace")
xmlFilesToParse.push_back (keySet + ".xml"); xmlFilesToParse.push_back (keySet + ".xml");
@ -2179,7 +2187,13 @@ void CEditor::saveCurrentKeySet()
CHECK_EDITOR CHECK_EDITOR
std::string prefix = getKeySetPrefix(getMode()); std::string prefix = getKeySetPrefix(getMode());
if (prefix.empty()) return; if (prefix.empty()) return;
getUI().saveKeys ("save/" + prefix + "_" + PlayerSelectedFileName + ".xml");
std::string filename = "save/" + prefix + "_" + PlayerSelectedFileName + ".xml";
std::string sharedfile ="save/shared_" + prefix + ".xml";
if (!CFile::fileExists(filename) && CFile::fileExists(sharedfile))
filename = sharedfile;
getUI().saveKeys (filename);
} }
// ********************************************************************************************************* // *********************************************************************************************************
@ -2844,7 +2858,12 @@ bool CEditor::loadUIConfig(const std::string &prefix)
{ {
//H_AUTO(R2_CEditor_loadUIConfig) //H_AUTO(R2_CEditor_loadUIConfig)
CHECK_EDITOR CHECK_EDITOR
return getUI().loadConfig("save/" + prefix + PlayerSelectedFileName + ".icfg");
std::string filename = "save/" + prefix + PlayerSelectedFileName + ".icfg";
if (!CFile::fileExists(filename))
filename = "save/shared_" + prefix + ".icfg";
return getUI().loadConfig(filename);
} }
// ********************************************************************************************************* // *********************************************************************************************************
@ -2871,7 +2890,13 @@ void CEditor::saveUIConfig()
} }
} }
} }
getUI().saveConfig("save/" + getUIPrefix(_Mode) + PlayerSelectedFileName + ".icfg");
std::string filename = "save/" + getUIPrefix(_Mode) + PlayerSelectedFileName + ".icfg";
std::string sharedfile = "save/shared_" + getUIPrefix(_Mode) + ".icfg";
if (!CFile::fileExists(filename) && CFile::fileExists(sharedfile))
filename = sharedfile;
getUI().saveConfig(filename);
} }
// ********************************************************************************************************* // *********************************************************************************************************