diff options
-rw-r--r-- | engines/dreamweb/dreamweb.cpp | 14 | ||||
-rw-r--r-- | engines/dreamweb/dreamweb.h | 1 |
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 |