diff options
Diffstat (limited to 'engines/parallaction/parser.h')
-rw-r--r-- | engines/parallaction/parser.h | 13 |
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); }; |