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

Diff of /trunk/RomCheater/Docking/MemorySearch/InRangeComparer.cs

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

--- trunk/RomCheater/Docking/MemorySearch/InRangeComparer.cs	2012/06/19 10:15:53	384
+++ trunk/RomCheater/Docking/MemorySearch/InRangeComparer.cs	2012/06/21 18:10:21	408
@@ -3,6 +3,8 @@
 using System.Linq;
 using System.Text;
 using System.IO;
+using RomCheater.PluginFramework.Interfaces;
+using Sojaner.MemoryScanner.MemoryProviers;
 
 namespace RomCheater.Docking.MemorySearch
 {
@@ -13,7 +15,7 @@
         {
         }
         #region IRangeComparer<object> Members
-        public bool Compare(object Start, object End, SearchDataTypes bitsize, bool unsigned, byte[] buffered_mem)
+        public bool Compare(object Start, object End, SearchDataTypes bitsize, bool unsigned, IAcceptsProcessAndConfig pconfig)
         {
             //reader.BaseStream.Seek(this.Address, SeekOrigin.Begin);
 
@@ -25,12 +27,16 @@
             {
                 if (unsigned)
                 {
-                    lookup_value = new DataTypeConverter(buffered_mem[this.Address]);
+                    byte val = 0;
+                    using (GenericMemoryProvider gmp = new GenericMemoryProvider(pconfig)) { gmp.OpenProvider(); gmp.ReadMemory(Address, out val); gmp.CloseProvider(); }
+                    lookup_value = new DataTypeConverter(val);   
                     if (lookup_value.ToByte() >= (byte)start_value && lookup_value.ToByte() <= (byte)end_value) { this.Value = lookup_value.Value; return true; }
                 }
                 else
                 {
-                    lookup_value = new DataTypeConverter(buffered_mem[this.Address]);
+                    sbyte val = 0;
+                    using (GenericMemoryProvider gmp = new GenericMemoryProvider(pconfig)) { gmp.OpenProvider(); gmp.ReadMemory(Address, out val); gmp.CloseProvider(); }
+                    lookup_value = new DataTypeConverter(val);   
                     if (lookup_value.ToSByte() >= (sbyte)start_value && lookup_value.ToSByte() <= (sbyte)end_value) { this.Value = lookup_value.Value; return true; }
                 }
             }
@@ -38,12 +44,16 @@
             {
                 if (unsigned)
                 {
-                    lookup_value = new DataTypeConverter(BitConverter.ToUInt16(buffered_mem,(int)this.Address)) ;
+                    ushort val = 0;
+                    using (GenericMemoryProvider gmp = new GenericMemoryProvider(pconfig)) { gmp.OpenProvider(); gmp.ReadMemory(Address, out val); gmp.CloseProvider(); }
+                    lookup_value = new DataTypeConverter(val);   
                     if (lookup_value.ToUInt16() >= (ushort)start_value && lookup_value.ToUInt16() <= (ushort)end_value) { this.Value = lookup_value.Value; return true; }
                 }
                 else
                 {
-                    lookup_value = new DataTypeConverter(BitConverter.ToInt16(buffered_mem, (int)this.Address));
+                    short val = 0;
+                    using (GenericMemoryProvider gmp = new GenericMemoryProvider(pconfig)) { gmp.OpenProvider(); gmp.ReadMemory(Address, out val); gmp.CloseProvider(); }
+                    lookup_value = new DataTypeConverter(val);   
                     if (lookup_value.ToInt16() >= (short)start_value && lookup_value.ToInt16() <= (short)end_value) { this.Value = lookup_value.Value; return true; }
                 }
             }
@@ -51,12 +61,16 @@
             {
                 if (unsigned)
                 {
-                    lookup_value = new DataTypeConverter(BitConverter.ToUInt32(buffered_mem, (int)this.Address));
+                    uint val = 0;
+                    using (GenericMemoryProvider gmp = new GenericMemoryProvider(pconfig)) { gmp.OpenProvider(); gmp.ReadMemory(Address, out val); gmp.CloseProvider(); }
+                    lookup_value = new DataTypeConverter(val);   
                     if (lookup_value.ToUInt32() >= (uint)start_value && lookup_value.ToUInt32() <= (uint)end_value) { this.Value = lookup_value.Value; return true; }
                 }
                 else
                 {
-                    lookup_value = new DataTypeConverter(BitConverter.ToInt32(buffered_mem, (int)this.Address));
+                    int val = 0;
+                    using (GenericMemoryProvider gmp = new GenericMemoryProvider(pconfig)) { gmp.OpenProvider(); gmp.ReadMemory(Address, out val); gmp.CloseProvider(); }
+                    lookup_value = new DataTypeConverter(val);   
                     if (lookup_value.ToInt32() >= (int)start_value && lookup_value.ToInt32() <= (int)end_value) { this.Value = lookup_value.Value; return true; }
                 }
             }
@@ -64,12 +78,16 @@
             {
                 if (unsigned)
                 {
-                    lookup_value = new DataTypeConverter(BitConverter.ToUInt64(buffered_mem, (int)this.Address));
+                    ulong val = 0;
+                    using (GenericMemoryProvider gmp = new GenericMemoryProvider(pconfig)) { gmp.OpenProvider(); gmp.ReadMemory(Address, out val); gmp.CloseProvider(); }
+                    lookup_value = new DataTypeConverter(val);   
                     if (lookup_value.ToUInt64() >= (ulong)start_value && lookup_value.ToUInt64() <= (ulong)end_value) { this.Value = lookup_value.Value; return true; }
                 }
                 else
                 {
-                    lookup_value = new DataTypeConverter(BitConverter.ToInt64(buffered_mem, (int)this.Address));
+                    long val = 0;
+                    using (GenericMemoryProvider gmp = new GenericMemoryProvider(pconfig)) { gmp.OpenProvider(); gmp.ReadMemory(Address, out val); gmp.CloseProvider(); }
+                    lookup_value = new DataTypeConverter(val);   
                     if (lookup_value.ToInt64() >= (long)start_value && lookup_value.ToInt64() <= (long)end_value) { this.Value = lookup_value.Value; return true; }
                 }
             }

 

  ViewVC Help
Powered by ViewVC 1.1.22