ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/RomCheater/trunk/RomCheater/Docking/MemorySearch/InRangeComparer.cs
(Generate patch)

Comparing trunk/RomCheater/Docking/MemorySearch/InRangeComparer.cs (file contents):
Revision 407 by william, Wed Jun 20 10:51:25 2012 UTC vs.
Revision 408 by william, Thu Jun 21 18:10:21 2012 UTC

# Line 3 | Line 3 | using System.Collections.Generic;
3   using System.Linq;
4   using System.Text;
5   using System.IO;
6 + using RomCheater.PluginFramework.Interfaces;
7 + using Sojaner.MemoryScanner.MemoryProviers;
8  
9   namespace RomCheater.Docking.MemorySearch
10   {
# Line 13 | Line 15 | namespace RomCheater.Docking.MemorySearc
15          {
16          }
17          #region IRangeComparer<object> Members
18 <        public bool Compare(object Start, object End, SearchDataTypes bitsize, bool unsigned, BinaryReader r)
18 >        public bool Compare(object Start, object End, SearchDataTypes bitsize, bool unsigned, IAcceptsProcessAndConfig pconfig)
19          {
20              //reader.BaseStream.Seek(this.Address, SeekOrigin.Begin);
21  
# Line 25 | Line 27 | namespace RomCheater.Docking.MemorySearc
27              {
28                  if (unsigned)
29                  {
30 <                    lookup_value = new DataTypeConverter(r.ReadByte());
30 >                    byte val = 0;
31 >                    using (GenericMemoryProvider gmp = new GenericMemoryProvider(pconfig)) { gmp.OpenProvider(); gmp.ReadMemory(Address, out val); gmp.CloseProvider(); }
32 >                    lookup_value = new DataTypeConverter(val);  
33                      if (lookup_value.ToByte() >= (byte)start_value && lookup_value.ToByte() <= (byte)end_value) { this.Value = lookup_value.Value; return true; }
34                  }
35                  else
36                  {
37 <                    lookup_value = new DataTypeConverter(r.ReadSByte());
37 >                    sbyte val = 0;
38 >                    using (GenericMemoryProvider gmp = new GenericMemoryProvider(pconfig)) { gmp.OpenProvider(); gmp.ReadMemory(Address, out val); gmp.CloseProvider(); }
39 >                    lookup_value = new DataTypeConverter(val);  
40                      if (lookup_value.ToSByte() >= (sbyte)start_value && lookup_value.ToSByte() <= (sbyte)end_value) { this.Value = lookup_value.Value; return true; }
41                  }
42              }
# Line 38 | Line 44 | namespace RomCheater.Docking.MemorySearc
44              {
45                  if (unsigned)
46                  {
47 <                    lookup_value = new DataTypeConverter(r.ReadUInt16()) ;
47 >                    ushort val = 0;
48 >                    using (GenericMemoryProvider gmp = new GenericMemoryProvider(pconfig)) { gmp.OpenProvider(); gmp.ReadMemory(Address, out val); gmp.CloseProvider(); }
49 >                    lookup_value = new DataTypeConverter(val);  
50                      if (lookup_value.ToUInt16() >= (ushort)start_value && lookup_value.ToUInt16() <= (ushort)end_value) { this.Value = lookup_value.Value; return true; }
51                  }
52                  else
53                  {
54 <                    lookup_value = new DataTypeConverter(r.ReadInt16());
54 >                    short val = 0;
55 >                    using (GenericMemoryProvider gmp = new GenericMemoryProvider(pconfig)) { gmp.OpenProvider(); gmp.ReadMemory(Address, out val); gmp.CloseProvider(); }
56 >                    lookup_value = new DataTypeConverter(val);  
57                      if (lookup_value.ToInt16() >= (short)start_value && lookup_value.ToInt16() <= (short)end_value) { this.Value = lookup_value.Value; return true; }
58                  }
59              }
# Line 51 | Line 61 | namespace RomCheater.Docking.MemorySearc
61              {
62                  if (unsigned)
63                  {
64 <                    lookup_value = new DataTypeConverter(r.ReadUInt32());
64 >                    uint val = 0;
65 >                    using (GenericMemoryProvider gmp = new GenericMemoryProvider(pconfig)) { gmp.OpenProvider(); gmp.ReadMemory(Address, out val); gmp.CloseProvider(); }
66 >                    lookup_value = new DataTypeConverter(val);  
67                      if (lookup_value.ToUInt32() >= (uint)start_value && lookup_value.ToUInt32() <= (uint)end_value) { this.Value = lookup_value.Value; return true; }
68                  }
69                  else
70                  {
71 <                    lookup_value = new DataTypeConverter(r.ReadInt32());
71 >                    int val = 0;
72 >                    using (GenericMemoryProvider gmp = new GenericMemoryProvider(pconfig)) { gmp.OpenProvider(); gmp.ReadMemory(Address, out val); gmp.CloseProvider(); }
73 >                    lookup_value = new DataTypeConverter(val);  
74                      if (lookup_value.ToInt32() >= (int)start_value && lookup_value.ToInt32() <= (int)end_value) { this.Value = lookup_value.Value; return true; }
75                  }
76              }
# Line 64 | Line 78 | namespace RomCheater.Docking.MemorySearc
78              {
79                  if (unsigned)
80                  {
81 <                    lookup_value = new DataTypeConverter(r.ReadUInt64());
81 >                    ulong val = 0;
82 >                    using (GenericMemoryProvider gmp = new GenericMemoryProvider(pconfig)) { gmp.OpenProvider(); gmp.ReadMemory(Address, out val); gmp.CloseProvider(); }
83 >                    lookup_value = new DataTypeConverter(val);  
84                      if (lookup_value.ToUInt64() >= (ulong)start_value && lookup_value.ToUInt64() <= (ulong)end_value) { this.Value = lookup_value.Value; return true; }
85                  }
86                  else
87                  {
88 <                    lookup_value = new DataTypeConverter(r.ReadInt64());
88 >                    long val = 0;
89 >                    using (GenericMemoryProvider gmp = new GenericMemoryProvider(pconfig)) { gmp.OpenProvider(); gmp.ReadMemory(Address, out val); gmp.CloseProvider(); }
90 >                    lookup_value = new DataTypeConverter(val);  
91                      if (lookup_value.ToInt64() >= (long)start_value && lookup_value.ToInt64() <= (long)end_value) { this.Value = lookup_value.Value; return true; }
92                  }
93              }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines