diff options
Diffstat (limited to 'engines/sky/control.cpp')
-rw-r--r-- | engines/sky/control.cpp | 23 |
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; } |