diff options
Diffstat (limited to 'engines')
-rw-r--r-- | engines/dreamweb/dreamweb.cpp | 8 |
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(); } |