aboutsummaryrefslogtreecommitdiff
path: root/engines/parallaction/parser.h
diff options
context:
space:
mode:
Diffstat (limited to 'engines/parallaction/parser.h')
-rw-r--r--engines/parallaction/parser.h13
1 files changed, 8 insertions, 5 deletions
diff --git a/engines/parallaction/parser.h b/engines/parallaction/parser.h
index 8385961ce3..0c9d053bf3 100644
--- a/engines/parallaction/parser.h
+++ b/engines/parallaction/parser.h
@@ -328,14 +328,13 @@ protected:
OpcodeSet _instructionParsers;
Table *_instructionNames;
+ uint32 _currentInstruction; // index of the instruction being parsed
+
struct ParserContext {
bool end;
AnimationPtr a;
InstructionPtr inst;
LocalVariable *locals;
-
- // BRA specific
- InstructionPtr openIf;
} ctxt;
DECLARE_UNQUALIFIED_INSTRUCTION_PARSER(defLocal);
@@ -377,7 +376,7 @@ public:
clearSet(_instructionParsers);
}
- void parse(Script *script, ProgramPtr program);
+ virtual void parse(Script *script, ProgramPtr program);
};
@@ -395,6 +394,10 @@ protected:
DECLARE_UNQUALIFIED_INSTRUCTION_PARSER(if_op);
DECLARE_UNQUALIFIED_INSTRUCTION_PARSER(endif);
+ int32 _openIfStatement;
+ void beginIfStatement();
+ void endIfStatement();
+
virtual void parseRValue(ScriptVar &var, const char *str);
public:
@@ -402,7 +405,7 @@ public:
}
virtual void init();
-
+ virtual void parse(Script *script, ProgramPtr program);
};