diff options
Diffstat (limited to 'engines/adl/hires2.h')
-rw-r--r-- | engines/adl/hires2.h | 38 |
1 files changed, 7 insertions, 31 deletions
diff --git a/engines/adl/hires2.h b/engines/adl/hires2.h index 15781097ef..0d32330a3e 100644 --- a/engines/adl/hires2.h +++ b/engines/adl/hires2.h @@ -26,6 +26,7 @@ #include "common/str.h" #include "adl/adl_v2.h" +#include "adl/disk.h" namespace Common { class ReadStream; @@ -36,23 +37,6 @@ namespace Adl { #define IDS_HR2_DISK_IMAGE "WIZARD.DSK" -// Track, sector, offset -#define TSO(TRACK, SECTOR, OFFSET) (((TRACK) * 16 + (SECTOR)) * 256 + (OFFSET)) -#define TS(TRACK, SECTOR) TSO(TRACK, SECTOR, 0) -#define T(TRACK) TS(TRACK, 0) - -#define IDI_HR2_OFS_INTRO_TEXT TSO(0x00, 0xd, 0x17) -#define IDI_HR2_OFS_VERBS T(0x19) -#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_ITEM_PICS TSO(0x1e, 0x9, 0x05) // Skip bogus pic 0 -#define IDI_HR2_OFS_ITEMS T(0x21) -#define IDI_HR2_OFS_ITEM_OFFSETS TSO(0x1b, 0x4, 0x15) - -#define IDI_HR2_OFS_CMDS_0 TS(0x1f, 0x7) -#define IDI_HR2_OFS_CMDS_1 TS(0x1d, 0x7) - #define IDI_HR2_NUM_ROOMS 135 #define IDI_HR2_NUM_MESSAGES 254 #define IDI_HR2_NUM_VARS 40 @@ -66,22 +50,9 @@ namespace Adl { #define IDI_HR2_MSG_ITEM_NOT_HERE 4 #define IDI_HR2_MSG_THANKS_FOR_PLAYING 239 -#define IDI_HR2_OFS_STR_ENTER_COMMAND TSO(0x1a, 0x1, 0xbc) -#define IDI_HR2_OFS_STR_VERB_ERROR TSO(0x1a, 0x1, 0x4f) -#define IDI_HR2_OFS_STR_NOUN_ERROR TSO(0x1a, 0x1, 0x8e) -#define IDI_HR2_OFS_STR_PLAY_AGAIN TSO(0x1a, 0x8, 0x25) -#define IDI_HR2_OFS_STR_PRESS_RETURN TSO(0x1a, 0x8, 0x5f) -#define IDI_HR2_OFS_STR_TIME TSO(0x19, 0x7, 0xd7) -#define IDI_HR2_OFS_STR_SAVE_INSERT TSO(0x1a, 0x6, 0x5f) -#define IDI_HR2_OFS_STR_SAVE_REPLACE TSO(0x1a, 0x6, 0xe5) -#define IDI_HR2_OFS_STR_RESTORE_INSERT TSO(0x1a, 0x7, 0x32) -#define IDI_HR2_OFS_STR_RESTORE_REPLACE TSO(0x1a, 0x7, 0xc2) - struct Picture2 { byte nr; - byte track; - byte sector; - byte offset; + DataBlockPtr data; }; struct RoomData { @@ -90,6 +61,8 @@ struct RoomData { Commands commands; }; +typedef Common::ScopedPtr<Common::SeekableReadStream> StreamPtr; + class HiRes2Engine : public AdlEngine_v2 { public: HiRes2Engine(OSystem *syst, const AdlGameDescription *gd) : AdlEngine_v2(syst, gd) { } @@ -107,7 +80,10 @@ private: void checkInput(byte verb, byte noun); void loadRoom(byte roomNr); + DataBlockPtr readDataBlockPtr(Common::ReadStream &f) const; + void readPictureMeta(Common::ReadStream &f, Picture2 &pic) const; + DiskImage_DSK _disk; RoomData _roomData; Common::Array<Picture2> _itemPics; }; |