]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - host.c
Added appropriate prototypes to taskqueue.h, added call to TaskQueue_Shutdown in...
[xonotic/darkplaces.git] / host.c
diff --git a/host.c b/host.c
index 7e7bc56a7f2950de8df0e6c6a9ffa52273338326..1d0ad3b19b93cd00889a20b860ef8994f3fdf775 100644 (file)
--- a/host.c
+++ b/host.c
@@ -23,14 +23,13 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 
 #include <time.h>
 #include "libcurl.h"
-#ifdef CONFIG_CD
 #include "cdaudio.h"
-#endif
 #include "cl_video.h"
 #include "progsvm.h"
 #include "csprogs.h"
 #include "sv_demo.h"
 #include "snd_main.h"
+#include "taskqueue.h"
 #include "thread.h"
 #include "utf8lib.h"
 
@@ -48,7 +47,7 @@ Memory is cleared / released when a server or client begins, not when they end.
 // how many frames have occurred
 // (checked by Host_Error and Host_SaveConfig_f)
 int host_framecount = 0;
-// LordHavoc: set when quit is executed
+// LadyHavoc: set when quit is executed
 qboolean host_shuttingdown = false;
 
 // the accumulated mainloop time since application started (with filtering), without any slowmo or clamping
@@ -132,7 +131,7 @@ void Host_Error (const char *error, ...)
 
        Con_Printf("Host_Error: %s\n", hosterrorstring1);
 
-       // LordHavoc: if crashing very early, or currently shutting down, do
+       // LadyHavoc: if crashing very early, or currently shutting down, do
        // Sys_Error instead
        if (host_framecount < 3 || host_shuttingdown)
                Sys_Error ("Host_Error: %s", hosterrorstring1);
@@ -283,7 +282,7 @@ static void Host_SaveConfig_to(const char *file)
 
 // dedicated servers initialize the host but don't parse and set the
 // config.cfg cvars
-       // LordHavoc: don't save a config if it crashed in startup
+       // LadyHavoc: don't save a config if it crashed in startup
        if (host_framecount >= 3 && cls.state != ca_dedicated && !COM_CheckParm("-benchmark") && !COM_CheckParm("-capturedemo"))
        {
                f = FS_OpenRealFile(file, "wb", false);
@@ -476,7 +475,7 @@ void SV_DropClient(qboolean crash)
                // tell the client to be gone
                if (!crash)
                {
-                       // LordHavoc: no opportunity for resending, so use unreliable 3 times
+                       // LadyHavoc: no opportunity for resending, so use unreliable 3 times
                        unsigned char bufdata[8];
                        sizebuf_t buf;
                        memset(&buf, 0, sizeof(buf));
@@ -490,7 +489,7 @@ void SV_DropClient(qboolean crash)
        }
 
        // call qc ClientDisconnect function
-       // LordHavoc: don't call QC if server is dead (avoids recursive
+       // LadyHavoc: don't call QC if server is dead (avoids recursive
        // Host_Error in some mods when they run out of edicts)
        if (host_client->clientconnectcalled && sv.active && host_client->edict)
        {
@@ -747,6 +746,8 @@ void Host_Main(void)
                if (host_framerate.value < 0.00001 && host_framerate.value != 0)
                        Cvar_SetValue("host_framerate", 0);
 
+               TaskQueue_Frame(false);
+
                // keep the random time dependent, but not when playing demos/benchmarking
                if(!*sv_random_seed.string && !cls.demoplayback)
                        rand();
@@ -1021,6 +1022,7 @@ void Host_Main(void)
                        R_TimeReport("client");
 
                        CL_UpdateScreen();
+                       CL_MeshEntities_Reset();
                        R_TimeReport("render");
 
                        if (host_speeds.integer)
@@ -1035,10 +1037,8 @@ void Host_Main(void)
                        else
                                S_Update(&r_refdef.view.matrix);
 
-#ifdef CONFIG_CD
                        CDAudio_Update();
                        R_TimeReport("audio");
-#endif
 
                        // reset gathering of mouse input
                        in_mouse_x = in_mouse_y = 0;
@@ -1086,9 +1086,7 @@ void Host_StartVideo(void)
                // make sure we open sockets before opening video because the Windows Firewall "unblock?" dialog can screw up the graphics context on some graphics drivers
                NetConn_UpdateSockets();
                VID_Start();
-#ifdef CONFIG_CD
                CDAudio_Startup();
-#endif
        }
 }
 
@@ -1171,15 +1169,15 @@ static void Host_Init (void)
        if (COM_CheckParm("-profilegameonly"))
                Sys_AllowProfiling(false);
 
-       // LordHavoc: quake never seeded the random number generator before... heh
+       // LadyHavoc: quake never seeded the random number generator before... heh
        if (COM_CheckParm("-benchmark"))
                srand(0); // predictable random sequence for -benchmark
        else
                srand((unsigned int)time(NULL));
 
        // FIXME: this is evil, but possibly temporary
-       // LordHavoc: doesn't seem very temporary...
-       // LordHavoc: made this a saved cvar
+       // LadyHavoc: doesn't seem very temporary...
+       // LadyHavoc: made this a saved cvar
 // COMMANDLINEOPTION: Console: -developer enables warnings and other notices (RECOMMENDED for mod developers)
        if (COM_CheckParm("-developer"))
        {
@@ -1275,6 +1273,7 @@ static void Host_Init (void)
        Host_ServerOptions();
 
        Thread_Init();
+       TaskQueue_Init();
 
        if (cls.state == ca_dedicated)
                Cmd_AddCommand ("disconnect", CL_Disconnect_f, "disconnect from server (or disconnect all clients if running a server)");
@@ -1291,9 +1290,7 @@ static void Host_Init (void)
                VID_Init();
                Render_Init();
                S_Init();
-#ifdef CONFIG_CD
                CDAudio_Init();
-#endif
                Key_Init();
                CL_Init();
        }
@@ -1435,9 +1432,7 @@ void Host_Shutdown(void)
 
        Host_SaveConfig();
 
-#ifdef CONFIG_CD
        CDAudio_Shutdown ();
-#endif
        S_Terminate ();
        Curl_Shutdown ();
        NetConn_Shutdown ();
@@ -1450,6 +1445,7 @@ void Host_Shutdown(void)
        }
 
        SV_StopThread();
+       TaskQueue_Shutdown();
        Thread_Shutdown();
        Cmd_Shutdown();
        Key_Shutdown();