aboutsummaryrefslogtreecommitdiff
path: root/engines/xeen/dialogs/dialogs_control_panel.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/xeen/dialogs/dialogs_control_panel.cpp')
-rw-r--r--engines/xeen/dialogs/dialogs_control_panel.cpp14
1 files changed, 8 insertions, 6 deletions
diff --git a/engines/xeen/dialogs/dialogs_control_panel.cpp b/engines/xeen/dialogs/dialogs_control_panel.cpp
index 177c7785f8..80d1715ff7 100644
--- a/engines/xeen/dialogs/dialogs_control_panel.cpp
+++ b/engines/xeen/dialogs/dialogs_control_panel.cpp
@@ -61,9 +61,10 @@ int ControlPanel::execute() {
w.writeString("\xB""000\t000\x1");
w.update();
+ events.updateGameCounter();
+ intf.draw3d(false, false);
+
do {
- events.updateGameCounter();
- intf.draw3d(false, false);
w.writeString("\r");
drawButtons(&w);
w.writeString(text);
@@ -80,7 +81,7 @@ int ControlPanel::execute() {
checkEvents(_vm);
if (_vm->shouldExit())
return 0;
- } while (!_buttonValue && !events.timeElapsed());
+ } while (!_buttonValue && events.timeElapsed() < 2);
switch (_buttonValue) {
case Common::KEYCODE_q:
@@ -97,11 +98,11 @@ int ControlPanel::execute() {
sound.playFX(51);
if (g_vm->getGameID() == GType_WorldOfXeen) {
- map._loadDarkSide = false;
+ map._loadCcNum = 0;
map.load(28);
party._mazeDirection = DIR_EAST;
} else {
- map._loadDarkSide = true;
+ map._loadCcNum = 1;
map.load(29);
party._mazeDirection = DIR_SOUTH;
}
@@ -169,7 +170,8 @@ int ControlPanel::execute() {
intf.drawParty(true);
if (result == 3) {
- saves.loadGame();
+ if (g_vm->canLoadGameStateCurrently())
+ saves.loadGame();
} else if (result == 4) {
saves.saveGame();
}