void Init() { if (!File.Exists(WOW_EXE_NAME)) { Console.WriteLine("{0} not found!", WOW_EXE_NAME); Console.ReadKey(); return; } STREAM = new StreamReader(WOW_EXE_NAME, Encoding.ASCII).ReadToEnd(); gr = new GenericReader(WOW_EXE_NAME, Encoding.ASCII); Console.WriteLine("{0} kb readed to filestream", gr.BaseStream.Length / 1024); gr.BaseStream.Position = GO_DATA_INFO_START; for (int i = 0; i < 128; ++i) { GameObjectDataNameInfo info = gr.ReadStruct<GameObjectDataNameInfo>(); m_GoDataNames.Add(info); } gr.BaseStream.Position = GO_TYPE_INFO_START; for (int i = 0; i < 36; ++i) { GameObjectTypeInfo info = gr.ReadStruct<GameObjectTypeInfo>(); m_GoTypes.Add(info); m_GoData.Add(new List<int>()); if (info.DataCount > 0) { long pos = gr.BaseStream.Position; gr.BaseStream.Position = info.DataListOffset - OFFSET2; for (int j = 0; j < info.DataCount; ++j) { int dataid = gr.ReadInt32(); m_GoData[i].Add(dataid); } gr.BaseStream.Position = pos; } } DumpToFile(); gr.Close(); Console.WriteLine("Done!"); Console.ReadKey(); }