mirror of
https://github.com/Shpoike/Quakespasm.git
synced 2024-11-10 07:21:58 +00:00
fixed demo playback covering multiple maps (from Pa3PyX's hexen2 source)
git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@604 af15c1b1-3010-417e-b628-4374ebc0bcbd
This commit is contained in:
parent
296dc11b52
commit
1918db04bf
2 changed files with 18 additions and 1 deletions
|
@ -20,6 +20,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
|
|
||||||
#include "quakedef.h"
|
#include "quakedef.h"
|
||||||
|
|
||||||
|
int stufftext_frame;
|
||||||
|
|
||||||
static void CL_FinishTimeDemo (void);
|
static void CL_FinishTimeDemo (void);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -88,6 +90,13 @@ static int CL_GetDemoMessage (void)
|
||||||
// decide if it is time to grab the next message
|
// decide if it is time to grab the next message
|
||||||
if (cls.signon == SIGNONS) // always grab until fully connected
|
if (cls.signon == SIGNONS) // always grab until fully connected
|
||||||
{
|
{
|
||||||
|
// Always wait for full frame update on stuff messages.
|
||||||
|
// If the server stuffs a reconnect, we must wait for
|
||||||
|
// the client to re-initialize before accepting further
|
||||||
|
// messages. Otherwise demo playback may freeze. Pa3PyX
|
||||||
|
if (stufftext_frame == host_framecount)
|
||||||
|
return 0;
|
||||||
|
|
||||||
if (cls.timedemo)
|
if (cls.timedemo)
|
||||||
{
|
{
|
||||||
if (host_framecount == cls.td_lastframe)
|
if (host_framecount == cls.td_lastframe)
|
||||||
|
@ -329,6 +338,10 @@ void CL_PlayDemo_f (void)
|
||||||
}
|
}
|
||||||
if (neg)
|
if (neg)
|
||||||
cls.forcetrack = -cls.forcetrack;
|
cls.forcetrack = -cls.forcetrack;
|
||||||
|
|
||||||
|
// Get a new message on playback start.
|
||||||
|
// Moved from CL_TimeDemo_f to here, Pa3PyX.
|
||||||
|
cls.td_lastframe = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -377,6 +390,7 @@ void CL_TimeDemo_f (void)
|
||||||
|
|
||||||
cls.timedemo = true;
|
cls.timedemo = true;
|
||||||
cls.td_startframe = host_framecount;
|
cls.td_startframe = host_framecount;
|
||||||
cls.td_lastframe = -1; // get a new message this frame
|
// cls.td_lastframe = -1; // get a new message this frame
|
||||||
|
// Moved to CL_PlayDemo_f(), Pa3PyX.
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -91,6 +91,7 @@ const char *svc_strings[] =
|
||||||
qboolean warn_about_nehahra_protocol; //johnfitz
|
qboolean warn_about_nehahra_protocol; //johnfitz
|
||||||
|
|
||||||
extern vec3_t v_punchangles[2]; //johnfitz
|
extern vec3_t v_punchangles[2]; //johnfitz
|
||||||
|
extern int stufftext_frame;
|
||||||
|
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
|
|
||||||
|
@ -1003,6 +1004,8 @@ void CL_ParseServerMessage (void)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case svc_stufftext:
|
case svc_stufftext:
|
||||||
|
stufftext_frame = host_framecount; // allow full frame update
|
||||||
|
// on stuff messages. Pa3PyX
|
||||||
Cbuf_AddText (MSG_ReadString ());
|
Cbuf_AddText (MSG_ReadString ());
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue