From 553ca65f60d72a12f1a579dc3948568d684ac950 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Tue, 15 Jul 2014 01:06:00 +0300 Subject: Add net function readInt8 and use it for item pixel offset. --- src/net/ea/itemhandler.cpp | 8 ++++---- src/net/messagein.cpp | 12 ++++++++++++ src/net/messagein.h | 2 ++ 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/src/net/ea/itemhandler.cpp b/src/net/ea/itemhandler.cpp index 8719c6256..e5ed730a0 100644 --- a/src/net/ea/itemhandler.cpp +++ b/src/net/ea/itemhandler.cpp @@ -47,8 +47,8 @@ void ItemHandler::processItemVisible(Net::MessageIn &msg) const int x = msg.readInt16(); const int y = msg.readInt16(); const int amount = msg.readInt16(); - const int subX = msg.readUInt8(); - const int subY = msg.readUInt8(); + const int subX = static_cast(msg.readInt8()); + const int subY = static_cast(msg.readInt8()); if (actorManager) { @@ -64,8 +64,8 @@ void ItemHandler::processItemDropped(Net::MessageIn &msg) const uint8_t identify = msg.readUInt8(); // identify flag const int x = msg.readInt16(); const int y = msg.readInt16(); - const int subX = static_cast(msg.readUInt8()); - const int subY = static_cast(msg.readUInt8()); + const int subX = static_cast(msg.readInt8()); + const int subY = static_cast(msg.readInt8()); const int amount = msg.readInt16(); if (actorManager) diff --git a/src/net/messagein.cpp b/src/net/messagein.cpp index 301d51ad9..ccc80a838 100644 --- a/src/net/messagein.cpp +++ b/src/net/messagein.cpp @@ -53,6 +53,18 @@ unsigned char MessageIn::readUInt8() if (mPos < mLength) value = static_cast(mData[mPos]); + mPos += 1; + PacketCounters::incInBytes(1); + DEBUGLOG("readUInt8: " + toStringPrint(static_cast(value))); + return value; +} + +signed char MessageIn::readInt8() +{ + signed char value = static_cast(-1); + if (mPos < mLength) + value = static_cast(mData[mPos]); + mPos += 1; PacketCounters::incInBytes(1); DEBUGLOG("readInt8: " + toStringPrint(static_cast(value))); diff --git a/src/net/messagein.h b/src/net/messagein.h index f9f2aceb0..932764b8c 100644 --- a/src/net/messagein.h +++ b/src/net/messagein.h @@ -60,6 +60,8 @@ class MessageIn notfinal virtual unsigned char readUInt8(); /**< Reads a byte. */ + virtual signed char readInt8(); /**< Reads a byte. */ + virtual int16_t readInt16() = 0; /**< Reads a short. */ virtual int readInt32() = 0; /**< Reads a long. */ -- cgit v1.2.3-60-g2f50