예제 #1
0
        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());
        }
예제 #2
0
 private DataBlock(DataBlockType type)
 {
     Name   = string.Empty;
     Values = new List <DataValue>();
     Type   = type;
 }