public static DataBlock[] ParseBlocks(BinaryReader inputReader) { List <DataBlock> blocks = new List <DataBlock>(); bool continueParsing = true; do { string typeName = inputReader.ReadUInt32AsString(); DataBlockType type = GetType(typeName); switch (type) { case DataBlockType.Timr: case DataBlockType.Sttc: { DataBlock block = ParseBlock(inputReader, type); if (block == null) { return(new DataBlock[0]); } blocks.Add(block); } break; case DataBlockType.End_: continueParsing = false; break; default: Trace.Assert(false, "Unimplemented data block type!"); break; } } while (continueParsing); return(blocks.ToArray()); }
private DataBlock(DataBlockType type) { Name = string.Empty; Values = new List <DataValue>(); Type = type; }