/[RomCheater]/trunk/RomCheater/Docking/MemorySearch/SearchRangePatcher.cs
ViewVC logotype

Contents of /trunk/RomCheater/Docking/MemorySearch/SearchRangePatcher.cs

Parent Directory Parent Directory | Revision Log Revision Log


Revision 243 - (show annotations) (download)
Sun Jun 3 13:21:51 2012 UTC (8 years, 6 months ago) by william
File size: 4281 byte(s)

1 using System;
2 using System.Collections.Generic;
3 using System.ComponentModel;
4 using System.Data;
5 using System.Drawing;
6 using System.Text;
7 using System.Windows.Forms;
8 using RomCheater.Logging;
9 using System.Diagnostics;
10 using Sojaner.MemoryScanner.MemoryProviers;
11 using RomCheater.PluginFramework.Interfaces;
12
13
14 namespace RomCheater.Docking.MemorySearch
15 {
16 public partial class SearchRangePatcher : Form,
17 IAcceptsPlugin<IConfigPlugin>,
18 IAcceptsProcess<Process>,
19 IAcceptsProcessAndConfig
20 {
21 #region IAcceptsProcess<Process> Members
22 public Process AcceptedProcess { get; set; }
23 #endregion
24 #region IAcceptsPlugin<IConfigPlugin> Members
25 public IConfigPlugin AcceptedPlugin { get; set; }
26 #endregion
27 //PCSX2MemoryProvider provider;
28 //SearchDataTypes DataType;
29 //bool Unsigned = false;
30 private List<ResultDataType> PatchList;
31 public SearchRangePatcher(IAcceptsProcessAndConfig pconfig ,List<ResultDataType> patchList)
32 {
33 InitializeComponent();
34 this.AcceptedPlugin = pconfig.AcceptedPlugin;
35 this.AcceptedProcess = pconfig.AcceptedProcess;
36 PatchList = patchList;
37 int CurrentBitSize = 0;
38 // get the larget datatype
39 foreach (ResultDataType patch in PatchList)
40 {
41 if ((int)patch.ValueType > CurrentBitSize)
42 {
43 CurrentBitSize = (int)patch.ValueType;
44 }
45 }
46 switch (CurrentBitSize)
47 {
48 case (int)SearchDataTypes._8bits: txtValue.CreateTypeSize<byte>(); break;
49 case (int)SearchDataTypes._16bits: txtValue.CreateTypeSize<ushort>(); break;
50 case (int)SearchDataTypes._32bits: txtValue.CreateTypeSize<uint>(); break;
51 case (int)SearchDataTypes._64bits: txtValue.CreateTypeSize<ulong>(); break;
52 }
53
54 }
55
56 private void SearchPatcher_Load(object sender, EventArgs e)
57 {
58 txtValue.ReadOnly = false;
59 }
60 private void btnCancel_Click(object sender, EventArgs e)
61 {
62 this.Close();
63 }
64 private void btnOK_Click(object sender, EventArgs e)
65 {
66 GenericMemoryProvider provider = new GenericMemoryProvider((IAcceptsProcessAndConfig)this);
67 foreach(ResultDataType patch in PatchList)
68 {
69 switch (patch.ValueType)
70 {
71 case SearchDataTypes._8bits:
72 if (patch.IsUnsigned) { provider.PatchMemory(patch.Address, (byte)txtValue.Value); }
73 else { provider.PatchMemory(patch.Address, (sbyte)txtValue.Value); }
74 break;
75 case SearchDataTypes._16bits:
76 if (patch.IsUnsigned) { provider.PatchMemory(patch.Address, (ushort)txtValue.Value); }
77 else { provider.PatchMemory(patch.Address, (short)txtValue.Value); }
78 break;
79 case SearchDataTypes._32bits:
80 if (patch.IsUnsigned) { provider.PatchMemory(patch.Address, (uint)txtValue.Value); }
81 else { provider.PatchMemory(patch.Address, (int)txtValue.Value); }
82 break;
83 case SearchDataTypes._64bits:
84 if (patch.IsUnsigned) { provider.PatchMemory(patch.Address, (ulong)txtValue.Value); }
85 else { provider.PatchMemory(patch.Address, (long)txtValue.Value); }
86 break;
87 }
88 }
89 this.Close();
90 }
91
92 private void CopyToClipboard(string data)
93 {
94 Clipboard.SetData(DataFormats.Text, data);
95 }
96
97 private void btnCopyvaluetoClipboard_Click(object sender, EventArgs e)
98 {
99 this.CopyToClipboard(txtValue.Text);
100 }
101
102 private void SearchPatcher_KeyDown(object sender, KeyEventArgs e)
103 {
104 if (e.KeyCode == Keys.Enter) btnOK.PerformClick();
105 }
106 }
107 }

  ViewVC Help
Powered by ViewVC 1.1.22