private void SwitchState() { if (this.kGameStateType != kNextGameStateType) { kGameState.CleanUp(); GameStateBase nextGameState = null; switch (kNextGameStateType) { case GameStateType.MainMenu: { nextGameState = new MainMenuGameState(); break; } case GameStateType.Simulation: { nextGameState = new SimulationGameState(); break; } case GameStateType.Quit: { nextGameState = new QuitGameState(); break; } } this.kGameStateType = kNextGameStateType; this.kGameState = nextGameState; nextGameState.Startup(); } }