mirror of
https://github.com/YGGverse/hlsdk-portable.git
synced 2025-02-08 21:14:14 +00:00
Add hack to wrap save time
This commit is contained in:
parent
05c2e9ad92
commit
16b12b122c
@ -19,6 +19,7 @@ cvar_t cvar_agibcount = { "mp_agibcount","8", FCVAR_SERVER };
|
||||
cvar_t mp_gravgun_players = { "mp_gravgun_players", "0", FCVAR_SERVER };
|
||||
|
||||
cvar_t mp_fixhornetbug = { "mp_fixhornetbug", "0", FCVAR_SERVER };
|
||||
cvar_t mp_fixsavetime = { "mp_fixsavetime", "0", FCVAR_SERVER };
|
||||
cvar_t mp_checkentities = { "mp_checkentities", "0", FCVAR_SERVER };
|
||||
cvar_t mp_touchmenu = { "mp_touchmenu", "1", FCVAR_SERVER };
|
||||
cvar_t mp_touchname = { "mp_touchname", "", FCVAR_SERVER };
|
||||
|
@ -18,6 +18,7 @@ extern cvar_t mp_spectator;
|
||||
extern cvar_t mp_fixhornetbug;
|
||||
extern cvar_t mp_checkentities;
|
||||
extern cvar_t mp_touchmenu;
|
||||
extern cvar_t mp_fixsavetime;
|
||||
|
||||
// distance clipping (client.cpp)
|
||||
// useful for open world
|
||||
|
@ -1829,6 +1829,9 @@ void UTIL_StripToken( const char *pKey, char *pDest )
|
||||
pDest[i] = 0;
|
||||
}
|
||||
|
||||
bool g_isReadingHeader;
|
||||
float g_SaveTime;
|
||||
|
||||
// --------------------------------------------------------------
|
||||
//
|
||||
// CSave
|
||||
@ -2420,17 +2423,24 @@ int CRestore::ReadField( void *pBaseData, TYPEDESCRIPTION *pFields, int fieldCou
|
||||
switch( pTest->fieldType )
|
||||
{
|
||||
case FIELD_TIME:
|
||||
#ifdef __VFP_FP__
|
||||
|
||||
memcpy( &timeData, pInputData, 4 );
|
||||
// Re-base time variables
|
||||
timeData += time;
|
||||
if( mp_fixsavetime.value )
|
||||
{
|
||||
if( g_isReadingHeader )
|
||||
g_SaveTime = timeData;
|
||||
|
||||
if( g_SaveTime > 10000 && timeData > 0.1 )
|
||||
{
|
||||
timeData -= g_SaveTime - 500;
|
||||
if( timeData && timeData < 0.1 )
|
||||
timeData = 0.1;
|
||||
}
|
||||
}
|
||||
memcpy( pOutputData, &timeData, 4 );
|
||||
#else
|
||||
timeData = *(float *)pInputData;
|
||||
// Re-base time variables
|
||||
timeData += time;
|
||||
*( (float *)pOutputData ) = timeData;
|
||||
#endif
|
||||
|
||||
break;
|
||||
case FIELD_FLOAT:
|
||||
memcpy( pOutputData, pInputData, 4 );
|
||||
@ -2575,6 +2585,8 @@ int CRestore::ReadFields( const char *pname, void *pBaseData, TYPEDESCRIPTION *p
|
||||
int lastField, fileCount;
|
||||
HEADER header;
|
||||
|
||||
g_isReadingHeader = !strcmp( pname, "Save Header" );
|
||||
|
||||
i = ReadShort();
|
||||
ASSERT( i == sizeof(int) ); // First entry should be an int
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user