Ejemplo n.º 1
0
        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();
        }