aboutsummaryrefslogtreecommitdiff
path: root/engines/hugo/parser_v2d.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/hugo/parser_v2d.cpp')
-rw-r--r--engines/hugo/parser_v2d.cpp39
1 files changed, 20 insertions, 19 deletions
diff --git a/engines/hugo/parser_v2d.cpp b/engines/hugo/parser_v2d.cpp
index adaf5e9f9f..99fcf63a4e 100644
--- a/engines/hugo/parser_v2d.cpp
+++ b/engines/hugo/parser_v2d.cpp
@@ -37,10 +37,11 @@
#include "hugo/hugo.h"
#include "hugo/parser.h"
#include "hugo/util.h"
+#include "hugo/object.h"
namespace Hugo {
-Parser_v2d::Parser_v2d(HugoEngine &vm) : Parser_v1d(vm) {
+Parser_v2d::Parser_v2d(HugoEngine *vm) : Parser_v1d(vm) {
}
Parser_v2d::~Parser_v2d() {
@@ -51,15 +52,15 @@ void Parser_v2d::lineHandler() {
debugC(1, kDebugParser, "lineHandler()");
object_t *obj;
- status_t &gameStatus = _vm.getGameStatus();
+ status_t &gameStatus = _vm->getGameStatus();
char farComment[XBYTES * 5] = ""; // hold 5 line comment if object not nearby
// Reset_prompt_line ();
Utils::strlwr(_line); // Convert to lower case
if (!strcmp("exit", _line) || strstr(_line, "quit")) {
- if (Utils::Box(BOX_YESNO, "%s", _vm._textParser[kTBExit_1d]) != 0)
- _vm.endGame();
+ if (Utils::Box(BOX_YESNO, "%s", _vm->_textParser[kTBExit_1d]) != 0)
+ _vm->endGame();
else
return;
}
@@ -70,14 +71,14 @@ void Parser_v2d::lineHandler() {
if (gameStatus.gameOverFl)
Utils::gameOverMsg();
else
-// _vm.file().saveOrRestore(true);
+// _vm->_file->saveOrRestore(true);
warning("STUB: saveOrRestore()");
return;
}
if (!strcmp("restore", _line)) {
_config.soundFl = false;
-// _vm.file().saveOrRestore(false);
+// _vm->_file->saveOrRestore(false);
warning("STUB: saveOrRestore()");
return;
}
@@ -101,35 +102,35 @@ void Parser_v2d::lineHandler() {
do {
noun = findNextNoun(noun); // Find a noun in the line
// Must try at least once for objects allowing verb-context
- for (int i = 0; i < _vm._numObj; i++) {
- obj = &_vm._objects[i];
+ for (int i = 0; i < _vm->_numObj; i++) {
+ obj = &_vm->_object->_objects[i];
if (isNear(verb, noun, obj, farComment)) {
if (isObjectVerb(verb, obj) // Foreground object
|| isGenericVerb(verb, obj)) // Common action type
return;
}
}
- if ((*farComment != '\0') && isBackgroundWord(noun, verb, _vm._backgroundObjects[*_vm._screen_p]))
+ if ((*farComment != '\0') && isBackgroundWord(noun, verb, _vm->_backgroundObjects[*_vm->_screen_p]))
return;
} while (noun);
}
noun = findNextNoun(noun);
- if ( !isCatchallVerb(true, noun, verb, _vm._backgroundObjects[*_vm._screen_p])
- && !isCatchallVerb(true, noun, verb, _vm._catchallList)
- && !isCatchallVerb(false, noun, verb, _vm._backgroundObjects[*_vm._screen_p])
- && !isCatchallVerb(false, noun, verb, _vm._catchallList)) {
+ if ( !isCatchallVerb(true, noun, verb, _vm->_backgroundObjects[*_vm->_screen_p])
+ && !isCatchallVerb(true, noun, verb, _vm->_catchallList)
+ && !isCatchallVerb(false, noun, verb, _vm->_backgroundObjects[*_vm->_screen_p])
+ && !isCatchallVerb(false, noun, verb, _vm->_catchallList)) {
if (*farComment != '\0') { // An object matched but not near enough
Utils::Box(BOX_ANY, "%s", farComment);
- } else if (_maze.enabledFl && (verb == _vm._arrayVerbs[_vm._look][0])) {
- Utils::Box(BOX_ANY, "%s", _vm._textParser[kTBMaze]);
- showTakeables();
+ } else if (_maze.enabledFl && (verb == _vm->_arrayVerbs[_vm->_look][0])) {
+ Utils::Box(BOX_ANY, "%s", _vm->_textParser[kTBMaze]);
+ _vm->_object->showTakeables();
} else if (verb && noun) { // A combination I didn't think of
- Utils::Box(BOX_ANY, "%s", _vm._textParser[kTBNoUse_2d]);
+ Utils::Box(BOX_ANY, "%s", _vm->_textParser[kTBNoUse_2d]);
} else if (verb || noun) {
- Utils::Box(BOX_ANY, "%s", _vm._textParser[kTBNoun]);
+ Utils::Box(BOX_ANY, "%s", _vm->_textParser[kTBNoun]);
} else {
- Utils::Box(BOX_ANY, "%s", _vm._textParser[kTBEh_2d]);
+ Utils::Box(BOX_ANY, "%s", _vm->_textParser[kTBEh_2d]);
}
}
}