[Scummvm-cvs-logs] CVS: scummvm/common engine.cpp,1.16,1.17 engine.h,1.17,1.18
Pawel Kolodziejski
aquadran at users.sourceforge.net
Fri Mar 7 07:39:07 CET 2003
Update of /cvsroot/scummvm/scummvm/common
In directory sc8-pr-cvs1:/tmp/cvs-serv13959/common
Modified Files:
engine.cpp engine.h
Log Message:
implemented formating string error for each engine
Index: engine.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/common/engine.cpp,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -d -r1.16 -r1.17
--- engine.cpp 6 Mar 2003 21:45:17 -0000 1.16
+++ engine.cpp 7 Mar 2003 15:37:56 -0000 1.17
@@ -28,9 +28,11 @@
/* FIXME - BIG HACK for MidiEmu */
OSystem *g_system = 0;
SoundMixer *g_mixer = 0;
+Engine *g_engine = 0;
Engine::Engine(GameDetector *detector, OSystem *syst)
: _system(syst) {
+ g_engine = this;
_mixer = new SoundMixer();
_gameDataPath = detector->_gameDataPath;
@@ -91,6 +93,42 @@
}
return engine;
+}
+
+void NORETURN CDECL error(const char *s, ...) {
+ char buf_input[1024];
+ char buf_output[1024];
+ 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 )
+ OutputDebugString(buf_output);
+#endif
+
+#if defined ( _WIN32_WCE )
+ drawError(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, ...) {
Index: engine.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/common/engine.h,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -d -r1.17 -r1.18
--- engine.h 6 Mar 2003 21:45:19 -0000 1.17
+++ engine.h 7 Mar 2003 15:37:57 -0000 1.18
@@ -59,7 +59,12 @@
// Create a new engine object based on the detector - either
// a Scumm or a SimonState object currently.
static Engine *createFromDetector(GameDetector *detector, OSystem *syst);
+
+ // Specific for each engine preparare of erroe string
+ virtual void errorString(const char *buf_input, char *buf_output) = 0;
};
+
+extern Engine *g_engine;
#if defined(__GNUC__)
void CDECL error(const char *s, ...) NORETURN;
More information about the Scummvm-git-logs
mailing list