diff options
author | Vincent Hamm | 2002-03-05 20:13:47 +0000 |
---|---|---|
committer | Vincent Hamm | 2002-03-05 20:13:47 +0000 |
commit | 6387020fd9a9c41654d37cb8feca464fd7d5fec1 (patch) | |
tree | 88f9c26db4fac514e7d8bb60c6fcc10c7d1bd2dd /object.cpp | |
parent | 5eb73a9af4bd3c78662cec1a95b11b7137e9a568 (diff) | |
download | scummvm-rg350-6387020fd9a9c41654d37cb8feca464fd7d5fec1.tar.gz scummvm-rg350-6387020fd9a9c41654d37cb8feca464fd7d5fec1.tar.bz2 scummvm-rg350-6387020fd9a9c41654d37cb8feca464fd7d5fec1.zip |
Fixed struct RoomHeader for v7 implementation
svn-id: r3650
Diffstat (limited to 'object.cpp')
-rw-r--r-- | object.cpp | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/object.cpp b/object.cpp index 78ad2378a2..efae0982f8 100644 --- a/object.cpp +++ b/object.cpp @@ -354,7 +354,10 @@ void Scumm::loadRoomObjects() { room = getResourceAddress(rtRoom, _roomResource); roomhdr = (RoomHeader*)findResourceData(MKID('RMHD'), room); - _numObjectsInRoom = READ_LE_UINT16(&roomhdr->numObjects); + if(_features & GF_AFTER_V7) + _numObjectsInRoom = READ_LE_UINT16(&(roomhdr->v7.numObjects)); + else + _numObjectsInRoom = READ_LE_UINT16(&(roomhdr->old.numObjects)); if (_numObjectsInRoom == 0) return; @@ -420,7 +423,7 @@ void Scumm::loadRoomObjectsSmall() { room = getResourceAddress(rtRoom, _roomResource); roomhdr = (RoomHeader*)findResourceData(MKID('RMHD'), room); - _numObjectsInRoom = READ_LE_UINT16(&roomhdr->numObjects); + _numObjectsInRoom = READ_LE_UINT16(&(roomhdr->old.numObjects)); if (_numObjectsInRoom == 0) return; @@ -747,7 +750,12 @@ void Scumm::findObjectInRoom(FindObjectInRoom *fo, byte findWhat, uint id, uint fo->roomptr = roomptr = getResourceAddress(rtRoom, room); roomhdr = (RoomHeader*)findResourceData(MKID('RMHD'), roomptr); - numobj = READ_LE_UINT16(&roomhdr->numObjects); + + if(_features & GF_AFTER_V7) + numobj = READ_LE_UINT16(&(roomhdr->v7.numObjects)); + else + numobj = READ_LE_UINT16(&(roomhdr->old.numObjects)); + if (numobj==0) error("findObjectInRoom: No object found in room %d", room); if (numobj > _numLocalObjects) |