public InternalAssetEditor(Asset asset, ArchiveEditorFunctions archive, bool hideHelp) { InitializeComponent(); TopMost = true; this.asset = asset; this.archive = archive; DynamicTypeDescriptor dt = new DynamicTypeDescriptor(asset.GetType()); asset.SetDynamicProperties(dt); propertyGridAsset.SelectedObject = dt.FromComponent(asset); labelAssetName.Text = $"[{asset.AHDR.assetType.ToString()}] {asset.ToString()}"; propertyGridAsset.HelpVisible = !hideHelp; if (asset is AssetCAM cam) { SetupForCam(cam); } else if (asset is AssetCSN csn) { SetupForCsn(csn); } else if (asset is AssetGRUP grup) { SetupForGrup(grup); } else if (asset is AssetRenderWareModel arwm) { SetupForModel(arwm); } else if (asset is AssetSHRP shrp) { SetupForShrp(shrp); } else if (asset is AssetWIRE wire) { SetupForWire(wire); } Button buttonHelp = new Button() { Dock = DockStyle.Fill, Text = "Open Wiki Page", AutoSize = true }; buttonHelp.Click += (object sender, EventArgs e) => System.Diagnostics.Process.Start(AboutBox.WikiLink + asset.AHDR.assetType.ToString()); tableLayoutPanel1.Controls.Add(buttonHelp, 0, tableLayoutPanel1.RowCount - 1); Button buttonFindCallers = new Button() { Dock = DockStyle.Fill, Text = "Find Who Targets Me", AutoSize = true }; buttonFindCallers.Click += (object sender, EventArgs e) => Program.MainForm.FindWhoTargets(GetAssetID()); tableLayoutPanel1.Controls.Add(buttonFindCallers, 1, tableLayoutPanel1.RowCount - 1); }