public void ChangeToScreen(Screen whichScreen) { switch (whichScreen) { case Screen.MainMenu: if (_mainGameMenu == null) { _mainGameMenu = new MainGameMenu(); string reason; if (!_mainGameMenu.Initialize(this, out reason)) { MessageBox.Show("Exception in loading Main Menu. Reason: " + reason); _parentForm.Close(); } } _screenInterface = _mainGameMenu; break; case Screen.NewGame: if (_newGame == null) { _newGame = new NewGame(); string reason; if (!_newGame.Initialize(this, out reason)) { MessageBox.Show("Exception in loading New Game Menu. Reason: " + reason); _parentForm.Close(); } } _screenInterface = _newGame; break; case Screen.Galaxy: if (_galaxyScreen == null) { _galaxyScreen = new GalaxyScreen(); string reason; if (!_galaxyScreen.Initialize(this, out reason)) { MessageBox.Show("Exception in loading Galaxy Screen. Reason: " + reason); _parentForm.Close(); } } _galaxyScreen.CenterScreen(); _screenInterface = _galaxyScreen; break; case Screen.Diplomacy: if (_diplomacyScreen == null) { _diplomacyScreen = new DiplomacyScreen(); string reason; if (!_diplomacyScreen.Initialize(this, out reason)) { MessageBox.Show("Exception in loading Diplomacy Screen. Reason: " + reason); _parentForm.Close(); } } _diplomacyScreen.SetupScreen(); _screenInterface = _diplomacyScreen; break; case Screen.ProcessTurn: EmpireManager.CurrentEmpire.ClearTurnData(); if (_processingTurnScreen == null) { _processingTurnScreen = new ProcessingTurnScreen(); string reason; if (!_processingTurnScreen.Initialize(this, out reason)) { MessageBox.Show("Exception in loading Processing Turn Screen. Reason: " + reason); _parentForm.Close(); } } if (!EmpireManager.ProcessNextEmpire()) { _situationReport.Refresh(); ChangeToScreen(Screen.Galaxy); break; } _screenInterface = _processingTurnScreen; break; case Screen.Battle: /*if (_spaceCombat == null) * { * _spaceCombat = new SpaceCombat(); * _spaceCombat.Initialize(this); * } * _spaceCombat.SetupScreen(); * _screenInterface = _spaceCombat;*/ break; } _currentScreen = whichScreen; }