Exemplo n.º 1
0
        public static object DecodeProp(FlattenedPropEntry prop, IBitStream stream)
        {
            var sendProp = prop.Prop;

            switch (sendProp.Type)
            {
            case SendPropertyType.Int:
                return(DecodeInt(sendProp, stream));

            case SendPropertyType.Float:
                return(DecodeFloat(sendProp, stream));

            case SendPropertyType.Vector:
                return(DecodeVector(sendProp, stream));

            case SendPropertyType.Array:
                var test = DecodeArray(prop, stream);
                return(test);

            case SendPropertyType.String:
                return(DecodeString(sendProp, stream));

            case SendPropertyType.VectorXY:
                return(DecodeVectorXY(sendProp, stream));

            default:
                throw new NotImplementedException("Could not read property. Abort! ABORT!");
            }
        }
Exemplo n.º 2
0
        public static object[] DecodeArray(FlattenedPropEntry flattenedProp, IBitStream reader)
        {
            int numElements = flattenedProp.Prop.NumberOfElements;
            int maxElements = numElements;

            int numBits = 1;

            while ((maxElements >>= 1) != 0)
            {
                numBits++;
            }

            int nElements = (int)reader.ReadInt(numBits);

            object[] result = new object[nElements];

            FlattenedPropEntry temp = new FlattenedPropEntry("", flattenedProp.ArrayElementProp, null);

            for (int i = 0; i < nElements; i++)
            {
                result[i] = DecodeProp(temp, reader);
            }

            return(result);
        }
Exemplo n.º 3
0
 public PropertyEntry(FlattenedPropEntry prop, int index)
 {
     this.Entry = new FlattenedPropEntry(prop.PropertyName, prop.Prop, prop.ArrayElementProp);
     this.Index = index;
 }