public void OpenFile(GameArchives.IFile i) { var inspector = InspectorFactory.GetInspector(InspectorFactory.LoadObject(i)); if (inspector != null) { OpenTab(inspector, i.Name); fileTreeView.Select(); } }
public static object LoadObject(GameArchives.IFile i) { if (i.Name.Contains(".bmp_") || i.Name.Contains(".png_")) { using (var s = i.GetStream()) { try { return(TextureReader.ReadStream(s)); } catch (Exception ex) { System.Windows.Forms.MessageBox.Show("Couldn't load texture: " + ex.Message); return(null); } } } else if (i.Name.Contains("_dta_") || i.Name.EndsWith(".dtb")) { using (var s = i.GetStream()) { var data = DtxCS.DTX.FromDtb(s); var sb = new StringBuilder(); foreach (var x in data.Children) { sb.AppendLine(x.ToString(0)); } return(sb.ToString()); } } else if (i.Name.EndsWith(".dta") || i.Name.EndsWith(".moggsong")) { using (var s = i.GetStream()) using (var r = new System.IO.StreamReader(s)) { return(r.ReadToEnd()); } } else if (i.Name.Contains(".songdta")) { using (var s = i.GetStream()) { var songData = SongDataReader.ReadStream(s); return(songData); } } else if (i.Name.Contains(".fbx")) { using (var s = i.GetStream()) { return(HxMeshReader.ReadStream(s)); } } else if (i.Name.Contains(".rbmid_")) { using (var s = i.GetStream()) { return(RBMidReader.ReadStream(s)); } } else if (i.Name.Contains(".lipsync")) { using (var s = i.GetStream()) { return(new LipsyncReader(s).Read()); } } else if (i.Name.Contains(".rbsong")) { using (var s = i.GetStream()) { return(new RBSongReader(s).Read()); } } else if (i.Name.Contains(".gp4")) { using (var s = i.GetStream()) { return(LibOrbisPkg.GP4.Gp4Project.ReadFrom(s)); } } else if (i.Name.Contains(".pkg")) { using (var s = i.GetStream()) { return(new LibOrbisPkg.PKG.PkgReader(s).ReadHeader()); } } else { return(null); } }