mirror of
https://github.com/YGGverse/hlsdk-portable.git
synced 2025-01-24 05:34:18 +00:00
Predicted grapple
This commit is contained in:
parent
fe601bce06
commit
12cd2832d4
@ -76,6 +76,7 @@ CPipeWrench g_PipeWrench;
|
||||
CShockrifle g_Shock;
|
||||
CSniperrifle g_Sniper;
|
||||
CSporelauncher g_Spore;
|
||||
CBarnacleGrapple g_Grapple;
|
||||
|
||||
/*
|
||||
======================
|
||||
@ -634,6 +635,7 @@ void HUD_InitClientWeapons( void )
|
||||
HUD_PrepEntity( &g_Shock, &player );
|
||||
HUD_PrepEntity( &g_Sniper, &player );
|
||||
HUD_PrepEntity( &g_Spore, &player );
|
||||
HUD_PrepEntity( &g_Grapple, &player );
|
||||
}
|
||||
|
||||
/*
|
||||
@ -766,6 +768,9 @@ void HUD_WeaponsPostThink( local_state_s *from, local_state_s *to, usercmd_t *cm
|
||||
case WEAPON_SPORELAUNCHER:
|
||||
pWeapon = &g_Spore;
|
||||
break;
|
||||
case WEAPON_GRAPPLE:
|
||||
pWeapon = &g_Grapple;
|
||||
break;
|
||||
}
|
||||
|
||||
// Store pointer to our destination entity_state_t so we can get our origin, etc. from it
|
||||
|
@ -63,9 +63,6 @@ void CBarnacleGrapple::Precache( void )
|
||||
PRECACHE_MODEL( "sprites/tongue.spr" );
|
||||
|
||||
UTIL_PrecacheOther( "grapple_tip" );
|
||||
m_flNextPrimaryAttack = 0;
|
||||
m_flNextSecondaryAttack = 0;
|
||||
m_flTimeWeaponIdle = 0;
|
||||
}
|
||||
|
||||
void CBarnacleGrapple::Spawn( void )
|
||||
@ -110,7 +107,7 @@ int CBarnacleGrapple::AddToPlayer( CBasePlayer* pPlayer )
|
||||
BOOL CBarnacleGrapple::Deploy()
|
||||
{
|
||||
int r = DefaultDeploy("models/v_bgrap.mdl", "models/p_bgrap.mdl", BGRAPPLE_UP, "gauss" );
|
||||
m_flTimeWeaponIdle = gpGlobals->time + 1.1;
|
||||
m_flTimeWeaponIdle = UTIL_WeaponTimeBase() + 1.1;
|
||||
return r;
|
||||
}
|
||||
|
||||
@ -128,7 +125,7 @@ void CBarnacleGrapple::WeaponIdle( void )
|
||||
{
|
||||
ResetEmptySound();
|
||||
|
||||
if( m_flTimeWeaponIdle > gpGlobals->time )
|
||||
if( m_flTimeWeaponIdle > UTIL_WeaponTimeBase() )
|
||||
return;
|
||||
|
||||
if( m_fireState != OFF )
|
||||
@ -146,19 +143,19 @@ void CBarnacleGrapple::WeaponIdle( void )
|
||||
if( flNextIdle <= 0.5 )
|
||||
{
|
||||
iAnim = BGRAPPLE_LONGIDLE;
|
||||
m_flTimeWeaponIdle = gpGlobals->time + 10.0;
|
||||
m_flTimeWeaponIdle = UTIL_WeaponTimeBase() + 10.0;
|
||||
}
|
||||
else if( flNextIdle > 0.95 )
|
||||
{
|
||||
EMIT_SOUND_DYN( ENT(m_pPlayer->pev), CHAN_STATIC, "weapons/bgrapple_cough.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM );
|
||||
|
||||
iAnim = BGRAPPLE_COUGH;
|
||||
m_flTimeWeaponIdle = gpGlobals->time + 4.6;
|
||||
m_flTimeWeaponIdle = UTIL_WeaponTimeBase() + 4.6;
|
||||
}
|
||||
else
|
||||
{
|
||||
iAnim = BGRAPPLE_BREATHE;
|
||||
m_flTimeWeaponIdle = gpGlobals->time + 2.566;
|
||||
m_flTimeWeaponIdle = UTIL_WeaponTimeBase() + 2.566;
|
||||
}
|
||||
|
||||
SendWeaponAnim( iAnim );
|
||||
@ -168,7 +165,7 @@ void CBarnacleGrapple::PrimaryAttack( void )
|
||||
{
|
||||
if( m_bMissed )
|
||||
{
|
||||
m_flTimeWeaponIdle = gpGlobals->time + 0.1;
|
||||
m_flTimeWeaponIdle = UTIL_WeaponTimeBase() + 0.1;
|
||||
return;
|
||||
}
|
||||
|
||||
@ -300,7 +297,7 @@ void CBarnacleGrapple::PrimaryAttack( void )
|
||||
|
||||
m_pPlayer->m_iWeaponVolume = 450;
|
||||
|
||||
m_flTimeWeaponIdle = gpGlobals->time + 0.1;
|
||||
m_flTimeWeaponIdle = UTIL_WeaponTimeBase() + 0.1;
|
||||
#ifndef CLIENT_DLL
|
||||
if( g_pGameRules->IsMultiplayer() )
|
||||
{
|
||||
@ -317,7 +314,7 @@ void CBarnacleGrapple::PrimaryAttack( void )
|
||||
|
||||
if( !m_pTip )
|
||||
{
|
||||
m_flNextPrimaryAttack = gpGlobals->time + 0.01;
|
||||
m_flNextPrimaryAttack = UTIL_WeaponTimeBase() + 0.01;
|
||||
return;
|
||||
}
|
||||
|
||||
@ -425,7 +422,7 @@ void CBarnacleGrapple::PrimaryAttack( void )
|
||||
else
|
||||
*/
|
||||
{
|
||||
m_flNextPrimaryAttack = gpGlobals->time + 0.01;
|
||||
m_flNextPrimaryAttack = UTIL_WeaponTimeBase() + 0.01;
|
||||
}
|
||||
}
|
||||
|
||||
@ -466,9 +463,9 @@ void CBarnacleGrapple::EndAttack( void )
|
||||
|
||||
EMIT_SOUND_DYN( ENT( m_pPlayer->pev ), CHAN_WEAPON, "weapons/bgrapple_pull.wav", 0.0, ATTN_NONE, SND_STOP, 100 );
|
||||
|
||||
m_flTimeWeaponIdle = gpGlobals->time + 0.9;
|
||||
m_flTimeWeaponIdle = UTIL_WeaponTimeBase() + 0.9;
|
||||
|
||||
m_flNextPrimaryAttack = gpGlobals->time + 0.01;
|
||||
m_flNextPrimaryAttack = UTIL_WeaponTimeBase() + 0.01;
|
||||
|
||||
DestroyEffect();
|
||||
|
||||
|
@ -1182,11 +1182,13 @@ public:
|
||||
void DestroyEffect( void );
|
||||
virtual BOOL UseDecrement(void)
|
||||
{
|
||||
#if defined( CLIENT_WEAPONS )
|
||||
return TRUE;
|
||||
#else
|
||||
return FALSE;
|
||||
#endif
|
||||
}
|
||||
|
||||
const char* MyWModel() { return "models/w_bgrap.mdl"; }
|
||||
|
||||
private:
|
||||
CBarnacleGrappleTip* m_pTip;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user