예제 #1
0
        GameMemoryTable CreateGameMemoryTableForReader(ProcessMemoryReader reader)
        {
            string fileVersion = reader.FileVersion;

            if (reader.ModuleName == D2SEModuleName)
            {
                string version = reader.ReadNullTerminatedString(new IntPtr(0x1A049), 5, Encoding.ASCII, AddressingMode.Relative);
                if (version == "1.13c")
                {
                    fileVersion = GameVersion.Version_1_13_C;
                }
            }
            return(memoryTableFactory.CreateForVersion(fileVersion, reader.ModuleBaseAddresses));
        }
예제 #2
0
 GameMemoryTable CreateGameMemoryTableForReader(ProcessMemoryReader reader)
 {
     try
     {
         return(memoryTableFactory.CreateForVersion(reader.FileVersion, reader.ModuleBaseAddresses));
     } catch (GameVersionUnsupportedException)
     {
         // account for d2se and possibly other 'unsupported' versions
         string version = reader.ReadNullTerminatedString(new IntPtr(0x1A049), 5, Encoding.ASCII, AddressingMode.Relative);
         if (version == "1.13c")
         {
             return(memoryTableFactory.CreateForVersion(GameVersion.Version_1_13_C, reader.ModuleBaseAddresses));
         }
     }
     return(null);
 }