Avec la nouvelle MaJ, la fonction WriteVarInt à changée, et m'a bien cassée les ... car je ne m'en étais pas rendu compte tout de suite.
Voici la nouvelle fonction, cela diffère que très peu.
La fonction de base est celle du reader d'asyade, merci à lui.
public void WriteVarInt(int value)
{
var _loc5_ = 0;
BigEndianWriter buffer = new BigEndianWriter();
if (value >= 0 && value <= CustomDataConst.MASK_01111111)
{
buffer.WriteByte((byte)value);
this.WriteBytes(BitConverter.GetBytes(value));
return;
}
int _loc3_ = value;
BigEndianWriter subBuffer = new BigEndianWriter();
while (_loc3_ != 0)
{
subBuffer.WriteByte(Convert.ToByte(_loc3_ & CustomDataConst.MASK_01111111));
subBuffer.Position = subBuffer.Data.Length - 1;
//subBuffer.Seek((int)subBuffer.BaseStream.Length, SeekOrigin.Begin);
_loc5_ = subBuffer.BaseStream.ReadByte();
_loc3_ = _loc3_ >> CustomDataConst.CHUNCK_BIT_SIZE;
if (_loc3_ > 0)
{
_loc5_ = _loc5_ | CustomDataConst.MASK_10000000;
}
//buffer.WriteBytes(BitConverter.GetBytes(_loc5_));
buffer.WriteByte((byte)_loc5_);
}
this.WriteBytes(buffer.Data);
}