aboutsummaryrefslogtreecommitdiff
path: root/engines/dreamweb/dreamweb.cpp
diff options
context:
space:
mode:
authorVladimir Menshakov2011-06-12 23:50:19 +0400
committerAlyssa Milburn2011-06-15 17:34:38 +0200
commitedf7d9b42bb4f88b8681e0d3732b4e2daad377c9 (patch)
tree5e81ab0209c184c44f2135065779fca4f7b8d8f3 /engines/dreamweb/dreamweb.cpp
parent6deff847492e33bf270806cacb85ae4db3cc530c (diff)
downloadscummvm-rg350-edf7d9b42bb4f88b8681e0d3732b4e2daad377c9.tar.gz
scummvm-rg350-edf7d9b42bb4f88b8681e0d3732b4e2daad377c9.tar.bz2
scummvm-rg350-edf7d9b42bb4f88b8681e0d3732b4e2daad377c9.zip
DREAMWEB: unstubbed printundermon
Diffstat (limited to 'engines/dreamweb/dreamweb.cpp')
-rw-r--r--engines/dreamweb/dreamweb.cpp25
1 files changed, 24 insertions, 1 deletions
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index 4fe9b41d97..6883580b74 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -312,6 +312,29 @@ void DreamWebEngine::blit(const uint8 *src, int pitch, int x, int y, int w, int
_system->copyRectToScreen(src, pitch, x, y, w, h);
}
+void DreamWebEngine::printUnderMonitor() {
+ _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 *dst = _context.es.ptr(_context.di, 170);
+ for(uint x = 0; x < 170; ++x) {
+ if (*src < 231)
+ *dst++ = *src++;
+ }
+ _context._add(_context.di, dreamgen::kScreenwidth);
+ _context._add(_context.si, dreamgen::kScreenwidth);
+ }
+ _system->unlockScreen();
+}
+
+
void DreamWebEngine::cls() {
_system->fillScreen(0);
}
@@ -372,7 +395,7 @@ void worktoscreen(Context &context) {
}
void printundermon(Context &context) {
- warning("printundermon: STUB");
+ context.engine->printUnderMonitor();
}
void cls(Context &context) {