private void OnChangeGameType(object sender, RoutedEventArgs e)
 {
     if ((selectedGameSave.GameSave.GameType == GameTypes.Ruby || selectedGameSave.GameSave.GameType == GameTypes.Sapphire ||
          selectedGameSave.GameSave.GameType == GameTypes.FireRed || selectedGameSave.GameType == GameTypes.LeafGreen ||
          selectedGameSave.GameSave.GameType == GameTypes.Emerald) && selectedGameSave.GameSave is GBAGameSave)
     {
         var results = SelectGameTypeFullWindow.ShowDialog(this, selectedGameSave.IsJapanese);
         if (results != null)
         {
             GameTypes        gameType     = results.GameType;
             MessageBoxResult result       = MessageBoxResult.Yes;
             bool             reloadNeeded = false;
             if (((selectedGameSave.GameSave.GameType == GameTypes.Ruby || selectedGameSave.GameSave.GameType == GameTypes.Sapphire) && (gameType != GameTypes.Ruby && gameType != GameTypes.Sapphire)) ||
                 ((selectedGameSave.GameSave.GameType == GameTypes.FireRed || selectedGameSave.GameSave.GameType == GameTypes.LeafGreen) && (gameType != GameTypes.FireRed && gameType != GameTypes.LeafGreen)) ||
                 (selectedGameSave.GameSave.GameType == GameTypes.Emerald && gameType != GameTypes.Emerald))
             {
                 result = TriggerMessageBox.Show(this, "In order to change the game type to this the save must be reloaded. Are you sure you want to reload this save? Any unsaved changes will be lost.", "Reload Needed", MessageBoxButton.YesNo);
                 if (result == MessageBoxResult.Yes)
                 {
                     reloadNeeded = true;
                 }
             }
             if (result == MessageBoxResult.Yes)
             {
                 selectedGameSave.GameType            = gameType;
                 selectedGameSave.IsJapanese          = results.IsJapanese;
                 selectedGameSave.GameSave.IsJapanese = results.IsJapanese;
                 ((GBAGameSave)selectedGameSave.GameSave).GameType = gameType;
                 FillListViewItem(selectedGameSave, gameSaves[selectedIndex]);
                 if (reloadNeeded)
                 {
                     try {
                         PokeManager.ReloadGameSave(selectedGameSave);
                     }
                     catch (Exception ex) {
                         result = TriggerMessageBox.Show(this, "Error loading save after changing game type, this may not be the correct game type for it. Would you like to see the error?", "Load Error", MessageBoxButton.YesNo);
                         if (result == MessageBoxResult.Yes)
                         {
                             ErrorMessageBox.Show(ex);
                         }
                     }
                 }
             }
         }
     }
     else
     {
         // No need
         TriggerMessageBox.Show(this, "Only one game type applies to this save");
     }
 }