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--; } } }