本文整理汇总了C++中CBaseAnimating::Extinguish方法的典型用法代码示例。如果您正苦于以下问题:C++ CBaseAnimating::Extinguish方法的具体用法?C++ CBaseAnimating::Extinguish怎么用?C++ CBaseAnimating::Extinguish使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CBaseAnimating
的用法示例。
在下文中一共展示了CBaseAnimating::Extinguish方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: FireThink
void CASW_Burning::FireThink()
{
int c = m_Burning.Count();
for (int i=c-1;i>=0;i--) // go backwards in case we remove one
{
CBaseEntity *pEnt = m_Burning[i]->m_hEntity.Get();
if (m_Burning[i]->m_fDieTime <= gpGlobals->curtime || !pEnt)
{
delete m_Burning[i];
m_Burning.Remove(i);
CBaseAnimating *pAnim = dynamic_cast<CBaseAnimating*>(pEnt);
if (pAnim)
{
//OnEntityExtinguished(pEnt);
pAnim->Extinguish(); // this makes the entity remove its FL_ONFIRE flag, its m_bOnFire bool and then calls back to us to check its not in the list anymore
}
}
else
{
if (m_Burning[i]->m_fNextBurnTime <= gpGlobals->curtime + 0.01f)
{
// hurt the entity!
CBaseEntity *pAttacker = m_Burning[i]->m_hAttacker.Get();
if (!pAttacker)
pAttacker = this;
//Msg("%f: burning %d:%s from %d:%s for %f\n", gpGlobals->curtime,
//pEnt->entindex(), pEnt->GetClassName(),
//pAttacker->entindex(), pAttacker->GetClassName(),
//m_Burning[i]->m_fDamagePerInterval);
CTakeDamageInfo info( this, pAttacker, m_Burning[i]->m_fDamagePerInterval, DMG_BURN | DMG_DIRECT );
info.SetWeapon( m_Burning[i]->m_hDamagingWeapon.Get() );
pEnt->TakeDamage( info );
m_Burning[i]->m_fNextBurnTime += m_Burning[i]->m_fBurnInterval;
}
}
}
SetNextThinkTime();
}