]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - host.c
removed \n from all Host_Error, Sys_Error, PRVM_ERROR, PF_ERROR calls, since Host_Err...
[xonotic/darkplaces.git] / host.c
diff --git a/host.c b/host.c
index 0fae48ff0a45a53d1d74e93e93824ee797278d80..eaa3215585ed169962bb6a647166c0fda98cc8e7 100644 (file)
--- a/host.c
+++ b/host.c
@@ -71,6 +71,7 @@ cvar_t cl_maxfps = {CVAR_SAVE, "cl_maxfps", "1000"};
 cvar_t sv_echobprint = {CVAR_SAVE, "sv_echobprint", "1"};
 
 cvar_t sys_ticrate = {CVAR_SAVE, "sys_ticrate","0.05"};
+cvar_t sv_fixedframeratesingleplayer = {0, "sv_fixedframeratesingleplayer", "0"};
 cvar_t serverprofile = {0, "serverprofile","0"};
 
 cvar_t fraglimit = {CVAR_NOTIFY, "fraglimit","0"};
@@ -147,7 +148,7 @@ void Host_Error (const char *error, ...)
        Host_ShutdownServer (false);
 
        if (cls.state == ca_dedicated)
-               Sys_Error ("Host_Error: %s\n",hosterrorstring2);        // dedicated servers exit
+               Sys_Error ("Host_Error: %s",hosterrorstring2);  // dedicated servers exit
 
        CL_Disconnect ();
        cls.demonum = -1;
@@ -176,7 +177,7 @@ void Host_ServerOptions (void)
                if (i && i + 1 < com_argc && atoi (com_argv[i+1]) >= 1)
                        svs.maxclients = atoi (com_argv[i+1]);
                if (COM_CheckParm ("-listen"))
-                       Con_Printf ("Only one of -dedicated or -listen can be specified");
+                       Con_Printf ("Only one of -dedicated or -listen can be specified\n");
                // default sv_public on for dedicated servers (often hosted by serious administrators), off for listen servers (often hosted by clueless users)
                Cvar_SetValue("sv_public", 1);
        }
@@ -201,7 +202,7 @@ void Host_ServerOptions (void)
 
        svs.maxclients = bound(1, svs.maxclients, MAX_SCOREBOARD);
 
-       svs.clients = Mem_Alloc(sv_mempool, sizeof(client_t) * svs.maxclients);
+       svs.clients = (client_t *)Mem_Alloc(sv_mempool, sizeof(client_t) * svs.maxclients);
 
        if (svs.maxclients > 1 && !deathmatch.integer)
                Cvar_SetValueQuick(&deathmatch, 1);
@@ -225,6 +226,7 @@ void Host_InitLocal (void)
        Cvar_RegisterVariable (&sv_echobprint);
 
        Cvar_RegisterVariable (&sys_ticrate);
+       Cvar_RegisterVariable (&sv_fixedframeratesingleplayer);
        Cvar_RegisterVariable (&serverprofile);
 
        Cvar_RegisterVariable (&fraglimit);
@@ -477,7 +479,7 @@ void Host_ShutdownServer(qboolean crash)
 {
        int i, count;
        sizebuf_t buf;
-       char message[4];
+       unsigned char message[4];
 
        Con_DPrintf("Host_ShutdownServer\n");
 
@@ -586,23 +588,17 @@ qboolean Host_FilterTime (double time)
        timeleft = timecap - (realtime - oldrealtime);
        if (timeleft > 0)
        {
+#if 1
+               if (timeleft * 1000 >= 10)
+                       Sys_Sleep(1);
+#else
                int msleft;
                // don't totally hog the CPU
-               if (cls.state == ca_dedicated)
-               {
-                       // if dedicated, try to use as little cpu as possible by waiting
-                       // just a little longer than necessary
-                       // (yes this means it doesn't quite keep up with the framerate)
-                       msleft = (int)ceil(timeleft * 1000);
-               }
-               else
-               {
-                       // if not dedicated, try to hit exactly a steady framerate by not
-                       // sleeping the full amount
-                       msleft = (int)floor(timeleft * 1000);
-               }
-               if (msleft > 0)
+               // try to hit exactly a steady framerate by not sleeping the full amount
+               msleft = (int)floor(timeleft * 1000);
+               if (msleft >= 10)
                        Sys_Sleep(msleft);
+#endif
                return false;
        }
 
@@ -676,7 +672,7 @@ void Host_ServerFrame (void)
                // setup the VM frame
                SV_VM_Begin();
 
-               if (cl.islocalgame)
+               if (cl.islocalgame && !sv_fixedframeratesingleplayer.integer)
                        advancetime = min(sv.timer, sys_ticrate.value);
                else
                        advancetime = sys_ticrate.value;