Nullify pState when loading or changelevel

This commit is contained in:
mittorn 2018-11-09 02:14:57 +07:00
parent f324c92742
commit 91e6494b67
4 changed files with 5 additions and 3 deletions

View File

@ -691,7 +691,6 @@ void ClientUserInfoChanged( edict_t *pEntity, char *infobuffer )
const char *name = g_engfuncs.pfnInfoKeyValue( infobuffer, "name" );
// prevent keeping other's uid on saverestore
CBasePlayer *pPlayer = GetClassPtr((CBasePlayer *)&pEntity->v);
const char *uid = GGM_GetAuthID( pPlayer );
@ -701,10 +700,10 @@ void ClientUserInfoChanged( edict_t *pEntity, char *infobuffer )
if( pState != pPlayer->m_ggm.pState )
{
GGM_SaveState( pPlayer );
pEntity->v.netname = pEntity->v.frags = 0;
if( pPlayer->m_ggm.iState == STATE_LOAD_FIX )
return;
GGM_SaveState( pPlayer );
pPlayer->m_ggm.pState = pState;
pPlayer->m_ggm.iState = STATE_UNINITIALIZED;
}

View File

@ -518,7 +518,7 @@ void COOP_ServerActivate( void )
return;
}
ALERT( at_console, "COOP_ServerActivate: %s", STRING( gpGlobals->mapname ) );
ALERT( at_console, "COOP_ServerActivate: %s\n", STRING( gpGlobals->mapname ) );
if( g_flDupCheck && gpGlobals->time && ( fabs( g_flDupCheck -gpGlobals->time ) < 1 || g_flDupCheck == 1 ) )
{
@ -565,6 +565,7 @@ void COOP_ServerActivate( void )
plr->m_ggm.iState = STATE_UNINITIALIZED;
plr->m_ggm.pState = NULL;
plr->RemoveAllItems( TRUE );
UTIL_BecomeSpectator( plr );
if( g_CoopState.landmarkTransition.fLoading )

View File

@ -568,6 +568,7 @@ void CHalfLifeMultiplay::PlayerThink( CBasePlayer *pPlayer )
{
CLIENT_COMMAND( pPlayer->edict(), "reconnect\n" );
pPlayer->m_ggm.iState = STATE_UNINITIALIZED;
pPlayer->m_ggm.pState = NULL;
pPlayer->m_afButtonPressed = 0;
return;
}

View File

@ -1803,6 +1803,7 @@ void CChangeLevel::ChangeLevelNow( CBaseEntity *pActivator )
{
GGM_SaveState( plr );
plr->m_ggm.iState = STATE_UNINITIALIZED;
plr->m_ggm.pState = NULL;
plr->RemoveAllItems( TRUE );
UTIL_BecomeSpectator( plr );
// HACK: force perform reconnection