diff options
-rw-r--r-- | src/client.cpp | 12 | ||||
-rw-r--r-- | src/game.cpp | 12 |
2 files changed, 11 insertions, 13 deletions
diff --git a/src/client.cpp b/src/client.cpp index a21d004d..dfa42034 100644 --- a/src/client.cpp +++ b/src/client.cpp @@ -1181,10 +1181,6 @@ void Client::initScreenshotDir() mScreenshotDir = getSpecialFolderLocation(CSIDL_DESKTOP); #else mScreenshotDir = std::string(PHYSFS_getUserDir()) + "Desktop"; - // If ~/Desktop does not exist, we save screenshots in the user's home. - struct stat statbuf; - if (stat(mScreenshotDir.c_str(), &statbuf)) - mScreenshotDir = std::string(PHYSFS_getUserDir()); #endif } config.setValue("screenshotDirectory", mScreenshotDir); @@ -1203,14 +1199,6 @@ void Client::initScreenshotDir() } } } - - if (mkdir_r(mScreenshotDir.c_str())) - { - logger->log("Directory %s doesn't exist and can't be created! " - "Setting screenshot directory to home.", - mScreenshotDir.c_str()); - mScreenshotDir = std::string(PHYSFS_getUserDir()); - } } void Client::accountLogin(LoginData *loginData) diff --git a/src/game.cpp b/src/game.cpp index 00c143d4..e753e1f7 100644 --- a/src/game.cpp +++ b/src/game.cpp @@ -82,6 +82,7 @@ #include "resources/resourcemanager.h" #include "utils/gettext.h" +#include "utils/mkdir.h" #include <guichan/exception.hpp> #include <guichan/focushandler.hpp> @@ -297,13 +298,22 @@ static bool saveScreenshot() std::stringstream filenameSuffix; std::stringstream filename; std::fstream testExists; + std::string screenshotDirectory = Client::getScreenshotDirectory(); bool found = false; + if (mkdir_r(screenshotDirectory.c_str()) != 0) + { + logger->log("Directory %s doesn't exist and can't be created! " + "Setting screenshot directory to home.", + screenshotDirectory.c_str()); + screenshotDirectory = std::string(PHYSFS_getUserDir()); + } + do { screenshotCount++; filenameSuffix.str(""); filename.str(""); - filename << Client::getScreenshotDirectory() << "/"; + filename << screenshotDirectory << "/"; filenameSuffix << branding.getValue("appShort", "Mana") << "_Screenshot_" << screenshotCount << ".png"; filename << filenameSuffix.str(); |