///------------------------------------------------------------------------------ // Purpose : // Input : // Output : //------------------------------------------------------------------------------ CGrenadeHomer* CGrenadeHomer::CreateGrenadeHomer( string_t sModelName, string_t sFlySound, const Vector &vecOrigin, const QAngle &vecAngles, edict_t *pentOwner ) { CGrenadeHomer *pGrenade = (CGrenadeHomer*)CreateEntityByName( "grenade_homer" ); if ( !pGrenade ) { Warning( "NULL Ent in Create!\n" ); return NULL; } if ( pGrenade->edict() ) { pGrenade->m_sFlySound = sFlySound; pGrenade->SetOwnerEntity( Instance( pentOwner ) ); pGrenade->SetLocalOrigin( vecOrigin ); pGrenade->SetLocalAngles( vecAngles ); pGrenade->SetModel( STRING(sModelName) ); } return pGrenade; }
//----------------------------------------------------------------------------- // Purpose: Explode // Input : // Output : //----------------------------------------------------------------------------- void CPlayer_Missile::LoseMissileControl(void) { // Create a missile to take the place of this one CGrenadeHomer *pGrenade = (CGrenadeHomer*)CreateEntityByName( "grenade_homer" ); if ( pGrenade ) { pGrenade->Spawn(); pGrenade->SetLocalOrigin( GetLocalOrigin() ); pGrenade->SetLocalAngles( GetLocalAngles() ); pGrenade->SetModel( PMISSILE_MISSILE_MODEL ); pGrenade->SetDamage(m_flDamage); pGrenade->SetDamageRadius(m_flDamageRadius); pGrenade->Launch(this,NULL,GetAbsVelocity(),0,0,HOMER_SMOKE_TRAIL_OFF); pGrenade->m_hRocketTrail[0] = m_hSmokeTrail; ((SmokeTrail*)(CBaseEntity*)m_hSmokeTrail)->FollowEntity(ENTINDEX(pGrenade->pev)); } m_takedamage = DAMAGE_NO; m_lifeState = LIFE_DEAD; StopSound( "Player_Manhack.Fly" ); ControlDeactivate(); }