aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVladimir Menshakov2011-06-12 20:21:41 +0400
committerAlyssa Milburn2011-06-15 17:34:25 +0200
commitc330f5d0b893a9f303addc3e7f20aa20678fc651 (patch)
tree29182de6c3f4f0b9d2e4c1fb5a4adc14f3281d71
parentbf80a8a3ac6f40000a042e94af2e257dc67ec6e0 (diff)
downloadscummvm-rg350-c330f5d0b893a9f303addc3e7f20aa20678fc651.tar.gz
scummvm-rg350-c330f5d0b893a9f303addc3e7f20aa20678fc651.tar.bz2
scummvm-rg350-c330f5d0b893a9f303addc3e7f20aa20678fc651.zip
DREAMWEB: modify register after raster operations
-rw-r--r--engines/dreamweb/dreamweb.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index 086aee2e9a..2ca38ce9a4 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -355,6 +355,9 @@ void multiget(Context &context) {
uint8 *dst_p = context.es.ptr(dst + w * y, w);
memcpy(dst_p, src_p, w);
}
+ context.si += w * h;
+ context.di = src + kScreenwidth * h;
+ context.cx = 0;
}
void multiput(Context &context) {
@@ -368,6 +371,9 @@ void multiput(Context &context) {
uint8 *dst_p = context.es.ptr(dst + kScreenwidth * y, w);
memcpy(dst_p, src_p, w);
}
+ context.si += w * h;
+ context.di = dst + kScreenwidth * h;
+ context.cx = 0;
}
void multidump(Context &context) {
@@ -377,11 +383,14 @@ void multidump(Context &context) {
unsigned offset = x + y * kScreenwidth;
//debug(1, "multidump %ux%u(segment: %04x) -> %d,%d(address: %d)", w, h, (uint16)context.ds, x, y, offset);
context.engine->blit(context.ds.ptr(offset, w * h), kScreenwidth, x, y, w, h);
+ context.si = context.di = offset + h * kScreenwidth;
+ context.cx = 0;
}
void worktoscreen(Context &context) {
context.ds = context.data.word(kWorkspace);
context.engine->blit(context.ds.ptr(0, 320 * 200), 320, 0, 0, 320, 200);
+ context.cx = 0;
}
void printundermon(Context &context) {