From 0443f5d531b21917b3605254b17475569573fc48 Mon Sep 17 00:00:00 2001 From: madmaxoft Date: Thu, 25 Sep 2014 21:23:05 +0200 Subject: cByteBuffer: Fixed position reading. --- src/ByteBuffer.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/ByteBuffer.cpp b/src/ByteBuffer.cpp index 5bf98eda9..e61a90bbc 100644 --- a/src/ByteBuffer.cpp +++ b/src/ByteBuffer.cpp @@ -500,9 +500,9 @@ bool cByteBuffer::ReadPosition(int & a_BlockX, int & a_BlockY, int & a_BlockZ) UInt32 BlockXRaw = (Value >> 38) & 0x3ffffff; UInt32 BlockYRaw = (Value >> 26) & 0xfff; UInt32 BlockZRaw = (Value & 0x3ffffff); - a_BlockX = ((BlockXRaw & 0x2000000) == 0) ? BlockXRaw : (~(BlockXRaw & 0x1ffffff)) + 1; - a_BlockY = ((BlockYRaw & 0x800) == 0) ? BlockYRaw : (~(BlockXRaw & 0x7ff)) + 1; - a_BlockZ = ((BlockZRaw & 0x2000000) == 0) ? BlockZRaw : (~(BlockZRaw & 0x1ffffff)) + 1; + a_BlockX = ((BlockXRaw & 0x2000000) == 0) ? BlockXRaw : -(0x03ffffff - (int)BlockXRaw + 1); + a_BlockY = ((BlockYRaw & 0x800) == 0) ? BlockYRaw : -(0x07ff - (int)BlockYRaw + 1); + a_BlockZ = ((BlockZRaw & 0x2000000) == 0) ? BlockZRaw : -(0x03ffffff - (int)BlockZRaw + 1); return true; } -- cgit v1.2.3