aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Göffringmann2004-01-04 17:19:17 +0000
committerRobert Göffringmann2004-01-04 17:19:17 +0000
commit4ca49386ed933533efaed857ee4a94ce0570494b (patch)
treea09a26ca31ca7f61a3e48189f0ca18f9ff2fa32d
parent92561301ac3886fc75f8fc287b4878f98733d9eb (diff)
downloadscummvm-rg350-4ca49386ed933533efaed857ee4a94ce0570494b.tar.gz
scummvm-rg350-4ca49386ed933533efaed857ee4a94ce0570494b.tar.bz2
scummvm-rg350-4ca49386ed933533efaed857ee4a94ce0570494b.zip
fixed cd changing code
svn-id: r12145
-rw-r--r--sword1/sword1.cpp20
1 files changed, 14 insertions, 6 deletions
diff --git a/sword1/sword1.cpp b/sword1/sword1.cpp
index d86cf1dc1e..9ee4c9102e 100644
--- a/sword1/sword1.cpp
+++ b/sword1/sword1.cpp
@@ -1085,16 +1085,24 @@ void SwordEngine::go(void) {
void SwordEngine::checkCd(void) {
uint8 needCd = _cdList[SwordLogic::_scriptVars[NEW_SCREEN]];
- if ((needCd == 0) && (_systemVars.currentCD == 0))
- needCd = 1;
- if (needCd != _systemVars.currentCD) {
- _systemVars.currentCD = needCd;
- if (_systemVars.runningFromCd) {
+ 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();
}
- }
+ } else
+ _systemVars.currentCD = needCd;
}
uint8 SwordEngine::mainLoop(void) {