public void BuildFromDataFolderV5(string folderPath) { Datav5 = new RSDKv5.DataFile(); DirID = 0; BuildDataFromFoldersV5(new DirectoryInfo(folderPath)); SetFileListv5(); RefreshUI(); }
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"; } }