[Scummvm-cvs-logs] SF.net SVN: scummvm:[54033] scummvm/trunk/engines/m4/m4.cpp
dreammaster at users.sourceforge.net
dreammaster at users.sourceforge.net
Tue Nov 2 01:13:04 CET 2010
Revision: 54033
http://scummvm.svn.sourceforge.net/scummvm/?rev=54033&view=rev
Author: dreammaster
Date: 2010-11-02 00:13:04 +0000 (Tue, 02 Nov 2010)
Log Message:
-----------
M4: Reworked dumpFile to use Common::DumpFile
Modified Paths:
--------------
scummvm/trunk/engines/m4/m4.cpp
Modified: scummvm/trunk/engines/m4/m4.cpp
===================================================================
--- scummvm/trunk/engines/m4/m4.cpp 2010-11-01 22:19:16 UTC (rev 54032)
+++ scummvm/trunk/engines/m4/m4.cpp 2010-11-02 00:13:04 UTC (rev 54033)
@@ -266,20 +266,23 @@
_viewManager->moveToFront(view);
}
+#define DUMP_BUFFER_SIZE 1024
+
void MadsM4Engine::dumpFile(const char* filename, bool uncompress) {
-#if 0
- // FIXME: The following code is not portable and hence has been disabled.
- // Try replacing FILE by Common::DumpFile.
+ Common::DumpFile f;
+ byte buffer[DUMP_BUFFER_SIZE];
Common::SeekableReadStream *fileS = res()->get(filename);
- byte buffer[256];
- FILE *destFile = fopen(filename, "wb");
+
+ if (!f.open(filename))
+ error("Could not open '%s' for writing", filename);
+
int bytesRead = 0;
- printf("Dumping %s, size: %i\n", filename, fileS->size());
+ warning("Dumping %s, size: %i\n", filename, fileS->size());
if (!uncompress) {
while (!fileS->eos()) {
- bytesRead = fileS->read(buffer, 256);
- fwrite(buffer, bytesRead, 1, destFile);
+ bytesRead = fileS->read(buffer, DUMP_BUFFER_SIZE);
+ f.write(buffer, bytesRead);
}
} else {
MadsPack packData(fileS);
@@ -288,17 +291,16 @@
sourceUnc = packData.getItemStream(i);
printf("Dumping compressed chunk %i of %i, size is %i\n", i + 1, packData.getCount(), sourceUnc->size());
while (!sourceUnc->eos()) {
- bytesRead = sourceUnc->read(buffer, 256);
- fwrite(buffer, bytesRead, 1, destFile);
+ bytesRead = sourceUnc->read(buffer, DUMP_BUFFER_SIZE);
+ f.write(buffer, bytesRead);
}
delete sourceUnc;
}
}
- fclose(destFile);
+ f.close();
res()->toss(filename);
res()->purge();
-#endif
}
/*--------------------------------------------------------------------------*/
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