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!"); } }
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); }
public PropertyEntry(FlattenedPropEntry prop, int index) { this.Entry = new FlattenedPropEntry(prop.PropertyName, prop.Prop, prop.ArrayElementProp); this.Index = index; }