public void ReadFrom(BinaryReader reader) { _item.ShItemIDs = new List <ShItemID>(); short idListSize = 0; if (_useIDListSize) { idListSize = reader.ReadInt16(); } if (_useIDListSize && idListSize <= 0) { return; } do { var shitem = new ShItemID(); var shitemReader = new ShItemIdHandler(shitem); shitemReader.ReadFrom(reader); if (shitem.Data != null) { _item.ShItemIDs.Add(shitem); } else { break; } } while (true); }
public override void ReadFrom(System.IO.BinaryReader reader) { base.ReadFrom(reader); ReadID(reader); Offset = reader.ReadInt32(); var computedOffset = 0; foreach (var shitemid in Context.ShItemIDs) { if (computedOffset == Offset) { Item.ShItemID = shitemid; break; } var handler = new ShItemIdHandler(shitemid); computedOffset += handler.ComputedSize; } }