summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/client.cpp21
1 files changed, 15 insertions, 6 deletions
diff --git a/src/client.cpp b/src/client.cpp
index 3320172f4..b637e0336 100644
--- a/src/client.cpp
+++ b/src/client.cpp
@@ -1710,13 +1710,22 @@ void Client::makeScreenshot(IrrlichtDevice *device)
if (image) {
raw_image->copyTo(image);
- irr::c8 filename[256];
- snprintf(filename, sizeof(filename),
- (std::string("%s") + DIR_DELIM + "screenshot_%u.png").c_str(),
- g_settings->get("screenshot_path").c_str(),
- device->getTimer()->getRealTime());
+
+ std::string filename;
+
+ time_t t = time(NULL);
+ struct tm *tm = localtime(&t);
+ char timetstamp_c[16]; // YYYYMMDD_HHMMSS + '\0'
+ strftime(timetstamp_c, sizeof(timetstamp_c), "%Y%m%d_%H%M%S", tm);
+
+ filename = g_settings->get("screenshot_path")
+ + DIR_DELIM
+ + std::string("screenshot_")
+ + std::string(timetstamp_c)
+ + ".png";
+
std::ostringstream sstr;
- if (driver->writeImageToFile(image, filename)) {
+ if (driver->writeImageToFile(image, filename.c_str())) {
sstr << "Saved screenshot to '" << filename << "'";
} else {
sstr << "Failed to save screenshot '" << filename << "'";