diff options
author | Nicola Mettifogo | 2007-04-01 14:35:33 +0000 |
---|---|---|
committer | Nicola Mettifogo | 2007-04-01 14:35:33 +0000 |
commit | 91eaea3e583b4df9a75384e5b8627bfab7de9118 (patch) | |
tree | 293993f8760f686698403c8f6fe0cb7ee00095d8 /engines/parallaction/disk.cpp | |
parent | 0d78a7ca640c350c56ef7b36e75e1336f9b42d19 (diff) | |
download | scummvm-rg350-91eaea3e583b4df9a75384e5b8627bfab7de9118.tar.gz scummvm-rg350-91eaea3e583b4df9a75384e5b8627bfab7de9118.tar.bz2 scummvm-rg350-91eaea3e583b4df9a75384e5b8627bfab7de9118.zip |
Added code for resource loading and fixed the bug having Amiga demo crashing. It is now limitedly playable, although graphics is still heavily messed up.
svn-id: r26349
Diffstat (limited to 'engines/parallaction/disk.cpp')
-rw-r--r-- | engines/parallaction/disk.cpp | 26 |
1 files changed, 22 insertions, 4 deletions
diff --git a/engines/parallaction/disk.cpp b/engines/parallaction/disk.cpp index eaedcf5017..27d3cc137e 100644 --- a/engines/parallaction/disk.cpp +++ b/engines/parallaction/disk.cpp @@ -882,11 +882,29 @@ Cnv* AmigaDisk::loadFont(const char* name) { StaticCnv* AmigaDisk::loadStatic(const char* name) { debugC(1, kDebugDisk, "AmigaDisk::loadStatic '%s'", name); - if (!_archive.openArchivedFile(name)) - error("can't open static '%s' from archive", name); + Common::SeekableReadStream *s; + bool dispose = false; - DecrunchStream stream(_archive); - return makeStaticCnv(stream); + char path[PATH_LEN]; + sprintf(path, "%s.pp", name); + if (!_archive.openArchivedFile(path)) { + if (!_archive.openArchivedFile(name)) + error("can't open static '%s' from archive", name); + + s = &_archive; + } else { + DecrunchStream *stream = new DecrunchStream(_archive); + s = stream; + + dispose = true; + } + + StaticCnv *cnv = makeStaticCnv(*s); + + if (dispose) + delete s; + + return cnv; } Cnv* AmigaDisk::loadFrames(const char* name) { |