[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