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 /common | |
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 'common')
-rw-r--r-- | common/config-file.cpp | 2 | ||||
-rw-r--r-- | common/engine.cpp | 199 | ||||
-rw-r--r-- | common/engine.h | 88 | ||||
-rw-r--r-- | common/module.mk | 1 | ||||
-rw-r--r-- | common/scummsys.h | 35 | ||||
-rw-r--r-- | common/util.cpp | 2 |
6 files changed, 3 insertions, 324 deletions
diff --git a/common/config-file.cpp b/common/config-file.cpp index 9294a6a52a..c24419258b 100644 --- a/common/config-file.cpp +++ b/common/config-file.cpp @@ -22,7 +22,7 @@ #include "stdafx.h" #include "common/config-file.h" -#include "common/engine.h" // for debug() +#include "base/engine.h" // for debug() #define MAXLINELEN 256 diff --git a/common/engine.cpp b/common/engine.cpp deleted file mode 100644 index 9f127fc53e..0000000000 --- a/common/engine.cpp +++ /dev/null @@ -1,199 +0,0 @@ -/* 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$ - */ - -#include "stdafx.h" -#if defined(_MSC_VER) -#include <malloc.h> -#endif -#include "common/config-file.h" -#include "common/engine.h" -#include "base/gameDetector.h" -#include "common/timer.h" -#include "sound/mixer.h" - -/* FIXME - BIG HACK for MidiEmu */ -OSystem *g_system = 0; -Engine *g_engine = 0; - -Engine::Engine(GameDetector *detector, OSystem *syst) - : _system(syst) { - g_engine = this; - _mixer = detector->createMixer(); - - _gameDataPath = detector->_gameDataPath; - - g_system = _system; // FIXME - BIG HACK for MidiEmu - - _timer = new Timer(_system); -} - -Engine::~Engine() { - delete _mixer; - delete _timer; -} - -const char *Engine::getSavePath() const { - const char *dir = NULL; - -#ifdef _WIN32_WCE - dir = _gameDataPath; -#elif defined(__PALM_OS__) - dir = SCUMMVM_SAVEPATH; -#else - -#if !defined(MACOS_CARBON) - dir = getenv("SCUMMVM_SAVEPATH"); -#endif - - // If SCUMMVM_SAVEPATH was not specified, try to use game specific savepath from config - if (!dir || dir[0] == 0) - dir = g_config->get("savepath"); - - // If SCUMMVM_SAVEPATH was not specified, try to use general path from config - if (!dir || dir[0] == 0) - dir = g_config->get("savepath", "scummvm"); - - // If no save path was specified, use no directory prefix - if (dir == NULL) - dir = ""; -#endif - - return dir; -} - -void NORETURN CDECL error(const char *s, ...) { -#ifdef __PALM_OS__ - char buf_input[256]; // 1024 is too big overflow the stack - char buf_output[256]; -#else - char buf_input[1024]; - char buf_output[1024]; -#endif - va_list va; - - va_start(va, s); - vsprintf(buf_input, s, va); - va_end(va); - - if (g_engine) { - g_engine->errorString(buf_input, buf_output); - } else { - strcpy(buf_output, buf_input); - } - -#ifdef __GP32__ //ph0x FIXME? - printf("ERROR: %s\n", buf_output); -#else - fprintf(stderr, "%s!\n", buf_output); -#endif - -#if defined( USE_WINDBG ) -#if defined( _WIN32_WCE ) - TCHAR buf_output_unicode[1024]; - MultiByteToWideChar(CP_ACP, 0, buf_output, strlen(buf_output) + 1, buf_output_unicode, sizeof(buf_output_unicode)); - OutputDebugString(buf_output_unicode); -#else - OutputDebugString(buf_output); -#endif -#endif - -#if defined ( _WIN32_WCE ) - drawError(buf_output); -#endif - -#ifdef __PALM_OS__ - PalmFatalError(buf_output); -#endif - - // Finally exit. quit() will terminate the program if g_system iss present - if (g_system) - g_system->quit(); - - exit(1); -} - -void CDECL warning(const char *s, ...) { -#ifdef __PALM_OS__ - char buf[256]; // 1024 is too big overflow the stack -#else - char buf[1024]; -#endif - va_list va; - - va_start(va, s); - vsprintf(buf, s, va); - va_end(va); - -#ifdef __GP32__ //ph0x FIXME: implement fprint? - printf("WARNING: %s\n", buf); -#else - fprintf(stderr, "WARNING: %s!\n", buf); -#endif -#if defined( USE_WINDBG ) - strcat(buf, "\n"); -#if defined( _WIN32_WCE ) - TCHAR buf_unicode[1024]; - MultiByteToWideChar(CP_ACP, 0, buf, strlen(buf) + 1, buf_unicode, sizeof(buf_unicode)); - OutputDebugString(buf_unicode); -#else - OutputDebugString(buf); -#endif -#endif -} - -uint16 _debugLevel = 0; - -void CDECL debug(int level, const char *s, ...) { -#ifdef __PALM_OS__ - char buf[256]; // 1024 is too big overflow the stack -#else - char buf[1024]; -#endif - va_list va; - - if (level > _debugLevel) - return; - - va_start(va, s); - vsprintf(buf, s, va); - va_end(va); - printf("%s\n", buf); - -#if defined( USE_WINDBG ) - strcat(buf, "\n"); -#if defined( _WIN32_WCE ) - TCHAR buf_unicode[1024]; - MultiByteToWideChar(CP_ACP, 0, buf, strlen(buf) + 1, buf_unicode, sizeof(buf_unicode)); - OutputDebugString(buf_unicode); -#else - OutputDebugString(buf); -#endif -#endif - - fflush(stdout); -} - -void checkHeap() { -#if defined(_MSC_VER) - if (_heapchk() != _HEAPOK) { - error("Heap is invalid!"); - } -#endif -} diff --git a/common/engine.h b/common/engine.h deleted file mode 100644 index d62a4de3cd..0000000000 --- a/common/engine.h +++ /dev/null @@ -1,88 +0,0 @@ -/* 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 - diff --git a/common/module.mk b/common/module.mk index b38c3e2ba7..059abd5dbe 100644 --- a/common/module.mk +++ b/common/module.mk @@ -2,7 +2,6 @@ MODULE := common MODULE_OBJS := \ common/config-file.o \ - common/engine.o \ common/file.o \ common/scaler.o \ common/str.o \ diff --git a/common/scummsys.h b/common/scummsys.h index 5831275502..b08f520aa6 100644 --- a/common/scummsys.h +++ b/common/scummsys.h @@ -25,15 +25,11 @@ #include <stdlib.h> #include <stdio.h> -// TODO - use config.h, generated by configure +// Use config.h, generated by configure #if defined(HAVE_CONFIG_H) #include "config.h" #endif -#if defined(USE_MAD) || defined(USE_VORBIS) -#define COMPRESSED_SOUND_FILE -#endif - #if defined(_MSC_VER) #define scumm_stricmp stricmp @@ -189,35 +185,6 @@ #define NEWGUI_256 -#elif defined(macintosh) - #include <stdio.h> - - #include "macos.h" - - #define scumm_stricmp strcmp// FIXME - this is definitly wrong. Try strcasecmp? - - #define CHECK_HEAP - #define SCUMM_BIG_ENDIAN - - #define FORCEINLINE inline - #define CDECL - - typedef unsigned char byte; - typedef unsigned char uint8; - typedef unsigned short uint16; - typedef unsigned long uint32; - typedef unsigned int uint; - typedef signed char int8; - typedef signed short int16; - typedef signed long int32; - - #define START_PACK_STRUCTS pack (1) - #define END_PACK_STRUCTS pack () - #define GCC_PACK - #define NORETURN - #define USE_QTMUSIC - #define NEED_STRDUP - #elif defined(__MORPHOS__) #define scumm_stricmp stricmp #define scumm_strnicmp strnicmp diff --git a/common/util.cpp b/common/util.cpp index 60bbd14df7..7732372dbb 100644 --- a/common/util.cpp +++ b/common/util.cpp @@ -19,7 +19,7 @@ */ #include "stdafx.h" -#include "common/engine.h" +#include "base/engine.h" #include "common/util.h" // |