aboutsummaryrefslogtreecommitdiff
path: root/scumm/resource.cpp
diff options
context:
space:
mode:
authorTravis Howell2003-08-14 10:28:16 +0000
committerTravis Howell2003-08-14 10:28:16 +0000
commit57133e526f0cb88024fd662dd351a35a3e50029b (patch)
tree4d9d9ac7f44b6b068490503ea53a56be56b3b738 /scumm/resource.cpp
parent7faa06aecd43c38da6e72388c6124708de16de94 (diff)
downloadscummvm-rg350-57133e526f0cb88024fd662dd351a35a3e50029b.tar.gz
scummvm-rg350-57133e526f0cb88024fd662dd351a35a3e50029b.tar.bz2
scummvm-rg350-57133e526f0cb88024fd662dd351a35a3e50029b.zip
Add roland support for loom )ega)
Enable roland support for monkeyega svn-id: r9688
Diffstat (limited to 'scumm/resource.cpp')
-rw-r--r--scumm/resource.cpp15
1 files changed, 14 insertions, 1 deletions
diff --git a/scumm/resource.cpp b/scumm/resource.cpp
index b4c20dea3f..877bd3b473 100644
--- a/scumm/resource.cpp
+++ b/scumm/resource.cpp
@@ -1426,7 +1426,20 @@ int Scumm::readSoundResourceSmallHeader(int type, int idx) {
debug(4, "readSoundResourceSmallHeader(%s,%d)", resTypeFromId(type), idx);
- if ((_features & GF_OLD_BUNDLE)) {
+ if ((_gameId == GID_LOOM) && VAR_SOUNDCARD == 4) {
+ byte *ptr, *src_ptr;
+ ro_offs = _fileHandle.pos();
+ ro_size = _fileHandle.readUint16LE();
+
+ src_ptr = (byte *) calloc(ro_size - 4, 1);
+ _fileHandle.seek(ro_offs +4, SEEK_SET);
+ _fileHandle.read(src_ptr, ro_size -4);
+
+ ptr = createResource(type, idx, ro_size + 2);
+ memcpy(ptr, "RO", 2); ptr += 2;
+ memcpy(ptr, src_ptr, ro_size - 4); ptr += ro_size - 4;
+ return 1;
+ } else if (_features & GF_OLD_BUNDLE) {
wa_offs = _fileHandle.pos();
wa_size = _fileHandle.readUint16LE();
_fileHandle.seek(wa_size - 2, SEEK_CUR);