*/
// host.c -- coordinates spawning and killing of local servers
-#include "quakedef.h"
#include <time.h>
+#include "quakedef.h"
+#include "cl_video.h"
/*
}
inerror = true;
- SCR_EndLoadingPlaque (); // reenable screen updates
-
va_start (argptr,error);
vsprintf (hosterrorstring,error,argptr);
va_end (argptr);
=================
SV_ClientPrintf
-Sends text across to be displayed
+Sends text across to be displayed
FIXME: make this just a stuffed echo?
=================
*/
va_start (argptr,fmt);
vsprintf (string, fmt,argptr);
va_end (argptr);
-
+
MSG_WriteByte (&host_client->message, svc_stufftext);
MSG_WriteString (&host_client->message, string);
}
Returns false if the time is too short to run a frame
===================
*/
+extern cvar_t cl_avidemo;
qboolean Host_FilterTime (double time)
{
double timecap;
Cvar_SetValue("host_minfps", 10.0f);
if (host_maxfps.value < host_minfps.value)
Cvar_SetValue("host_maxfps", host_minfps.value);
+ if (cl_avidemo.value < 0.1f && cl_avidemo.value != 0.0f)
+ Cvar_SetValue("cl_avidemo", 0.0f);
- // check if framerate is too high
- if (!cls.timedemo)
+ // check if framerate is too high
+ if (cl_avidemo.value >= 0.1f)
{
+ timecap = 1.0 / (double)cl_avidemo.value;
+ if ((realtime - oldrealtime) < timecap)
+ return false;
+ }
+ else if (!cls.timedemo)
+ {
+ // default to sys_ticrate (server framerate - presumably low) unless we're the active window and either connected to a server or playing a video
timecap = sys_ticrate.value;
- if (cls.state == ca_connected)
+ if (vid_activewindow && (cls.state == ca_connected || cl_videoplaying))
timecap = 1.0 / host_maxfps.value;
if ((realtime - oldrealtime) < timecap)
if (host_framerate.value > 0)
host_frametime = host_framerate.value;
+ else if (cl_avidemo.value >= 0.1f)
+ host_frametime = (1.0 / cl_avidemo.value);
else
{
// don't allow really short frames
}
cl.frametime = host_frametime = bound(0, host_frametime * slowmo.value, 0.1f); // LordHavoc: the QC code relies on no less than 10fps
-
+
return true;
}
sv.frametime = 0;
frametimetotal = 0;
lastservertime = realtime;
-// pr_global_struct->frametime = host_frametime;
// set the time and clear the general datagram
SV_ClearDatagram ();
ui_update();
+ CL_VideoFrame();
+
// update video
if (host_speeds.integer)
time1 = Sys_DoubleTime ();
NET_Init ();
SV_Init ();
- Con_Printf ("Exe: "__TIME__" "__DATE__"\n");
+ Con_Printf ("Builddate: %s\n", buildstring);
if (cls.state != ca_dedicated)
{
}
isdown = true;
-// keep Con_Printf from trying to update the screen
-// scr_disabled_for_loading = true;
-
Host_WriteConfiguration ();
CDAudio_Shutdown ();