From 8a70730f08eeb397c05b909244282bb32136a0cf Mon Sep 17 00:00:00 2001 From: adrian17 Date: Sun, 3 Aug 2014 17:45:19 +0200 Subject: [PATCH 1/2] Make RCT2 know if LodePNG failed --- src/screenshot.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/screenshot.c b/src/screenshot.c index bae591dd53..240745c906 100644 --- a/src/screenshot.c +++ b/src/screenshot.c @@ -259,7 +259,10 @@ int screenshot_dump_png() unsigned int error = lodepng_encode(&png, &pngSize, dpi->bits, stride, dpi->height, &state); if (!error) lodepng_save_file(png, pngSize, path); - if (error) fprintf(stderr, "error: %u: %s\n", error, lodepng_error_text(error)); + if (error) { + fprintf(stderr, "error: %u: %s\n", error, lodepng_error_text(error)); + index = -1; + } free(png); return index; From ae85c697ee3307d28770890876f17d93f2e721c7 Mon Sep 17 00:00:00 2001 From: adrian17 Date: Sun, 3 Aug 2014 18:13:15 +0200 Subject: [PATCH 2/2] Save screenshots when PrintScreen is pressed --- src/osinterface.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/osinterface.c b/src/osinterface.c index 9895eebf4f..cde7d3b082 100644 --- a/src/osinterface.c +++ b/src/osinterface.c @@ -29,6 +29,7 @@ #include "config.h" #include "gfx.h" #include "osinterface.h" +#include "screenshot.h" #include "window.h" #include "rct2.h" #include "cursors.h" @@ -387,6 +388,12 @@ void osinterface_process_messages() gKeysPressed[e.key.keysym.scancode] = 1; if (e.key.keysym.sym == SDLK_RETURN && e.key.keysym.mod & KMOD_ALT) osinterface_set_fullscreen_mode(!gGeneral_config.fullscreen_mode); + if (e.key.keysym.sym == SDLK_PRINTSCREEN){ + RCT2_GLOBAL(RCT2_ADDRESS_SCREENSHOT_COUNTDOWN, sint8) = 1; + //this function is normally called only in-game (in game_update) + //calling it here will save screenshots even while in main menu + screenshot_check(); + } break; default: break;