summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortruelight <truelight@openttd.org>2004-09-25 18:30:19 +0000
committertruelight <truelight@openttd.org>2004-09-25 18:30:19 +0000
commit12c91671bf6118c012df6f1bc9456df2e36f25f3 (patch)
tree974b99bd6bac2be3c8ee1ce8360e8d0b13726fe0
parent3dc8dcf3123c056f6ebd8fafa0640ef1866ea53e (diff)
downloadopenttd-12c91671bf6118c012df6f1bc9456df2e36f25f3.tar.xz
(svn r321) -Fix: crash when making png screenshot with odd resolution (Tron)
-Fix: unable to select other screenshot format in Game Option
-rw-r--r--screenshot.c8
-rw-r--r--settings_gui.c2
2 files changed, 7 insertions, 3 deletions
diff --git a/screenshot.c b/screenshot.c
index c352844e5..fa94c8acd 100644
--- a/screenshot.c
+++ b/screenshot.c
@@ -376,8 +376,12 @@ void SetScreenshotFormat(int i)
// screenshot generator that dumps the current video buffer
void CurrentScreenCallback(void *userdata, byte *buf, uint y, uint pitch, uint n)
{
- assert(_screen.pitch == (int)pitch);
- memcpy(buf, _screen.dst_ptr + y * _screen.pitch, n * _screen.pitch);
+ for (; n > 0; --n)
+ {
+ memcpy(buf, _screen.dst_ptr + y * _screen.pitch, _screen.width);
+ ++y;
+ buf += pitch;
+ }
}
extern void ViewportDoDraw(ViewPort *vp, int left, int top, int right, int bottom);
diff --git a/settings_gui.c b/settings_gui.c
index 9c158569e..4e7501305 100644
--- a/settings_gui.c
+++ b/settings_gui.c
@@ -174,7 +174,7 @@ static void GameOptionsWndProc(Window *w, WindowEvent *e)
break;
// change screenshot format
- case 30:
+ case 31:
SetScreenshotFormat(e->dropdown.index);
SetWindowDirty(w);
break;