public void EncodeValue(GameBitBuffer buffer)
{
switch (Field1.EncodingType)
{
case GameAttributeEncoding.Int:
buffer.WriteInt(Field1.BitCount, Int);
break;
case GameAttributeEncoding.IntMinMax:
buffer.WriteInt(Field1.BitCount, Int - Field1.Min);
break;
case GameAttributeEncoding.Float16:
buffer.WriteFloat16(Float);
break;
case GameAttributeEncoding.Float16Or32:
if (Float >= 65536.0f || -65536.0f >= Float)
{
buffer.WriteBool(false);
buffer.WriteFloat32(Float);
}
else
{
buffer.WriteBool(true);
buffer.WriteFloat16(Float);
}
break;
default:
throw new Exception("bad voodoo");
}
}