diff options
Diffstat (limited to 'engines')
-rw-r--r-- | engines/tinsel/inventory.cpp | 2 | ||||
-rw-r--r-- | engines/tinsel/tinlib.cpp | 2 | ||||
-rw-r--r-- | engines/tinsel/tinsel.cpp | 19 | ||||
-rw-r--r-- | engines/tinsel/tinsel.h | 2 |
4 files changed, 12 insertions, 13 deletions
diff --git a/engines/tinsel/inventory.cpp b/engines/tinsel/inventory.cpp index 836e1194fe..ffecacd1be 100644 --- a/engines/tinsel/inventory.cpp +++ b/engines/tinsel/inventory.cpp @@ -3071,7 +3071,7 @@ void InventoryProcess(CORO_PARAM, const void *) { InvLoadGame(); break; case IQUITGAME: - _vm->quitFlag = true; + _vm->quitGame(); break; case CLOSEWIN: KillInventory(); diff --git a/engines/tinsel/tinlib.cpp b/engines/tinsel/tinlib.cpp index d518baa7e8..07c1b22b2a 100644 --- a/engines/tinsel/tinlib.cpp +++ b/engines/tinsel/tinlib.cpp @@ -1271,7 +1271,7 @@ void printtag(HPOLYGON hp, SCNHANDLE text) { void quitgame(void) { stopmidi(); stopsample(); - _vm->quitFlag = true; + _vm->quitGame(); } /** diff --git a/engines/tinsel/tinsel.cpp b/engines/tinsel/tinsel.cpp index 1d145a3cc7..70dd0170b4 100644 --- a/engines/tinsel/tinsel.cpp +++ b/engines/tinsel/tinsel.cpp @@ -625,11 +625,11 @@ TinselEngine::TinselEngine(OSystem *syst, const TinselGameDescription *gameDesc) bool native_mt32 = ((midiDriver == MD_MT32) || ConfMan.getBool("native_mt32")); //bool adlib = (midiDriver == MD_ADLIB); - MidiDriver *driver = MidiDriver::createMidi(midiDriver); + _driver = MidiDriver::createMidi(midiDriver); if (native_mt32) - driver->property(MidiDriver::PROP_CHANNEL_MASK, 0x03FE); + _driver->property(MidiDriver::PROP_CHANNEL_MASK, 0x03FE); - _music = new MusicPlayer(driver); + _music = new MusicPlayer(_driver); //_music->setNativeMT32(native_mt32); //_music->setAdlib(adlib); @@ -641,13 +641,14 @@ TinselEngine::TinselEngine(OSystem *syst, const TinselGameDescription *gameDesc) _mousePos.y = 0; _keyHandler = NULL; _dosPlayerDir = 0; - quitFlag = false; } TinselEngine::~TinselEngine() { delete _sound; delete _music; delete _console; + delete _driver; + _screenSurface.free(); FreeSs(); FreeTextBuffer(); FreeHandleTable(); @@ -681,6 +682,8 @@ int TinselEngine::init() { #if 1 // FIXME: The following is taken from RestartGame(). // It may have to be adjusted a bit + CountOut = 1; + RebootCursor(); RebootDeadTags(); RebootMovers(); @@ -741,7 +744,7 @@ int TinselEngine::go() { // Foreground loop - while (!quitFlag) { + while (!quit()) { assert(_console); if (_console->isAttached()) _console->onFrame(); @@ -775,7 +778,7 @@ int TinselEngine::go() { // Write configuration WriteConfig(); - return 0; + return _eventMan->shouldRTL(); } @@ -805,10 +808,6 @@ bool TinselEngine::pollEvent() { // Handle the various kind of events switch (event.type) { - case Common::EVENT_QUIT: - quitFlag = true; - break; - case Common::EVENT_LBUTTONDOWN: case Common::EVENT_LBUTTONUP: case Common::EVENT_RBUTTONDOWN: diff --git a/engines/tinsel/tinsel.h b/engines/tinsel/tinsel.h index de308864a6..369fd64a9b 100644 --- a/engines/tinsel/tinsel.h +++ b/engines/tinsel/tinsel.h @@ -107,8 +107,8 @@ public: Common::Language getLanguage() const; uint16 getVersion() const; Common::Platform getPlatform() const; - bool quitFlag; + MidiDriver *_driver; SoundManager *_sound; MusicPlayer *_music; |