diff options
-rw-r--r-- | base/main.cpp | 9 | ||||
-rw-r--r-- | sound/midiparser.cpp | 4 | ||||
-rw-r--r-- | sound/midiparser.h | 4 |
3 files changed, 10 insertions, 7 deletions
diff --git a/base/main.cpp b/base/main.cpp index 435f818516..1844bbdd63 100644 --- a/base/main.cpp +++ b/base/main.cpp @@ -233,7 +233,6 @@ static int launcherDialog(GameDetector &detector, OSystem *system) { } static void runGame(GameDetector &detector, OSystem *system) { - // Set the window caption to the game name Common::String caption(ConfMan.get("description", detector._targetName)); @@ -290,6 +289,7 @@ extern "C" int main(int argc, char *argv[]) { extern "C" int scummvm_main(GameDetector &detector, int argc, char *argv[]) { #endif char *cfgFilename = NULL, *s=argv[1]; + bool running = true; #if defined(UNIX) /* On Unix, do a quick endian / alignement check before starting */ @@ -386,7 +386,7 @@ extern "C" int scummvm_main(GameDetector &detector, int argc, char *argv[]) { // FIXME: We're now looping the launcher. This, of course, doesn't // work as well as it should. In theory everything should be destroyed // cleanly, so this is now enabled to encourage people to fix bits :) - while(1) { + while(running) { // Verify the given game name is a valid supported game if (detector.detectMain()) { // Unload all plugins not needed for this game, @@ -402,9 +402,10 @@ extern "C" int scummvm_main(GameDetector &detector, int argc, char *argv[]) { ConfMan.removeKey("save_slot", ConfMan.kTransientDomain); // PluginManager::instance().unloadPlugins(); - // PluginManager::instance().loadPlugins(); - launcherDialog(detector, system); + PluginManager::instance().loadPlugins(); } + + launcherDialog(detector, system); } // ...and quit (the return 0 should never be reached) diff --git a/sound/midiparser.cpp b/sound/midiparser.cpp index 48d8f6d0d1..f41580e665 100644 --- a/sound/midiparser.cpp +++ b/sound/midiparser.cpp @@ -181,8 +181,8 @@ void MidiParser::onTimer() { _position._last_event_tick += info.delta; if (info.event < 0x80) { warning("Bad command or running status %02X", info.event); - _position._play_pos = 0; - return; + //_position._play_pos = 0; + //return; } if (info.event == 0xF0) { diff --git a/sound/midiparser.h b/sound/midiparser.h index 3e86181fb1..a9c2650915 100644 --- a/sound/midiparser.h +++ b/sound/midiparser.h @@ -277,7 +277,9 @@ protected: bool _autoLoop; //!< For lightweight clients that don't provide their own flow control. bool _smartJump; //!< Support smart expiration of hanging notes when jumping - byte * _tracks[32]; //!< Multi-track MIDI formats are supported, up to 32 tracks. + // FIXME: ? Was 32 here, Kyra tracks use 120(!!!) which seems wrong. this is a hacky + // workaround until situation is investigated. + byte * _tracks[120]; //!< Multi-track MIDI formats are supported, up to 120 tracks. byte _num_tracks; //!< Count of total tracks for multi-track MIDI formats. 1 for single-track formats. byte _active_track; //!< Keeps track of the currently active track, in multi-track formats. |