From 7664490fcf484bb77de5086e36c01cf0274c010f Mon Sep 17 00:00:00 2001 From: AgentFire Date: Sat, 21 Nov 2015 13:35:55 +0300 Subject: [PATCH] Added Int-64 version of WriteRangedInteger `WriteRangedInteger(long min, long max, long value)` is now available for ranged writings of Int-64 values. --- Lidgren.Network/NetBuffer.Write.cs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) 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