diff options
author | Thorbjørn Lindeijer <bjorn@lindeijer.nl> | 2024-02-19 08:22:56 +0000 |
---|---|---|
committer | Thorbjørn Lindeijer <bjorn@lindeijer.nl> | 2024-02-19 08:22:56 +0000 |
commit | 65fac3220e870160e888da4bc8e826653a8a0720 (patch) | |
tree | 676615b7aefa814dace3cdf7d42699ed01b2af58 /src/client.cpp | |
parent | eab47c4f2674516d9499e837eff5b6b40f48213d (diff) | |
download | mana-65fac3220e870160e888da4bc8e826653a8a0720.tar.gz mana-65fac3220e870160e888da4bc8e826653a8a0720.tar.bz2 mana-65fac3220e870160e888da4bc8e826653a8a0720.tar.xz mana-65fac3220e870160e888da4bc8e826653a8a0720.zip |
Updated PhysicsFS API usage
Unfortunately, since we're making a difference between config and data,
and also want to know where to write screenshots, we can't get rid of
PHYSFS_getUserDir entirely. We'd need a replacement to get rid of the
deprecation warnings.
Also removed copying of old config file at "/.tmw/config.xml".
Diffstat (limited to 'src/client.cpp')
-rw-r--r-- | src/client.cpp | 56 |
1 files changed, 9 insertions, 47 deletions
diff --git a/src/client.cpp b/src/client.cpp index 6bbba39b..705cfdc0 100644 --- a/src/client.cpp +++ b/src/client.cpp @@ -1114,22 +1114,16 @@ void Client::initHomeDir() if (mLocalDataDir.empty()) { -#ifdef __APPLE__ - // Use Application Directory instead of .mana - mLocalDataDir = std::string(PHYSFS_getUserDir()) + - "/Library/Application Support/" + - branding.getValue("appName", "Mana"); -#elif defined __HAIKU__ - mLocalDataDir = std::string(PHYSFS_getUserDir()) + - "/config/data/Mana"; +#if defined __HAIKU__ + mLocalDataDir = PHYSFS_getUserDir(); + mLocalDataDir += "/config/data/Mana"; #elif defined _WIN32 mLocalDataDir = getSpecialFolderLocation(CSIDL_LOCAL_APPDATA); if (mLocalDataDir.empty()) - mLocalDataDir = std::string(PHYSFS_getUserDir()); + mLocalDataDir = PHYSFS_getUserDir(); mLocalDataDir += "/Mana"; #else - mLocalDataDir = std::string(PHYSFS_getUserDir()) + - "/.local/share/mana"; + mLocalDataDir = PHYSFS_getPrefDir("manasource.org", "mana"); #endif } @@ -1147,17 +1141,12 @@ void Client::initHomeDir() #ifdef __APPLE__ mConfigDir = mLocalDataDir + "/" + app; #elif defined __HAIKU__ - mConfigDir = std::string(PHYSFS_getUserDir()) + - "/config/settings/Mana" + - branding.getValue("appName", "manasource"); + mConfigDir = PHYSFS_getPrefDir("manasource.org", "Mana"); + mConfigDir += app; #elif defined _WIN32 - mConfigDir = getSpecialFolderLocation(CSIDL_APPDATA); - if (mConfigDir.empty()) - mConfigDir = mLocalDataDir; - else - mConfigDir += "/mana/" + app; + mConfigDir = PHYSFS_getPrefDir("Mana", app.c_str()); #else - mConfigDir = std::string(PHYSFS_getUserDir()) + "/.config/mana/" + app; + mConfigDir = std::string(PHYSFS_getUserDir()) + ".config/mana/" + app; #endif } @@ -1166,33 +1155,6 @@ void Client::initHomeDir() logger->error(strprintf(_("%s doesn't exist and can't be created! " "Exiting."), mConfigDir.c_str())); } - - struct stat statbuf; - std::string newConfigFile = mConfigDir + "/config.xml"; - if (stat(newConfigFile.c_str(), &statbuf)) - { - std::string oldConfigFile = std::string(PHYSFS_getUserDir()) + - "/.tmw/config.xml"; - if (mRootDir.empty() && !stat(oldConfigFile.c_str(), &statbuf) - && S_ISREG(statbuf.st_mode)) - { - std::ifstream oldConfig; - std::ofstream newConfig; - logger->log("Copying old TMW settings."); - - oldConfig.open(oldConfigFile.c_str(), std::ios::binary); - newConfig.open(newConfigFile.c_str(), std::ios::binary); - - if (!oldConfig.is_open() || !newConfig.is_open()) - logger->log("Unable to copy old settings."); - else - { - newConfig << oldConfig.rdbuf(); - newConfig.close(); - oldConfig.close(); - } - } - } } /** |