aboutsummaryrefslogtreecommitdiff
path: root/saga/script.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'saga/script.cpp')
-rw-r--r--saga/script.cpp26
1 files changed, 8 insertions, 18 deletions
diff --git a/saga/script.cpp b/saga/script.cpp
index 31dde01438..75180c787f 100644
--- a/saga/script.cpp
+++ b/saga/script.cpp
@@ -52,8 +52,6 @@ Script::Script(SagaEngine *vm) : _vm(vm) {
size_t stringsLength;
//initialize member variables
- _voiceLUTPresent = false;
-
_abortEnabled = true;
_skipSpeeches = false;
_conversingThread = NULL;
@@ -118,11 +116,6 @@ Script::Script(SagaEngine *vm) : _vm(vm) {
_modules[i].stringsResourceId = scriptS.readUint16();
_modules[i].voicesResourceId = scriptS.readUint16();
- if (_modules[i].voicesResourceId > 0) {
- _voiceLUTPresent = true;
- }
-
-
// Skip the unused portion of the structure
for (j = scriptS.pos(); j < prevTell + _modulesLUTEntryLen; j++) {
if (scriptS.readByte() != 0)
@@ -194,7 +187,7 @@ void Script::loadModule(int scriptModuleNumber) {
if (_modules[scriptModuleNumber].voicesResourceId > 0) {
_vm->_resource->loadResource(_scriptContext, _modules[scriptModuleNumber].voicesResourceId, resourcePointer, resourceLength);
- loadModuleVoiceLUT(_modules[scriptModuleNumber], resourcePointer, resourceLength);
+ loadVoiceLUT(_modules[scriptModuleNumber].voiceLUT, resourcePointer, resourceLength);
free(resourcePointer);
}
@@ -266,23 +259,20 @@ void Script::loadModuleBase(ModuleData &module, const byte *resourcePointer, siz
}
}
-void Script::loadModuleVoiceLUT(ModuleData &module, const byte *resourcePointer, size_t resourceLength) {
+void Script::loadVoiceLUT(VoiceLUT &voiceLUT, const byte *resourcePointer, size_t resourceLength) {
uint16 i;
- module.voiceLUT.voicesCount = resourceLength / 2;
- if (module.voiceLUT.voicesCount != module.strings.stringsCount) {
- error("Script::loadModuleVoiceLUT() Voice LUT entries do not match strings entries");
- }
+ voiceLUT.voicesCount = resourceLength / 2;
- module.voiceLUT.voices = (uint16 *)malloc(module.voiceLUT.voicesCount * sizeof(*module.voiceLUT.voices));
- if (module.voiceLUT.voices == NULL) {
- error("Script::loadModuleVoiceLUT() not enough memory");
+ voiceLUT.voices = (uint16 *)malloc(voiceLUT.voicesCount * sizeof(*voiceLUT.voices));
+ if (voiceLUT.voices == NULL) {
+ error("Script::loadVoiceLUT() not enough memory");
}
MemoryReadStreamEndian scriptS(resourcePointer, resourceLength, _scriptContext->isBigEndian);
- for (i = 0; i < module.voiceLUT.voicesCount; i++) {
- module.voiceLUT.voices[i] = scriptS.readUint16();
+ for (i = 0; i < voiceLUT.voicesCount; i++) {
+ voiceLUT.voices[i] = scriptS.readUint16();
}
}