aboutsummaryrefslogtreecommitdiff
path: root/engines/lab/transitions.cpp
diff options
context:
space:
mode:
authorFilippos Karapetis2015-12-09 01:41:51 +0200
committerWillem Jan Palenstijn2015-12-23 21:33:58 +0100
commitf137e1af151e0c3838bd5182022e5293468da03f (patch)
tree97399a650f5fc2b19e6d779d3a5c133ff93a8115 /engines/lab/transitions.cpp
parent23bbd70aac37e36f6863da3326704e10fdcfb1a9 (diff)
downloadscummvm-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.cpp8
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);