aboutsummaryrefslogtreecommitdiff
path: root/engines/supernova/state.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/supernova/state.cpp')
-rw-r--r--engines/supernova/state.cpp12
1 files changed, 10 insertions, 2 deletions
diff --git a/engines/supernova/state.cpp b/engines/supernova/state.cpp
index 7cf4294c20..95f48e4ce5 100644
--- a/engines/supernova/state.cpp
+++ b/engines/supernova/state.cpp
@@ -127,6 +127,10 @@ bool GameManager::deserialize(Common::ReadStream *in, int version) {
}
changeRoom(curRoomId);
+ // Some additional variables
+ _guiEnabled = true;
+ _animationEnabled = true;
+
return !in->err();
}
@@ -989,6 +993,9 @@ void GameManager::reply(const char *text, int aus1, int aus2) {
}
int GameManager::dialog(int num, byte rowLength[6], StringID text[6], int number) {
+ _vm->_allowLoadGame = false;
+ _guiEnabled = false;
+
bool remove[6];
for (int i = 0; i < 5; ++i)
remove[i] = _currentRoom->sentenceRemoved(i, number);
@@ -1015,18 +1022,19 @@ int GameManager::dialog(int num, byte rowLength[6], StringID text[6], int number
rq += rowLength[i];
}
- _guiEnabled = false;
_currentSentence = -1;
do {
mouseInput3();
} while (_currentSentence == -1 && !_vm->shouldQuit());
- _guiEnabled = true;
_vm->renderBox(0, 138, 320, 62, kColorBlack);
if (number && _texts[_rowsStart[_currentSentence]] != kStringDialogSeparator)
_currentRoom->removeSentence(_currentSentence, number);
+ _guiEnabled = true;
+ _vm->_allowLoadGame = true;
+
return _currentSentence;
}