Exemple #1
0
        void FillList()
        {
            uint   val1, val2, val3, val4, val5;
            string cur = String.Empty, old = String.Empty;

            gr.BaseStream.Position = FIELDS_INFO_START;

            do
            {
                val1 = gr.ReadUInt32();
                if (val1 == 0)
                {
                    val1 = gr.ReadUInt32();
                }
                val2 = gr.ReadUInt32();
                val3 = gr.ReadUInt32();
                val4 = gr.ReadUInt32();
                val5 = gr.ReadUInt32();

                long oldpos = gr.BaseStream.Position;
                gr.BaseStream.Position = val1 - FIELDS_NAMES_OFFSET;

                try
                {
                    cur = gr.ReadStringNull();
                }
                catch (EndOfStreamException exc)
                {
                    break;
                }

                gr.BaseStream.Position = oldpos;

                string info = String.Format("Size: {0}, Type: {1}, Flags: {2}", val3, (UpdateFieldType)val4, (UpdatafieldFlags)val5);

                UpdateField uf = new UpdateField(cur, val2, val3, info);
                list.Add(uf);

                //if (!old.Equals("CORPSE_FIELD_PAD") && cur.Equals("CORPSE_FIELD_PAD"))
                //    break;

                old = cur;
            } while (true);
        }
Exemple #2
0
        void FillList()
        {
            uint   val1, val2, size, type, flags;
            string cur = String.Empty, old = String.Empty;

            gr.BaseStream.Position = FIELDS_INFO_START;

            do
            {
                val1 = gr.ReadUInt32();
                if (val1 == 0)
                {
                    val1 = gr.ReadUInt32();
                }
                val2  = gr.ReadUInt32();
                size  = gr.ReadUInt32();
                type  = gr.ReadUInt32();
                flags = gr.ReadUInt32();

                long oldpos = gr.BaseStream.Position;
                gr.BaseStream.Position = val1 - FIELDS_NAMES_OFFSET;
                cur = gr.ReadStringNull();
                gr.BaseStream.Position = oldpos;

                string info = String.Format("Size: {0}, Type: {1}, Flags: {2}", size, (UpdateFieldType)type, (UpdatafieldFlags)flags);

                UpdateField uf = new UpdateField(cur, val2, size, info);
                list.Add(uf);

                if (!old.Equals("CORPSE_FIELD_PAD") && cur.Equals("CORPSE_FIELD_PAD"))
                {
                    break;
                }

                old = cur;
            } while (true);
        }