Ticket #8798: seqPlayerTextOptions.patch

File seqPlayerTextOptions.patch, 1.8 KB (added by athrxx, 17 years ago)
  • sequences_v2.cpp

     
    19641964
    19651965        assert(chatNum < _sequenceSoundListSize);
    19661966
    1967         if (chatNum < 12 && !_flags.isDemo)
     1967        if (chatNum < 12 && !_flags.isDemo && textEnabled())
    19681968                seq_setTextEntry(chatNum, 160, 168, _sequenceStringsDuration[chatNum], 160);
    19691969
    19701970        _sound->voicePlay(_sequenceSoundList[chatNum]);
     
    19751975
    19761976        uint32 longest = seq_activeTextsTimeLeft() + _system->getMillis();
    19771977        uint32 now = _system->getMillis();
    1978         if (longest > now)
    1979                 delay(longest - now);
    19801978
     1979        if (textEnabled()) {
     1980                if (longest > now)
     1981                        delay(longest - now);
     1982        } else if (speechEnabled()) {
     1983                while (snd_voiceIsPlaying())
     1984                        delay(_tickLength);
     1985        }
     1986
    19811987        seq_resetAllTextEntries();
    19821988}
    19831989
     
    23002306
    23012307void KyraEngine_v2::seq_playWsaSyncDialogue(uint16 strIndex, uint16 vocIndex, int textColor, int x, int y, int width, WSAMovieV2 *wsa, int firstframe, int lastframe, int wsaXpos, int wsaYpos) {
    23022308        int dur = int(strlen(_sequenceStrings[strIndex])) * (_flags.isTalkie ? 7 : 15);
    2303         int entry = seq_setTextEntry(strIndex, x, y, dur, width);
     2309        int entry = textEnabled() ? seq_setTextEntry(strIndex, x, y, dur, width) : strIndex;
    23042310        _activeText[entry].textcolor = textColor;
    23052311        uint32 chatTimeout = _system->getMillis() + dur * _tickLength;
    23062312        int curframe = firstframe;
    23072313
    2308         if (vocIndex)
     2314        if (vocIndex && speechEnabled())
    23092315                seq_playTalkText(vocIndex);
    23102316
    23112317        while (_system->getMillis() < chatTimeout) {
     
    23342340                if (frameTimeout > tm && chatTimeout > tm)
    23352341                        delay(MIN(frameTimeout - tm, chatTimeout - tm));
    23362342
     2343                if (speechEnabled() && !textEnabled() && !snd_voiceIsPlaying())
     2344                        break;
     2345
    23372346                _screen->copyPage(2, 0);
    23382347                _screen->updateScreen();
    23392348                curframe++;