From de95d463a8c091ea55a8ae8166fb447a9f56a195 Mon Sep 17 00:00:00 2001 From: Eugene Sandulenko Date: Sun, 11 Jun 2006 20:30:43 +0000 Subject: Support of new subtitles code. Patch from salty-horse. svn-id: r23031 --- engines/saga/actor.cpp | 6 +++--- engines/saga/interface.cpp | 4 ++-- engines/saga/saga.cpp | 9 ++++++++- engines/saga/saga.h | 3 ++- 4 files changed, 15 insertions(+), 7 deletions(-) diff --git a/engines/saga/actor.cpp b/engines/saga/actor.cpp index f87958ef53..0f7e40f480 100644 --- a/engines/saga/actor.cpp +++ b/engines/saga/actor.cpp @@ -1148,13 +1148,13 @@ void Actor::handleSpeech(int msec) { if (sampleLength < 0) { _activeSpeech.playingTime = stringLength * 1000 / 22; switch (_vm->_readingSpeed) { - case 1: + case 2: _activeSpeech.playingTime *= 2; break; - case 2: + case 1: _activeSpeech.playingTime *= 4; break; - case 3: + case 0: _activeSpeech.playingTime = 0x7fffff; break; } diff --git a/engines/saga/interface.cpp b/engines/saga/interface.cpp index 3fa81514d4..0a4a58e871 100644 --- a/engines/saga/interface.cpp +++ b/engines/saga/interface.cpp @@ -1367,7 +1367,7 @@ void Interface::setOption(PanelButton *panelButton) { ConfMan.setBool("subtitles", _vm->_subtitlesEnabled); } else { _vm->_readingSpeed = (_vm->_readingSpeed + 1) % 4; - ConfMan.setInt("talkspeed", _vm->_readingSpeed); + _vm->setTalkspeed(_vm->_readingSpeed); } break; case kTextMusic: @@ -1893,7 +1893,7 @@ void Interface::drawButtonBox(Surface *ds, const Rect& rect, ButtonKind kind, bo ds->fillRect(fill, solidColor); } -static const int readingSpeeds[] = { kTextFast, kTextMid, kTextSlow, kTextClick }; +static const int readingSpeeds[] = { kTextClick, kTextSlow, kTextMid, kTextFast }; void Interface::drawPanelButtonText(Surface *ds, InterfacePanel *panel, PanelButton *panelButton) { const char *text; diff --git a/engines/saga/saga.cpp b/engines/saga/saga.cpp index 2bb81e3841..f952cdb60b 100644 --- a/engines/saga/saga.cpp +++ b/engines/saga/saga.cpp @@ -150,7 +150,7 @@ int SagaEngine::init() { _soundVolume = ConfMan.getInt("sfx_volume") / 25; _musicVolume = ConfMan.getInt("music_volume") / 25; _subtitlesEnabled = ConfMan.getBool("subtitles"); - _readingSpeed = ConfMan.getInt("talkspeed"); + _readingSpeed = getTalkspeed(); _copyProtection = ConfMan.getBool("copy_protection"); if (_readingSpeed > 3) @@ -457,5 +457,12 @@ ColorId SagaEngine::KnownColor2ColorId(KnownColor knownColor) { return colorId; } +void SagaEngine::setTalkspeed(int talkspeed) { + ConfMan.setInt("talkspeed", (talkspeed * 255 + 3 / 2) / 3); +} + +int SagaEngine::getTalkspeed() { + return (ConfMan.getInt("talkspeed") * 3 + 255 / 2) / 255; +} } // End of namespace Saga diff --git a/engines/saga/saga.h b/engines/saga/saga.h index 3c91f0d88d..c9edbe9d46 100644 --- a/engines/saga/saga.h +++ b/engines/saga/saga.h @@ -409,9 +409,10 @@ private: public: ColorId KnownColor2ColorId(KnownColor knownColor); + void setTalkspeed(int talkspeed); + int getTalkspeed(); }; - } // End of namespace Saga #endif -- cgit v1.2.3