void STACK_ARGS I_FatalError (const char *error, ...) { static BOOL alreadyThrown = false; gameisdead = true; if (!alreadyThrown) // ignore all but the first message -- killough { alreadyThrown = true; char errortext[MAX_ERRORTEXT]; int index; va_list argptr; va_start (argptr, error); index = vsprintf (errortext, error, argptr); #ifdef WIN32 sprintf (errortext + index, "\nGetLastError = %ld", GetLastError()); #endif va_end (argptr); throw CFatalError (errortext); } if (!has_exited) // If it hasn't exited yet, exit now -- killough { has_exited = 1; // Prevent infinitely recursive exits -- killough call_terms(); exit(-1); } }
void STACK_ARGS I_FatalError (const char *error, ...) { static BOOL alreadyThrown = false; gameisdead = true; if (!alreadyThrown) // ignore all but the first message -- killough { char errortext[MAX_ERRORTEXT]; va_list argptr; va_start (argptr, error); int index = vsprintf (errortext, error, argptr); sprintf (errortext + index, "\nSDL_GetError = \"%s\"", SDL_GetError()); va_end (argptr); throw CFatalError (errortext); } if (!has_exited) // If it hasn't exited yet, exit now -- killough { has_exited = 1; // Prevent infinitely recursive exits -- killough call_terms(); exit(EXIT_FAILURE); } }
void STACK_ARGS I_FatalError(const char *error, ...) { static BOOL alreadyThrown = false; gameisdead = true; if (!alreadyThrown) // ignore all but the first message -- killough { alreadyThrown = true; char errortext[MAX_ERRORTEXT]; va_list argptr; va_start(argptr, error); myvsnprintf(errortext, MAX_ERRORTEXT, error, argptr); va_end(argptr); // Record error to log (if logging) if (Logfile) { fprintf(Logfile, "\n**** DIED WITH FATAL ERROR:\n%s\n", errortext); fflush(Logfile); } throw CFatalError(errortext); } if (!HasExited) // If it hasn't exited yet, exit now -- killough { HasExited = 1; // Prevent infinitely recursive exits -- killough exit(-1); } }
void STACK_ARGS I_FatalError (const char *error, ...) { static BOOL alreadyThrown = false; gameisdead = true; if (!alreadyThrown) // ignore all but the first message -- killough { char errortext[MAX_ERRORTEXT]; int index; va_list argptr; va_start (argptr, error); index = vsprintf (errortext, error, argptr); // GetLastError() is usually useless because we don't do a lot of Win32 stuff // sprintf (errortext + index, "\nGetLastError = %ld", GetLastError()); va_end (argptr); // Record error to log (if logging) if (Logfile) fprintf (Logfile, "\n**** DIED WITH FATAL ERROR:\n%s\n", errortext); throw CFatalError (errortext); } if (!has_exited) // If it hasn't exited yet, exit now -- killough { has_exited = 1; // Prevent infinitely recursive exits -- killough exit(-1); } }