aboutsummaryrefslogtreecommitdiff
path: root/engines/hugo/parser.h
diff options
context:
space:
mode:
Diffstat (limited to 'engines/hugo/parser.h')
-rw-r--r--engines/hugo/parser.h58
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