From d357426f64cb6f484214ec166615d70e789d63c4 Mon Sep 17 00:00:00 2001 From: Bernd Wachter Date: Mon, 1 Mar 2010 01:06:17 +0100 Subject: Check and create screenshot directory only when a screenshot is made --- src/client.cpp | 12 ------------ src/game.cpp | 12 +++++++++++- 2 files changed, 11 insertions(+), 13 deletions(-) (limited to 'src') 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 #include @@ -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(); -- cgit v1.2.3-70-g09d2