int main(int argc, char **argv) { int i; byte *mvd_data = NULL; long mvd_len = 0; Sys_InitDoubleTime(); LogVarHashTable_Init(); if (!Cmdline_Parse(argc, argv)) { ShowHelp(argv[0]); return 1; } if (!Log_ParseOutputTemplates(&logger, cmdargs.template_file) && !Log_ParseOutputTemplates(&logger, "template.dat")) { Sys_PrintError("Failed to load template file.\n"); return 1; } if (!LoadFragFile(cmdargs.frag_file, false) && !LoadFragFile("fragfile.dat", false)) { Sys_PrintError("Failed to load fragfile.dat\n"); return 1; } for (i = 0; i < cmdargs.mvd_files_count; i++) { // Read the mvd demo file. if (!COM_ReadFile(cmdargs.mvd_files[i], &mvd_data, &mvd_len)) { Sys_PrintError("Failed to read %s.\n", cmdargs.mvd_files[i]); } else { char *demopath = cmdargs.mvd_files[i]; // Parse the demo. Sys_Print("Starting to parse %s\n", cmdargs.mvd_files[i]); MVD_Parser_StartParse(demopath, mvd_data, mvd_len); } Q_free(mvd_data); } Log_ClearLogger(&logger); CmdArgs_Clear(); return 0; }
/* ============= Sys_Init Quake calls this so the system can register variables before host_hunklevel is marked ============= */ void Sys_Init (void) { qbool WinNT; OSVERSIONINFO vinfo; // make sure the timer is high precision, otherwise // NT gets 18ms resolution timeBeginPeriod( 1 ); vinfo.dwOSVersionInfoSize = sizeof(vinfo); if (!GetVersionEx (&vinfo)) Sys_Error ("Couldn't get OS info"); if (vinfo.dwMajorVersion < 4 || vinfo.dwPlatformId == VER_PLATFORM_WIN32s) Sys_Error (SERVER_NAME " requires at least Win95 or NT 4.0"); WinNT = (vinfo.dwPlatformId == VER_PLATFORM_WIN32_NT ? true : false); Cvar_Register (&sys_nostdout); Cvar_Register (&sys_sleep); if (COM_CheckParm ("-nopriority")) { Cvar_Set (&sys_sleep, "0"); } else { if ( ! SetPriorityClass (GetCurrentProcess(), HIGH_PRIORITY_CLASS)) Con_Printf ("SetPriorityClass() failed\n"); else Con_Printf ("Process priority class set to HIGH\n"); // sys_sleep > 0 seems to cause packet loss on WinNT (why?) if (WinNT) Cvar_Set (&sys_sleep, "0"); } Sys_InitDoubleTime (); }