]> git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - host.c
darkplaces now compiles in mingw
[xonotic/darkplaces.git] / host.c
diff --git a/host.c b/host.c
index 465c82d81aacb0e4707c789aa131260324c1a1d5..0f8987ec641140657e893bcff085491363a40fe0 100644 (file)
--- a/host.c
+++ b/host.c
@@ -44,9 +44,7 @@ double                realtime;                               // without any filtering or bounding
 double         oldrealtime;                    // last frame run
 int                    host_framecount;
 
-double         sv_frametime;
-
-int                    minimum_memory;
+int                    forcedeveloper;                 // used for -developer commandline parameter, hacky hacky
 
 client_t       *host_client;                   // current client
 
@@ -248,6 +246,8 @@ void Host_InitLocal (void)
        Cvar_RegisterVariable (&noexit);
        Cvar_RegisterVariable (&skill);
        Cvar_RegisterVariable (&developer);
+       if (forcedeveloper) // make it real now that the cvar is registered
+               Cvar_SetValue("developer", 1);
        Cvar_RegisterVariable (&deathmatch);
        Cvar_RegisterVariable (&coop);
 
@@ -442,8 +442,7 @@ void Host_ShutdownServer(qboolean crash)
        sv.active = false;
 
 // stop all client sounds immediately
-       if (cls.state == ca_connected)
-               CL_Disconnect ();
+       CL_Disconnect ();
 
 // flush any pending messages - like the score!!!
        start = Sys_DoubleTime();
@@ -604,20 +603,23 @@ void Host_ServerFrame (void)
        if (cls.state != ca_dedicated && svs.maxclients > 1 && ((realtime - lastservertime) < sys_ticrate.value))
                return;
 // run the world state
-       sv.frametime = pr_global_struct->frametime = frametimetotal;
+       if (!sv.paused && (svs.maxclients > 1 || key_dest == key_game) )
+               sv.frametime = pr_global_struct->frametime = frametimetotal;
+       else
+               sv.frametime = 0;
        frametimetotal = 0;
        lastservertime = realtime;
 //     pr_global_struct->frametime = host_frametime;
 
 // set the time and clear the general datagram
        SV_ClearDatagram ();
-       
+
 // check for new clients
        SV_CheckForNewClients ();
 
 // read client messages
        SV_RunClients ();
-       
+
 // move things around and think
 // always pause in single player if in console or menus
        if (!sv.paused && (svs.maxclients > 1 || key_dest == key_game) )
@@ -704,7 +706,7 @@ void _Host_Frame (float time)
        if (host_speeds.integer)
                time1 = Sys_DoubleTime ();
 
-       SCR_UpdateScreen ();
+       CL_UpdateScreen ();
 
        if (host_speeds.integer)
                time2 = Sys_DoubleTime ();
@@ -712,8 +714,10 @@ void _Host_Frame (float time)
 // update audio
        if (cls.signon == SIGNONS)
        {
-               S_Update (r_origin, vpn, vright, vup);
-               CL_DecayLights ();
+               // LordHavoc: this used to use renderer variables (eww)
+               vec3_t forward, right, up;
+               AngleVectors(cl.viewangles, forward, right, up);
+               S_Update (cl_entities[cl.viewentity].render.origin, forward, right, up);
        }
        else
                S_Update (vec3_origin, vec3_origin, vec3_origin, vec3_origin);
@@ -784,6 +788,13 @@ void Host_Init (void)
 {
        com_argc = host_parms.argc;
        com_argv = host_parms.argv;
+       // FIXME: this is evil, but possibly temporary
+       if (COM_CheckParm("-developer"))
+       {
+               forcedeveloper = true;
+               developer.integer = 1;
+               developer.value = 1;
+       }
 
        Memory_Init ();
        Cmd_Init ();