diff -ur ScummVM-cvs20021008/scummvm/common/engine.cpp ScummVM-cvs20021008+hack/scummvm/common/engine.cpp
old
|
new
|
|
84 | 84 | |
85 | 85 | if (detector->_gameId >= GID_SIMON_FIRST && detector->_gameId <= GID_SIMON_LAST) { |
86 | 86 | // Simon the Sorcerer |
87 | | detector->_gameId -= GID_SIMON_FIRST; |
| 87 | detector->_gameId2 = detector->_gameId - GID_SIMON_FIRST; |
88 | 88 | engine = new SimonState(detector, syst); |
89 | 89 | } else { |
90 | 90 | // Some kind of Scumm game |
diff -ur ScummVM-cvs20021008/scummvm/common/engine.h ScummVM-cvs20021008+hack/scummvm/common/engine.h
old
|
new
|
|
30 | 30 | class SoundMixer; |
31 | 31 | class GameDetector; |
32 | 32 | |
33 | | /* FIXME - BIG HACK for MidiEmu */ |
| 33 | /* FIXME - BIG HACK for MidiEmu and error() */ |
34 | 34 | extern OSystem *g_system; |
35 | 35 | extern SoundMixer *g_mixer; |
36 | 36 | |
diff -ur ScummVM-cvs20021008/scummvm/common/gameDetector.cpp ScummVM-cvs20021008+hack/scummvm/common/gameDetector.cpp
old
|
new
|
|
590 | 590 | /* preference */ |
591 | 591 | if (drv == MD_AUTO) { |
592 | 592 | _use_adlib = true; |
| 593 | |
| 594 | // Neither MD_ALSA nor MD_SEQ work for Simon, and there is no |
| 595 | // MIDI -> AdLib converter for it. But we can't return NULL |
| 596 | // here because that'll cause ScummVM to crash. |
| 597 | if (_gameId >= GID_SIMON_FIRST && _gameId <= GID_SIMON_LAST) |
| 598 | return MidiDriver_NULL_create(); |
| 599 | |
593 | 600 | return NULL; |
594 | 601 | } |
595 | 602 | #endif |
diff -ur ScummVM-cvs20021008/scummvm/common/gameDetector.h ScummVM-cvs20021008+hack/scummvm/common/gameDetector.h
old
|
new
|
|
52 | 52 | const char *getGameName(void); |
53 | 53 | |
54 | 54 | bool _fullScreen; |
55 | | byte _gameId; |
| 55 | byte _gameId, _gameId2; |
56 | 56 | |
57 | 57 | bool _use_adlib; |
58 | 58 | |
diff -ur ScummVM-cvs20021008/scummvm/scumm/scummvm.cpp ScummVM-cvs20021008+hack/scummvm/scumm/scummvm.cpp
old
|
new
|
|
1335 | 1335 | } |
1336 | 1336 | |
1337 | 1337 | // Finally exit. quit() will terminate the program |
1338 | | g_scumm->_system->quit(); |
| 1338 | g_system->quit(); |
1339 | 1339 | |
1340 | 1340 | |
1341 | 1341 | // This point should never be reached. However, since virtual methods (like quit() is) |
diff -ur ScummVM-cvs20021008/scummvm/simon/simon.cpp ScummVM-cvs20021008+hack/scummvm/simon/simon.cpp
old
|
new
|
|
124 | 124 | /* Setup midi driver */ |
125 | 125 | midi.set_driver(driver); |
126 | 126 | |
127 | | _game = detector->_gameId; |
| 127 | _game = detector->_gameId2; |
128 | 128 | |
129 | 129 | /* Setup mixer */ |
130 | 130 | if (!_mixer->bindToSystem(syst)) |