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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 398 - (hide annotations) (download)
Wed Jun 20 12:16:34 2012 UTC (8 years, 9 months ago) by william
File size: 4492 byte(s)
MemmoryProvider: using statements

1 william 230 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 william 240 using Sojaner.MemoryScanner.MemoryProviers;
11 william 243 using RomCheater.PluginFramework.Interfaces;
12 william 230
13    
14     namespace RomCheater.Docking.MemorySearch
15     {
16 william 243 public partial class SearchRangePatcher : Form,
17     IAcceptsPlugin<IConfigPlugin>,
18     IAcceptsProcess<Process>,
19     IAcceptsProcessAndConfig
20 william 230 {
21 william 243 #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 william 230 //PCSX2MemoryProvider provider;
28 william 243 //SearchDataTypes DataType;
29 william 230 //bool Unsigned = false;
30     private List<ResultDataType> PatchList;
31 william 243 public SearchRangePatcher(IAcceptsProcessAndConfig pconfig ,List<ResultDataType> patchList)
32 william 230 {
33     InitializeComponent();
34 william 243 this.AcceptedPlugin = pconfig.AcceptedPlugin;
35     this.AcceptedProcess = pconfig.AcceptedProcess;
36 william 230 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 william 398 using (GenericMemoryProvider provider = new GenericMemoryProvider((IAcceptsProcessAndConfig)this))
67 william 230 {
68 william 398 provider.OpenProvider();
69     foreach (ResultDataType patch in PatchList)
70 william 230 {
71 william 398 switch (patch.ValueType)
72     {
73     case SearchDataTypes._8bits:
74     if (patch.IsUnsigned) { provider.PatchMemory(patch.Address, (byte)txtValue.Value); }
75     else { provider.PatchMemory(patch.Address, (sbyte)txtValue.Value); }
76     break;
77     case SearchDataTypes._16bits:
78     if (patch.IsUnsigned) { provider.PatchMemory(patch.Address, (ushort)txtValue.Value); }
79     else { provider.PatchMemory(patch.Address, (short)txtValue.Value); }
80     break;
81     case SearchDataTypes._32bits:
82     if (patch.IsUnsigned) { provider.PatchMemory(patch.Address, (uint)txtValue.Value); }
83     else { provider.PatchMemory(patch.Address, (int)txtValue.Value); }
84     break;
85     case SearchDataTypes._64bits:
86     if (patch.IsUnsigned) { provider.PatchMemory(patch.Address, (ulong)txtValue.Value); }
87     else { provider.PatchMemory(patch.Address, (long)txtValue.Value); }
88     break;
89     }
90 william 230 }
91 william 398 provider.CloseProvider();
92 william 230 }
93     this.Close();
94     }
95    
96     private void CopyToClipboard(string data)
97     {
98     Clipboard.SetData(DataFormats.Text, data);
99     }
100    
101     private void btnCopyvaluetoClipboard_Click(object sender, EventArgs e)
102     {
103     this.CopyToClipboard(txtValue.Text);
104     }
105    
106     private void SearchPatcher_KeyDown(object sender, KeyEventArgs e)
107     {
108     if (e.KeyCode == Keys.Enter) btnOK.PerformClick();
109     }
110     }
111     }

  ViewVC Help
Powered by ViewVC 1.1.22