From c330f5d0b893a9f303addc3e7f20aa20678fc651 Mon Sep 17 00:00:00 2001 From: Vladimir Menshakov Date: Sun, 12 Jun 2011 20:21:41 +0400 Subject: DREAMWEB: modify register after raster operations --- engines/dreamweb/dreamweb.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) 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) { -- cgit v1.2.3