mirror of
https://github.com/YGGverse/hlsdk-portable.git
synced 2025-03-10 20:41:49 +00:00
Fix wrong offset initialization
This commit is contained in:
parent
a2fe6a9dad
commit
26c80df6d5
@ -1313,6 +1313,7 @@ public:
|
||||
void EXPORT TriggerChangeLevel( void );
|
||||
void EXPORT ExecuteChangeLevel( void );
|
||||
void EXPORT TouchChangeLevel( CBaseEntity *pOther );
|
||||
void EXPORT UpdateColor();
|
||||
void ChangeLevelNow( CBaseEntity *pActivator );
|
||||
|
||||
static edict_t *FindLandmark( const char *pLandmarkName );
|
||||
@ -1406,32 +1407,45 @@ void CChangeLevel::Spawn( void )
|
||||
SetTouch( &CChangeLevel::TouchChangeLevel );
|
||||
if( mp_coop_changelevel.value )
|
||||
{
|
||||
Vector origin = VecBModelOrigin(pev);
|
||||
Vector point, angles;
|
||||
CBaseEntity *pPlayer;
|
||||
if( gpGlobals->startspot && STRING(gpGlobals->startspot) && !strcmp(STRING(gpGlobals->startspot), m_szLandmarkName) )
|
||||
m_fIsBack = true;
|
||||
if( !m_fIsBack && CoopGetSpawnPoint( &point, &angles ) )
|
||||
if( (origin - point).Length() < 500 )
|
||||
m_fIsBack = true;
|
||||
if( !m_fIsBack && (pPlayer = UTIL_FindEntityByClassname( NULL, "info_player_start" )) )
|
||||
if( (origin - pPlayer->pev->origin).Length() < 1000 )
|
||||
m_fIsBack = true;
|
||||
|
||||
// set color (got from XDM)
|
||||
pev->effects &= ~EF_NODRAW;
|
||||
pev->rendermode = kRenderTransColor;
|
||||
if( m_fIsBack)
|
||||
if( m_fIsBack )
|
||||
pev->rendercolor.z = 255;
|
||||
else
|
||||
pev->rendercolor.y = 255;
|
||||
pev->renderamt = 127;
|
||||
pev->renderfx = kRenderFxPulseFast;
|
||||
|
||||
pev->effects &= ~EF_NODRAW;
|
||||
pev->rendermode = kRenderTransColor;
|
||||
SetThink( &CChangeLevel::UpdateColor );
|
||||
pev->nextthink = gpGlobals->time + 2;
|
||||
}
|
||||
}
|
||||
//ALERT( at_console, "TRANSITION: %s (%s)\n", m_szMapName, m_szLandmarkName );
|
||||
}
|
||||
|
||||
void CChangeLevel::UpdateColor( void )
|
||||
{
|
||||
Vector origin = VecBModelOrigin(pev);
|
||||
Vector point, angles;
|
||||
CBaseEntity *pPlayer;
|
||||
pev->nextthink = gpGlobals->time + 30;
|
||||
|
||||
if( !m_fIsBack && (pPlayer = UTIL_FindEntityByClassname( NULL, "info_player_start" )) )
|
||||
if( (origin - pPlayer->pev->origin).Length() < 500 )
|
||||
m_fIsBack = true;
|
||||
if( !m_fIsBack && CoopGetSpawnPoint( &point, &angles ) )
|
||||
if( (origin - point).Length() < 500 )
|
||||
m_fIsBack = true;
|
||||
pev->rendercolor.x = 0;
|
||||
if( m_fIsBack )
|
||||
pev->rendercolor.z = 255;
|
||||
else
|
||||
pev->rendercolor.y = 255;
|
||||
|
||||
}
|
||||
|
||||
void CChangeLevel::ExecuteChangeLevel( void )
|
||||
{
|
||||
MESSAGE_BEGIN( MSG_ALL, SVC_CDTRACK );
|
||||
@ -1508,7 +1522,7 @@ static void validateoffset( void )
|
||||
if(landmark)
|
||||
g_SavedCoords.offset = landmark->v.origin - g_SavedCoords.offset;
|
||||
else
|
||||
g_SavedCoords.offset = g_vecZero;
|
||||
g_SavedCoords.offset = g_vecZero - g_SavedCoords.offset;
|
||||
g_SavedCoords.validoffset = true;
|
||||
}
|
||||
}
|
||||
@ -1637,7 +1651,10 @@ void CChangeLevel::ChangeLevelNow( CBaseEntity *pActivator )
|
||||
}
|
||||
// forget touch by some fool
|
||||
if( gpGlobals->time - pev->dmgtime > 30)
|
||||
{
|
||||
m_uTouchCount = 0;
|
||||
pev->nextthink = gpGlobals->time + 30;
|
||||
}
|
||||
|
||||
if(mp_coop_changelevel.value)
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user