diff options
author | Travis Howell | 2009-10-22 11:33:05 +0000 |
---|---|---|
committer | Travis Howell | 2009-10-22 11:33:05 +0000 |
commit | 4350f7b8c05a4ba22927f273c89171d840387c4e (patch) | |
tree | 324597e8d468440c298d778e9fa09f1400319e67 /engines/scumm | |
parent | 512c9cae11d9f83f2fbf84e66a0b0b9799b4ca96 (diff) | |
download | scummvm-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.cpp | 9 | ||||
-rw-r--r-- | engines/scumm/script.cpp | 7 |
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); |