aboutsummaryrefslogtreecommitdiff
path: root/saga/sthread.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'saga/sthread.cpp')
-rw-r--r--saga/sthread.cpp17
1 files changed, 7 insertions, 10 deletions
diff --git a/saga/sthread.cpp b/saga/sthread.cpp
index 5816c6c49f..4dd7a7deef 100644
--- a/saga/sthread.cpp
+++ b/saga/sthread.cpp
@@ -57,7 +57,11 @@ ScriptThread *Script::createThread(uint16 scriptModuleNumber, uint16 scriptEntry
newThread->_moduleBaseSize = _modules[scriptModuleNumber].moduleBaseSize;
newThread->_strings = &_modules[scriptModuleNumber].strings;
- newThread->_voiceLUT = &_modules[scriptModuleNumber].voiceLUT;
+
+ if (_vm->getGameType() == GType_IHNM)
+ newThread->_voiceLUT = &_globalVoiceLUT;
+ else
+ newThread->_voiceLUT = &_modules[scriptModuleNumber].voiceLUT;
return newThread;
}
@@ -611,11 +615,6 @@ bool Script::runThread(ScriptThread *thread, uint instructionLimit) {
int16 first;
const char *strings[ACTOR_SPEECH_STRING_MAX];
- if (_vm->getGameType() == GType_IHNM) {
- warning("STUB: opSpeak");
- break;
- }
-
if (_vm->_actor->isSpeaking()) {
thread->wait(kWaitTypeSpeech);
return false;
@@ -650,10 +649,8 @@ bool Script::runThread(ScriptThread *thread, uint instructionLimit) {
}
}
- if (_vm->getGameType() == GType_ITE) {
- if (sampleResourceId <= 0 || sampleResourceId > 4000) {
- sampleResourceId = -1;
- }
+ if (sampleResourceId < 0 || sampleResourceId > 4000) {
+ sampleResourceId = -1;
}
_vm->_actor->actorSpeech(actorId, strings, stringsCount, sampleResourceId, speechFlags);