[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