diff options
author | Bernd Wachter <bwachter-tmw@lart.info> | 2010-03-01 01:06:17 +0100 |
---|---|---|
committer | Bernd Wachter <bwachter-tmw@lart.info> | 2010-03-01 01:15:17 +0100 |
commit | d357426f64cb6f484214ec166615d70e789d63c4 (patch) | |
tree | dadabcbf9174df7957640a1fa5ebfa9ade31f5b7 /src/game.cpp | |
parent | 56e9e78a8775be791bf1acf203251aa28f0fa0cb (diff) | |
download | mana-d357426f64cb6f484214ec166615d70e789d63c4.tar.gz mana-d357426f64cb6f484214ec166615d70e789d63c4.tar.bz2 mana-d357426f64cb6f484214ec166615d70e789d63c4.tar.xz mana-d357426f64cb6f484214ec166615d70e789d63c4.zip |
Check and create screenshot directory only when a screenshot is made
Diffstat (limited to 'src/game.cpp')
-rw-r--r-- | src/game.cpp | 12 |
1 files changed, 11 insertions, 1 deletions
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(); |