private void SelectFile(RpfEntry entry, int offset, int length) { RpfSelectedEntry = entry; RpfSelectedOffset = offset; RpfSelectedLength = length; RpfFileEntry rfe = entry as RpfFileEntry; if (rfe == null) { RpfDirectoryEntry rde = entry as RpfDirectoryEntry; if (rde != null) { FileInfoLabel.Text = rde.Path + " (Directory)"; DataTextBox.Text = "[Please select a data file]"; } else { FileInfoLabel.Text = "[Nothing selected]"; DataTextBox.Text = "[Please select a search result]"; } return; } Cursor = Cursors.WaitCursor; string typestr = "Resource"; if (rfe is RpfBinaryFileEntry) { typestr = "Binary"; } byte[] data = rfe.File.ExtractFile(rfe); int datalen = (data != null) ? data.Length : 0; FileInfoLabel.Text = rfe.Path + " (" + typestr + " file) - " + TextUtil.GetBytesReadable(datalen); if (ShowLargeFileContentsCheckBox.Checked || (datalen < 524287)) //512K { DisplayFileContentsText(rfe, data, length, offset); } else { DataTextBox.Text = "[Filesize >512KB. Select the Show large files option to view its contents]"; } //bool istexdict = false; //if (rfe.NameLower.EndsWith(".ymap")) //{ // YmapFile ymap = new YmapFile(rfe); // ymap.Load(data, rfe); // DetailsPropertyGrid.SelectedObject = ymap; //} //else if (rfe.NameLower.EndsWith(".ytyp")) //{ // YtypFile ytyp = new YtypFile(); // ytyp.Load(data, rfe); // DetailsPropertyGrid.SelectedObject = ytyp; //} //else if (rfe.NameLower.EndsWith(".ymf")) //{ // YmfFile ymf = new YmfFile(); // ymf.Load(data, rfe); // DetailsPropertyGrid.SelectedObject = ymf; //} //else if (rfe.NameLower.EndsWith(".ymt")) //{ // YmtFile ymt = new YmtFile(); // ymt.Load(data, rfe); // DetailsPropertyGrid.SelectedObject = ymt; //} //else if (rfe.NameLower.EndsWith(".ybn")) //{ // YbnFile ybn = new YbnFile(); // ybn.Load(data, rfe); // DetailsPropertyGrid.SelectedObject = ybn; //} //else if (rfe.NameLower.EndsWith(".fxc")) //{ // FxcFile fxc = new FxcFile(); // fxc.Load(data, rfe); // DetailsPropertyGrid.SelectedObject = fxc; //} //else if (rfe.NameLower.EndsWith(".yft")) //{ // YftFile yft = new YftFile(); // yft.Load(data, rfe); // DetailsPropertyGrid.SelectedObject = yft; // if ((yft.Fragment != null) && (yft.Fragment.Drawable != null) && (yft.Fragment.Drawable.ShaderGroup != null) && (yft.Fragment.Drawable.ShaderGroup.TextureDictionary != null)) // { // ShowTextures(yft.Fragment.Drawable.ShaderGroup.TextureDictionary); // istexdict = true; // } //} //else if (rfe.NameLower.EndsWith(".ydr")) //{ // YdrFile ydr = new YdrFile(); // ydr.Load(data, rfe); // DetailsPropertyGrid.SelectedObject = ydr; // if ((ydr.Drawable != null) && (ydr.Drawable.ShaderGroup != null) && (ydr.Drawable.ShaderGroup.TextureDictionary != null)) // { // ShowTextures(ydr.Drawable.ShaderGroup.TextureDictionary); // istexdict = true; // } //} //else if (rfe.NameLower.EndsWith(".ydd")) //{ // YddFile ydd = new YddFile(); // ydd.Load(data, rfe); // DetailsPropertyGrid.SelectedObject = ydd; // //todo: show embedded texdicts in ydd's? is this possible? //} //else if (rfe.NameLower.EndsWith(".ytd")) //{ // YtdFile ytd = new YtdFile(); // ytd.Load(data, rfe); // DetailsPropertyGrid.SelectedObject = ytd; // ShowTextures(ytd.TextureDict); // istexdict = true; //} //else if (rfe.NameLower.EndsWith(".ycd")) //{ // YcdFile ycd = new YcdFile(); // ycd.Load(data, rfe); // DetailsPropertyGrid.SelectedObject = ycd; //} //else if (rfe.NameLower.EndsWith(".ynd")) //{ // YndFile ynd = new YndFile(); // ynd.Load(data, rfe); // DetailsPropertyGrid.SelectedObject = ynd; //} //else if (rfe.NameLower.EndsWith(".ynv")) //{ // YnvFile ynv = new YnvFile(); // ynv.Load(data, rfe); // DetailsPropertyGrid.SelectedObject = ynv; //} //else if (rfe.NameLower.EndsWith("_cache_y.dat")) //{ // CacheDatFile cdf = new CacheDatFile(); // cdf.Load(data, rfe); // DetailsPropertyGrid.SelectedObject = cdf; //} //else if (rfe.NameLower.EndsWith(".rel")) //{ // RelFile rel = new RelFile(rfe); // rel.Load(data, rfe); // DetailsPropertyGrid.SelectedObject = rel; //} //else if (rfe.NameLower.EndsWith(".gxt2")) //{ // Gxt2File gxt2 = new Gxt2File(); // gxt2.Load(data, rfe); // DetailsPropertyGrid.SelectedObject = gxt2; //} //else if (rfe.NameLower.EndsWith(".pso")) //{ // JPsoFile pso = new JPsoFile(); // pso.Load(data, rfe); // DetailsPropertyGrid.SelectedObject = pso; //} //else //{ // DetailsPropertyGrid.SelectedObject = null; //} //if (!istexdict) //{ // ShowTextures(null); //} Cursor = Cursors.Default; }