aboutsummaryrefslogtreecommitdiff
path: root/kyra/screen.cpp
diff options
context:
space:
mode:
authorJohannes Schickel2005-10-22 21:04:07 +0000
committerJohannes Schickel2005-10-22 21:04:07 +0000
commitea85d8c0848d465aa20ddd973a4e4cdf7b23b7cc (patch)
tree9a8803b00d59c8d2db1e990dd578943daf9ba837 /kyra/screen.cpp
parentd8aa978ae74ae7ee00c38cb3aa0ec47050e47d46 (diff)
downloadscummvm-rg350-ea85d8c0848d465aa20ddd973a4e4cdf7b23b7cc.tar.gz
scummvm-rg350-ea85d8c0848d465aa20ddd973a4e4cdf7b23b7cc.tar.bz2
scummvm-rg350-ea85d8c0848d465aa20ddd973a4e4cdf7b23b7cc.zip
Fixed a double loading of shape 10,
and corrected mouse cursor region backup. svn-id: r19242
Diffstat (limited to 'kyra/screen.cpp')
-rw-r--r--kyra/screen.cpp12
1 files changed, 10 insertions, 2 deletions
diff --git a/kyra/screen.cpp b/kyra/screen.cpp
index c95ce3bfeb..f99786211b 100644
--- a/kyra/screen.cpp
+++ b/kyra/screen.cpp
@@ -1404,7 +1404,11 @@ void Screen::copyScreenFromRect(int x, int y, int w, int h, uint8 *ptr) {
x <<= 3; w <<= 3;
uint8 *src = ptr;
uint8 *dst = &_pagePtrs[0][y * SCREEN_W + x];
- memcpy(dst, src, w);
+ for (int i = 0; i < h; ++i) {
+ memcpy(dst, src, w);
+ src += w;
+ dst += SCREEN_W;
+ }
}
void Screen::copyScreenToRect(int x, int y, int w, int h, uint8 *ptr) {
@@ -1412,7 +1416,11 @@ void Screen::copyScreenToRect(int x, int y, int w, int h, uint8 *ptr) {
x <<= 3; w <<= 3;
uint8 *src = &_pagePtrs[0][y * SCREEN_W + x];
uint8 *dst = ptr;
- memcpy(dst, src, w);
+ for (int i = 0; i < h; ++i) {
+ memcpy(dst, src, w);
+ dst += w;
+ src += SCREEN_W;
+ }
}
} // End of namespace Kyra