Exemplo n.º 1
0
        private void CreateButton_Click(object sender, EventArgs e)
        {
            Repoint repoint = Prompt.ShowRepointCreateDialog();

            Program.Core.FEH.Point.Add(repoint);

            if (repoint.CurrentAddress != repoint.DefaultAddress)
            {
                Core.Repoint(this, repoint.CurrentAddress, repoint.CurrentAddress, repoint.AssetName + " repoint");
            }
            Core_Update();
        }
Exemplo n.º 2
0
        /// <summary>
        /// Returns the current pointer to the asset whose name matches the one given
        /// </summary>
        public static Repoint GetRepoint(string asset)
        {
            Repoint result = Program.Core.FEH.Point.Get(asset);

            if (result == null)
            {
                throw new Exception("Couldn't find pointer with asset name: " + asset);
            }
            else
            {
                return(result);
            }
        }
Exemplo n.º 3
0
 void Update_EditPanel(Repoint selection)
 {
     if (selection == null)
     {
         ReferenceListBox.DataSource     = null;
         Repoint_NameTextBox.Text        = "";
         Repoint_DefaultPointerBox.Value = new Pointer();
         Repoint_CurrentPointerBox.Value = new Pointer();
     }
     else
     {
         ReferenceListBox.DataSource     = selection.References;
         Repoint_NameTextBox.Text        = selection.AssetName;
         Repoint_DefaultPointerBox.Value = selection.DefaultAddress;
         Repoint_CurrentPointerBox.Value = selection.CurrentAddress;
     }
 }
Exemplo n.º 4
0
 private void RepointButton_Click(object sender, EventArgs e)
 {
     if (PointerDataGrid.SelectedRows.Count == 0)
     {
         Program.ShowMessage("There is no pointer selected.");
     }
     else if (PointerDataGrid.SelectedRows.Count == 1)
     {
         Repoint asset = Program.Core.FEH.Point.Get((string)PointerDataGrid.CurrentRow.Cells[0].Value);
         asset.AssetName = Repoint_NameTextBox.Text;
         Core.Repoint(this, asset.CurrentAddress, Repoint_CurrentPointerBox.Value, asset.AssetName + " repointed");
     }
     else
     {
         Program.ShowMessage("You cannot modify several asset pointers at once.");
     }
     Core_Update();
 }
Exemplo n.º 5
0
        /// <summary>
        /// Replaces any occurence of the 'original' pointer found in the ROM
        /// </summary>
        public static void Repoint(Editor sender, Pointer original, Pointer repoint, string description = "")
        {
            if (original == repoint)
            {
                return;
            }
            Repoint pointer = Program.Core.FEH.Point.Get(original);

            if (pointer == null)
            {
                throw new Exception("Couldn't find any FEH Repoint of address: " + original);
            }
            pointer.UpdateReferences();
            for (int i = 0; i < pointer.References.Length; i++)
            {
                Core.WritePointer(sender, pointer.References[i], repoint, description);
            }
            pointer.CurrentAddress = repoint;
            pointer.UpdateReferences();
        }
Exemplo n.º 6
0
        /// <summary>
        /// Shows a prompt asking to create a FEH Repoint tracker and returns that
        /// </summary>
        public static Repoint ShowRepointCreateDialog(string assetName = "")
        {
            CreateRepointDialog dialog = new CreateRepointDialog();

            if (assetName.Length != 0)
            {
                dialog.AssetName = assetName;
            }

            if (dialog.ShowDialog() == DialogResult.OK)
            {
                Repoint repoint = new Repoint(dialog.AssetName, dialog.DefaultAddress);

                if (dialog.RepointAddress != new Pointer() && dialog.RepointAddress != dialog.DefaultAddress)
                {
                    repoint.CurrentAddress = dialog.RepointAddress;
                }
                return(repoint);
            }
            else
            {
                return(null);
            }
        }
Exemplo n.º 7
0
 /// <summary>
 /// Adds a repoint tracker for a pointer in the ROM to the list
 /// </summary>
 /// <param name="repoint"></param>
 public void Add(Repoint repoint)
 {
     Repoints.Add(repoint);
 }