void UpdatePointerTextBox(Gtk.Entry entry, ValueReference r) { pointerFrame.Remove(pointerFrame.Child); subEditor = new ObjectGroupEditor(); Gtk.Alignment alignment = new Gtk.Alignment(0.5F, 0.5F, 0.0F, 0.8F); try { Project.GetFileWithLabel(entry.Text.Trim()); subEditor.SetObjectGroup(Project.GetDataType <ObjectGroup>(r.GetStringValue())); subEditor.ShowAll(); alignment.Add(subEditor); r.SetValue(entry.Text.Trim()); } catch (InvalidLookupException) { subEditor.SetObjectGroup(null); Gtk.Label label = new Gtk.Label("Error: label \"" + entry.Text + "\" not found."); label.Show(); alignment.Add(label); } pointerFrame.Label = entry.Text; pointerFrame.Add(alignment); pointerFrame.ShowAll(); }
void UpdatePointerTextBox(Gtk.Entry entry, ValueReference r) { pointerFrame.Remove(pointerFrame.Child); subEditor = new ObjectGroupEditor(); Gtk.Alignment alignment = new Gtk.Alignment(0.5F, 0.5F, 0.0F, 0.8F); try { Project.GetFileWithLabel(entry.Text.Trim()); subEditor.SetObjectGroup(Project.GetDataType<ObjectGroup>(r.GetStringValue())); subEditor.ShowAll(); alignment.Add(subEditor); r.SetValue(entry.Text.Trim()); } catch (LabelNotFoundException) { subEditor.SetObjectGroup(null); Gtk.Label label = new Gtk.Label("Error: label \"" + entry.Text + "\" not found."); label.Show(); alignment.Add(label); } pointerFrame.Label = entry.Text; pointerFrame.Add(alignment); pointerFrame.ShowAll(); }
public void SetTreasure(int index) { int hIndex = index>>8; int lIndex = index&0xff; int hMax = Treasure.GetNumHighIndices(); if (hIndex >= hMax) hIndex = hMax-1; int lMax = Treasure.GetNumLowIndices(hIndex); if (lIndex >= lMax) lIndex = lMax-1; highIndexButton.Adjustment.Upper = hMax-1; lowIndexButton.Adjustment.Upper = lMax-1; highIndexButton.Value = hIndex; lowIndexButton.Value = lIndex; index = hIndex<<8|lIndex; vrContainer.Remove(vrEditor); Data data = Treasure.GetTreasureDataBase(index); ValueReference v1 = new ValueReference("Spawn Mode", 0, 4,6, DataValueType.ByteBits); v1.SetData(data); ValueReference v5 = new ValueReference("Grab Mode", 0, 0,2, DataValueType.ByteBits); v5.SetData(data); ValueReference v6 = new ValueReference("Unknown", 0, 3,3, DataValueType.ByteBit); v6.SetData(data); data = data.NextData; ValueReference v2 = new ValueReference("Parameter", 0, DataValueType.Byte); v2.SetData(data); data = data.NextData; ValueReference v3 = new ValueReference("Text ID", 0, DataValueType.Byte); v3.SetData(data); data = data.NextData; ValueReference v4 = new ValueReference("Gfx", 0, DataValueType.Byte); v4.SetData(data); data = data.NextData; // Byte 1 is sometimes set to 0x80 for unused treasures? v1.SetValue(v1.GetIntValue()&0x7f); ValueReferenceGroup vrGroup = new ValueReferenceGroup(new ValueReference[] {v1, v5, v6, v2, v3, v4}); var vr = new ValueReferenceEditor( Project, vrGroup, "Data"); vr.SetMaxBound(0, 0x7f); // Max bound for Spawn Mode vr.AddDataModifiedHandler(() => { if (TreasureChangedEvent != null) TreasureChangedEvent(); }); vrEditor = vr; vrContainer.Add(vrEditor); if (TreasureChangedEvent != null) TreasureChangedEvent(); }