diff options
Diffstat (limited to 'engines/hugo/parser.h')
-rw-r--r-- | engines/hugo/parser.h | 58 |
1 files changed, 29 insertions, 29 deletions
diff --git a/engines/hugo/parser.h b/engines/hugo/parser.h index b98813c7bc..d25b1434e6 100644 --- a/engines/hugo/parser.h +++ b/engines/hugo/parser.h @@ -47,11 +47,12 @@ public: Parser(HugoEngine *vm); virtual ~Parser(); - bool isWordPresent(char **wordArr); + bool isWordPresent(char **wordArr); - void charHandler(); - void command(const char *format, ...); - void keyHandler(uint16 nChar, uint16 nFlags); + void charHandler(); + void command(const char *format, ...); + + virtual void keyHandler(uint16 nChar, uint16 nFlags); virtual void lineHandler() = 0; protected: @@ -60,33 +61,13 @@ protected: protected: char *findNoun(); char *findVerb(); - -private: - char _ringBuffer[32]; // Ring buffer + bool _checkDoubleF1Fl; // Flag used to display user help or instructions uint16 _putIndex; uint16 _getIndex; // Index into ring buffer - bool _checkDoubleF1Fl; // Flag used to display user help or instructions - - void showDosInventory(); -}; - -class Parser_v1w : public Parser { -public: - Parser_v1w(HugoEngine *vm); - ~Parser_v1w(); - - virtual void lineHandler(); - -protected: - bool isBackgroundWord(objectList_t obj); - bool isCatchallVerb(objectList_t obj); - bool isGenericVerb(object_t *obj, char *comment); - bool isObjectVerb(object_t *obj, char *comment); - void takeObject(object_t *obj); + char _ringBuffer[32]; // Ring buffer private: - bool isNear(object_t *obj, char *verb, char *comment); - void dropObject(object_t *obj); + void showDosInventory(); }; class Parser_v1d : public Parser { @@ -115,12 +96,31 @@ public: void lineHandler(); }; -class Parser_v3d : public Parser_v1w { +class Parser_v3d : public Parser { public: Parser_v3d(HugoEngine *vm); ~Parser_v3d(); - void lineHandler(); + virtual void lineHandler(); +protected: + bool isBackgroundWord(objectList_t obj); + bool isCatchallVerb(objectList_t obj); + bool isGenericVerb(object_t *obj, char *comment); + bool isObjectVerb(object_t *obj, char *comment); + void takeObject(object_t *obj); + +private: + bool isNear(object_t *obj, char *verb, char *comment); + void dropObject(object_t *obj); +}; + +class Parser_v1w : public Parser_v3d { +public: + Parser_v1w(HugoEngine *vm); + ~Parser_v1w(); + + void keyHandler(uint16 nChar, uint16 nFlags); + void lineHandler(); }; } // End of namespace Hugo |