aboutsummaryrefslogtreecommitdiff
path: root/scumm
diff options
context:
space:
mode:
authorEugene Sandulenko2004-06-21 10:06:52 +0000
committerEugene Sandulenko2004-06-21 10:06:52 +0000
commit69ab14e1334d12df6c7cb41867f78d142a90c087 (patch)
treedf8049f05fcd49e82593ad25cfe9f7489d6dc952 /scumm
parentfdb2c41cdda7fa83856bf8654262387fe5776680 (diff)
downloadscummvm-rg350-69ab14e1334d12df6c7cb41867f78d142a90c087.tar.gz
scummvm-rg350-69ab14e1334d12df6c7cb41867f78d142a90c087.tar.bz2
scummvm-rg350-69ab14e1334d12df6c7cb41867f78d142a90c087.zip
More HE v7.0+ resource fixes.
Make puttdemo.win runnable again. svn-id: r13994
Diffstat (limited to 'scumm')
-rw-r--r--scumm/resource.cpp9
-rw-r--r--scumm/scumm.cpp2
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: