BinaryFileInspectorGUI.Inspector.ReadStructField C# (CSharp) Method

ReadStructField() private method

private ReadStructField ( BfsStructField field, TreeNode parent ) : void
field BfsStructField
parent TreeNode
return void
        private void ReadStructField(BfsStructField field, TreeNode parent)
        {
            if (field.FieldType is BfsFunctionType)
            {
                BfsFunctionType functionType = field.FieldType as BfsFunctionType;
                if (functionType.FunctionName == "ascii")
                    AddFileLine(field.Name + " " + reader.ReadASCIIString(functionType.FunctionArgument), field.FieldType, parent);
            }

            if (field.FieldType is BfsPrimitiveType)
            {
                BfsPrimitiveType primitiveType = field.FieldType as BfsPrimitiveType;
                switch (primitiveType.PrimitiveType)
                {
                    case BfsPrimitiveTypeEnum.Bool:
                        AddFileLine(field.Name + " " + reader.ReadBool(), field.FieldType, parent);
                        break;
                    case BfsPrimitiveTypeEnum.Sbyte:
                        AddFileLine(field.Name + " " + reader.ReadSbyte(), field.FieldType, parent);
                        break;
                    case BfsPrimitiveTypeEnum.Ubyte:
                        AddFileLine(field.Name + " " + reader.ReadUbyte(), field.FieldType, parent);
                        break;
                    case BfsPrimitiveTypeEnum.Int:
                        AddFileLine(field.Name + " " + reader.ReadInt(), field.FieldType, parent);
                        break;
                    case BfsPrimitiveTypeEnum.Uint:
                        AddFileLine(field.Name + " " + reader.ReadUint(), field.FieldType, parent);
                        break;
                    case BfsPrimitiveTypeEnum.Short:
                        AddFileLine(field.Name + " " + reader.ReadShort(), field.FieldType, parent);
                        break;
                    case BfsPrimitiveTypeEnum.Ushort:
                        AddFileLine(field.Name + " " + reader.ReadUshort(), field.FieldType, parent);
                        break;
                    case BfsPrimitiveTypeEnum.Long:
                        AddFileLine(field.Name + " " + reader.ReadLong(), field.FieldType, parent);
                        break;
                    case BfsPrimitiveTypeEnum.Ulong:
                        AddFileLine(field.Name + " " + reader.ReadUlong(), field.FieldType, parent);
                        break;
                }
            }

            if (field.FieldType is BfsNamedType)
            {
                BfsNamedType namedType = field.FieldType as BfsNamedType;
                if (namedType.DataBlock is BfsStruct)
                {
                    BfsStruct subStruct = namedType.DataBlock as BfsStruct;
                    TreeNode newNode = new TreeNode(subStruct.Name);
                    parent.Nodes.Add(newNode);
                    ReadDataBlock(namedType.DataBlock, newNode);
                }

            }
        }