aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWalter van Niftrik2016-03-16 17:23:52 +0100
committerWalter van Niftrik2016-06-06 20:35:49 +0200
commitdf4daf954fe1bc379094b4a699267537f1f46916 (patch)
treeeeada6b71ad4e0325ef4b83ff9d9249e91323773
parent46528f2c04d593f50e8c1a04d25c6cd663c3d209 (diff)
downloadscummvm-rg350-df4daf954fe1bc379094b4a699267537f1f46916.tar.gz
scummvm-rg350-df4daf954fe1bc379094b4a699267537f1f46916.tar.bz2
scummvm-rg350-df4daf954fe1bc379094b4a699267537f1f46916.zip
ADL: Load hires2 items
-rw-r--r--engines/adl/hires2.cpp26
-rw-r--r--engines/adl/hires2.h1
2 files changed, 27 insertions, 0 deletions
diff --git a/engines/adl/hires2.cpp b/engines/adl/hires2.cpp
index 8b12746641..8dba9a6481 100644
--- a/engines/adl/hires2.cpp
+++ b/engines/adl/hires2.cpp
@@ -120,6 +120,32 @@ void HiRes2Engine::initState() {
f.readByte(); // always 1, possibly disk?
_state.rooms.push_back(room);
}
+
+ _state.items.clear();
+ f.seek(IDI_HR2_OFS_ITEMS);
+ while (f.readByte() != 0xff) {
+ Item item;
+ item.noun = f.readByte();
+ item.room = f.readByte();
+ item.picture = f.readByte();
+ item.isLineArt = f.readByte(); // Is this still used in this way?
+ item.position.x = f.readByte();
+ item.position.y = f.readByte();
+ item.state = f.readByte();
+ item.description = f.readByte();
+
+ f.readByte();
+
+ byte size = f.readByte();
+
+ for (uint i = 0; i < size; ++i)
+ item.roomPictures.push_back(f.readByte());
+
+ _state.items.push_back(item);
+
+ // One unknown extra byte compared to hires1
+ f.readByte();
+ }
}
void HiRes2Engine::loadRoom(byte roomNr) {
diff --git a/engines/adl/hires2.h b/engines/adl/hires2.h
index f9d6d924bc..6c7904bfaa 100644
--- a/engines/adl/hires2.h
+++ b/engines/adl/hires2.h
@@ -46,6 +46,7 @@ namespace Adl {
#define IDI_HR2_OFS_NOUNS TS(0x22, 0x2)
#define IDI_HR2_OFS_ROOMS TSO(0x21, 0x5, 0x0e) // Skip bogus room 0
#define IDI_HR2_OFS_MESSAGES TSO(0x1f, 0x2, 0x04) // Skip bogus message 0
+#define IDI_HR2_OFS_ITEMS T(0x21)
#define IDI_HR2_OFS_CMDS_0 TS(0x1f, 0x7)
#define IDI_HR2_OFS_CMDS_1 TS(0x1d, 0x7)