diff options
author | Travis Howell | 2003-08-14 10:28:16 +0000 |
---|---|---|
committer | Travis Howell | 2003-08-14 10:28:16 +0000 |
commit | 57133e526f0cb88024fd662dd351a35a3e50029b (patch) | |
tree | 4d9d9ac7f44b6b068490503ea53a56be56b3b738 /scumm/resource.cpp | |
parent | 7faa06aecd43c38da6e72388c6124708de16de94 (diff) | |
download | scummvm-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.cpp | 15 |
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); |