Esempio n. 1
0
qboolean Movie_GetSoundtime (void)
{
    if (!Movie_IsActive())
        return false;

    soundtime += Q_rint (host_frametime * shm->speed * (Movie_FrameTime() / host_frametime));

    return true;
}
/*
===================
Host_FilterTime

Returns false if the time is too short to run a frame
===================
*/
qboolean Host_FilterTime (double time)
{
	double	fps;

	realtime += time;

	fps = QMAX(10, pq_maxfps.value);

#ifdef SUPPORTS_AVI_CAPTURE
	if (!cls.capturedemo && !cls.timedemo && realtime - oldrealtime < 1.0 / fps)
#else
	if (!cls.timedemo && realtime - oldrealtime < 1.0 / fps)
#endif
	{
#ifdef SUPPORTS_SYSSLEEP
		if (host_sleep.value)
			Sys_Sleep (); // Lower cpu
#endif
		return false;		// framerate is too high
	}

#ifdef SUPPORTS_AVI_CAPTURE
	if (Movie_IsActive())
		host_frametime = Movie_FrameTime ();
	else
#endif

	host_frametime = realtime - oldrealtime;
#ifdef SUPPORTS_DEMO_CONTROLS
	if (cls.demoplayback)
		host_frametime *= bound(0, cl_demospeed.value, 20);
#endif
	oldrealtime = realtime;

	//johnfitz -- host_timescale is more intuitive than host_framerate
	if (host_timescale.value > 0)
		host_frametime *= host_timescale.value;
	//johnfitz
	else if (host_framerate.value > 0)
		host_frametime = host_framerate.value;
	else // don't allow really long or short frames
		host_frametime = bound(0.001, host_frametime, 0.1);

	return true;
}