aboutsummaryrefslogtreecommitdiff
path: root/engines/gob/gob.h
diff options
context:
space:
mode:
authorMax Horn2006-02-11 22:45:04 +0000
committerMax Horn2006-02-11 22:45:04 +0000
commit26ee630756ebdd7c96bccede0881a8c8b98e8f2b (patch)
tree26e378d5cf990a2b81c2c96e9e683a7f333b62e8 /engines/gob/gob.h
parent2a9a0d4211b1ea5723f1409d91cb95de8984429e (diff)
downloadscummvm-rg350-26ee630756ebdd7c96bccede0881a8c8b98e8f2b.tar.gz
scummvm-rg350-26ee630756ebdd7c96bccede0881a8c8b98e8f2b.tar.bz2
scummvm-rg350-26ee630756ebdd7c96bccede0881a8c8b98e8f2b.zip
Moved engines to the new engines/ directory
svn-id: r20582
Diffstat (limited to 'engines/gob/gob.h')
-rw-r--r--engines/gob/gob.h129
1 files changed, 129 insertions, 0 deletions
diff --git a/engines/gob/gob.h b/engines/gob/gob.h
new file mode 100644
index 0000000000..211ec124ad
--- /dev/null
+++ b/engines/gob/gob.h
@@ -0,0 +1,129 @@
+/* ScummVM - Scumm Interpreter
+ * Copyright (C) 2004 The ScummVM project
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * $URL$
+ * $Id$
+ *
+ */
+
+#ifndef GOB_GOB_H
+#define GOB_GOB_H
+
+#include "common/stdafx.h"
+#include "common/system.h"
+#include "sound/mixer.h"
+#include "common/config-manager.h"
+
+#include "base/engine.h"
+#include "base/gameDetector.h"
+
+#include "gob/dataio.h"
+#include "gob/video.h"
+#include "common/file.h"
+
+namespace Gob {
+
+class Game;
+class Snd;
+class Video;
+class Global;
+class Draw;
+class Anim;
+class CDROM;
+class DataIO;
+class Goblin;
+class Init;
+class Inter;
+class Map;
+class Mult;
+class Pack;
+class PalAnim;
+class Parse;
+class Scenery;
+class GTimer;
+class Util;
+class Music;
+
+#define VAR_OFFSET(offs) (*(uint32 *)(_vm->_global->_inter_variables + (offs)))
+#define VAR(var) VAR_OFFSET((var) << 2)
+#define VAR_ADDRESS(var) (&VAR(var))
+
+#define WRITE_VAR_OFFSET(offs, val) (VAR_OFFSET(offs) = (val))
+#define WRITE_VAR(var, val) WRITE_VAR_OFFSET((var) << 2, (val))
+
+enum {
+ GF_GOB1 = 1 << 0,
+ GF_GOB2 = 1 << 1,
+ GF_GOB3 = 1 << 2,
+ GF_WOODRUFF = 1 << 3,
+ GF_CD = 1 << 4,
+ GF_MAC = 1 << 5
+};
+
+struct GobGameSettings {
+ const char *gameid;
+ const char *description;
+ uint32 features;
+ const char *md5sum;
+ GameSettings toGameSettings() const {
+ GameSettings dummy = { gameid, description, features };
+ return dummy;
+ }
+};
+
+class GobEngine : public Engine {
+ void errorString(const char *buf_input, char *buf_output);
+
+protected:
+ int go();
+ int init(GameDetector &detector);
+
+public:
+ GobEngine(GameDetector * detector, OSystem * syst, uint32 features);
+ virtual ~GobEngine();
+
+ void shutdown();
+
+ Common::RandomSource _rnd;
+
+ int32 _features;
+ bool _copyProtection;
+
+ Game *_game;
+ Snd *_snd;
+ Video *_video;
+ Global *_global;
+ Draw *_draw;
+ Anim *_anim;
+ CDROM *_cdrom;
+ DataIO *_dataio;
+ Goblin *_goblin;
+ Init *_init;
+ Map *_map;
+ Mult *_mult;
+ Pack *_pack;
+ PalAnim *_palanim;
+ Parse *_parse;
+ Scenery *_scenery;
+ GTimer *_gtimer;
+ Util *_util;
+ Inter *_inter;
+ Music *_music;
+};
+
+} // End of namespace Gob
+#endif