diff options
Diffstat (limited to 'src/net/tmwa')
-rw-r--r-- | src/net/tmwa/messageout.cpp | 18 |
1 files changed, 6 insertions, 12 deletions
diff --git a/src/net/tmwa/messageout.cpp b/src/net/tmwa/messageout.cpp index 3197380b..705b9a96 100644 --- a/src/net/tmwa/messageout.cpp +++ b/src/net/tmwa/messageout.cpp @@ -68,27 +68,21 @@ void MessageOut::writeInt32(uint32_t value) mPos += 4; } -#define LOBYTE(w) ((unsigned char)(w)) -#define HIBYTE(w) ((unsigned char)(((unsigned short)(w)) >> 8)) - void MessageOut::writeCoordinates(uint16_t x, uint16_t y, uint8_t direction) { char *data = mData + mPos; mNetwork->mOutSize += 3; mPos += 3; - short temp; - temp = x; + int16_t temp = x; temp <<= 6; - data[0] = 0; - data[1] = 1; - data[2] = 2; - data[0] = HIBYTE(temp); - data[1] = (unsigned char) temp; + data[0] = temp >> 8; + data[1] = temp; + temp = y; temp <<= 4; - data[1] |= HIBYTE(temp); - data[2] = LOBYTE(temp); + data[1] |= temp << 8; + data[2] = temp; // Translate direction to eAthena format switch (direction) |