public override void Enter() { OverCardPicker.SizeBonus = 0; OverMap.SizeMult = 0; CenterCount = -1; CurrentCenter = 0; BlockPlayerWorldViewer = true; ProgressSpeed = 0.005f; LastNode = null; NextNode = null; NodeCount = 0; NodesProgress = 1; SortedNodes.Clear(); SceneObject s = GameManager.GetLevel().getCurrentScene(); WorldCamera = (Camera3DObject)s.FindObject(typeof(Camera3DObject)); if (WorldCamera == null) { s.ParentLevel.AddObject(WorldCamera = new Camera3DObject()); } WorldCamera.RemoveTag(GameObjectTag.Update); foreach (CameraFlybyCenter center in s.Enumerate(typeof(CameraFlybyCenter))) { if (!SortedCenters.ContainsKey(center.CenterOrder.get())) { SortedCenters.Add(center.CenterOrder.get(), center); CenterCount = CenterCount > center.CenterOrder.get() ? CenterCount : center.CenterOrder.get(); } } foreach (CameraFlybyNode node in s.Enumerate(typeof(CameraFlybyNode))) { if (!SortedNodes.ContainsKey(node.NodeOrder.get())) { SortedNodes[node.NodeOrder.get()] = new List <CameraFlybyNode>(); } SortedNodes[node.NodeOrder.get()].Add(node); NodeCount = NodeCount > node.NodeOrder.get() ? NodeCount : node.NodeOrder.get(); } int i = 0; while (LastNode == null) { LastNode = GetNode(i); i++; if (i > NodeCount) { return; } } while (NextNode == null) { NextNode = GetNode(i); i++; if (i > NodeCount) { return; } } base.Enter(); }