private void CompatibleGameVersionsDialog_Shown(object sender, EventArgs e)
 {
     if (_inst.CompatibleVersionsAreFromDifferentGameVersion)
     {
         MessageBox.Show(Properties.Resources.CompatibleGameVersionsDialogGameUpdated);
         CancelChooseCompatibleVersionsButton.Visible = false;
         GameVersionLabel.Text = string.Format(
             Properties.Resources.CompatibleGameVersionsDialogVersionDetails,
             _inst.Version(),
             _inst.GameVersionWhenCompatibleVersionsWereStored
             );
         GameVersionLabel.ForeColor = System.Drawing.Color.Red;
     }
 }
        private string[] rowItems(GameInstance instance, bool includeGame, bool includePlayTime)
        {
            var list = new List <string>
            {
                !instance.Valid
                    ? string.Format(Properties.Resources.ManageGameInstancesNameColumnInvalid, instance.Name)
                    : !(_manager.CurrentInstance?.Equals(instance) ?? false) && instance.IsMaybeLocked
                        ? string.Format(Properties.Resources.ManageGameInstancesNameColumnLocked, instance.Name)
                        : instance.Name
            };

            if (includeGame)
            {
                list.Add(instance.game.ShortName);
            }

            list.Add(FormatVersion(instance.Version()));

            if (includePlayTime)
            {
                list.Add(instance.playTime?.ToString() ?? "");
            }

            list.Add(instance.GameDir().Replace('/', Path.DirectorySeparatorChar));
            return(list.ToArray());
        }
        /// <summary>
        /// Initialize the compatible game versions dialog
        /// </summary>
        /// <param name="inst">Game instance</param>
        /// <param name="centerScreen">true to center the dialog on the screen, false to center on the parent</param>
        public CompatibleGameVersionsDialog(GameInstance inst, bool centerScreen)
        {
            this._inst = inst;
            InitializeComponent();

            if (centerScreen)
            {
                StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
            }

            List <GameVersion> compatibleVersions = inst.GetCompatibleVersions();

            GameVersionLabel.Text  = inst.Version()?.ToString() ?? Properties.Resources.CompatibleGameVersionsDialogNone;
            GameLocationLabel.Text = inst.GameDir().Replace('/', Path.DirectorySeparatorChar);
            List <GameVersion> knownVersions                = inst.game.KnownVersions;
            List <GameVersion> majorVersionsList            = CreateMajorVersionsList(knownVersions);
            List <GameVersion> compatibleVersionsLeftOthers = new List <GameVersion>(compatibleVersions);

            compatibleVersionsLeftOthers.RemoveAll((el) => knownVersions.Contains(el) || majorVersionsList.Contains(el));

            SortAndAddVersionsToList(compatibleVersionsLeftOthers, compatibleVersions);
            SortAndAddVersionsToList(majorVersionsList, compatibleVersions);
            SortAndAddVersionsToList(knownVersions, compatibleVersions);
        }