diff options
-rw-r--r-- | engines/xeen/dialogs/dialogs_quests.cpp | 2 | ||||
-rw-r--r-- | engines/xeen/interface.cpp | 2 | ||||
-rw-r--r-- | engines/xeen/party.cpp | 6 | ||||
-rw-r--r-- | engines/xeen/scripts.cpp | 4 |
4 files changed, 8 insertions, 6 deletions
diff --git a/engines/xeen/dialogs/dialogs_quests.cpp b/engines/xeen/dialogs/dialogs_quests.cpp index 31d0bdf8d3..ebf15e9c6c 100644 --- a/engines/xeen/dialogs/dialogs_quests.cpp +++ b/engines/xeen/dialogs/dialogs_quests.cpp @@ -157,7 +157,7 @@ void Quests::execute() { break; case AUTO_NOTES: { - int count = _vm->getGameID() == GType_Swords ? 49 : MAX_DIALOG_LINES; + count = _vm->getGameID() == GType_Swords ? 49 : MAX_DIALOG_LINES; for (int idx = 0; idx < count; ++idx) lines[idx] = ""; diff --git a/engines/xeen/interface.cpp b/engines/xeen/interface.cpp index e986b9f2c1..cf44a602c9 100644 --- a/engines/xeen/interface.cpp +++ b/engines/xeen/interface.cpp @@ -654,7 +654,7 @@ void Interface::doStepCode() { break; } - if (_vm->_files->_ccNum && party._gameFlags[1][118]) { + if (_vm->getGameID() != GType_Swords && _vm->_files->_ccNum && party._gameFlags[1][118]) { _falling = FALL_NONE; } else { if (_falling != FALL_NONE) diff --git a/engines/xeen/party.cpp b/engines/xeen/party.cpp index b6ac558712..94ba964428 100644 --- a/engines/xeen/party.cpp +++ b/engines/xeen/party.cpp @@ -922,7 +922,8 @@ bool Party::giveTake(int takeMode, uint takeVal, int giveMode, uint giveVal, int break; } case 20: - _gameFlags[files._ccNum][takeVal] = false; + assert(takeVal < 256); + _gameFlags[_vm->getGameID() == GType_Swords ? 0 : files._ccNum][takeVal] = false; break; case 21: { const uint WEAPONS_END = _vm->getGameID() != GType_Swords ? 35 : 41; @@ -1187,7 +1188,8 @@ bool Party::giveTake(int takeMode, uint takeVal, int giveMode, uint giveVal, int break; } case 20: - _gameFlags[files._ccNum][giveVal] = true; + assert(giveVal < 256); + _gameFlags[_vm->getGameID() == GType_Swords ? 0 : files._ccNum][giveVal] = true; break; case 21: { const uint WEAPONS_END = _vm->getGameID() != GType_Swords ? 35 : 41; diff --git a/engines/xeen/scripts.cpp b/engines/xeen/scripts.cpp index a354bc1a29..22f65fdc24 100644 --- a/engines/xeen/scripts.cpp +++ b/engines/xeen/scripts.cpp @@ -1589,9 +1589,9 @@ bool Scripts::ifProc(int action, uint32 val, int mode, int charIndex) { break; } case 20: - if (files._ccNum) + assert(val < 256); + if (files._ccNum && _vm->getGameID() != GType_Swords) val += 256; - assert(val < 512); v = party._gameFlags[val / 256][val % 256] ? val : 0xffffffff; break; case 21: { |