18 Jan 2017

This commit is contained in:
g-cont 2017-01-18 00:00:00 +03:00 committed by Alibek Omarov
parent 30bfd71e0e
commit e60d33603b
3 changed files with 26 additions and 4 deletions

View File

@ -782,10 +782,10 @@ qboolean CL_DemoReadMessage( byte *buffer, size_t *length )
{
case dem_jumptime:
demo.starttime = CL_GetDemoPlaybackClock();
break;
return false; // time is changed, skip frame
case dem_stop:
CL_DemoMoveToNextSection();
break;
return false; // header is ended, skip frame
case dem_userdata:
FS_Read( cls.demofile, &size, sizeof( int ));
userbuf = Mem_Alloc( cls.mempool, size );

View File

@ -403,10 +403,11 @@ void CL_CreateCmd( void )
VectorCopy( cl.data.viewangles, cl.refdef.cl_viewangles );
cl.scr_fov = cl.data.fov;
}
#if 0
// allways dump the first ten messages,
// because it may contain leftover inputs
// from the last level
// disabled because it's invoke crash in HLFX 0.6 while we trying to playback a demo
if( ++cl.movemessages <= 10 )
{
if( !cls.demoplayback )
@ -418,7 +419,7 @@ void CL_CreateCmd( void )
CL_PopPMStates();
return;
}
#endif
// message we are constructing.
i = cls.netchan.outgoing_sequence & CL_UPDATE_MASK;
pcmd = &cl.commands[i];

View File

@ -1189,6 +1189,25 @@ void SV_PutClientInServer( sv_client_t *cl )
MsgDev( D_INFO, "level loaded at %.2f sec\n", Sys_DoubleTime() - svs.timestart );
}
/*
===========
SV_UpdateClientView
Resend the client viewentity (used for demos)
============
*/
void SV_UpdateClientView( sv_client_t *cl )
{
int viewEnt;
if( cl->pViewEntity )
viewEnt = NUM_FOR_EDICT( cl->pViewEntity );
else viewEnt = NUM_FOR_EDICT( cl->edict );
MSG_WriteByte( &sv.reliable_datagram, svc_setview );
MSG_WriteWord( &sv.reliable_datagram, viewEnt );
}
/*
==================
SV_TogglePause
@ -2082,6 +2101,8 @@ void SV_ExecuteClientCommand( sv_client_t *cl, char *s )
Host_RestartDecals();
// resend all the static ents for demo recording
SV_RestartStaticEnts();
// resend the viewentity
SV_UpdateClientView( cl );
}
}
}