Exemple #1
0
 public void BuildFromDataFolderVB(string folderPath)
 {
     DatavB = new RSDKvB.DataFile();
     DirID  = 0;
     BuildDataFromFoldersVB(new DirectoryInfo(folderPath));
     SetFileListvB();
     RefreshUI();
 }
Exemple #2
0
        private void SelectDataFileButton_Click(object sender, EventArgs e)
        {
            OpenFileDialog dlg = new OpenFileDialog();

            dlg.Filter = "RSDKvRS Data files|Data*.bin|RSDKv1 Data files|Data*.bin|RSDKv2 Data files|Data*.rsdk|RSDKvB Data files|Data*.rsdk|RSDKv5 Data files|*.rsdk";

            if (dlg.ShowDialog(this) == System.Windows.Forms.DialogResult.OK)
            {
                switch (dlg.FilterIndex - 1)
                {
                case 0:
                    engineType = Retro_Formats.EngineType.RSDKvRS;
                    break;

                case 1:
                    engineType = Retro_Formats.EngineType.RSDKv1;
                    break;

                case 2:
                    engineType = Retro_Formats.EngineType.RSDKv2;
                    break;

                case 3:
                    engineType = Retro_Formats.EngineType.RSDKvB;
                    break;

                case 4:
                    engineType = Retro_Formats.EngineType.RSDKv5;
                    break;
                }
                filename = dlg.FileName;
                DataFileLocation.Text = filename;

                this.Text = "Data File Manager - Loading Datafile";
                //RetroED.MainForm.Instance.CurrentTabText = "Data File Manager - Loading Datafile";

                switch (engineType)
                {
                case Retro_Formats.EngineType.RSDKvRS:
                    DatavRS = new RSDKvRS.DataFile(filename);
                    SetFileListRS();
                    break;

                case Retro_Formats.EngineType.RSDKv1:
                    Datav1 = new RSDKv1.DataFile(filename);
                    SetFileListv1();
                    break;

                case Retro_Formats.EngineType.RSDKv2:
                    Datav2 = new RSDKv2.DataFile(filename);
                    SetFileListv2();
                    break;

                case Retro_Formats.EngineType.RSDKvB:
                    if (FileList == null || FileList.Count <= 0)
                    {
                        if (File.Exists("Data/DataFileUnpacker/RSDKvBFileList.txt"))
                        {
                            StreamReader reader = new StreamReader(File.OpenRead("Data/DataFileUnpacker/RSDKvBFileList.txt"));
                            while (!reader.EndOfStream)
                            {
                                FileList.Add(reader.ReadLine());
                            }
                            reader.Close();
                        }
                    }
                    if (FileList != null && FileList.Count > 0)
                    {
                        DatavB = new RSDKvB.DataFile(filename, FileList);
                        SetFileListvB();
                    }
                    break;

                case Retro_Formats.EngineType.RSDKv5:
                    if (FileList == null || FileList.Count <= 0)
                    {
                        if (File.Exists("Data/DataFileUnpacker/RSDKv5FileList.txt"))
                        {
                            StreamReader reader = new StreamReader(File.OpenRead("Data/DataFileUnpacker/RSDKv5FileList.txt"));
                            while (!reader.EndOfStream)
                            {
                                string[] info = reader.ReadLine().Split(',');
                                FileList.Add(info[0]);
                                if (info.Length > 2)
                                {
                                    KeyList.Add(info[1].ToUpper(), info[2].ToUpper());
                                }
                            }
                            reader.Close();
                        }
                        //Scan Object list and create hashes
                        if (File.Exists("Data/DataFileUnpacker/RSDKv5Objects.txt"))
                        {
                            StreamReader reader = new StreamReader(File.OpenRead("Data/DataFileUnpacker/RSDKv5Objects.txt"));
                            StreamWriter writer = new StreamWriter(File.OpenWrite("StaticObjects.txt"));
                            while (!reader.EndOfStream)
                            {
                                string rawhash;
                                string hash = "";
                                string name = reader.ReadLine();
                                rawhash = GetMd5HashString(name);

                                for (int c = 0; c < rawhash.Length; c += 2)
                                {
                                    char c1 = ' ';
                                    char c2 = ' ';
                                    c1 = rawhash[c];
                                    c2 = rawhash[c + 1];

                                    hash += c2;
                                    hash += c1;
                                }

                                string path = "Data/Objects/Static/" + hash.ToUpper() + ".bin";
                                writer.WriteLine(name + " (" + hash.ToUpper() + ")");

                                FileList.Add(path);
                            }
                            writer.Close();
                            reader.Close();
                        }
                    }
                    if (FileList != null && FileList.Count > 0)
                    {
                        Datav5 = new RSDKv5.DataFile(filename, FileList, KeyList);
                        SetFileListv5();
                    }
                    break;

                default:
                    break;
                }

                this.Text = "Data File Manager";
                //RetroED.MainForm.Instance.CurrentTabText = "Data File Manager";
            }
        }