aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVladimir Menshakov2011-06-12 13:06:27 +0400
committerAlyssa Milburn2011-06-15 17:34:17 +0200
commit7eb8e0bbe7151a09bec7e3a4afb4f4e6ffd8b335 (patch)
tree9229c6b3584167f16b1822c549a0e95ac38fc13c
parent8ea7a7a3d1e92bfd9b8f4836cba4492bb91fc8da (diff)
downloadscummvm-rg350-7eb8e0bbe7151a09bec7e3a4afb4f4e6ffd8b335.tar.gz
scummvm-rg350-7eb8e0bbe7151a09bec7e3a4afb4f4e6ffd8b335.tar.bz2
scummvm-rg350-7eb8e0bbe7151a09bec7e3a4afb4f4e6ffd8b335.zip
DREAMWEB: unstubbed dontloadseg
-rw-r--r--engines/dreamweb/dreamweb.cpp14
-rw-r--r--engines/dreamweb/dreamweb.h1
2 files changed, 14 insertions, 1 deletions
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index b5e2a1328c..fb65e71abf 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -181,6 +181,12 @@ void DreamWebEngine::openFile(const Common::String &name) {
}
}
+uint32 DreamWebEngine::skipBytes(uint32 bytes) {
+ if (!_file.seek(bytes, SEEK_CUR))
+ error("seekk failed");
+ return _file.pos();
+}
+
uint32 DreamWebEngine::readFromFile(uint8 *dst, unsigned size) {
processEvents();
if (!_file.isOpen())
@@ -427,7 +433,13 @@ void createfile(Context &context) {
}
void dontloadseg(Context &context) {
- ::error("dontloadseg");
+ context.ax = context.es.word(context.di);
+ context._add(context.di, 2);
+ context.dx = context.ax;
+ context.cx = 0;
+ unsigned pos = engine()->skipBytes(context.dx);
+ context.dx = pos >> 16;
+ context.ax = pos & 0xffff;
}
void mousecall(Context &context) {
diff --git a/engines/dreamweb/dreamweb.h b/engines/dreamweb/dreamweb.h
index 0666bb8518..78c8960b79 100644
--- a/engines/dreamweb/dreamweb.h
+++ b/engines/dreamweb/dreamweb.h
@@ -80,6 +80,7 @@ public:
void openFile(const Common::String &name);
uint32 readFromFile(uint8 *dst, unsigned size);
+ uint32 skipBytes(uint32 bytes);
void closeFile();
void mouseCall(); //fill mouse pos and button state