mirror of
https://github.com/nillerusr/source-engine.git
synced 2025-01-13 00:28:18 +00:00
78 lines
1.6 KiB
C++
78 lines
1.6 KiB
C++
#include "cbase.h"
|
|
#include "precache_register.h"
|
|
#include "particles_simple.h"
|
|
#include "iefx.h"
|
|
#include "dlight.h"
|
|
#include "view.h"
|
|
#include "fx.h"
|
|
#include "clientsideeffects.h"
|
|
#include "c_pixel_visibility.h"
|
|
#include "c_asw_queen_spit.h"
|
|
#include "c_asw_generic_emitter_entity.h"
|
|
|
|
// memdbgon must be the last include file in a .cpp file!!!
|
|
#include "tier0/memdbgon.h"
|
|
|
|
IMPLEMENT_CLIENTCLASS_DT( C_ASW_Queen_Spit, DT_ASW_Queen_Spit, CASW_Queen_Spit )
|
|
|
|
END_RECV_TABLE()
|
|
|
|
|
|
C_ASW_Queen_Spit::C_ASW_Queen_Spit()
|
|
{
|
|
m_pGooEmitter = NULL;
|
|
m_bCreatedEffects = false;
|
|
}
|
|
|
|
C_ASW_Queen_Spit::~C_ASW_Queen_Spit( void )
|
|
{
|
|
// kill effects
|
|
if (m_pGooEmitter)
|
|
{
|
|
m_pGooEmitter->SetDieTime(gpGlobals->curtime);
|
|
m_pGooEmitter = NULL;
|
|
}
|
|
}
|
|
|
|
void C_ASW_Queen_Spit::CreateEffects()
|
|
{
|
|
if (m_bCreatedEffects)
|
|
return;
|
|
|
|
m_bCreatedEffects = true;
|
|
|
|
m_pGooEmitter = new C_ASW_Emitter;
|
|
if (m_pGooEmitter)
|
|
{
|
|
if (m_pGooEmitter->InitializeAsClientEntity( NULL, false ))
|
|
{
|
|
Q_snprintf(m_pGooEmitter->m_szTemplateName, sizeof(m_pGooEmitter->m_szTemplateName), "queenspit");
|
|
m_pGooEmitter->m_fScale = 2.0f;
|
|
m_pGooEmitter->m_bEmit = true;
|
|
m_pGooEmitter->CreateEmitter();
|
|
m_pGooEmitter->SetAbsOrigin(GetAbsOrigin());
|
|
m_pGooEmitter->SetAbsAngles(GetAbsAngles());
|
|
m_pGooEmitter->ClientAttach(this, "bleed1");
|
|
}
|
|
else
|
|
{
|
|
UTIL_Remove( m_pGooEmitter );
|
|
}
|
|
}
|
|
}
|
|
|
|
void C_ASW_Queen_Spit::OnDataChanged( DataUpdateType_t updateType )
|
|
{
|
|
if ( updateType == DATA_UPDATE_CREATED )
|
|
{
|
|
CreateEffects();
|
|
}
|
|
|
|
BaseClass::OnDataChanged( updateType );
|
|
}
|
|
|
|
void C_ASW_Queen_Spit::OnRestore()
|
|
{
|
|
CreateEffects();
|
|
BaseClass::OnRestore();
|
|
} |