aboutsummaryrefslogtreecommitdiff
path: root/gob/parse.h
diff options
context:
space:
mode:
authorSven Hesse2006-02-02 21:12:00 +0000
committerSven Hesse2006-02-02 21:12:00 +0000
commitda33aa319bf5b5ae91650eaa9d24ef412a5d9af5 (patch)
tree402fb5253ac1d307f3d1370dae8b206879771ea1 /gob/parse.h
parentd88462e7d68c4052fd2927ba7fc3be5566a1b9d9 (diff)
downloadscummvm-rg350-da33aa319bf5b5ae91650eaa9d24ef412a5d9af5.tar.gz
scummvm-rg350-da33aa319bf5b5ae91650eaa9d24ef412a5d9af5.tar.bz2
scummvm-rg350-da33aa319bf5b5ae91650eaa9d24ef412a5d9af5.zip
Added/Changed o2_evaluateStore(), o2_palLoad(), o2_setRenderFlags(), o2_loadTot(), parseVarIndex(), parseValExpr() and parseExpr() for Gob2
svn-id: r20353
Diffstat (limited to 'gob/parse.h')
-rw-r--r--gob/parse.h27
1 files changed, 24 insertions, 3 deletions
diff --git a/gob/parse.h b/gob/parse.h
index 0095739692..a6c481d94a 100644
--- a/gob/parse.h
+++ b/gob/parse.h
@@ -26,14 +26,15 @@ namespace Gob {
class Parse {
public:
- int16 parseExpr(char stopToken, byte *resultPtr);
void skipExpr(char stopToken);
- int16 parseValExpr(unsigned stopToken=99);
- int16 parseVarIndex(void);
void printExpr(char stopToken);
void printVarIndex(void);
+ virtual int16 parseVarIndex(void) = 0;
+ virtual int16 parseValExpr(unsigned stopToken=99) = 0;
+ virtual int16 parseExpr(char stopToken, byte *resultPtr) = 0;
Parse(GobEngine *vm);
+ virtual ~Parse() {};
protected:
enum PointerType {
@@ -48,6 +49,26 @@ protected:
char *decodePtr(int32 n);
};
+class Parse_v1 : public Parse {
+public:
+ Parse_v1(GobEngine *vm);
+ virtual ~Parse_v1() {};
+
+ virtual int16 parseVarIndex(void);
+ virtual int16 parseValExpr(unsigned stopToken=99);
+ virtual int16 parseExpr(char stopToken, byte *resultPtr);
+};
+
+class Parse_v2 : public Parse_v1 {
+public:
+ Parse_v2(GobEngine *vm);
+ virtual ~Parse_v2() {};
+
+ virtual int16 parseVarIndex(void);
+ virtual int16 parseValExpr(unsigned stopToken=99);
+ virtual int16 parseExpr(char stopToken, byte *resultPtr);
+};
+
} // End of namespace Gob
#endif