aboutsummaryrefslogtreecommitdiff
path: root/engines/kyra
diff options
context:
space:
mode:
authorJohannes Schickel2008-04-20 00:32:39 +0000
committerJohannes Schickel2008-04-20 00:32:39 +0000
commit733676033ae17e898012e6119a0a72d4798f5501 (patch)
treecb3b8117d86d27dde8ad8d9c8b92e46d298d962c /engines/kyra
parentfb02a030a55f7eed0b58f6ab0ba7638b48b04a14 (diff)
downloadscummvm-rg350-733676033ae17e898012e6119a0a72d4798f5501.tar.gz
scummvm-rg350-733676033ae17e898012e6119a0a72d4798f5501.tar.bz2
scummvm-rg350-733676033ae17e898012e6119a0a72d4798f5501.zip
Fixed bug in playStudioSFX.
svn-id: r31586
Diffstat (limited to 'engines/kyra')
-rw-r--r--engines/kyra/kyra_v3.cpp8
-rw-r--r--engines/kyra/kyra_v3.h2
-rw-r--r--engines/kyra/script_v3.cpp2
3 files changed, 8 insertions, 4 deletions
diff --git a/engines/kyra/kyra_v3.cpp b/engines/kyra/kyra_v3.cpp
index 42207299d2..dc59d1966f 100644
--- a/engines/kyra/kyra_v3.cpp
+++ b/engines/kyra/kyra_v3.cpp
@@ -439,11 +439,15 @@ void KyraEngine_v3::snd_stopVoice() {
_soundDigital->stopSound(_voiceSoundChannel);
}
-void KyraEngine_v3::playStudioSFX() {
- debugC(9, kDebugLevelMain, "KyraEngine_v3::playStudioSFX()");
+void KyraEngine_v3::playStudioSFX(const char *str) {
+ debugC(9, kDebugLevelMain, "KyraEngine_v3::playStudioSFX('%s')", str);
if (_rnd.getRandomNumberRng(1, 2) != 2)
return;
+ const int strSize = strlen(str) - 1;
+ if (str[strSize] != '?' && str[strSize] != '!')
+ return;
+
playSoundEffect(_curStudioSFX++, 128);
if (_curStudioSFX > 291)
diff --git a/engines/kyra/kyra_v3.h b/engines/kyra/kyra_v3.h
index 7d6cf6e8ed..7f6e556d7a 100644
--- a/engines/kyra/kyra_v3.h
+++ b/engines/kyra/kyra_v3.h
@@ -138,7 +138,7 @@ private:
void snd_stopVoice();
int _curStudioSFX;
- void playStudioSFX();
+ void playStudioSFX(const char *str);
// main menu
void initMainMenu();
diff --git a/engines/kyra/script_v3.cpp b/engines/kyra/script_v3.cpp
index 061bca4c2a..75ca5ae107 100644
--- a/engines/kyra/script_v3.cpp
+++ b/engines/kyra/script_v3.cpp
@@ -107,7 +107,7 @@ int KyraEngine_v3::o3_objectChat(ScriptState *script) {
const char *str = (const char*)getTableEntry(_useActorBuffer ? _actorFile : _sceneStrings, id);
if (str) {
objectChat(str, 0, _vocHigh, id);
- playStudioSFX();
+ playStudioSFX(str);
}
return 0;
}