Example #1
0
        /// <summary>
        /// The set current scene.
        /// </summary>
        /// <param name="scene">
        /// The scene.
        /// </param>
        public static void SetCurrentScene(Scene scene)
        {
            if (scenes.Contains(scene) && !scene.Visible)
            {
                // want to be able to have multiple transparent scenes overlaid on the nontransparent scene
                if (!scene.Transparent)
                {
                    foreach (Scene visibleScene in GetVisibleScenes())
                    {
                        visibleScene.Visible = false;
                    }
                }

                scene.Visible = true;

                if (scene.MainGameScene)
                {
                    var ingameMenu = new InGameMenu(scene.Game);
                    ingameMenu.Initialize();
                    AddScene(ingameMenu);
                }
                else if (!(scene is InGameMenu))
                {
                    scenes.Remove((from s in scenes where s is InGameMenu select s).FirstOrDefault());
                }
            }
        }