aboutsummaryrefslogtreecommitdiff
path: root/engines/scumm
diff options
context:
space:
mode:
authorTravis Howell2009-10-22 11:33:05 +0000
committerTravis Howell2009-10-22 11:33:05 +0000
commit4350f7b8c05a4ba22927f273c89171d840387c4e (patch)
tree324597e8d468440c298d778e9fa09f1400319e67 /engines/scumm
parent512c9cae11d9f83f2fbf84e66a0b0b9799b4ca96 (diff)
downloadscummvm-rg350-4350f7b8c05a4ba22927f273c89171d840387c4e.tar.gz
scummvm-rg350-4350f7b8c05a4ba22927f273c89171d840387c4e.tar.bz2
scummvm-rg350-4350f7b8c05a4ba22927f273c89171d840387c4e.zip
Fix objects structure and object scripts in PCE version of Loom.
svn-id: r45335
Diffstat (limited to 'engines/scumm')
-rw-r--r--engines/scumm/object.cpp9
-rw-r--r--engines/scumm/script.cpp7
2 files changed, 9 insertions, 7 deletions
diff --git a/engines/scumm/object.cpp b/engines/scumm/object.cpp
index 2eab2cfa3a..4466ced2cc 100644
--- a/engines/scumm/object.cpp
+++ b/engines/scumm/object.cpp
@@ -936,12 +936,13 @@ void ScummEngine_v4::resetRoomObject(ObjectData *od, const byte *room, const byt
od->x_pos = *(ptr + 8) * 8;
od->y_pos = ((*(ptr + 9)) & 0x7F) * 8;
- od->parentstate = (*(ptr + 11) & 0x80) ? 1 : 0;
+ od->parentstate = (*(ptr + 9) & 0x80) ? 1 : 0;
od->width = *(ptr + 10) * 8;
- od->parent = *(ptr + 11);
- od->walk_x = *(ptr + 13) * 8;
- od->walk_y = (*(ptr + 14) & 0x1f) * 8;
+ // TODO: Where is parent data?
+ od->parent = 0;
+ od->walk_x = READ_LE_UINT16(ptr + 11);
+ od->walk_y = READ_LE_UINT16(ptr + 13);
od->actordir = (*(ptr + 15)) & 7;
od->height = *(ptr + 15) & 0xf8;
} else {
diff --git a/engines/scumm/script.cpp b/engines/scumm/script.cpp
index 2c3fe09db2..d01d38b463 100644
--- a/engines/scumm/script.cpp
+++ b/engines/scumm/script.cpp
@@ -214,9 +214,10 @@ int ScummEngine::getVerbEntrypoint(int obj, int entry) {
verbptr += 3;
} while (1);
- if (_game.id == GID_LOOM && _game.platform == Common::kPlatformPCEngine)
- return verboffs + READ_LE_UINT16(verbptr + 1) + 3;
- else if (_game.features & GF_SMALL_HEADER)
+ if (_game.id == GID_LOOM && _game.platform == Common::kPlatformPCEngine) {
+ verbptr += READ_LE_UINT16(verbptr + 1) + 3;
+ return verbptr - objptr;
+ } else if (_game.features & GF_SMALL_HEADER)
return READ_LE_UINT16(verbptr + 1);
else
return verboffs + READ_LE_UINT16(verbptr + 1);