/** * Init palette and object managers, scheduler, keyboard and mouse. */ void TinselEngine::RestartDrivers(void) { // init the palette manager ResetPalAllocator(); // init the object manager KillAllObjects(); // init the process scheduler _scheduler->reset(); // init the event handlers pMouseProcess = _scheduler->createProcess(PID_MOUSE, MouseProcess, NULL, 0); pKeyboardProcess = _scheduler->createProcess(PID_KEYBOARD, KeyboardProcess, NULL, 0); // open MIDI files OpenMidiFiles(); // open sample files (only if mixer is ready) if (_mixer->isReady()) { _sound->openSampleFiles(); } // Set midi volume SetMidiVolume(volMusic); }
/** * Init palette and object managers, scheduler, keyboard and mouse. */ void TinselEngine::RestartDrivers() { // init the palette manager ResetPalAllocator(); // init the object manager KillAllObjects(); // init the process scheduler CoroScheduler.reset(); // init the event handlers g_pMouseProcess = CoroScheduler.createProcess(PID_MOUSE, MouseProcess, NULL, 0); g_pKeyboardProcess = CoroScheduler.createProcess(PID_KEYBOARD, KeyboardProcess, NULL, 0); // open MIDI files OpenMidiFiles(); // open sample files (only if mixer is ready) if (_mixer->isReady()) { _sound->openSampleFiles(); } // Set midi volume bool mute = false; if (ConfMan.hasKey("mute")) mute = ConfMan.getBool("mute"); SetMidiVolume(mute ? 0 : _vm->_config->_musicVolume); }
/** * Wrap up the last scene. */ void EndScene() { if (SceneHandle != 0) { UnlockScene(SceneHandle); SceneHandle = 0; } KillInventory(); // Close down any open inventory DropPolygons(); // No polygons DropScroll(); // No no-scrolls DropBackground(); // No background DropMovers(); // No moving actors DropCursor(); // No cursor DropActors(); // No actor reels running FreeAllTokens(); // No-one has tokens FreeMostInterpretContexts(); // Only master script still interpreting if (TinselV2) { SetSysVar(ISV_DIVERT_ACTOR, 0); SetSysVar(ISV_GHOST_ACTOR, 0); SetSysVar(SV_MinimumXoffset, 0); SetSysVar(SV_MaximumXoffset, 0); SetSysVar(SV_MinimumYoffset, 0); SetSysVar(SV_MaximumYoffset, 0); ResetFontHandles(); NoSoundReels(); } _vm->_sound->stopAllSamples(); // Kill off any still-running sample //_vm->_mixer->stopAll(); // init the palette manager ResetPalAllocator(); // init the object manager KillAllObjects(); // kill all destructable process g_scheduler->killMatchingProcess(PID_DESTROY, PID_DESTROY); }