aboutsummaryrefslogtreecommitdiff
path: root/mctypes.c
diff options
context:
space:
mode:
authorPlex <thinkplex@riseup.net>2021-10-24 23:33:48 +0200
committerPlex <thinkplex@riseup.net>2021-10-24 23:33:48 +0200
commitd937614705989b9e71c366e5fe61751ba0d1a2eb (patch)
treee75c19227164e960a8b25044ae9945c1acd3104f /mctypes.c
parentdd1779c4c7581b0b863886371f891d9d545d6b27 (diff)
readValInt
Diffstat (limited to 'mctypes.c')
-rw-r--r--mctypes.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/mctypes.c b/mctypes.c
index ad855e4..10d083d 100644
--- a/mctypes.c
+++ b/mctypes.c
@@ -5,7 +5,6 @@
varint writeVarInt(unsigned int x)
{
- // unsigned int v = x;
varint n = malloc(sizeof(u_int8_t));
unsigned int size = 1;
while(1) {
@@ -14,7 +13,7 @@ varint writeVarInt(unsigned int x)
x >>= 7;
if(x == 0)
return n;
- n[size-1] |= 0b10000000;
+ n[size-1] |= 0x80;
size++;
}
return n;
@@ -34,3 +33,15 @@ writeVarInt(varint x, int s)
x >>= 7;
}
} */
+
+int readVarInt(varint x)
+{
+ unsigned int offset = 0;
+ unsigned int res = 0;
+ do {
+ if(offset == 5) exit(EXIT_FAILURE);
+ res |= x[offset] << offset*7;
+ offset++;
+ } while ((x[offset-1] & 0b10000000) != 0);
+ return (int) res;
+}