aboutsummaryrefslogtreecommitdiff
path: root/engines/cge2/cge2_main.cpp
diff options
context:
space:
mode:
authoruruk2014-06-21 01:57:18 +0200
committeruruk2014-06-21 01:57:18 +0200
commite708c1e5cd14e1eed2f9e68ff4335cdd00b93f20 (patch)
treedbbbb893a38aad05e9dc8582819345df683c0e03 /engines/cge2/cge2_main.cpp
parentfcd387553f5242139e78db87f91047c55705e259 (diff)
downloadscummvm-rg350-e708c1e5cd14e1eed2f9e68ff4335cdd00b93f20.tar.gz
scummvm-rg350-e708c1e5cd14e1eed2f9e68ff4335cdd00b93f20.tar.bz2
scummvm-rg350-e708c1e5cd14e1eed2f9e68ff4335cdd00b93f20.zip
CGE2: Implement "quit menu".
Now the "main switch" on the menu panel is working. Also move a couple of defines from cge2_main.h to cge2.h during the process.
Diffstat (limited to 'engines/cge2/cge2_main.cpp')
-rw-r--r--engines/cge2/cge2_main.cpp23
1 files changed, 22 insertions, 1 deletions
diff --git a/engines/cge2/cge2_main.cpp b/engines/cge2/cge2_main.cpp
index f16f0ce340..34e7cfe50f 100644
--- a/engines/cge2/cge2_main.cpp
+++ b/engines/cge2/cge2_main.cpp
@@ -35,6 +35,7 @@
#include "cge2/spare.h"
#include "cge2/events.h"
#include "cge2/map.h"
+#include "cge2/vmenu.h"
namespace CGE2 {
@@ -1075,7 +1076,27 @@ void CGE2Engine::switchMusic() {
}
void CGE2Engine::quit() {
- warning("STUB: CGE2Engine::quit()");
+ Common::Array<Choice *> quitMenu; // Deleted in VMenu's destructor.
+ quitMenu.push_back(new StartCountDownChoice(this));
+ quitMenu.push_back(new ResetQSwitchChoice(this));
+
+ if (_commandHandler->idle()) {
+ if (VMenu::_addr) {
+ _commandHandlerTurbo->addCommand(kCmdKill, -1, 0, VMenu::_addr);
+ ResetQSwitchChoice rqsChoice(this);
+ rqsChoice.proc();
+ } else {
+ quitMenu[0]->_text = _text->getText(kQuitText);
+ quitMenu[1]->_text = _text->getText(kNoQuitText);
+ (new VMenu(this, quitMenu, V2D(this, -1, -1), kCBMnu))->setName(_text->getText(kQuitTitle));
+ _commandHandlerTurbo->addCommand(kCmdSeq, kPowerRef, 0, nullptr);
+ keyClick();
+ }
+ }
+}
+
+void CGE2Engine::keyClick() {
+ _commandHandlerTurbo->addCommand(kCmdSound, -1, 5, nullptr);
}
void CGE2Engine::setVolume(int idx, int cnt) {