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

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

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

--- trunk/RomCheater/Docking/MemorySearch/NotInRangeComparer.cs	2012/06/20 10:51:25	396
+++ trunk/RomCheater/Docking/MemorySearch/NotInRangeComparer.cs	2012/06/21 18:10:21	408
@@ -3,6 +3,8 @@
 using System.Linq;
 using System.Text;
 using System.IO;
+using Sojaner.MemoryScanner.MemoryProviers;
+using RomCheater.PluginFramework.Interfaces;
 
 namespace RomCheater.Docking.MemorySearch
 {
@@ -14,7 +16,7 @@
         }
 
         #region IRangeComparer<object> Members
-        public bool Compare(object Start, object End, SearchDataTypes bitsize, bool unsigned, BinaryReader r)
+        public bool Compare(object Start, object End, SearchDataTypes bitsize, bool unsigned, IAcceptsProcessAndConfig pconfig)
         {
             //reader.BaseStream.Seek(this.Address, SeekOrigin.Begin);
 
@@ -26,12 +28,16 @@
             {
                 if (unsigned)
                 {
-                    lookup_value = new DataTypeConverter(r.ReadByte());
+                    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(r.ReadSByte());
+                    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; }
                 }
             }
@@ -39,12 +45,16 @@
             {
                 if (unsigned)
                 {
-                    lookup_value = new DataTypeConverter(r.ReadUInt16());
+                    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(r.ReadInt16());
+                    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; }
                 }
             }
@@ -52,12 +62,16 @@
             {
                 if (unsigned)
                 {
-                    lookup_value = new DataTypeConverter(r.ReadUInt32());
+                    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(r.ReadInt32());
+                    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; }
                 }
             }
@@ -65,12 +79,16 @@
             {
                 if (unsigned)
                 {
-                    lookup_value = new DataTypeConverter(r.ReadUInt64());
+                    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(r.ReadInt64());
+                    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