aboutsummaryrefslogtreecommitdiff
path: root/engines/mohawk/dialogs.cpp
diff options
context:
space:
mode:
authorBastien Bouclet2018-04-29 19:22:50 +0200
committerBastien Bouclet2018-06-14 21:04:44 +0200
commitc0fa7ceae5e23f09b3e28cca6900ccf2a8313e26 (patch)
tree32a49329107056cc488f089a8b6c9545d1b9a711 /engines/mohawk/dialogs.cpp
parent4ea8ed4ff5e835281615442de1ea0425743f9a20 (diff)
downloadscummvm-rg350-c0fa7ceae5e23f09b3e28cca6900ccf2a8313e26.tar.gz
scummvm-rg350-c0fa7ceae5e23f09b3e28cca6900ccf2a8313e26.tar.bz2
scummvm-rg350-c0fa7ceae5e23f09b3e28cca6900ccf2a8313e26.zip
MOHAWK: MYST: Clean up the options dialog
Also load and save games using ctrl-o / ctrl-s.
Diffstat (limited to 'engines/mohawk/dialogs.cpp')
-rw-r--r--engines/mohawk/dialogs.cpp45
1 files changed, 27 insertions, 18 deletions
diff --git a/engines/mohawk/dialogs.cpp b/engines/mohawk/dialogs.cpp
index f4433152a8..a83116ed07 100644
--- a/engines/mohawk/dialogs.cpp
+++ b/engines/mohawk/dialogs.cpp
@@ -179,7 +179,13 @@ void MohawkOptionsDialog::handleCommand(GUI::CommandSender *sender, uint32 cmd,
#ifdef ENABLE_MYST
-MystOptionsDialog::MystOptionsDialog(MohawkEngine_Myst* vm) : MohawkOptionsDialog(vm), _vm(vm) {
+MystOptionsDialog::MystOptionsDialog(MohawkEngine_Myst* vm) :
+ MohawkOptionsDialog(vm),
+ _vm(vm),
+ _canDropPage(false),
+ _canShowMap(false),
+ _canReturnToMenu(false) {
+
// I18N: Option for fast scene switching
_zipModeCheckbox = new GUI::CheckboxWidget(this, 15, 10, 220, 15, _("~Z~ip Mode Activated"), nullptr, kZipCmd);
_transitionsCheckbox = new GUI::CheckboxWidget(this, 15, 30, 220, 15, _("~T~ransitions Enabled"), nullptr, kTransCmd);
@@ -205,18 +211,15 @@ MystOptionsDialog::~MystOptionsDialog() {
void MystOptionsDialog::open() {
MohawkOptionsDialog::open();
- bool canDropPage = _vm->isInteractive() && _vm->_gameState->_globals.heldPage != kNoPage;
- _dropPageButton->setEnabled(canDropPage);
+ _dropPageButton->setEnabled(_canDropPage);
if (_showMapButton) {
- bool canShowMap = _vm->isInteractive() && _vm->_stack->getMap();
- _showMapButton->setEnabled(canShowMap);
+ _showMapButton->setEnabled(_canShowMap);
}
if (_returnToMenuButton) {
// Return to menu button is not enabled on the menu
- bool canReturnToMenu = _vm->isInteractive() && _vm->_stack->getStackId() != kDemoStack;
- _returnToMenuButton->setEnabled(canReturnToMenu);
+ _returnToMenuButton->setEnabled(_canReturnToMenu);
}
// Zip mode is disabled in the demo
@@ -230,32 +233,26 @@ void MystOptionsDialog::open() {
void MystOptionsDialog::handleCommand(GUI::CommandSender *sender, uint32 cmd, uint32 data) {
switch (cmd) {
case kDropCmd:
- _vm->_needsPageDrop = true;
+ setResult(kActionDropPage);
close();
break;
case kMapCmd:
- _vm->_needsShowMap = true;
+ setResult(kActionShowMap);
close();
break;
case kMenuCmd:
- _vm->_needsShowDemoMenu = true;
+ setResult(kActionGoToMenu);
close();
break;
case kQuitCmd: {
- if (_vm->getGameType() != GType_MAKINGOF) {
- _vm->_needsShowCredits = true;
- } else {
- Common::Event eventQ;
- eventQ.type = Common::EVENT_QUIT;
- g_system->getEventManager()->pushEvent(eventQ);
- }
+ setResult(kActionShowCredits);
close();
}
break;
case GUI::kOKCmd:
_vm->_gameState->_globals.zipMode = _zipModeCheckbox->getState();
_vm->_gameState->_globals.transitions = _transitionsCheckbox->getState();
- setResult(1);
+ setResult(kActionNone);
close();
break;
default:
@@ -263,6 +260,18 @@ void MystOptionsDialog::handleCommand(GUI::CommandSender *sender, uint32 cmd, ui
}
}
+void MystOptionsDialog::setCanDropPage(bool canDropPage) {
+ _canDropPage = canDropPage;
+}
+
+void MystOptionsDialog::setCanShowMap(bool canShowMap) {
+ _canShowMap = canShowMap;
+}
+
+void MystOptionsDialog::setCanReturnToMenu(bool canReturnToMenu) {
+ _canReturnToMenu = canReturnToMenu;
+}
+
#endif
#ifdef ENABLE_RIVEN