private object ReadParam(Bitstream msg)
{
var fullTypeName = msg.ReadString();
var type = LookupType(fullTypeName);
var dsitem = new DataSerializationProperty(null, type);
object o;
switch (dsitem.Type)
{
case DataTypes.BOOL:
o = msg.ReadBool();
break;
case DataTypes.UBYTE:
o = msg.ReadByte();
break;
case DataTypes.UINT:
o = msg.ReadVariableUInt32();
break;
case DataTypes.BYTE:
o = msg.ReadSByte();
break;
case DataTypes.INT:
o = msg.ReadVariableInt32();
break;
case DataTypes.ULONG:
o = msg.ReadUInt64();
break;
case DataTypes.LONG:
o = msg.ReadInt64();
break;
case DataTypes.FLOAT:
o = msg.ReadFloat();
break;
case DataTypes.DOUBLE:
o = msg.ReadDouble();
break;
case DataTypes.STRING:
o = msg.ReadString();
break;
case DataTypes.VECTOR2:
o = msg.ReadVector2();
break;
default:
throw new ArgumentException("Invalid RPC paramter type.");
}
return o;
}