diff --git a/Lidgren.Network/NetBuffer.Write.cs b/Lidgren.Network/NetBuffer.Write.cs index 19b44e0..03e18ff 100644 --- a/Lidgren.Network/NetBuffer.Write.cs +++ b/Lidgren.Network/NetBuffer.Write.cs @@ -585,6 +585,23 @@ namespace Lidgren.Network return numBits; } + + /// + /// Writes an integer with the least amount of bits need for the specified range + /// Returns number of bits written + /// + public int WriteRangedInteger(long min, long max, long value) + { + NetException.Assert(value >= min && value <= max, "Value not within min/max range!"); + + ulong range = (ulong)(max - min); + int numBits = NetUtility.BitsToHoldUInt64(range); + + ulong rvalue = (ulong)(value - min); + Write(rvalue, numBits); + + return numBits; + } /// /// Write a string