public void BecomeActive(EntityThinkFlags flags)
{
if((flags & EntityThinkFlags.Physics) == EntityThinkFlags.Physics)
{
// enable the team master if this entity is part of a physics team
if((_teamMaster != null) && (_teamMaster != this))
{
_teamMaster.BecomeActive(EntityThinkFlags.Physics);
}
else if((_thinkFlags & EntityThinkFlags.Physics) == 0)
{
// if this is a pusher
if((_physics is idPhysics_Parametric) || (_physics is idPhysics_Actor))
{
idR.Game.SortPushers = true;
}
}
}
EntityThinkFlags oldFlags = _thinkFlags;
_thinkFlags |= flags;
if(_thinkFlags != 0)
{
if(this.IsActive == false)
{
idR.Game.ActiveEntities.Add(this);
}
else if(oldFlags == 0)
{
// we became inactive this frame, so we have to decrease the count of entities to deactivate
idR.Game.EntitiesToDeactivate--;
}
}
}