aboutsummaryrefslogtreecommitdiff
path: root/engines/saga
diff options
context:
space:
mode:
authorAndrew Kurushin2006-05-13 10:30:38 +0000
committerAndrew Kurushin2006-05-13 10:30:38 +0000
commit64c3407500ababf579503224439a3e0c615a8390 (patch)
tree8bc3275b1d1db13bb2fa6e6d3f1ae365322da964 /engines/saga
parent45b249ee6012772179efe556f92de74163235aea (diff)
downloadscummvm-rg350-64c3407500ababf579503224439a3e0c615a8390.tar.gz
scummvm-rg350-64c3407500ababf579503224439a3e0c615a8390.tar.bz2
scummvm-rg350-64c3407500ababf579503224439a3e0c615a8390.zip
extract GameDescriptions to separate files (this will help compress_saga tool to detect sound resource)
svn-id: r22433
Diffstat (limited to 'engines/saga')
-rw-r--r--engines/saga/actor.cpp2
-rw-r--r--engines/saga/game.cpp1415
-rw-r--r--engines/saga/gfx.cpp2
-rw-r--r--engines/saga/interface.cpp2
-rw-r--r--engines/saga/isomap.cpp2
-rw-r--r--engines/saga/ite_introproc.cpp2
-rw-r--r--engines/saga/itedata.cpp2
-rw-r--r--engines/saga/music.cpp2
-rw-r--r--engines/saga/puzzle.cpp2
-rw-r--r--engines/saga/saga.cpp2
-rw-r--r--engines/saga/saga.h320
-rw-r--r--engines/saga/sagagame.cpp1414
-rw-r--r--engines/saga/sagagame.h357
-rw-r--r--engines/saga/sagaresnames.h (renamed from engines/saga/resnames.h)0
-rw-r--r--engines/saga/saveload.cpp2
-rw-r--r--engines/saga/scene.cpp2
-rw-r--r--engines/saga/script.h37
-rw-r--r--engines/saga/sfuncs.cpp2
-rw-r--r--engines/saga/sndres.cpp2
-rw-r--r--engines/saga/sprite.cpp2
-rw-r--r--engines/saga/sthread.cpp2
21 files changed, 1790 insertions, 1783 deletions
diff --git a/engines/saga/actor.cpp b/engines/saga/actor.cpp
index 9b8be7c014..f87958ef53 100644
--- a/engines/saga/actor.cpp
+++ b/engines/saga/actor.cpp
@@ -33,7 +33,7 @@
#include "saga/isomap.h"
#include "saga/itedata.h"
#include "saga/objectmap.h"
-#include "saga/resnames.h"
+#include "saga/sagaresnames.h"
#include "saga/rscfile.h"
#include "saga/script.h"
#include "saga/sndres.h"
diff --git a/engines/saga/game.cpp b/engines/saga/game.cpp
index cad25c7aff..7246be1b80 100644
--- a/engines/saga/game.cpp
+++ b/engines/saga/game.cpp
@@ -36,16 +36,8 @@
#include "saga/rscfile.h"
#include "saga/interface.h"
#include "saga/scene.h"
-#include "saga/resnames.h"
+#include "saga/sagaresnames.h"
-#define ITE_CONVERSE_MAX_TEXT_WIDTH (256 - 60)
-#define ITE_CONVERSE_TEXT_HEIGHT 10
-#define ITE_CONVERSE_TEXT_LINES 4
-
-//TODO: ihnm
-#define IHNM_CONVERSE_MAX_TEXT_WIDTH (256 - 60)
-#define IHNM_CONVERSE_TEXT_HEIGHT 10
-#define IHNM_CONVERSE_TEXT_LINES 10
namespace Saga {
static DetectedGameList GAME_detectGames(const FSList &fslist);
@@ -92,1410 +84,7 @@ PluginError Engine_SAGA_create(OSystem *syst, Engine **engine) {
REGISTER_PLUGIN(SAGA, "SAGA Engine");
namespace Saga {
-
-// ITE section
-static PanelButton ITE_MainPanelButtons[] = {
- {kPanelButtonVerb, 52,4, 57,10, kVerbITEWalkTo,'w',0, 0,1,0},
- {kPanelButtonVerb, 52,15, 57,10, kVerbITELookAt,'l',0, 2,3,0},
- {kPanelButtonVerb, 52,26, 57,10, kVerbITEPickUp,'p',0, 4,5,0},
- {kPanelButtonVerb, 52,37, 57,10, kVerbITETalkTo,'t',0, 0,1,0},
- {kPanelButtonVerb, 110,4, 56,10, kVerbITEOpen,'o',0, 6,7,0},
- {kPanelButtonVerb, 110,15, 56,10, kVerbITEClose,'c',0, 8,9,0},
- {kPanelButtonVerb, 110,26, 56,10, kVerbITEUse,'u',0, 10,11,0},
- {kPanelButtonVerb, 110,37, 56,10, kVerbITEGive,'g',0, 12,13,0},
- {kPanelButtonArrow, 306,6, 8,5, -1,'U',0, 0,4,2},
- {kPanelButtonArrow, 306,41, 8,5, 1,'D',0, 1,5,3},
-
- {kPanelButtonInventory, 181 + 32*0,6, 27,18, 0,'-',0, 0,0,0},
- {kPanelButtonInventory, 181 + 32*1,6, 27,18, 1,'-',0, 0,0,0},
- {kPanelButtonInventory, 181 + 32*2,6, 27,18, 2,'-',0, 0,0,0},
- {kPanelButtonInventory, 181 + 32*3,6, 27,18, 3,'-',0, 0,0,0},
-
- {kPanelButtonInventory, 181 + 32*0,27, 27,18, 4,'-',0, 0,0,0},
- {kPanelButtonInventory, 181 + 32*1,27, 27,18, 5,'-',0, 0,0,0},
- {kPanelButtonInventory, 181 + 32*2,27, 27,18, 6,'-',0, 0,0,0},
- {kPanelButtonInventory, 181 + 32*3,27, 27,18, 7,'-',0, 0,0,0}
-};
-
-static PanelButton ITE_ConversePanelButtons[] = {
- {kPanelButtonConverseText, 52,6 + ITE_CONVERSE_TEXT_HEIGHT * 0, ITE_CONVERSE_MAX_TEXT_WIDTH,ITE_CONVERSE_TEXT_HEIGHT, 0,'1',0, 0,0,0},
- {kPanelButtonConverseText, 52,6 + ITE_CONVERSE_TEXT_HEIGHT * 1, ITE_CONVERSE_MAX_TEXT_WIDTH,ITE_CONVERSE_TEXT_HEIGHT, 1,'2',0, 0,0,0},
- {kPanelButtonConverseText, 52,6 + ITE_CONVERSE_TEXT_HEIGHT * 2, ITE_CONVERSE_MAX_TEXT_WIDTH,ITE_CONVERSE_TEXT_HEIGHT, 2,'3',0, 0,0,0},
- {kPanelButtonConverseText, 52,6 + ITE_CONVERSE_TEXT_HEIGHT * 3, ITE_CONVERSE_MAX_TEXT_WIDTH,ITE_CONVERSE_TEXT_HEIGHT, 3,'4',0, 0,0,0},
- {kPanelButtonArrow, 257,6, 9,6, -1,'u',0, 0,4,2},
- {kPanelButtonArrow, 257,41, 9,6, 1,'d',0, 1,5,3},
-};
-
-static PanelButton ITE_OptionPanelButtons[] = {
- {kPanelButtonOptionSlider, 284,19, 13,75, 0,'-',0, 0,0,0}, //slider-scroller
- {kPanelButtonOption, 113,18, 45,17, kTextReadingSpeed,'r',0, 0,0,0}, //read speed
- {kPanelButtonOption, 113,37, 45,17, kTextMusic,'m',0, 0,0,0}, //music
- {kPanelButtonOption, 113,56, 45,17, kTextSound,'n',0, 0,0,0}, //sound-noise
- {kPanelButtonOption, 13,79, 135,17, kTextQuitGame,'q',0, 0,0,0}, //quit
- {kPanelButtonOption, 13,98, 135,17, kTextContinuePlaying,'c',0, 0,0,0}, //continue
- {kPanelButtonOption, 164,98, 57,17, kTextLoad,'l',0, 0,0,0}, //load
- {kPanelButtonOption, 241,98, 57,17, kTextSave,'s',0, 0,0,0}, //save
- {kPanelButtonOptionSaveFiles, 166,20, 112,74, 0,'-',0, 0,0,0}, //savefiles
-
- {kPanelButtonOptionText,106,4, 0,0, kTextGameOptions,'-',0, 0,0,0}, // text: game options
- {kPanelButtonOptionText,11,22, 0,0, kTextReadingSpeed,'-',0, 0,0,0}, // text: read speed
- {kPanelButtonOptionText,28,22, 0,0, kTextShowDialog,'-',0, 0,0,0}, // text: read speed
- {kPanelButtonOptionText,73,41, 0,0, kTextMusic,'-',0, 0,0,0}, // text: music
- {kPanelButtonOptionText,69,60, 0,0, kTextSound,'-',0, 0,0,0}, // text: noise
-};
-
-static PanelButton ITE_QuitPanelButtons[] = {
- {kPanelButtonQuit, 11,17, 60,16, kTextQuit,'q',0, 0,0,0},
- {kPanelButtonQuit, 121,17, 60,16, kTextCancel,'c',0, 0,0,0},
- {kPanelButtonQuitText, -1,5, 0,0, kTextQuitTheGameQuestion,'-',0, 0,0,0},
-};
-
-static PanelButton ITE_LoadPanelButtons[] = {
- {kPanelButtonLoad, 101,19, 60,16, kTextOK,'o',0, 0,0,0},
- {kPanelButtonLoadText, -1,5, 0,0, kTextLoadSuccessful,'-',0, 0,0,0},
-};
-
-static PanelButton ITE_SavePanelButtons[] = {
- {kPanelButtonSave, 11,37, 60,16, kTextSave,'s',0, 0,0,0},
- {kPanelButtonSave, 101,37, 60,16, kTextCancel,'c',0, 0,0,0},
- {kPanelButtonSaveEdit, 26,17, 119,17, 0,'-',0, 0,0,0},
- {kPanelButtonSaveText, -1,5, 0,0, kTextEnterSaveGameName,'-',0, 0,0,0},
-};
-
-static PanelButton ITE_ProtectPanelButtons[] = {
- {kPanelButtonProtectEdit, 26,17, 119,17, 0,'-',0, 0,0,0},
- {kPanelButtonProtectText, -1,5, 0,0, kTextEnterProtectAnswer,'-',0, 0,0,0},
-};
-
-/*
-static PanelButton ITE_ProtectionPanelButtons[] = {
- {kPanelButtonArrow, 0,0, 0,0, 0,'-',0, 0,0,0}, //TODO
-};*/
-
-static GameDisplayInfo ITE_DisplayInfo = {
- 320, 200, // logical width&height
-
- 35, // scene path y offset
- 137, // scene height
-
- 0, // status x offset
- 137, // status y offset
- 320, // status width
- 11, // status height
- 2, // status text y offset
- 186, // status text color
- 15, // status BG color
- 308,137, // save reminder pos
- 12,12, // save reminder w & h
- 6,7, // save reminder sprite numbers
-
- 5, 4, // left portrait x, y offset
- 274, 4, // right portrait x, y offset
-
- 8, 9, // inventory Up & Down button indexies
- 2, 4, // inventory rows, columns
-
- 0, 148, // main panel offsets
- ARRAYSIZE(ITE_MainPanelButtons),
- ITE_MainPanelButtons,
-
- ITE_CONVERSE_MAX_TEXT_WIDTH,
- ITE_CONVERSE_TEXT_HEIGHT,
- ITE_CONVERSE_TEXT_LINES,
- 4, 5, // converse Up & Down button indexies
- 0, 148, // converse panel offsets
- ARRAYSIZE(ITE_ConversePanelButtons),
- ITE_ConversePanelButtons,
-
- 8, 0, // save file index
- 8, // optionSaveFileVisible
- 8, 8, // option panel offsets
- ARRAYSIZE(ITE_OptionPanelButtons),
- ITE_OptionPanelButtons,
-
- 64,54, // quit panel offsets
- 192,38, // quit panel width & height
- ARRAYSIZE(ITE_QuitPanelButtons),
- ITE_QuitPanelButtons,
-
- 74, 53, // load panel offsets
- 172, 40, // load panel width & height
- ARRAYSIZE(ITE_LoadPanelButtons),
- ITE_LoadPanelButtons,
-
- 2, // save edit index
- 74, 44, // save panel offsets
- 172, 58, // save panel width & height
- ARRAYSIZE(ITE_SavePanelButtons),
- ITE_SavePanelButtons,
-
- 0, // protect edit index
- 74, 44, // protect panel offsets
- 172, 58, // protect panel width & height
- ARRAYSIZE(ITE_ProtectPanelButtons),
- ITE_ProtectPanelButtons
-};
-
-static GameResourceDescription ITE_Resources = {
- RID_ITE_SCENE_LUT, // Scene lookup table RN
- RID_ITE_SCRIPT_LUT, // Script lookup table RN
- RID_ITE_MAIN_PANEL,
- RID_ITE_CONVERSE_PANEL,
- RID_ITE_OPTION_PANEL,
- RID_ITE_MAIN_SPRITES,
- RID_ITE_MAIN_PANEL_SPRITES,
- RID_ITE_DEFAULT_PORTRAITS,
- RID_ITE_MAIN_STRINGS,
- RID_ITE_ACTOR_NAMES
-};
-
-static GameResourceDescription ITEDemo_Resources = {
- RID_ITEDEMO_SCENE_LUT, // Scene lookup table RN
- RID_ITEDEMO_SCRIPT_LUT, // Script lookup table RN
- RID_ITEDEMO_MAIN_PANEL,
- RID_ITEDEMO_CONVERSE_PANEL,
- RID_ITEDEMO_OPTION_PANEL,
- RID_ITEDEMO_MAIN_SPRITES,
- RID_ITEDEMO_MAIN_PANEL_SPRITES,
- RID_ITEDEMO_DEFAULT_PORTRAITS,
- RID_ITEDEMO_MAIN_STRINGS,
- RID_ITEDEMO_ACTOR_NAMES
-};
-
-// Inherit the Earth - DOS Demo version
-static GameFileDescription ITE_DEMO_G_GameFiles[] = {
- {"ite.rsc", GAME_RESOURCEFILE, "986c79c4d2939dbe555576529fd37932"},
- //{"ite.dmo", GAME_DEMOFILE}, "0b9a70eb4e120b6f00579b46c8cae29e"
- {"scripts.rsc", GAME_SCRIPTFILE, "d5697dd3240a3ceaddaa986c47e1a2d7"},
- {"voices.rsc", GAME_SOUNDFILE | GAME_VOICEFILE, "c58e67c506af4ffa03fd0aac2079deb0"}
-};
-
-static GameFontDescription ITEDEMO_GameFonts[] = {
- {0},
- {1}
-};
-
-static GameSoundInfo ITEDEMO_GameSound = {
- kSoundVOC,
- -1,
- -1,
- false,
- false,
- true
-};
-
-// Inherit the Earth - Wyrmkeep Win32 Demo version
-
-static GameFileDescription ITE_WINDEMO2_GameFiles[] = {
- {"ited.rsc", GAME_RESOURCEFILE, "3a450852cbf3c80773984d565647e6ac"},
- {"scriptsd.rsc", GAME_SCRIPTFILE, "3f12b67fa93e56e1a6be39d2921d80bb"},
- {"soundsd.rsc", GAME_SOUNDFILE, "95a6c148e22e99a8c243f2978223583c"},
- {"voicesd.rsc", GAME_VOICEFILE, "e139d86bab2ee8ba3157337f894a92d4"}
-};
-
-static GameFileDescription ITE_WINDEMO1_GameFiles[] = {
- {"ited.rsc", GAME_RESOURCEFILE, "3a450852cbf3c80773984d565647e6ac"},
- {"scriptsd.rsc", GAME_SCRIPTFILE, "3f12b67fa93e56e1a6be39d2921d80bb"},
- {"soundsd.rsc", GAME_SOUNDFILE, "a741139dd7365a13f463cd896ff9969a"},
- {"voicesd.rsc", GAME_VOICEFILE, "0759eaf5b64ae19fd429920a70151ad3"}
-};
-
-static GameFontDescription ITEWINDEMO_GameFonts[] = {
- {2},
- {0}
-};
-
-static GameSoundInfo ITEWINDEMO1_GameSound = {
- kSoundPCM,
- 22050,
- 8,
- false,
- false,
- false
-};
-
-static GameSoundInfo ITEWINDEMO2_GameVoice = {
- kSoundVOX,
- 22050,
- 16,
- false,
- false,
- true
-};
-
-static GameSoundInfo ITEWINDEMO2_GameSound = {
- kSoundPCM,
- 22050,
- 16,
- false,
- false,
- true
-};
-
-// Inherit the Earth - Wyrmkeep Mac Demo version
-static GameFileDescription ITE_MACDEMO2_GameFiles[] = {
- {"ited.rsc", GAME_RESOURCEFILE, "addfc9d82bc2fa1f4cab23743c652c08"},
- {"scriptsd.rsc", GAME_SCRIPTFILE, "fded5c59b8b7c5976229f960d21e6b0b"},
- {"soundsd.rsc", GAME_SOUNDFILE, "b3a831fbed337d1f1300fee1dd474f6c"},
- {"voicesd.rsc", GAME_VOICEFILE, "e139d86bab2ee8ba3157337f894a92d4"},
- {"musicd.rsc", GAME_MUSICFILE, "495bdde51fd9f4bea2b9c911091b1ab2"}
-};
-
-static GameFileDescription ITE_MACDEMO1_GameFiles[] = {
- {"ited.rsc", GAME_RESOURCEFILE, "addfc9d82bc2fa1f4cab23743c652c08"},
- {"scriptsd.rsc", GAME_SCRIPTFILE, "fded5c59b8b7c5976229f960d21e6b0b"},
- {"soundsd.rsc", GAME_SOUNDFILE, "b3a831fbed337d1f1300fee1dd474f6c"},
- {"voicesd.rsc", GAME_VOICEFILE, "e139d86bab2ee8ba3157337f894a92d4"},
- {"musicd.rsc", GAME_MUSICFILE, "1a91cd60169f367ecb6c6e058d899b2f"}
-};
-
-static GameSoundInfo ITEMACDEMO_GameVoice = {
- kSoundVOX,
- 22050,
- 16,
- false,
- false,
- true
-};
-
-static GameSoundInfo ITEMACDEMO_GameSound = {
- kSoundPCM,
- 22050,
- 16,
- false,
- true,
- true
-};
-
-static GameSoundInfo ITEMACDEMO_GameMusic = {
- kSoundPCM,
- 11025,
- 16,
- false,
- false,
- true
-};
-
-// Inherit the Earth - Wyrmkeep Linux Demo version
-static GameFileDescription ITE_LINDEMO_GameFiles[] = {
- {"ited.rsc", GAME_RESOURCEFILE, "3a450852cbf3c80773984d565647e6ac"},
- {"scriptsd.rsc", GAME_SCRIPTFILE, "3f12b67fa93e56e1a6be39d2921d80bb"},
- {"soundsd.rsc", GAME_SOUNDFILE, "95a6c148e22e99a8c243f2978223583c"},
- {"voicesd.rsc", GAME_VOICEFILE, "e139d86bab2ee8ba3157337f894a92d4"},
- {"musicd.rsc", GAME_MUSICFILE, "d6454756517f042f01210458abe8edd4"}
-};
-
-static GameSoundInfo ITELINDEMO_GameMusic = {
- kSoundPCM,
- 11025,
- 16,
- true,
- false,
- true
-};
-
-// Inherit the Earth - Wyrmkeep Linux version
-
-static GameFileDescription ITE_LINCD_GameFiles[] = {
- {"ite.rsc", GAME_RESOURCEFILE, "8f4315a9bb10ec839253108a032c8b54"},
- {"scripts.rsc", GAME_SCRIPTFILE, "a891405405edefc69c9d6c420c868b84"},
- {"sounds.rsc", GAME_SOUNDFILE, "e2ccb61c325d6d1ead3be0e731fe29fe"},
- {"voices.rsc", GAME_VOICEFILE, "41bb6b95d792dde5196bdb78740895a6"},
- {"music.rsc", GAME_MUSICFILE, "d6454756517f042f01210458abe8edd4"}
-};
-
-// Inherit the Earth - Wyrmkeep combined Windows/Mac/Linux version. This
-// version is different from the other Wyrmkeep re-releases in that it does
-// not have any substitute files. Presumably the ite.rsc file has been
-// modified to include the Wyrmkeep changes. The resource files are little-
-// endian, except for the voice file which is big-endian.
-
-static GameFileDescription ITE_MULTICD_GameFiles[] = {
- {"ite.rsc", GAME_RESOURCEFILE, "a6433e34b97b15e64fe8214651012db9"},
- {"scripts.rsc", GAME_SCRIPTFILE, "a891405405edefc69c9d6c420c868b84"},
- {"sounds.rsc", GAME_SOUNDFILE, "e2ccb61c325d6d1ead3be0e731fe29fe"},
- {"inherit the earth voices", GAME_VOICEFILE | GAME_SWAPENDIAN, "c14c4c995e7a0d3828e3812a494301b7"},
- {"music.rsc", GAME_MUSICFILE, "d6454756517f042f01210458abe8edd4"}
-};
-
-static GameFileDescription ITE_MACCD_G_GameFiles[] = {
- {"ite resources.bin", GAME_RESOURCEFILE | GAME_MACBINARY, "0bd506aa887bfc7965f695c6bd28237d"},
- {"ite scripts.bin", GAME_SCRIPTFILE | GAME_MACBINARY, "af0d7a2588e09ad3ecbc5b474ea238bf"},
- {"ite sounds.bin", GAME_SOUNDFILE | GAME_MACBINARY, "441426c6bb2a517f65c7e49b57f7a345"},
- {"ite music.bin", GAME_MUSICFILE_GM | GAME_MACBINARY, "c1d20324b7cdf1650e67061b8a93251c"},
- {"ite voices.bin", GAME_VOICEFILE | GAME_MACBINARY, "dba92ae7d57e942250fe135609708369"}
-};
-
-static GameSoundInfo ITEMACCD_G_GameSound = {
- kSoundMacPCM,
- 22050,
- 8,
- false,
- false,
- false
-};
-
-// Inherit the Earth - Mac Wyrmkeep version
-static GameFileDescription ITE_MACCD_GameFiles[] = {
- {"ite.rsc", GAME_RESOURCEFILE, "4f7fa11c5175980ed593392838523060"},
- {"scripts.rsc", GAME_SCRIPTFILE, "adf1f46c1d0589083996a7060c798ad0"},
- {"sounds.rsc", GAME_SOUNDFILE, "95863b89a0916941f6c5e1789843ba14"},
- {"inherit the earth voices", GAME_VOICEFILE, "c14c4c995e7a0d3828e3812a494301b7"},
- {"music.rsc", GAME_MUSICFILE, "1a91cd60169f367ecb6c6e058d899b2f"}
-};
-
-static GameSoundInfo ITEMACCD_GameSound = {
- kSoundPCM,
- 22050,
- 16,
- false,
- true,
- true
-};
-
-static GameSoundInfo ITEMACCD_GameMusic = {
- kSoundPCM,
- 11025,
- 16,
- true,
- false,
- true
-};
-
-// Inherit the Earth - Diskette version
-static GameFileDescription ITE_DISK_DE_GameFiles[] = {
- {"ite.rsc", GAME_RESOURCEFILE, "869fc23c8f38f575979ec67152914fee"},
- {"scripts.rsc", GAME_SCRIPTFILE, "516f7330f8410057b834424ea719d1ef"},
- {"voices.rsc", GAME_SOUNDFILE | GAME_VOICEFILE, "0c9113e630f97ef0996b8c3114badb08"}
-};
-
-static GameFileDescription ITE_DISK_G_GameFiles[] = {
- {"ite.rsc", GAME_RESOURCEFILE, "8f4315a9bb10ec839253108a032c8b54"},
- {"scripts.rsc", GAME_SCRIPTFILE, "516f7330f8410057b834424ea719d1ef"},
- {"voices.rsc", GAME_SOUNDFILE | GAME_VOICEFILE, "c46e4392fcd2e89bc91e5567db33b62d"}
-};
-
-static GameFileDescription ITE_DISK_DE2_GameFiles[] = {
- {"ite.rsc", GAME_RESOURCEFILE, "869fc23c8f38f575979ec67152914fee"},
- {"scripts.rsc", GAME_SCRIPTFILE, "516f7330f8410057b834424ea719d1ef"},
- {"voices.rsc", GAME_SOUNDFILE | GAME_VOICEFILE, "0c9113e630f97ef0996b8c3114badb08"},
- {"music.rsc", GAME_MUSICFILE, "d6454756517f042f01210458abe8edd4"}
-};
-
-static GameFileDescription ITE_DISK_G2_GameFiles[] = {
- {"ite.rsc", GAME_RESOURCEFILE, "8f4315a9bb10ec839253108a032c8b54"},
- {"scripts.rsc", GAME_SCRIPTFILE, "516f7330f8410057b834424ea719d1ef"},
- {"voices.rsc", GAME_SOUNDFILE | GAME_VOICEFILE, "c46e4392fcd2e89bc91e5567db33b62d"},
- {"music.rsc", GAME_MUSICFILE, "d6454756517f042f01210458abe8edd4"}
-};
-
-static GameFontDescription ITEDISK_GameFonts[] = {
- {2},
- {0},
- {1}
-};
-
-static GameSoundInfo ITEDISK_GameSound = {
- kSoundVOC,
- -1,
- -1,
- false,
- false,
- true
-};
-
-// Inherit the Earth - CD Enhanced version
-static GameFileDescription ITE_WINCD_GameFiles[] = {
- {"ite.rsc", GAME_RESOURCEFILE, "8f4315a9bb10ec839253108a032c8b54"},
- {"scripts.rsc", GAME_SCRIPTFILE, "a891405405edefc69c9d6c420c868b84"},
- {"sounds.rsc", GAME_SOUNDFILE, "e2ccb61c325d6d1ead3be0e731fe29fe"},
- {"voices.rsc", GAME_VOICEFILE, "41bb6b95d792dde5196bdb78740895a6"}
-};
-
-static GameFileDescription ITE_CD_G_GameFiles[] = {
- {"ite.rsc", GAME_RESOURCEFILE, "8f4315a9bb10ec839253108a032c8b54"},
- {"scripts.rsc", GAME_SCRIPTFILE, "50a0d2d7003c926a3832d503c8534e90"},
- {"sounds.rsc", GAME_SOUNDFILE, "e2ccb61c325d6d1ead3be0e731fe29fe"},
- {"voices.rsc", GAME_VOICEFILE, "41bb6b95d792dde5196bdb78740895a6"}
-};
-
-// reported by mld. Bestsellergamers cover disk
-static GameFileDescription ITE_CD_DE_GameFiles[] = {
- {"ite.rsc", GAME_RESOURCEFILE, "869fc23c8f38f575979ec67152914fee"},
- {"scripts.rsc", GAME_SCRIPTFILE, "a891405405edefc69c9d6c420c868b84"},
- {"sounds.rsc", GAME_SOUNDFILE, "e2ccb61c325d6d1ead3be0e731fe29fe"},
- {"voices.rsc", GAME_VOICEFILE, "2fbad5d10b9b60a3415dc4aebbb11718"}
-};
-
-static GameFileDescription ITE_CD_GameFiles[] = {
- {"ite.rsc", GAME_RESOURCEFILE, "8f4315a9bb10ec839253108a032c8b54"},
- {"scripts.rsc", GAME_SCRIPTFILE, "a891405405edefc69c9d6c420c868b84"},
- {"sounds.rsc", GAME_SOUNDFILE, "e2ccb61c325d6d1ead3be0e731fe29fe"},
- {"voices.rsc", GAME_VOICEFILE, "41bb6b95d792dde5196bdb78740895a6"}
-};
-
-
-static GameFileDescription ITE_CD_G2_GameFiles[] = {
- {"ite.rsc", GAME_RESOURCEFILE, "8f4315a9bb10ec839253108a032c8b54"},
- {"scripts.rsc", GAME_SCRIPTFILE, "50a0d2d7003c926a3832d503c8534e90"},
- {"sounds.rsc", GAME_SOUNDFILE, "e2ccb61c325d6d1ead3be0e731fe29fe"},
- {"voices.rsc", GAME_VOICEFILE, "41bb6b95d792dde5196bdb78740895a6"},
- {"music.rsc", GAME_MUSICFILE, "d6454756517f042f01210458abe8edd4"}
-};
-
-static GameFileDescription ITE_CD_DE2_GameFiles[] = {
- {"ite.rsc", GAME_RESOURCEFILE, "869fc23c8f38f575979ec67152914fee"},
- {"scripts.rsc", GAME_SCRIPTFILE, "a891405405edefc69c9d6c420c868b84"},
- {"sounds.rsc", GAME_SOUNDFILE, "e2ccb61c325d6d1ead3be0e731fe29fe"},
- {"voices.rsc", GAME_VOICEFILE, "2fbad5d10b9b60a3415dc4aebbb11718"},
- {"music.rsc", GAME_MUSICFILE, "d6454756517f042f01210458abe8edd4"}
-};
-
-
-static GameFontDescription ITECD_GameFonts[] = {
- {2},
- {0},
- {1}
-};
-
-static GameSoundInfo ITECD_GameSound = {
- kSoundPCM,
- 22050,
- 16,
- false,
- false,
- true
-};
-
-static GamePatchDescription ITEWinPatch1_Files[] = {
- { "cave.mid", GAME_RESOURCEFILE, 9, NULL},
- { "intro.mid", GAME_RESOURCEFILE, 10, NULL},
- { "fvillage.mid", GAME_RESOURCEFILE, 11, NULL},
- { "elkhall.mid", GAME_RESOURCEFILE, 12, NULL},
- { "mouse.mid", GAME_RESOURCEFILE, 13, NULL},
- { "darkclaw.mid", GAME_RESOURCEFILE, 14, NULL},
- { "birdchrp.mid", GAME_RESOURCEFILE, 15, NULL},
- { "orbtempl.mid", GAME_RESOURCEFILE, 16, NULL},
- { "spooky.mid", GAME_RESOURCEFILE, 17, NULL},
- { "catfest.mid", GAME_RESOURCEFILE, 18, NULL},
- { "elkfanfare.mid", GAME_RESOURCEFILE, 19, NULL},
- { "bcexpl.mid", GAME_RESOURCEFILE, 20, NULL},
- { "boargtnt.mid", GAME_RESOURCEFILE, 21, NULL},
- { "boarking.mid", GAME_RESOURCEFILE, 22, NULL},
- { "explorea.mid", GAME_RESOURCEFILE, 23, NULL},
- { "exploreb.mid", GAME_RESOURCEFILE, 24, NULL},
- { "explorec.mid", GAME_RESOURCEFILE, 25, NULL},
- { "sunstatm.mid", GAME_RESOURCEFILE, 26, NULL},
- { "nitstrlm.mid", GAME_RESOURCEFILE, 27, NULL},
- { "humruinm.mid", GAME_RESOURCEFILE, 28, NULL},
- { "damexplm.mid", GAME_RESOURCEFILE, 29, NULL},
- { "tychom.mid", GAME_RESOURCEFILE, 30, NULL},
- { "kitten.mid", GAME_RESOURCEFILE, 31, NULL},
- { "sweet.mid", GAME_RESOURCEFILE, 32, NULL},
- { "brutalmt.mid", GAME_RESOURCEFILE, 33, NULL},
- { "shiala.mid", GAME_RESOURCEFILE, 34, NULL},
-
- { "wyrm.pak", GAME_RESOURCEFILE, 1529, NULL},
- { "wyrm1.dlt", GAME_RESOURCEFILE, 1530, NULL},
- { "wyrm2.dlt", GAME_RESOURCEFILE, 1531, NULL},
- { "wyrm3.dlt", GAME_RESOURCEFILE, 1532, NULL},
- { "wyrm4.dlt", GAME_RESOURCEFILE, 1533, NULL},
- { "credit3n.dlt", GAME_RESOURCEFILE, 1796, NULL},
- { "credit4n.dlt", GAME_RESOURCEFILE, 1797, NULL},
- { "p2_a.voc", GAME_VOICEFILE, 4, NULL}
-};
-
-static GamePatchDescription ITEWinPatch2_Files[] = {
- { "cave.mid", GAME_RESOURCEFILE, 9, NULL},
- { "intro.mid", GAME_RESOURCEFILE, 10, NULL},
- { "fvillage.mid", GAME_RESOURCEFILE, 11, NULL},
- { "elkfanfare.mid", GAME_RESOURCEFILE, 19, NULL},
- { "bcexpl.mid", GAME_RESOURCEFILE, 20, NULL},
- { "boargtnt.mid", GAME_RESOURCEFILE, 21, NULL},
- { "explorea.mid", GAME_RESOURCEFILE, 23, NULL},
- { "sweet.mid", GAME_RESOURCEFILE, 32, NULL},
-
- { "wyrm.pak", GAME_RESOURCEFILE, 1529, NULL},
- { "wyrm1.dlt", GAME_RESOURCEFILE, 1530, NULL},
- { "wyrm2.dlt", GAME_RESOURCEFILE, 1531, NULL},
- { "wyrm3.dlt", GAME_RESOURCEFILE, 1532, NULL},
- { "p2_a.iaf", GAME_VOICEFILE, 4, &ITECD_GameSound}
-/* boarhall.bbm
- elkenter.bbm
- ferrets.bbm
- ratdoor.bbm
- sanctuar.bbm
- tycho.bbm*/
-};
-
-static GamePatchDescription ITEMacPatch_Files[] = {
- { "wyrm.pak", GAME_RESOURCEFILE, 1529, NULL},
- { "wyrm1.dlt", GAME_RESOURCEFILE, 1530, NULL},
- { "wyrm2.dlt", GAME_RESOURCEFILE, 1531, NULL},
- { "wyrm3.dlt", GAME_RESOURCEFILE, 1532, NULL},
- { "wyrm4.dlt", GAME_RESOURCEFILE, 1533, NULL},
- { "credit3m.dlt", GAME_RESOURCEFILE, 1796, NULL},
- { "credit4m.dlt", GAME_RESOURCEFILE, 1797, NULL},
- { "p2_a.iaf", GAME_VOICEFILE, 4, &ITEMACCD_GameSound}
-};
-
-static GamePatchDescription ITELinPatch_Files[] = {
- { "wyrm.pak", GAME_RESOURCEFILE, 1529, NULL},
- { "wyrm1.dlt", GAME_RESOURCEFILE, 1530, NULL},
- { "wyrm2.dlt", GAME_RESOURCEFILE, 1531, NULL},
- { "wyrm3.dlt", GAME_RESOURCEFILE, 1532, NULL},
- { "credit3n.dlt", GAME_RESOURCEFILE, 1796, NULL},
- { "credit4n.dlt", GAME_RESOURCEFILE, 1797, NULL},
- { "P2_A.iaf", GAME_VOICEFILE, 4, &ITECD_GameSound}
-};
-
-// IHNM section
-
-static PanelButton IHNM_MainPanelButtons[] = {
- {kPanelButtonVerb, 106,12, 114,30, kVerbIHNMWalk,'w',0, 0,1,0},
- {kPanelButtonVerb, 106,44, 114,30, kVerbIHNMLookAt,'l',0, 2,3,0},
- {kPanelButtonVerb, 106,76, 114,30, kVerbIHNMTake,'k',0, 4,5,0},
- {kPanelButtonVerb, 106,108, 114,30, kVerbIHNMUse,'u',0, 6,7,0},
- {kPanelButtonVerb, 223,12, 114,30, kVerbIHNMTalkTo,'t',0, 8,9,0},
- {kPanelButtonVerb, 223,44, 114,30, kVerbIHNMSwallow,'s',0, 10,11,0},
- {kPanelButtonVerb, 223,76, 114,30, kVerbIHNMGive,'g',0, 12,13,0},
- {kPanelButtonVerb, 223,108, 114,30, kVerbIHNMPush,'p',0, 14,15,0},
- {kPanelButtonArrow, 606,22, 20,25, -1,'[',0, 0,0,0}, //TODO: arrow Sprite Numbers
- {kPanelButtonArrow, 606,108, 20,25, 1,']',0, 0,0,0},
-
- {kPanelButtonInventory, 357 + 64*0,18, 54,54, 0,'-',0, 0,0,0},
- {kPanelButtonInventory, 357 + 64*1,18, 54,54, 1,'-',0, 0,0,0},
- {kPanelButtonInventory, 357 + 64*2,18, 54,54, 2,'-',0, 0,0,0},
- {kPanelButtonInventory, 357 + 64*3,18, 54,54, 3,'-',0, 0,0,0},
-
- {kPanelButtonInventory, 357 + 64*0,80, 54,54, 4,'-',0, 0,0,0},
- {kPanelButtonInventory, 357 + 64*1,80, 54,54, 5,'-',0, 0,0,0},
- {kPanelButtonInventory, 357 + 64*2,80, 54,54, 6,'-',0, 0,0,0},
- {kPanelButtonInventory, 357 + 64*3,80, 54,54, 7,'-',0, 0,0,0}
-};
-
-static PanelButton IHNM_ConversePanelButtons[] = {
- {kPanelButtonConverseText, 117,18 + IHNM_CONVERSE_TEXT_HEIGHT * 0, IHNM_CONVERSE_MAX_TEXT_WIDTH,IHNM_CONVERSE_TEXT_HEIGHT, 0,'1',0, 0,0,0},
- {kPanelButtonConverseText, 52,18 + IHNM_CONVERSE_TEXT_HEIGHT * 1, IHNM_CONVERSE_MAX_TEXT_WIDTH,IHNM_CONVERSE_TEXT_HEIGHT, 1,'2',0, 0,0,0},
- {kPanelButtonConverseText, 52,18 + IHNM_CONVERSE_TEXT_HEIGHT * 2, IHNM_CONVERSE_MAX_TEXT_WIDTH,IHNM_CONVERSE_TEXT_HEIGHT, 2,'3',0, 0,0,0},
- {kPanelButtonConverseText, 52,18 + IHNM_CONVERSE_TEXT_HEIGHT * 3, IHNM_CONVERSE_MAX_TEXT_WIDTH,IHNM_CONVERSE_TEXT_HEIGHT, 3,'4',0, 0,0,0},
- //.....
- {kPanelButtonArrow, 606,22, 20,25, -1,'[',0, 0,0,0}, //TODO: arrow Sprite Numbers
- {kPanelButtonArrow, 606,108, 20,25, 1,']',0, 0,0,0}
-};
-
-static PanelButton IHNM_OptionPanelButtons[] = {
- {kPanelButtonArrow, 0,0, 0,0, 0,'-',0, 0,0,0}, //TODO
-};
-
-static PanelButton IHNM_QuitPanelButtons[] = {
- {kPanelButtonArrow, 0,0, 0,0, 0,'-',0, 0,0,0}, //TODO
-};
-
-static PanelButton IHNM_LoadPanelButtons[] = {
- {kPanelButtonArrow, 0,0, 0,0, 0,'-',0, 0,0,0}, //TODO
-};
-
-static PanelButton IHNM_SavePanelButtons[] = {
- {kPanelButtonArrow, 0,0, 0,0, 0,'-',0, 0,0,0}, //TODO
-};
-
-
-static GameDisplayInfo IHNM_DisplayInfo = { //TODO: fill it all
- 640, 480, // logical width&height
-
- 0, // scene path y offset
- 304, // scene height
-
- 0, // status x offset
- 304, // status y offset
- 616, // status width
- 24, // status height
- 8, // status text y offset
- 253, // status text color
- 250, // status BG color
- 616, 303, // save reminder pos
- 24, 24, // save reminder w&h
- 0,1, // save reminder sprite numbers
-
- 11, 12, // left portrait x, y offset
- -1, -1, // right portrait x, y offset
-
- -1, -1, // inventory Up & Down button indexies
- 2, 4, // inventory rows, columns
-
- 0, 328, // main panel offsets
- ARRAYSIZE(IHNM_MainPanelButtons),
- IHNM_MainPanelButtons,
-
- -1, -1, // converse Up & Down button indexies
-
- IHNM_CONVERSE_MAX_TEXT_WIDTH,
- IHNM_CONVERSE_TEXT_HEIGHT,
- IHNM_CONVERSE_TEXT_LINES,
- 0, 328, // converse panel offsets
- ARRAYSIZE(IHNM_ConversePanelButtons),
- IHNM_ConversePanelButtons,
-
- -1, -1, // save file index
- 0, // optionSaveFileVisible
- 0, 0, // option panel offsets
- ARRAYSIZE(IHNM_OptionPanelButtons),
- IHNM_OptionPanelButtons,
-
- 0,0, // quit panel offsets
- 0,0, // quit panel width & height
- ARRAYSIZE(IHNM_QuitPanelButtons),
- IHNM_QuitPanelButtons,
-
- 0, 0, // load panel offsets
- 0, 0, // load panel width & height
- ARRAYSIZE(IHNM_LoadPanelButtons),
- IHNM_LoadPanelButtons,
-
- -1, // save edit index
- 0, 0, // save panel offsets
- 0, 0, // save panel width & height
- ARRAYSIZE(IHNM_SavePanelButtons),
- IHNM_SavePanelButtons,
-
- // No protection panel in IHNM
- -1, // protect edit index
- 0, 0, // protect panel offsets
- 0, 0, // protect panel width & height
- ARRAYSIZE(IHNM_SavePanelButtons),
- IHNM_SavePanelButtons
-};
-
-static GameResourceDescription IHNM_Resources = {
- RID_IHNM_SCENE_LUT, // Scene lookup table RN
- RID_IHNM_SCRIPT_LUT, // Script lookup table RN
- RID_IHNM_MAIN_PANEL,
- RID_IHNM_CONVERSE_PANEL,
- RID_IHNM_OPTION_PANEL,
- RID_IHNM_MAIN_SPRITES,
- RID_IHNM_MAIN_PANEL_SPRITES,
- 0,
- RID_IHNM_MAIN_STRINGS,
- 0
-};
-
-// I Have No Mouth and I Must Scream - Demo version
-static GameFileDescription IHNM_DEMO_GameFiles[] = {
- {"scream.res", GAME_RESOURCEFILE, "46bbdc65d164ba7e89836a0935eec8e6"},
- {"scripts.res", GAME_SCRIPTFILE, "9626bda8978094ff9b29198bc1ed5f9a"},
- {"sfx.res", GAME_SOUNDFILE, "1c610d543f32ec8b525e3f652536f269"},
- {"voicesd.res", GAME_VOICEFILE, "3bbc16a8f741dbb511da506c660a0b54"}
-};
-
-// I Have No Mouth and I Must Scream - Retail CD version
-
-static GameFileDescription IHNM_CD_GameFiles[] = {
- {"musicfm.res", GAME_MUSICFILE_FM, "0439083e3dfdc51b486071d45872ae52"},
- {"musicgm.res", GAME_MUSICFILE_GM, "80f875a1fb384160d1f4b27166eef583"},
- {"scream.res", GAME_RESOURCEFILE, "46bbdc65d164ba7e89836a0935eec8e6"},
- {"patch.re_", GAME_PATCHFILE | GAME_RESOURCEFILE, "58b79e61594779513c7f2d35509fa89e"},
- {"scripts.res", GAME_SCRIPTFILE, "be38bbc5a26be809dbf39f13befebd01"},
- {"sfx.res", GAME_SOUNDFILE, "1c610d543f32ec8b525e3f652536f269"},
- {"voicess.res", GAME_VOICEFILE, "54b1f2013a075338ceb0e258d97808bd"}, //order of voice bank file is important
- {"voices1.res", GAME_VOICEFILE, "fc6440b38025f4b2cc3ff55c3da5c3eb"},
- {"voices2.res", GAME_VOICEFILE, "b37f10fd1696ade7d58704ccaaebceeb"},
- {"voices3.res", GAME_VOICEFILE, "3bbc16a8f741dbb511da506c660a0b54"},
- {"voices4.res", GAME_VOICEFILE, "ebfa160122d2247a676ca39920e5d481"},
- {"voices5.res", GAME_VOICEFILE, "1f501ce4b72392bdd1d9ec38f6eec6da"},
- {"voices6.res", GAME_VOICEFILE, "f580ed7568c7d6ef34e934ba20adf834"}
-};
-
-static GameFileDescription IHNM_CD_ES_GameFiles[] = {
- {"musicfm.res", GAME_MUSICFILE_FM, "0439083e3dfdc51b486071d45872ae52"},
- {"musicgm.res", GAME_MUSICFILE_GM, "80f875a1fb384160d1f4b27166eef583"},
- {"scream.res", GAME_RESOURCEFILE, "c92370d400e6f2a3fc411c3729d09224"},
- {"patch.re_", GAME_PATCHFILE | GAME_RESOURCEFILE, "58b79e61594779513c7f2d35509fa89e"},
- {"scripts.res", GAME_SCRIPTFILE, "be38bbc5a26be809dbf39f13befebd01"},
- {"sfx.res", GAME_SOUNDFILE, "1c610d543f32ec8b525e3f652536f269"},
- {"voicess.res", GAME_VOICEFILE, "d869de9883c8faea7f687217a9ec7057"}, //order of voice bank file is important
- {"voices1.res", GAME_VOICEFILE, "dc6a34e3d1668730ea46815a92c7847f"},
- {"voices2.res", GAME_VOICEFILE, "dc6a5fa7a4cdc2ca5a6fd924e969986c"},
- {"voices3.res", GAME_VOICEFILE, "dc6a5fa7a4cdc2ca5a6fd924e969986c"},
- {"voices4.res", GAME_VOICEFILE, "0f87400b804232a58dd22e404420cc45"},
- {"voices5.res", GAME_VOICEFILE, "172668cfc5d8c305cb5b1a9b4d995fc0"},
- {"voices6.res", GAME_VOICEFILE, "96c9bda9a5f41d6bc232ed7bf6d371d9"}
-};
-
-static GameFileDescription IHNM_CD_RU_GameFiles[] = {
- {"musicfm.res", GAME_MUSICFILE_FM, "0439083e3dfdc51b486071d45872ae52"},
- {"musicgm.res", GAME_MUSICFILE_GM, "80f875a1fb384160d1f4b27166eef583"},
- {"scream.res", GAME_RESOURCEFILE, "46bbdc65d164ba7e89836a0935eec8e6"},
- {"patch.re_", GAME_PATCHFILE | GAME_RESOURCEFILE, "58b79e61594779513c7f2d35509fa89e"},
- {"scripts.res", GAME_SCRIPTFILE, "be38bbc5a26be809dbf39f13befebd01"},
- {"sfx.res", GAME_SOUNDFILE, "1c610d543f32ec8b525e3f652536f269"},
- {"voicess.res", GAME_VOICEFILE, "9df7cd3b18ddaa16b5291b3432567036"}, //order of voice bank file is important
- {"voices1.res", GAME_VOICEFILE, "d6100d2dc3b2b9f2e1ad247f613dce9b"},
- {"voices2.res", GAME_VOICEFILE, "84f6f48ecc2832841ea6417a9a379430"},
- {"voices3.res", GAME_VOICEFILE, "ebb9501283047f27a0f54e27b3c8ba1e"},
- {"voices4.res", GAME_VOICEFILE, "4c145da5fa6d1306162a7ca8ce5a4f2e"},
- {"voices5.res", GAME_VOICEFILE, "871a559644281917677eca4af1b05620"},
- {"voices6.res", GAME_VOICEFILE, "211be5c24f066d69a2f6cfa953acfba6"}
-};
-
-// I Have No Mouth and I Must Scream - Censored CD version (without Nimdok)
-
-// Reported by mld. German Retail
-static GameFileDescription IHNM_CD_DE_GameFiles[] = {
- {"musicfm.res", GAME_MUSICFILE_FM, "0439083e3dfdc51b486071d45872ae52"},
- {"musicgm.res", GAME_MUSICFILE_GM, "80f875a1fb384160d1f4b27166eef583"},
- {"scream.res", GAME_RESOURCEFILE, "c92370d400e6f2a3fc411c3729d09224"},
- {"scripts.res", GAME_SCRIPTFILE, "32aa01a89937520fe0ea513950117292"},
- {"patch.re_", GAME_PATCHFILE | GAME_RESOURCEFILE, "58b79e61594779513c7f2d35509fa89e"},
- {"sfx.res", GAME_SOUNDFILE, "1c610d543f32ec8b525e3f652536f269"},
- {"voicess.res", GAME_VOICEFILE, "8b09a196a52627cacb4eab13bfe0b2c3"}, //order of voice bank file is important
- {"voices1.res", GAME_VOICEFILE, "424971e1e2373187c3f5734fe36071a2"},
- {"voices2.res", GAME_VOICEFILE, "c270e0980782af43641a86e4a14e2a32"},
- {"voices3.res", GAME_VOICEFILE, "49e42befea883fd101ec3d0f5d0647b9"},
- {"voices5.res", GAME_VOICEFILE, "c477443c52a0aa56e686ebd8d051e4ab"},
- {"voices6.res", GAME_VOICEFILE, "2b9aea838f74b4eecfb29a8f205a2bd4"}
-};
-
-static GameFileDescription IHNM_CD_FR_GameFiles[] = {
- {"musicfm.res", GAME_MUSICFILE_FM, "0439083e3dfdc51b486071d45872ae52"},
- {"musicgm.res", GAME_MUSICFILE_GM, "80f875a1fb384160d1f4b27166eef583"},
- {"scream.res", GAME_RESOURCEFILE, "c92370d400e6f2a3fc411c3729d09224"},
- {"scripts.res", GAME_SCRIPTFILE, "32aa01a89937520fe0ea513950117292"},
- {"patch.re_", GAME_PATCHFILE | GAME_RESOURCEFILE, "58b79e61594779513c7f2d35509fa89e"},
- {"sfx.res", GAME_SOUNDFILE, "1c610d543f32ec8b525e3f652536f269"},
- {"voicess.res", GAME_VOICEFILE, "b8642e943bbebf89cef2f48b31cb4305"}, //order of voice bank file is important
- {"voices1.res", GAME_VOICEFILE, "424971e1e2373187c3f5734fe36071a2"},
- {"voices2.res", GAME_VOICEFILE, "c2d93a35d2c2def9c3d6d242576c794b"},
- {"voices3.res", GAME_VOICEFILE, "49e42befea883fd101ec3d0f5d0647b9"},
- {"voices5.res", GAME_VOICEFILE, "f4c415de7c03de86b73f9a12b8bd632f"},
- {"voices6.res", GAME_VOICEFILE, "3fc5358a5d8eee43bdfab2740276572e"}
-};
-
-static GameFontDescription IHNMDEMO_GameFonts[] = {
- {2},
- {3},
- {4}
-};
-
-static GameFontDescription IHNMCD_GameFonts[] = {
- {2},
- {3},
- {4},
- {5},
- {6}, // kIHNMFont8
- {7},
- {8} // kIHNMMainFont
-};
-
-static GameSoundInfo IHNM_GameSound = {
- kSoundWAV,
- -1,
- -1,
- false,
- false,
- true
-};
-
-#define FILE_MD5_BYTES 5000
-
-static GameDescription gameDescriptions[] = {
- // Inherit the earth - DOS Demo version
- // sound unchecked
- {
- "ite",
- GType_ITE,
- GID_ITE_DEMO_G, // Game id
- "Demo", // Game title
- &ITE_DisplayInfo,
- ITE_DEFAULT_SCENE, // Starting scene number
- &ITEDemo_Resources,
- ARRAYSIZE(ITE_DEMO_G_GameFiles), // Game datafiles
- ITE_DEMO_G_GameFiles,
- ARRAYSIZE(ITEDEMO_GameFonts),
- ITEDEMO_GameFonts,
- &ITEDEMO_GameSound,
- &ITEDEMO_GameSound,
- NULL,
- 0,
- NULL,
- 0, // features
- Common::EN_ANY,
- Common::kPlatformPC,
- },
-
- // Inherit the earth - MAC Demo version
- {
- "ite",
- GType_ITE,
- GID_ITE_MACDEMO2,
- "Demo",
- &ITE_DisplayInfo,
- ITE_DEFAULT_SCENE,
- &ITE_Resources,
- ARRAYSIZE(ITE_MACDEMO2_GameFiles),
- ITE_MACDEMO2_GameFiles,
- ARRAYSIZE(ITEWINDEMO_GameFonts),
- ITEWINDEMO_GameFonts,
- &ITEMACDEMO_GameVoice,
- &ITEMACDEMO_GameSound,
- &ITEMACDEMO_GameMusic,
- ARRAYSIZE(ITEMacPatch_Files),
- ITEMacPatch_Files,
- GF_BIG_ENDIAN_DATA | GF_WYRMKEEP | GF_CD_FX | GF_SCENE_SUBSTITUTES,
- Common::EN_ANY,
- Common::kPlatformMacintosh,
- },
-
- // Inherit the earth - early MAC Demo version
- {
- "ite",
- GType_ITE,
- GID_ITE_MACDEMO1,
- "early Demo",
- &ITE_DisplayInfo,
- ITE_DEFAULT_SCENE,
- &ITE_Resources,
- ARRAYSIZE(ITE_MACDEMO1_GameFiles),
- ITE_MACDEMO1_GameFiles,
- ARRAYSIZE(ITEWINDEMO_GameFonts),
- ITEWINDEMO_GameFonts,
- &ITEMACDEMO_GameVoice,
- &ITEMACDEMO_GameSound,
- &ITEMACCD_GameMusic,
- ARRAYSIZE(ITEMacPatch_Files),
- ITEMacPatch_Files,
- GF_BIG_ENDIAN_DATA | GF_WYRMKEEP | GF_CD_FX,
- Common::EN_ANY,
- Common::kPlatformMacintosh,
- },
-
- // Inherit the earth - MAC CD Guild version
- {
- "ite",
- GType_ITE,
- GID_ITE_MACCD_G,
- "CD",
- &ITE_DisplayInfo,
- ITE_DEFAULT_SCENE,
- &ITE_Resources,
- ARRAYSIZE(ITE_MACCD_G_GameFiles),
- ITE_MACCD_G_GameFiles,
- ARRAYSIZE(ITEWINDEMO_GameFonts),
- ITEWINDEMO_GameFonts,
- &ITEMACCD_G_GameSound,
- &ITEMACCD_G_GameSound,
- NULL,
- 0,
- NULL,
- GF_BIG_ENDIAN_DATA | GF_CD_FX,
- Common::EN_ANY,
- Common::kPlatformMacintosh,
- },
-
- // Inherit the earth - MAC CD Wyrmkeep version
- {
- "ite",
- GType_ITE,
- GID_ITE_MACCD,
- "Wyrmkeep CD",
- &ITE_DisplayInfo,
- ITE_DEFAULT_SCENE,
- &ITE_Resources,
- ARRAYSIZE(ITE_MACCD_GameFiles),
- ITE_MACCD_GameFiles,
- ARRAYSIZE(ITEWINDEMO_GameFonts),
- ITEWINDEMO_GameFonts,
- &ITEMACCD_GameSound,
- &ITEMACCD_GameSound,
- &ITEMACCD_GameMusic,
- ARRAYSIZE(ITEMacPatch_Files),
- ITEMacPatch_Files,
- GF_BIG_ENDIAN_DATA | GF_WYRMKEEP | GF_CD_FX,
- Common::EN_ANY,
- Common::kPlatformMacintosh,
- },
-
- // Inherit the earth - Linux Demo version
- // Note: it should be before GID_ITE_WINDEMO2 version
- {
- "ite",
- GType_ITE,
- GID_ITE_LINDEMO,
- "Demo",
- &ITE_DisplayInfo,
- ITE_DEFAULT_SCENE,
- &ITE_Resources,
- ARRAYSIZE(ITE_LINDEMO_GameFiles),
- ITE_LINDEMO_GameFiles,
- ARRAYSIZE(ITEWINDEMO_GameFonts),
- ITEWINDEMO_GameFonts,
- &ITEWINDEMO2_GameVoice,
- &ITEWINDEMO2_GameSound,
- &ITELINDEMO_GameMusic,
- ARRAYSIZE(ITELinPatch_Files),
- ITELinPatch_Files,
- GF_WYRMKEEP | GF_CD_FX | GF_SCENE_SUBSTITUTES,
- Common::EN_ANY,
- Common::kPlatformLinux,
- },
-
- // Inherit the earth - Win32 Demo version
- {
- "ite",
- GType_ITE,
- GID_ITE_WINDEMO2,
- "Demo",
- &ITE_DisplayInfo,
- ITE_DEFAULT_SCENE,
- &ITE_Resources,
- ARRAYSIZE(ITE_WINDEMO2_GameFiles),
- ITE_WINDEMO2_GameFiles,
- ARRAYSIZE(ITEWINDEMO_GameFonts),
- ITEWINDEMO_GameFonts,
- &ITEWINDEMO2_GameVoice,
- &ITEWINDEMO2_GameSound,
- NULL,
- ARRAYSIZE(ITEWinPatch2_Files),
- ITEWinPatch2_Files,
- GF_WYRMKEEP | GF_CD_FX | GF_SCENE_SUBSTITUTES,
- Common::EN_ANY,
- Common::kPlatformWindows,
- },
-
- // Inherit the earth - early Win32 Demo version
- {
- "ite",
- GType_ITE,
- GID_ITE_WINDEMO1,
- "early Demo",
- &ITE_DisplayInfo,
- ITE_DEFAULT_SCENE,
- &ITE_Resources,
- ARRAYSIZE(ITE_WINDEMO1_GameFiles),
- ITE_WINDEMO1_GameFiles,
- ARRAYSIZE(ITEWINDEMO_GameFonts),
- ITEWINDEMO_GameFonts,
- &ITEWINDEMO1_GameSound,
- &ITEWINDEMO1_GameSound,
- NULL,
- ARRAYSIZE(ITEWinPatch1_Files),
- ITEWinPatch1_Files,
- GF_WYRMKEEP | GF_CD_FX,
- Common::EN_ANY,
- Common::kPlatformWindows,
- },
-
- // Inherit the earth - Wyrmkeep combined Windows/Mac/Linux CD
- {
- "ite",
- GType_ITE,
- GID_ITE_MULTICD,
- "Multi-OS CD Version",
- &ITE_DisplayInfo,
- ITE_DEFAULT_SCENE,
- &ITE_Resources,
- ARRAYSIZE(ITE_MULTICD_GameFiles),
- ITE_MULTICD_GameFiles,
- ARRAYSIZE(ITECD_GameFonts),
- ITECD_GameFonts,
- &ITEMACCD_GameSound,
- &ITECD_GameSound,
- &ITEMACCD_GameMusic,
- 0,
- NULL,
- GF_WYRMKEEP | GF_CD_FX,
- Common::EN_ANY,
- Common::kPlatformUnknown,
- },
-
- // Inherit the earth - Wyrmkeep Linux CD version
- {
- "ite",
- GType_ITE,
- GID_ITE_LINCD,
- "CD Version",
- &ITE_DisplayInfo,
- ITE_DEFAULT_SCENE,
- &ITE_Resources,
- ARRAYSIZE(ITE_LINCD_GameFiles),
- ITE_LINCD_GameFiles,
- ARRAYSIZE(ITECD_GameFonts),
- ITECD_GameFonts,
- &ITECD_GameSound,
- &ITECD_GameSound,
- &ITEMACCD_GameMusic,
- ARRAYSIZE(ITELinPatch_Files),
- ITELinPatch_Files,
- GF_WYRMKEEP | GF_CD_FX,
- Common::EN_ANY,
- Common::kPlatformLinux,
- },
-
- // Inherit the earth - Wyrmkeep Windows CD version
- {
- "ite",
- GType_ITE,
- GID_ITE_WINCD,
- "CD Version",
- &ITE_DisplayInfo,
- ITE_DEFAULT_SCENE,
- &ITE_Resources,
- ARRAYSIZE(ITE_WINCD_GameFiles),
- ITE_WINCD_GameFiles,
- ARRAYSIZE(ITECD_GameFonts),
- ITECD_GameFonts,
- &ITECD_GameSound,
- &ITECD_GameSound,
- NULL,
- ARRAYSIZE(ITEWinPatch1_Files),
- ITEWinPatch1_Files,
- GF_WYRMKEEP | GF_CD_FX,
- Common::EN_ANY,
- Common::kPlatformWindows,
- },
-
- // Inherit the earth - DOS CD version
- {
- "ite",
- GType_ITE,
- GID_ITE_CD_G,
- "CD Version",
- &ITE_DisplayInfo,
- ITE_DEFAULT_SCENE,
- &ITE_Resources,
- ARRAYSIZE(ITE_CD_G_GameFiles),
- ITE_CD_G_GameFiles,
- ARRAYSIZE(ITECD_GameFonts),
- ITECD_GameFonts,
- &ITECD_GameSound,
- &ITECD_GameSound,
- NULL,
- 0,
- NULL,
- GF_CD_FX,
- Common::EN_ANY,
- Common::kPlatformPC,
- },
-
- // Inherit the earth - DOS CD version with digital music
- {
- "ite",
- GType_ITE,
- GID_ITE_CD_G2,
- "CD Version",
- &ITE_DisplayInfo,
- ITE_DEFAULT_SCENE,
- &ITE_Resources,
- ARRAYSIZE(ITE_CD_G2_GameFiles),
- ITE_CD_G2_GameFiles,
- ARRAYSIZE(ITECD_GameFonts),
- ITECD_GameFonts,
- &ITECD_GameSound,
- &ITECD_GameSound,
- &ITEMACCD_GameMusic,
- 0,
- NULL,
- GF_CD_FX,
- Common::EN_ANY,
- Common::kPlatformPC,
- },
-
- // Inherit the earth - DOS CD German version
- {
- "ite",
- GType_ITE,
- GID_ITE_CD_DE,
- "CD Version",
- &ITE_DisplayInfo,
- ITE_DEFAULT_SCENE,
- &ITE_Resources,
- ARRAYSIZE(ITE_CD_DE_GameFiles),
- ITE_CD_DE_GameFiles,
- ARRAYSIZE(ITECD_GameFonts),
- ITECD_GameFonts,
- &ITECD_GameSound,
- &ITECD_GameSound,
- NULL,
- 0,
- NULL,
- GF_CD_FX,
- Common::DE_DEU,
- Common::kPlatformPC,
- },
-
- // Inherit the earth - DOS CD German version with digital music
- {
- "ite",
- GType_ITE,
- GID_ITE_CD_DE2,
- "CD Version",
- &ITE_DisplayInfo,
- ITE_DEFAULT_SCENE,
- &ITE_Resources,
- ARRAYSIZE(ITE_CD_DE2_GameFiles),
- ITE_CD_DE2_GameFiles,
- ARRAYSIZE(ITECD_GameFonts),
- ITECD_GameFonts,
- &ITECD_GameSound,
- &ITECD_GameSound,
- &ITEMACCD_GameMusic,
- 0,
- NULL,
- GF_CD_FX,
- Common::DE_DEU,
- Common::kPlatformPC,
- },
-
- // Inherit the earth - CD version
- {
- "ite",
- GType_ITE,
- GID_ITE_CD,
- "CD Version",
- &ITE_DisplayInfo,
- ITE_DEFAULT_SCENE,
- &ITE_Resources,
- ARRAYSIZE(ITE_CD_GameFiles),
- ITE_CD_GameFiles,
- ARRAYSIZE(ITECD_GameFonts),
- ITECD_GameFonts,
- &ITECD_GameSound,
- &ITECD_GameSound,
- NULL,
- 0,
- NULL,
- GF_CD_FX,
- Common::EN_ANY,
- Common::kPlatformPC,
- },
-
- // Inherit the earth - German Floppy version
- {
- "ite",
- GType_ITE,
- GID_ITE_DISK_DE,
- "Floppy",
- &ITE_DisplayInfo,
- ITE_DEFAULT_SCENE,
- &ITE_Resources,
- ARRAYSIZE(ITE_DISK_DE_GameFiles),
- ITE_DISK_DE_GameFiles,
- ARRAYSIZE(ITEDISK_GameFonts),
- ITEDISK_GameFonts,
- &ITEDISK_GameSound,
- &ITEDISK_GameSound,
- NULL,
- 0,
- NULL,
- 0,
- Common::DE_DEU,
- Common::kPlatformPC,
- },
-
- // Inherit the earth - German Floppy version with digital music
- {
- "ite",
- GType_ITE,
- GID_ITE_DISK_DE2,
- "Floppy",
- &ITE_DisplayInfo,
- ITE_DEFAULT_SCENE,
- &ITE_Resources,
- ARRAYSIZE(ITE_DISK_DE2_GameFiles),
- ITE_DISK_DE2_GameFiles,
- ARRAYSIZE(ITEDISK_GameFonts),
- ITEDISK_GameFonts,
- &ITEDISK_GameSound,
- &ITEDISK_GameSound,
- &ITEMACCD_GameMusic,
- 0,
- NULL,
- 0,
- Common::DE_DEU,
- Common::kPlatformPC,
- },
-
- // Inherit the earth - Disk version
- {
- "ite",
- GType_ITE,
- GID_ITE_DISK_G,
- "Floppy",
- &ITE_DisplayInfo,
- ITE_DEFAULT_SCENE,
- &ITE_Resources,
- ARRAYSIZE(ITE_DISK_G_GameFiles),
- ITE_DISK_G_GameFiles,
- ARRAYSIZE(ITEDISK_GameFonts),
- ITEDISK_GameFonts,
- &ITEDISK_GameSound,
- &ITEDISK_GameSound,
- NULL,
- 0,
- NULL,
- 0,
- Common::EN_ANY,
- Common::kPlatformPC,
- },
-
- // Inherit the earth - Disk version with digital music
- {
- "ite",
- GType_ITE,
- GID_ITE_DISK_G2,
- "Floppy",
- &ITE_DisplayInfo,
- ITE_DEFAULT_SCENE,
- &ITE_Resources,
- ARRAYSIZE(ITE_DISK_G2_GameFiles),
- ITE_DISK_G2_GameFiles,
- ARRAYSIZE(ITEDISK_GameFonts),
- ITEDISK_GameFonts,
- &ITEDISK_GameSound,
- &ITEDISK_GameSound,
- &ITEMACCD_GameMusic,
- 0,
- NULL,
- 0,
- Common::EN_ANY,
- Common::kPlatformPC,
- },
-
- // I Have No Mouth And I Must Scream - Demo version
- {
- "ihnm",
- GType_IHNM,
- GID_IHNM_DEMO,
- "Demo",
- &IHNM_DisplayInfo,
- 0,
- &IHNM_Resources,
- ARRAYSIZE(IHNM_DEMO_GameFiles),
- IHNM_DEMO_GameFiles,
- ARRAYSIZE(IHNMDEMO_GameFonts),
- IHNMDEMO_GameFonts,
- &IHNM_GameSound,
- &IHNM_GameSound,
- NULL,
- 0,
- NULL,
- 0,
- Common::EN_ANY,
- Common::kPlatformPC,
- },
-
- // I Have No Mouth And I Must Scream - CD version
- {
- "ihnm",
- GType_IHNM,
- GID_IHNM_CD,
- "",
- &IHNM_DisplayInfo,
- IHNM_DEFAULT_SCENE,
- &IHNM_Resources,
- ARRAYSIZE(IHNM_CD_GameFiles),
- IHNM_CD_GameFiles,
- ARRAYSIZE(IHNMCD_GameFonts),
- IHNMCD_GameFonts,
- &IHNM_GameSound,
- &IHNM_GameSound,
- NULL,
- 0,
- NULL,
- 0,
- Common::EN_ANY,
- Common::kPlatformPC,
- },
-
- // I Have No Mouth And I Must Scream - De CD version
- {
- "ihnm",
- GType_IHNM,
- GID_IHNM_CD_DE,
- "",
- &IHNM_DisplayInfo,
- IHNM_DEFAULT_SCENE,
- &IHNM_Resources,
- ARRAYSIZE(IHNM_CD_DE_GameFiles),
- IHNM_CD_DE_GameFiles,
- ARRAYSIZE(IHNMCD_GameFonts),
- IHNMCD_GameFonts,
- &IHNM_GameSound,
- &IHNM_GameSound,
- NULL,
- 0,
- NULL,
- 0,
- Common::DE_DEU,
- Common::kPlatformPC,
- },
- // I Have No Mouth And I Must Scream - Sp CD version
- {
- "ihnm",
- GType_IHNM,
- GID_IHNM_CD_ES,
- "",
- &IHNM_DisplayInfo,
- IHNM_DEFAULT_SCENE,
- &IHNM_Resources,
- ARRAYSIZE(IHNM_CD_ES_GameFiles),
- IHNM_CD_ES_GameFiles,
- ARRAYSIZE(IHNMCD_GameFonts),
- IHNMCD_GameFonts,
- &IHNM_GameSound,
- &IHNM_GameSound,
- NULL,
- 0,
- NULL,
- 0,
- Common::ES_ESP,
- Common::kPlatformPC,
- },
- // I Have No Mouth And I Must Scream - Ru CD version
- {
- "ihnm",
- GType_IHNM,
- GID_IHNM_CD_RU,
- "",
- &IHNM_DisplayInfo,
- IHNM_DEFAULT_SCENE,
- &IHNM_Resources,
- ARRAYSIZE(IHNM_CD_RU_GameFiles),
- IHNM_CD_RU_GameFiles,
- ARRAYSIZE(IHNMCD_GameFonts),
- IHNMCD_GameFonts,
- &IHNM_GameSound,
- &IHNM_GameSound,
- NULL,
- 0,
- NULL,
- 0,
- Common::RU_RUS,
- Common::kPlatformPC,
- },
- // I Have No Mouth And I Must Scream - Fr CD version
- {
- "ihnm",
- GType_IHNM,
- GID_IHNM_CD_FR,
- "",
- &IHNM_DisplayInfo,
- IHNM_DEFAULT_SCENE,
- &IHNM_Resources,
- ARRAYSIZE(IHNM_CD_FR_GameFiles),
- IHNM_CD_FR_GameFiles,
- ARRAYSIZE(IHNMCD_GameFonts),
- IHNMCD_GameFonts,
- &IHNM_GameSound,
- &IHNM_GameSound,
- NULL,
- 0,
- NULL,
- 0,
- Common::FR_FRA,
- Common::kPlatformPC,
- },
-};
+#include "sagagame.cpp"
DetectedGame toDetectedGame(const GameDescription &g) {
const char *title;
diff --git a/engines/saga/gfx.cpp b/engines/saga/gfx.cpp
index 940eb01927..b70b8c95f0 100644
--- a/engines/saga/gfx.cpp
+++ b/engines/saga/gfx.cpp
@@ -27,7 +27,7 @@
#include "saga/saga.h"
#include "saga/gfx.h"
#include "saga/interface.h"
-#include "saga/resnames.h"
+#include "saga/sagaresnames.h"
#include "saga/rscfile.h"
#include "saga/scene.h"
#include "saga/stream.h"
diff --git a/engines/saga/interface.cpp b/engines/saga/interface.cpp
index e1d01507e0..3fa81514d4 100644
--- a/engines/saga/interface.cpp
+++ b/engines/saga/interface.cpp
@@ -41,7 +41,7 @@
#include "saga/sound.h"
#include "saga/sprite.h"
#include "saga/rscfile.h"
-#include "saga/resnames.h"
+#include "saga/sagaresnames.h"
#include "saga/interface.h"
diff --git a/engines/saga/isomap.cpp b/engines/saga/isomap.cpp
index 6acbf8ba70..0f728c4ee7 100644
--- a/engines/saga/isomap.cpp
+++ b/engines/saga/isomap.cpp
@@ -27,7 +27,7 @@
#include "saga/gfx.h"
-#include "saga/resnames.h"
+#include "saga/sagaresnames.h"
#include "saga/scene.h"
#include "saga/isomap.h"
#include "saga/stream.h"
diff --git a/engines/saga/ite_introproc.cpp b/engines/saga/ite_introproc.cpp
index 759fe7326e..d32aa359de 100644
--- a/engines/saga/ite_introproc.cpp
+++ b/engines/saga/ite_introproc.cpp
@@ -36,7 +36,7 @@
#include "saga/music.h"
#include "saga/scene.h"
-#include "saga/resnames.h"
+#include "saga/sagaresnames.h"
#include "saga/rscfile.h"
namespace Saga {
diff --git a/engines/saga/itedata.cpp b/engines/saga/itedata.cpp
index 3329ab1bbd..603efac46f 100644
--- a/engines/saga/itedata.cpp
+++ b/engines/saga/itedata.cpp
@@ -25,7 +25,7 @@
// Actor and Object data tables
#include "saga/saga.h"
#include "saga/itedata.h"
-#include "saga/resnames.h"
+#include "saga/sagaresnames.h"
#include "saga/sndres.h"
namespace Saga {
diff --git a/engines/saga/music.cpp b/engines/saga/music.cpp
index 453ef05d4c..bacf726626 100644
--- a/engines/saga/music.cpp
+++ b/engines/saga/music.cpp
@@ -24,7 +24,7 @@
#include "saga/saga.h"
#include "saga/rscfile.h"
-#include "saga/resnames.h"
+#include "saga/sagaresnames.h"
#include "saga/music.h"
#include "saga/stream.h"
#include "sound/audiostream.h"
diff --git a/engines/saga/puzzle.cpp b/engines/saga/puzzle.cpp
index c09a9c0462..f2d923bead 100644
--- a/engines/saga/puzzle.cpp
+++ b/engines/saga/puzzle.cpp
@@ -28,7 +28,7 @@
#include "saga/sprite.h"
#include "saga/puzzle.h"
#include "saga/render.h"
-#include "saga/resnames.h"
+#include "saga/sagaresnames.h"
#include "common/system.h"
#include "common/timer.h"
diff --git a/engines/saga/saga.cpp b/engines/saga/saga.cpp
index 322b013a68..2bb81e3841 100644
--- a/engines/saga/saga.cpp
+++ b/engines/saga/saga.cpp
@@ -51,7 +51,7 @@
#include "saga/music.h"
#include "saga/palanim.h"
#include "saga/objectmap.h"
-#include "saga/resnames.h"
+#include "saga/sagaresnames.h"
namespace Saga {
diff --git a/engines/saga/saga.h b/engines/saga/saga.h
index f4d542ce0f..3c91f0d88d 100644
--- a/engines/saga/saga.h
+++ b/engines/saga/saga.h
@@ -83,10 +83,8 @@ enum ERRORCODE {
SUCCESS = 0
};
-enum SAGAGameType {
- GType_ITE = 0,
- GType_IHNM = 1
-};
+#include "sagagame.h"
+
enum GameObjectTypes {
kGameObjectNone = 0,
@@ -138,89 +136,6 @@ enum HitZoneFlags {
kHitZoneProject = (1 << 3)
};
-
-enum PanelButtonType {
- kPanelButtonVerb = 1 << 0,
- kPanelButtonArrow = 1 << 1,
- kPanelButtonConverseText = 1 << 2,
- kPanelButtonInventory = 1 << 3,
-
- kPanelButtonOption = 1 << 4,
- kPanelButtonOptionSlider = 1 << 5,
- kPanelButtonOptionSaveFiles = 1 << 6,
- kPanelButtonOptionText = 1 << 7,
-
- kPanelButtonQuit = 1 << 8,
- kPanelButtonQuitText = 1 << 9,
-
- kPanelButtonLoad = 1 << 10,
- kPanelButtonLoadText = 1 << 11,
-
- kPanelButtonSave = 1 << 12,
- kPanelButtonSaveText = 1 << 13,
- kPanelButtonSaveEdit = 1 << 14,
-
- kPanelButtonProtectText = 1 << 15,
- kPanelButtonProtectEdit = 1 << 16,
-
- kPanelAllButtons = 0xFFFFF
-};
-
-enum TextStringIds {
- kTextWalkTo,
- kTextLookAt,
- kTextPickUp,
- kTextTalkTo,
- kTextOpen,
- kTextClose,
- kTextUse,
- kTextGive,
- kTextOptions,
- kTextTest,
- kTextDemo,
- kTextHelp,
- kTextQuitGame,
- kTextFast,
- kTextSlow,
- kTextOn,
- kTextOff,
- kTextContinuePlaying,
- kTextLoad,
- kTextSave,
- kTextGameOptions,
- kTextReadingSpeed,
- kTextMusic,
- kTextSound,
- kTextCancel,
- kTextQuit,
- kTextOK,
- kTextMid,
- kTextClick,
- kText10Percent,
- kText20Percent,
- kText30Percent,
- kText40Percent,
- kText50Percent,
- kText60Percent,
- kText70Percent,
- kText80Percent,
- kText90Percent,
- kTextMax,
- kTextQuitTheGameQuestion,
- kTextLoadSuccessful,
- kTextEnterSaveGameName,
- kTextGiveTo,
- kTextUseWidth,
- kTextNewSave,
- kTextICantPickup,
- kTextNothingSpecial,
- kTextNoPlaceToOpen,
- kTextNoOpening,
- kTextDontKnow,
- kTextShowDialog,
- kTextEnterProtectAnswer
-};
-
struct ImageHeader {
int width;
int height;
@@ -252,74 +167,7 @@ struct StringsTable {
}
};
-enum GameIds {
- // Dreamers Guild
- GID_ITE_DEMO_G = 0,
- GID_ITE_DISK_G,
- GID_ITE_DISK_G2,
- GID_ITE_CD_G,
- GID_ITE_CD_G2,
- GID_ITE_MACCD_G,
-
- // Wyrmkeep
- GID_ITE_CD, // data for Win rerelease is same as in old DOS
- GID_ITE_WINCD, // but it has a bunch of patch files
- GID_ITE_MACCD,
- GID_ITE_LINCD,
- GID_ITE_MULTICD, // Wyrmkeep combined Windows/Mac/Linux version
- GID_ITE_WINDEMO1, // older Wyrmkeep windows demo
- GID_ITE_MACDEMO1, // older Wyrmkeep mac demo
- GID_ITE_LINDEMO,
- GID_ITE_WINDEMO2,
- GID_ITE_MACDEMO2,
-
- // German
- GID_ITE_DISK_DE,
- GID_ITE_DISK_DE2,
- GID_ITE_AMIGACD_DE, // TODO
- GID_ITE_OLDMAC_DE, // TODO
- GID_ITE_AMIGA_FL_DE,// TODO
- GID_ITE_CD_DE, // reported by mld. Bestsellergamers cover disk
- GID_ITE_CD_DE2,
- GID_ITE_AMIGA_AGA_DEMO, // TODO
- GID_ITE_AMIGA_ECS_DEMO, // TODO
-
- GID_IHNM_DEMO,
- GID_IHNM_CD,
- GID_IHNM_CD_DE, // reported by mld. German retail
- GID_IHNM_CD_ES,
- GID_IHNM_CD_RU,
- GID_IHNM_CD_FR
-};
-enum GameFileTypes {
- GAME_RESOURCEFILE = 1 << 0,
- GAME_SCRIPTFILE = 1 << 1,
- GAME_SOUNDFILE = 1 << 2,
- GAME_VOICEFILE = 1 << 3,
- GAME_DEMOFILE = 1 << 4,
- GAME_MUSICFILE = 1 << 5,
- GAME_MUSICFILE_GM = 1 << 6,
- GAME_MUSICFILE_FM = 1 << 7,
- GAME_PATCHFILE = 1 << 8,
- GAME_MACBINARY = 1 << 9,
- GAME_SWAPENDIAN = 1 << 10
-};
-
-enum GameSoundTypes {
- kSoundPCM = 0,
- kSoundVOX = 1,
- kSoundVOC = 2,
- kSoundWAV = 3,
- kSoundMacPCM = 4
-};
-
-enum GameFeatures {
- GF_BIG_ENDIAN_DATA = 1 << 0,
- GF_WYRMKEEP = 1 << 1,
- GF_CD_FX = 1 << 2,
- GF_SCENE_SUBSTITUTES = 1 << 3
-};
enum ColorId {
kITEColorTransBlack = 0x00,
@@ -354,170 +202,6 @@ enum KnownColor {
kKnownColorVerbTextActive
};
-struct GameSoundInfo {
- GameSoundTypes resourceType;
- long frequency;
- int sampleBits;
- bool stereo;
- bool isBigEndian;
- bool isSigned;
-};
-
-struct GameFontDescription {
- uint32 fontResourceId;
-};
-
-struct GameResourceDescription {
- uint32 sceneLUTResourceId;
- uint32 moduleLUTResourceId;
- uint32 mainPanelResourceId;
- uint32 conversePanelResourceId;
- uint32 optionPanelResourceId;
- uint32 mainSpritesResourceId;
- uint32 mainPanelSpritesResourceId;
- uint32 defaultPortraitsResourceId;
- uint32 mainStringsResourceId;
- uint32 actorsStringsResourceId;
-};
-
-struct GameFileDescription {
- const char *fileName;
- uint16 fileType;
- const char *md5;
-};
-
-struct GamePatchDescription {
- const char *fileName;
- uint16 fileType;
- uint32 resourceId;
- GameSoundInfo *soundInfo;
-};
-
-struct PanelButton {
- PanelButtonType type;
- int xOffset;
- int yOffset;
- int width;
- int height;
- int id;
- uint16 ascii;
- int state;
- int upSpriteNumber;
- int downSpriteNumber;
- int overSpriteNumber;
-};
-
-struct GameDisplayInfo {
- int logicalWidth;
- int logicalHeight;
-
- int pathStartY;
- int sceneHeight;
-
- int statusXOffset;
- int statusYOffset;
- int statusWidth;
- int statusHeight;
- int statusTextY;
- int statusTextColor;
- int statusBGColor;
-
- int saveReminderXOffset;
- int saveReminderYOffset;
- int saveReminderWidth;
- int saveReminderHeight;
- int saveReminderFirstSpriteNumber;
- int saveReminderSecondSpriteNumber;
-
- int leftPortraitXOffset;
- int leftPortraitYOffset;
- int rightPortraitXOffset;
- int rightPortraitYOffset;
-
- int inventoryUpButtonIndex;
- int inventoryDownButtonIndex;
- int inventoryRows;
- int inventoryColumns;
-
- int mainPanelXOffset;
- int mainPanelYOffset;
- int mainPanelButtonsCount;
- PanelButton *mainPanelButtons;
-
- int converseMaxTextWidth;
- int converseTextHeight;
- int converseTextLines;
- int converseUpButtonIndex;
- int converseDownButtonIndex;
-
- int conversePanelXOffset;
- int conversePanelYOffset;
- int conversePanelButtonsCount;
- PanelButton *conversePanelButtons;
-
- int optionSaveFilePanelIndex;
- int optionSaveFileSliderIndex;
- uint optionSaveFileVisible;
-
- int optionPanelXOffset;
- int optionPanelYOffset;
- int optionPanelButtonsCount;
- PanelButton *optionPanelButtons;
-
- int quitPanelXOffset;
- int quitPanelYOffset;
- int quitPanelWidth;
- int quitPanelHeight;
- int quitPanelButtonsCount;
- PanelButton *quitPanelButtons;
-
- int loadPanelXOffset;
- int loadPanelYOffset;
- int loadPanelWidth;
- int loadPanelHeight;
- int loadPanelButtonsCount;
- PanelButton *loadPanelButtons;
-
- int saveEditIndex;
- int savePanelXOffset;
- int savePanelYOffset;
- int savePanelWidth;
- int savePanelHeight;
- int savePanelButtonsCount;
- PanelButton *savePanelButtons;
-
- int protectEditIndex;
- int protectPanelXOffset;
- int protectPanelYOffset;
- int protectPanelWidth;
- int protectPanelHeight;
- int protectPanelButtonsCount;
- PanelButton *protectPanelButtons;
-};
-
-
-struct GameDescription {
- const char *name;
- SAGAGameType gameType;
- GameIds gameId;
- const char *extra;
- GameDisplayInfo *gameDisplayInfo;
- int startSceneNumber;
- GameResourceDescription *resourceDescription;
- int filesCount;
- GameFileDescription *filesDescriptions;
- int fontsCount;
- GameFontDescription *fontDescriptions;
- GameSoundInfo *voiceInfo;
- GameSoundInfo *sfxInfo;
- GameSoundInfo *musicInfo;
- int patchesCount;
- GamePatchDescription *patchDescriptions;
- uint32 features;
- Common::Language language;
- Common::Platform platform;
-};
-
struct SaveFileData {
char name[SAVE_TITLE_SIZE];
uint slotNumber;
diff --git a/engines/saga/sagagame.cpp b/engines/saga/sagagame.cpp
new file mode 100644
index 0000000000..9ec55ed09a
--- /dev/null
+++ b/engines/saga/sagagame.cpp
@@ -0,0 +1,1414 @@
+#define ITE_CONVERSE_MAX_TEXT_WIDTH (256 - 60)
+#define ITE_CONVERSE_TEXT_HEIGHT 10
+#define ITE_CONVERSE_TEXT_LINES 4
+
+//TODO: ihnm
+#define IHNM_CONVERSE_MAX_TEXT_WIDTH (256 - 60)
+#define IHNM_CONVERSE_TEXT_HEIGHT 10
+#define IHNM_CONVERSE_TEXT_LINES 10
+
+// ITE section
+static PanelButton ITE_MainPanelButtons[] = {
+ {kPanelButtonVerb, 52,4, 57,10, kVerbITEWalkTo,'w',0, 0,1,0},
+ {kPanelButtonVerb, 52,15, 57,10, kVerbITELookAt,'l',0, 2,3,0},
+ {kPanelButtonVerb, 52,26, 57,10, kVerbITEPickUp,'p',0, 4,5,0},
+ {kPanelButtonVerb, 52,37, 57,10, kVerbITETalkTo,'t',0, 0,1,0},
+ {kPanelButtonVerb, 110,4, 56,10, kVerbITEOpen,'o',0, 6,7,0},
+ {kPanelButtonVerb, 110,15, 56,10, kVerbITEClose,'c',0, 8,9,0},
+ {kPanelButtonVerb, 110,26, 56,10, kVerbITEUse,'u',0, 10,11,0},
+ {kPanelButtonVerb, 110,37, 56,10, kVerbITEGive,'g',0, 12,13,0},
+ {kPanelButtonArrow, 306,6, 8,5, -1,'U',0, 0,4,2},
+ {kPanelButtonArrow, 306,41, 8,5, 1,'D',0, 1,5,3},
+
+ {kPanelButtonInventory, 181 + 32*0,6, 27,18, 0,'-',0, 0,0,0},
+ {kPanelButtonInventory, 181 + 32*1,6, 27,18, 1,'-',0, 0,0,0},
+ {kPanelButtonInventory, 181 + 32*2,6, 27,18, 2,'-',0, 0,0,0},
+ {kPanelButtonInventory, 181 + 32*3,6, 27,18, 3,'-',0, 0,0,0},
+
+ {kPanelButtonInventory, 181 + 32*0,27, 27,18, 4,'-',0, 0,0,0},
+ {kPanelButtonInventory, 181 + 32*1,27, 27,18, 5,'-',0, 0,0,0},
+ {kPanelButtonInventory, 181 + 32*2,27, 27,18, 6,'-',0, 0,0,0},
+ {kPanelButtonInventory, 181 + 32*3,27, 27,18, 7,'-',0, 0,0,0}
+};
+
+static PanelButton ITE_ConversePanelButtons[] = {
+ {kPanelButtonConverseText, 52,6 + ITE_CONVERSE_TEXT_HEIGHT * 0, ITE_CONVERSE_MAX_TEXT_WIDTH,ITE_CONVERSE_TEXT_HEIGHT, 0,'1',0, 0,0,0},
+ {kPanelButtonConverseText, 52,6 + ITE_CONVERSE_TEXT_HEIGHT * 1, ITE_CONVERSE_MAX_TEXT_WIDTH,ITE_CONVERSE_TEXT_HEIGHT, 1,'2',0, 0,0,0},
+ {kPanelButtonConverseText, 52,6 + ITE_CONVERSE_TEXT_HEIGHT * 2, ITE_CONVERSE_MAX_TEXT_WIDTH,ITE_CONVERSE_TEXT_HEIGHT, 2,'3',0, 0,0,0},
+ {kPanelButtonConverseText, 52,6 + ITE_CONVERSE_TEXT_HEIGHT * 3, ITE_CONVERSE_MAX_TEXT_WIDTH,ITE_CONVERSE_TEXT_HEIGHT, 3,'4',0, 0,0,0},
+ {kPanelButtonArrow, 257,6, 9,6, -1,'u',0, 0,4,2},
+ {kPanelButtonArrow, 257,41, 9,6, 1,'d',0, 1,5,3},
+};
+
+static PanelButton ITE_OptionPanelButtons[] = {
+ {kPanelButtonOptionSlider, 284,19, 13,75, 0,'-',0, 0,0,0}, //slider-scroller
+ {kPanelButtonOption, 113,18, 45,17, kTextReadingSpeed,'r',0, 0,0,0}, //read speed
+ {kPanelButtonOption, 113,37, 45,17, kTextMusic,'m',0, 0,0,0}, //music
+ {kPanelButtonOption, 113,56, 45,17, kTextSound,'n',0, 0,0,0}, //sound-noise
+ {kPanelButtonOption, 13,79, 135,17, kTextQuitGame,'q',0, 0,0,0}, //quit
+ {kPanelButtonOption, 13,98, 135,17, kTextContinuePlaying,'c',0, 0,0,0}, //continue
+ {kPanelButtonOption, 164,98, 57,17, kTextLoad,'l',0, 0,0,0}, //load
+ {kPanelButtonOption, 241,98, 57,17, kTextSave,'s',0, 0,0,0}, //save
+ {kPanelButtonOptionSaveFiles, 166,20, 112,74, 0,'-',0, 0,0,0}, //savefiles
+
+ {kPanelButtonOptionText,106,4, 0,0, kTextGameOptions,'-',0, 0,0,0}, // text: game options
+ {kPanelButtonOptionText,11,22, 0,0, kTextReadingSpeed,'-',0, 0,0,0}, // text: read speed
+ {kPanelButtonOptionText,28,22, 0,0, kTextShowDialog,'-',0, 0,0,0}, // text: read speed
+ {kPanelButtonOptionText,73,41, 0,0, kTextMusic,'-',0, 0,0,0}, // text: music
+ {kPanelButtonOptionText,69,60, 0,0, kTextSound,'-',0, 0,0,0}, // text: noise
+};
+
+static PanelButton ITE_QuitPanelButtons[] = {
+ {kPanelButtonQuit, 11,17, 60,16, kTextQuit,'q',0, 0,0,0},
+ {kPanelButtonQuit, 121,17, 60,16, kTextCancel,'c',0, 0,0,0},
+ {kPanelButtonQuitText, -1,5, 0,0, kTextQuitTheGameQuestion,'-',0, 0,0,0},
+};
+
+static PanelButton ITE_LoadPanelButtons[] = {
+ {kPanelButtonLoad, 101,19, 60,16, kTextOK,'o',0, 0,0,0},
+ {kPanelButtonLoadText, -1,5, 0,0, kTextLoadSuccessful,'-',0, 0,0,0},
+};
+
+static PanelButton ITE_SavePanelButtons[] = {
+ {kPanelButtonSave, 11,37, 60,16, kTextSave,'s',0, 0,0,0},
+ {kPanelButtonSave, 101,37, 60,16, kTextCancel,'c',0, 0,0,0},
+ {kPanelButtonSaveEdit, 26,17, 119,17, 0,'-',0, 0,0,0},
+ {kPanelButtonSaveText, -1,5, 0,0, kTextEnterSaveGameName,'-',0, 0,0,0},
+};
+
+static PanelButton ITE_ProtectPanelButtons[] = {
+ {kPanelButtonProtectEdit, 26,17, 119,17, 0,'-',0, 0,0,0},
+ {kPanelButtonProtectText, -1,5, 0,0, kTextEnterProtectAnswer,'-',0, 0,0,0},
+};
+
+/*
+static PanelButton ITE_ProtectionPanelButtons[] = {
+ {kPanelButtonArrow, 0,0, 0,0, 0,'-',0, 0,0,0}, //TODO
+};*/
+
+static GameDisplayInfo ITE_DisplayInfo = {
+ 320, 200, // logical width&height
+
+ 35, // scene path y offset
+ 137, // scene height
+
+ 0, // status x offset
+ 137, // status y offset
+ 320, // status width
+ 11, // status height
+ 2, // status text y offset
+ 186, // status text color
+ 15, // status BG color
+ 308,137, // save reminder pos
+ 12,12, // save reminder w & h
+ 6,7, // save reminder sprite numbers
+
+ 5, 4, // left portrait x, y offset
+ 274, 4, // right portrait x, y offset
+
+ 8, 9, // inventory Up & Down button indexies
+ 2, 4, // inventory rows, columns
+
+ 0, 148, // main panel offsets
+ ARRAYSIZE(ITE_MainPanelButtons),
+ ITE_MainPanelButtons,
+
+ ITE_CONVERSE_MAX_TEXT_WIDTH,
+ ITE_CONVERSE_TEXT_HEIGHT,
+ ITE_CONVERSE_TEXT_LINES,
+ 4, 5, // converse Up & Down button indexies
+ 0, 148, // converse panel offsets
+ ARRAYSIZE(ITE_ConversePanelButtons),
+ ITE_ConversePanelButtons,
+
+ 8, 0, // save file index
+ 8, // optionSaveFileVisible
+ 8, 8, // option panel offsets
+ ARRAYSIZE(ITE_OptionPanelButtons),
+ ITE_OptionPanelButtons,
+
+ 64,54, // quit panel offsets
+ 192,38, // quit panel width & height
+ ARRAYSIZE(ITE_QuitPanelButtons),
+ ITE_QuitPanelButtons,
+
+ 74, 53, // load panel offsets
+ 172, 40, // load panel width & height
+ ARRAYSIZE(ITE_LoadPanelButtons),
+ ITE_LoadPanelButtons,
+
+ 2, // save edit index
+ 74, 44, // save panel offsets
+ 172, 58, // save panel width & height
+ ARRAYSIZE(ITE_SavePanelButtons),
+ ITE_SavePanelButtons,
+
+ 0, // protect edit index
+ 74, 44, // protect panel offsets
+ 172, 58, // protect panel width & height
+ ARRAYSIZE(ITE_ProtectPanelButtons),
+ ITE_ProtectPanelButtons
+};
+
+static GameResourceDescription ITE_Resources = {
+ RID_ITE_SCENE_LUT, // Scene lookup table RN
+ RID_ITE_SCRIPT_LUT, // Script lookup table RN
+ RID_ITE_MAIN_PANEL,
+ RID_ITE_CONVERSE_PANEL,
+ RID_ITE_OPTION_PANEL,
+ RID_ITE_MAIN_SPRITES,
+ RID_ITE_MAIN_PANEL_SPRITES,
+ RID_ITE_DEFAULT_PORTRAITS,
+ RID_ITE_MAIN_STRINGS,
+ RID_ITE_ACTOR_NAMES
+};
+
+static GameResourceDescription ITEDemo_Resources = {
+ RID_ITEDEMO_SCENE_LUT, // Scene lookup table RN
+ RID_ITEDEMO_SCRIPT_LUT, // Script lookup table RN
+ RID_ITEDEMO_MAIN_PANEL,
+ RID_ITEDEMO_CONVERSE_PANEL,
+ RID_ITEDEMO_OPTION_PANEL,
+ RID_ITEDEMO_MAIN_SPRITES,
+ RID_ITEDEMO_MAIN_PANEL_SPRITES,
+ RID_ITEDEMO_DEFAULT_PORTRAITS,
+ RID_ITEDEMO_MAIN_STRINGS,
+ RID_ITEDEMO_ACTOR_NAMES
+};
+
+// Inherit the Earth - DOS Demo version
+static GameFileDescription ITE_DEMO_G_GameFiles[] = {
+ {"ite.rsc", GAME_RESOURCEFILE, "986c79c4d2939dbe555576529fd37932"},
+ //{"ite.dmo", GAME_DEMOFILE}, "0b9a70eb4e120b6f00579b46c8cae29e"
+ {"scripts.rsc", GAME_SCRIPTFILE, "d5697dd3240a3ceaddaa986c47e1a2d7"},
+ {"voices.rsc", GAME_SOUNDFILE | GAME_VOICEFILE, "c58e67c506af4ffa03fd0aac2079deb0"}
+};
+
+static GameFontDescription ITEDEMO_GameFonts[] = {
+ {0},
+ {1}
+};
+
+static GameSoundInfo ITEDEMO_GameSound = {
+ kSoundVOC,
+ -1,
+ -1,
+ false,
+ false,
+ true
+};
+
+// Inherit the Earth - Wyrmkeep Win32 Demo version
+
+static GameFileDescription ITE_WINDEMO2_GameFiles[] = {
+ {"ited.rsc", GAME_RESOURCEFILE, "3a450852cbf3c80773984d565647e6ac"},
+ {"scriptsd.rsc", GAME_SCRIPTFILE, "3f12b67fa93e56e1a6be39d2921d80bb"},
+ {"soundsd.rsc", GAME_SOUNDFILE, "95a6c148e22e99a8c243f2978223583c"},
+ {"voicesd.rsc", GAME_VOICEFILE, "e139d86bab2ee8ba3157337f894a92d4"}
+};
+
+static GameFileDescription ITE_WINDEMO1_GameFiles[] = {
+ {"ited.rsc", GAME_RESOURCEFILE, "3a450852cbf3c80773984d565647e6ac"},
+ {"scriptsd.rsc", GAME_SCRIPTFILE, "3f12b67fa93e56e1a6be39d2921d80bb"},
+ {"soundsd.rsc", GAME_SOUNDFILE, "a741139dd7365a13f463cd896ff9969a"},
+ {"voicesd.rsc", GAME_VOICEFILE, "0759eaf5b64ae19fd429920a70151ad3"}
+};
+
+static GameFontDescription ITEWINDEMO_GameFonts[] = {
+ {2},
+ {0}
+};
+
+static GameSoundInfo ITEWINDEMO1_GameSound = {
+ kSoundPCM,
+ 22050,
+ 8,
+ false,
+ false,
+ false
+};
+
+static GameSoundInfo ITEWINDEMO2_GameVoice = {
+ kSoundVOX,
+ 22050,
+ 16,
+ false,
+ false,
+ true
+};
+
+static GameSoundInfo ITEWINDEMO2_GameSound = {
+ kSoundPCM,
+ 22050,
+ 16,
+ false,
+ false,
+ true
+};
+
+// Inherit the Earth - Wyrmkeep Mac Demo version
+static GameFileDescription ITE_MACDEMO2_GameFiles[] = {
+ {"ited.rsc", GAME_RESOURCEFILE, "addfc9d82bc2fa1f4cab23743c652c08"},
+ {"scriptsd.rsc", GAME_SCRIPTFILE, "fded5c59b8b7c5976229f960d21e6b0b"},
+ {"soundsd.rsc", GAME_SOUNDFILE, "b3a831fbed337d1f1300fee1dd474f6c"},
+ {"voicesd.rsc", GAME_VOICEFILE, "e139d86bab2ee8ba3157337f894a92d4"},
+ {"musicd.rsc", GAME_MUSICFILE, "495bdde51fd9f4bea2b9c911091b1ab2"}
+};
+
+static GameFileDescription ITE_MACDEMO1_GameFiles[] = {
+ {"ited.rsc", GAME_RESOURCEFILE, "addfc9d82bc2fa1f4cab23743c652c08"},
+ {"scriptsd.rsc", GAME_SCRIPTFILE, "fded5c59b8b7c5976229f960d21e6b0b"},
+ {"soundsd.rsc", GAME_SOUNDFILE, "b3a831fbed337d1f1300fee1dd474f6c"},
+ {"voicesd.rsc", GAME_VOICEFILE, "e139d86bab2ee8ba3157337f894a92d4"},
+ {"musicd.rsc", GAME_MUSICFILE, "1a91cd60169f367ecb6c6e058d899b2f"}
+};
+
+static GameSoundInfo ITEMACDEMO_GameVoice = {
+ kSoundVOX,
+ 22050,
+ 16,
+ false,
+ false,
+ true
+};
+
+static GameSoundInfo ITEMACDEMO_GameSound = {
+ kSoundPCM,
+ 22050,
+ 16,
+ false,
+ true,
+ true
+};
+
+static GameSoundInfo ITEMACDEMO_GameMusic = {
+ kSoundPCM,
+ 11025,
+ 16,
+ false,
+ false,
+ true
+};
+
+// Inherit the Earth - Wyrmkeep Linux Demo version
+static GameFileDescription ITE_LINDEMO_GameFiles[] = {
+ {"ited.rsc", GAME_RESOURCEFILE, "3a450852cbf3c80773984d565647e6ac"},
+ {"scriptsd.rsc", GAME_SCRIPTFILE, "3f12b67fa93e56e1a6be39d2921d80bb"},
+ {"soundsd.rsc", GAME_SOUNDFILE, "95a6c148e22e99a8c243f2978223583c"},
+ {"voicesd.rsc", GAME_VOICEFILE, "e139d86bab2ee8ba3157337f894a92d4"},
+ {"musicd.rsc", GAME_MUSICFILE, "d6454756517f042f01210458abe8edd4"}
+};
+
+static GameSoundInfo ITELINDEMO_GameMusic = {
+ kSoundPCM,
+ 11025,
+ 16,
+ true,
+ false,
+ true
+};
+
+// Inherit the Earth - Wyrmkeep Linux version
+
+static GameFileDescription ITE_LINCD_GameFiles[] = {
+ {"ite.rsc", GAME_RESOURCEFILE, "8f4315a9bb10ec839253108a032c8b54"},
+ {"scripts.rsc", GAME_SCRIPTFILE, "a891405405edefc69c9d6c420c868b84"},
+ {"sounds.rsc", GAME_SOUNDFILE, "e2ccb61c325d6d1ead3be0e731fe29fe"},
+ {"voices.rsc", GAME_VOICEFILE, "41bb6b95d792dde5196bdb78740895a6"},
+ {"music.rsc", GAME_MUSICFILE, "d6454756517f042f01210458abe8edd4"}
+};
+
+// Inherit the Earth - Wyrmkeep combined Windows/Mac/Linux version. This
+// version is different from the other Wyrmkeep re-releases in that it does
+// not have any substitute files. Presumably the ite.rsc file has been
+// modified to include the Wyrmkeep changes. The resource files are little-
+// endian, except for the voice file which is big-endian.
+
+static GameFileDescription ITE_MULTICD_GameFiles[] = {
+ {"ite.rsc", GAME_RESOURCEFILE, "a6433e34b97b15e64fe8214651012db9"},
+ {"scripts.rsc", GAME_SCRIPTFILE, "a891405405edefc69c9d6c420c868b84"},
+ {"sounds.rsc", GAME_SOUNDFILE, "e2ccb61c325d6d1ead3be0e731fe29fe"},
+ {"inherit the earth voices", GAME_VOICEFILE | GAME_SWAPENDIAN, "c14c4c995e7a0d3828e3812a494301b7"},
+ {"music.rsc", GAME_MUSICFILE, "d6454756517f042f01210458abe8edd4"}
+};
+
+static GameFileDescription ITE_MACCD_G_GameFiles[] = {
+ {"ite resources.bin", GAME_RESOURCEFILE | GAME_MACBINARY, "0bd506aa887bfc7965f695c6bd28237d"},
+ {"ite scripts.bin", GAME_SCRIPTFILE | GAME_MACBINARY, "af0d7a2588e09ad3ecbc5b474ea238bf"},
+ {"ite sounds.bin", GAME_SOUNDFILE | GAME_MACBINARY, "441426c6bb2a517f65c7e49b57f7a345"},
+ {"ite music.bin", GAME_MUSICFILE_GM | GAME_MACBINARY, "c1d20324b7cdf1650e67061b8a93251c"},
+ {"ite voices.bin", GAME_VOICEFILE | GAME_MACBINARY, "dba92ae7d57e942250fe135609708369"}
+};
+
+static GameSoundInfo ITEMACCD_G_GameSound = {
+ kSoundMacPCM,
+ 22050,
+ 8,
+ false,
+ false,
+ false
+};
+
+// Inherit the Earth - Mac Wyrmkeep version
+static GameFileDescription ITE_MACCD_GameFiles[] = {
+ {"ite.rsc", GAME_RESOURCEFILE, "4f7fa11c5175980ed593392838523060"},
+ {"scripts.rsc", GAME_SCRIPTFILE, "adf1f46c1d0589083996a7060c798ad0"},
+ {"sounds.rsc", GAME_SOUNDFILE, "95863b89a0916941f6c5e1789843ba14"},
+ {"inherit the earth voices", GAME_VOICEFILE, "c14c4c995e7a0d3828e3812a494301b7"},
+ {"music.rsc", GAME_MUSICFILE, "1a91cd60169f367ecb6c6e058d899b2f"}
+};
+
+static GameSoundInfo ITEMACCD_GameSound = {
+ kSoundPCM,
+ 22050,
+ 16,
+ false,
+ true,
+ true
+};
+
+static GameSoundInfo ITEMACCD_GameMusic = {
+ kSoundPCM,
+ 11025,
+ 16,
+ true,
+ false,
+ true
+};
+
+// Inherit the Earth - Diskette version
+static GameFileDescription ITE_DISK_DE_GameFiles[] = {
+ {"ite.rsc", GAME_RESOURCEFILE, "869fc23c8f38f575979ec67152914fee"},
+ {"scripts.rsc", GAME_SCRIPTFILE, "516f7330f8410057b834424ea719d1ef"},
+ {"voices.rsc", GAME_SOUNDFILE | GAME_VOICEFILE, "0c9113e630f97ef0996b8c3114badb08"}
+};
+
+static GameFileDescription ITE_DISK_G_GameFiles[] = {
+ {"ite.rsc", GAME_RESOURCEFILE, "8f4315a9bb10ec839253108a032c8b54"},
+ {"scripts.rsc", GAME_SCRIPTFILE, "516f7330f8410057b834424ea719d1ef"},
+ {"voices.rsc", GAME_SOUNDFILE | GAME_VOICEFILE, "c46e4392fcd2e89bc91e5567db33b62d"}
+};
+
+static GameFileDescription ITE_DISK_DE2_GameFiles[] = {
+ {"ite.rsc", GAME_RESOURCEFILE, "869fc23c8f38f575979ec67152914fee"},
+ {"scripts.rsc", GAME_SCRIPTFILE, "516f7330f8410057b834424ea719d1ef"},
+ {"voices.rsc", GAME_SOUNDFILE | GAME_VOICEFILE, "0c9113e630f97ef0996b8c3114badb08"},
+ {"music.rsc", GAME_MUSICFILE, "d6454756517f042f01210458abe8edd4"}
+};
+
+static GameFileDescription ITE_DISK_G2_GameFiles[] = {
+ {"ite.rsc", GAME_RESOURCEFILE, "8f4315a9bb10ec839253108a032c8b54"},
+ {"scripts.rsc", GAME_SCRIPTFILE, "516f7330f8410057b834424ea719d1ef"},
+ {"voices.rsc", GAME_SOUNDFILE | GAME_VOICEFILE, "c46e4392fcd2e89bc91e5567db33b62d"},
+ {"music.rsc", GAME_MUSICFILE, "d6454756517f042f01210458abe8edd4"}
+};
+
+static GameFontDescription ITEDISK_GameFonts[] = {
+ {2},
+ {0},
+ {1}
+};
+
+static GameSoundInfo ITEDISK_GameSound = {
+ kSoundVOC,
+ -1,
+ -1,
+ false,
+ false,
+ true
+};
+
+// Inherit the Earth - CD Enhanced version
+static GameFileDescription ITE_WINCD_GameFiles[] = {
+ {"ite.rsc", GAME_RESOURCEFILE, "8f4315a9bb10ec839253108a032c8b54"},
+ {"scripts.rsc", GAME_SCRIPTFILE, "a891405405edefc69c9d6c420c868b84"},
+ {"sounds.rsc", GAME_SOUNDFILE, "e2ccb61c325d6d1ead3be0e731fe29fe"},
+ {"voices.rsc", GAME_VOICEFILE, "41bb6b95d792dde5196bdb78740895a6"}
+};
+
+static GameFileDescription ITE_CD_G_GameFiles[] = {
+ {"ite.rsc", GAME_RESOURCEFILE, "8f4315a9bb10ec839253108a032c8b54"},
+ {"scripts.rsc", GAME_SCRIPTFILE, "50a0d2d7003c926a3832d503c8534e90"},
+ {"sounds.rsc", GAME_SOUNDFILE, "e2ccb61c325d6d1ead3be0e731fe29fe"},
+ {"voices.rsc", GAME_VOICEFILE, "41bb6b95d792dde5196bdb78740895a6"}
+};
+
+// reported by mld. Bestsellergamers cover disk
+static GameFileDescription ITE_CD_DE_GameFiles[] = {
+ {"ite.rsc", GAME_RESOURCEFILE, "869fc23c8f38f575979ec67152914fee"},
+ {"scripts.rsc", GAME_SCRIPTFILE, "a891405405edefc69c9d6c420c868b84"},
+ {"sounds.rsc", GAME_SOUNDFILE, "e2ccb61c325d6d1ead3be0e731fe29fe"},
+ {"voices.rsc", GAME_VOICEFILE, "2fbad5d10b9b60a3415dc4aebbb11718"}
+};
+
+static GameFileDescription ITE_CD_GameFiles[] = {
+ {"ite.rsc", GAME_RESOURCEFILE, "8f4315a9bb10ec839253108a032c8b54"},
+ {"scripts.rsc", GAME_SCRIPTFILE, "a891405405edefc69c9d6c420c868b84"},
+ {"sounds.rsc", GAME_SOUNDFILE, "e2ccb61c325d6d1ead3be0e731fe29fe"},
+ {"voices.rsc", GAME_VOICEFILE, "41bb6b95d792dde5196bdb78740895a6"}
+};
+
+
+static GameFileDescription ITE_CD_G2_GameFiles[] = {
+ {"ite.rsc", GAME_RESOURCEFILE, "8f4315a9bb10ec839253108a032c8b54"},
+ {"scripts.rsc", GAME_SCRIPTFILE, "50a0d2d7003c926a3832d503c8534e90"},
+ {"sounds.rsc", GAME_SOUNDFILE, "e2ccb61c325d6d1ead3be0e731fe29fe"},
+ {"voices.rsc", GAME_VOICEFILE, "41bb6b95d792dde5196bdb78740895a6"},
+ {"music.rsc", GAME_MUSICFILE, "d6454756517f042f01210458abe8edd4"}
+};
+
+static GameFileDescription ITE_CD_DE2_GameFiles[] = {
+ {"ite.rsc", GAME_RESOURCEFILE, "869fc23c8f38f575979ec67152914fee"},
+ {"scripts.rsc", GAME_SCRIPTFILE, "a891405405edefc69c9d6c420c868b84"},
+ {"sounds.rsc", GAME_SOUNDFILE, "e2ccb61c325d6d1ead3be0e731fe29fe"},
+ {"voices.rsc", GAME_VOICEFILE, "2fbad5d10b9b60a3415dc4aebbb11718"},
+ {"music.rsc", GAME_MUSICFILE, "d6454756517f042f01210458abe8edd4"}
+};
+
+
+static GameFontDescription ITECD_GameFonts[] = {
+ {2},
+ {0},
+ {1}
+};
+
+static GameSoundInfo ITECD_GameSound = {
+ kSoundPCM,
+ 22050,
+ 16,
+ false,
+ false,
+ true
+};
+
+static GamePatchDescription ITEWinPatch1_Files[] = {
+ { "cave.mid", GAME_RESOURCEFILE, 9, NULL},
+ { "intro.mid", GAME_RESOURCEFILE, 10, NULL},
+ { "fvillage.mid", GAME_RESOURCEFILE, 11, NULL},
+ { "elkhall.mid", GAME_RESOURCEFILE, 12, NULL},
+ { "mouse.mid", GAME_RESOURCEFILE, 13, NULL},
+ { "darkclaw.mid", GAME_RESOURCEFILE, 14, NULL},
+ { "birdchrp.mid", GAME_RESOURCEFILE, 15, NULL},
+ { "orbtempl.mid", GAME_RESOURCEFILE, 16, NULL},
+ { "spooky.mid", GAME_RESOURCEFILE, 17, NULL},
+ { "catfest.mid", GAME_RESOURCEFILE, 18, NULL},
+ { "elkfanfare.mid", GAME_RESOURCEFILE, 19, NULL},
+ { "bcexpl.mid", GAME_RESOURCEFILE, 20, NULL},
+ { "boargtnt.mid", GAME_RESOURCEFILE, 21, NULL},
+ { "boarking.mid", GAME_RESOURCEFILE, 22, NULL},
+ { "explorea.mid", GAME_RESOURCEFILE, 23, NULL},
+ { "exploreb.mid", GAME_RESOURCEFILE, 24, NULL},
+ { "explorec.mid", GAME_RESOURCEFILE, 25, NULL},
+ { "sunstatm.mid", GAME_RESOURCEFILE, 26, NULL},
+ { "nitstrlm.mid", GAME_RESOURCEFILE, 27, NULL},
+ { "humruinm.mid", GAME_RESOURCEFILE, 28, NULL},
+ { "damexplm.mid", GAME_RESOURCEFILE, 29, NULL},
+ { "tychom.mid", GAME_RESOURCEFILE, 30, NULL},
+ { "kitten.mid", GAME_RESOURCEFILE, 31, NULL},
+ { "sweet.mid", GAME_RESOURCEFILE, 32, NULL},
+ { "brutalmt.mid", GAME_RESOURCEFILE, 33, NULL},
+ { "shiala.mid", GAME_RESOURCEFILE, 34, NULL},
+
+ { "wyrm.pak", GAME_RESOURCEFILE, 1529, NULL},
+ { "wyrm1.dlt", GAME_RESOURCEFILE, 1530, NULL},
+ { "wyrm2.dlt", GAME_RESOURCEFILE, 1531, NULL},
+ { "wyrm3.dlt", GAME_RESOURCEFILE, 1532, NULL},
+ { "wyrm4.dlt", GAME_RESOURCEFILE, 1533, NULL},
+ { "credit3n.dlt", GAME_RESOURCEFILE, 1796, NULL},
+ { "credit4n.dlt", GAME_RESOURCEFILE, 1797, NULL},
+ { "p2_a.voc", GAME_VOICEFILE, 4, NULL}
+};
+
+static GamePatchDescription ITEWinPatch2_Files[] = {
+ { "cave.mid", GAME_RESOURCEFILE, 9, NULL},
+ { "intro.mid", GAME_RESOURCEFILE, 10, NULL},
+ { "fvillage.mid", GAME_RESOURCEFILE, 11, NULL},
+ { "elkfanfare.mid", GAME_RESOURCEFILE, 19, NULL},
+ { "bcexpl.mid", GAME_RESOURCEFILE, 20, NULL},
+ { "boargtnt.mid", GAME_RESOURCEFILE, 21, NULL},
+ { "explorea.mid", GAME_RESOURCEFILE, 23, NULL},
+ { "sweet.mid", GAME_RESOURCEFILE, 32, NULL},
+
+ { "wyrm.pak", GAME_RESOURCEFILE, 1529, NULL},
+ { "wyrm1.dlt", GAME_RESOURCEFILE, 1530, NULL},
+ { "wyrm2.dlt", GAME_RESOURCEFILE, 1531, NULL},
+ { "wyrm3.dlt", GAME_RESOURCEFILE, 1532, NULL},
+ { "p2_a.iaf", GAME_VOICEFILE, 4, &ITECD_GameSound}
+/* boarhall.bbm
+ elkenter.bbm
+ ferrets.bbm
+ ratdoor.bbm
+ sanctuar.bbm
+ tycho.bbm*/
+};
+
+static GamePatchDescription ITEMacPatch_Files[] = {
+ { "wyrm.pak", GAME_RESOURCEFILE, 1529, NULL},
+ { "wyrm1.dlt", GAME_RESOURCEFILE, 1530, NULL},
+ { "wyrm2.dlt", GAME_RESOURCEFILE, 1531, NULL},
+ { "wyrm3.dlt", GAME_RESOURCEFILE, 1532, NULL},
+ { "wyrm4.dlt", GAME_RESOURCEFILE, 1533, NULL},
+ { "credit3m.dlt", GAME_RESOURCEFILE, 1796, NULL},
+ { "credit4m.dlt", GAME_RESOURCEFILE, 1797, NULL},
+ { "p2_a.iaf", GAME_VOICEFILE, 4, &ITEMACCD_GameSound}
+};
+
+static GamePatchDescription ITELinPatch_Files[] = {
+ { "wyrm.pak", GAME_RESOURCEFILE, 1529, NULL},
+ { "wyrm1.dlt", GAME_RESOURCEFILE, 1530, NULL},
+ { "wyrm2.dlt", GAME_RESOURCEFILE, 1531, NULL},
+ { "wyrm3.dlt", GAME_RESOURCEFILE, 1532, NULL},
+ { "credit3n.dlt", GAME_RESOURCEFILE, 1796, NULL},
+ { "credit4n.dlt", GAME_RESOURCEFILE, 1797, NULL},
+ { "P2_A.iaf", GAME_VOICEFILE, 4, &ITECD_GameSound}
+};
+
+// IHNM section
+
+static PanelButton IHNM_MainPanelButtons[] = {
+ {kPanelButtonVerb, 106,12, 114,30, kVerbIHNMWalk,'w',0, 0,1,0},
+ {kPanelButtonVerb, 106,44, 114,30, kVerbIHNMLookAt,'l',0, 2,3,0},
+ {kPanelButtonVerb, 106,76, 114,30, kVerbIHNMTake,'k',0, 4,5,0},
+ {kPanelButtonVerb, 106,108, 114,30, kVerbIHNMUse,'u',0, 6,7,0},
+ {kPanelButtonVerb, 223,12, 114,30, kVerbIHNMTalkTo,'t',0, 8,9,0},
+ {kPanelButtonVerb, 223,44, 114,30, kVerbIHNMSwallow,'s',0, 10,11,0},
+ {kPanelButtonVerb, 223,76, 114,30, kVerbIHNMGive,'g',0, 12,13,0},
+ {kPanelButtonVerb, 223,108, 114,30, kVerbIHNMPush,'p',0, 14,15,0},
+ {kPanelButtonArrow, 606,22, 20,25, -1,'[',0, 0,0,0}, //TODO: arrow Sprite Numbers
+ {kPanelButtonArrow, 606,108, 20,25, 1,']',0, 0,0,0},
+
+ {kPanelButtonInventory, 357 + 64*0,18, 54,54, 0,'-',0, 0,0,0},
+ {kPanelButtonInventory, 357 + 64*1,18, 54,54, 1,'-',0, 0,0,0},
+ {kPanelButtonInventory, 357 + 64*2,18, 54,54, 2,'-',0, 0,0,0},
+ {kPanelButtonInventory, 357 + 64*3,18, 54,54, 3,'-',0, 0,0,0},
+
+ {kPanelButtonInventory, 357 + 64*0,80, 54,54, 4,'-',0, 0,0,0},
+ {kPanelButtonInventory, 357 + 64*1,80, 54,54, 5,'-',0, 0,0,0},
+ {kPanelButtonInventory, 357 + 64*2,80, 54,54, 6,'-',0, 0,0,0},
+ {kPanelButtonInventory, 357 + 64*3,80, 54,54, 7,'-',0, 0,0,0}
+};
+
+static PanelButton IHNM_ConversePanelButtons[] = {
+ {kPanelButtonConverseText, 117,18 + IHNM_CONVERSE_TEXT_HEIGHT * 0, IHNM_CONVERSE_MAX_TEXT_WIDTH,IHNM_CONVERSE_TEXT_HEIGHT, 0,'1',0, 0,0,0},
+ {kPanelButtonConverseText, 52,18 + IHNM_CONVERSE_TEXT_HEIGHT * 1, IHNM_CONVERSE_MAX_TEXT_WIDTH,IHNM_CONVERSE_TEXT_HEIGHT, 1,'2',0, 0,0,0},
+ {kPanelButtonConverseText, 52,18 + IHNM_CONVERSE_TEXT_HEIGHT * 2, IHNM_CONVERSE_MAX_TEXT_WIDTH,IHNM_CONVERSE_TEXT_HEIGHT, 2,'3',0, 0,0,0},
+ {kPanelButtonConverseText, 52,18 + IHNM_CONVERSE_TEXT_HEIGHT * 3, IHNM_CONVERSE_MAX_TEXT_WIDTH,IHNM_CONVERSE_TEXT_HEIGHT, 3,'4',0, 0,0,0},
+ //.....
+ {kPanelButtonArrow, 606,22, 20,25, -1,'[',0, 0,0,0}, //TODO: arrow Sprite Numbers
+ {kPanelButtonArrow, 606,108, 20,25, 1,']',0, 0,0,0}
+};
+
+static PanelButton IHNM_OptionPanelButtons[] = {
+ {kPanelButtonArrow, 0,0, 0,0, 0,'-',0, 0,0,0}, //TODO
+};
+
+static PanelButton IHNM_QuitPanelButtons[] = {
+ {kPanelButtonArrow, 0,0, 0,0, 0,'-',0, 0,0,0}, //TODO
+};
+
+static PanelButton IHNM_LoadPanelButtons[] = {
+ {kPanelButtonArrow, 0,0, 0,0, 0,'-',0, 0,0,0}, //TODO
+};
+
+static PanelButton IHNM_SavePanelButtons[] = {
+ {kPanelButtonArrow, 0,0, 0,0, 0,'-',0, 0,0,0}, //TODO
+};
+
+
+static GameDisplayInfo IHNM_DisplayInfo = { //TODO: fill it all
+ 640, 480, // logical width&height
+
+ 0, // scene path y offset
+ 304, // scene height
+
+ 0, // status x offset
+ 304, // status y offset
+ 616, // status width
+ 24, // status height
+ 8, // status text y offset
+ 253, // status text color
+ 250, // status BG color
+ 616, 303, // save reminder pos
+ 24, 24, // save reminder w&h
+ 0,1, // save reminder sprite numbers
+
+ 11, 12, // left portrait x, y offset
+ -1, -1, // right portrait x, y offset
+
+ -1, -1, // inventory Up & Down button indexies
+ 2, 4, // inventory rows, columns
+
+ 0, 328, // main panel offsets
+ ARRAYSIZE(IHNM_MainPanelButtons),
+ IHNM_MainPanelButtons,
+
+ -1, -1, // converse Up & Down button indexies
+
+ IHNM_CONVERSE_MAX_TEXT_WIDTH,
+ IHNM_CONVERSE_TEXT_HEIGHT,
+ IHNM_CONVERSE_TEXT_LINES,
+ 0, 328, // converse panel offsets
+ ARRAYSIZE(IHNM_ConversePanelButtons),
+ IHNM_ConversePanelButtons,
+
+ -1, -1, // save file index
+ 0, // optionSaveFileVisible
+ 0, 0, // option panel offsets
+ ARRAYSIZE(IHNM_OptionPanelButtons),
+ IHNM_OptionPanelButtons,
+
+ 0,0, // quit panel offsets
+ 0,0, // quit panel width & height
+ ARRAYSIZE(IHNM_QuitPanelButtons),
+ IHNM_QuitPanelButtons,
+
+ 0, 0, // load panel offsets
+ 0, 0, // load panel width & height
+ ARRAYSIZE(IHNM_LoadPanelButtons),
+ IHNM_LoadPanelButtons,
+
+ -1, // save edit index
+ 0, 0, // save panel offsets
+ 0, 0, // save panel width & height
+ ARRAYSIZE(IHNM_SavePanelButtons),
+ IHNM_SavePanelButtons,
+
+ // No protection panel in IHNM
+ -1, // protect edit index
+ 0, 0, // protect panel offsets
+ 0, 0, // protect panel width & height
+ ARRAYSIZE(IHNM_SavePanelButtons),
+ IHNM_SavePanelButtons
+};
+
+static GameResourceDescription IHNM_Resources = {
+ RID_IHNM_SCENE_LUT, // Scene lookup table RN
+ RID_IHNM_SCRIPT_LUT, // Script lookup table RN
+ RID_IHNM_MAIN_PANEL,
+ RID_IHNM_CONVERSE_PANEL,
+ RID_IHNM_OPTION_PANEL,
+ RID_IHNM_MAIN_SPRITES,
+ RID_IHNM_MAIN_PANEL_SPRITES,
+ 0,
+ RID_IHNM_MAIN_STRINGS,
+ 0
+};
+
+// I Have No Mouth and I Must Scream - Demo version
+static GameFileDescription IHNM_DEMO_GameFiles[] = {
+ {"scream.res", GAME_RESOURCEFILE, "46bbdc65d164ba7e89836a0935eec8e6"},
+ {"scripts.res", GAME_SCRIPTFILE, "9626bda8978094ff9b29198bc1ed5f9a"},
+ {"sfx.res", GAME_SOUNDFILE, "1c610d543f32ec8b525e3f652536f269"},
+ {"voicesd.res", GAME_VOICEFILE, "3bbc16a8f741dbb511da506c660a0b54"}
+};
+
+// I Have No Mouth and I Must Scream - Retail CD version
+
+static GameFileDescription IHNM_CD_GameFiles[] = {
+ {"musicfm.res", GAME_MUSICFILE_FM, "0439083e3dfdc51b486071d45872ae52"},
+ {"musicgm.res", GAME_MUSICFILE_GM, "80f875a1fb384160d1f4b27166eef583"},
+ {"scream.res", GAME_RESOURCEFILE, "46bbdc65d164ba7e89836a0935eec8e6"},
+ {"patch.re_", GAME_PATCHFILE | GAME_RESOURCEFILE, "58b79e61594779513c7f2d35509fa89e"},
+ {"scripts.res", GAME_SCRIPTFILE, "be38bbc5a26be809dbf39f13befebd01"},
+ {"sfx.res", GAME_SOUNDFILE, "1c610d543f32ec8b525e3f652536f269"},
+ {"voicess.res", GAME_VOICEFILE, "54b1f2013a075338ceb0e258d97808bd"}, //order of voice bank file is important
+ {"voices1.res", GAME_VOICEFILE, "fc6440b38025f4b2cc3ff55c3da5c3eb"},
+ {"voices2.res", GAME_VOICEFILE, "b37f10fd1696ade7d58704ccaaebceeb"},
+ {"voices3.res", GAME_VOICEFILE, "3bbc16a8f741dbb511da506c660a0b54"},
+ {"voices4.res", GAME_VOICEFILE, "ebfa160122d2247a676ca39920e5d481"},
+ {"voices5.res", GAME_VOICEFILE, "1f501ce4b72392bdd1d9ec38f6eec6da"},
+ {"voices6.res", GAME_VOICEFILE, "f580ed7568c7d6ef34e934ba20adf834"}
+};
+
+static GameFileDescription IHNM_CD_ES_GameFiles[] = {
+ {"musicfm.res", GAME_MUSICFILE_FM, "0439083e3dfdc51b486071d45872ae52"},
+ {"musicgm.res", GAME_MUSICFILE_GM, "80f875a1fb384160d1f4b27166eef583"},
+ {"scream.res", GAME_RESOURCEFILE, "c92370d400e6f2a3fc411c3729d09224"},
+ {"patch.re_", GAME_PATCHFILE | GAME_RESOURCEFILE, "58b79e61594779513c7f2d35509fa89e"},
+ {"scripts.res", GAME_SCRIPTFILE, "be38bbc5a26be809dbf39f13befebd01"},
+ {"sfx.res", GAME_SOUNDFILE, "1c610d543f32ec8b525e3f652536f269"},
+ {"voicess.res", GAME_VOICEFILE, "d869de9883c8faea7f687217a9ec7057"}, //order of voice bank file is important
+ {"voices1.res", GAME_VOICEFILE, "dc6a34e3d1668730ea46815a92c7847f"},
+ {"voices2.res", GAME_VOICEFILE, "dc6a5fa7a4cdc2ca5a6fd924e969986c"},
+ {"voices3.res", GAME_VOICEFILE, "dc6a5fa7a4cdc2ca5a6fd924e969986c"},
+ {"voices4.res", GAME_VOICEFILE, "0f87400b804232a58dd22e404420cc45"},
+ {"voices5.res", GAME_VOICEFILE, "172668cfc5d8c305cb5b1a9b4d995fc0"},
+ {"voices6.res", GAME_VOICEFILE, "96c9bda9a5f41d6bc232ed7bf6d371d9"}
+};
+
+static GameFileDescription IHNM_CD_RU_GameFiles[] = {
+ {"musicfm.res", GAME_MUSICFILE_FM, "0439083e3dfdc51b486071d45872ae52"},
+ {"musicgm.res", GAME_MUSICFILE_GM, "80f875a1fb384160d1f4b27166eef583"},
+ {"scream.res", GAME_RESOURCEFILE, "46bbdc65d164ba7e89836a0935eec8e6"},
+ {"patch.re_", GAME_PATCHFILE | GAME_RESOURCEFILE, "58b79e61594779513c7f2d35509fa89e"},
+ {"scripts.res", GAME_SCRIPTFILE, "be38bbc5a26be809dbf39f13befebd01"},
+ {"sfx.res", GAME_SOUNDFILE, "1c610d543f32ec8b525e3f652536f269"},
+ {"voicess.res", GAME_VOICEFILE, "9df7cd3b18ddaa16b5291b3432567036"}, //order of voice bank file is important
+ {"voices1.res", GAME_VOICEFILE, "d6100d2dc3b2b9f2e1ad247f613dce9b"},
+ {"voices2.res", GAME_VOICEFILE, "84f6f48ecc2832841ea6417a9a379430"},
+ {"voices3.res", GAME_VOICEFILE, "ebb9501283047f27a0f54e27b3c8ba1e"},
+ {"voices4.res", GAME_VOICEFILE, "4c145da5fa6d1306162a7ca8ce5a4f2e"},
+ {"voices5.res", GAME_VOICEFILE, "871a559644281917677eca4af1b05620"},
+ {"voices6.res", GAME_VOICEFILE, "211be5c24f066d69a2f6cfa953acfba6"}
+};
+
+// I Have No Mouth and I Must Scream - Censored CD version (without Nimdok)
+
+// Reported by mld. German Retail
+static GameFileDescription IHNM_CD_DE_GameFiles[] = {
+ {"musicfm.res", GAME_MUSICFILE_FM, "0439083e3dfdc51b486071d45872ae52"},
+ {"musicgm.res", GAME_MUSICFILE_GM, "80f875a1fb384160d1f4b27166eef583"},
+ {"scream.res", GAME_RESOURCEFILE, "c92370d400e6f2a3fc411c3729d09224"},
+ {"scripts.res", GAME_SCRIPTFILE, "32aa01a89937520fe0ea513950117292"},
+ {"patch.re_", GAME_PATCHFILE | GAME_RESOURCEFILE, "58b79e61594779513c7f2d35509fa89e"},
+ {"sfx.res", GAME_SOUNDFILE, "1c610d543f32ec8b525e3f652536f269"},
+ {"voicess.res", GAME_VOICEFILE, "8b09a196a52627cacb4eab13bfe0b2c3"}, //order of voice bank file is important
+ {"voices1.res", GAME_VOICEFILE, "424971e1e2373187c3f5734fe36071a2"},
+ {"voices2.res", GAME_VOICEFILE, "c270e0980782af43641a86e4a14e2a32"},
+ {"voices3.res", GAME_VOICEFILE, "49e42befea883fd101ec3d0f5d0647b9"},
+ {"voices5.res", GAME_VOICEFILE, "c477443c52a0aa56e686ebd8d051e4ab"},
+ {"voices6.res", GAME_VOICEFILE, "2b9aea838f74b4eecfb29a8f205a2bd4"}
+};
+
+static GameFileDescription IHNM_CD_FR_GameFiles[] = {
+ {"musicfm.res", GAME_MUSICFILE_FM, "0439083e3dfdc51b486071d45872ae52"},
+ {"musicgm.res", GAME_MUSICFILE_GM, "80f875a1fb384160d1f4b27166eef583"},
+ {"scream.res", GAME_RESOURCEFILE, "c92370d400e6f2a3fc411c3729d09224"},
+ {"scripts.res", GAME_SCRIPTFILE, "32aa01a89937520fe0ea513950117292"},
+ {"patch.re_", GAME_PATCHFILE | GAME_RESOURCEFILE, "58b79e61594779513c7f2d35509fa89e"},
+ {"sfx.res", GAME_SOUNDFILE, "1c610d543f32ec8b525e3f652536f269"},
+ {"voicess.res", GAME_VOICEFILE, "b8642e943bbebf89cef2f48b31cb4305"}, //order of voice bank file is important
+ {"voices1.res", GAME_VOICEFILE, "424971e1e2373187c3f5734fe36071a2"},
+ {"voices2.res", GAME_VOICEFILE, "c2d93a35d2c2def9c3d6d242576c794b"},
+ {"voices3.res", GAME_VOICEFILE, "49e42befea883fd101ec3d0f5d0647b9"},
+ {"voices5.res", GAME_VOICEFILE, "f4c415de7c03de86b73f9a12b8bd632f"},
+ {"voices6.res", GAME_VOICEFILE, "3fc5358a5d8eee43bdfab2740276572e"}
+};
+
+static GameFontDescription IHNMDEMO_GameFonts[] = {
+ {2},
+ {3},
+ {4}
+};
+
+static GameFontDescription IHNMCD_GameFonts[] = {
+ {2},
+ {3},
+ {4},
+ {5},
+ {6}, // kIHNMFont8
+ {7},
+ {8} // kIHNMMainFont
+};
+
+static GameSoundInfo IHNM_GameSound = {
+ kSoundWAV,
+ -1,
+ -1,
+ false,
+ false,
+ true
+};
+
+#define FILE_MD5_BYTES 5000
+
+static GameDescription gameDescriptions[] = {
+ // Inherit the earth - DOS Demo version
+ // sound unchecked
+ {
+ "ite",
+ GType_ITE,
+ GID_ITE_DEMO_G, // Game id
+ "Demo", // Game title
+ &ITE_DisplayInfo,
+ ITE_DEFAULT_SCENE, // Starting scene number
+ &ITEDemo_Resources,
+ ARRAYSIZE(ITE_DEMO_G_GameFiles), // Game datafiles
+ ITE_DEMO_G_GameFiles,
+ ARRAYSIZE(ITEDEMO_GameFonts),
+ ITEDEMO_GameFonts,
+ &ITEDEMO_GameSound,
+ &ITEDEMO_GameSound,
+ NULL,
+ 0,
+ NULL,
+ 0, // features
+ Common::EN_ANY,
+ Common::kPlatformPC,
+ },
+
+ // Inherit the earth - MAC Demo version
+ {
+ "ite",
+ GType_ITE,
+ GID_ITE_MACDEMO2,
+ "Demo",
+ &ITE_DisplayInfo,
+ ITE_DEFAULT_SCENE,
+ &ITE_Resources,
+ ARRAYSIZE(ITE_MACDEMO2_GameFiles),
+ ITE_MACDEMO2_GameFiles,
+ ARRAYSIZE(ITEWINDEMO_GameFonts),
+ ITEWINDEMO_GameFonts,
+ &ITEMACDEMO_GameVoice,
+ &ITEMACDEMO_GameSound,
+ &ITEMACDEMO_GameMusic,
+ ARRAYSIZE(ITEMacPatch_Files),
+ ITEMacPatch_Files,
+ GF_BIG_ENDIAN_DATA | GF_WYRMKEEP | GF_CD_FX | GF_SCENE_SUBSTITUTES,
+ Common::EN_ANY,
+ Common::kPlatformMacintosh,
+ },
+
+ // Inherit the earth - early MAC Demo version
+ {
+ "ite",
+ GType_ITE,
+ GID_ITE_MACDEMO1,
+ "early Demo",
+ &ITE_DisplayInfo,
+ ITE_DEFAULT_SCENE,
+ &ITE_Resources,
+ ARRAYSIZE(ITE_MACDEMO1_GameFiles),
+ ITE_MACDEMO1_GameFiles,
+ ARRAYSIZE(ITEWINDEMO_GameFonts),
+ ITEWINDEMO_GameFonts,
+ &ITEMACDEMO_GameVoice,
+ &ITEMACDEMO_GameSound,
+ &ITEMACCD_GameMusic,
+ ARRAYSIZE(ITEMacPatch_Files),
+ ITEMacPatch_Files,
+ GF_BIG_ENDIAN_DATA | GF_WYRMKEEP | GF_CD_FX,
+ Common::EN_ANY,
+ Common::kPlatformMacintosh,
+ },
+
+ // Inherit the earth - MAC CD Guild version
+ {
+ "ite",
+ GType_ITE,
+ GID_ITE_MACCD_G,
+ "CD",
+ &ITE_DisplayInfo,
+ ITE_DEFAULT_SCENE,
+ &ITE_Resources,
+ ARRAYSIZE(ITE_MACCD_G_GameFiles),
+ ITE_MACCD_G_GameFiles,
+ ARRAYSIZE(ITEWINDEMO_GameFonts),
+ ITEWINDEMO_GameFonts,
+ &ITEMACCD_G_GameSound,
+ &ITEMACCD_G_GameSound,
+ NULL,
+ 0,
+ NULL,
+ GF_BIG_ENDIAN_DATA | GF_CD_FX,
+ Common::EN_ANY,
+ Common::kPlatformMacintosh,
+ },
+
+ // Inherit the earth - MAC CD Wyrmkeep version
+ {
+ "ite",
+ GType_ITE,
+ GID_ITE_MACCD,
+ "Wyrmkeep CD",
+ &ITE_DisplayInfo,
+ ITE_DEFAULT_SCENE,
+ &ITE_Resources,
+ ARRAYSIZE(ITE_MACCD_GameFiles),
+ ITE_MACCD_GameFiles,
+ ARRAYSIZE(ITEWINDEMO_GameFonts),
+ ITEWINDEMO_GameFonts,
+ &ITEMACCD_GameSound,
+ &ITEMACCD_GameSound,
+ &ITEMACCD_GameMusic,
+ ARRAYSIZE(ITEMacPatch_Files),
+ ITEMacPatch_Files,
+ GF_BIG_ENDIAN_DATA | GF_WYRMKEEP | GF_CD_FX,
+ Common::EN_ANY,
+ Common::kPlatformMacintosh,
+ },
+
+ // Inherit the earth - Linux Demo version
+ // Note: it should be before GID_ITE_WINDEMO2 version
+ {
+ "ite",
+ GType_ITE,
+ GID_ITE_LINDEMO,
+ "Demo",
+ &ITE_DisplayInfo,
+ ITE_DEFAULT_SCENE,
+ &ITE_Resources,
+ ARRAYSIZE(ITE_LINDEMO_GameFiles),
+ ITE_LINDEMO_GameFiles,
+ ARRAYSIZE(ITEWINDEMO_GameFonts),
+ ITEWINDEMO_GameFonts,
+ &ITEWINDEMO2_GameVoice,
+ &ITEWINDEMO2_GameSound,
+ &ITELINDEMO_GameMusic,
+ ARRAYSIZE(ITELinPatch_Files),
+ ITELinPatch_Files,
+ GF_WYRMKEEP | GF_CD_FX | GF_SCENE_SUBSTITUTES,
+ Common::EN_ANY,
+ Common::kPlatformLinux,
+ },
+
+ // Inherit the earth - Win32 Demo version
+ {
+ "ite",
+ GType_ITE,
+ GID_ITE_WINDEMO2,
+ "Demo",
+ &ITE_DisplayInfo,
+ ITE_DEFAULT_SCENE,
+ &ITE_Resources,
+ ARRAYSIZE(ITE_WINDEMO2_GameFiles),
+ ITE_WINDEMO2_GameFiles,
+ ARRAYSIZE(ITEWINDEMO_GameFonts),
+ ITEWINDEMO_GameFonts,
+ &ITEWINDEMO2_GameVoice,
+ &ITEWINDEMO2_GameSound,
+ NULL,
+ ARRAYSIZE(ITEWinPatch2_Files),
+ ITEWinPatch2_Files,
+ GF_WYRMKEEP | GF_CD_FX | GF_SCENE_SUBSTITUTES,
+ Common::EN_ANY,
+ Common::kPlatformWindows,
+ },
+
+ // Inherit the earth - early Win32 Demo version
+ {
+ "ite",
+ GType_ITE,
+ GID_ITE_WINDEMO1,
+ "early Demo",
+ &ITE_DisplayInfo,
+ ITE_DEFAULT_SCENE,
+ &ITE_Resources,
+ ARRAYSIZE(ITE_WINDEMO1_GameFiles),
+ ITE_WINDEMO1_GameFiles,
+ ARRAYSIZE(ITEWINDEMO_GameFonts),
+ ITEWINDEMO_GameFonts,
+ &ITEWINDEMO1_GameSound,
+ &ITEWINDEMO1_GameSound,
+ NULL,
+ ARRAYSIZE(ITEWinPatch1_Files),
+ ITEWinPatch1_Files,
+ GF_WYRMKEEP | GF_CD_FX,
+ Common::EN_ANY,
+ Common::kPlatformWindows,
+ },
+
+ // Inherit the earth - Wyrmkeep combined Windows/Mac/Linux CD
+ {
+ "ite",
+ GType_ITE,
+ GID_ITE_MULTICD,
+ "Multi-OS CD Version",
+ &ITE_DisplayInfo,
+ ITE_DEFAULT_SCENE,
+ &ITE_Resources,
+ ARRAYSIZE(ITE_MULTICD_GameFiles),
+ ITE_MULTICD_GameFiles,
+ ARRAYSIZE(ITECD_GameFonts),
+ ITECD_GameFonts,
+ &ITEMACCD_GameSound,
+ &ITECD_GameSound,
+ &ITEMACCD_GameMusic,
+ 0,
+ NULL,
+ GF_WYRMKEEP | GF_CD_FX,
+ Common::EN_ANY,
+ Common::kPlatformUnknown,
+ },
+
+ // Inherit the earth - Wyrmkeep Linux CD version
+ {
+ "ite",
+ GType_ITE,
+ GID_ITE_LINCD,
+ "CD Version",
+ &ITE_DisplayInfo,
+ ITE_DEFAULT_SCENE,
+ &ITE_Resources,
+ ARRAYSIZE(ITE_LINCD_GameFiles),
+ ITE_LINCD_GameFiles,
+ ARRAYSIZE(ITECD_GameFonts),
+ ITECD_GameFonts,
+ &ITECD_GameSound,
+ &ITECD_GameSound,
+ &ITEMACCD_GameMusic,
+ ARRAYSIZE(ITELinPatch_Files),
+ ITELinPatch_Files,
+ GF_WYRMKEEP | GF_CD_FX,
+ Common::EN_ANY,
+ Common::kPlatformLinux,
+ },
+
+ // Inherit the earth - Wyrmkeep Windows CD version
+ {
+ "ite",
+ GType_ITE,
+ GID_ITE_WINCD,
+ "CD Version",
+ &ITE_DisplayInfo,
+ ITE_DEFAULT_SCENE,
+ &ITE_Resources,
+ ARRAYSIZE(ITE_WINCD_GameFiles),
+ ITE_WINCD_GameFiles,
+ ARRAYSIZE(ITECD_GameFonts),
+ ITECD_GameFonts,
+ &ITECD_GameSound,
+ &ITECD_GameSound,
+ NULL,
+ ARRAYSIZE(ITEWinPatch1_Files),
+ ITEWinPatch1_Files,
+ GF_WYRMKEEP | GF_CD_FX,
+ Common::EN_ANY,
+ Common::kPlatformWindows,
+ },
+
+ // Inherit the earth - DOS CD version
+ {
+ "ite",
+ GType_ITE,
+ GID_ITE_CD_G,
+ "CD Version",
+ &ITE_DisplayInfo,
+ ITE_DEFAULT_SCENE,
+ &ITE_Resources,
+ ARRAYSIZE(ITE_CD_G_GameFiles),
+ ITE_CD_G_GameFiles,
+ ARRAYSIZE(ITECD_GameFonts),
+ ITECD_GameFonts,
+ &ITECD_GameSound,
+ &ITECD_GameSound,
+ NULL,
+ 0,
+ NULL,
+ GF_CD_FX,
+ Common::EN_ANY,
+ Common::kPlatformPC,
+ },
+
+ // Inherit the earth - DOS CD version with digital music
+ {
+ "ite",
+ GType_ITE,
+ GID_ITE_CD_G2,
+ "CD Version",
+ &ITE_DisplayInfo,
+ ITE_DEFAULT_SCENE,
+ &ITE_Resources,
+ ARRAYSIZE(ITE_CD_G2_GameFiles),
+ ITE_CD_G2_GameFiles,
+ ARRAYSIZE(ITECD_GameFonts),
+ ITECD_GameFonts,
+ &ITECD_GameSound,
+ &ITECD_GameSound,
+ &ITEMACCD_GameMusic,
+ 0,
+ NULL,
+ GF_CD_FX,
+ Common::EN_ANY,
+ Common::kPlatformPC,
+ },
+
+ // Inherit the earth - DOS CD German version
+ {
+ "ite",
+ GType_ITE,
+ GID_ITE_CD_DE,
+ "CD Version",
+ &ITE_DisplayInfo,
+ ITE_DEFAULT_SCENE,
+ &ITE_Resources,
+ ARRAYSIZE(ITE_CD_DE_GameFiles),
+ ITE_CD_DE_GameFiles,
+ ARRAYSIZE(ITECD_GameFonts),
+ ITECD_GameFonts,
+ &ITECD_GameSound,
+ &ITECD_GameSound,
+ NULL,
+ 0,
+ NULL,
+ GF_CD_FX,
+ Common::DE_DEU,
+ Common::kPlatformPC,
+ },
+
+ // Inherit the earth - DOS CD German version with digital music
+ {
+ "ite",
+ GType_ITE,
+ GID_ITE_CD_DE2,
+ "CD Version",
+ &ITE_DisplayInfo,
+ ITE_DEFAULT_SCENE,
+ &ITE_Resources,
+ ARRAYSIZE(ITE_CD_DE2_GameFiles),
+ ITE_CD_DE2_GameFiles,
+ ARRAYSIZE(ITECD_GameFonts),
+ ITECD_GameFonts,
+ &ITECD_GameSound,
+ &ITECD_GameSound,
+ &ITEMACCD_GameMusic,
+ 0,
+ NULL,
+ GF_CD_FX,
+ Common::DE_DEU,
+ Common::kPlatformPC,
+ },
+
+ // Inherit the earth - CD version
+ {
+ "ite",
+ GType_ITE,
+ GID_ITE_CD,
+ "CD Version",
+ &ITE_DisplayInfo,
+ ITE_DEFAULT_SCENE,
+ &ITE_Resources,
+ ARRAYSIZE(ITE_CD_GameFiles),
+ ITE_CD_GameFiles,
+ ARRAYSIZE(ITECD_GameFonts),
+ ITECD_GameFonts,
+ &ITECD_GameSound,
+ &ITECD_GameSound,
+ NULL,
+ 0,
+ NULL,
+ GF_CD_FX,
+ Common::EN_ANY,
+ Common::kPlatformPC,
+ },
+
+ // Inherit the earth - German Floppy version
+ {
+ "ite",
+ GType_ITE,
+ GID_ITE_DISK_DE,
+ "Floppy",
+ &ITE_DisplayInfo,
+ ITE_DEFAULT_SCENE,
+ &ITE_Resources,
+ ARRAYSIZE(ITE_DISK_DE_GameFiles),
+ ITE_DISK_DE_GameFiles,
+ ARRAYSIZE(ITEDISK_GameFonts),
+ ITEDISK_GameFonts,
+ &ITEDISK_GameSound,
+ &ITEDISK_GameSound,
+ NULL,
+ 0,
+ NULL,
+ 0,
+ Common::DE_DEU,
+ Common::kPlatformPC,
+ },
+
+ // Inherit the earth - German Floppy version with digital music
+ {
+ "ite",
+ GType_ITE,
+ GID_ITE_DISK_DE2,
+ "Floppy",
+ &ITE_DisplayInfo,
+ ITE_DEFAULT_SCENE,
+ &ITE_Resources,
+ ARRAYSIZE(ITE_DISK_DE2_GameFiles),
+ ITE_DISK_DE2_GameFiles,
+ ARRAYSIZE(ITEDISK_GameFonts),
+ ITEDISK_GameFonts,
+ &ITEDISK_GameSound,
+ &ITEDISK_GameSound,
+ &ITEMACCD_GameMusic,
+ 0,
+ NULL,
+ 0,
+ Common::DE_DEU,
+ Common::kPlatformPC,
+ },
+
+ // Inherit the earth - Disk version
+ {
+ "ite",
+ GType_ITE,
+ GID_ITE_DISK_G,
+ "Floppy",
+ &ITE_DisplayInfo,
+ ITE_DEFAULT_SCENE,
+ &ITE_Resources,
+ ARRAYSIZE(ITE_DISK_G_GameFiles),
+ ITE_DISK_G_GameFiles,
+ ARRAYSIZE(ITEDISK_GameFonts),
+ ITEDISK_GameFonts,
+ &ITEDISK_GameSound,
+ &ITEDISK_GameSound,
+ NULL,
+ 0,
+ NULL,
+ 0,
+ Common::EN_ANY,
+ Common::kPlatformPC,
+ },
+
+ // Inherit the earth - Disk version with digital music
+ {
+ "ite",
+ GType_ITE,
+ GID_ITE_DISK_G2,
+ "Floppy",
+ &ITE_DisplayInfo,
+ ITE_DEFAULT_SCENE,
+ &ITE_Resources,
+ ARRAYSIZE(ITE_DISK_G2_GameFiles),
+ ITE_DISK_G2_GameFiles,
+ ARRAYSIZE(ITEDISK_GameFonts),
+ ITEDISK_GameFonts,
+ &ITEDISK_GameSound,
+ &ITEDISK_GameSound,
+ &ITEMACCD_GameMusic,
+ 0,
+ NULL,
+ 0,
+ Common::EN_ANY,
+ Common::kPlatformPC,
+ },
+
+ // I Have No Mouth And I Must Scream - Demo version
+ {
+ "ihnm",
+ GType_IHNM,
+ GID_IHNM_DEMO,
+ "Demo",
+ &IHNM_DisplayInfo,
+ 0,
+ &IHNM_Resources,
+ ARRAYSIZE(IHNM_DEMO_GameFiles),
+ IHNM_DEMO_GameFiles,
+ ARRAYSIZE(IHNMDEMO_GameFonts),
+ IHNMDEMO_GameFonts,
+ &IHNM_GameSound,
+ &IHNM_GameSound,
+ NULL,
+ 0,
+ NULL,
+ 0,
+ Common::EN_ANY,
+ Common::kPlatformPC,
+ },
+
+ // I Have No Mouth And I Must Scream - CD version
+ {
+ "ihnm",
+ GType_IHNM,
+ GID_IHNM_CD,
+ "",
+ &IHNM_DisplayInfo,
+ IHNM_DEFAULT_SCENE,
+ &IHNM_Resources,
+ ARRAYSIZE(IHNM_CD_GameFiles),
+ IHNM_CD_GameFiles,
+ ARRAYSIZE(IHNMCD_GameFonts),
+ IHNMCD_GameFonts,
+ &IHNM_GameSound,
+ &IHNM_GameSound,
+ NULL,
+ 0,
+ NULL,
+ 0,
+ Common::EN_ANY,
+ Common::kPlatformPC,
+ },
+
+ // I Have No Mouth And I Must Scream - De CD version
+ {
+ "ihnm",
+ GType_IHNM,
+ GID_IHNM_CD_DE,
+ "",
+ &IHNM_DisplayInfo,
+ IHNM_DEFAULT_SCENE,
+ &IHNM_Resources,
+ ARRAYSIZE(IHNM_CD_DE_GameFiles),
+ IHNM_CD_DE_GameFiles,
+ ARRAYSIZE(IHNMCD_GameFonts),
+ IHNMCD_GameFonts,
+ &IHNM_GameSound,
+ &IHNM_GameSound,
+ NULL,
+ 0,
+ NULL,
+ 0,
+ Common::DE_DEU,
+ Common::kPlatformPC,
+ },
+ // I Have No Mouth And I Must Scream - Sp CD version
+ {
+ "ihnm",
+ GType_IHNM,
+ GID_IHNM_CD_ES,
+ "",
+ &IHNM_DisplayInfo,
+ IHNM_DEFAULT_SCENE,
+ &IHNM_Resources,
+ ARRAYSIZE(IHNM_CD_ES_GameFiles),
+ IHNM_CD_ES_GameFiles,
+ ARRAYSIZE(IHNMCD_GameFonts),
+ IHNMCD_GameFonts,
+ &IHNM_GameSound,
+ &IHNM_GameSound,
+ NULL,
+ 0,
+ NULL,
+ 0,
+ Common::ES_ESP,
+ Common::kPlatformPC,
+ },
+ // I Have No Mouth And I Must Scream - Ru CD version
+ {
+ "ihnm",
+ GType_IHNM,
+ GID_IHNM_CD_RU,
+ "",
+ &IHNM_DisplayInfo,
+ IHNM_DEFAULT_SCENE,
+ &IHNM_Resources,
+ ARRAYSIZE(IHNM_CD_RU_GameFiles),
+ IHNM_CD_RU_GameFiles,
+ ARRAYSIZE(IHNMCD_GameFonts),
+ IHNMCD_GameFonts,
+ &IHNM_GameSound,
+ &IHNM_GameSound,
+ NULL,
+ 0,
+ NULL,
+ 0,
+ Common::RU_RUS,
+ Common::kPlatformPC,
+ },
+ // I Have No Mouth And I Must Scream - Fr CD version
+ {
+ "ihnm",
+ GType_IHNM,
+ GID_IHNM_CD_FR,
+ "",
+ &IHNM_DisplayInfo,
+ IHNM_DEFAULT_SCENE,
+ &IHNM_Resources,
+ ARRAYSIZE(IHNM_CD_FR_GameFiles),
+ IHNM_CD_FR_GameFiles,
+ ARRAYSIZE(IHNMCD_GameFonts),
+ IHNMCD_GameFonts,
+ &IHNM_GameSound,
+ &IHNM_GameSound,
+ NULL,
+ 0,
+ NULL,
+ 0,
+ Common::FR_FRA,
+ Common::kPlatformPC,
+ },
+};
+
+
diff --git a/engines/saga/sagagame.h b/engines/saga/sagagame.h
new file mode 100644
index 0000000000..dd4a756c2a
--- /dev/null
+++ b/engines/saga/sagagame.h
@@ -0,0 +1,357 @@
+enum SAGAGameType {
+ GType_ITE = 0,
+ GType_IHNM = 1
+};
+
+enum GameIds {
+ // Dreamers Guild
+ GID_ITE_DEMO_G = 0,
+ GID_ITE_DISK_G,
+ GID_ITE_DISK_G2,
+ GID_ITE_CD_G,
+ GID_ITE_CD_G2,
+ GID_ITE_MACCD_G,
+
+ // Wyrmkeep
+ GID_ITE_CD, // data for Win rerelease is same as in old DOS
+ GID_ITE_WINCD, // but it has a bunch of patch files
+ GID_ITE_MACCD,
+ GID_ITE_LINCD,
+ GID_ITE_MULTICD, // Wyrmkeep combined Windows/Mac/Linux version
+ GID_ITE_WINDEMO1, // older Wyrmkeep windows demo
+ GID_ITE_MACDEMO1, // older Wyrmkeep mac demo
+ GID_ITE_LINDEMO,
+ GID_ITE_WINDEMO2,
+ GID_ITE_MACDEMO2,
+
+ // German
+ GID_ITE_DISK_DE,
+ GID_ITE_DISK_DE2,
+ GID_ITE_AMIGACD_DE, // TODO
+ GID_ITE_OLDMAC_DE, // TODO
+ GID_ITE_AMIGA_FL_DE,// TODO
+ GID_ITE_CD_DE, // reported by mld. Bestsellergamers cover disk
+ GID_ITE_CD_DE2,
+ GID_ITE_AMIGA_AGA_DEMO, // TODO
+ GID_ITE_AMIGA_ECS_DEMO, // TODO
+
+ GID_IHNM_DEMO,
+ GID_IHNM_CD,
+ GID_IHNM_CD_DE, // reported by mld. German retail
+ GID_IHNM_CD_ES,
+ GID_IHNM_CD_RU,
+ GID_IHNM_CD_FR
+};
+
+enum GameFileTypes {
+ GAME_RESOURCEFILE = 1 << 0,
+ GAME_SCRIPTFILE = 1 << 1,
+ GAME_SOUNDFILE = 1 << 2,
+ GAME_VOICEFILE = 1 << 3,
+ GAME_DEMOFILE = 1 << 4,
+ GAME_MUSICFILE = 1 << 5,
+ GAME_MUSICFILE_GM = 1 << 6,
+ GAME_MUSICFILE_FM = 1 << 7,
+ GAME_PATCHFILE = 1 << 8,
+ GAME_MACBINARY = 1 << 9,
+ GAME_SWAPENDIAN = 1 << 10
+};
+
+enum GameFeatures {
+ GF_BIG_ENDIAN_DATA = 1 << 0,
+ GF_WYRMKEEP = 1 << 1,
+ GF_CD_FX = 1 << 2,
+ GF_SCENE_SUBSTITUTES = 1 << 3
+};
+
+enum VerbTypeIds {
+ kVerbITENone = 0,
+ kVerbITEPickUp = 1,
+ kVerbITELookAt = 2,
+ kVerbITEWalkTo = 3,
+ kVerbITETalkTo = 4,
+ kVerbITEOpen = 5,
+ kVerbITEClose = 6,
+ kVerbITEGive = 7,
+ kVerbITEUse = 8,
+ kVerbITEOptions = 9,
+ kVerbITEEnter = 10,
+ kVerbITELeave = 11,
+ kVerbITEBegin = 12,
+ kVerbITEWalkOnly = 13,
+ kVerbITELookOnly = 14,
+
+
+ kVerbIHNMNone = 0,
+ kVerbIHNMWalk = 1,
+ kVerbIHNMLookAt = 2,
+ kVerbIHNMTake = 3,
+ kVerbIHNMUse = 4,
+ kVerbIHNMTalkTo = 5,
+ kVerbIHNMSwallow = 6,
+ kVerbIHNMGive = 7,
+ kVerbIHNMPush = 8,
+ kVerbIHNMOptions = 9,
+ kVerbIHNMEnter = 10,
+ kVerbIHNMLeave = 11,
+ kVerbIHNMBegin = 12,
+ kVerbIHNMWalkOnly = 13,
+ kVerbIHNMLookOnly = 14,
+
+ kVerbTypeIdsMax = kVerbITELookOnly + 1
+};
+enum PanelButtonType {
+ kPanelButtonVerb = 1 << 0,
+ kPanelButtonArrow = 1 << 1,
+ kPanelButtonConverseText = 1 << 2,
+ kPanelButtonInventory = 1 << 3,
+
+ kPanelButtonOption = 1 << 4,
+ kPanelButtonOptionSlider = 1 << 5,
+ kPanelButtonOptionSaveFiles = 1 << 6,
+ kPanelButtonOptionText = 1 << 7,
+
+ kPanelButtonQuit = 1 << 8,
+ kPanelButtonQuitText = 1 << 9,
+
+ kPanelButtonLoad = 1 << 10,
+ kPanelButtonLoadText = 1 << 11,
+
+ kPanelButtonSave = 1 << 12,
+ kPanelButtonSaveText = 1 << 13,
+ kPanelButtonSaveEdit = 1 << 14,
+
+ kPanelButtonProtectText = 1 << 15,
+ kPanelButtonProtectEdit = 1 << 16,
+
+ kPanelAllButtons = 0xFFFFF
+};
+
+enum GameSoundTypes {
+ kSoundPCM = 0,
+ kSoundVOX = 1,
+ kSoundVOC = 2,
+ kSoundWAV = 3,
+ kSoundMacPCM = 4
+};
+
+enum TextStringIds {
+ kTextWalkTo,
+ kTextLookAt,
+ kTextPickUp,
+ kTextTalkTo,
+ kTextOpen,
+ kTextClose,
+ kTextUse,
+ kTextGive,
+ kTextOptions,
+ kTextTest,
+ kTextDemo,
+ kTextHelp,
+ kTextQuitGame,
+ kTextFast,
+ kTextSlow,
+ kTextOn,
+ kTextOff,
+ kTextContinuePlaying,
+ kTextLoad,
+ kTextSave,
+ kTextGameOptions,
+ kTextReadingSpeed,
+ kTextMusic,
+ kTextSound,
+ kTextCancel,
+ kTextQuit,
+ kTextOK,
+ kTextMid,
+ kTextClick,
+ kText10Percent,
+ kText20Percent,
+ kText30Percent,
+ kText40Percent,
+ kText50Percent,
+ kText60Percent,
+ kText70Percent,
+ kText80Percent,
+ kText90Percent,
+ kTextMax,
+ kTextQuitTheGameQuestion,
+ kTextLoadSuccessful,
+ kTextEnterSaveGameName,
+ kTextGiveTo,
+ kTextUseWidth,
+ kTextNewSave,
+ kTextICantPickup,
+ kTextNothingSpecial,
+ kTextNoPlaceToOpen,
+ kTextNoOpening,
+ kTextDontKnow,
+ kTextShowDialog,
+ kTextEnterProtectAnswer
+};
+
+
+struct GameFileDescription {
+ const char *fileName;
+ uint16 fileType;
+ const char *md5;
+};
+
+struct GameResourceDescription {
+ uint32 sceneLUTResourceId;
+ uint32 moduleLUTResourceId;
+ uint32 mainPanelResourceId;
+ uint32 conversePanelResourceId;
+ uint32 optionPanelResourceId;
+ uint32 mainSpritesResourceId;
+ uint32 mainPanelSpritesResourceId;
+ uint32 defaultPortraitsResourceId;
+ uint32 mainStringsResourceId;
+ uint32 actorsStringsResourceId;
+};
+
+struct GameFontDescription {
+ uint32 fontResourceId;
+};
+
+struct PanelButton {
+ PanelButtonType type;
+ int xOffset;
+ int yOffset;
+ int width;
+ int height;
+ int id;
+ uint16 ascii;
+ int state;
+ int upSpriteNumber;
+ int downSpriteNumber;
+ int overSpriteNumber;
+};
+
+struct GameDisplayInfo {
+ int logicalWidth;
+ int logicalHeight;
+
+ int pathStartY;
+ int sceneHeight;
+
+ int statusXOffset;
+ int statusYOffset;
+ int statusWidth;
+ int statusHeight;
+ int statusTextY;
+ int statusTextColor;
+ int statusBGColor;
+
+ int saveReminderXOffset;
+ int saveReminderYOffset;
+ int saveReminderWidth;
+ int saveReminderHeight;
+ int saveReminderFirstSpriteNumber;
+ int saveReminderSecondSpriteNumber;
+
+ int leftPortraitXOffset;
+ int leftPortraitYOffset;
+ int rightPortraitXOffset;
+ int rightPortraitYOffset;
+
+ int inventoryUpButtonIndex;
+ int inventoryDownButtonIndex;
+ int inventoryRows;
+ int inventoryColumns;
+
+ int mainPanelXOffset;
+ int mainPanelYOffset;
+ int mainPanelButtonsCount;
+ PanelButton *mainPanelButtons;
+
+ int converseMaxTextWidth;
+ int converseTextHeight;
+ int converseTextLines;
+ int converseUpButtonIndex;
+ int converseDownButtonIndex;
+
+ int conversePanelXOffset;
+ int conversePanelYOffset;
+ int conversePanelButtonsCount;
+ PanelButton *conversePanelButtons;
+
+ int optionSaveFilePanelIndex;
+ int optionSaveFileSliderIndex;
+ uint32 optionSaveFileVisible;
+
+ int optionPanelXOffset;
+ int optionPanelYOffset;
+ int optionPanelButtonsCount;
+ PanelButton *optionPanelButtons;
+
+ int quitPanelXOffset;
+ int quitPanelYOffset;
+ int quitPanelWidth;
+ int quitPanelHeight;
+ int quitPanelButtonsCount;
+ PanelButton *quitPanelButtons;
+
+ int loadPanelXOffset;
+ int loadPanelYOffset;
+ int loadPanelWidth;
+ int loadPanelHeight;
+ int loadPanelButtonsCount;
+ PanelButton *loadPanelButtons;
+
+ int saveEditIndex;
+ int savePanelXOffset;
+ int savePanelYOffset;
+ int savePanelWidth;
+ int savePanelHeight;
+ int savePanelButtonsCount;
+ PanelButton *savePanelButtons;
+
+ int protectEditIndex;
+ int protectPanelXOffset;
+ int protectPanelYOffset;
+ int protectPanelWidth;
+ int protectPanelHeight;
+ int protectPanelButtonsCount;
+ PanelButton *protectPanelButtons;
+};
+
+struct GameSoundInfo {
+ GameSoundTypes resourceType;
+ long frequency;
+ int sampleBits;
+ bool stereo;
+ bool isBigEndian;
+ bool isSigned;
+};
+
+struct GamePatchDescription {
+ const char *fileName;
+ uint16 fileType;
+ uint32 resourceId;
+ GameSoundInfo *soundInfo;
+};
+
+struct GameDescription {
+ const char *name;
+ SAGAGameType gameType;
+ GameIds gameId;
+ const char *extra;
+ GameDisplayInfo *gameDisplayInfo;
+ int startSceneNumber;
+ GameResourceDescription *resourceDescription;
+ int filesCount;
+ GameFileDescription *filesDescriptions;
+ int fontsCount;
+ GameFontDescription *fontDescriptions;
+ GameSoundInfo *voiceInfo;
+ GameSoundInfo *sfxInfo;
+ GameSoundInfo *musicInfo;
+ int patchesCount;
+ GamePatchDescription *patchDescriptions;
+ uint32 features;
+ Common::Language language;
+ Common::Platform platform;
+};
+
+#define FILE_MD5_BYTES 5000 \ No newline at end of file
diff --git a/engines/saga/resnames.h b/engines/saga/sagaresnames.h
index 21c332e066..21c332e066 100644
--- a/engines/saga/resnames.h
+++ b/engines/saga/sagaresnames.h
diff --git a/engines/saga/saveload.cpp b/engines/saga/saveload.cpp
index 5f37b090e2..22c983beb1 100644
--- a/engines/saga/saveload.cpp
+++ b/engines/saga/saveload.cpp
@@ -36,7 +36,7 @@
#include "saga/isomap.h"
#include "saga/music.h"
#include "saga/render.h"
-#include "saga/resnames.h"
+#include "saga/sagaresnames.h"
#include "saga/scene.h"
#include "saga/script.h"
diff --git a/engines/saga/scene.cpp b/engines/saga/scene.cpp
index f98c1f2661..8311308018 100644
--- a/engines/saga/scene.cpp
+++ b/engines/saga/scene.cpp
@@ -43,7 +43,7 @@
#include "saga/stream.h"
#include "saga/actor.h"
#include "saga/rscfile.h"
-#include "saga/resnames.h"
+#include "saga/sagaresnames.h"
#include "graphics/ilbm.h"
#include "common/util.h"
diff --git a/engines/saga/script.h b/engines/saga/script.h
index 218d92c4c3..1d922013ec 100644
--- a/engines/saga/script.h
+++ b/engines/saga/script.h
@@ -58,43 +58,6 @@ enum AddressTypes {
kAddressIndex = 7 // index from id*/
};
-enum VerbTypeIds {
- kVerbITENone = 0,
- kVerbITEPickUp = 1,
- kVerbITELookAt = 2,
- kVerbITEWalkTo = 3,
- kVerbITETalkTo = 4,
- kVerbITEOpen = 5,
- kVerbITEClose = 6,
- kVerbITEGive = 7,
- kVerbITEUse = 8,
- kVerbITEOptions = 9,
- kVerbITEEnter = 10,
- kVerbITELeave = 11,
- kVerbITEBegin = 12,
- kVerbITEWalkOnly = 13,
- kVerbITELookOnly = 14,
-
-
- kVerbIHNMNone = 0,
- kVerbIHNMWalk = 1,
- kVerbIHNMLookAt = 2,
- kVerbIHNMTake = 3,
- kVerbIHNMUse = 4,
- kVerbIHNMTalkTo = 5,
- kVerbIHNMSwallow = 6,
- kVerbIHNMGive = 7,
- kVerbIHNMPush = 8,
- kVerbIHNMOptions = 9,
- kVerbIHNMEnter = 10,
- kVerbIHNMLeave = 11,
- kVerbIHNMBegin = 12,
- kVerbIHNMWalkOnly = 13,
- kVerbIHNMLookOnly = 14,
-
- kVerbTypeIdsMax = kVerbITELookOnly + 1
-};
-
enum VerbTypes {
kVerbNone,
kVerbWalkTo,
diff --git a/engines/saga/sfuncs.cpp b/engines/saga/sfuncs.cpp
index 9caa15150b..5ae7bba621 100644
--- a/engines/saga/sfuncs.cpp
+++ b/engines/saga/sfuncs.cpp
@@ -45,7 +45,7 @@
#include "saga/scene.h"
#include "saga/isomap.h"
-#include "saga/resnames.h"
+#include "saga/sagaresnames.h"
#include "common/config-manager.h"
diff --git a/engines/saga/sndres.cpp b/engines/saga/sndres.cpp
index 7849ddecd0..3901999eab 100644
--- a/engines/saga/sndres.cpp
+++ b/engines/saga/sndres.cpp
@@ -27,7 +27,7 @@
#include "saga/saga.h"
#include "saga/itedata.h"
-#include "saga/resnames.h"
+#include "saga/sagaresnames.h"
#include "saga/rscfile.h"
#include "saga/sndres.h"
#include "saga/sound.h"
diff --git a/engines/saga/sprite.cpp b/engines/saga/sprite.cpp
index 5309b1f109..89baf3c0de 100644
--- a/engines/saga/sprite.cpp
+++ b/engines/saga/sprite.cpp
@@ -27,7 +27,7 @@
#include "saga/gfx.h"
#include "saga/scene.h"
-#include "saga/resnames.h"
+#include "saga/sagaresnames.h"
#include "saga/rscfile.h"
#include "saga/font.h"
diff --git a/engines/saga/sthread.cpp b/engines/saga/sthread.cpp
index a186a61a8b..74310e2a09 100644
--- a/engines/saga/sthread.cpp
+++ b/engines/saga/sthread.cpp
@@ -34,7 +34,7 @@
#include "saga/stream.h"
#include "saga/scene.h"
-#include "saga/resnames.h"
+#include "saga/sagaresnames.h"
namespace Saga {