/// <summary>
    /// Handles the user SwinGame.
    /// </summary>
    /// <remarks>
    /// Reads key and mouse input and converts these into
    /// actions for the game to perform. The actions
    /// performed depend upon the state of the game.
    /// </remarks>
    public static void HandleUserInput()
    {
        //Read incoming input events
        SwinGame.ProcessEvents();

        if (CurrentState == GameState.ViewingMainMenu)
        {
            MenuController.HandleMainMenuInput();
        }
        else if (CurrentState == GameState.ViewingGameMenu)
        {
            MenuController.HandleGameMenuInput();
        }
        else if (CurrentState == GameState.AlteringSettings)
        {
            MenuController.HandleSetupMenuInput();
        }
        else if (CurrentState == GameState.AlterMusics)
        {
            MenuController.HandleMusicMenuInput();
        }
        else if (CurrentState == GameState.Deploying)
        {
            DeploymentController.HandleDeploymentInput();
        }
        else if (CurrentState == GameState.Discovering)
        {
            DiscoveryController.HandleDiscoveryInput();
        }
        else if (CurrentState == GameState.EndingGame)
        {
            EndingGameController.HandleEndOfGameInput();
        }
        else if (CurrentState == GameState.ViewingHighScores)
        {
            HighScoreController.HandleHighScoreInput();
        }
        else if (CurrentState == GameState.ViewingInstructions)
        {
            InstructionsController.HandleInstructionsInput();
        }

        UtilityFunctions.UpdateAnimations();
    }