diff options
author | Max Horn | 2003-09-18 02:07:18 +0000 |
---|---|---|
committer | Max Horn | 2003-09-18 02:07:18 +0000 |
commit | be9d4066e147e1f7eebd5b554f11b876f93f3ae9 (patch) | |
tree | 98416196bcb39d49d4effb582a6e0bba165249b1 /base/engine.h | |
parent | ec0d41137ca8bf414f674afd6f6103ad6e9bf0ac (diff) | |
download | scummvm-rg350-be9d4066e147e1f7eebd5b554f11b876f93f3ae9.tar.gz scummvm-rg350-be9d4066e147e1f7eebd5b554f11b876f93f3ae9.tar.bz2 scummvm-rg350-be9d4066e147e1f7eebd5b554f11b876f93f3ae9.zip |
moved engine.* to base; this fixes some linking issues when building a barebone ScummVM (or maybe I just want to increase our CVS stats? <g>)
svn-id: r10287
Diffstat (limited to 'base/engine.h')
-rw-r--r-- | base/engine.h | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/base/engine.h b/base/engine.h new file mode 100644 index 0000000000..d62a4de3cd --- /dev/null +++ b/base/engine.h @@ -0,0 +1,88 @@ +/* ScummVM - Scumm Interpreter + * Copyright (C) 2002-2003 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * $Header$ + */ + +#ifndef ENGINE_H +#define ENGINE_H + +#include "common/scummsys.h" +#include "common/system.h" + +extern const char *gScummVMVersion; // e.g. "0.4.1" +extern const char *gScummVMBuildDate; // e.g. "2003-06-24" +extern const char *gScummVMFullVersion; // e.g. "ScummVM 0.4.1 (2003-06-24)" + +// TODO: Get rid of these enums. Ideally, GIDs should be +// 100% local to the module they are defined in. Right now +// we can't make this change since some of the backends +// and also gui/launcher.cpp contain tests on the GID. +// Ideally, all those should be converted to something else. +enum GameId { + GID_SCUMM_FIRST = 1, + GID_SCUMM_LAST = GID_SCUMM_FIRST + 99, + + // Simon the Sorcerer + GID_SIMON_FIRST, + GID_SIMON_LAST = GID_SIMON_FIRST + 49, + + // Beneath a Steel Sky + GID_SKY_FIRST, + GID_SKY_LAST = GID_SKY_FIRST + 49, + + // Broken Sword 2 + GID_SWORD2_FIRST, + GID_SWORD2_LAST = GID_SWORD2_FIRST + 49 +}; + + +class SoundMixer; +class GameDetector; +class Timer; +struct TargetSettings; + +/* FIXME - BIG HACK for MidiEmu */ +extern OSystem *g_system; + +class Engine { +public: + OSystem *_system; + SoundMixer *_mixer; + Timer * _timer; + +protected: + char *_gameDataPath; + +public: + Engine(GameDetector *detector, OSystem *syst); + virtual ~Engine(); + + // Invoke the main engine loop using this method + virtual void go() = 0; + + // Get the save game dir path + const char *getSavePath() const; + + // Specific for each engine preparare of erroe string + virtual void errorString(const char *buf_input, char *buf_output) = 0; +}; + +extern Engine *g_engine; + +#endif + |