SCI: Add handling for the RAVE resource type, found in KQ6CD

This contains the sync data in the Windows version of KQ6CD.
Note that currently the sync36 resource is 2 bytes bigger
(it contains 2 bytes from the RAVE resource). Some test code
has also been added to dump the RAVE sync resources
This commit is contained in:
Filippos Karapetis 2013-12-10 01:40:46 +02:00
parent 59b7aa354b
commit fa2ea4fc61
4 changed files with 69 additions and 37 deletions

View file

@ -21,6 +21,7 @@
*/
#include "common/archive.h"
#include "common/file.h" // for DumpFile
#include "common/system.h"
#include "sci/sci.h"
@ -140,6 +141,27 @@ void Portrait::doit(Common::Point position, uint16 resourceId, uint16 noun, uint
Resource *syncResource = _resMan->findResource(syncResourceId, true);
uint syncOffset = 0;
#if 0
// Dump the sync resources to disk
Common::DumpFile *outFile = new Common::DumpFile();
Common::String outName = syncResourceId.toPatchNameBase36() + ".sync36";
outFile->open(outName);
syncResource->writeToStream(outFile);
outFile->finalize();
outFile->close();
ResourceId raveResourceId = ResourceId(kResourceTypeRave, resourceId, noun, verb, cond, seq);
Resource *raveResource = _resMan->findResource(raveResourceId, true);
outName = raveResourceId.toPatchNameBase36() + ".rave";
outFile->open(outName);
raveResource->writeToStream(outFile);
outFile->finalize();
outFile->close();
_resMan->unlockResource(raveResource);
delete outFile;
#endif
// Set the portrait palette
_palette->set(&_portraitPalette, false, true);