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); }
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); }