aboutsummaryrefslogtreecommitdiff
path: root/object.cpp
diff options
context:
space:
mode:
authorVincent Hamm2002-03-05 20:13:47 +0000
committerVincent Hamm2002-03-05 20:13:47 +0000
commit6387020fd9a9c41654d37cb8feca464fd7d5fec1 (patch)
tree88f9c26db4fac514e7d8bb60c6fcc10c7d1bd2dd /object.cpp
parent5eb73a9af4bd3c78662cec1a95b11b7137e9a568 (diff)
downloadscummvm-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.cpp14
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)