diff options
author | Bastien Bouclet | 2018-04-29 19:22:50 +0200 |
---|---|---|
committer | Bastien Bouclet | 2018-06-14 21:04:44 +0200 |
commit | c0fa7ceae5e23f09b3e28cca6900ccf2a8313e26 (patch) | |
tree | 32a49329107056cc488f089a8b6c9545d1b9a711 /engines/mohawk/dialogs.cpp | |
parent | 4ea8ed4ff5e835281615442de1ea0425743f9a20 (diff) | |
download | scummvm-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.cpp | 45 |
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 |