private void InitBitDoors() { this.ToReactivate.Clear(); this.BitDoors.Clear(); foreach (ArtObjectInstance artObject in Enumerable.Where <ArtObjectInstance>((IEnumerable <ArtObjectInstance>) this.LevelManager.ArtObjects.Values, (Func <ArtObjectInstance, bool>)(x => ActorTypeExtensions.IsBitDoor(x.ArtObject.ActorType)))) { this.BitDoors.Add(new BitDoorState(artObject)); } foreach (int key in this.GameState.SaveData.ThisLevel.InactiveArtObjects) { ArtObjectInstance door; if (key >= 0 && this.LevelManager.ArtObjects.TryGetValue(key, out door) && ActorTypeExtensions.IsBitDoor(door.ArtObject.ActorType)) { door.Position += Enumerable.First <BitDoorState>((IEnumerable <BitDoorState>) this.BitDoors, (Func <BitDoorState, bool>)(x => x.AoInstance == door)).GetOpenOffset(); door.ActorSettings.Inactive = true; this.ToReactivate.Add(key); } } }