aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVladimir Menshakov2011-06-13 12:22:48 +0400
committerAlyssa Milburn2011-06-15 17:34:41 +0200
commit55c366b988e4e49342690f0fc4b180822f005272 (patch)
tree350a7fb8f584cbe44a3c35a0e27e6f7e6a827a4f
parent77624071bcb8c4b938dd054db05dd512d5e73edb (diff)
downloadscummvm-rg350-55c366b988e4e49342690f0fc4b180822f005272.tar.gz
scummvm-rg350-55c366b988e4e49342690f0fc4b180822f005272.tar.bz2
scummvm-rg350-55c366b988e4e49342690f0fc4b180822f005272.zip
DREAMWEB: fixed monitor scrolling
-rw-r--r--engines/dreamweb/dreamweb.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index b3bae38d24..af7ccc83e3 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -332,24 +332,28 @@ void DreamWebEngine::blit(const uint8 *src, int pitch, int x, int y, int w, int
}
void DreamWebEngine::printUnderMonitor() {
+ _context.es = _context.data.word(dreamgen::kWorkspace);
_context.di = dreamgen::kScreenwidth * 43 + 76;
_context.si = _context.di + 8 * dreamgen::kScreenwidth;
- _context.es = _context.data.word(dreamgen::kWorkspace);
Graphics::Surface *s = _system->lockScreen();
if (!s)
error("lockScreen failed");
for(uint y = 0; y < 104; ++y) {
- uint8 *src = (uint8 *)s->getBasePtr(76 + 8, 43 + y);
+ uint8 *src = (uint8 *)s->getBasePtr(76, 43 + 8 + y);
uint8 *dst = _context.es.ptr(_context.di, 170);
for(uint x = 0; x < 170; ++x) {
if (*src < 231)
*dst++ = *src++;
+ else {
+ ++dst; ++src;
+ }
}
_context._add(_context.di, dreamgen::kScreenwidth);
_context._add(_context.si, dreamgen::kScreenwidth);
}
+ _context.cx = 0;
_system->unlockScreen();
}