diff options
author | Filippos Karapetis | 2015-12-09 01:41:51 +0200 |
---|---|---|
committer | Willem Jan Palenstijn | 2015-12-23 21:33:58 +0100 |
commit | f137e1af151e0c3838bd5182022e5293468da03f (patch) | |
tree | 97399a650f5fc2b19e6d779d3a5c133ff93a8115 /engines/lab/transitions.cpp | |
parent | 23bbd70aac37e36f6863da3326704e10fdcfb1a9 (diff) | |
download | scummvm-rg350-f137e1af151e0c3838bd5182022e5293468da03f.tar.gz scummvm-rg350-f137e1af151e0c3838bd5182022e5293468da03f.tar.bz2 scummvm-rg350-f137e1af151e0c3838bd5182022e5293468da03f.zip |
LAB: Use a local buffer for moving tiles in the tile puzzle
This fixes the crash when a tile is moved
Diffstat (limited to 'engines/lab/transitions.cpp')
-rw-r--r-- | engines/lab/transitions.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/engines/lab/transitions.cpp b/engines/lab/transitions.cpp index b2f07fc60b..7c0b99dc53 100644 --- a/engines/lab/transitions.cpp +++ b/engines/lab/transitions.cpp @@ -387,10 +387,10 @@ void DisplayMan::blackAllScreen() { * The _tempScrollData variable must be initialized to some memory, or this * function will fail. */ -void DisplayMan::scrollDisplayX(int16 dx, uint16 x1, uint16 y1, uint16 x2, uint16 y2) { +void DisplayMan::scrollDisplayX(int16 dx, uint16 x1, uint16 y1, uint16 x2, uint16 y2, byte *buffer) { Image im; - im._imageData = _tempScrollData; + im._imageData = buffer; if (x1 > x2) SWAP<uint16>(x1, x2); @@ -411,10 +411,10 @@ void DisplayMan::scrollDisplayX(int16 dx, uint16 x1, uint16 y1, uint16 x2, uint1 /** * Scrolls the display in the y direction by blitting. */ -void DisplayMan::scrollDisplayY(int16 dy, uint16 x1, uint16 y1, uint16 x2, uint16 y2) { +void DisplayMan::scrollDisplayY(int16 dy, uint16 x1, uint16 y1, uint16 x2, uint16 y2, byte *buffer) { Image im; - im._imageData = _tempScrollData; + im._imageData = buffer; if (x1 > x2) SWAP<uint16>(x1, x2); |