[Scummvm-cvs-logs] SF.net SVN: scummvm:[49817] scummvm/trunk/engines/sci

fingolfin at users.sourceforge.net fingolfin at users.sourceforge.net
Tue Jun 15 14:12:44 CEST 2010


Revision: 49817
          http://scummvm.svn.sourceforge.net/scummvm/?rev=49817&view=rev
Author:   fingolfin
Date:     2010-06-15 12:12:44 +0000 (Tue, 15 Jun 2010)

Log Message:
-----------
SCI: Merge MacResourceForkResourceSource::scanSource and ResourceManager::readMacResourceFork

Modified Paths:
--------------
    scummvm/trunk/engines/sci/resource.cpp
    scummvm/trunk/engines/sci/resource.h
    scummvm/trunk/engines/sci/resource_intern.h

Modified: scummvm/trunk/engines/sci/resource.cpp
===================================================================
--- scummvm/trunk/engines/sci/resource.cpp	2010-06-15 12:12:21 UTC (rev 49816)
+++ scummvm/trunk/engines/sci/resource.cpp	2010-06-15 12:12:44 UTC (rev 49817)
@@ -653,11 +653,7 @@
 	resMan->readAudioMapSCI11(this);
 }
 
-void MacResourceForkResourceSource::scanSource(ResourceManager *resMan) {
-	resMan->readMacResourceFork(this);
-}
 
-
 void ResourceManager::freeResourceSources() {
 	for (Common::List<ResourceSource *>::iterator it = _sources.begin(); it != _sources.end(); ++it)
 		delete *it;
@@ -1465,12 +1461,12 @@
 	return 0;
 }
 
-int ResourceManager::readMacResourceFork(ResourceSource *source) {
-	assert(source->_macResMan);
-	if (!source->_macResMan->open(source->getLocationName().c_str()))
-		error("%s is not a valid Mac resource fork", source->getLocationName().c_str());
+void MacResourceForkResourceSource::scanSource(ResourceManager *resMan) {
+	assert(_macResMan);
+	if (!_macResMan->open(getLocationName().c_str()))
+		error("%s is not a valid Mac resource fork", getLocationName().c_str());
 
-	Common::MacResTagArray tagArray = source->_macResMan->getResTagArray();
+	Common::MacResTagArray tagArray = _macResMan->getResTagArray();
 
 	for (uint32 i = 0; i < tagArray.size(); i++) {
 		ResourceType type = kResourceTypeInvalid;
@@ -1485,11 +1481,11 @@
 		if (type == kResourceTypeInvalid)
 			continue;
 
-		Common::MacResIDArray idArray = source->_macResMan->getResIDArray(tagArray[i]);
+		Common::MacResIDArray idArray = _macResMan->getResIDArray(tagArray[i]);
 
 		for (uint32 j = 0; j < idArray.size(); j++) {
 			// Get the size of the file
-			Common::SeekableReadStream *stream = source->_macResMan->getResource(tagArray[i], idArray[j]);
+			Common::SeekableReadStream *stream = _macResMan->getResource(tagArray[i], idArray[j]);
 
 			// Some IBIS resources have a size of 0, so we skip them
 			if (!stream)
@@ -1503,22 +1499,20 @@
 			Resource *newrsc = NULL;
 
 			// Prepare destination, if neccessary. Resource forks may contain patches.
-			if (!_resMap.contains(resId)) {
+			if (!resMan->_resMap.contains(resId)) {
 				newrsc = new Resource;
-				_resMap.setVal(resId, newrsc);
+				resMan->_resMap.setVal(resId, newrsc);
 			} else
-				newrsc = _resMap.getVal(resId);
+				newrsc = resMan->_resMap.getVal(resId);
 
 			// Overwrite everything
 			newrsc->_id = resId;
 			newrsc->_status = kResStatusNoMalloc;
-			newrsc->_source = source;
+			newrsc->_source = this;
 			newrsc->size = fileSize;
 			newrsc->_headerSize = 0;
 		}
 	}
-
-	return 0;
 }
 
 void ResourceManager::addResource(ResourceId resId, ResourceSource *src, uint32 offset, uint32 size) {

Modified: scummvm/trunk/engines/sci/resource.h
===================================================================
--- scummvm/trunk/engines/sci/resource.h	2010-06-15 12:12:21 UTC (rev 49816)
+++ scummvm/trunk/engines/sci/resource.h	2010-06-15 12:12:44 UTC (rev 49817)
@@ -163,6 +163,11 @@
 /** Class for storing resources in memory */
 class Resource {
 	friend class ResourceManager;
+
+	// FIXME: These 'friend' declarations are meant to be a temporary hack to
+	// ease transition to the ResourceSource class system.
+	friend class MacResourceForkResourceSource;
+
 public:
 	Resource();
 	~Resource();
@@ -196,7 +201,6 @@
 class ResourceManager {
 	// FIXME: These 'friend' declarations are meant to be a temporary hack to
 	// ease transition to the ResourceSource class system.
-	friend class ResourceSource;
 	friend class DirectoryResourceSource;
 	friend class ExtMapResourceSource;
 	friend class IntMapResourceSource;
@@ -407,13 +411,6 @@
 	int readResourceMapSCI1(ResourceSource *map);
 	
 	/**
-	 * Reads the SCI1.1+ resource file from a Mac resource fork.
-	 * @param source The source
-	 * @return 0 on success, an SCI_ERROR_* code otherwise
-	 */
-	int readMacResourceFork(ResourceSource *source);
-
-	/**
 	 * Reads SCI1.1 audio map resources
 	 * @param map The map
 	 * @return 0 on success, an SCI_ERROR_* code otherwise

Modified: scummvm/trunk/engines/sci/resource_intern.h
===================================================================
--- scummvm/trunk/engines/sci/resource_intern.h	2010-06-15 12:12:21 UTC (rev 49816)
+++ scummvm/trunk/engines/sci/resource_intern.h	2010-06-15 12:12:44 UTC (rev 49817)
@@ -143,6 +143,9 @@
 public:
 	MacResourceForkResourceSource(const Common::String &name) : ResourceSource(kSourceMacResourceFork, name) {}
 
+	/**
+	 * Reads the SCI1.1+ resource file from a Mac resource fork.
+	 */
 	virtual void scanSource(ResourceManager *resMan);
 };
 


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