aboutsummaryrefslogtreecommitdiff
path: root/engines/gob/script.h
diff options
context:
space:
mode:
authorSven Hesse2009-06-22 10:14:18 +0000
committerSven Hesse2009-06-22 10:14:18 +0000
commit7fbad08fd1cb85363628a71ffab5580c8612fe1c (patch)
tree81e9cbd80a5e89d0f8c90da9072aa4b4812568dc /engines/gob/script.h
parent962fc19b57a13cb8de2c194f325e6c9b8b4fc1a0 (diff)
downloadscummvm-rg350-7fbad08fd1cb85363628a71ffab5580c8612fe1c.tar.gz
scummvm-rg350-7fbad08fd1cb85363628a71ffab5580c8612fe1c.tar.bz2
scummvm-rg350-7fbad08fd1cb85363628a71ffab5580c8612fe1c.zip
Implemented a call stack
svn-id: r41754
Diffstat (limited to 'engines/gob/script.h')
-rw-r--r--engines/gob/script.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/engines/gob/script.h b/engines/gob/script.h
index c88d284e82..5c689bd991 100644
--- a/engines/gob/script.h
+++ b/engines/gob/script.h
@@ -27,6 +27,7 @@
#define GOB_SCRIPT_H
#include "common/str.h"
+#include "common/stack.h"
namespace Gob {
@@ -89,6 +90,10 @@ public:
void cuckoo(byte *totData, uint32 totSize);
+ void push();
+ void pop(bool ret = true);
+ void call(uint32 offset);
+
/* byte *loadExtData(int16 dataId, int16 *pResWidth, int16 *pResHeight, uint32 *dataSize = 0);
byte *loadTotResource(int16 id, int16 *dataSize = 0, int16 *width = 0, int16 *height = 0);
@@ -100,6 +105,13 @@ public:
int16 openLocTextFile(char *locTextFile, int language);*/
private:
+ struct CallEntry {
+ byte *totData;
+ byte *totPtr;
+ uint32 totSize;
+ bool finished;
+ };
+
GobEngine *_vm;
Parse *_parser;
@@ -115,6 +127,8 @@ private:
int16 _lomHandle;
+ Common::Stack<CallEntry> _callStack;
+
bool loadTOT(const Common::String &fileName);
bool loadLOM(const Common::String &fileName);