static void SV_Map_f( void ) { Cvar_Set( sCVARNAME_PLAYERSAVE, ""); Cvar_Set( "spawntarget", "" ); SCR_UnprecacheScreenshot(); ForceReload_e eForceReload = eForceReload_NOTHING; // default for normal load if ( !Q_stricmp( Cmd_Argv(0), "devmapbsp") ) { eForceReload = eForceReload_BSP; } else if ( !Q_stricmp( Cmd_Argv(0), "devmapmdl") ) { eForceReload = eForceReload_MODELS; } else if ( !Q_stricmp( Cmd_Argv(0), "devmapall") ) { eForceReload = eForceReload_ALL; } SV_Map_( eForceReload ); // set the cheat value // if the level was started with "map <levelname>", then // cheats will not be allowed. If started with "devmap <levelname>" // then cheats will be allowed if ( !Q_stricmpn( Cmd_Argv(0), "devmap", 6 ) ) { Cvar_Set( "helpUsObi", "1" ); } else { Cvar_Set( "helpUsObi", "0" ); } Cvar_Set( "cg_missionstatusscreen", "0" );//reset }
void NORETURN QDECL Com_Error( int code, const char *fmt, ... ) { va_list argptr; static int lastErrorTime; static int errorCount; int currentTime; if ( com_errorEntered ) { Sys_Error( "recursive error after: %s", com_errorMessage ); } com_errorEntered = qtrue; // when we are running automated scripts, make sure we // know if anything failed if ( com_buildScript && com_buildScript->integer ) { code = ERR_FATAL; } // if we are getting a solid stream of ERR_DROP, do an ERR_FATAL currentTime = Sys_Milliseconds(); if ( currentTime - lastErrorTime < 100 ) { if ( ++errorCount > 3 ) { code = ERR_FATAL; } } else { errorCount = 0; } lastErrorTime = currentTime; #ifdef JK2_MODE SCR_UnprecacheScreenshot(); #endif va_start (argptr,fmt); Q_vsnprintf (com_errorMessage, sizeof(com_errorMessage), fmt, argptr); va_end (argptr); if ( code != ERR_DISCONNECT ) { Cvar_Get("com_errorMessage", "", CVAR_ROM); //give com_errorMessage a default so it won't come back to life after a resetDefaults Cvar_Set("com_errorMessage", com_errorMessage); } SG_Shutdown(); // close any file pointers if ( code == ERR_DISCONNECT || code == ERR_DROP ) { throw code; } else { SV_Shutdown (va("Server fatal crashed: %s\n", com_errorMessage)); CL_Shutdown (); } Com_Shutdown (); Sys_Error ("%s", com_errorMessage); }
void QDECL Com_Error( int code, const char *fmt, ... ) { va_list argptr; // when we are running automated scripts, make sure we // know if anything failed if ( com_buildScript && com_buildScript->integer ) { code = ERR_FATAL; } if ( com_errorEntered ) { Sys_Error( "recursive error after: %s", com_errorMessage ); } com_errorEntered = qtrue; //reset some game stuff here SCR_UnprecacheScreenshot(); va_start (argptr,fmt); vsprintf (com_errorMessage,fmt,argptr); va_end (argptr); if ( code != ERR_DISCONNECT ) { Cvar_Set("com_errorMessage", com_errorMessage); } SG_Shutdown(); // close any file pointers if ( code == ERR_DISCONNECT ) { CL_Disconnect(); CL_FlushMemory(); CL_StartHunkUsers(); com_errorEntered = qfalse; throw ("DISCONNECTED\n"); } else if ( code == ERR_DROP ) { // If loading/saving caused the crash/error - delete the temp file SG_WipeSavegame("current"); // delete file SV_Shutdown (va("Server crashed: %s\n", com_errorMessage)); CL_Disconnect(); CL_FlushMemory(); CL_StartHunkUsers(); Com_Printf (S_COLOR_RED"********************\n"S_COLOR_MAGENTA"ERROR: %s\n"S_COLOR_RED"********************\n", com_errorMessage); com_errorEntered = qfalse; throw ("DROPPED\n"); } else if ( code == ERR_NEED_CD ) { SV_Shutdown( "Server didn't have CD\n" ); if ( com_cl_running && com_cl_running->integer ) { CL_Disconnect(); CL_FlushMemory(); CL_StartHunkUsers(); com_errorEntered = qfalse; } else { Com_Printf("Server didn't have CD\n" ); } throw ("NEED CD\n"); } else { CL_Shutdown (); SV_Shutdown (va(S_COLOR_RED"Server fatal crashed: %s\n", com_errorMessage)); } Com_Shutdown (); Sys_Error ("%s", com_errorMessage); }