aboutsummaryrefslogtreecommitdiff
path: root/engines/saga/saga.h
diff options
context:
space:
mode:
Diffstat (limited to 'engines/saga/saga.h')
-rw-r--r--engines/saga/saga.h331
1 files changed, 330 insertions, 1 deletions
diff --git a/engines/saga/saga.h b/engines/saga/saga.h
index 832d5292bc..5aa568d271 100644
--- a/engines/saga/saga.h
+++ b/engines/saga/saga.h
@@ -87,8 +87,337 @@ enum ERRORCODE {
SUCCESS = 0
};
-#include "sagagame.h"
+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_WINDEMO3,
+ 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 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;
+ const GameSoundInfo *soundInfo;
+};
+struct SAGAGameDescription;
enum GameObjectTypes {
kGameObjectNone = 0,