Category5.Menu.Update C# (CSharp) Method

Update() public method

public Update ( float elapsedMilliseconds ) : TornadoGame.GameState
elapsedMilliseconds float
return TornadoGame.GameState
        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;
        }