SAGA: Some code cleanup

svn-id: r34703
This commit is contained in:
Max Horn 2008-09-30 12:58:27 +00:00
parent ae8c0857b9
commit 6aa12974bd
5 changed files with 19 additions and 28 deletions

View File

@ -86,7 +86,7 @@ DigitalMusicInputStream::DigitalMusicInputStream(SagaEngine *vm, ResourceContext
byte compressedHeader[10]; byte compressedHeader[10];
resourceData = _vm->_resource->getResourceData(context, resourceId); resourceData = context->getResourceData(resourceId);
_file = context->getFile(resourceData); _file = context->getFile(resourceData);
_musicInfo = _vm->getMusicInfo(); _musicInfo = _vm->getMusicInfo();

View File

@ -309,8 +309,8 @@ bool Resource::loadContext(ResourceContext *context) {
for (i = 0; i < tableSize / 8; i++) { for (i = 0; i < tableSize / 8; i++) {
subjectResourceId = readS2.readUint32(); subjectResourceId = readS2.readUint32();
patchResourceId = readS2.readUint32(); patchResourceId = readS2.readUint32();
subjectResourceData = getResourceData(subjectContext, subjectResourceId); subjectResourceData = subjectContext->getResourceData(subjectResourceId);
resourceData = getResourceData(context, patchResourceId); resourceData = context->getResourceData(patchResourceId);
subjectResourceData->patchData = new PatchData(context->file); subjectResourceData->patchData = new PatchData(context->file);
subjectResourceData->offset = resourceData->offset; subjectResourceData->offset = resourceData->offset;
subjectResourceData->size = resourceData->size; subjectResourceData->size = resourceData->size;
@ -632,7 +632,7 @@ void Resource::loadResource(ResourceContext *context, uint32 resourceId, byte*&r
debug(8, "loadResource %d", resourceId); debug(8, "loadResource %d", resourceId);
resourceData = getResourceData(context, resourceId); resourceData = context->getResourceData(resourceId);
file = context->getFile(resourceData); file = context->getFile(resourceData);

View File

@ -90,6 +90,18 @@ struct ResourceContext {
return file; return file;
} }
} }
bool validResourceId(uint32 resourceId) const {
return (resourceId < count);
}
ResourceData *getResourceData(uint32 resourceId) const {
if (resourceId >= count) {
error("ResourceContext::getResourceData() wrong resourceId %d", resourceId);
}
return &table[resourceId];
}
}; };
struct MetaResource { struct MetaResource {
@ -122,7 +134,6 @@ public:
bool createContexts(); bool createContexts();
void clearContexts(); void clearContexts();
void loadResource(ResourceContext *context, uint32 resourceId, byte*&resourceBuffer, size_t &resourceSize); void loadResource(ResourceContext *context, uint32 resourceId, byte*&resourceBuffer, size_t &resourceSize);
size_t getResourceSize(ResourceContext *context, uint32 resourceId);
uint32 convertResourceId(uint32 resourceId); uint32 convertResourceId(uint32 resourceId);
void loadGlobalResources(int chapter, int actorsEntrance); void loadGlobalResources(int chapter, int actorsEntrance);
@ -137,26 +148,6 @@ public:
return NULL; return NULL;
} }
bool validResourceId(ResourceContext *context, uint32 resourceId) const {
return (resourceId < context->count);
}
size_t getResourceSize(ResourceContext *context, uint32 resourceId) const {
return getResourceData(context, resourceId)->size;
}
size_t getResourceOffset(ResourceContext *context, uint32 resourceId) const {
return getResourceData(context, resourceId)->offset;
}
ResourceData *getResourceData(ResourceContext *context, uint32 resourceId) const {
if (!validResourceId(context, resourceId)) {
warning("Resource::getResourceData() wrong resourceId %d", resourceId);
assert(0);
}
return &context->table[resourceId];
}
private: private:
SagaEngine *_vm; SagaEngine *_vm;
ResourceContext *_contexts; ResourceContext *_contexts;

View File

@ -957,7 +957,7 @@ void Scene::loadSceneResourceList(uint32 resourceId) {
_resourceList[i].resourceId = readS.readUint16(); _resourceList[i].resourceId = readS.readUint16();
_resourceList[i].resourceType = readS.readUint16(); _resourceList[i].resourceType = readS.readUint16();
// demo version may contain invalid resourceId // demo version may contain invalid resourceId
_resourceList[i].invalid = !_vm->_resource->validResourceId(_sceneContext, _resourceList[i].resourceId); _resourceList[i].invalid = !_sceneContext->validResourceId(_resourceList[i].resourceId);
} }
} }

View File

@ -205,7 +205,7 @@ bool SndRes::load(ResourceContext *context, uint32 resourceId, SoundBuffer &buff
soundResourceLength = file->size(); soundResourceLength = file->size();
} else { } else {
ResourceData* resourceData = _vm->_resource->getResourceData(context, resourceId); ResourceData* resourceData = context->getResourceData(resourceId);
file = context->getFile(resourceData); file = context->getFile(resourceData);
file->seek(resourceData->offset); file->seek(resourceData->offset);
@ -373,7 +373,7 @@ bool SndRes::load(ResourceContext *context, uint32 resourceId, SoundBuffer &buff
case kSoundOGG: case kSoundOGG:
case kSoundFLAC: case kSoundFLAC:
ResourceData *resourceData; ResourceData *resourceData;
resourceData = _vm->_resource->getResourceData(context, resourceId); resourceData = context->getResourceData(resourceId);
// Read compressed sfx header // Read compressed sfx header
readS.seek(1); // Skip compression identifier byte readS.seek(1); // Skip compression identifier byte