aboutsummaryrefslogtreecommitdiff
path: root/saga/saga.h
diff options
context:
space:
mode:
authorEugene Sandulenko2004-12-22 13:09:47 +0000
committerEugene Sandulenko2004-12-22 13:09:47 +0000
commit2fb8a8e45369b000b9f36d2433425ca48f6d9d13 (patch)
tree7b0c6ad4c4e004a2d58302e2cc57f226be7c13a8 /saga/saga.h
parenteaa0f3b9740b81fff59792de55f335c149344c69 (diff)
downloadscummvm-rg350-2fb8a8e45369b000b9f36d2433425ca48f6d9d13.tar.gz
scummvm-rg350-2fb8a8e45369b000b9f36d2433425ca48f6d9d13.tar.bz2
scummvm-rg350-2fb8a8e45369b000b9f36d2433425ca48f6d9d13.zip
o Moved GAME_* to SagaEngine object
o Renamed GAME_ITE_* to GID_ITE_* o Renamed GID_ITE and GID_IHNM to GType_ITE and GType_IHNM svn-id: r16258
Diffstat (limited to 'saga/saga.h')
-rw-r--r--saga/saga.h107
1 files changed, 103 insertions, 4 deletions
diff --git a/saga/saga.h b/saga/saga.h
index 2c59b1c6d2..2dbcef472b 100644
--- a/saga/saga.h
+++ b/saga/saga.h
@@ -28,6 +28,8 @@
#include "common/scummsys.h"
#include "base/engine.h"
#include "base/gameDetector.h"
+#include "base/plugins.h"
+
#include "common/util.h"
#include "common/stream.h"
#include "common/rect.h"
@@ -72,9 +74,9 @@ enum ERRORCODE {
SUCCESS = 0
};
-enum SAGAGameId {
- GID_ITE,
- GID_IHNM
+enum SAGAGameType {
+ GType_ITE,
+ GType_IHNM
};
enum scriptTimings {
@@ -86,6 +88,84 @@ struct CLICKAREA {
Point *points;
};
+
+#define IS_BIG_ENDIAN ((_vm->_features & GF_BIG_ENDIAN_DATA) != 0)
+#define IS_MAC_VERSION (_vm->_gameId == GID_ITE_MACDEMO)
+
+
+enum GAME_IDS {
+ GID_ITE_DEMO = 0,
+ GID_ITE_DISK = 1,
+ GID_ITE_CD = 2,
+ GID_IHNM_DEMO = 3,
+ GID_IHNM_CD = 4,
+ GID_ITE_WINDEMO = 5,
+ GID_ITE_MACDEMO = 6
+};
+
+enum GAME_FILETYPES {
+ GAME_RESOURCEFILE = 0x01,
+ GAME_SCRIPTFILE = 0x02,
+ GAME_SOUNDFILE = 0x04,
+ GAME_VOICEFILE = 0x08,
+ GAME_DEMOFILE = 0x10,
+ GAME_MUSICFILE = 0x20,
+ GAME_MUSICFILE_GM = 0x40,
+ GAME_MUSICFILE_FM = 0x80
+};
+
+enum GAME_SOUNDINFO_TYPES {
+ GAME_SOUND_PCM = 0,
+ GAME_SOUND_VOC,
+ GAME_SOUND_WAV,
+ GAME_SOUND_VOX
+};
+
+enum GAME_FONT_IDS {
+ GAME_FONT_SMALL = 0,
+ GAME_FONT_MEDIUM,
+ GAME_FONT_LARGE,
+ GAME_FONT_SMALL2,
+ GAME_FONT_MEDIUM2,
+ GAME_FONT_LARGE2,
+ GAME_FONT_LARGE3
+};
+
+enum GAME_FEATURES {
+ GF_VOX_VOICES = 1,
+ GF_BIG_ENDIAN_DATA = 2
+};
+
+struct GAME_DISPLAYINFO {
+ int logical_w;
+ int logical_h;
+ int scene_h;
+};
+
+struct GAME_SOUNDINFO {
+ int res_type;
+ long freq;
+ int sample_size;
+ int stereo;
+};
+
+struct GAME_FONTDESC {
+ uint16 font_id;
+ uint32 font_rn;
+};
+
+struct GAME_SCENEDESC {
+ uint32 scene_lut_rn;
+ uint32 first_scene;
+};
+
+struct GAME_RESOURCEDESC {
+ uint32 scene_lut_rn;
+ uint32 script_lut_rn;
+ uint32 command_panel_rn;
+ uint32 dialogue_panel_rn;
+};
+
inline int ticksToMSec(int tick) {
return tick * 1000 / kScriptTimeTicksPerSecond;
}
@@ -106,6 +186,10 @@ public:
int _soundEnabled;
int _musicEnabled;
+ int _gameId;
+ int _gameType;
+ uint32 _features;
+
SndRes *_sndRes;
Sound *_sound;
Music *_music;
@@ -159,8 +243,23 @@ public:
int processInput(void);
Point getMousePos();
- private:
+private:
Point _mousePos;
+
+public:
+ int initGame();
+ RSCFILE_CONTEXT *getFileContext(uint16 type, int param);
+ int getFontInfo(GAME_FONTDESC **, int *);
+ const GAME_RESOURCEDESC getResourceInfo(void);
+ const GAME_SOUNDINFO getSoundInfo(void);
+ int getDisplayInfo(GAME_DISPLAYINFO *disp_info);
+ int getSceneInfo(GAME_SCENEDESC *);
+
+private:
+ int loadLanguage();
+ int loadGame(uint16 game_n_p);
+ int detectGame(uint16 *game_n_p);
+
};
// FIXME: Global var. We use it until everything will be turned into objects