public SplashScreenState(ContentManager newManager)
        {
            contentManager = newManager;

            IsUpdateable = true;

            calledLoadAssets = false;
            flashOffText = false;

            startButtonDown = false;

            state = SplashScreenVisualState.Loading;
            fadeState = FadeState.FadeIn;
            fadeTimer = 0;

            gameInput = new GameInput(Game1.graphics.GraphicsDevice);
        }
        protected override void doUpdate(GameTime currentTime)
        {
            gameInput.update();

            if (state == SplashScreenVisualState.Loading)
            {
                if (!Game1.AssetsLoaded)
                {
                    if (!calledLoadAssets)
                    {
                        new Thread(Game1.loadGameAssets).Start();

                        calledLoadAssets = true;
                    }

                    flashOffText = currentTime.TotalGameTime.Milliseconds % 500 < 250;
                }
                else
                {
                    //GameScreenManager.switchScreens(GameScreenManager.GameScreenType.Menu, "TitleScreenMenu");
                    state = SplashScreenVisualState.FrostTreeLogo;
                }
            }
            else if (state == SplashScreenVisualState.FrostTreeLogo)
            {
                if (GameInput.isButtonDown(GameInput.PlayerButton.StartButton) && !startButtonDown)
                {
                    startButtonDown = true;
                }
                else if (startButtonDown && !GameInput.isButtonDown(GameInput.PlayerButton.StartButton))
                {
                    startButtonDown = false;

                    GameScreenManager.switchScreens(GameScreenManager.GameScreenType.Menu, "TitleScreenMenu");
                }

                fadeTimer += currentTime.ElapsedGameTime.Milliseconds;

                if (fadeTimer > fadeDuration)
                {
                    fadeState = (FadeState)((((int)fadeState) + 1) % 3);
                    fadeTimer = 0;

                    if (fadeState == FadeState.FadeIn)
                    {
                        state = SplashScreenVisualState.SaveNote;
                    }
                }
            }
            else if (state == SplashScreenVisualState.SaveNote)
            {
                if (GameInput.isButtonDown(GameInput.PlayerButton.StartButton) && !startButtonDown)
                {
                    startButtonDown = true;
                }
                else if (startButtonDown && !GameInput.isButtonDown(GameInput.PlayerButton.StartButton))
                {
                    startButtonDown = false;

                    GameScreenManager.switchScreens(GameScreenManager.GameScreenType.Menu, "TitleScreenMenu");
                }

                fadeTimer += currentTime.ElapsedGameTime.Milliseconds;

                if (fadeTimer > fadeDuration + (fadeState == FadeState.Stay ? 750 : 0))
                {
                    fadeState = (FadeState)((((int)fadeState) + 1) % 3);
                    fadeTimer = 0;

                    if (fadeState == FadeState.FadeIn)
                    {
                        GameScreenManager.switchScreens(GameScreenManager.GameScreenType.Menu, "TitleScreenMenu");
                    }
                }
            }
        }