changeset 14083:32a19322a6f8 draft

(svn r18630) -Fix [FS#3419]: when making a screenshot the name of the previous screenshot went missing in the 'successful screenshot' message
author rubidium <rubidium@openttd.org>
date Fri, 25 Dec 2009 19:16:58 +0000
parents a92e3c331cc1
children fb4726ae5f67
files src/screenshot.cpp src/screenshot.h
diffstat 2 files changed, 10 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/src/screenshot.cpp
+++ b/src/screenshot.cpp
@@ -30,7 +30,7 @@
 char _screenshot_format_name[8];
 uint _num_screenshot_formats;
 uint _cur_screenshot_format;
-char _screenshot_name[128];
+static char _screenshot_name[128];
 char _full_screenshot_name[MAX_PATH];
 
 /* called by the ScreenShot proc to generate screenshot lines. */
@@ -636,15 +636,21 @@
  */
 bool MakeScreenshot(ScreenshotType t, const char *name)
 {
+	if (t == SC_VIEWPORT) {
+		/* First draw the dirty parts of the screen and only then change the name
+		 * of the screenshot. This way the screenshot will always show the name
+		 * of the previous screenshot in the 'succesful' message instead of the
+		 * name of the new screenshot (or an empty name). */
+		UndrawMouseCursor();
+		DrawDirtyBlocks();
+	}
+
 	_screenshot_name[0] = '\0';
 	if (name != NULL) strecpy(_screenshot_name, name, lastof(_screenshot_name));
 
 	bool ret;
 	switch (t) {
 		case SC_VIEWPORT:
-			UndrawMouseCursor();
-			DrawDirtyBlocks();
-			/* FALL THROUGH */
 		case SC_RAW:
 			ret = MakeSmallScreenshot();
 			break;
--- a/src/screenshot.h
+++ b/src/screenshot.h
@@ -29,7 +29,6 @@
 extern char _screenshot_format_name[8];
 extern uint _num_screenshot_formats;
 extern uint _cur_screenshot_format;
-extern char _screenshot_name[128];
 extern char _full_screenshot_name[MAX_PATH];
 
 #endif /* SCREENSHOT_H */