//---------------------------------------------------------------------------------------------------------------------------------------------------
// <copyright file="MenuSystem.cs" company="DarkWynter Studios">
//     Copyright (C)2007 DarkWynter Studios.  All rights reserved.
// </copyright>
//---------------------------------------------------------------------------------------------------------------------------------------------------
// {Contact : darkwynter.com for licensing information
//---------------------------------------------------------------------------------------------------------------------------------------------------

namespace ElementalGame.Menus
{
    #region Using Statements
    using System;
    using System.Collections.Generic;
    using System.Diagnostics;
    using Microsoft.Xna.Framework;
    using Microsoft.Xna.Framework.Audio;
    using Microsoft.Xna.Framework.Content;
    using Microsoft.Xna.Framework.Graphics;
    using Microsoft.Xna.Framework.Input;
    using Microsoft.Xna.Framework.Storage;
    using System.Threading;
    using System.Xml;
    #endregion

    using DarkWynterEngine.Audio;
    using DarkWynterEngine.Globals;
    using DarkWynterEngine.ObjectLib;
    using DarkWynterEngine.Controllers;
    using DarkWynterEngine.Utilities;
    using DarkWynterEngine.Menus;

    /// <summary>
    /// Controls all of the menu screen and menu items
    /// </summary>
    public class GameMenuSystem : MenuSystem 
    {

        /// <summary>
        /// Constructor
        /// </summary>
        public GameMenuSystem()
            :base()
        {

            menuScreens.Add(new SorryScreen(Enums.EngineState.NOT_SUPPORTED));
            menuScreens.Add(new TitleScreen(Enums.EngineState.TITLE_SCREEN));
            menuScreens.Add(new GameSetup(Enums.EngineState.GAME_SETUP));
            menuScreens.Add(new LoadingScreen(Enums.EngineState.LOAD_LEVEL));
            menuScreens.Add(new PauseScreen(Enums.EngineState.GAME_PAUSE));
            menuScreens.Add(new GameOverScreen(Enums.EngineState.GAME_OVER));

        }



        /// <summary>
        /// Updates the controller and then the current active screen
        /// </summary>
        /// <param name="objectLibrary">Current Object Library</param>
        public override void Update(ObjectLibrary objectLibrary)
        {
            base.Update(objectLibrary);





        }

        /// <summary>
        /// Draws the appropriate screen
        /// </summary>
        /// <param name="spriteBatch">SpriteBatch used to draw</param>
        /// <param name="screenSaver">Current ScreenSaver</param>
        public override void Draw(SpriteBatch spriteBatch, ScreenSaver screenSaver)
        {
            base.Draw(spriteBatch, screenSaver);
        }

    }
}