GLK: SCOTT: Add support for Super Gran

This commit is contained in:
Avijeet
2022-06-23 20:11:01 +02:00
committed by Eugene Sandulenko
parent 0d4e18e5c7
commit fdfd91fd7f
7 changed files with 133 additions and 0 deletions
+2
View File
@@ -142,6 +142,8 @@ static C64Rec g_C64Registry[] = {
{ INDIANS_C64, 0x4f9f, 0xe6c8, TYPE_T64, 1 }, // Ten Little Indians C64
{ WAXWORKS_C64, 0x4a11, 0xa37a, TYPE_T64, 1 }, // Waxworks C64
{ SUPERGRAN_C64, 0x726f, 0x0901, TYPE_T64, 1, nullptr, nullptr, 0, 0xd802, 0xc623, 0x1f00 }, // Super Gran C64 (T64) PUCrunch Generic Hack
{ UNKNOWN_GAME, 0, 0, UNKNOWN_FILE_TYPE, 0, nullptr, nullptr, 0, 0, 0, 0 }
};
+3
View File
@@ -87,6 +87,7 @@ const PlainGameDescriptor SCOTT_GAME_LIST[] = {
{ "topsecretadv", "Top Secret Adventure" },
{ "gremlins", "Gremlins" },
{ "seasofblood", "Seas Of Blood" },
{ "supergran", "Super Gran" },
{ nullptr, nullptr }
};
@@ -198,6 +199,8 @@ const GlkDetectionEntry SCOTT_GAMES[] = {
DT_ENTRY1("marveladventure", "C64", "d80e133dd396565f773052cb317e8222", 174848),
DT_ENTRY1("marveladventure2","C64", "5d0ea85ca1f260ca718a6bbb6da4cdb9", 174848),
DT_ENTRY1("marveladventure2","C64", "3d88539a6dd7e6e179bb61041125cc0f", 36466),
DT_ENTRY1("supergran", "C64", "36a5b1b2afb38902933856b3446d760e", 29295),
//Scott Adams
DT_ENTRY1("adventureland", "C64", "05cf6c64ecde5288ae2e46099bfd19a3", 27152),
+41
View File
@@ -321,5 +321,46 @@ void spiderman64Sysmess() {
_G(_sys)[SOMETHING] = "\" something. ";
}
void supergran64Sysmess(void) {
SysMessageType messagekey[] = {
NORTH,
SOUTH,
EAST,
WEST,
UP,
DOWN,
EXITS,
YOU_SEE,
YOU_ARE,
I_DONT_KNOW_WHAT_A,
IS,
YOU_CANT_GO_THAT_WAY,
OK,
WHAT_NOW,
HUH,
YOU_HAVE_IT,
TAKEN,
DROPPED,
YOU_HAVENT_GOT_IT,
INVENTORY,
YOU_DONT_SEE_IT,
THATS_BEYOND_MY_POWER,
DIRECTION,
YOURE_CARRYING_TOO_MUCH,
IM_DEAD,
PLAY_AGAIN,
RESUME_A_SAVED_GAME,
YOU_CANT_DO_THAT_YET,
I_DONT_UNDERSTAND,
NOTHING};
for (int i = 0; i < 30; i++) {
_G(_sys)[messagekey[i]] = _G(_systemMessages)[i];
}
_G(_sys)[I_DONT_KNOW_WHAT_A] = "\"";
_G(_sys)[IS] = "\" is a word I don't know. ";
}
} // End of namespace Scott
} // End of namespace Glk
+1
View File
@@ -42,6 +42,7 @@ void adventurelandAction(int p);
void adventurelandDarkness();
void adventureland64Sysmess();
void spiderman64Sysmess();
void supergran64Sysmess(void);
} // End of namespace Scott
} // End of namespace Glk
+82
View File
@@ -1908,5 +1908,87 @@ const GameInfo _games[NUMGAMES] = {
43, // number_of_pictures;
C64B, // palette
0, // 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)
};
+1
View File
@@ -151,6 +151,7 @@ Globals::Globals() : _sys(MAX_SYSMESS), _directions(NUMBER_OF_DIRECTIONS), _extr
_md5Index.setVal("96a1ccb3212808eee03e74cdc1f0d1a4", 54); // perseus
_md5Index.setVal("79ee3669ccfff7338dfc1810228005dc", 55); // 10 indians
_md5Index.setVal("facc11aa8b51e88a807236b765203eb0", 56); // waxworks11
_md5Index.setVal("36a5b1b2afb38902933856b3446d760e", 57); // super gran
}
Globals::~Globals() {
+3
View File
@@ -169,6 +169,9 @@ void loadGameFile(Common::SeekableReadStream *f) {
case SPIDERMAN_C64:
spiderman64Sysmess();
break;
case SUPERGRAN_C64:
supergran64Sysmess();
break;
case SAVAGE_ISLAND_C64:
_G(_items)[20]._image = 13;
case SAVAGE_ISLAND2_C64: