aboutsummaryrefslogtreecommitdiff
path: root/engines/kyra/script.h
diff options
context:
space:
mode:
Diffstat (limited to 'engines/kyra/script.h')
-rw-r--r--engines/kyra/script.h11
1 files changed, 8 insertions, 3 deletions
diff --git a/engines/kyra/script.h b/engines/kyra/script.h
index 88bbe86c4d..862cfb7d97 100644
--- a/engines/kyra/script.h
+++ b/engines/kyra/script.h
@@ -70,7 +70,7 @@ class KyraEngine_v1;
class IFFParser : public Common::IFFParser {
public:
- IFFParser(Common::SeekableReadStream &input) : Common::IFFParser(input) {
+ IFFParser(Common::ReadStream &input) : Common::IFFParser(&input) {
// It seems Westwood missunderstood the 'size' field of the FORM chunk.
//
// For EMC scripts (type EMC2) it's filesize instead of filesize - 8,
@@ -84,9 +84,9 @@ public:
// Both lead to some problems in our IFF parser, either reading after the end
// of file or producing a "Chunk overread" error message. To work around this
// we need to adjust the size field properly.
- if (_typeId == MKID_BE('EMC2'))
+ if (_formType == MKID_BE('EMC2'))
_formChunk.size -= 8;
- else if (_typeId == MKID_BE('AVFS'))
+ else if (_formType == MKID_BE('AVFS'))
_formChunk.size += 4;
}
};
@@ -108,6 +108,11 @@ protected:
KyraEngine_v1 *_vm;
int16 _parameter;
+ const char *_filename;
+ EMCData *_scriptData;
+
+ bool callback(Common::IFFChunk &chunk);
+
typedef void (EMCInterpreter::*OpcodeProc)(EMCState *);
struct OpcodeEntry {
OpcodeProc proc;