diff options
author | Travis Howell | 2005-10-15 00:46:08 +0000 |
---|---|---|
committer | Travis Howell | 2005-10-15 00:46:08 +0000 |
commit | b6425d1cf8990873e5fb05741833722492322d71 (patch) | |
tree | daa9d1e16cf829a8b953dd12a0b53998d65e3f81 | |
parent | 842f520af1b6a268e7d7e2b8683debab0a8f7258 (diff) | |
download | scummvm-rg350-b6425d1cf8990873e5fb05741833722492322d71.tar.gz scummvm-rg350-b6425d1cf8990873e5fb05741833722492322d71.tar.bz2 scummvm-rg350-b6425d1cf8990873e5fb05741833722492322d71.zip |
Fix regression, resID shouldn't beint16.
Slight correction to copyArrayHelper.
svn-id: r19089
-rw-r--r-- | scumm/resource.cpp | 4 | ||||
-rw-r--r-- | scumm/script_v72he.cpp | 6 |
2 files changed, 7 insertions, 3 deletions
diff --git a/scumm/resource.cpp b/scumm/resource.cpp index 4ddc571c7a..070cd1906e 100644 --- a/scumm/resource.cpp +++ b/scumm/resource.cpp @@ -750,6 +750,8 @@ int ScummEngine::getResourceSize(int type, int idx) { } byte *ScummEngine::getResourceAddress(int type, int idx) { + printf("getResourceAddress: type %d idx %d\n", type, idx); + byte *ptr; CHECK_HEAP @@ -757,6 +759,8 @@ byte *ScummEngine::getResourceAddress(int type, int idx) { if (_heversion >= 80 && type == rtString) idx &= ~0x33539000; + printf("getResourceAddress2: type %d idx %d\n", type, idx); + if (!res.validateResource("getResourceAddress", type, idx)) return NULL; diff --git a/scumm/script_v72he.cpp b/scumm/script_v72he.cpp index fbb022ae68..4859fc776b 100644 --- a/scumm/script_v72he.cpp +++ b/scumm/script_v72he.cpp @@ -1859,7 +1859,7 @@ void ScummEngine_v72he::writeFileFromArray(int slot, int resID) { } void ScummEngine_v72he::o72_writeFile() { - int16 resID = pop(); + int resID = pop(); int slot = pop(); byte subOp = fetchScriptByte(); @@ -2126,12 +2126,12 @@ void ScummEngine_v72he::copyArrayHelper(ArrayHeader *ah, int idx2, int idx1, int *data = ah->data + offset; break; case kIntArray: - *num = (len1 - idx1) * 2; + *num = (len1 - idx1) * 2 + 2; *size = pitch * 2; *data = ah->data + offset * 2; break; case kDwordArray: - *num = (len1 - idx1) * 4; + *num = (len1 - idx1) * 4 + 4; *size = pitch * 4; *data = ah->data + offset * 4; break; |