aboutsummaryrefslogtreecommitdiff
path: root/engines/sky/control.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/sky/control.cpp')
-rw-r--r--engines/sky/control.cpp23
1 files changed, 11 insertions, 12 deletions
diff --git a/engines/sky/control.cpp b/engines/sky/control.cpp
index 8699c893e4..9d6b58704d 100644
--- a/engines/sky/control.cpp
+++ b/engines/sky/control.cpp
@@ -238,17 +238,13 @@ void Control::removePanel(void) {
free(_sprites.slide2); free(_sprites.slode);
free(_sprites.slode2); free(_sprites.musicBodge);
delete _controlPanel; delete _exitButton;
- delete _slide; delete _slide2;
- delete _slode; delete _restorePanButton;
- delete _savePanel; delete _saveButton;
- delete _downFastButton; delete _downSlowButton;
- delete _upFastButton; delete _upSlowButton;
- delete _quitButton; delete _autoSaveButton;
+ delete _slide; delete _slide2;
+ delete _slode; delete _restorePanButton;
delete _savePanButton; delete _dosPanButton;
delete _restartPanButton; delete _fxPanButton;
delete _musicPanButton; delete _bodge;
- delete _yesNo; delete _text;
- delete _statusBar; delete _restoreButton;
+ delete _yesNo; delete _text;
+ delete _statusBar; delete _restoreButton;
if (_textSprite) {
free(_textSprite);
@@ -496,7 +492,7 @@ void Control::doControlPanel(void) {
_curButtonText = 0;
uint16 clickRes = 0;
- while (!quitPanel && !g_engine->quit()) {
+ while (!quitPanel && !SkyEngine::_systemVars.quitGame) {
_text->drawToScreen(WITH_MASK);
_system->updateScreen();
_mouseClicked = false;
@@ -528,7 +524,7 @@ void Control::doControlPanel(void) {
}
memset(_screenBuf, 0, GAME_SCREEN_WIDTH * FULL_SCREEN_HEIGHT);
_system->copyRectToScreen(_screenBuf, GAME_SCREEN_WIDTH, 0, 0, GAME_SCREEN_WIDTH, FULL_SCREEN_HEIGHT);
- if (!g_engine->quit())
+ if (!SkyEngine::_systemVars.quitGame)
_system->updateScreen();
_skyScreen->forceRefresh();
_skyScreen->setPaletteEndian((uint8 *)_skyCompact->fetchCpt(SkyEngine::_systemVars.currentPalette));
@@ -607,7 +603,7 @@ uint16 Control::handleClick(ConResource *pButton) {
case QUIT_TO_DOS:
animClick(pButton);
if (getYesNo(quitDos))
- g_engine->quitGame();
+ SkyEngine::_systemVars.quitGame = true;
return 0;
default:
error("Control::handleClick: unknown routine: %X",pButton->_onClick);
@@ -879,7 +875,7 @@ uint16 Control::saveRestorePanel(bool allowSave) {
bool refreshNames = true;
bool refreshAll = true;
uint16 clickRes = 0;
- while (!quitPanel && !g_engine->quit()) {
+ while (!quitPanel && !SkyEngine::_systemVars.quitGame) {
clickRes = 0;
if (refreshNames || refreshAll) {
if (refreshAll) {
@@ -1550,6 +1546,9 @@ void Control::delay(unsigned int amount) {
case Common::EVENT_WHEELDOWN:
_mouseWheel = 1;
break;
+ case Common::EVENT_QUIT:
+ SkyEngine::_systemVars.quitGame = true;
+ break;
default:
break;
}