//---------------------------------------------------------------------------------------------------------------------------------------------------
//
// Copyright (C)2007 DarkWynter Studios. All rights reserved.
//
//---------------------------------------------------------------------------------------------------------------------------------------------------
// {Contact : darkwynter.com for licensing information
//---------------------------------------------------------------------------------------------------------------------------------------------------
namespace DarkWynter.Engine.Menus.GameScreens
{
#region Using Statements
using System;
using System.Collections.Generic;
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 DarkWynter.Engine.Menus;
using NoName.Statics;
using System.Xml;
#endregion
///
/// Displayed while loading game.
///
public class GenericGameScreen : GameScreen
{
private string backgroundTexturePath;
private Vector2 backgroundLocation;
private Vector2 backgroundOrigin;
private float alpha;
private Enums.MenuState menuState;
private Enums.EngineState eState;
private bool hasSprites;
private bool hasMenu;
private Texture2D bgTexture;
///
/// Loading Screen constructor.
///
public GenericGameScreen(XmlNode node)
: base(((Enums.MenuState)Enum.Parse(typeof(Enums.MenuState), node.Attributes["EnumMS"].Value)))
{
this.backgroundTexturePath = node.Attributes["bgTex"].Value;
this.backgroundLocation.X = int.Parse(node.Attributes["bgLocationX"].Value);
this.backgroundLocation.Y = int.Parse(node.Attributes["bgLocationY"].Value);
this.backgroundOrigin.X = int.Parse(node.Attributes["bgOriginX"].Value);
this.backgroundOrigin.Y = int.Parse(node.Attributes["bgOriginY"].Value);
this.backgroundAlpha = float.Parse(node.Attributes["bgAlpha"].Value);
this.menuState = (Enums.MenuState)Enum.Parse(typeof(Enums.MenuState), node.Attributes["EnumMS"].Value);
this.eState = (Enums.EngineState)Enum.Parse(typeof(Enums.EngineState), node.Attributes["EnumES"].Value);
this.hasSprites = bool.Parse(node.Attributes["hasSprites"].Value);
this.hasMenu = bool.Parse(node.Attributes["hasMenu"].Value);
SetBackground(NoName.Statics.Globals.content.Load(backgroundTexturePath));
//Instantiate the GameMenu - if no menu, 0,0, else menu
if (!hasMenu)
{
menu = new GameMenu("", 0, 0);
}
else
{
// do shit here
}
if (hasSprites)
{
// load additional sprites here
}
}
///
/// Draw this menu screen
///
/// Sprite Batch
public override void Draw(SpriteBatch spriteBatch)
{
base.Draw(spriteBatch);
if (this.eState == Enums.EngineState.GAME_MODE)
{
NoName.Statics.Globals.engineState = Enums.EngineState.GAME_MODE;
}
}
}
}