From 167d401ad70868479613e3f8a2d66e8667c5f4c4 Mon Sep 17 00:00:00 2001 From: Vladimir Menshakov Date: Mon, 13 Jun 2011 14:20:56 +0400 Subject: DREAMWEB: fix registers on exit from stubs --- engines/dreamweb/dreamweb.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'engines/dreamweb/dreamweb.cpp') diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp index 3d74570da2..6bf0fff665 100644 --- a/engines/dreamweb/dreamweb.cpp +++ b/engines/dreamweb/dreamweb.cpp @@ -275,6 +275,7 @@ void DreamWebEngine::mouseCall() { unsigned state = eventMan->getButtonState(); _context.bx = state == _oldMouseState? 0: state; _oldMouseState = state; + _context.flags._c = false; } void DreamWebEngine::setGraphicsMode() { @@ -426,7 +427,9 @@ void multidump(Context &context) { void worktoscreen(Context &context) { context.ds = context.data.word(kWorkspace); - context.engine->blit(context.ds.ptr(0, 320 * 200), 320, 0, 0, 320, 200); + uint size = 320 * 200; + context.engine->blit(context.ds.ptr(0, size), 320, 0, 0, 320, 200); + context.di = context.si = size; context.cx = 0; } @@ -450,6 +453,9 @@ void frameoutnm(Context &context) { uint8 *dst_p = context.es.ptr(dst + pitch * l, w); memcpy(dst_p, src_p, w); } + context.di += dst + pitch * h; + context.si += w * h; + context.cx = 0; } void seecommandtail(Context &context) { @@ -528,6 +534,7 @@ void dontloadseg(Context &context) { unsigned pos = context.engine->skipBytes(context.dx); context.dx = pos >> 16; context.ax = pos & 0xffff; + context.flags._c = false; } void mousecall(Context &context) { -- cgit v1.2.3