diff options
Diffstat (limited to 'src/client.cpp')
-rw-r--r-- | src/client.cpp | 21 |
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 << "'"; |