diff --git a/BizHawk.MultiClient/tools/HexEditor.Designer.cs b/BizHawk.MultiClient/tools/HexEditor.Designer.cs index e9cadabf68..1f0416610e 100644 --- a/BizHawk.MultiClient/tools/HexEditor.Designer.cs +++ b/BizHawk.MultiClient/tools/HexEditor.Designer.cs @@ -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; } } \ No newline at end of file diff --git a/BizHawk.MultiClient/tools/HexEditor.cs b/BizHawk.MultiClient/tools/HexEditor.cs index f5ebcb2e18..19007096c9 100644 --- a/BizHawk.MultiClient/tools/HexEditor.cs +++ b/BizHawk.MultiClient/tools/HexEditor.cs @@ -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(); + } } } diff --git a/BizHawk.MultiClient/tools/MemoryViewer.cs b/BizHawk.MultiClient/tools/MemoryViewer.cs index 73a9581f4b..938066b852 100644 --- a/BizHawk.MultiClient/tools/MemoryViewer.cs +++ b/BizHawk.MultiClient/tools/MemoryViewer.cs @@ -408,5 +408,15 @@ namespace BizHawk.MultiClient { return Domain.Size; } + + public byte GetPointedValue() + { + return Domain.PeekByte(addressOver); + } + + public MemoryDomain GetDomain() + { + return Domain; + } } }