/* <8df51> ../cstrike/dlls/func_tank.cpp:854 */ void CFuncTankLaser::__MAKE_VHOOK(Fire)(const Vector &barrelEnd, const Vector &forward, entvars_t *pevAttacker) { int i; TraceResult tr; if (m_fireLast != 0 && GetLaser()) { // TankTrace needs gpGlobals->v_up, etc. UTIL_MakeAimVectors(pev->angles); int bulletCount = (int)((gpGlobals->time - m_fireLast) * m_fireRate); if (bulletCount) { for (i = 0; i < bulletCount; i++) { m_pLaser->pev->origin = barrelEnd; TankTrace(barrelEnd, forward, gTankSpread[m_spread], tr); m_laserTime = gpGlobals->time; m_pLaser->TurnOn(); m_pLaser->pev->dmgtime = gpGlobals->time - 1.0; m_pLaser->FireAtPoint(tr); m_pLaser->pev->nextthink = 0; } CFuncTank::Fire(barrelEnd, forward, pev); } } else { CFuncTank::Fire(barrelEnd, forward, pev); } }
void CFuncTankLaser::UpdateOnRemove( void ) { if( GetLaser() ) { m_pLaser->TurnOff(); } BaseClass::UpdateOnRemove(); }
void CFuncTankLaser::Activate(void) { if (!GetLaser()) { UTIL_Remove(this); ALERT(at_error, "Laser tank with no env_laser!\n"); } else m_pLaser->TurnOff(); }
void CFuncTankLaser::__MAKE_VHOOK(Activate)() { if (!GetLaser()) { UTIL_Remove(this); ALERT(at_error, "Laser tank with no env_laser!\n"); } else { m_pLaser->TurnOff(); } }
void CFuncTankLaser::Activate( void ) { BaseClass::Activate(); if ( !GetLaser() ) { UTIL_Remove(this); Warning( "Laser tank with no env_laser!\n" ); } else { m_pLaser->TurnOff(); } }
void CFuncTankLaser::Fire( int bulletCount, const Vector &barrelEnd, const Vector &forward, CBaseEntity *pAttacker ) { int i; trace_t tr; if ( GetLaser() ) { for ( i = 0; i < bulletCount; i++ ) { m_pLaser->SetLocalOrigin( barrelEnd ); TankTrace( barrelEnd, forward, gTankSpread[m_spread], tr ); m_laserTime = gpGlobals->curtime; m_pLaser->TurnOn(); m_pLaser->SetFireTime( gpGlobals->curtime - 1.0 ); m_pLaser->FireAtPoint( tr ); m_pLaser->SetNextThink( TICK_NEVER_THINK ); } CFuncTank::Fire( bulletCount, barrelEnd, forward, this ); } }