public byte[] ItemData(string name) { HogItem item = index[name]; var ret = new byte[item.dataSize]; Array.Copy(data, item.dataOfs, ret, 0, item.dataSize); return(ret); }
private void load(string filename) { data = File.ReadAllBytes(filename); size = data.Length; if (!data.Take(3).SequenceEqual(new byte[] { (byte)'D', (byte)'H', (byte)'F' })) { throw new Exception("invalid header"); } items = new List <HogItem>(); index = new Dictionary <string, HogItem>(); int ofs = 3; while (ofs < size) { HogItem item = new HogItem(data, ofs); Debug.WriteLine(item.name); //Debug.WriteLine(item.dataSize); ofs = item.dataOfs + item.dataSize; items.Add(item); index.Add(item.name, item); } }