diff options
-rw-r--r-- | scumm/resource.cpp | 9 | ||||
-rw-r--r-- | scumm/scumm.cpp | 2 |
2 files changed, 8 insertions, 3 deletions
diff --git a/scumm/resource.cpp b/scumm/resource.cpp index a233c045ca..6fef492893 100644 --- a/scumm/resource.cpp +++ b/scumm/resource.cpp @@ -622,7 +622,7 @@ int ScummEngine::loadResource(int type, int idx) { if (roomNr == 0) roomNr = _roomResource; - if (type == rtRoom) { + if (type == rtRoom && _heversion < 70) { if (_version == 8) fileOffs = 8; else @@ -653,6 +653,11 @@ int ScummEngine::loadResource(int type, int idx) { if ((type == rtSound) && !(_features & GF_AMIGA) && !(_features & GF_FMTOWNS)) { return readSoundResourceSmallHeader(type, idx); } + } else if (_heversion >= 70) { + tag = _fileHandle.readUint32LE(); + size = _fileHandle.readUint32BE() + 8; + + _fileHandle.seek(-8, SEEK_CUR); } else { if (type == rtSound) { return readSoundResource(type, idx); @@ -1712,7 +1717,7 @@ int ScummEngine::readSoundResourceSmallHeader(int type, int idx) { } int ScummEngine::getResourceRoomNr(int type, int idx) { - if (type == rtRoom) + if (type == rtRoom && _heversion < 70) return idx; return res.roomno[type][idx]; } diff --git a/scumm/scumm.cpp b/scumm/scumm.cpp index 4d3fa6610c..ad08405d3b 100644 --- a/scumm/scumm.cpp +++ b/scumm/scumm.cpp @@ -2990,7 +2990,7 @@ Engine *Engine_SCUMM_create(GameDetector *detector, OSystem *syst) { // There are both Windows and DOS versions of early HE titles // specify correct version here - if (game.features & GF_HUMONGOUS && game.heversion == 60) + if (game.features & GF_HUMONGOUS && (game.heversion == 60 || game.id == GID_PUTTDEMO)) game.heversion = 70; break; case Common::kPlatformFMTowns: |