Hex Editor - freeze address feature

This commit is contained in:
andres.delikat 2011-03-24 01:42:53 +00:00
parent b89f576fae
commit d21a4ecd88
3 changed files with 64 additions and 3 deletions

View File

@ -55,6 +55,7 @@
this.freezeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.addToRamWatchToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.MemoryViewer = new BizHawk.MultiClient.MemoryViewer();
this.freezeAddressToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.menuStrip1.SuspendLayout();
this.ViewerContextMenuStrip.SuspendLayout();
this.SuspendLayout();
@ -108,7 +109,8 @@
this.enToolStripMenuItem,
this.toolStripSeparator2,
this.goToAddressToolStripMenuItem,
this.addToRamWatchToolStripMenuItem1});
this.addToRamWatchToolStripMenuItem1,
this.freezeAddressToolStripMenuItem});
this.optionsToolStripMenuItem.Name = "optionsToolStripMenuItem";
this.optionsToolStripMenuItem.Size = new System.Drawing.Size(56, 20);
this.optionsToolStripMenuItem.Text = "&Options";
@ -237,10 +239,10 @@
//
// freezeToolStripMenuItem
//
this.freezeToolStripMenuItem.Enabled = false;
this.freezeToolStripMenuItem.Name = "freezeToolStripMenuItem";
this.freezeToolStripMenuItem.Size = new System.Drawing.Size(175, 22);
this.freezeToolStripMenuItem.Text = "&Freeze";
this.freezeToolStripMenuItem.Click += new System.EventHandler(this.freezeToolStripMenuItem_Click);
//
// addToRamWatchToolStripMenuItem
//
@ -264,6 +266,13 @@
this.MemoryViewer.Paint += new System.Windows.Forms.PaintEventHandler(this.MemoryViewer_Paint);
this.MemoryViewer.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.MemoryViewer_MouseDoubleClick);
//
// freezeAddressToolStripMenuItem
//
this.freezeAddressToolStripMenuItem.Name = "freezeAddressToolStripMenuItem";
this.freezeAddressToolStripMenuItem.Size = new System.Drawing.Size(204, 22);
this.freezeAddressToolStripMenuItem.Text = "&Freeze Address";
this.freezeAddressToolStripMenuItem.Click += new System.EventHandler(this.freezeAddressToolStripMenuItem_Click);
//
// HexEditor
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
@ -313,5 +322,6 @@
private System.Windows.Forms.ToolStripSeparator toolStripSeparator2;
private System.Windows.Forms.ToolStripMenuItem addToRamWatchToolStripMenuItem1;
private System.Windows.Forms.ToolStripMenuItem saveWindowsSettingsToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem freezeAddressToolStripMenuItem;
}
}

View File

@ -110,9 +110,15 @@ namespace BizHawk.MultiClient
}
if (MemoryViewer.GetHighlightedAddress() >= 0)
{
addToRamWatchToolStripMenuItem1.Enabled = true;
freezeAddressToolStripMenuItem.Enabled = true;
}
else
{
addToRamWatchToolStripMenuItem1.Enabled = false;
freezeAddressToolStripMenuItem.Enabled = false;
}
}
private void SetMemoryDomain(int pos)
@ -295,6 +301,41 @@ namespace BizHawk.MultiClient
saveWindowsSettingsToolStripMenuItem.Checked = Global.Config.HexEditorSaveWindowPosition;
}
private void freezeToolStripMenuItem_Click(object sender, EventArgs e)
{
FreezeAddress();
}
private void FreezeAddress()
{
int address = MemoryViewer.GetPointedAddress();
if (address >= 0)
{
Cheat c = new Cheat();
c.address = address;
c.value = MemoryViewer.GetPointedValue();
c.domain = MemoryViewer.GetDomain();
//TODO: multibyte
switch (MemoryViewer.GetDataSize())
{
default:
case 1:
break;
case 2:
break;
case 4:
break;
}
//w.bigendian = MemoryViewer.BigEndian;
Global.MainForm.Cheats1.AddCheat(c);
}
}
private void freezeAddressToolStripMenuItem_Click(object sender, EventArgs e)
{
FreezeAddress();
}
}
}

View File

@ -408,5 +408,15 @@ namespace BizHawk.MultiClient
{
return Domain.Size;
}
public byte GetPointedValue()
{
return Domain.PeekByte(addressOver);
}
public MemoryDomain GetDomain()
{
return Domain;
}
}
}