本文整理汇总了C++中CBaseAnimating::SUB_StartFadeOut方法的典型用法代码示例。如果您正苦于以下问题:C++ CBaseAnimating::SUB_StartFadeOut方法的具体用法?C++ CBaseAnimating::SUB_StartFadeOut怎么用?C++ CBaseAnimating::SUB_StartFadeOut使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CBaseAnimating
的用法示例。
在下文中一共展示了CBaseAnimating::SUB_StartFadeOut方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: MoveToTopOfLRU
//-----------------------------------------------------------------------------
// Move it to the top of the LRU
//-----------------------------------------------------------------------------
void CRagdollLRURetirement::MoveToTopOfLRU( CBaseAnimating *pRagdoll, bool bImportant )
{
if ( bImportant )
{
m_LRUImportantRagdolls.AddToTail( pRagdoll );
if ( m_LRUImportantRagdolls.Count() > g_ragdoll_important_maxcount.GetInt() )
{
int iIndex = m_LRUImportantRagdolls.Head();
CBaseAnimating *pRagdoll = m_LRUImportantRagdolls[iIndex].Get();
if ( pRagdoll )
{
#ifdef CLIENT_DLL
pRagdoll->SUB_Remove();
#else
pRagdoll->SUB_StartFadeOut( 0 );
#endif
m_LRUImportantRagdolls.Remove(iIndex);
}
}
return;
}
for ( int i = m_LRU.Head(); i < m_LRU.InvalidIndex(); i = m_LRU.Next(i) )
{
if ( m_LRU[i].Get() == pRagdoll )
{
m_LRU.Remove(i);
break;
}
}
m_LRU.AddToTail( pRagdoll );
}
示例2: Update
void CRagdollLRURetirement::Update( float frametime ) // Non-episodic version
{
VPROF( "CRagdollLRURetirement::Update" );
// Compress out dead items
int i, next;
int iMaxRagdollCount = m_iMaxRagdolls;
if ( iMaxRagdollCount == -1 )
{
iMaxRagdollCount = g_ragdoll_maxcount.GetInt();
}
// fade them all for the low violence version
if ( g_RagdollLVManager.IsLowViolence() )
{
iMaxRagdollCount = 0;
}
m_iRagdollCount = 0;
m_iSimulatedRagdollCount = 0;
// remove ragdolls with a forced retire time
for ( i = m_LRU.Head(); i < m_LRU.InvalidIndex(); i = next )
{
next = m_LRU.Next(i);
CBaseAnimating *pRagdoll = m_LRU[i].Get();
//Just ignore it until we're done burning/dissolving.
if ( pRagdoll && pRagdoll->GetEffectEntity() )
continue;
// ignore if it's not time to force retire this ragdoll
if ( m_LRU[i].GetForcedRetireTime() == 0.0f || gpGlobals->curtime < m_LRU[i].GetForcedRetireTime() )
continue;
//Msg(" Removing ragdoll %s due to forced retire time of %f (now = %f)\n", pRagdoll->GetModelName(), m_LRU[i].GetForcedRetireTime(), gpGlobals->curtime );
#ifdef CLIENT_DLL
pRagdoll->SUB_Remove();
#else
pRagdoll->SUB_StartFadeOut( 0 );
#endif
m_LRU.Remove(i);
}
for ( i = m_LRU.Head(); i < m_LRU.InvalidIndex(); i = next )
{
next = m_LRU.Next(i);
CBaseAnimating *pRagdoll = m_LRU[i].Get();
if ( pRagdoll )
{
m_iRagdollCount++;
IPhysicsObject *pObject = pRagdoll->VPhysicsGetObject();
if (pObject && !pObject->IsAsleep())
{
m_iSimulatedRagdollCount++;
}
if ( m_LRU.Count() > iMaxRagdollCount )
{
//Found one, we're done.
if ( ShouldRemoveThisRagdoll( pRagdoll ) == true )
{
#ifdef CLIENT_DLL
pRagdoll->SUB_Remove();
#else
pRagdoll->SUB_StartFadeOut( 0 );
#endif
m_LRU.Remove(i);
return;
}
}
}
else
{
m_LRU.Remove(i);
}
}
//////////////////////////////
/// ORIGINAL ALGORITHM ///
//////////////////////////////
// not episodic -- this is the original mechanism
for ( i = m_LRU.Head(); i < m_LRU.InvalidIndex(); i = next )
{
if ( m_LRU.Count() <= iMaxRagdollCount )
break;
next = m_LRU.Next(i);
CBaseAnimating *pRagdoll = m_LRU[i].Get();
//Just ignore it until we're done burning/dissolving.
if ( pRagdoll && pRagdoll->GetEffectEntity() )
continue;
#ifdef CLIENT_DLL
//.........这里部分代码省略.........