public void BecomeInactive(EntityThinkFlags flags)
{
if((flags & EntityThinkFlags.Physics) == EntityThinkFlags.Physics)
{
// may only disable physics on a team master if no team members are running physics or bound to a joints
if(_teamMaster == this)
{
idConsole.Warning("TODO: teamMaster");
/*for ( idEntity *ent = teamMaster->teamChain; ent; ent = ent->teamChain ) {
if ( ( ent->thinkFlags & TH_PHYSICS ) || ( ( ent->bindMaster == this ) && ( ent->bindJoint != INVALID_JOINT ) ) ) {
flags &= ~TH_PHYSICS;
break;
}
}*/
}
}
if(_thinkFlags != 0)
{
_thinkFlags &= ~flags;
if((_thinkFlags == 0) && (this.IsActive == true))
{
idR.Game.EntitiesToDeactivate++;
}
}
if((flags & EntityThinkFlags.Physics) == EntityThinkFlags.Physics)
{
// if this entity has a team master
if((_teamMaster != null) && (_teamMaster != this))
{
// if the team master is at rest
if(_teamMaster.IsAtRest == true)
{
_teamMaster.BecomeInactive(EntityThinkFlags.Physics);
}
}
}
}