diff options
author | Robert Göffringmann | 2004-01-06 12:19:02 +0000 |
---|---|---|
committer | Robert Göffringmann | 2004-01-06 12:19:02 +0000 |
commit | 7b86116a5dedbed0687ddf431be4ec727389bc42 (patch) | |
tree | 678dac403ccbf0efd0b50d8c579fe2dbb5647e74 | |
parent | 2ecf66d5610df289b9d936e59c153c81a64ebef5 (diff) | |
download | scummvm-rg350-7b86116a5dedbed0687ddf431be4ec727389bc42.tar.gz scummvm-rg350-7b86116a5dedbed0687ddf431be4ec727389bc42.tar.bz2 scummvm-rg350-7b86116a5dedbed0687ddf431be4ec727389bc42.zip |
fixed cd changing code
svn-id: r12174
-rw-r--r-- | sword1/sword1.cpp | 34 |
1 files changed, 17 insertions, 17 deletions
diff --git a/sword1/sword1.cpp b/sword1/sword1.cpp index 85cf4f05c6..f220f2c4f8 100644 --- a/sword1/sword1.cpp +++ b/sword1/sword1.cpp @@ -1091,24 +1091,24 @@ void SwordEngine::go(void) { void SwordEngine::checkCd(void) { uint8 needCd = _cdList[SwordLogic::_scriptVars[NEW_SCREEN]]; - if (needCd == 0) { - if (_systemVars.currentCD == 0) - needCd = 1; - else - needCd = _systemVars.currentCD; - } - if (_systemVars.runningFromCd) { - if (!_systemVars.currentCD) { - _systemVars.currentCD = needCd; - _control->askForCd(); - } else if (_systemVars.currentCD != needCd) { - _music->startMusic(0, 0); - _sound->closeCowSystem(); - _systemVars.currentCD = needCd; - _control->askForCd(); + if (_systemVars.runningFromCd) { // are we running from cd? + if (needCd == 0) { // needCd == 0 means we can use either CD1 or CD2. + if (_systemVars.currentCD == 0) { + _systemVars.currentCD = 1; // if there is no CD currently inserted, ask for CD1. + _control->askForCd(); + } // else: there is already a cd inserted and we don't care if it's cd1 or cd2. + } else if (needCd != _systemVars.currentCD) { // we need a different CD than the one in drive. + _music->startMusic(0, 0); // + _sound->closeCowSystem(); // close music and sound files before changing CDs + _systemVars.currentCD = needCd; // askForCd will ask the player to insert _systemVars.currentCd, + _control->askForCd(); // so it has to be updated before calling it. } - } else - _systemVars.currentCD = needCd; + } else { // we're running from HDD, we don't have to care about music files and SwordSound will take care of + if (needCd) // switching sound.clu files on SwordSound::newScreen by itself, so there's nothing to be done. + _systemVars.currentCD = needCd; + else if (_systemVars.currentCD == 0) + _systemVars.currentCD = 1; + } } uint8 SwordEngine::mainLoop(void) { |