public TornadoGame.GameState Update(float elapsedMilliseconds)
{
if (State == MenuStates.Menu)
{
// change selected item if up or down pressed
if (Input.KeysHit.Contains(Keys.Up))
SelectedItem--;
if (Input.KeysHit.Contains(Keys.Down))
SelectedItem++;
if (Paused)
{
if (SelectedItem > MenuItems.Info)
SelectedItem = MenuItems.Resume;
if (SelectedItem < MenuItems.Resume)
SelectedItem = MenuItems.Info;
}
else
{
if (SelectedItem > MenuItems.Info)
SelectedItem = MenuItems.NewGame;
if (SelectedItem < MenuItems.NewGame)
SelectedItem = MenuItems.Info;
}
// test for selection choice
if (Input.KeysHit.Contains(Keys.Enter))
{
if (SelectedItem == MenuItems.Resume)
{
Paused = false;
return TornadoGame.GameState.InGame;
}
else if (SelectedItem == MenuItems.NewGame)
{
Game.LevelIndex = 0;
return TornadoGame.GameState.NewGame;
}
else if (SelectedItem == MenuItems.LoadLevel)
{
State = MenuStates.LoadLevel;
LevelConfigs = XmlSettingsFile.LevelConfigs;
}
else if (SelectedItem == MenuItems.Info)
State = MenuStates.Info;
}
if (Input.KeysHit.Contains(Keys.F1))
{
Game.CreditsY = Game.WindowHeight;
return TornadoGame.GameState.Complete;
}
if (Input.KeysHit.Contains(Keys.Escape))
return TornadoGame.GameState.Quit;
}
else if (State == MenuStates.LoadLevel)
{
if (Input.KeysHit.Contains(Keys.Escape))
State = MenuStates.Menu;
// change selected item if up or down pressed
if (Input.KeysHit.Contains(Keys.Up))
SelectedLevel--;
if (Input.KeysHit.Contains(Keys.Down))
SelectedLevel++;
if (SelectedLevel > LevelConfigs.Count - 1)
SelectedLevel = 0;
if (SelectedLevel < 0)
SelectedLevel = LevelConfigs.Count - 1;
// test for selection choice
if (Input.KeysHit.Contains(Keys.Enter))
{
Game.LevelIndex = SelectedLevel;
State = MenuStates.Menu;
return TornadoGame.GameState.NewGame;
}
}
else if (State == MenuStates.Info)
{
if (Input.KeysHit.Contains(Keys.Escape))
State = MenuStates.Menu;
}
CursorTimeSinceLastFrame += elapsedMilliseconds;
return Game.State;
}