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.freezeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.addToRamWatchToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.addToRamWatchToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.MemoryViewer = new BizHawk.MultiClient.MemoryViewer(); this.MemoryViewer = new BizHawk.MultiClient.MemoryViewer();
this.freezeAddressToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.menuStrip1.SuspendLayout(); this.menuStrip1.SuspendLayout();
this.ViewerContextMenuStrip.SuspendLayout(); this.ViewerContextMenuStrip.SuspendLayout();
this.SuspendLayout(); this.SuspendLayout();
@ -108,7 +109,8 @@
this.enToolStripMenuItem, this.enToolStripMenuItem,
this.toolStripSeparator2, this.toolStripSeparator2,
this.goToAddressToolStripMenuItem, this.goToAddressToolStripMenuItem,
this.addToRamWatchToolStripMenuItem1}); this.addToRamWatchToolStripMenuItem1,
this.freezeAddressToolStripMenuItem});
this.optionsToolStripMenuItem.Name = "optionsToolStripMenuItem"; this.optionsToolStripMenuItem.Name = "optionsToolStripMenuItem";
this.optionsToolStripMenuItem.Size = new System.Drawing.Size(56, 20); this.optionsToolStripMenuItem.Size = new System.Drawing.Size(56, 20);
this.optionsToolStripMenuItem.Text = "&Options"; this.optionsToolStripMenuItem.Text = "&Options";
@ -237,10 +239,10 @@
// //
// freezeToolStripMenuItem // freezeToolStripMenuItem
// //
this.freezeToolStripMenuItem.Enabled = false;
this.freezeToolStripMenuItem.Name = "freezeToolStripMenuItem"; this.freezeToolStripMenuItem.Name = "freezeToolStripMenuItem";
this.freezeToolStripMenuItem.Size = new System.Drawing.Size(175, 22); this.freezeToolStripMenuItem.Size = new System.Drawing.Size(175, 22);
this.freezeToolStripMenuItem.Text = "&Freeze"; this.freezeToolStripMenuItem.Text = "&Freeze";
this.freezeToolStripMenuItem.Click += new System.EventHandler(this.freezeToolStripMenuItem_Click);
// //
// addToRamWatchToolStripMenuItem // addToRamWatchToolStripMenuItem
// //
@ -264,6 +266,13 @@
this.MemoryViewer.Paint += new System.Windows.Forms.PaintEventHandler(this.MemoryViewer_Paint); this.MemoryViewer.Paint += new System.Windows.Forms.PaintEventHandler(this.MemoryViewer_Paint);
this.MemoryViewer.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.MemoryViewer_MouseDoubleClick); 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 // HexEditor
// //
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
@ -313,5 +322,6 @@
private System.Windows.Forms.ToolStripSeparator toolStripSeparator2; private System.Windows.Forms.ToolStripSeparator toolStripSeparator2;
private System.Windows.Forms.ToolStripMenuItem addToRamWatchToolStripMenuItem1; private System.Windows.Forms.ToolStripMenuItem addToRamWatchToolStripMenuItem1;
private System.Windows.Forms.ToolStripMenuItem saveWindowsSettingsToolStripMenuItem; 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) if (MemoryViewer.GetHighlightedAddress() >= 0)
{
addToRamWatchToolStripMenuItem1.Enabled = true; addToRamWatchToolStripMenuItem1.Enabled = true;
freezeAddressToolStripMenuItem.Enabled = true;
}
else else
{
addToRamWatchToolStripMenuItem1.Enabled = false; addToRamWatchToolStripMenuItem1.Enabled = false;
freezeAddressToolStripMenuItem.Enabled = false;
}
} }
private void SetMemoryDomain(int pos) private void SetMemoryDomain(int pos)
@ -295,6 +301,41 @@ namespace BizHawk.MultiClient
saveWindowsSettingsToolStripMenuItem.Checked = Global.Config.HexEditorSaveWindowPosition; 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; return Domain.Size;
} }
public byte GetPointedValue()
{
return Domain.PeekByte(addressOver);
}
public MemoryDomain GetDomain()
{
return Domain;
}
} }
} }