Ticket #8065: sfxmode.diff

File sfxmode.diff, 1.7 KB (added by eriktorbjorn, 19 years ago)

Patch against a September 24 CVS snapshot

  • scummvm/scumm/scummvm.cpp

    diff -ur ScummVM-cvs20020924/scummvm/scumm/scummvm.cpp ScummVM-cvs20020924+hack/scummvm/scumm/scummvm.cpp
    old new  
    10161016                        runScript(_vars[VAR_UNK_SCRIPT_2], 0, 0, 0);
    10171017        } else if (_lastKeyHit == _vars[VAR_TALKSTOP_KEY]) {
    10181018                _talkDelay = 0;
    1019                 if (_sound->_sfxMode == 2)
     1019                if (_sound->_sfxMode & 2)
    10201020                        stopTalk();
    10211021                return;
    10221022        } else if (_lastKeyHit == '[') { // [, eg volume down
  • scummvm/scumm/sound.cpp

    diff -ur ScummVM-cvs20020924/scummvm/scumm/sound.cpp ScummVM-cvs20020924+hack/scummvm/scumm/sound.cpp
    old new  
    393393                _talk_sound_mode = 0;
    394394        }
    395395
    396         if (_scumm->_vars[_scumm->VAR_TALK_ACTOR]) { //_sfxMode == 2) {
     396        if (_scumm->_vars[_scumm->VAR_TALK_ACTOR]) { //_sfxMode & 2) {
    397397                act = _scumm->_vars[_scumm->VAR_TALK_ACTOR];
    398398                if (_talkChannel < 0)
    399399                        finished = false;
     
    422422               
    423423                if (finished  && _scumm->_talkDelay == 0) {
    424424                        _scumm->stopTalk();
    425                         _sfxMode = 0;
     425                        _sfxMode &= ~2;
    426426                        _talkChannel = -1;
    427427                }
    428428        }
    429429               
    430         if (_sfxMode == 1) {
     430        if (_sfxMode & 1) {
    431431                if (isSfxFinished()) {
    432                         _sfxMode = 0;
     432                        _sfxMode &= ~1;
    433433                }
    434434        }
    435435}
     
    490490                num--;
    491491        }
    492492        _mouthSyncTimes[i] = 0xFFFF;
    493         _sfxMode = mode;
     493        _sfxMode |= mode;
    494494        _curSoundPos = 0;
    495495        _mouthSyncMode = true;
    496496
     
    498498}
    499499
    500500void Sound::stopTalkSound() {
    501         if (_sfxMode == 2) {
     501        if (_sfxMode & 2) {
    502502                stopSfxSound();
    503                 _sfxMode = 0;
     503                _sfxMode &= ~2;
    504504        }
    505505}
    506506