aboutsummaryrefslogtreecommitdiff
path: root/scumm
diff options
context:
space:
mode:
authorTravis Howell2004-09-29 08:40:15 +0000
committerTravis Howell2004-09-29 08:40:15 +0000
commitd0e5fe1ded5fd176ff3e4edd03887878ec443180 (patch)
tree6f7a86320a9ec928acef065ade448e49fb6b1ca5 /scumm
parent8e8761dd4c3f51fb578b0565d8ce6cab07af07ef (diff)
downloadscummvm-rg350-d0e5fe1ded5fd176ff3e4edd03887878ec443180.tar.gz
scummvm-rg350-d0e5fe1ded5fd176ff3e4edd03887878ec443180.tar.bz2
scummvm-rg350-d0e5fe1ded5fd176ff3e4edd03887878ec443180.zip
Should only copy data, not tag/size.
svn-id: r15343
Diffstat (limited to 'scumm')
-rw-r--r--scumm/script_v6.cpp12
1 files changed, 4 insertions, 8 deletions
diff --git a/scumm/script_v6.cpp b/scumm/script_v6.cpp
index 1cc0756bc7..53ce1d3b6e 100644
--- a/scumm/script_v6.cpp
+++ b/scumm/script_v6.cpp
@@ -3071,10 +3071,6 @@ void ScummEngine_v6::o6_getPixel() {
}
void ScummEngine_v6::o6_setBoxSet() {
- //FIXME Causes glitches and game to crash
- // Only used in fbear when leaving the basement
- return;
-
int arg = pop() - 1;
const byte *room = getResourceAddress(rtRoom, _roomResource);
@@ -3089,11 +3085,11 @@ void ScummEngine_v6::o6_setBoxSet() {
if (!boxd)
error("ScummEngine_v6::o6_setBoxSet: Can't find dboxes for set %d", arg);
- dboxSize = READ_BE_UINT32(boxd + 4);
+ dboxSize = READ_BE_UINT32(boxd + 4) - 8;
byte *matrix = createResource(rtMatrix, 2, dboxSize);
assert(matrix);
- memcpy(matrix, boxd, dboxSize);
+ memcpy(matrix, boxd + 8, dboxSize);
ResourceIterator boxms(room, false);
for (i = 0; i < arg; i++)
@@ -3102,11 +3098,11 @@ void ScummEngine_v6::o6_setBoxSet() {
if (!boxm)
error("ScummEngine_v6::o6_setBoxSet: Can't find mboxes for set %d", arg);
- mboxSize = READ_BE_UINT32(boxm + 4);
+ mboxSize = READ_BE_UINT32(boxm + 4) - 8;
matrix = createResource(rtMatrix, 1, mboxSize);
assert(matrix);
- memcpy(matrix, boxm, mboxSize);
+ memcpy(matrix, boxm + 8, mboxSize);
if (_version == 7)
putActors();