private string GetAssetLink( string defName, UInt32 control, int element) { BINEntry entry = GetBINEntry(defName); if (entry != null) { DefinitionType def = FileDatabase.Instance.Definitions.GetDefinition( entry.Definition); def.ReadIn(entry); FableMod.ContentManagement.Control c = def.FindControl(control); if (c != null) { Member mbr = (Member)c.Members[element]; ContentObject o = ContentManager.Instance.FindEntry( mbr.Link.To, mbr.Value); if (o != null) { return(o.Name); } } } return(null); }
private string GetCDefDataID( string defName, string cdef) { BINEntry entry = myGameBin.GetEntryByName(defName); if (entry != null) { DefinitionType def = FileDatabase.Instance.Definitions.GetDefinition( entry.Definition); def.ReadIn(entry); if (def.CDefs != null) { CDefLink link = def.get_CDefLinks(cdef); if (link != null) { return(link.DataID.ToString()); } } } return(null); }
private void DefTypeLink( BINEntry entryDst, BINEntry entrySrc, string cdef) { DefinitionType def = FileDatabase.Instance.Definitions.GetDefinition( entryDst.Definition); def.ReadIn(entryDst); if (def.CDefs == null) { return; } CDefLink link = def.get_CDefLinks(cdef); if (link != null) { link.DataID = entrySrc.ID.ToString(); def.Write(entryDst); return; } def = null; }
/// <summary> /// Fix the links to self. /// </summary> /// <param name="entry"></param> /// <param name="originalId"></param> private void FixMainEntry(BINEntry entry, int originalId) { DefinitionType def = ContentManager.Instance.Definitions.GetDefinition( entry.Definition); def.ReadIn(entry); def.FixLinks( LinkDestination.GameBINEntryID, originalId, entry.ID); def.Write(entry); }
private void addEntryToolStripMenuItem_Click(object sender, EventArgs e) { FormNewGameBINEntry form = new FormNewGameBINEntry(myBIN); if (form.ShowDialog(this) == DialogResult.OK) { byte[] data = null; BINEntry defEntry = myBIN.GetEntryByName( form.Template); if (defEntry == null) { form.Dispose(); form = null; MessageBox.Show(this, "Default entry not found."); return; } data = defEntry.Data; BINEntry entry = myBIN.AddEntry( form.SymbolName, form.Definition, data); DefinitionType defType = ContentManager.Instance.Definitions.GetDefinition( form.Definition); defType.ReadIn(entry); defType.FixLinks( LinkDestination.GameBINEntryID, defEntry.ID, entry.ID); defType.Write(entry); treeView.SelectedNode = AddEntry(entry); data = null; } form.Dispose(); form = null; }
public FormCutscene(BINEntry cutscene) { InitializeComponent(); myCutscene = cutscene; Text = "Cutscene: " + myCutscene.Name; myDefType = ContentManager.Instance.Definitions.GetDefinition( myCutscene.Definition); myDefType.ReadIn(myCutscene); myMode1 = myDefType.FindControl(0x5A1E6CA9); myMode2 = myDefType.FindControl(0xC1CABAFF); myMode3 = myDefType.FindControl(0x4FC34512); textBox1.Text = GetScript(myMode1); textBox2.Text = GetScript(myMode2); textBox3.Text = GetScript(myMode3); myModified = false; }
private void AssetLink( BINEntry entryDst, AssetTemplate assetItem, UInt32 assetId) { DefinitionType def = ContentManager.Instance.Definitions.GetDefinition( entryDst.Definition); def.ReadIn(entryDst); FableMod.ContentManagement.Control c = def.FindControl(assetItem.ControlID); if (c != null) { ((Member)c.Members[assetItem.Element]).Value = assetId.ToString(); def.Write(entryDst); } def = null; }
public void RefreshDefinitionDisplay() { m_DefType = ContentManager.Instance.Definitions.GetDefinition( m_Entry.Definition); if (m_DefType != null) { try { if (m_DefDisplay != null) { // Remove old display. this.spltContainerMain.Panel2.Controls.Remove(m_DefDisplay); this.spltContainerMain.Panel2Collapsed = true; m_DefDisplay.Dispose(); } m_DefType.ReadIn(m_Entry); m_DefDisplay = new DefinitionTypeDisplay(m_DefType, ContentManager.Instance); this.Size = new System.Drawing.Size(Size.Width, 480); this.spltContainerMain.Panel2.Controls.Add(m_DefDisplay); this.spltContainerMain.Panel2Collapsed = false; m_DefDisplay.Dock = DockStyle.Fill; } catch (Exception exc) { this.Size = new System.Drawing.Size(Size.Width, 120); MessageBox.Show(this, exc.Message, "Error Parsing Entry"); //txtDefinitionDisplay.Text = "Error parsing entry." + Environment.NewLine + exc.Message; } } }
protected override void ShowSelectedEntry() { ContentManager mgr = ContentManager.Instance; ContentObject obj = mgr.FindEntry( LinkDestination.GameBINEntryName, Selected.Name); if (obj != null) { // Open the model. DefinitionType defType = mgr.Definitions.GetDefinition( Selected.Definition); if (defType != null) { defType.ReadIn(Selected); FableMod.ContentManagement.Control c = defType.FindControl(0xC8636B2E); if (c != null && c.Members.Count == 5) { Member m = (Member)c.Members[1]; mgr.ShowEntry( LinkDestination.ModelID, m.Value, true); } c = null; defType = null; } } }