GLK: ADVSYS: Fixes for get action

This commit is contained in:
Paul Gilbert 2019-06-16 16:03:58 -07:00
parent a9261a6d31
commit c7a9306415
2 changed files with 5 additions and 4 deletions

View File

@ -134,7 +134,7 @@ bool Game::init(Common::SeekableReadStream *s) {
decrypt(&_data[0], _size);
_wordTable = &_data[_wordTableOffset];
_wordTypeTable = &_data[_wordTypeTableOffset];
_wordTypeTable = &_data[_wordTypeTableOffset - 1];
_objectTable = &_data[_objectTableOffset];
_actionTable = &_data[_actionTableOffset];
_variableTable = &_data[_variableTableOffset];

View File

@ -467,7 +467,7 @@ bool VM::parseInput() {
// Get direct object, preposition, and/or indirect object
if (_wordPtr != _words.end()) {
// Get any direct objects
noun1 = _adjectiveList.size();
noun1 = _adjectiveList.size() + 1;
for (;;) {
// Get the next direct object
if (!getNoun())
@ -475,7 +475,7 @@ bool VM::parseInput() {
++cnt1;
// Check for more direct objects
if (_wordPtr == _words.end() || getWordType(*_wordPtr))
if (_wordPtr == _words.end() || getWordType(*_wordPtr) != WT_CONJUNCTION)
break;
++_wordPtr;
}
@ -617,7 +617,7 @@ uint VM::getNoun() {
// Add a noun entry to the list
Noun n;
n._adjective = &_adjectiveList[alStart];
n._noun = *_wordPtr++;
n._noun = (_wordPtr == _words.end()) ? 0 : *_wordPtr++;
n._num = _wordPtr - _words.begin() - 1;
_nouns.push_back(n);
@ -641,6 +641,7 @@ bool VM::getVerb() {
if (checkVerb(_verbs)) {
++_wordPtr;
} else {
_verbs.pop_back();
_verbs.push_back(_words.back());
if (checkVerb(_verbs)) {