[Scummvm-cvs-logs] SF.net SVN: scummvm:[49812] scummvm/trunk/engines/sci
fingolfin at users.sourceforge.net
fingolfin at users.sourceforge.net
Tue Jun 15 14:10:41 CEST 2010
Revision: 49812
http://scummvm.svn.sourceforge.net/scummvm/?rev=49812&view=rev
Author: fingolfin
Date: 2010-06-15 12:10:41 +0000 (Tue, 15 Jun 2010)
Log Message:
-----------
SCI: Add ResourceSource subclasses, one for each type
Modified Paths:
--------------
scummvm/trunk/engines/sci/resource.cpp
scummvm/trunk/engines/sci/resource_audio.cpp
scummvm/trunk/engines/sci/resource_intern.h
Modified: scummvm/trunk/engines/sci/resource.cpp
===================================================================
--- scummvm/trunk/engines/sci/resource.cpp 2010-06-15 12:10:18 UTC (rev 49811)
+++ scummvm/trunk/engines/sci/resource.cpp 2010-06-15 12:10:41 UTC (rev 49812)
@@ -192,7 +192,7 @@
// Resource source list management
ResourceSource *ResourceManager::addExternalMap(const Common::String &filename, int volume_nr) {
- ResourceSource *newsrc = new ResourceSource(kSourceExtMap, filename);
+ ResourceSource *newsrc = new ExtMapResourceSource(filename);
newsrc->volume_number = volume_nr;
@@ -201,7 +201,7 @@
}
ResourceSource *ResourceManager::addExternalMap(const Common::FSNode *mapFile, int volume_nr) {
- ResourceSource *newsrc = new ResourceSource(kSourceExtMap, mapFile->getName());
+ ResourceSource *newsrc = new ExtMapResourceSource(mapFile->getName());
newsrc->resourceFile = mapFile;
newsrc->volume_number = volume_nr;
@@ -236,7 +236,7 @@
}
ResourceSource *ResourceManager::addPatchDir(const Common::String &dirname) {
- ResourceSource *newsrc = new ResourceSource(kSourceDirectory, dirname);
+ ResourceSource *newsrc = new DirectoryResourceSource(dirname);
_sources.push_back(newsrc);
return 0;
@@ -1224,7 +1224,7 @@
delete stream;
}
- psrcPatch = new ResourceSource(kSourcePatch, name);
+ psrcPatch = new PatchResourceSource(name);
processPatch(psrcPatch, (ResourceType)i, resourceNr, resource36.tuple);
}
}
@@ -1272,7 +1272,7 @@
}
if (bAdd) {
- psrcPatch = new ResourceSource(kSourcePatch, name);
+ psrcPatch = new PatchResourceSource(name);
processPatch(psrcPatch, (ResourceType)i, resourceNr);
}
}
Modified: scummvm/trunk/engines/sci/resource_audio.cpp
===================================================================
--- scummvm/trunk/engines/sci/resource_audio.cpp 2010-06-15 12:10:18 UTC (rev 49811)
+++ scummvm/trunk/engines/sci/resource_audio.cpp 2010-06-15 12:10:41 UTC (rev 49812)
@@ -155,13 +155,13 @@
gmPatchFile = "TALEGM.PAT";
if (!gmPatchFile.empty() && Common::File::exists(gmPatchFile)) {
- ResourceSource *psrcPatch = new ResourceSource(kSourcePatch, gmPatchFile);
+ ResourceSource *psrcPatch = new PatchResourceSource(gmPatchFile);
processPatch(psrcPatch, kResourceTypePatch, 4);
}
}
void ResourceManager::processWavePatch(ResourceId resourceId, Common::String name) {
- ResourceSource *resSrc = new ResourceSource(kSourceWave, name);
+ ResourceSource *resSrc = new WaveResourceSource(name);
Resource *newRes = 0;
Modified: scummvm/trunk/engines/sci/resource_intern.h
===================================================================
--- scummvm/trunk/engines/sci/resource_intern.h 2010-06-15 12:10:18 UTC (rev 49811)
+++ scummvm/trunk/engines/sci/resource_intern.h 2010-06-15 12:10:41 UTC (rev 49812)
@@ -50,12 +50,57 @@
public:
ResourceSource(ResSourceType type, const Common::String &name);
- ~ResourceSource();
+ virtual ~ResourceSource();
ResSourceType getSourceType() const { return _sourceType; }
const Common::String &getLocationName() const { return _name; }
};
+class DirectoryResourceSource : public ResourceSource {
+public:
+ DirectoryResourceSource(const Common::String &name) : ResourceSource(kSourceDirectory, name) {}
+};
+
+class PatchResourceSource : public ResourceSource {
+public:
+ PatchResourceSource(const Common::String &name) : ResourceSource(kSourcePatch, name) {}
+};
+
+class VolumeResourceSource : public ResourceSource {
+public:
+ VolumeResourceSource(const Common::String &name) : ResourceSource(kSourceVolume, name) {}
+};
+
+class ExtMapResourceSource : public ResourceSource {
+public:
+ ExtMapResourceSource(const Common::String &name) : ResourceSource(kSourceExtMap, name) {}
+};
+
+class IntMapResourceSource : public ResourceSource {
+public:
+ IntMapResourceSource(const Common::String &name) : ResourceSource(kSourceIntMap, name) {}
+};
+
+class AudioVolumeResourceSource : public ResourceSource {
+public:
+ AudioVolumeResourceSource(const Common::String &name) : ResourceSource(kSourceAudioVolume, name) {}
+};
+
+class ExtAudioMapResourceSource : public ResourceSource {
+public:
+ ExtAudioMapResourceSource(const Common::String &name) : ResourceSource(kSourceExtAudioMap, name) {}
+};
+
+class WaveResourceSource : public ResourceSource {
+public:
+ WaveResourceSource(const Common::String &name) : ResourceSource(kSourceWave, name) {}
+};
+
+class MacResourceForkResourceSource : public ResourceSource {
+public:
+ MacResourceForkResourceSource(const Common::String &name) : ResourceSource(kSourceMacResourceFork, name) {}
+};
+
} // End of namespace Sci
#endif // SCI_RESOURCE_INTERN_H
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list