[Scummvm-git-logs] scummvm master -> 622d27f73f1d80a04e91da0ed72a0bfa4d00bd07
dreammaster
noreply at scummvm.org
Sun May 29 22:35:14 UTC 2022
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
622d27f73f GLK: SCOTT: Hopefully fix global constructor warning
Commit: 622d27f73f1d80a04e91da0ed72a0bfa4d00bd07
https://github.com/scummvm/scummvm/commit/622d27f73f1d80a04e91da0ed72a0bfa4d00bd07
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2022-05-29T15:34:09-07:00
Commit Message:
GLK: SCOTT: Hopefully fix global constructor warning
The games list is moved to be a field of Globals, by
putting the list into a header file included directly
inside the Globals class definition
Changed paths:
A engines/glk/scott/games.h
engines/glk/scott/detect_game.cpp
engines/glk/scott/game_info.cpp
engines/glk/scott/game_info.h
engines/glk/scott/globals.h
diff --git a/engines/glk/scott/detect_game.cpp b/engines/glk/scott/detect_game.cpp
index 42159e878e0..eec6a784b69 100644
--- a/engines/glk/scott/detect_game.cpp
+++ b/engines/glk/scott/detect_game.cpp
@@ -378,7 +378,7 @@ GameIDType detectGame(Common::SeekableReadStream *f) {
_G(_fileLength) = f->size();
- _G(_game) = new GameInfo;
+ _G(_game) = &_G(_fallbackGame);
Common::String md5 = g_vm->getGameMD5();
const GlkDetectionEntry *p = SCOTT_GAMES;
@@ -386,7 +386,7 @@ GameIDType detectGame(Common::SeekableReadStream *f) {
while (p->_md5) {
if (md5.equalsC(p->_md5)) {
if (!scumm_stricmp(p->_extra, "")) {
- CURRENT_GAME = SCOTTFREE;
+ _G(_fallbackGame)._gameID = SCOTTFREE;
}
if (!scumm_stricmp(p->_extra, "ZXSpectrum")) {
_G(_entireFile) = new uint8_t[_G(_fileLength)];
@@ -407,10 +407,9 @@ GameIDType detectGame(Common::SeekableReadStream *f) {
if (dict_type == NOT_A_GAME)
return UNKNOWN_GAME;
for (int i = 0; i < NUMGAMES; i++) {
- if (g_games[i]._dictionary == dict_type) {
- if (tryLoading(g_games[i], offset, 0)) {
- delete _G(_game);
- _G(_game) = &g_games[i];
+ if (_G(_games)[i]._dictionary == dict_type) {
+ if (tryLoading(_G(_games)[i], offset, 0)) {
+ _G(_game) = &_G(_games)[i];
break;
}
}
diff --git a/engines/glk/scott/game_info.cpp b/engines/glk/scott/game_info.cpp
index 439fb5adb70..c6902a250a3 100644
--- a/engines/glk/scott/game_info.cpp
+++ b/engines/glk/scott/game_info.cpp
@@ -27,2348 +27,6 @@
namespace Glk {
namespace Scott {
-GameInfo g_games[NUMGAMES] = {
- GameInfo("Pirate Adventure",
- PIRATE,
- OLD_STYLE, // type
- ENGLISH, // subtype
- THREE_LETTER_UNCOMPRESSED, // dictionary type
-
- 66, // Number of items
- 177, // Number of actions
- 79, // Number of words
- 26, // Number of rooms
- 6, // Max carried items
- 3, // Word length
- 99, // Number of messages
- 80, // number_of_verbs
- 79, // number_of_nouns;
- 0x2451, // header
- EARLY, // header style
- 0, // no room images
- 0, // no item flags
- 0, // no item images
- 0x3a50, // actions
-
- UNCOMPRESSED,
- 0x469a, // dictionary
- FOLLOWS, // start_of_room_descriptions;
- FOLLOWS, // start_of_room_connections;
- FOLLOWS, // start_of_messages;
- FOLLOWS, // start_of_item_descriptions;
- FOLLOWS, // start_of_item_locations;
-
- 0x2539, // start_of_system_messages
- 0x28de, // start of directions
- 0, // start_of_characters;
- 0, // start_of_image_data;
- 0, // image_address_offset
- 0, // number_of_pictures;
- NO_PALETTE, // palette;
- 0,
- 0),
- GameInfo("Voodoo Castle",
- VOODOO,
- OLD_STYLE, // type
- ENGLISH, // subtype
- THREE_LETTER_UNCOMPRESSED, // dictionary type
-
- 65, // Number of items
- 189, // Number of actions
- 89, // Number of words
- 25, // Number of rooms
- 9, // Max carried items
- 3, // Word length
- 99, // Number of messages
-
- 90, // number_of_verbs
- 89, // number_of_nouns;
-
- 0x2451, // header
- EARLY, // header style
-
- 0, // no room images
- 0, // no item flags
- 0, // no item images
-
- 0x3a50, // actions
- UNCOMPRESSED,
- 0x4752, // dictionary
- FOLLOWS, // start_of_room_descriptions;
- FOLLOWS, // start_of_room_connections;
- FOLLOWS, // start_of_messages;
- FOLLOWS, // start_of_item_descriptions;
- FOLLOWS, // start_of_item_locations;
-
- 0x2539, // start_of_system_messages
- 0x28de, // start of directions
-
- 0, // start_of_characters;
- 0, // start_of_image_data;
- 0, // image_address_offset
- 0, // number_of_pictures;
- NO_PALETTE, // palette;
- 0, // picture_format_version;
- 0),
- GameInfo("Strange Odyssey",
- STRANGE,
- OLD_STYLE, // type
- ENGLISH, // subtype
- FOUR_LETTER_UNCOMPRESSED, // dictionary type
-
- 55, // Number of items
- 223, // Number of actions
- 79, // Number of words
- 35, // Number of rooms
- 6, // Max carried items
- 4, // Word length
- 94, // Number of messages
-
- 80, // number_of_verbs
- 79, // number_of_nouns;
-
- 0x2451, // header
- EARLY, // header style
-
- 0, // no room images
- 0, // no item flags
- 0, // no item images
-
- 0x3a50, // actions
- UNCOMPRESSED,
- 0x499a, // dictionary
- FOLLOWS, // start_of_room_descriptions;
- FOLLOWS, // start_of_room_connections;
- FOLLOWS, // start_of_messages;
- FOLLOWS, // start_of_item_descriptions;
- FOLLOWS, // start_of_item_locations;
-
- 0x2539, // start_of_system_messages
- 0x28de, // start of directions
-
- 0, // start_of_characters;
- 0, // start_of_image_data;
- 0, // image_address_offset
- 0, // number_of_pictures;
- NO_PALETTE, // palette;
- 0, // picture_format_version;
- 0),
- GameInfo("Buckaroo Banzai",
- BANZAI,
- OLD_STYLE, // type
- ENGLISH, // subtype
- FOUR_LETTER_UNCOMPRESSED, // dictionary type
-
- 60, // Number of items
- 266, // Number of actions
- 110, // Number of words
- 35, // Number of rooms
- 5, // Max carried items
- 4, // Word length
- 95, // Number of messages
-
- 111, // number_of_verbs
- 110, // number_of_nouns;
-
- 0x2451, // header
- EARLY, // header style
-
- 0, // no room images
- 0, // no item flags
- 0, // no item images
-
- 0x3a50, // actions
- UNCOMPRESSED,
- 0x4c54, // dictionary
- FOLLOWS, // start_of_room_descriptions;
- FOLLOWS, // start_of_room_connections;
- FOLLOWS, // start_of_messages;
- FOLLOWS, // start_of_item_descriptions;
- FOLLOWS, // start_of_item_locations;
-
- 0x2539, // start_of_system_messages
- 0x28de, // start of directions
-
- 0, // start_of_characters;
- 0, // start_of_image_data;
- 0, // image_address_offset
- 0, // number_of_pictures;
- NO_PALETTE, // palette;
- 0, // picture_format_version;
- 0),
- GameInfo("The Golden Baton",
- BATON,
- OLD_STYLE, // type
- MYSTERIOUS, // subtype
- FOUR_LETTER_UNCOMPRESSED, // dictionary type
-
- 48, // Number of items
- 171, // Number of actions
- 76, // Number of words
- 31, // Number of rooms
- 5, // Max carried items
- 4, // Word length
- 82, // Number of messages
-
- 77, // number_of_verbs
- 76, // number_of_nouns;
-
- 0x2349, // header
- EARLY, // header style
-
- 0, // no room images
- 0, // no item flags
- 0, // no item images
-
- 0x3b56, // actions
- UNCOMPRESSED,
- 0x473a, // dictionary
- FOLLOWS, // start_of_room_descriptions;
- FOLLOWS, // start_of_room_connections;
- FOLLOWS, // start_of_messages;
- FOLLOWS, // start_of_item_descriptions;
- FOLLOWS, // start_of_item_locations;
-
- 0x2450, // start_of_system_messages
- 0x277e, // start of directions
-
- 0, // start_of_characters;
- FOLLOWS, // start_of_image_data;
- 0, // image_address_offset
- 30, // number_of_pictures;
- ZXOPT, // palette
- 99, // picture_format_version;
- 0),
- GameInfo("The Golden Baton C64",
- BATON_C64,
- NO_TYPE, // type
- static_cast<Subtype>(MYSTERIOUS | ENGLISH | C64), // subtype
- FOUR_LETTER_UNCOMPRESSED, // dictionary type
-
- 48, // Number of items
- 166, // Number of actions
- 78, // Number of words
- 31, // Number of rooms
- 6, // Max carried items
- 4, // Word length
- 99, // Number of messages
-
- 80, // number_of_verbs
- 79, // number_of_nouns;
-
- 0x1dd9, // header
- MYSTERIOUS_C64_HEADER, // header style
-
- 0, // no room images
- 0, // no item flags
- 0, // no item images
-
- 0x1df1, // actions
- UNCOMPRESSED,
- 0x2861, // dictionary
- FOLLOWS, // start_of_room_descriptions;
- FOLLOWS, // start_of_room_connections;
- FOLLOWS, // start_of_messages;
- FOLLOWS, // start_of_item_descriptions;
- FOLLOWS, // start_of_item_locations;
-
- 0x408, // start_of_system_messages
- 0x408, // start of directions
-
- 0, // start_of_characters;
- 0x38f1, // start_of_image_data;
- 0, // image_address_offset
- 30, // number_of_pictures;
- C64A, // palette
- 99, // picture_format_version;
- 0),
- GameInfo("The Time Machine",
- TIME_MACHINE,
- OLD_STYLE, // type
- MYSTERIOUS, // subtype
- FOUR_LETTER_UNCOMPRESSED, // dictionary type
-
- 62, // Number of items
- 164, // Number of actions
- 87, // Number of words
- 44, // Number of rooms
- 6, // Max carried items
- 4, // Word length
- 82, // Number of messages
-
- 88, // number_of_verbs
- 87, // number_of_nouns;
-
- 0x2351, // header
- EARLY, // header style
-
- 0, // no room images
- 0, // no item flags
- 0, // no item images
-
- 0x3b81, // actions
- UNCOMPRESSED,
- 0x475f, // dictionary
- FOLLOWS, // start_of_room_descriptions;
- FOLLOWS, // start_of_room_connections;
- FOLLOWS, // start_of_messages;
- FOLLOWS, // start_of_item_descriptions;
- FOLLOWS, // start_of_item_locations;
-
- 0x24c0, // start_of_system_messages
- 0x2780, // start of directions
-
- 0, // start_of_characters;
- FOLLOWS,
- 0, // image_address_offset
- 43, // number_of_pictures;
- ZXOPT, // palette
- 99, // picture_format_version;
- 0),
- GameInfo("The Time Machine C64",
- TIME_MACHINE_C64,
- NO_TYPE, // type
- static_cast<Subtype>(MYSTERIOUS | ENGLISH | C64), // subtype
- FOUR_LETTER_UNCOMPRESSED, // dictionary type
-
- 62, // Number of items
- 161, // Number of actions
- 85, // Number of words
- 44, // Number of rooms
- 6, // Max carried items
- 4, // Word length
- 73, // Number of messages
-
- 87, // number_of_verbs
- 85, // number_of_nouns;
-
- 0x1dd9, // header
- MYSTERIOUS_C64_HEADER, // header style
-
- 0, // no room images
- 0, // no item flags
- 0, // no item images
-
- 0x1df1, // actions
- UNCOMPRESSED,
- 0x2811, // dictionary
- 0x2b6d, // start_of_room_descriptions;
- FOLLOWS, // start_of_room_connections;
- 0x2f0f, // start_of_messages;
- FOLLOWS, // start_of_item_descriptions;
- 0x37ce, // start_of_item_locations;
-
- 0x408, // start_of_system_messages
- 0x408, // start of directions
-
- 0, // start_of_characters;
- 0x3872, // start_of_image_data;
- 0, // image_address_offset
- 43, // number_of_pictures;
- C64A, // palette
- 99, // picture_format_version;
- 0),
- GameInfo("Arrow of Death part 1",
- ARROW1,
- OLD_STYLE, // type
- MYSTERIOUS, // subtype
- FOUR_LETTER_UNCOMPRESSED, // dictionary type
-
- 64, // Number of items
- 150, // Number of actions
- 90, // Number of words
- 52, // Number of rooms
- 5, // Max carried items
- 4, // Word length
- 82, // Number of messages
-
- 91, // number_of_verbs
- 83, // number_of_nouns;
-
- 0x2351, // header
- EARLY, // header style
-
- 0, // no room images
- 0, // no item flags
- 0, // no item images
-
- 0x3b81, // actions
- UNCOMPRESSED,
- 0x46b3, // dictionary
- 0x4a41, // start_of_room_descriptions;
- FOLLOWS, // start_of_room_connections;
- FOLLOWS, // start_of_messages;
- FOLLOWS, // start_of_item_descriptions;
- FOLLOWS, // start_of_item_locations;
-
- 0x24c0, // start_of_system_messages
- 0x2780, // start of directions
-
- 0, // start_of_characters;
- FOLLOWS, // start_of_image_data;
- 0, // image_address_offset
- 51, // number_of_pictures;
- ZXOPT, // palette
- 99, // picture_format_version;
- 0),
- GameInfo("Arrow of Death part 1 C64",
- ARROW1_C64,
- NO_TYPE, // type
- static_cast<Subtype>(MYSTERIOUS | ENGLISH | C64), // subtype
- FOUR_LETTER_UNCOMPRESSED, // dictionary type
-
- 64, // Number of items
- 150, // Number of actions
- 90, // Number of words
- 52, // Number of rooms
- 5, // Max carried items
- 4, // Word length
- 82, // Number of messages
-
- 91, // number_of_verbs
- 82, // number_of_nouns;
-
- 0x1dd9, // header
- MYSTERIOUS_C64_HEADER, // header style
-
- 0, // no room images
- 0, // no item flags
- 0, // no item images
-
- 0x1df1, // actions
- UNCOMPRESSED,
- 0x2761, // dictionary
- FOLLOWS, // start_of_room_descriptions;
- FOLLOWS, // start_of_room_connections;
- FOLLOWS, // start_of_messages;
- FOLLOWS, // start_of_item_descriptions;
- FOLLOWS, // start_of_item_locations;
-
- 0x0408, // start_of_system_messages
- 0x0408, // start of directions
-
- 0, // start_of_characters;
- 0x38e2, // start_of_image_data;
- 0, // image_address_offset
- 51, // number_of_pictures;
- C64A, // palette
- 99, // picture_format_version;
- 0),
- GameInfo("Arrow of Death part 2",
- ARROW2,
- OLD_STYLE, // type
- MYSTERIOUS, // subtype
- FOUR_LETTER_UNCOMPRESSED, // dictionary type
-
- 91, // Number of items
- 190, // Number of actions
- 83, // Number of words
- 65, // Number of rooms
- 9, // Max carried items
- 4, // Word length
- 82, // Number of messages
-
- 84, // number_of_verbs
- 83, // number_of_nouns;
-
- 0x2351, // header
- EARLY, // header style
-
- 0, // no room images
- 0, // no item flags
- 0, // no item images
-
- 0x3b81, // actions
- UNCOMPRESSED,
- 0x49b7, // dictionary
- FOLLOWS, // start_of_room_descriptions;
- FOLLOWS, // start_of_room_connections;
- FOLLOWS, // start_of_messages;
- FOLLOWS, // start_of_item_descriptions;
- FOLLOWS, // start_of_item_locations;
-
- 0x24c0, // start_of_system_messages
- 0x2780, // start of directions
-
- 0, // start_of_characters;
- FOLLOWS, // start_of_image_data;
- 0, // image_address_offset
- 64, // number_of_pictures;
- ZXOPT, // palette
- 99, // picture_format_version;
- 0),
- GameInfo("Arrow of Death part 2 C64",
- ARROW2_C64,
- NO_TYPE, // type
- static_cast<Subtype>(MYSTERIOUS | ENGLISH | C64), // subtype
- FOUR_LETTER_UNCOMPRESSED, // dictionary type
-
- 90, // Number of items
- 176, // Number of actions
- 82, // Number of words
- 65, // Number of rooms
- 9, // Max carried items
- 4, // Word length
- 82, // Number of messages
-
- 81, // number_of_verbs
- 82, // number_of_nouns;
-
- 0x1dd9, // header
- ARROW_OF_DEATH_PT_2_C64_HEADER, // header style
-
- 0, // no room images
- 0, // no item flags
- 0, // no item images
-
- 0x1df1, // actions
- UNCOMPRESSED,
- 0x2901, // dictionary
- FOLLOWS, // start_of_room_descriptions;
- FOLLOWS, // start_of_room_connections;
- FOLLOWS, // start_of_messages;
- FOLLOWS, // start_of_item_descriptions;
- FOLLOWS, // start_of_item_locations;
-
- 0x408, // start_of_system_messages
- 0x408, // start of directions
-
- 0, // start_of_characters;
- 0x3cac, // start_of_image_data;
- 0, // image_address_offset
- 64, // number_of_pictures;
- C64A, // palette
- 99, // picture_format_version;
- 0),
- GameInfo("Escape from Pulsar 7",
- PULSAR7,
- OLD_STYLE, // type
- MYSTERIOUS, // subtype
- FOUR_LETTER_UNCOMPRESSED, // dictionary type
-
- 90, // Number of items
- 220, // Number of actions
- 145, // Number of words
- 45, // Number of rooms
- 6, // Max carried items
- 4, // Word length
- 82, // Number of messages
-
- 146, // number_of_verbs
- 145, // number_of_nouns;
-
- 0x2351, // header
- EARLY, // header style
-
- 0, // no room images
- 0, // no item flags
- 0, // no item images
-
- 0x3b81, // actions
- UNCOMPRESSED,
- 0x4b1d, // dictionary
- FOLLOWS, // start_of_room_descriptions;
- FOLLOWS, // start_of_room_connections;
- FOLLOWS, // start_of_messages;
- FOLLOWS, // start_of_item_descriptions;
- FOLLOWS, // start_of_item_locations;
-
- 0x24c0, // start_of_system_messages
- 0x2780, // start of directions
-
- 0, // start_of_characters;
- FOLLOWS, // start_of_image_data;
- 0, // image_address_offset
- 44, // number_of_pictures;
- ZXOPT, // palette
- 99, // picture_format_version;
- 0),
- GameInfo("Escape from Pulsar 7 C64",
- PULSAR7_C64,
- NO_TYPE, // type
- static_cast<Subtype>(MYSTERIOUS | ENGLISH | C64), // subtype
- FOUR_LETTER_UNCOMPRESSED, // dictionary type
-
- 88, // Number of items
- 195, // Number of actions
- 145, // Number of words
- 45, // Number of rooms
- 6, // Max carried items
- 4, // Word length
- 82, // Number of messages
-
- 146, // number_of_verbs
- 102, // number_of_nouns;
-
- 0x1dd9, // header
- EARLY, // header style
-
- 0, // no room images
- 0, // no item flags
- 0, // no item images
-
- 0x1da3, // actions
- UNCOMPRESSED,
- 0x29e3, // dictionary
- FOLLOWS, // start_of_room_descriptions;
- FOLLOWS, // start_of_room_connections;
- FOLLOWS, // start_of_messages;
- FOLLOWS, // start_of_item_descriptions;
- FOLLOWS, // start_of_item_locations;
-
- 0x408, // start_of_system_messages
- 0x408, // start of directions
-
- 0, // start_of_characters;
- 0x3bf4, // start_of_image_data;
- 0, // image_address_offset
- 44, // number_of_pictures;
- C64A, // palette
- 99, // picture_format_version;
- 0),
- GameInfo("Circus",
- CIRCUS,
- OLD_STYLE, // type
- MYSTERIOUS, // subtype
- FOUR_LETTER_UNCOMPRESSED, // dictionary type
-
- 65, // Number of items
- 165, // Number of actions
- 97, // Number of words
- 36, // Number of rooms
- 6, // Max carried items
- 4, // Word length
- 82, // Number of messages
-
- 98, // number_of_verbs
- 97, // number_of_nouns;
-
- 0x2349, // header
- EARLY, // header style
-
- 0, // no room images
- 0, // no item flags
- 0, // no item images
-
- 0x3b56, // actions
- UNCOMPRESSED,
- 0x471a, // dictionary
- FOLLOWS, // start_of_room_descriptions;
- FOLLOWS, // start_of_room_connections;
- FOLLOWS, // start_of_messages;
- FOLLOWS, // start_of_item_descriptions;
- FOLLOWS, // start_of_item_locations;
-
- 0x24c0, // start_of_system_messages
- 0x277E, // start of directions
-
- 0, // start_of_characters;
- FOLLOWS, // start_of_image_data;
- 0, // image_address_offset
- 35, // number_of_pictures;
- ZXOPT, // palette
- 99, // picture_format_version;
- 0),
- GameInfo("Circus C64",
- CIRCUS_C64,
- NO_TYPE, // type
- static_cast<Subtype>(MYSTERIOUS | ENGLISH | C64), // subtype
- FOUR_LETTER_UNCOMPRESSED, // dictionary type
-
- 65, // Number of items
- 165, // Number of actions
- 97, // Number of words
- 36, // Number of rooms
- 6, // Max carried items
- 4, // Word length
- 72, // Number of messages
-
- 98, // number_of_verbs
- 96, // number_of_nouns;
-
- 0x1dd9, // header
- MYSTERIOUS_C64_HEADER, // header style
-
- 0, // no room images
- 0, // no item flags
- 0, // no item images
-
- 0x1df1, // actions
- UNCOMPRESSED,
- 0x2851, // dictionary
- FOLLOWS, // start_of_room_descriptions;
- FOLLOWS, // start_of_room_connections;
- FOLLOWS, // start_of_messages;
- FOLLOWS, // start_of_item_descriptions;
- FOLLOWS, // start_of_item_locations;
-
- 0x408, // start_of_system_messages
- 0x408, // start of directions
-
- 0, // start_of_characters;
- 0x3914, // start_of_image_data;
- 0, // image_address_offset
- 35, // number_of_pictures;
- C64A, // palette
- 99, // picture_format_version;
- 0),
- GameInfo("Feasibility Experiment",
- FEASIBILITY,
- OLD_STYLE, // type
- MYSTERIOUS, // subtype
- FOUR_LETTER_UNCOMPRESSED, // dictionary type
-
- 65, // Number of items
- 164, // Number of actions
- 82, // Number of words
- 59, // Number of rooms
- 5, // Max carried items
- 4, // Word length
- 82, // Number of messages
-
- 83, // number_of_verbs
- 82, // number_of_nouns;
-
- 0x2351, // header
- EARLY, // header style
-
- 0, // no room images
- 0, // no item flags
- 0, // no item images
-
- 0x3b81, // actions
- UNCOMPRESSED,
- 0x47bf, // dictionary
- FOLLOWS, // start_of_room_descriptions;
- FOLLOWS, // start_of_room_connections;
- FOLLOWS, // start_of_messages;
- FOLLOWS, // start_of_item_descriptions;
- FOLLOWS, // start_of_item_locations;
-
- 0x24c0, // start_of_system_messages
- 0x2780, // start of directions
-
- 0, // start_of_characters;
- FOLLOWS, // start_of_image_data;
- 0, // image_address_offset
- 58, // number_of_pictures;
- ZXOPT, // palette
- 99, // picture_format_version;
- 0),
- GameInfo("Feasibility Experiment C64",
- FEASIBILITY_C64,
- NO_TYPE, // type
- static_cast<Subtype>(MYSTERIOUS | ENGLISH | C64), // subtype
- FOUR_LETTER_UNCOMPRESSED, // dictionary type
-
- 65, // Number of items
- 156, // Number of actions
- 79, // Number of words
- 59, // Number of rooms
- 6, // Max carried items
- 4, // Word length
- 82, // Number of messages
-
- 56, // number_of_verbs
- 80, // number_of_nouns;
-
- 0x1dd9, // header
- EARLY, // header style
-
- 0, // no room images
- 0, // no item flags
- 0, // no item images
-
- 0x1df3, // actions
- UNCOMPRESSED,
- 0x27c3, // dictionary
- FOLLOWS, // start_of_room_descriptions;
- FOLLOWS, // start_of_room_connections;
- FOLLOWS, // start_of_messages;
- FOLLOWS, // start_of_item_descriptions;
- FOLLOWS, // start_of_item_locations;
-
- 0x408, // start_of_system_messages
- 0x408, // start of directions
-
- 0, // start_of_characters;
- 0x3876, // start_of_image_data;
- 0, // image_address_offset
- 58, // number_of_pictures;
- C64A, // palette
- 99, // picture_format_version;
- 0),
- GameInfo("The Wizard of Akyrz",
- AKYRZ,
- OLD_STYLE, // type
- MYSTERIOUS, // subtype
- FOUR_LETTER_UNCOMPRESSED, // dictionary type
-
- 49, // Number of items
- 201, // Number of actions
- 85, // Number of words
- 40, // Number of rooms
- 6, // Max carried items
- 4, // Word length
- 82, // Number of messages
-
- 86, // number_of_verbs
- 85, // number_of_nouns;
-
- 0x2351, // header
- EARLY, // header style
-
- 0, // no room images
- 0, // no item flags
- 0, // no item images
-
- 0x3b81, // actions
- UNCOMPRESSED,
- 0x497d, // dictionary
- FOLLOWS, // start_of_room_descriptions;
- FOLLOWS, // start_of_room_connections;
- FOLLOWS, // start_of_messages;
- FOLLOWS, // start_of_item_descriptions;
- FOLLOWS, // start_of_item_locations;
-
- 0x24c0, // start_of_system_messages
- 0x2780, // start of directions
-
- 0, // start_of_characters;
- FOLLOWS, // start_of_image_data;
- 0, // image_address_offset
- 39, // number_of_pictures;
- ZXOPT, // palette
- 99, // picture_format_version;
- 0),
- GameInfo("The Wizard of Akyrz C64",
- AKYRZ_C64,
- NO_TYPE, // type
- static_cast<Subtype>(MYSTERIOUS | ENGLISH | C64), // subtype
- FOUR_LETTER_UNCOMPRESSED, // dictionary type
-
- 49, // Number of items
- 199, // Number of actions
- 85, // Number of words
- 40, // Number of rooms
- 6, // Max carried items
- 4, // Word length
- 82, // Number of messages
-
- 67, // number_of_verbs
- 85, // number_of_nouns;
-
- 0x1dd9, // header
- MYSTERIOUS_C64_HEADER, // header style
-
- 0, // no room images
- 0, // no item flags
- 0, // no item images
-
- 0x1df1, // actions
- UNCOMPRESSED,
- 0x2a71, // dictionary
- FOLLOWS, // start_of_room_descriptions;
- FOLLOWS, // start_of_room_connections;
- FOLLOWS, // start_of_messages;
- FOLLOWS, // start_of_item_descriptions;
- FOLLOWS, // start_of_item_locations;
-
- 0x408, // start_of_system_messages
- 0x408, // start of directions
-
- 0, // start_of_characters;
- 0x3bce, // start_of_image_data;
- 0, // image_address_offset
- 39, // number_of_pictures;
- C64A, // palette
- 99, // picture_format_version;
- 0),
- GameInfo("Perseus and Andromeda",
- PERSEUS,
- OLD_STYLE, // type
- MYSTERIOUS, // subtype
- FOUR_LETTER_UNCOMPRESSED, // dictionary type
-
- 60, // Number of items
- 178, // Number of actions
- 130, // Number of words
- 40, // Number of rooms
- 6, // Max carried items
- 4, // Word length
- 82, // Number of messages
-
- 131, // number_of_verbs
- 130, // number_of_nouns;
-
- 0x2351, // header
- EARLY, // header style
-
- 0, // no room images
- 0, // no item flags
- 0, // no item images
-
- 0x3b81, // actions
- UNCOMPRESSED,
- 0x4823, // dictionary
- FOLLOWS, // start_of_room_descriptions;
- FOLLOWS, // start_of_room_connections;
- FOLLOWS, // start_of_messages;
- FOLLOWS, // start_of_item_descriptions;
- FOLLOWS, // start_of_item_locations;
-
- 0x24c0, // start_of_system_messages
- 0x2780, // start of directions
-
- 0, // start_of_characters;
- FOLLOWS, // start_of_image_data;
- 0, // image_address_offset
- 39, // number_of_pictures;
- ZXOPT, // palette
- 99, // picture_format_version;
- 0),
- GameInfo("Perseus and Andromeda C64",
- PERSEUS_C64,
- NO_TYPE, // type
- static_cast<Subtype>(MYSTERIOUS | ENGLISH | C64), // subtype
- FOUR_LETTER_UNCOMPRESSED, // dictionary type
-
- 59, // Number of items
- 165, // Number of actions
- 130, // Number of words
- 40, // Number of rooms
- 6, // Max carried items
- 4, // Word length
- 82, // Number of messages
-
- 131, // number_of_verbs
- 82, // number_of_nouns;
-
- 0x1dd9, // header
- EARLY, // header style
-
- 0, // no room images
- 0, // no item flags
- 0, // no item images
-
- 0x1df3, // actions
- UNCOMPRESSED,
- 0x2853, // dictionary
- FOLLOWS, // start_of_room_descriptions;
- FOLLOWS, // start_of_room_connections;
- FOLLOWS, // start_of_messages;
- FOLLOWS, // start_of_item_descriptions;
- FOLLOWS, // start_of_item_locations;
-
- 0x408, // start_of_system_messages
- 0x408, // start of directions
-
- 0, // start_of_characters;
- 0x3d91, // start_of_image_data;
- 0, // image_address_offset
- 39, // number_of_pictures;
- C64A, // palette
- 99, // picture_format_version;
- 0),
- GameInfo("Perseus and Andromeda C64",
- PERSEUS_C64,
- NO_TYPE, // type
- static_cast<Subtype>(MYSTERIOUS | ENGLISH | C64), // subtype
- FOUR_LETTER_UNCOMPRESSED, // dictionary type
-
- 59, // Number of items
- 165, // Number of actions
- 130, // Number of words
- 40, // Number of rooms
- 6, // Max carried items
- 4, // Word length
- 82, // Number of messages
-
- 131, // number_of_verbs
- 82, // number_of_nouns;
-
- 0x1dd9, // header
- EARLY, // header style
-
- 0, // no room images
- 0, // no item flags
- 0, // no item images
-
- 0x1df3, // actions
- UNCOMPRESSED,
- 0x2853, // dictionary
- FOLLOWS, // start_of_room_descriptions;
- FOLLOWS, // start_of_room_connections;
- FOLLOWS, // start_of_messages;
- FOLLOWS, // start_of_item_descriptions;
- FOLLOWS, // start_of_item_locations;
-
- 0x408, // start_of_system_messages
- 0x408, // start of directions
-
- 0, // start_of_characters;
- 0x3d91, // start_of_image_data;
- 0, // image_address_offset
- 39, // number_of_pictures;
- C64A, // palette
- 99, // picture_format_version;
- 0),
- GameInfo("Perseus and Andromeda C64",
- PERSEUS_C64,
- NO_TYPE, // type
- static_cast<Subtype>(MYSTERIOUS | ENGLISH | C64), // subtype
- FOUR_LETTER_UNCOMPRESSED, // dictionary type
-
- 59, // Number of items
- 165, // Number of actions
- 130, // Number of words
- 40, // Number of rooms
- 6, // Max carried items
- 4, // Word length
- 82, // Number of messages
-
- 131, // number_of_verbs
- 82, // number_of_nouns;
-
- 0x1dd9, // header
- EARLY, // header style
-
- 0, // no room images
- 0, // no item flags
- 0, // no item images
-
- 0x1df3, // actions
- UNCOMPRESSED,
- 0x2853, // dictionary
- FOLLOWS, // start_of_room_descriptions;
- FOLLOWS, // start_of_room_connections;
- FOLLOWS, // start_of_messages;
- FOLLOWS, // start_of_item_descriptions;
- FOLLOWS, // start_of_item_locations;
-
- 0x408, // start_of_system_messages
- 0x408, // start of directions
-
- 0, // start_of_characters;
- 0x3d91, // start_of_image_data;
- 0, // image_address_offset
- 39, // number_of_pictures;
- C64A, // palette
- 99, // picture_format_version;
- 0),
- GameInfo("Perseus and Andromeda Italian",
- PERSEUS_ITALIAN,
- OLD_STYLE, // type
- MYSTERIOUS, // subtype
- ITALIAN, // dictionary type
-
- 60, // Number of items
- 178, // Number of actions
- 130, // Number of words
- 40, // Number of rooms
- 6, // Max carried items
- 4, // Word length
- 82, // Number of messages
-
- 131, // number_of_verbs
- 83, // number_of_nouns;
-
- 0x045d, // header
- EARLY, // header style
-
- 0, // no room images
- 0, // no item flags
- 0, // no item images
-
- 0x1c8d, // actions
- UNCOMPRESSED,
- 0x292f, // dictionary
- 0x2e4d, // start_of_room_descriptions;
- FOLLOWS, // start_of_room_connections;
- FOLLOWS, // start_of_messages;
- FOLLOWS, // start_of_item_descriptions;
- FOLLOWS, // start_of_item_locations;
-
- 0x5d5, // start_of_system_messages
- 0x892, // start of directions
-
- 0, // start_of_characters;
- 0x3faa, // start_of_image_data;
- 0, // image_address_offset
- 40, // number_of_pictures;
- ZXOPT, // palette
- 99, // picture_format_version;
- 0),
- GameInfo("Ten Little Indians",
- INDIANS,
- OLD_STYLE, // type
- MYSTERIOUS, // subtype
- FOUR_LETTER_UNCOMPRESSED, // dictionary type
-
- 73, // Number of items
- 161, // Number of actions
- 85, // Number of words
- 63, // Number of rooms
- 5, // Max carried items
- 4, // Word length
- 82, // Number of messages
-
- 86, // number_of_verbs
- 85, // number_of_nouns;
-
- 0x2351, // header
- EARLY, // header style
-
- 0, // no room images
- 0, // no item flags
- 0, // no item images
-
- 0x3b81, // actions
- UNCOMPRESSED,
- 0x47b7, // dictionary
- FOLLOWS, // start_of_room_descriptions;
- FOLLOWS, // start_of_room_connections;
- FOLLOWS, // start_of_messages;
- FOLLOWS, // start_of_item_descriptions;
- FOLLOWS, // start_of_item_locations;
-
- 0x24c0, // start_of_system_messages
- 0x2780, // start of directions
-
- 0, // start_of_characters;
- FOLLOWS, // start_of_image_data;
- 0, // image_address_offset
- 62, // number_of_pictures;
- ZXOPT, // palette
- 99, // picture_format_version;
- 0),
- GameInfo("Ten Little Indians C64",
- INDIANS_C64,
- NO_TYPE, // type
- static_cast<Subtype>(MYSTERIOUS | ENGLISH | C64), // subtype
- FOUR_LETTER_UNCOMPRESSED, // dictionary type
-
- 73, // Number of items
- 161, // Number of actions
- 82, // Number of words
- 63, // Number of rooms
- 5, // Max carried items
- 4, // Word length
- 82, // Number of messages
-
- 64, // number_of_verbs
- 82, // number_of_nouns;
-
- 0x1dd9, // header
- INDIANS_C64_HEADER, // header style
-
- 0, // no room images
- 0, // no item flags
- 0, // no item images
-
- 0x1df0, // actions
- UNCOMPRESSED,
- 0x2810, // dictionary
- FOLLOWS, // start_of_room_descriptions;
- FOLLOWS, // start_of_room_connections;
- FOLLOWS, // start_of_messages;
- FOLLOWS, // start_of_item_descriptions;
- FOLLOWS, // start_of_item_locations;
-
- 0x408, // start_of_system_messages
- 0x408, // start of directions
-
- 0, // start_of_characters;
- 0x3a46, // start_of_image_data;
- 0, // image_address_offset
- 62, // number_of_pictures;
- C64A, // palette
- 99, // picture_format_version;
- 0),
- GameInfo("Waxworks",
- WAXWORKS,
- OLD_STYLE, // type
- MYSTERIOUS, // subtype
- FOUR_LETTER_UNCOMPRESSED, // dictionary type
-
- 57, // Number of items
- 189, // Number of actions
- 106, // Number of words
- 41, // Number of rooms
- 6, // Max carried items
- 4, // Word length
- 82, // Number of messages
-
- 107, // number_of_verbs
- 106, // number_of_nouns;
-
- 0x2351, // header
- EARLY, // header style
-
- 0, // no room images
- 0, // no item flags
- 0, // no item images
-
- 0x3b81, // actions
- UNCOMPRESSED,
- 0x48d3, // dictionary
- FOLLOWS, // start_of_room_descriptions;
- FOLLOWS, // start_of_room_connections;
- FOLLOWS, // start_of_messages;
- FOLLOWS, // start_of_item_descriptions;
- FOLLOWS, // start_of_item_locations;
-
- 0x24c0, // start_of_system_messages
- 0x2780, // start of directions
-
- 0, // start_of_characters;
- FOLLOWS, // start_of_image_data;
- 0, // image_address_offset
- 40, // number_of_pictures;
- ZXOPT, // palette
- 99, // picture_format_version;
- 0),
- GameInfo("Waxworks C64",
- WAXWORKS_C64,
- NO_TYPE, // type
- static_cast<Subtype>(MYSTERIOUS | ENGLISH | C64), // subtype
- FOUR_LETTER_UNCOMPRESSED, // dictionary type
-
- 57, // Number of items
- 189, // Number of actions
- 105, // Number of words
- 41, // Number of rooms
- 6, // Max carried items
- 4, // Word length
- 82, // Number of messages
-
- 91, // number_of_verbs
- 105, // number_of_nouns;
-
- 0x1dd9, // header
- EARLY, // header style
-
- 0, // no room images
- 0, // no item flags
- 0, // no item images
-
- 0x1df3, // actions
- UNCOMPRESSED,
- 0x29d3, // dictionary
- FOLLOWS, // start_of_room_descriptions;
- FOLLOWS, // start_of_room_connections;
- FOLLOWS, // start_of_messages;
- FOLLOWS, // start_of_item_descriptions;
- FOLLOWS, // start_of_item_locations;
-
- 0x408, // start_of_system_messages
- 0x408, // start of directions
-
- 0, // start_of_characters;
- 0x3f31, // start_of_image_data;
- 0, // image_address_offset
- 40, // number_of_pictures;
- C64A, // palette
- 99, // picture_format_version;
- 0),
- GameInfo("Questprobe 1: The Hulk",
- HULK,
- NO_TYPE, // type
- ENGLISH, // subtype
- FOUR_LETTER_UNCOMPRESSED, // dictionary type
-
- 54, // Number of items
- 261, // Number of actions
- 128, // Number of words
- 20, // Number of rooms
- 10, // Max carried items
- 4, // Word length
- 99, // Number of messages
-
- 128, // number_of_verbs
- 129, // number_of_nouns;
-
- 0x4bf4, // header
- HULK_HEADER, // header style
-
- 0x270c, // room images
- 0, // item flags
- 0x26c8, // item images
-
- 0x6087, // actions
- HULK_ACTIONS,
- 0x4cc4, // dictionary
- 0x51cd, // start_of_room_descriptions;
- 0x7111, // start_of_room_connections;
- 0x575e, // start_of_messages;
- FOLLOWS, // start_of_item_descriptions;
- 0x5f3d, // start_of_item_locations;
-
- 0x2553, // start_of_system_messages
- 0x28f7, // start of directions
-
- 0x281b, // start_of_characters;
- 0x2782, // start_of_image_data
- 0, // image_address_offset
- 43, // number_of_pictures;
- ZXOPT, // palette
- 0, // picture_format_version;
- 0),
- GameInfo("Questprobe 1: The Hulk C64", HULK_C64,
- NO_TYPE, // type
- ENGLISH, // subtype
- FOUR_LETTER_UNCOMPRESSED, // dictionary type
-
- 54, // Number of items
- 261, // Number of actions
- 128, // Number of words
- 20, // Number of rooms
- 10, // Max carried items
- 4, // Word length
- 99, // Number of messages
-
- 128, // number_of_verbs
- 129, // number_of_nouns;
-
- 0x7867, // header
- HULK_HEADER, // header style
-
- 0x2280, // room images
- 0, // item flags
- 0x22ba, // item images
-
- 0x8c47, // actions
- HULK_ACTIONS,
- 0x7884, // dictionary
- 0x7d8d, // start_of_room_descriptions;
- 0x9CD1, // start_of_room_connections;
- 0x831E, // start_of_messages;
- FOLLOWS, // start_of_item_descriptions;
- 0x8AFD, // start_of_item_locations;
-
- // These are spread out all over the code
- 0, // start_of_system_messages
- 0xae25, // start of directions
-
- 0x0d01, // start_of_characters;
- 0x2701, // start_of_image_data
- 0, // image_address_offset
- 43, // number_of_pictures;
- C64B, // palette
- 0, // picture_format_version;
- 0),
- GameInfo("Adventureland",
- ADVENTURELAND,
- NO_TYPE, // type
- ENGLISH, // subtype
- THREE_LETTER_UNCOMPRESSED, // dictionary type
-
- 65, // Number of items
- 181, // Number of actions
- 69, // Number of words
- 33, // Number of rooms
- 6, // Max carried items
- 3, // Word length
- 75, // Number of messages
-
- 70, // number_of_verbs
- 69, // number_of_nouns;
-
- 0x2473, // header
- EARLY, // header style
-
- 0x3ebe, // room images
- FOLLOWS, // item flags
- 0x3f1f, // item images
- 0x3f5e, // actions
- UNCOMPRESSED,
- 0x4c10, // dictionary
- 0x4e40, // start_of_room_descriptions;
- 0x4abe, // start_of_room_connections;
- 0x52c3, // start_of_messages;
- FOLLOWS, // start_of_item_descriptions;
- 0x4b8a, // start_of_item_locations;
-
- 0x24eb, // start_of_system_messages
- 0x285e, // start of directions
-
- 0x631e, // start_of_characters;
- FOLLOWS, // start_of_image_data
- -0x3fe5, // image_address_offset
- 41, // number_of_pictures;
- ZXOPT, // palette
- 1, // picture_format_version;
- 0),
- GameInfo("Adventureland C64",
- ADVENTURELAND_C64,
- NO_TYPE, // type
- static_cast<Subtype>(ENGLISH | C64), // subtype
- THREE_LETTER_UNCOMPRESSED, // dictionary type
-
- 62, // Number of items
- 170, // Number of actions
- 69, // Number of words
- 33, // Number of rooms
- 6, // Max carried items
- 3, // Word length
- 75, // Number of messages
-
- 70, // number_of_verbs
- 69, // number_of_nouns;
-
- 0x4146, // header
- EARLY, // header style
-
- 0x6364, // room images
- 0x85a7, // item flags
- 0x63c5, // item images
- 0x4160, // actions
- UNCOMPRESSED,
- 0x4c10, // dictionary
- 0x4e40, // start_of_room_descriptions;
- FOLLOWS, // start_of_room_connections;
- FOLLOWS, // start_of_messages;
- FOLLOWS, // start_of_item_descriptions;
- 0x6404, // start_of_item_locations;
-
- 0x188, // start_of_system_messages
- 0x188, // start of directions
-
- 0x6482, // start_of_characters;
- 0x6c82, // start_of_image_data
- -0x1102, // image_address_offset
- 41, // number_of_pictures;
- C64B, // palette
- 1, // picture_format_version;
- 0),
- GameInfo("Secret Mission",
- SECRET_MISSION,
- SECRET_MISSION_VARIANT, // type
- ENGLISH, // subtype
- THREE_LETTER_UNCOMPRESSED, // dictionary type
-
- 53, // Number of items
- 164, // Number of actions
- 64, // Number of words
- 23, // Number of rooms
- 7, // Max carried items
- 3, // Word length
- 81, // Number of messages
-
- 65, // number_of_verbs
- 65, // number_of_nouns;
-
- 0x2473, // header
- EARLY, // header style
- 0x3f26, // room images
- FOLLOWS, // item flags
- 0x3f70, // item images
- 0x3fa2, // actions
- UNCOMPRESSED,
- 0x4af0, // dictionary
- 0x4cf8, // start_of_room_descriptions;
- 0x49f2, // start_of_room_connections;
- 0x4edf, // start_of_messages;
- FOLLOWS, // start_of_item_descriptions;
- 0x4a82, // start_of_item_locations;
-
- 0x24eb, // start_of_system_messages
- 0x285e, // start of directions
-
- 0x625d, // start_of_characters;
- FOLLOWS, // start_of_image_data
- -0x3fe5, // image_address_offset
- 44, // number_of_pictures;
- ZXOPT, // palette
- 1, // picture_format_version;
- 0),
- GameInfo("Secret Mission C64",
- SECRET_MISSION_C64,
- SECRET_MISSION_VARIANT, // type
- static_cast<Subtype>(ENGLISH | C64), // subtype
- THREE_LETTER_UNCOMPRESSED, // dictionary type
-
- 49, // Number of items
- 154, // Number of actions
- 62, // Number of words
- 23, // Number of rooms
- 7, // Max carried items
- 3, // Word length
- 81, // Number of messages
-
- 60, // number_of_verbs
- 62, // number_of_nouns;
-
- 0x4572, // header
- EARLY, // header style
- 0x458c, // room images
- 0x6721, // item flags
- FOLLOWS, // item images
- 0x45a4, // actions
- UNCOMPRESSED,
- 0x4f54, // dictionary
- 0x5140, // start_of_room_descriptions;
- FOLLOWS, // start_of_room_connections;
- FOLLOWS, // start_of_messages;
- FOLLOWS, // start_of_item_descriptions;
- 0x6785, // start_of_item_locations;
-
- 0x2502, // start_of_system_messages
- 0x2502, // start of directions
-
- 0x681b, // start_of_characters;
- 0x701b, // start_of_image_data
- -0x1CD0, // image_address_offset
- 44, // number_of_pictures;
- C64B, // palette
- 1, // picture_format_version;
- 0),
- GameInfo("The Sorcerer of Claymorgue Castle",
- CLAYMORGUE,
- NO_TYPE, // type
- ENGLISH, // subtype
- FIVE_LETTER_UNCOMPRESSED, // dictionary type
-
- 75, // Number of items
- 267, // Number of actions
- 109, // Number of words
- 32, // Number of rooms
- 10, // Max carried items
- 5, // Word length
- 79, // Number of messages
-
- 110, // number_of_verbs
- 108, // number_of_nouns;
-
- 0x246c, // header
- EARLY, // header style
-
- 0x3bf6, // room images
- FOLLOWS, // item flags
- FOLLOWS, // item images
- FOLLOWS, // actions
- UNCOMPRESSED,
- 0x4ecf, // dictionary
- 0x53f7, // start_of_room_descriptions;
- 0x4d6f, // start_of_room_connections;
- 0x5605, // start_of_messages;
- FOLLOWS, // start_of_item_descriptions;
- 0x4e35, // start_of_item_locations;
-
- 0x24e2, // start_of_system_messages
- 0x2877, // start of directions
-
- 0x6007, // start_of_characters;
- 0x6807, // start_of_image_data
- -0x3fe5, // image_address_offset
- 37, // number_of_pictures;
- ZXOPT, // palette
- 1, // picture_format_version;
- 0),
- GameInfo("The Sorcerer of Claymorgue Castle C64",
- CLAYMORGUE_C64,
- NO_TYPE, // type
- static_cast<Subtype>(ENGLISH | C64), // subtype
- FIVE_LETTER_UNCOMPRESSED, // dictionary type
-
- 75, // Number of items
- 265, // Number of actions
- 108, // Number of words
- 32, // Number of rooms
- 10, // Max carried items
- 5, // Word length
- 79, // Number of messages
-
- 110, // number_of_verbs
- 108, // number_of_nouns;
-
- 0x47d6, // header
- EARLY, // header style
-
- 0x471f, // room images
- FOLLOWS, // item flags
- FOLLOWS, // item images
- 0x47f0, // actions
- UNCOMPRESSED,
- 0x5891, // dictionary
- FOLLOWS, // start_of_room_descriptions;
- FOLLOWS, // start_of_room_connections;
- FOLLOWS, // start_of_messages;
- FOLLOWS, // start_of_item_descriptions;
- FOLLOWS, // start_of_item_locations;
-
- 0xa2c, // start_of_system_messages
- 0xa2c, // start of directions
-
- 0x6b1a, // start_of_characters;
- 0x731a, // start_of_image_data
- 0x6b1a, // image_address_offset
- 44, // number_of_pictures;
- C64B, // palette
- 1, // picture_format_version;
- 0),
- GameInfo("Questprobe 2: Spiderman",
- SPIDERMAN,
- NO_TYPE, // type
- ENGLISH, // subtype
- FOUR_LETTER_UNCOMPRESSED, // dictionary type
-
- 72, // Number of items
- 257, // Number of actions
- 124, // Number of words
- 40, // Number of rooms
- 12, // Max carried items
- 4, // Word length
- 99, // Number of messages
-
- 125, // number_of_verbs
- 125, // number_of_nouns;
-
- 0x246b, // header
- EARLY, // header style
-
- 0x3dd1, // room images
- FOLLOWS, // item flags
- FOLLOWS, // item images
-
- FOLLOWS, // actions
- UNCOMPRESSED,
- 0x5036, // dictionary
- 0x5518, // start_of_room_descriptions;
- 0x4eac, // start_of_room_connections;
- 0x575e, // start_of_messages;
- FOLLOWS, // start_of_item_descriptions;
- 0x4fa2, // start_of_item_locations;
-
- 0x2553, // start_of_system_messages
- 0x28f7, // start of directions
-
- 0x6296, // start_of_characters;
- 0x6a96, // start_of_image_data
- -0x3fe5, // image_address_offset
- 41, // number_of_pictures;
- ZXOPT, // palette
- 2, // picture_format_version;
- 0),
- GameInfo("Questprobe 2: Spiderman C64",
- SPIDERMAN_C64,
- NO_TYPE, // type
- static_cast<Subtype>(ENGLISH | C64), // subtype
- FOUR_LETTER_UNCOMPRESSED, // dictionary type
-
- 72, // Number of items
- 245, // Number of actions
- 124, // Number of words
- 40, // Number of rooms
- 12, // Max carried items
- 4, // Word length
- 98, // Number of messages
-
- 118, // number_of_verbs
- 124, // number_of_nouns;
-
- 0x4baf, // header
- EARLY, // header style
-
- 0x4bc9, // room images
- 0x70da, // item flags
- FOLLOWS, // item images
-
- 0x4bf2, // actions
- UNCOMPRESSED,
- 0x5b52, // dictionary
- 0x600c, // start_of_room_descriptions;
- FOLLOWS, // start_of_room_connections;
- FOLLOWS, // start_of_messages;
- 0x6b9b, // start_of_item_descriptions;
- FOLLOWS, // start_of_item_locations;
-
- 0x0a7b, // start_of_system_messages
- 0x0a7b, // start of directions
-
- 0x716c, // start_of_characters;
- 0x796c, // start_of_image_data
- 0x716c, // image_address_offset
- 41, // number_of_pictures;
- C64B, // palette
- 2, // picture_format_version;
- 0),
- GameInfo("Savage Island part I",
- SAVAGE_ISLAND,
- SAVAGE_ISLAND_VARIANT, // type
- ENGLISH, // subtype
- FOUR_LETTER_UNCOMPRESSED, // dictionary type
-
- 58, // Number of items
- 259, // Number of actions
- 84, // Number of words
- 34, // Number of rooms
- 6, // Max carried items
- 4, // Word length
- 99, // Number of messages
-
- 82, // number_of_verbs
- 84, // number_of_nouns;
-
- 0x236d, // header
- LATE, // header style
- 0x390c, // room images
- FOLLOWS, // item flags
- FOLLOWS, // item images
- 0x39a6, // actions
- COMPRESSED,
- 0x4484, // dictionary
- 0x47c7, // start_of_room_descriptions;
- FOLLOWS, // start_of_room_connections;
- 0x4b91, // start_of_messages;
- FOLLOWS, // start_of_item_descriptions;
- FOLLOWS, // start_of_item_locations;
-
- 0x2423, // start_of_system_messages
- 0x25f3, // start of directions
-
- 0x570f, // start_of_characters;
- FOLLOWS, // start_of_image_data
- 0x600f, // image_address_offset
- 37, // number_of_pictures;
- ZXOPT, // palette
- 3, // picture_format_version;
- 0),
- GameInfo("Savage Island part I (C64)",
- SAVAGE_ISLAND_C64,
- SAVAGE_ISLAND_VARIANT, // type
- static_cast<Subtype>(ENGLISH | C64), // subtype
- FOUR_LETTER_UNCOMPRESSED, // dictionary type
-
- 58, // Number of items
- 259, // Number of actions
- 84, // Number of words
- 34, // Number of rooms
- 6, // Max carried items
- 4, // Word length
- 99, // Number of messages
-
- 85, // number_of_verbs
- 84, // number_of_nouns;
-
- 0x46dc, // header
- EARLY, // header style
- 0x4645, // room images
- FOLLOWS, // item flags
- FOLLOWS, // item images
- 0x46f6, // actions
- COMPRESSED,
- 0x51d6, // dictionary
- 0x5528, // start_of_room_descriptions;
- FOLLOWS, // start_of_room_connections;
- FOLLOWS, // start_of_messages;
- // 0x58f6, // start_of_messages;
- FOLLOWS, // start_of_item_descriptions;
- FOLLOWS, // start_of_item_locations;
-
- 0x0a5f, // start_of_system_messages
- 0x0a5f, // start of directions
-
- 0x6A02, // start_of_characters;
- 0x7202, // start_of_image_data
- 0x7302, // image_address_offset
- 37, // number_of_pictures;
- C64B, // palette
- 3, // picture_format_version;
- 0),
- GameInfo("Savage Island part II",
- SAVAGE_ISLAND2,
- NO_TYPE, // type
- ENGLISH, // subtype
- FOUR_LETTER_UNCOMPRESSED, // dictionary type
-
- 48, // Number of items
- 241, // Number of actions
- 79, // Number of words
- 30, // Number of rooms
- 6, // Max carried items
- 4, // Word length
- 95, // Number of messages
-
- 74, // number_of_verbs
- 79, // number_of_nouns;
-
- 0x236d, // header
- LATE, // header style
- 0x390c, // room images
- FOLLOWS, // item flags
- FOLLOWS, // item images
- 0x398e, // actions
- COMPRESSED,
- 0x43f0, // dictionary
- 0x46ed, // start_of_room_descriptions;
- FOLLOWS, // start_of_room_connections;
- FOLLOWS, // start_of_messages;
- FOLLOWS, // start_of_item_descriptions;
- FOLLOWS, // start_of_item_locations;
-
- 0x2423, // start_of_system_messages
- 0x25f3, // start of directions
-
- 0x57d0, // start_of_characters;
- FOLLOWS, // start_of_image_data
- 0x60d0, // image_address_offset
- 21, // number_of_pictures;
- ZXOPT, // palette
- 3, // picture_format_version;
- 0),
- GameInfo("Savage Island part II (C64)",
- SAVAGE_ISLAND2_C64,
- NO_TYPE, // type
- static_cast<Subtype>(ENGLISH | C64), // subtype
- FOUR_LETTER_UNCOMPRESSED, // dictionary type
-
- 48, // Number of items
- 241, // Number of actions
- 78, // Number of words
- 30, // Number of rooms
- 6, // Max carried items
- 4, // Word length
- 94, // Number of messages
-
- 79, // number_of_verbs
- 79, // number_of_nouns;
-
- 0x4654, // header
- EARLY, // header style
- 0x6310, // room images
- FOLLOWS, // item flags
- FOLLOWS, // item images
- 0x466e, // actions
- COMPRESSED,
- 0x50d2, // dictionary
- 0x53e8, // start_of_room_descriptions;
- FOLLOWS, // start_of_room_connections;
- FOLLOWS, // start_of_messages;
- FOLLOWS, // start_of_item_descriptions;
- FOLLOWS, // start_of_item_locations;
-
- 0x0a50, // start_of_system_messages
- 0x0a50, // start of directions
-
- 0x6A02, // start_of_characters;
- 0x7202, // start_of_image_data
- 0x7302, // image_address_offset
- 21, // number_of_pictures;
- C64B, // palette
- 3, // picture_format_version;
- 0),
- GameInfo("Gremlins",
- GREMLINS,
- GREMLINS_VARIANT, // type
- ENGLISH, // subtype
- FOUR_LETTER_UNCOMPRESSED, // dictionary type
-
- 99, // Number of items
- 236, // Number of actions
- 126, // Number of words
- 42, // Number of rooms
- 6, // Max carried items
- 4, // Word length
- 98, // Number of messages
-
- 115, // number_of_verbs
- 126, // number_of_nouns;
-
- 0x2370, // header
- LATE, // header style
-
- 0x3a09, // room images
- FOLLOWS, // item flags
- FOLLOWS, // item images
-
- 0x3afe, // actions
- COMPRESSED, // actions_style;
- 0x45e5, // dictionary
- FOLLOWS, // start_of_room_descriptions;
- FOLLOWS, // start_of_room_connections;
- FOLLOWS, // start_of_messages;
- FOLLOWS, // start_of_item_descriptions;
- FOLLOWS, // start_of_item_locations;
- 0x2426, // start_of_system_messages
- 0x25f6, // start of directions
-
- 0x5be1, // start_of_characters;
- 0x63e1, // start_of_image_data
- 0x64e1, // image_address_offset
- 78, // number_of_pictures;
- ZXOPT, // palette
- 3, // picture_format_version;
- 0),
- GameInfo("Gremlins (alternative)",
- GREMLINS_ALT,
- GREMLINS_VARIANT, // type
- ENGLISH, // subtype
- FOUR_LETTER_UNCOMPRESSED, // dictionary type
-
- 99, // Number of items
- 236, // Number of actions
- 126, // Number of words
- 42, // Number of rooms
- 6, // Max carried items
- 4, // Word length
- 98, // Number of messages
-
- 115, // number_of_verbs
- 126, // number_of_nouns;
-
- 0x2378, // header
- LATE, // header style
-
- 0x3a0d, // room images
- FOLLOWS, // item flags
- FOLLOWS, // item images
-
- 0x3b02, // actions
- COMPRESSED, // actions_style;
- 0x45e5, // dictionary
- FOLLOWS, // start_of_room_descriptions;
- FOLLOWS, // start_of_room_connections;
- FOLLOWS, // start_of_messages;
- FOLLOWS, // start_of_item_descriptions;
- FOLLOWS, // start_of_item_locations;
- 0x242e, // start_of_system_messages
- 0x25FE, // start of directions
-
- 0x5bdd, // start_of_characters;
- 0x63dd, // start_of_image_data
- 0x64dd, // image_address_offset
- 78, // number_of_pictures;
- ZXOPT, // palette
- 3, // picture_format_version;
- 0),
- GameInfo("Gremlins (German)",
- GREMLINS_GERMAN,
- GREMLINS_VARIANT, // type
- LOCALIZED, // subtype
- GERMAN, // dictionary type
-
- 99, // Number of items
- 236, // Number of actions
- 126, // Number of words
- 42, // Number of rooms
- 6, // Max carried items
- 5, // Word length
- 98, // Number of messages
-
- 115, // number_of_verbs
- 126, // number_of_nouns
-
- 0x237d, // header
- LATE, // header style
-
- 0x3a07, // room images
- FOLLOWS, // item flags
- FOLLOWS, // item images
-
- 0x3afc, // actions
- COMPRESSED,
- 0x45d9, // dictionary
- FOLLOWS, // start_of_room_descriptions;
- FOLLOWS, // start_of_room_connections;
- FOLLOWS, // start_of_messages;
- FOLLOWS, // start_of_item_descriptions;
- FOLLOWS, // start_of_item_locations;
-
- 0x23de, // start_of_system_messages
- 0x2623, // start of directions
-
- 0x643e, // start_of_characters
- 0x6c3e, // start_of_image_data
- 0x6d3e, // image_address_offset
- 72, // number_of_pictures;
- ZX, // palette
- 3, // picture_format_version;
- 0),
- GameInfo("Gremlins C64",
- GREMLINS_C64,
- GREMLINS_VARIANT, // type
- static_cast<Subtype>(ENGLISH | C64), // subtype
- FOUR_LETTER_UNCOMPRESSED, // dictionary type
-
- 99, // Number of items
- 243, // Number of actions
- 126, // Number of words
- 42, // Number of rooms
- 6, // Max carried items
- 4, // Word length
- 99, // Number of messages
-
- 115, // number_of_verbs
- 126, // number_of_nouns;
-
- 0x4584, // header
- GREMLINS_C64_HEADER, // header style
-
- 0x465e, // room images
- FOLLOWS, // item flags
- FOLLOWS, // item images
-
- 0x4751, // actions
- COMPRESSED, // actions_style;
- 0x527f, // dictionary
- FOLLOWS, // start_of_room_descriptions;
- FOLLOWS, // start_of_room_connections;
- FOLLOWS, // start_of_messages;
- FOLLOWS, // start_of_item_descriptions;
- 0x4596, // start_of_item_locations;
- 0x0a5e, // start_of_system_messages
- 0x0a5e, // start of directions
-
- 0x6a01, // start_of_characters;
- 0x7201, // start_of_image_data
- 0x7301, // image_address_offset
- 91, // number_of_pictures;
- C64B, // palette
- 3, // picture_format_version;
- 0),
- GameInfo("Gremlins (German, C64)",
- GREMLINS_GERMAN_C64,
- GREMLINS_VARIANT, // type
- static_cast<Subtype>(LOCALIZED | C64), // subtype
- FIVE_LETTER_COMPRESSED, // dictionary type
-
- 99, // Number of items
- 243, // Number of actions
- 125, // Number of words
- 42, // Number of rooms
- 6, // Max carried items
- 5, // Word length
- 98, // Number of messages
-
- 125, // number_of_verbs
- 124, // number_of_nouns
-
- 0x4bb2, // header
- GREMLINS_C64_HEADER, // header style
-
- 0x4c8c, // room images
- FOLLOWS, // item flags
- FOLLOWS, // item images
-
- 0x4d81, // actions
- COMPRESSED,
- 0x585e, // dictionary
- FOLLOWS, // start_of_room_descriptions;
- FOLLOWS, // start_of_room_connections;
- FOLLOWS, // start_of_messages;
- FOLLOWS, // start_of_item_descriptions;
- 0x4bc4, // start_of_item_locations;
-
- 0x1325, // start_of_system_messages
- 0x1325, // start of directions
-
- 0x76c5, // start_of_characters
- 0x7cfd, // start_of_image_data
- 0x7db3, // image_address_offset
- 91, // number_of_pictures;
- C64B, // palette
- 3, // picture_format_version;
- 0),
- GameInfo("Gremlins (Spanish)",
- GREMLINS_SPANISH,
- GREMLINS_VARIANT, // type
- LOCALIZED, // subtype
- SPANISH, // dictionary type
-
- 99, // Number of items
- 236, // Number of actions
- 126, // Number of words
- 42, // Number of rooms
- 6, // Max carried items
- 4, // Word length
- 98, // Number of messages
-
- 115, // number_of_verbs
- 126, // number_of_nouns
-
- 0x23c5, // header
- LATE, // header style
-
- 0x3993, // room images
- FOLLOWS, // item flags
- FOLLOWS, // item images
-
- 0x3a88, // actions
- COMPRESSED,
- 0x455f, // dictionary
- FOLLOWS, // start_of_room_descriptions;
- FOLLOWS, // start_of_room_connections;
- FOLLOWS, // start_of_messages;
- FOLLOWS, // start_of_item_descriptions;
- FOLLOWS, // start_of_item_locations;
-
- 0x2426, // start_of_system_messages
- 0x25c4, // start of directions
-
- 0x6171, // start_of_characters
- 0x6971, // start_of_image_data
- 0x6A71, // image_address_offset
- 74, // number_of_pictures;
- ZXOPT, // palette
- 3, // picture_format_version;
- 0),
- GameInfo("Supergran",
- SUPERGRAN,
- NO_TYPE, // type
- ENGLISH, // subtype
- FOUR_LETTER_UNCOMPRESSED, // dictionary type
-
- 85, // Number of items
- 204, // Number of actions
- 105, // Number of words
- 39, // Number of rooms
- 6, // Max carried items
- 4, // Word length
- 99, // Number of messages
-
- 101, // number_of_verbs
- 106, // number_of_nouns;
-
- 0x236d, // header
- LATE, // header style
- 0x38c8, // room images
- FOLLOWS, // item flags
- FOLLOWS, // item images
- 0x399e, // actions
- COMPRESSED,
- 0x42fd, // dictionary
- 0x4708, // start_of_room_descriptions;
- FOLLOWS, // start_of_room_connections;
- FOLLOWS, // start_of_messages;
- FOLLOWS, // start_of_item_descriptions;
- FOLLOWS, // start_of_item_locations;
-
- 0x2423, // start_of_system_messages
- 0x25f3, // start of directions
-
- 0x5a4e, // start_of_characters;
- FOLLOWS, // start_of_image_data
- 0x634e, // image_address_offset
- 47, // number_of_pictures;
- ZXOPT, // palette
- 3, // picture_format_version;
- 0),
- GameInfo("Supergran C64",
- SUPERGRAN_C64,
- NO_TYPE, // type
- static_cast<Subtype>(ENGLISH | C64), // subtype
- FOUR_LETTER_UNCOMPRESSED, // dictionary type
-
- 85, // Number of items
- 204, // Number of actions
- 105, // Number of words
- 39, // Number of rooms
- 6, // Max carried items
- 4, // Word length
- 99, // Number of messages
-
- 101, // number_of_verbs
- 105, // number_of_nouns;
-
- 0x4624, // header
- SUPERGRAN_C64_HEADER, // header style
- 0x4636, // room images
- FOLLOWS, // item flags
- FOLLOWS, // item images
- 0x47b5, // actions
- COMPRESSED,
- 0x5119, // dictionary
- 0x5524, // start_of_room_descriptions;
- FOLLOWS, // start_of_room_connections;
- FOLLOWS, // start_of_messages;
- FOLLOWS, // start_of_item_descriptions;
- 0x470a, // start_of_item_locations;
-
- 0x0a53, // start_of_system_messages
- 0x0a53, // start of directions
-
- 0x6a02, // start_of_characters;
- FOLLOWS, // start_of_image_data
- 0x7302, // image_address_offset
- 49, // number_of_pictures;
- C64B, // palette
- 3, // picture_format_version;
- 0),
- GameInfo("Robin of Sherwood",
- ROBIN_OF_SHERWOOD,
- SHERWOOD_VARIANT, // type
- ENGLISH, // subtype
- FOUR_LETTER_COMPRESSED, // dictionary type
-
- 87, // Number of items
- 295, // Number of actions
- 114, // Number of words
- 93, // Number of rooms
- 10, // Max carried items
- 4, // Word length
- 98, // Number of messages
-
- 115, // number_of_verbs
- 109, // number_of_nouns;
-
- 0x3b5a, // header
- LATE, // header style
-
- 0, // 0x3d99 room images, zero because it needs custom handling
- 0x3db8, // item flags
- FOLLOWS, // item images
-
- 0x409b, // actions
- COMPRESSED,
- 0x4dc3, // dictionary
- 0, // 0x9b53 start_of_room_descriptions, zero because of custom handling
- 0x3e67, // start_of_room_connections
- 0x5147, // start_of_messages
- 0x5d65, // start_of_item_descriptions
- 0x4d6b, // start_of_item_locations
-
- 0x250b, // start_of_system_messages
- 0x26b5, // start of directions
-
- 0x614f, // start_of_characters
- 0x66bf, // start_of_image_data
- 0x6765, // image_address_offset
- 83, // number_of_pictures
- ZXOPT, // palette
- 4, // picture_format_version
- 0),
- GameInfo("Robin of Sherwood C64",
- ROBIN_OF_SHERWOOD_C64,
- SHERWOOD_VARIANT, // type
- static_cast<Subtype>(ENGLISH | C64), // subtype
- FOUR_LETTER_COMPRESSED, // dictionary type
-
- 87, // Number of items
- 296, // Number of actions
- 114, // Number of words
- 93, // Number of rooms
- 10, // Max carried items
- 4, // Word length
- 98, // Number of messages
-
- 115, // number_of_verbs
- 109, // number_of_nouns;
-
- 0x1f85, // header
- ROBIN_C64_HEADER, // header style
-
- 0, // room images, zero because it needs custom handling
- 0x201c, // item flags
- FOLLOWS, // item images
-
- 0x252b, // actions
- COMPRESSED,
- 0x320a, // dictionary
- 0, // 0x9b53 start_of_room_descriptions, zero because of custom handling
- 0x20cc, // start_of_room_connections
- 0x358e, // start_of_messages
- 0x4215, // start_of_item_descriptions
- 0x1fa5, // start_of_item_locations
-
- 0x428, // start_of_system_messages
- 0x428, // start of directions
-
- 0x45ff, // start_of_characters
- 0x4b6f, // start_of_image_data
- 0x4c23, // image_address_offset
- 90, // number_of_pictures
- C64B, // palette
- 4, // picture_format_version
- 0),
- GameInfo("Seas of Blood",
- SEAS_OF_BLOOD,
- SEAS_OF_BLOOD_VARIANT, // type
- ENGLISH, // subtype
- FOUR_LETTER_COMPRESSED, // dictionary type
-
- 125, // Number of items
- 344, // Number of actions
- 134, // Number of words
- 83, // Number of rooms
- 10, // Max carried items
- 4, // Word length
- 99, // Number of messages
-
- 69, // number_of_verbs
- 134, // number_of_nouns;
-
- 0x494d, // header
- LATE, // header style
-
- 0, // no room images
- 0x4961, // item flags
- FOLLOWS, // item images
-
- FOLLOWS, // actions
- COMPRESSED,
- 0x591b, // dictionary
- 0x67cb, // start_of_room_descriptions;
- 0x5c4b, // start_of_room_connections;
- 0x5ebb, // start_of_messages;
- 0x6ce0, // start_of_item_descriptions;
- 0x5e3d, // start_of_item_locations;
-
- 0x24ed, // start_of_system_messages
- 0x26fc, // start of directions
-
- 0x7389, // start_of_characters;
- 0x7a89, // start_of_image_data;
- 0x7b9f, // image_address_offset
- 139, // number_of_pictures;
- ZXOPT, // palette
- 4, // picture_format_version;
- 0),
- GameInfo("Seas of Blood C64",
- SEAS_OF_BLOOD_C64,
- SEAS_OF_BLOOD_VARIANT, // type
- static_cast<Subtype>(ENGLISH | C64), // subtype
- FOUR_LETTER_COMPRESSED, // dictionary type
-
- 125, // Number of items
- 347, // Number of actions
- 134, // Number of words
- 82, // Number of rooms
- 10, // Max carried items
- 4, // Word length
- 99, // Number of messages
-
- 69, // number_of_verbs
- 134, // number_of_nouns;
-
- 0x527d, // header
- SEAS_OF_BLOOD_C64_HEADER, // header style
-
- 0, // no room images
- 0x5a73, // item flags
- FOLLOWS, // item images
-
- 0x5b69, // actions
- COMPRESSED,
- 0x6a2d, // dictionary
- 0x78dd, // start_of_room_descriptions;
- 0x6d5d, // start_of_room_connections;
- 0x6fcd, // start_of_messages;
- 0x7df2, // start_of_item_descriptions;
- 0x6f4f, // start_of_item_locations;
-
- 0x0b9d, // start_of_system_messages
- 0x0b9d, // start of directions
-
- 0x84a5, // start_of_characters;
- 0x8ba5, // start_of_image_data;
- 0x8CBB, // image_address_offset
- 139, // number_of_pictures;
- C64B, // palette
- 4, // picture_format_version;
- 0)
-};
-
/* This is supposed to be the original ScottFree system
messages in second person, as far as possible */
const char *g_sysDict[] = {
diff --git a/engines/glk/scott/game_info.h b/engines/glk/scott/game_info.h
index 0cb4f1c7666..705fd718638 100644
--- a/engines/glk/scott/game_info.h
+++ b/engines/glk/scott/game_info.h
@@ -28,7 +28,6 @@
namespace Glk {
namespace Scott {
-extern GameInfo g_games[];
extern const char *g_sysDict[];
extern const char *g_sysDictIAm[];
extern const char *g_sysDictZX[];
diff --git a/engines/glk/scott/games.h b/engines/glk/scott/games.h
new file mode 100644
index 00000000000..f450e2a6e16
--- /dev/null
+++ b/engines/glk/scott/games.h
@@ -0,0 +1,2363 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+const GameInfo _games[NUMGAMES] = {
+ GameInfo("Pirate Adventure",
+ PIRATE,
+ OLD_STYLE, // type
+ ENGLISH, // subtype
+ THREE_LETTER_UNCOMPRESSED, // dictionary type
+
+ 66, // Number of items
+ 177, // Number of actions
+ 79, // Number of words
+ 26, // Number of rooms
+ 6, // Max carried items
+ 3, // Word length
+ 99, // Number of messages
+ 80, // number_of_verbs
+ 79, // number_of_nouns;
+ 0x2451, // header
+ EARLY, // header style
+ 0, // no room images
+ 0, // no item flags
+ 0, // no item images
+ 0x3a50, // actions
+
+ UNCOMPRESSED,
+ 0x469a, // dictionary
+ FOLLOWS, // start_of_room_descriptions;
+ FOLLOWS, // start_of_room_connections;
+ FOLLOWS, // start_of_messages;
+ FOLLOWS, // start_of_item_descriptions;
+ FOLLOWS, // start_of_item_locations;
+
+ 0x2539, // start_of_system_messages
+ 0x28de, // start of directions
+ 0, // start_of_characters;
+ 0, // start_of_image_data;
+ 0, // image_address_offset
+ 0, // number_of_pictures;
+ NO_PALETTE, // palette;
+ 0,
+ 0),
+ GameInfo("Voodoo Castle",
+ VOODOO,
+ OLD_STYLE, // type
+ ENGLISH, // subtype
+ THREE_LETTER_UNCOMPRESSED, // dictionary type
+
+ 65, // Number of items
+ 189, // Number of actions
+ 89, // Number of words
+ 25, // Number of rooms
+ 9, // Max carried items
+ 3, // Word length
+ 99, // Number of messages
+
+ 90, // number_of_verbs
+ 89, // number_of_nouns;
+
+ 0x2451, // header
+ EARLY, // header style
+
+ 0, // no room images
+ 0, // no item flags
+ 0, // no item images
+
+ 0x3a50, // actions
+ UNCOMPRESSED,
+ 0x4752, // dictionary
+ FOLLOWS, // start_of_room_descriptions;
+ FOLLOWS, // start_of_room_connections;
+ FOLLOWS, // start_of_messages;
+ FOLLOWS, // start_of_item_descriptions;
+ FOLLOWS, // start_of_item_locations;
+
+ 0x2539, // start_of_system_messages
+ 0x28de, // start of directions
+
+ 0, // start_of_characters;
+ 0, // start_of_image_data;
+ 0, // image_address_offset
+ 0, // number_of_pictures;
+ NO_PALETTE, // palette;
+ 0, // picture_format_version;
+ 0),
+ GameInfo("Strange Odyssey",
+ STRANGE,
+ OLD_STYLE, // type
+ ENGLISH, // subtype
+ FOUR_LETTER_UNCOMPRESSED, // dictionary type
+
+ 55, // Number of items
+ 223, // Number of actions
+ 79, // Number of words
+ 35, // Number of rooms
+ 6, // Max carried items
+ 4, // Word length
+ 94, // Number of messages
+
+ 80, // number_of_verbs
+ 79, // number_of_nouns;
+
+ 0x2451, // header
+ EARLY, // header style
+
+ 0, // no room images
+ 0, // no item flags
+ 0, // no item images
+
+ 0x3a50, // actions
+ UNCOMPRESSED,
+ 0x499a, // dictionary
+ FOLLOWS, // start_of_room_descriptions;
+ FOLLOWS, // start_of_room_connections;
+ FOLLOWS, // start_of_messages;
+ FOLLOWS, // start_of_item_descriptions;
+ FOLLOWS, // start_of_item_locations;
+
+ 0x2539, // start_of_system_messages
+ 0x28de, // start of directions
+
+ 0, // start_of_characters;
+ 0, // start_of_image_data;
+ 0, // image_address_offset
+ 0, // number_of_pictures;
+ NO_PALETTE, // palette;
+ 0, // picture_format_version;
+ 0),
+ GameInfo("Buckaroo Banzai",
+ BANZAI,
+ OLD_STYLE, // type
+ ENGLISH, // subtype
+ FOUR_LETTER_UNCOMPRESSED, // dictionary type
+
+ 60, // Number of items
+ 266, // Number of actions
+ 110, // Number of words
+ 35, // Number of rooms
+ 5, // Max carried items
+ 4, // Word length
+ 95, // Number of messages
+
+ 111, // number_of_verbs
+ 110, // number_of_nouns;
+
+ 0x2451, // header
+ EARLY, // header style
+
+ 0, // no room images
+ 0, // no item flags
+ 0, // no item images
+
+ 0x3a50, // actions
+ UNCOMPRESSED,
+ 0x4c54, // dictionary
+ FOLLOWS, // start_of_room_descriptions;
+ FOLLOWS, // start_of_room_connections;
+ FOLLOWS, // start_of_messages;
+ FOLLOWS, // start_of_item_descriptions;
+ FOLLOWS, // start_of_item_locations;
+
+ 0x2539, // start_of_system_messages
+ 0x28de, // start of directions
+
+ 0, // start_of_characters;
+ 0, // start_of_image_data;
+ 0, // image_address_offset
+ 0, // number_of_pictures;
+ NO_PALETTE, // palette;
+ 0, // picture_format_version;
+ 0),
+ GameInfo("The Golden Baton",
+ BATON,
+ OLD_STYLE, // type
+ MYSTERIOUS, // subtype
+ FOUR_LETTER_UNCOMPRESSED, // dictionary type
+
+ 48, // Number of items
+ 171, // Number of actions
+ 76, // Number of words
+ 31, // Number of rooms
+ 5, // Max carried items
+ 4, // Word length
+ 82, // Number of messages
+
+ 77, // number_of_verbs
+ 76, // number_of_nouns;
+
+ 0x2349, // header
+ EARLY, // header style
+
+ 0, // no room images
+ 0, // no item flags
+ 0, // no item images
+
+ 0x3b56, // actions
+ UNCOMPRESSED,
+ 0x473a, // dictionary
+ FOLLOWS, // start_of_room_descriptions;
+ FOLLOWS, // start_of_room_connections;
+ FOLLOWS, // start_of_messages;
+ FOLLOWS, // start_of_item_descriptions;
+ FOLLOWS, // start_of_item_locations;
+
+ 0x2450, // start_of_system_messages
+ 0x277e, // start of directions
+
+ 0, // start_of_characters;
+ FOLLOWS, // start_of_image_data;
+ 0, // image_address_offset
+ 30, // number_of_pictures;
+ ZXOPT, // palette
+ 99, // picture_format_version;
+ 0),
+ GameInfo("The Golden Baton C64",
+ BATON_C64,
+ NO_TYPE, // type
+ static_cast<Subtype>(MYSTERIOUS | ENGLISH | C64), // subtype
+ FOUR_LETTER_UNCOMPRESSED, // dictionary type
+
+ 48, // Number of items
+ 166, // Number of actions
+ 78, // Number of words
+ 31, // Number of rooms
+ 6, // Max carried items
+ 4, // Word length
+ 99, // Number of messages
+
+ 80, // number_of_verbs
+ 79, // number_of_nouns;
+
+ 0x1dd9, // header
+ MYSTERIOUS_C64_HEADER, // header style
+
+ 0, // no room images
+ 0, // no item flags
+ 0, // no item images
+
+ 0x1df1, // actions
+ UNCOMPRESSED,
+ 0x2861, // dictionary
+ FOLLOWS, // start_of_room_descriptions;
+ FOLLOWS, // start_of_room_connections;
+ FOLLOWS, // start_of_messages;
+ FOLLOWS, // start_of_item_descriptions;
+ FOLLOWS, // start_of_item_locations;
+
+ 0x408, // start_of_system_messages
+ 0x408, // start of directions
+
+ 0, // start_of_characters;
+ 0x38f1, // start_of_image_data;
+ 0, // image_address_offset
+ 30, // number_of_pictures;
+ C64A, // palette
+ 99, // picture_format_version;
+ 0),
+ GameInfo("The Time Machine",
+ TIME_MACHINE,
+ OLD_STYLE, // type
+ MYSTERIOUS, // subtype
+ FOUR_LETTER_UNCOMPRESSED, // dictionary type
+
+ 62, // Number of items
+ 164, // Number of actions
+ 87, // Number of words
+ 44, // Number of rooms
+ 6, // Max carried items
+ 4, // Word length
+ 82, // Number of messages
+
+ 88, // number_of_verbs
+ 87, // number_of_nouns;
+
+ 0x2351, // header
+ EARLY, // header style
+
+ 0, // no room images
+ 0, // no item flags
+ 0, // no item images
+
+ 0x3b81, // actions
+ UNCOMPRESSED,
+ 0x475f, // dictionary
+ FOLLOWS, // start_of_room_descriptions;
+ FOLLOWS, // start_of_room_connections;
+ FOLLOWS, // start_of_messages;
+ FOLLOWS, // start_of_item_descriptions;
+ FOLLOWS, // start_of_item_locations;
+
+ 0x24c0, // start_of_system_messages
+ 0x2780, // start of directions
+
+ 0, // start_of_characters;
+ FOLLOWS,
+ 0, // image_address_offset
+ 43, // number_of_pictures;
+ ZXOPT, // palette
+ 99, // picture_format_version;
+ 0),
+ GameInfo("The Time Machine C64",
+ TIME_MACHINE_C64,
+ NO_TYPE, // type
+ static_cast<Subtype>(MYSTERIOUS | ENGLISH | C64), // subtype
+ FOUR_LETTER_UNCOMPRESSED, // dictionary type
+
+ 62, // Number of items
+ 161, // Number of actions
+ 85, // Number of words
+ 44, // Number of rooms
+ 6, // Max carried items
+ 4, // Word length
+ 73, // Number of messages
+
+ 87, // number_of_verbs
+ 85, // number_of_nouns;
+
+ 0x1dd9, // header
+ MYSTERIOUS_C64_HEADER, // header style
+
+ 0, // no room images
+ 0, // no item flags
+ 0, // no item images
+
+ 0x1df1, // actions
+ UNCOMPRESSED,
+ 0x2811, // dictionary
+ 0x2b6d, // start_of_room_descriptions;
+ FOLLOWS, // start_of_room_connections;
+ 0x2f0f, // start_of_messages;
+ FOLLOWS, // start_of_item_descriptions;
+ 0x37ce, // start_of_item_locations;
+
+ 0x408, // start_of_system_messages
+ 0x408, // start of directions
+
+ 0, // start_of_characters;
+ 0x3872, // start_of_image_data;
+ 0, // image_address_offset
+ 43, // number_of_pictures;
+ C64A, // palette
+ 99, // picture_format_version;
+ 0),
+ GameInfo("Arrow of Death part 1",
+ ARROW1,
+ OLD_STYLE, // type
+ MYSTERIOUS, // subtype
+ FOUR_LETTER_UNCOMPRESSED, // dictionary type
+
+ 64, // Number of items
+ 150, // Number of actions
+ 90, // Number of words
+ 52, // Number of rooms
+ 5, // Max carried items
+ 4, // Word length
+ 82, // Number of messages
+
+ 91, // number_of_verbs
+ 83, // number_of_nouns;
+
+ 0x2351, // header
+ EARLY, // header style
+
+ 0, // no room images
+ 0, // no item flags
+ 0, // no item images
+
+ 0x3b81, // actions
+ UNCOMPRESSED,
+ 0x46b3, // dictionary
+ 0x4a41, // start_of_room_descriptions;
+ FOLLOWS, // start_of_room_connections;
+ FOLLOWS, // start_of_messages;
+ FOLLOWS, // start_of_item_descriptions;
+ FOLLOWS, // start_of_item_locations;
+
+ 0x24c0, // start_of_system_messages
+ 0x2780, // start of directions
+
+ 0, // start_of_characters;
+ FOLLOWS, // start_of_image_data;
+ 0, // image_address_offset
+ 51, // number_of_pictures;
+ ZXOPT, // palette
+ 99, // picture_format_version;
+ 0),
+ GameInfo("Arrow of Death part 1 C64",
+ ARROW1_C64,
+ NO_TYPE, // type
+ static_cast<Subtype>(MYSTERIOUS | ENGLISH | C64), // subtype
+ FOUR_LETTER_UNCOMPRESSED, // dictionary type
+
+ 64, // Number of items
+ 150, // Number of actions
+ 90, // Number of words
+ 52, // Number of rooms
+ 5, // Max carried items
+ 4, // Word length
+ 82, // Number of messages
+
+ 91, // number_of_verbs
+ 82, // number_of_nouns;
+
+ 0x1dd9, // header
+ MYSTERIOUS_C64_HEADER, // header style
+
+ 0, // no room images
+ 0, // no item flags
+ 0, // no item images
+
+ 0x1df1, // actions
+ UNCOMPRESSED,
+ 0x2761, // dictionary
+ FOLLOWS, // start_of_room_descriptions;
+ FOLLOWS, // start_of_room_connections;
+ FOLLOWS, // start_of_messages;
+ FOLLOWS, // start_of_item_descriptions;
+ FOLLOWS, // start_of_item_locations;
+
+ 0x0408, // start_of_system_messages
+ 0x0408, // start of directions
+
+ 0, // start_of_characters;
+ 0x38e2, // start_of_image_data;
+ 0, // image_address_offset
+ 51, // number_of_pictures;
+ C64A, // palette
+ 99, // picture_format_version;
+ 0),
+ GameInfo("Arrow of Death part 2",
+ ARROW2,
+ OLD_STYLE, // type
+ MYSTERIOUS, // subtype
+ FOUR_LETTER_UNCOMPRESSED, // dictionary type
+
+ 91, // Number of items
+ 190, // Number of actions
+ 83, // Number of words
+ 65, // Number of rooms
+ 9, // Max carried items
+ 4, // Word length
+ 82, // Number of messages
+
+ 84, // number_of_verbs
+ 83, // number_of_nouns;
+
+ 0x2351, // header
+ EARLY, // header style
+
+ 0, // no room images
+ 0, // no item flags
+ 0, // no item images
+
+ 0x3b81, // actions
+ UNCOMPRESSED,
+ 0x49b7, // dictionary
+ FOLLOWS, // start_of_room_descriptions;
+ FOLLOWS, // start_of_room_connections;
+ FOLLOWS, // start_of_messages;
+ FOLLOWS, // start_of_item_descriptions;
+ FOLLOWS, // start_of_item_locations;
+
+ 0x24c0, // start_of_system_messages
+ 0x2780, // start of directions
+
+ 0, // start_of_characters;
+ FOLLOWS, // start_of_image_data;
+ 0, // image_address_offset
+ 64, // number_of_pictures;
+ ZXOPT, // palette
+ 99, // picture_format_version;
+ 0),
+ GameInfo("Arrow of Death part 2 C64",
+ ARROW2_C64,
+ NO_TYPE, // type
+ static_cast<Subtype>(MYSTERIOUS | ENGLISH | C64), // subtype
+ FOUR_LETTER_UNCOMPRESSED, // dictionary type
+
+ 90, // Number of items
+ 176, // Number of actions
+ 82, // Number of words
+ 65, // Number of rooms
+ 9, // Max carried items
+ 4, // Word length
+ 82, // Number of messages
+
+ 81, // number_of_verbs
+ 82, // number_of_nouns;
+
+ 0x1dd9, // header
+ ARROW_OF_DEATH_PT_2_C64_HEADER, // header style
+
+ 0, // no room images
+ 0, // no item flags
+ 0, // no item images
+
+ 0x1df1, // actions
+ UNCOMPRESSED,
+ 0x2901, // dictionary
+ FOLLOWS, // start_of_room_descriptions;
+ FOLLOWS, // start_of_room_connections;
+ FOLLOWS, // start_of_messages;
+ FOLLOWS, // start_of_item_descriptions;
+ FOLLOWS, // start_of_item_locations;
+
+ 0x408, // start_of_system_messages
+ 0x408, // start of directions
+
+ 0, // start_of_characters;
+ 0x3cac, // start_of_image_data;
+ 0, // image_address_offset
+ 64, // number_of_pictures;
+ C64A, // palette
+ 99, // picture_format_version;
+ 0),
+ GameInfo("Escape from Pulsar 7",
+ PULSAR7,
+ OLD_STYLE, // type
+ MYSTERIOUS, // subtype
+ FOUR_LETTER_UNCOMPRESSED, // dictionary type
+
+ 90, // Number of items
+ 220, // Number of actions
+ 145, // Number of words
+ 45, // Number of rooms
+ 6, // Max carried items
+ 4, // Word length
+ 82, // Number of messages
+
+ 146, // number_of_verbs
+ 145, // number_of_nouns;
+
+ 0x2351, // header
+ EARLY, // header style
+
+ 0, // no room images
+ 0, // no item flags
+ 0, // no item images
+
+ 0x3b81, // actions
+ UNCOMPRESSED,
+ 0x4b1d, // dictionary
+ FOLLOWS, // start_of_room_descriptions;
+ FOLLOWS, // start_of_room_connections;
+ FOLLOWS, // start_of_messages;
+ FOLLOWS, // start_of_item_descriptions;
+ FOLLOWS, // start_of_item_locations;
+
+ 0x24c0, // start_of_system_messages
+ 0x2780, // start of directions
+
+ 0, // start_of_characters;
+ FOLLOWS, // start_of_image_data;
+ 0, // image_address_offset
+ 44, // number_of_pictures;
+ ZXOPT, // palette
+ 99, // picture_format_version;
+ 0),
+ GameInfo("Escape from Pulsar 7 C64",
+ PULSAR7_C64,
+ NO_TYPE, // type
+ static_cast<Subtype>(MYSTERIOUS | ENGLISH | C64), // subtype
+ FOUR_LETTER_UNCOMPRESSED, // dictionary type
+
+ 88, // Number of items
+ 195, // Number of actions
+ 145, // Number of words
+ 45, // Number of rooms
+ 6, // Max carried items
+ 4, // Word length
+ 82, // Number of messages
+
+ 146, // number_of_verbs
+ 102, // number_of_nouns;
+
+ 0x1dd9, // header
+ EARLY, // header style
+
+ 0, // no room images
+ 0, // no item flags
+ 0, // no item images
+
+ 0x1da3, // actions
+ UNCOMPRESSED,
+ 0x29e3, // dictionary
+ FOLLOWS, // start_of_room_descriptions;
+ FOLLOWS, // start_of_room_connections;
+ FOLLOWS, // start_of_messages;
+ FOLLOWS, // start_of_item_descriptions;
+ FOLLOWS, // start_of_item_locations;
+
+ 0x408, // start_of_system_messages
+ 0x408, // start of directions
+
+ 0, // start_of_characters;
+ 0x3bf4, // start_of_image_data;
+ 0, // image_address_offset
+ 44, // number_of_pictures;
+ C64A, // palette
+ 99, // picture_format_version;
+ 0),
+ GameInfo("Circus",
+ CIRCUS,
+ OLD_STYLE, // type
+ MYSTERIOUS, // subtype
+ FOUR_LETTER_UNCOMPRESSED, // dictionary type
+
+ 65, // Number of items
+ 165, // Number of actions
+ 97, // Number of words
+ 36, // Number of rooms
+ 6, // Max carried items
+ 4, // Word length
+ 82, // Number of messages
+
+ 98, // number_of_verbs
+ 97, // number_of_nouns;
+
+ 0x2349, // header
+ EARLY, // header style
+
+ 0, // no room images
+ 0, // no item flags
+ 0, // no item images
+
+ 0x3b56, // actions
+ UNCOMPRESSED,
+ 0x471a, // dictionary
+ FOLLOWS, // start_of_room_descriptions;
+ FOLLOWS, // start_of_room_connections;
+ FOLLOWS, // start_of_messages;
+ FOLLOWS, // start_of_item_descriptions;
+ FOLLOWS, // start_of_item_locations;
+
+ 0x24c0, // start_of_system_messages
+ 0x277E, // start of directions
+
+ 0, // start_of_characters;
+ FOLLOWS, // start_of_image_data;
+ 0, // image_address_offset
+ 35, // number_of_pictures;
+ ZXOPT, // palette
+ 99, // picture_format_version;
+ 0),
+ GameInfo("Circus C64",
+ CIRCUS_C64,
+ NO_TYPE, // type
+ static_cast<Subtype>(MYSTERIOUS | ENGLISH | C64), // subtype
+ FOUR_LETTER_UNCOMPRESSED, // dictionary type
+
+ 65, // Number of items
+ 165, // Number of actions
+ 97, // Number of words
+ 36, // Number of rooms
+ 6, // Max carried items
+ 4, // Word length
+ 72, // Number of messages
+
+ 98, // number_of_verbs
+ 96, // number_of_nouns;
+
+ 0x1dd9, // header
+ MYSTERIOUS_C64_HEADER, // header style
+
+ 0, // no room images
+ 0, // no item flags
+ 0, // no item images
+
+ 0x1df1, // actions
+ UNCOMPRESSED,
+ 0x2851, // dictionary
+ FOLLOWS, // start_of_room_descriptions;
+ FOLLOWS, // start_of_room_connections;
+ FOLLOWS, // start_of_messages;
+ FOLLOWS, // start_of_item_descriptions;
+ FOLLOWS, // start_of_item_locations;
+
+ 0x408, // start_of_system_messages
+ 0x408, // start of directions
+
+ 0, // start_of_characters;
+ 0x3914, // start_of_image_data;
+ 0, // image_address_offset
+ 35, // number_of_pictures;
+ C64A, // palette
+ 99, // picture_format_version;
+ 0),
+ GameInfo("Feasibility Experiment",
+ FEASIBILITY,
+ OLD_STYLE, // type
+ MYSTERIOUS, // subtype
+ FOUR_LETTER_UNCOMPRESSED, // dictionary type
+
+ 65, // Number of items
+ 164, // Number of actions
+ 82, // Number of words
+ 59, // Number of rooms
+ 5, // Max carried items
+ 4, // Word length
+ 82, // Number of messages
+
+ 83, // number_of_verbs
+ 82, // number_of_nouns;
+
+ 0x2351, // header
+ EARLY, // header style
+
+ 0, // no room images
+ 0, // no item flags
+ 0, // no item images
+
+ 0x3b81, // actions
+ UNCOMPRESSED,
+ 0x47bf, // dictionary
+ FOLLOWS, // start_of_room_descriptions;
+ FOLLOWS, // start_of_room_connections;
+ FOLLOWS, // start_of_messages;
+ FOLLOWS, // start_of_item_descriptions;
+ FOLLOWS, // start_of_item_locations;
+
+ 0x24c0, // start_of_system_messages
+ 0x2780, // start of directions
+
+ 0, // start_of_characters;
+ FOLLOWS, // start_of_image_data;
+ 0, // image_address_offset
+ 58, // number_of_pictures;
+ ZXOPT, // palette
+ 99, // picture_format_version;
+ 0),
+ GameInfo("Feasibility Experiment C64",
+ FEASIBILITY_C64,
+ NO_TYPE, // type
+ static_cast<Subtype>(MYSTERIOUS | ENGLISH | C64), // subtype
+ FOUR_LETTER_UNCOMPRESSED, // dictionary type
+
+ 65, // Number of items
+ 156, // Number of actions
+ 79, // Number of words
+ 59, // Number of rooms
+ 6, // Max carried items
+ 4, // Word length
+ 82, // Number of messages
+
+ 56, // number_of_verbs
+ 80, // number_of_nouns;
+
+ 0x1dd9, // header
+ EARLY, // header style
+
+ 0, // no room images
+ 0, // no item flags
+ 0, // no item images
+
+ 0x1df3, // actions
+ UNCOMPRESSED,
+ 0x27c3, // dictionary
+ FOLLOWS, // start_of_room_descriptions;
+ FOLLOWS, // start_of_room_connections;
+ FOLLOWS, // start_of_messages;
+ FOLLOWS, // start_of_item_descriptions;
+ FOLLOWS, // start_of_item_locations;
+
+ 0x408, // start_of_system_messages
+ 0x408, // start of directions
+
+ 0, // start_of_characters;
+ 0x3876, // start_of_image_data;
+ 0, // image_address_offset
+ 58, // number_of_pictures;
+ C64A, // palette
+ 99, // picture_format_version;
+ 0),
+ GameInfo("The Wizard of Akyrz",
+ AKYRZ,
+ OLD_STYLE, // type
+ MYSTERIOUS, // subtype
+ FOUR_LETTER_UNCOMPRESSED, // dictionary type
+
+ 49, // Number of items
+ 201, // Number of actions
+ 85, // Number of words
+ 40, // Number of rooms
+ 6, // Max carried items
+ 4, // Word length
+ 82, // Number of messages
+
+ 86, // number_of_verbs
+ 85, // number_of_nouns;
+
+ 0x2351, // header
+ EARLY, // header style
+
+ 0, // no room images
+ 0, // no item flags
+ 0, // no item images
+
+ 0x3b81, // actions
+ UNCOMPRESSED,
+ 0x497d, // dictionary
+ FOLLOWS, // start_of_room_descriptions;
+ FOLLOWS, // start_of_room_connections;
+ FOLLOWS, // start_of_messages;
+ FOLLOWS, // start_of_item_descriptions;
+ FOLLOWS, // start_of_item_locations;
+
+ 0x24c0, // start_of_system_messages
+ 0x2780, // start of directions
+
+ 0, // start_of_characters;
+ FOLLOWS, // start_of_image_data;
+ 0, // image_address_offset
+ 39, // number_of_pictures;
+ ZXOPT, // palette
+ 99, // picture_format_version;
+ 0),
+ GameInfo("The Wizard of Akyrz C64",
+ AKYRZ_C64,
+ NO_TYPE, // type
+ static_cast<Subtype>(MYSTERIOUS | ENGLISH | C64), // subtype
+ FOUR_LETTER_UNCOMPRESSED, // dictionary type
+
+ 49, // Number of items
+ 199, // Number of actions
+ 85, // Number of words
+ 40, // Number of rooms
+ 6, // Max carried items
+ 4, // Word length
+ 82, // Number of messages
+
+ 67, // number_of_verbs
+ 85, // number_of_nouns;
+
+ 0x1dd9, // header
+ MYSTERIOUS_C64_HEADER, // header style
+
+ 0, // no room images
+ 0, // no item flags
+ 0, // no item images
+
+ 0x1df1, // actions
+ UNCOMPRESSED,
+ 0x2a71, // dictionary
+ FOLLOWS, // start_of_room_descriptions;
+ FOLLOWS, // start_of_room_connections;
+ FOLLOWS, // start_of_messages;
+ FOLLOWS, // start_of_item_descriptions;
+ FOLLOWS, // start_of_item_locations;
+
+ 0x408, // start_of_system_messages
+ 0x408, // start of directions
+
+ 0, // start_of_characters;
+ 0x3bce, // start_of_image_data;
+ 0, // image_address_offset
+ 39, // number_of_pictures;
+ C64A, // palette
+ 99, // picture_format_version;
+ 0),
+ GameInfo("Perseus and Andromeda",
+ PERSEUS,
+ OLD_STYLE, // type
+ MYSTERIOUS, // subtype
+ FOUR_LETTER_UNCOMPRESSED, // dictionary type
+
+ 60, // Number of items
+ 178, // Number of actions
+ 130, // Number of words
+ 40, // Number of rooms
+ 6, // Max carried items
+ 4, // Word length
+ 82, // Number of messages
+
+ 131, // number_of_verbs
+ 130, // number_of_nouns;
+
+ 0x2351, // header
+ EARLY, // header style
+
+ 0, // no room images
+ 0, // no item flags
+ 0, // no item images
+
+ 0x3b81, // actions
+ UNCOMPRESSED,
+ 0x4823, // dictionary
+ FOLLOWS, // start_of_room_descriptions;
+ FOLLOWS, // start_of_room_connections;
+ FOLLOWS, // start_of_messages;
+ FOLLOWS, // start_of_item_descriptions;
+ FOLLOWS, // start_of_item_locations;
+
+ 0x24c0, // start_of_system_messages
+ 0x2780, // start of directions
+
+ 0, // start_of_characters;
+ FOLLOWS, // start_of_image_data;
+ 0, // image_address_offset
+ 39, // number_of_pictures;
+ ZXOPT, // palette
+ 99, // picture_format_version;
+ 0),
+ GameInfo("Perseus and Andromeda C64",
+ PERSEUS_C64,
+ NO_TYPE, // type
+ static_cast<Subtype>(MYSTERIOUS | ENGLISH | C64), // subtype
+ FOUR_LETTER_UNCOMPRESSED, // dictionary type
+
+ 59, // Number of items
+ 165, // Number of actions
+ 130, // Number of words
+ 40, // Number of rooms
+ 6, // Max carried items
+ 4, // Word length
+ 82, // Number of messages
+
+ 131, // number_of_verbs
+ 82, // number_of_nouns;
+
+ 0x1dd9, // header
+ EARLY, // header style
+
+ 0, // no room images
+ 0, // no item flags
+ 0, // no item images
+
+ 0x1df3, // actions
+ UNCOMPRESSED,
+ 0x2853, // dictionary
+ FOLLOWS, // start_of_room_descriptions;
+ FOLLOWS, // start_of_room_connections;
+ FOLLOWS, // start_of_messages;
+ FOLLOWS, // start_of_item_descriptions;
+ FOLLOWS, // start_of_item_locations;
+
+ 0x408, // start_of_system_messages
+ 0x408, // start of directions
+
+ 0, // start_of_characters;
+ 0x3d91, // start_of_image_data;
+ 0, // image_address_offset
+ 39, // number_of_pictures;
+ C64A, // palette
+ 99, // picture_format_version;
+ 0),
+ GameInfo("Perseus and Andromeda C64",
+ PERSEUS_C64,
+ NO_TYPE, // type
+ static_cast<Subtype>(MYSTERIOUS | ENGLISH | C64), // subtype
+ FOUR_LETTER_UNCOMPRESSED, // dictionary type
+
+ 59, // Number of items
+ 165, // Number of actions
+ 130, // Number of words
+ 40, // Number of rooms
+ 6, // Max carried items
+ 4, // Word length
+ 82, // Number of messages
+
+ 131, // number_of_verbs
+ 82, // number_of_nouns;
+
+ 0x1dd9, // header
+ EARLY, // header style
+
+ 0, // no room images
+ 0, // no item flags
+ 0, // no item images
+
+ 0x1df3, // actions
+ UNCOMPRESSED,
+ 0x2853, // dictionary
+ FOLLOWS, // start_of_room_descriptions;
+ FOLLOWS, // start_of_room_connections;
+ FOLLOWS, // start_of_messages;
+ FOLLOWS, // start_of_item_descriptions;
+ FOLLOWS, // start_of_item_locations;
+
+ 0x408, // start_of_system_messages
+ 0x408, // start of directions
+
+ 0, // start_of_characters;
+ 0x3d91, // start_of_image_data;
+ 0, // image_address_offset
+ 39, // number_of_pictures;
+ C64A, // palette
+ 99, // picture_format_version;
+ 0),
+ GameInfo("Perseus and Andromeda C64",
+ PERSEUS_C64,
+ NO_TYPE, // type
+ static_cast<Subtype>(MYSTERIOUS | ENGLISH | C64), // subtype
+ FOUR_LETTER_UNCOMPRESSED, // dictionary type
+
+ 59, // Number of items
+ 165, // Number of actions
+ 130, // Number of words
+ 40, // Number of rooms
+ 6, // Max carried items
+ 4, // Word length
+ 82, // Number of messages
+
+ 131, // number_of_verbs
+ 82, // number_of_nouns;
+
+ 0x1dd9, // header
+ EARLY, // header style
+
+ 0, // no room images
+ 0, // no item flags
+ 0, // no item images
+
+ 0x1df3, // actions
+ UNCOMPRESSED,
+ 0x2853, // dictionary
+ FOLLOWS, // start_of_room_descriptions;
+ FOLLOWS, // start_of_room_connections;
+ FOLLOWS, // start_of_messages;
+ FOLLOWS, // start_of_item_descriptions;
+ FOLLOWS, // start_of_item_locations;
+
+ 0x408, // start_of_system_messages
+ 0x408, // start of directions
+
+ 0, // start_of_characters;
+ 0x3d91, // start_of_image_data;
+ 0, // image_address_offset
+ 39, // number_of_pictures;
+ C64A, // palette
+ 99, // picture_format_version;
+ 0),
+ GameInfo("Perseus and Andromeda Italian",
+ PERSEUS_ITALIAN,
+ OLD_STYLE, // type
+ MYSTERIOUS, // subtype
+ ITALIAN, // dictionary type
+
+ 60, // Number of items
+ 178, // Number of actions
+ 130, // Number of words
+ 40, // Number of rooms
+ 6, // Max carried items
+ 4, // Word length
+ 82, // Number of messages
+
+ 131, // number_of_verbs
+ 83, // number_of_nouns;
+
+ 0x045d, // header
+ EARLY, // header style
+
+ 0, // no room images
+ 0, // no item flags
+ 0, // no item images
+
+ 0x1c8d, // actions
+ UNCOMPRESSED,
+ 0x292f, // dictionary
+ 0x2e4d, // start_of_room_descriptions;
+ FOLLOWS, // start_of_room_connections;
+ FOLLOWS, // start_of_messages;
+ FOLLOWS, // start_of_item_descriptions;
+ FOLLOWS, // start_of_item_locations;
+
+ 0x5d5, // start_of_system_messages
+ 0x892, // start of directions
+
+ 0, // start_of_characters;
+ 0x3faa, // start_of_image_data;
+ 0, // image_address_offset
+ 40, // number_of_pictures;
+ ZXOPT, // palette
+ 99, // picture_format_version;
+ 0),
+ GameInfo("Ten Little Indians",
+ INDIANS,
+ OLD_STYLE, // type
+ MYSTERIOUS, // subtype
+ FOUR_LETTER_UNCOMPRESSED, // dictionary type
+
+ 73, // Number of items
+ 161, // Number of actions
+ 85, // Number of words
+ 63, // Number of rooms
+ 5, // Max carried items
+ 4, // Word length
+ 82, // Number of messages
+
+ 86, // number_of_verbs
+ 85, // number_of_nouns;
+
+ 0x2351, // header
+ EARLY, // header style
+
+ 0, // no room images
+ 0, // no item flags
+ 0, // no item images
+
+ 0x3b81, // actions
+ UNCOMPRESSED,
+ 0x47b7, // dictionary
+ FOLLOWS, // start_of_room_descriptions;
+ FOLLOWS, // start_of_room_connections;
+ FOLLOWS, // start_of_messages;
+ FOLLOWS, // start_of_item_descriptions;
+ FOLLOWS, // start_of_item_locations;
+
+ 0x24c0, // start_of_system_messages
+ 0x2780, // start of directions
+
+ 0, // start_of_characters;
+ FOLLOWS, // start_of_image_data;
+ 0, // image_address_offset
+ 62, // number_of_pictures;
+ ZXOPT, // palette
+ 99, // picture_format_version;
+ 0),
+ GameInfo("Ten Little Indians C64",
+ INDIANS_C64,
+ NO_TYPE, // type
+ static_cast<Subtype>(MYSTERIOUS | ENGLISH | C64), // subtype
+ FOUR_LETTER_UNCOMPRESSED, // dictionary type
+
+ 73, // Number of items
+ 161, // Number of actions
+ 82, // Number of words
+ 63, // Number of rooms
+ 5, // Max carried items
+ 4, // Word length
+ 82, // Number of messages
+
+ 64, // number_of_verbs
+ 82, // number_of_nouns;
+
+ 0x1dd9, // header
+ INDIANS_C64_HEADER, // header style
+
+ 0, // no room images
+ 0, // no item flags
+ 0, // no item images
+
+ 0x1df0, // actions
+ UNCOMPRESSED,
+ 0x2810, // dictionary
+ FOLLOWS, // start_of_room_descriptions;
+ FOLLOWS, // start_of_room_connections;
+ FOLLOWS, // start_of_messages;
+ FOLLOWS, // start_of_item_descriptions;
+ FOLLOWS, // start_of_item_locations;
+
+ 0x408, // start_of_system_messages
+ 0x408, // start of directions
+
+ 0, // start_of_characters;
+ 0x3a46, // start_of_image_data;
+ 0, // image_address_offset
+ 62, // number_of_pictures;
+ C64A, // palette
+ 99, // picture_format_version;
+ 0),
+ GameInfo("Waxworks",
+ WAXWORKS,
+ OLD_STYLE, // type
+ MYSTERIOUS, // subtype
+ FOUR_LETTER_UNCOMPRESSED, // dictionary type
+
+ 57, // Number of items
+ 189, // Number of actions
+ 106, // Number of words
+ 41, // Number of rooms
+ 6, // Max carried items
+ 4, // Word length
+ 82, // Number of messages
+
+ 107, // number_of_verbs
+ 106, // number_of_nouns;
+
+ 0x2351, // header
+ EARLY, // header style
+
+ 0, // no room images
+ 0, // no item flags
+ 0, // no item images
+
+ 0x3b81, // actions
+ UNCOMPRESSED,
+ 0x48d3, // dictionary
+ FOLLOWS, // start_of_room_descriptions;
+ FOLLOWS, // start_of_room_connections;
+ FOLLOWS, // start_of_messages;
+ FOLLOWS, // start_of_item_descriptions;
+ FOLLOWS, // start_of_item_locations;
+
+ 0x24c0, // start_of_system_messages
+ 0x2780, // start of directions
+
+ 0, // start_of_characters;
+ FOLLOWS, // start_of_image_data;
+ 0, // image_address_offset
+ 40, // number_of_pictures;
+ ZXOPT, // palette
+ 99, // picture_format_version;
+ 0),
+ GameInfo("Waxworks C64",
+ WAXWORKS_C64,
+ NO_TYPE, // type
+ static_cast<Subtype>(MYSTERIOUS | ENGLISH | C64), // subtype
+ FOUR_LETTER_UNCOMPRESSED, // dictionary type
+
+ 57, // Number of items
+ 189, // Number of actions
+ 105, // Number of words
+ 41, // Number of rooms
+ 6, // Max carried items
+ 4, // Word length
+ 82, // Number of messages
+
+ 91, // number_of_verbs
+ 105, // number_of_nouns;
+
+ 0x1dd9, // header
+ EARLY, // header style
+
+ 0, // no room images
+ 0, // no item flags
+ 0, // no item images
+
+ 0x1df3, // actions
+ UNCOMPRESSED,
+ 0x29d3, // dictionary
+ FOLLOWS, // start_of_room_descriptions;
+ FOLLOWS, // start_of_room_connections;
+ FOLLOWS, // start_of_messages;
+ FOLLOWS, // start_of_item_descriptions;
+ FOLLOWS, // start_of_item_locations;
+
+ 0x408, // start_of_system_messages
+ 0x408, // start of directions
+
+ 0, // start_of_characters;
+ 0x3f31, // start_of_image_data;
+ 0, // image_address_offset
+ 40, // number_of_pictures;
+ C64A, // palette
+ 99, // picture_format_version;
+ 0),
+ GameInfo("Questprobe 1: The Hulk",
+ HULK,
+ NO_TYPE, // type
+ ENGLISH, // subtype
+ FOUR_LETTER_UNCOMPRESSED, // dictionary type
+
+ 54, // Number of items
+ 261, // Number of actions
+ 128, // Number of words
+ 20, // Number of rooms
+ 10, // Max carried items
+ 4, // Word length
+ 99, // Number of messages
+
+ 128, // number_of_verbs
+ 129, // number_of_nouns;
+
+ 0x4bf4, // header
+ HULK_HEADER, // header style
+
+ 0x270c, // room images
+ 0, // item flags
+ 0x26c8, // item images
+
+ 0x6087, // actions
+ HULK_ACTIONS,
+ 0x4cc4, // dictionary
+ 0x51cd, // start_of_room_descriptions;
+ 0x7111, // start_of_room_connections;
+ 0x575e, // start_of_messages;
+ FOLLOWS, // start_of_item_descriptions;
+ 0x5f3d, // start_of_item_locations;
+
+ 0x2553, // start_of_system_messages
+ 0x28f7, // start of directions
+
+ 0x281b, // start_of_characters;
+ 0x2782, // start_of_image_data
+ 0, // image_address_offset
+ 43, // number_of_pictures;
+ ZXOPT, // palette
+ 0, // picture_format_version;
+ 0),
+ GameInfo("Questprobe 1: The Hulk C64", HULK_C64,
+ NO_TYPE, // type
+ ENGLISH, // subtype
+ FOUR_LETTER_UNCOMPRESSED, // dictionary type
+
+ 54, // Number of items
+ 261, // Number of actions
+ 128, // Number of words
+ 20, // Number of rooms
+ 10, // Max carried items
+ 4, // Word length
+ 99, // Number of messages
+
+ 128, // number_of_verbs
+ 129, // number_of_nouns;
+
+ 0x7867, // header
+ HULK_HEADER, // header style
+
+ 0x2280, // room images
+ 0, // item flags
+ 0x22ba, // item images
+
+ 0x8c47, // actions
+ HULK_ACTIONS,
+ 0x7884, // dictionary
+ 0x7d8d, // start_of_room_descriptions;
+ 0x9CD1, // start_of_room_connections;
+ 0x831E, // start_of_messages;
+ FOLLOWS, // start_of_item_descriptions;
+ 0x8AFD, // start_of_item_locations;
+
+ // These are spread out all over the code
+ 0, // start_of_system_messages
+ 0xae25, // start of directions
+
+ 0x0d01, // start_of_characters;
+ 0x2701, // start_of_image_data
+ 0, // image_address_offset
+ 43, // number_of_pictures;
+ C64B, // palette
+ 0, // picture_format_version;
+ 0),
+ GameInfo("Adventureland",
+ ADVENTURELAND,
+ NO_TYPE, // type
+ ENGLISH, // subtype
+ THREE_LETTER_UNCOMPRESSED, // dictionary type
+
+ 65, // Number of items
+ 181, // Number of actions
+ 69, // Number of words
+ 33, // Number of rooms
+ 6, // Max carried items
+ 3, // Word length
+ 75, // Number of messages
+
+ 70, // number_of_verbs
+ 69, // number_of_nouns;
+
+ 0x2473, // header
+ EARLY, // header style
+
+ 0x3ebe, // room images
+ FOLLOWS, // item flags
+ 0x3f1f, // item images
+ 0x3f5e, // actions
+ UNCOMPRESSED,
+ 0x4c10, // dictionary
+ 0x4e40, // start_of_room_descriptions;
+ 0x4abe, // start_of_room_connections;
+ 0x52c3, // start_of_messages;
+ FOLLOWS, // start_of_item_descriptions;
+ 0x4b8a, // start_of_item_locations;
+
+ 0x24eb, // start_of_system_messages
+ 0x285e, // start of directions
+
+ 0x631e, // start_of_characters;
+ FOLLOWS, // start_of_image_data
+ -0x3fe5, // image_address_offset
+ 41, // number_of_pictures;
+ ZXOPT, // palette
+ 1, // picture_format_version;
+ 0),
+ GameInfo("Adventureland C64",
+ ADVENTURELAND_C64,
+ NO_TYPE, // type
+ static_cast<Subtype>(ENGLISH | C64), // subtype
+ THREE_LETTER_UNCOMPRESSED, // dictionary type
+
+ 62, // Number of items
+ 170, // Number of actions
+ 69, // Number of words
+ 33, // Number of rooms
+ 6, // Max carried items
+ 3, // Word length
+ 75, // Number of messages
+
+ 70, // number_of_verbs
+ 69, // number_of_nouns;
+
+ 0x4146, // header
+ EARLY, // header style
+
+ 0x6364, // room images
+ 0x85a7, // item flags
+ 0x63c5, // item images
+ 0x4160, // actions
+ UNCOMPRESSED,
+ 0x4c10, // dictionary
+ 0x4e40, // start_of_room_descriptions;
+ FOLLOWS, // start_of_room_connections;
+ FOLLOWS, // start_of_messages;
+ FOLLOWS, // start_of_item_descriptions;
+ 0x6404, // start_of_item_locations;
+
+ 0x188, // start_of_system_messages
+ 0x188, // start of directions
+
+ 0x6482, // start_of_characters;
+ 0x6c82, // start_of_image_data
+ -0x1102, // image_address_offset
+ 41, // number_of_pictures;
+ C64B, // palette
+ 1, // picture_format_version;
+ 0),
+ GameInfo("Secret Mission",
+ SECRET_MISSION,
+ SECRET_MISSION_VARIANT, // type
+ ENGLISH, // subtype
+ THREE_LETTER_UNCOMPRESSED, // dictionary type
+
+ 53, // Number of items
+ 164, // Number of actions
+ 64, // Number of words
+ 23, // Number of rooms
+ 7, // Max carried items
+ 3, // Word length
+ 81, // Number of messages
+
+ 65, // number_of_verbs
+ 65, // number_of_nouns;
+
+ 0x2473, // header
+ EARLY, // header style
+ 0x3f26, // room images
+ FOLLOWS, // item flags
+ 0x3f70, // item images
+ 0x3fa2, // actions
+ UNCOMPRESSED,
+ 0x4af0, // dictionary
+ 0x4cf8, // start_of_room_descriptions;
+ 0x49f2, // start_of_room_connections;
+ 0x4edf, // start_of_messages;
+ FOLLOWS, // start_of_item_descriptions;
+ 0x4a82, // start_of_item_locations;
+
+ 0x24eb, // start_of_system_messages
+ 0x285e, // start of directions
+
+ 0x625d, // start_of_characters;
+ FOLLOWS, // start_of_image_data
+ -0x3fe5, // image_address_offset
+ 44, // number_of_pictures;
+ ZXOPT, // palette
+ 1, // picture_format_version;
+ 0),
+ GameInfo("Secret Mission C64",
+ SECRET_MISSION_C64,
+ SECRET_MISSION_VARIANT, // type
+ static_cast<Subtype>(ENGLISH | C64), // subtype
+ THREE_LETTER_UNCOMPRESSED, // dictionary type
+
+ 49, // Number of items
+ 154, // Number of actions
+ 62, // Number of words
+ 23, // Number of rooms
+ 7, // Max carried items
+ 3, // Word length
+ 81, // Number of messages
+
+ 60, // number_of_verbs
+ 62, // number_of_nouns;
+
+ 0x4572, // header
+ EARLY, // header style
+ 0x458c, // room images
+ 0x6721, // item flags
+ FOLLOWS, // item images
+ 0x45a4, // actions
+ UNCOMPRESSED,
+ 0x4f54, // dictionary
+ 0x5140, // start_of_room_descriptions;
+ FOLLOWS, // start_of_room_connections;
+ FOLLOWS, // start_of_messages;
+ FOLLOWS, // start_of_item_descriptions;
+ 0x6785, // start_of_item_locations;
+
+ 0x2502, // start_of_system_messages
+ 0x2502, // start of directions
+
+ 0x681b, // start_of_characters;
+ 0x701b, // start_of_image_data
+ -0x1CD0, // image_address_offset
+ 44, // number_of_pictures;
+ C64B, // palette
+ 1, // picture_format_version;
+ 0),
+ GameInfo("The Sorcerer of Claymorgue Castle",
+ CLAYMORGUE,
+ NO_TYPE, // type
+ ENGLISH, // subtype
+ FIVE_LETTER_UNCOMPRESSED, // dictionary type
+
+ 75, // Number of items
+ 267, // Number of actions
+ 109, // Number of words
+ 32, // Number of rooms
+ 10, // Max carried items
+ 5, // Word length
+ 79, // Number of messages
+
+ 110, // number_of_verbs
+ 108, // number_of_nouns;
+
+ 0x246c, // header
+ EARLY, // header style
+
+ 0x3bf6, // room images
+ FOLLOWS, // item flags
+ FOLLOWS, // item images
+ FOLLOWS, // actions
+ UNCOMPRESSED,
+ 0x4ecf, // dictionary
+ 0x53f7, // start_of_room_descriptions;
+ 0x4d6f, // start_of_room_connections;
+ 0x5605, // start_of_messages;
+ FOLLOWS, // start_of_item_descriptions;
+ 0x4e35, // start_of_item_locations;
+
+ 0x24e2, // start_of_system_messages
+ 0x2877, // start of directions
+
+ 0x6007, // start_of_characters;
+ 0x6807, // start_of_image_data
+ -0x3fe5, // image_address_offset
+ 37, // number_of_pictures;
+ ZXOPT, // palette
+ 1, // picture_format_version;
+ 0),
+ GameInfo("The Sorcerer of Claymorgue Castle C64",
+ CLAYMORGUE_C64,
+ NO_TYPE, // type
+ static_cast<Subtype>(ENGLISH | C64), // subtype
+ FIVE_LETTER_UNCOMPRESSED, // dictionary type
+
+ 75, // Number of items
+ 265, // Number of actions
+ 108, // Number of words
+ 32, // Number of rooms
+ 10, // Max carried items
+ 5, // Word length
+ 79, // Number of messages
+
+ 110, // number_of_verbs
+ 108, // number_of_nouns;
+
+ 0x47d6, // header
+ EARLY, // header style
+
+ 0x471f, // room images
+ FOLLOWS, // item flags
+ FOLLOWS, // item images
+ 0x47f0, // actions
+ UNCOMPRESSED,
+ 0x5891, // dictionary
+ FOLLOWS, // start_of_room_descriptions;
+ FOLLOWS, // start_of_room_connections;
+ FOLLOWS, // start_of_messages;
+ FOLLOWS, // start_of_item_descriptions;
+ FOLLOWS, // start_of_item_locations;
+
+ 0xa2c, // start_of_system_messages
+ 0xa2c, // start of directions
+
+ 0x6b1a, // start_of_characters;
+ 0x731a, // start_of_image_data
+ 0x6b1a, // image_address_offset
+ 44, // number_of_pictures;
+ C64B, // palette
+ 1, // picture_format_version;
+ 0),
+ GameInfo("Questprobe 2: Spiderman",
+ SPIDERMAN,
+ NO_TYPE, // type
+ ENGLISH, // subtype
+ FOUR_LETTER_UNCOMPRESSED, // dictionary type
+
+ 72, // Number of items
+ 257, // Number of actions
+ 124, // Number of words
+ 40, // Number of rooms
+ 12, // Max carried items
+ 4, // Word length
+ 99, // Number of messages
+
+ 125, // number_of_verbs
+ 125, // number_of_nouns;
+
+ 0x246b, // header
+ EARLY, // header style
+
+ 0x3dd1, // room images
+ FOLLOWS, // item flags
+ FOLLOWS, // item images
+
+ FOLLOWS, // actions
+ UNCOMPRESSED,
+ 0x5036, // dictionary
+ 0x5518, // start_of_room_descriptions;
+ 0x4eac, // start_of_room_connections;
+ 0x575e, // start_of_messages;
+ FOLLOWS, // start_of_item_descriptions;
+ 0x4fa2, // start_of_item_locations;
+
+ 0x2553, // start_of_system_messages
+ 0x28f7, // start of directions
+
+ 0x6296, // start_of_characters;
+ 0x6a96, // start_of_image_data
+ -0x3fe5, // image_address_offset
+ 41, // number_of_pictures;
+ ZXOPT, // palette
+ 2, // picture_format_version;
+ 0),
+ GameInfo("Questprobe 2: Spiderman C64",
+ SPIDERMAN_C64,
+ NO_TYPE, // type
+ static_cast<Subtype>(ENGLISH | C64), // subtype
+ FOUR_LETTER_UNCOMPRESSED, // dictionary type
+
+ 72, // Number of items
+ 245, // Number of actions
+ 124, // Number of words
+ 40, // Number of rooms
+ 12, // Max carried items
+ 4, // Word length
+ 98, // Number of messages
+
+ 118, // number_of_verbs
+ 124, // number_of_nouns;
+
+ 0x4baf, // header
+ EARLY, // header style
+
+ 0x4bc9, // room images
+ 0x70da, // item flags
+ FOLLOWS, // item images
+
+ 0x4bf2, // actions
+ UNCOMPRESSED,
+ 0x5b52, // dictionary
+ 0x600c, // start_of_room_descriptions;
+ FOLLOWS, // start_of_room_connections;
+ FOLLOWS, // start_of_messages;
+ 0x6b9b, // start_of_item_descriptions;
+ FOLLOWS, // start_of_item_locations;
+
+ 0x0a7b, // start_of_system_messages
+ 0x0a7b, // start of directions
+
+ 0x716c, // start_of_characters;
+ 0x796c, // start_of_image_data
+ 0x716c, // image_address_offset
+ 41, // number_of_pictures;
+ C64B, // palette
+ 2, // picture_format_version;
+ 0),
+ GameInfo("Savage Island part I",
+ SAVAGE_ISLAND,
+ SAVAGE_ISLAND_VARIANT, // type
+ ENGLISH, // subtype
+ FOUR_LETTER_UNCOMPRESSED, // dictionary type
+
+ 58, // Number of items
+ 259, // Number of actions
+ 84, // Number of words
+ 34, // Number of rooms
+ 6, // Max carried items
+ 4, // Word length
+ 99, // Number of messages
+
+ 82, // number_of_verbs
+ 84, // number_of_nouns;
+
+ 0x236d, // header
+ LATE, // header style
+ 0x390c, // room images
+ FOLLOWS, // item flags
+ FOLLOWS, // item images
+ 0x39a6, // actions
+ COMPRESSED,
+ 0x4484, // dictionary
+ 0x47c7, // start_of_room_descriptions;
+ FOLLOWS, // start_of_room_connections;
+ 0x4b91, // start_of_messages;
+ FOLLOWS, // start_of_item_descriptions;
+ FOLLOWS, // start_of_item_locations;
+
+ 0x2423, // start_of_system_messages
+ 0x25f3, // start of directions
+
+ 0x570f, // start_of_characters;
+ FOLLOWS, // start_of_image_data
+ 0x600f, // image_address_offset
+ 37, // number_of_pictures;
+ ZXOPT, // palette
+ 3, // picture_format_version;
+ 0),
+ GameInfo("Savage Island part I (C64)",
+ SAVAGE_ISLAND_C64,
+ SAVAGE_ISLAND_VARIANT, // type
+ static_cast<Subtype>(ENGLISH | C64), // subtype
+ FOUR_LETTER_UNCOMPRESSED, // dictionary type
+
+ 58, // Number of items
+ 259, // Number of actions
+ 84, // Number of words
+ 34, // Number of rooms
+ 6, // Max carried items
+ 4, // Word length
+ 99, // Number of messages
+
+ 85, // number_of_verbs
+ 84, // number_of_nouns;
+
+ 0x46dc, // header
+ EARLY, // header style
+ 0x4645, // room images
+ FOLLOWS, // item flags
+ FOLLOWS, // item images
+ 0x46f6, // actions
+ COMPRESSED,
+ 0x51d6, // dictionary
+ 0x5528, // start_of_room_descriptions;
+ FOLLOWS, // start_of_room_connections;
+ FOLLOWS, // start_of_messages;
+ // 0x58f6, // start_of_messages;
+ FOLLOWS, // start_of_item_descriptions;
+ FOLLOWS, // start_of_item_locations;
+
+ 0x0a5f, // start_of_system_messages
+ 0x0a5f, // start of directions
+
+ 0x6A02, // start_of_characters;
+ 0x7202, // start_of_image_data
+ 0x7302, // image_address_offset
+ 37, // number_of_pictures;
+ C64B, // palette
+ 3, // picture_format_version;
+ 0),
+ GameInfo("Savage Island part II",
+ SAVAGE_ISLAND2,
+ NO_TYPE, // type
+ ENGLISH, // subtype
+ FOUR_LETTER_UNCOMPRESSED, // dictionary type
+
+ 48, // Number of items
+ 241, // Number of actions
+ 79, // Number of words
+ 30, // Number of rooms
+ 6, // Max carried items
+ 4, // Word length
+ 95, // Number of messages
+
+ 74, // number_of_verbs
+ 79, // number_of_nouns;
+
+ 0x236d, // header
+ LATE, // header style
+ 0x390c, // room images
+ FOLLOWS, // item flags
+ FOLLOWS, // item images
+ 0x398e, // actions
+ COMPRESSED,
+ 0x43f0, // dictionary
+ 0x46ed, // start_of_room_descriptions;
+ FOLLOWS, // start_of_room_connections;
+ FOLLOWS, // start_of_messages;
+ FOLLOWS, // start_of_item_descriptions;
+ FOLLOWS, // start_of_item_locations;
+
+ 0x2423, // start_of_system_messages
+ 0x25f3, // start of directions
+
+ 0x57d0, // start_of_characters;
+ FOLLOWS, // start_of_image_data
+ 0x60d0, // image_address_offset
+ 21, // number_of_pictures;
+ ZXOPT, // palette
+ 3, // picture_format_version;
+ 0),
+ GameInfo("Savage Island part II (C64)",
+ SAVAGE_ISLAND2_C64,
+ NO_TYPE, // type
+ static_cast<Subtype>(ENGLISH | C64), // subtype
+ FOUR_LETTER_UNCOMPRESSED, // dictionary type
+
+ 48, // Number of items
+ 241, // Number of actions
+ 78, // Number of words
+ 30, // Number of rooms
+ 6, // Max carried items
+ 4, // Word length
+ 94, // Number of messages
+
+ 79, // number_of_verbs
+ 79, // number_of_nouns;
+
+ 0x4654, // header
+ EARLY, // header style
+ 0x6310, // room images
+ FOLLOWS, // item flags
+ FOLLOWS, // item images
+ 0x466e, // actions
+ COMPRESSED,
+ 0x50d2, // dictionary
+ 0x53e8, // start_of_room_descriptions;
+ FOLLOWS, // start_of_room_connections;
+ FOLLOWS, // start_of_messages;
+ FOLLOWS, // start_of_item_descriptions;
+ FOLLOWS, // start_of_item_locations;
+
+ 0x0a50, // start_of_system_messages
+ 0x0a50, // start of directions
+
+ 0x6A02, // start_of_characters;
+ 0x7202, // start_of_image_data
+ 0x7302, // image_address_offset
+ 21, // number_of_pictures;
+ C64B, // palette
+ 3, // picture_format_version;
+ 0),
+ GameInfo("Gremlins",
+ GREMLINS,
+ GREMLINS_VARIANT, // type
+ ENGLISH, // subtype
+ FOUR_LETTER_UNCOMPRESSED, // dictionary type
+
+ 99, // Number of items
+ 236, // Number of actions
+ 126, // Number of words
+ 42, // Number of rooms
+ 6, // Max carried items
+ 4, // Word length
+ 98, // Number of messages
+
+ 115, // number_of_verbs
+ 126, // number_of_nouns;
+
+ 0x2370, // header
+ LATE, // header style
+
+ 0x3a09, // room images
+ FOLLOWS, // item flags
+ FOLLOWS, // item images
+
+ 0x3afe, // actions
+ COMPRESSED, // actions_style;
+ 0x45e5, // dictionary
+ FOLLOWS, // start_of_room_descriptions;
+ FOLLOWS, // start_of_room_connections;
+ FOLLOWS, // start_of_messages;
+ FOLLOWS, // start_of_item_descriptions;
+ FOLLOWS, // start_of_item_locations;
+ 0x2426, // start_of_system_messages
+ 0x25f6, // start of directions
+
+ 0x5be1, // start_of_characters;
+ 0x63e1, // start_of_image_data
+ 0x64e1, // image_address_offset
+ 78, // number_of_pictures;
+ ZXOPT, // palette
+ 3, // picture_format_version;
+ 0),
+ GameInfo("Gremlins (alternative)",
+ GREMLINS_ALT,
+ GREMLINS_VARIANT, // type
+ ENGLISH, // subtype
+ FOUR_LETTER_UNCOMPRESSED, // dictionary type
+
+ 99, // Number of items
+ 236, // Number of actions
+ 126, // Number of words
+ 42, // Number of rooms
+ 6, // Max carried items
+ 4, // Word length
+ 98, // Number of messages
+
+ 115, // number_of_verbs
+ 126, // number_of_nouns;
+
+ 0x2378, // header
+ LATE, // header style
+
+ 0x3a0d, // room images
+ FOLLOWS, // item flags
+ FOLLOWS, // item images
+
+ 0x3b02, // actions
+ COMPRESSED, // actions_style;
+ 0x45e5, // dictionary
+ FOLLOWS, // start_of_room_descriptions;
+ FOLLOWS, // start_of_room_connections;
+ FOLLOWS, // start_of_messages;
+ FOLLOWS, // start_of_item_descriptions;
+ FOLLOWS, // start_of_item_locations;
+ 0x242e, // start_of_system_messages
+ 0x25FE, // start of directions
+
+ 0x5bdd, // start_of_characters;
+ 0x63dd, // start_of_image_data
+ 0x64dd, // image_address_offset
+ 78, // number_of_pictures;
+ ZXOPT, // palette
+ 3, // picture_format_version;
+ 0),
+ GameInfo("Gremlins (German)",
+ GREMLINS_GERMAN,
+ GREMLINS_VARIANT, // type
+ LOCALIZED, // subtype
+ GERMAN, // dictionary type
+
+ 99, // Number of items
+ 236, // Number of actions
+ 126, // Number of words
+ 42, // Number of rooms
+ 6, // Max carried items
+ 5, // Word length
+ 98, // Number of messages
+
+ 115, // number_of_verbs
+ 126, // number_of_nouns
+
+ 0x237d, // header
+ LATE, // header style
+
+ 0x3a07, // room images
+ FOLLOWS, // item flags
+ FOLLOWS, // item images
+
+ 0x3afc, // actions
+ COMPRESSED,
+ 0x45d9, // dictionary
+ FOLLOWS, // start_of_room_descriptions;
+ FOLLOWS, // start_of_room_connections;
+ FOLLOWS, // start_of_messages;
+ FOLLOWS, // start_of_item_descriptions;
+ FOLLOWS, // start_of_item_locations;
+
+ 0x23de, // start_of_system_messages
+ 0x2623, // start of directions
+
+ 0x643e, // start_of_characters
+ 0x6c3e, // start_of_image_data
+ 0x6d3e, // image_address_offset
+ 72, // number_of_pictures;
+ ZX, // palette
+ 3, // picture_format_version;
+ 0),
+ GameInfo("Gremlins C64",
+ GREMLINS_C64,
+ GREMLINS_VARIANT, // type
+ static_cast<Subtype>(ENGLISH | C64), // subtype
+ FOUR_LETTER_UNCOMPRESSED, // dictionary type
+
+ 99, // Number of items
+ 243, // Number of actions
+ 126, // Number of words
+ 42, // Number of rooms
+ 6, // Max carried items
+ 4, // Word length
+ 99, // Number of messages
+
+ 115, // number_of_verbs
+ 126, // number_of_nouns;
+
+ 0x4584, // header
+ GREMLINS_C64_HEADER, // header style
+
+ 0x465e, // room images
+ FOLLOWS, // item flags
+ FOLLOWS, // item images
+
+ 0x4751, // actions
+ COMPRESSED, // actions_style;
+ 0x527f, // dictionary
+ FOLLOWS, // start_of_room_descriptions;
+ FOLLOWS, // start_of_room_connections;
+ FOLLOWS, // start_of_messages;
+ FOLLOWS, // start_of_item_descriptions;
+ 0x4596, // start_of_item_locations;
+ 0x0a5e, // start_of_system_messages
+ 0x0a5e, // start of directions
+
+ 0x6a01, // start_of_characters;
+ 0x7201, // start_of_image_data
+ 0x7301, // image_address_offset
+ 91, // number_of_pictures;
+ C64B, // palette
+ 3, // picture_format_version;
+ 0),
+ GameInfo("Gremlins (German, C64)",
+ GREMLINS_GERMAN_C64,
+ GREMLINS_VARIANT, // type
+ static_cast<Subtype>(LOCALIZED | C64), // subtype
+ FIVE_LETTER_COMPRESSED, // dictionary type
+
+ 99, // Number of items
+ 243, // Number of actions
+ 125, // Number of words
+ 42, // Number of rooms
+ 6, // Max carried items
+ 5, // Word length
+ 98, // Number of messages
+
+ 125, // number_of_verbs
+ 124, // number_of_nouns
+
+ 0x4bb2, // header
+ GREMLINS_C64_HEADER, // header style
+
+ 0x4c8c, // room images
+ FOLLOWS, // item flags
+ FOLLOWS, // item images
+
+ 0x4d81, // actions
+ COMPRESSED,
+ 0x585e, // dictionary
+ FOLLOWS, // start_of_room_descriptions;
+ FOLLOWS, // start_of_room_connections;
+ FOLLOWS, // start_of_messages;
+ FOLLOWS, // start_of_item_descriptions;
+ 0x4bc4, // start_of_item_locations;
+
+ 0x1325, // start_of_system_messages
+ 0x1325, // start of directions
+
+ 0x76c5, // start_of_characters
+ 0x7cfd, // start_of_image_data
+ 0x7db3, // image_address_offset
+ 91, // number_of_pictures;
+ C64B, // palette
+ 3, // picture_format_version;
+ 0),
+ GameInfo("Gremlins (Spanish)",
+ GREMLINS_SPANISH,
+ GREMLINS_VARIANT, // type
+ LOCALIZED, // subtype
+ SPANISH, // dictionary type
+
+ 99, // Number of items
+ 236, // Number of actions
+ 126, // Number of words
+ 42, // Number of rooms
+ 6, // Max carried items
+ 4, // Word length
+ 98, // Number of messages
+
+ 115, // number_of_verbs
+ 126, // number_of_nouns
+
+ 0x23c5, // header
+ LATE, // header style
+
+ 0x3993, // room images
+ FOLLOWS, // item flags
+ FOLLOWS, // item images
+
+ 0x3a88, // actions
+ COMPRESSED,
+ 0x455f, // dictionary
+ FOLLOWS, // start_of_room_descriptions;
+ FOLLOWS, // start_of_room_connections;
+ FOLLOWS, // start_of_messages;
+ FOLLOWS, // start_of_item_descriptions;
+ FOLLOWS, // start_of_item_locations;
+
+ 0x2426, // start_of_system_messages
+ 0x25c4, // start of directions
+
+ 0x6171, // start_of_characters
+ 0x6971, // start_of_image_data
+ 0x6A71, // image_address_offset
+ 74, // number_of_pictures;
+ ZXOPT, // palette
+ 3, // picture_format_version;
+ 0),
+ GameInfo("Supergran",
+ SUPERGRAN,
+ NO_TYPE, // type
+ ENGLISH, // subtype
+ FOUR_LETTER_UNCOMPRESSED, // dictionary type
+
+ 85, // Number of items
+ 204, // Number of actions
+ 105, // Number of words
+ 39, // Number of rooms
+ 6, // Max carried items
+ 4, // Word length
+ 99, // Number of messages
+
+ 101, // number_of_verbs
+ 106, // number_of_nouns;
+
+ 0x236d, // header
+ LATE, // header style
+ 0x38c8, // room images
+ FOLLOWS, // item flags
+ FOLLOWS, // item images
+ 0x399e, // actions
+ COMPRESSED,
+ 0x42fd, // dictionary
+ 0x4708, // start_of_room_descriptions;
+ FOLLOWS, // start_of_room_connections;
+ FOLLOWS, // start_of_messages;
+ FOLLOWS, // start_of_item_descriptions;
+ FOLLOWS, // start_of_item_locations;
+
+ 0x2423, // start_of_system_messages
+ 0x25f3, // start of directions
+
+ 0x5a4e, // start_of_characters;
+ FOLLOWS, // start_of_image_data
+ 0x634e, // image_address_offset
+ 47, // number_of_pictures;
+ ZXOPT, // palette
+ 3, // picture_format_version;
+ 0),
+ GameInfo("Supergran C64",
+ SUPERGRAN_C64,
+ NO_TYPE, // type
+ static_cast<Subtype>(ENGLISH | C64), // subtype
+ FOUR_LETTER_UNCOMPRESSED, // dictionary type
+
+ 85, // Number of items
+ 204, // Number of actions
+ 105, // Number of words
+ 39, // Number of rooms
+ 6, // Max carried items
+ 4, // Word length
+ 99, // Number of messages
+
+ 101, // number_of_verbs
+ 105, // number_of_nouns;
+
+ 0x4624, // header
+ SUPERGRAN_C64_HEADER, // header style
+ 0x4636, // room images
+ FOLLOWS, // item flags
+ FOLLOWS, // item images
+ 0x47b5, // actions
+ COMPRESSED,
+ 0x5119, // dictionary
+ 0x5524, // start_of_room_descriptions;
+ FOLLOWS, // start_of_room_connections;
+ FOLLOWS, // start_of_messages;
+ FOLLOWS, // start_of_item_descriptions;
+ 0x470a, // start_of_item_locations;
+
+ 0x0a53, // start_of_system_messages
+ 0x0a53, // start of directions
+
+ 0x6a02, // start_of_characters;
+ FOLLOWS, // start_of_image_data
+ 0x7302, // image_address_offset
+ 49, // number_of_pictures;
+ C64B, // palette
+ 3, // picture_format_version;
+ 0),
+ GameInfo("Robin of Sherwood",
+ ROBIN_OF_SHERWOOD,
+ SHERWOOD_VARIANT, // type
+ ENGLISH, // subtype
+ FOUR_LETTER_COMPRESSED, // dictionary type
+
+ 87, // Number of items
+ 295, // Number of actions
+ 114, // Number of words
+ 93, // Number of rooms
+ 10, // Max carried items
+ 4, // Word length
+ 98, // Number of messages
+
+ 115, // number_of_verbs
+ 109, // number_of_nouns;
+
+ 0x3b5a, // header
+ LATE, // header style
+
+ 0, // 0x3d99 room images, zero because it needs custom handling
+ 0x3db8, // item flags
+ FOLLOWS, // item images
+
+ 0x409b, // actions
+ COMPRESSED,
+ 0x4dc3, // dictionary
+ 0, // 0x9b53 start_of_room_descriptions, zero because of custom handling
+ 0x3e67, // start_of_room_connections
+ 0x5147, // start_of_messages
+ 0x5d65, // start_of_item_descriptions
+ 0x4d6b, // start_of_item_locations
+
+ 0x250b, // start_of_system_messages
+ 0x26b5, // start of directions
+
+ 0x614f, // start_of_characters
+ 0x66bf, // start_of_image_data
+ 0x6765, // image_address_offset
+ 83, // number_of_pictures
+ ZXOPT, // palette
+ 4, // picture_format_version
+ 0),
+ GameInfo("Robin of Sherwood C64",
+ ROBIN_OF_SHERWOOD_C64,
+ SHERWOOD_VARIANT, // type
+ static_cast<Subtype>(ENGLISH | C64), // subtype
+ FOUR_LETTER_COMPRESSED, // dictionary type
+
+ 87, // Number of items
+ 296, // Number of actions
+ 114, // Number of words
+ 93, // Number of rooms
+ 10, // Max carried items
+ 4, // Word length
+ 98, // Number of messages
+
+ 115, // number_of_verbs
+ 109, // number_of_nouns;
+
+ 0x1f85, // header
+ ROBIN_C64_HEADER, // header style
+
+ 0, // room images, zero because it needs custom handling
+ 0x201c, // item flags
+ FOLLOWS, // item images
+
+ 0x252b, // actions
+ COMPRESSED,
+ 0x320a, // dictionary
+ 0, // 0x9b53 start_of_room_descriptions, zero because of custom handling
+ 0x20cc, // start_of_room_connections
+ 0x358e, // start_of_messages
+ 0x4215, // start_of_item_descriptions
+ 0x1fa5, // start_of_item_locations
+
+ 0x428, // start_of_system_messages
+ 0x428, // start of directions
+
+ 0x45ff, // start_of_characters
+ 0x4b6f, // start_of_image_data
+ 0x4c23, // image_address_offset
+ 90, // number_of_pictures
+ C64B, // palette
+ 4, // picture_format_version
+ 0),
+ GameInfo("Seas of Blood",
+ SEAS_OF_BLOOD,
+ SEAS_OF_BLOOD_VARIANT, // type
+ ENGLISH, // subtype
+ FOUR_LETTER_COMPRESSED, // dictionary type
+
+ 125, // Number of items
+ 344, // Number of actions
+ 134, // Number of words
+ 83, // Number of rooms
+ 10, // Max carried items
+ 4, // Word length
+ 99, // Number of messages
+
+ 69, // number_of_verbs
+ 134, // number_of_nouns;
+
+ 0x494d, // header
+ LATE, // header style
+
+ 0, // no room images
+ 0x4961, // item flags
+ FOLLOWS, // item images
+
+ FOLLOWS, // actions
+ COMPRESSED,
+ 0x591b, // dictionary
+ 0x67cb, // start_of_room_descriptions;
+ 0x5c4b, // start_of_room_connections;
+ 0x5ebb, // start_of_messages;
+ 0x6ce0, // start_of_item_descriptions;
+ 0x5e3d, // start_of_item_locations;
+
+ 0x24ed, // start_of_system_messages
+ 0x26fc, // start of directions
+
+ 0x7389, // start_of_characters;
+ 0x7a89, // start_of_image_data;
+ 0x7b9f, // image_address_offset
+ 139, // number_of_pictures;
+ ZXOPT, // palette
+ 4, // picture_format_version;
+ 0),
+ GameInfo("Seas of Blood C64",
+ SEAS_OF_BLOOD_C64,
+ SEAS_OF_BLOOD_VARIANT, // type
+ static_cast<Subtype>(ENGLISH | C64), // subtype
+ FOUR_LETTER_COMPRESSED, // dictionary type
+
+ 125, // Number of items
+ 347, // Number of actions
+ 134, // Number of words
+ 82, // Number of rooms
+ 10, // Max carried items
+ 4, // Word length
+ 99, // Number of messages
+
+ 69, // number_of_verbs
+ 134, // number_of_nouns;
+
+ 0x527d, // header
+ SEAS_OF_BLOOD_C64_HEADER, // header style
+
+ 0, // no room images
+ 0x5a73, // item flags
+ FOLLOWS, // item images
+
+ 0x5b69, // actions
+ COMPRESSED,
+ 0x6a2d, // dictionary
+ 0x78dd, // start_of_room_descriptions;
+ 0x6d5d, // start_of_room_connections;
+ 0x6fcd, // start_of_messages;
+ 0x7df2, // start_of_item_descriptions;
+ 0x6f4f, // start_of_item_locations;
+
+ 0x0b9d, // start_of_system_messages
+ 0x0b9d, // start of directions
+
+ 0x84a5, // start_of_characters;
+ 0x8ba5, // start_of_image_data;
+ 0x8CBB, // image_address_offset
+ 139, // number_of_pictures;
+ C64B, // palette
+ 4, // picture_format_version;
+ 0)
+};
+
diff --git a/engines/glk/scott/globals.h b/engines/glk/scott/globals.h
index 7d02c0f01bc..871a902ef61 100644
--- a/engines/glk/scott/globals.h
+++ b/engines/glk/scott/globals.h
@@ -62,7 +62,6 @@ public:
Common::Array<Action> _actions;
Common::StringArray _sys;
Common::StringArray _systemMessages;
- GameInfo *_game = nullptr;
winid_t _graphics = nullptr;
uint8_t *_entireFile = nullptr;
size_t _fileLength = 0;
@@ -147,6 +146,10 @@ public:
SavedState *_oldestUndo = nullptr;
int _numberOfUndos = 0;
+ const GameInfo *_game;
+ GameInfo _fallbackGame;
+ // Include game list
+ #include "glk/scott/games.h"
public:
Globals();
~Globals();
More information about the Scummvm-git-logs
mailing list