示例#1
0
        private void FindSaves(string savePath)
        {
            this.saveListView.BeginUpdate();

            this.saveListView.Items.Clear();
            if (this.FileMode == PickerMode.Save)
            {
                var item = new ListViewItem()
                {
                    // ReSharper disable LocalizableElement
                    Name = "New Save",
                    // ReSharper restore LocalizableElement
                    Text = Properties.Localization.SavePicker_NewSaveLabel,
                    // ReSharper disable LocalizableElement
                    ImageKey = "New",
                    // ReSharper restore LocalizableElement
                };
                this.saveListView.Items.Add(item);
            }

            this._HighestSaveNumber = 1;
            if (savePath != null)
            {
                if (Directory.Exists(this.FilePath) == true)
                {
                    foreach (var inputPath in Directory
                             .GetFiles(savePath, "*.pcsav")
                             .OrderByDescending(Directory.GetLastWriteTime))
                    {
                        var baseName = Path.GetFileNameWithoutExtension(inputPath);
                        if (baseName != null &&
                            baseName.StartsWith("Save_") == true &&
                            baseName.Length == 9)
                        {
                            int saveNumber;
                            if (int.TryParse(baseName.Substring(5).TrimStart('0'), out saveNumber) == true)
                            {
                                this._HighestSaveNumber = Math.Max(saveNumber, this._HighestSaveNumber);
                            }
                        }

                        SaveFormats.SFXSaveGameFile saveFile = null;
                        try
                        {
                            using (var input = File.OpenRead(inputPath))
                            {
                                saveFile = SaveFormats.SFXSaveGameFile.Read(input);
                            }
                        }
                        catch (Exception)
                        {
                            saveFile = null;
                        }

                        var item = new ListViewItem()
                        {
                            Text     = Path.GetFileName(inputPath),
                            ImageKey = "",
                            Tag      = inputPath,
                        };
                        this.saveListView.Items.Add(item);
                    }
                }
            }

            this.saveListView.EndUpdate();

            if (this.saveListView.Items.Count > 0)
            {
                this.saveListView.Items[0].Selected = true;
            }
        }
示例#2
0
        private void InitializePostComponent()
        {
            this.SuspendLayout();

            this.Icon = new Icon(new MemoryStream(Properties.Resources.Guardian));
            this._RootWrexPictureBox.Image = Image.FromStream(new MemoryStream(Properties.Resources.Wrex), true);

            if (this._SavePath != null)
            {
                this._RootSaveGameOpenFileDialog.InitialDirectory = this._SavePath;
                this._RootSaveGameSaveFileDialog.InitialDirectory = this._SavePath;
            }
            else
            {
                this._RootDontUseCareerPickerToolStripMenuItem.Checked = true;
                this._RootDontUseCareerPickerToolStripMenuItem.Enabled = false;
                this._RootOpenFromCareerMenuItem.Enabled = false;
                this._RootSaveToCareerMenuItem.Enabled = false;
            }

            // ReSharper disable LocalizableElement
            const string playerBasicTabPageImageKey = "Tab_Player_Basic";
            const string playerAppearanceColorTabPageImageKey = "Tab_Player_Appearance_Color";
            const string playerAppearanceRootTabPageImageKey = "Tab_Player_Appearance_Root";
            const string rawTabPageImageKey = "Tab_Raw";
            const string plotRootTabPageImageKey = "Tab_Plot_Root";
            const string plotManualTabPageImageKey = "Tab_Plot_Manual";
            // ReSharper restore LocalizableElement

            this._RootIconImageList.Images.Clear();
            this._RootIconImageList.Images.Add("Unknown", new Bitmap(16, 16));
            this._RootIconImageList.Images.Add(_PlayerPlayerRootMaleImageKey, Properties.Resources.Editor_Tab_Player_Root_Male);
            this._RootIconImageList.Images.Add(_PlayerPlayerRootFemaleImageKey, Properties.Resources.Editor_Tab_Player_Root_Female);
            this._RootIconImageList.Images.Add(playerBasicTabPageImageKey, Properties.Resources.Editor_Tab_Player_Basic);
            this._RootIconImageList.Images.Add(playerAppearanceRootTabPageImageKey, Properties.Resources.Editor_Tab_Player_Appearance_Root);
            this._RootIconImageList.Images.Add(playerAppearanceColorTabPageImageKey, Properties.Resources.Editor_Tab_Player_Appearance_Color);
            this._RootIconImageList.Images.Add(rawTabPageImageKey, Properties.Resources.Editor_Tab_Raw);
            this._RootIconImageList.Images.Add(plotRootTabPageImageKey, Properties.Resources.Editor_Tab_Plot_Root);
            this._RootIconImageList.Images.Add(plotManualTabPageImageKey, Properties.Resources.Editor_Tab_Plot_Manual);

            this._PlayerRootTabPage.ImageKey = _PlayerPlayerRootMaleImageKey;
            this._PlayerBasicTabPage.ImageKey = playerBasicTabPageImageKey;
            this._PlayerAppearanceColorTabPage.ImageKey = playerAppearanceColorTabPageImageKey;
            this._PlayerAppearanceRootTabPage.ImageKey = playerAppearanceRootTabPageImageKey;
            this._RawTabPage.ImageKey = rawTabPageImageKey;
            this._PlotRootTabPage.ImageKey = plotRootTabPageImageKey;
            this._PlotManualTabPage.ImageKey = plotManualTabPageImageKey;

            //this.rootTabControl.SelectedTab = rawRootTabPage;
            this._RawSplitContainer.Panel2Collapsed = true;

            this.AddTable(Properties.Localization.Editor_BasicTable_Character_Label, BasicTable.Character.Build(this));
            this.AddTable(Properties.Localization.Editor_BasicTable_Reputation_Label, BasicTable.Reputation.Build(this));
            this.AddTable(Properties.Localization.Editor_BasicTable_Resources_Label, BasicTable.Resources.Build(this));

            this.AddPlotEditors();

            if (this._SaveFile != null)
            {
                var saveFile = this._SaveFile;
                this.SaveFile = null;
                this.SaveFile = saveFile;
            }

            this.ResumeLayout();
        }
示例#3
0
        private void FindCareers()
        {
            this.careerListView.BeginUpdate();

            this.careerListView.Items.Clear();

            if (Directory.Exists(this.FilePath) == true)
            {
                foreach (var careerPath in Directory
                         .GetDirectories(this.FilePath)
                         .OrderByDescending(Directory.GetLastWriteTime))
                {
                    var careerFiles = Directory.GetFiles(careerPath, "*.pcsav");
                    if (careerFiles.Length == 0)
                    {
                        continue;
                    }

                    SaveFormats.SFXSaveGameFile saveFile = null;
                    foreach (var careerFile in careerFiles)
                    {
                        try
                        {
                            using (var input = File.OpenRead(careerFile))
                            {
                                saveFile = SaveFormats.SFXSaveGameFile.Read(input);
                            }

                            break;
                        }
                        catch (Exception)
                        {
                            saveFile = null;
                        }
                    }

                    // attempt to parse the directory name
                    string name;
                    SaveFormats.OriginType    originType;
                    SaveFormats.NotorietyType reputationType;
                    string   className;
                    DateTime date;

                    if (ParseCareerName(
                            Path.GetFileName(careerPath),
                            out name,
                            out originType,
                            out reputationType,
                            out className,
                            out date) == true)
                    {
                        var classType = PlayerClass.Invalid;

                        if (saveFile != null)
                        {
                            classType = GetPlayerClassFromStringId(saveFile.Player.ClassFriendlyName);
                        }

                        if (classType == PlayerClass.Invalid &&
                            className != null)
                        {
                            classType = GetPlayerClassFromLocalizedName(className);
                        }

                        string displayName = "";
                        displayName += (saveFile == null ? name : saveFile.Player.FirstName) + "\n";
                        displayName += string.Format("{0}, {1}",
                                                     classType,
                                                     date.ToString("d"));
                        //displayName += date.ToString();

                        this.careerListView.Items.Add(new ListViewItem()
                        {
                            Text = displayName,
                            // ReSharper disable LocalizableElement
                            ImageKey = "Class_" + classType.ToString(),
                            // ReSharper restore LocalizableElement
                            Tag = careerPath,
                        });
                    }
                    else
                    {
                        this.careerListView.Items.Add(new ListViewItem()
                        {
                            Text = Path.GetFileName(careerPath),
                            // ReSharper disable LocalizableElement
                            ImageKey = "Class_Unknown",
                            // ReSharper restore LocalizableElement
                            Tag = careerPath,
                        });
                    }
                }
            }

            if (this.FileMode == PickerMode.Save)
            {
                if (this.careerListView.Items.Count > 0)
                {
                    var item = new ListViewItem()
                    {
                        // ReSharper disable LocalizableElement
                        Name = "New Career",
                        // ReSharper restore LocalizableElement
                        Text = Properties.Localization.SavePicker_NewCareerLabel,
                        // ReSharper disable LocalizableElement
                        ImageKey = "New",
                        // ReSharper restore LocalizableElement
                    };
                    this.careerListView.Items.Insert(1, item);
                }
                else
                {
                    var item = new ListViewItem()
                    {
                        // ReSharper disable LocalizableElement
                        Name = "New Career",
                        // ReSharper restore LocalizableElement
                        Text = Properties.Localization.SavePicker_NewCareerLabel,
                        // ReSharper disable LocalizableElement
                        ImageKey = "New",
                        // ReSharper restore LocalizableElement
                    };
                    this.careerListView.Items.Add(item);
                }
            }

            this.careerListView.EndUpdate();

            if (this.careerListView.Items.Count > 0)
            {
                this.careerListView.Items[0].Selected = true;
            }
            else
            {
                this.FindSaves(null);
            }
        }