/// <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); }