diff options
author | Andrei Karas <akaras@inbox.ru> | 2014-07-15 01:06:00 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2014-07-15 01:06:00 +0300 |
commit | 553ca65f60d72a12f1a579dc3948568d684ac950 (patch) | |
tree | ccf0e7b20ac1a76cde56a2a28fc269e5724131e4 | |
parent | 84e2a85c11eadd62572539d429c1de1d67223fae (diff) | |
download | mv-553ca65f60d72a12f1a579dc3948568d684ac950.tar.gz mv-553ca65f60d72a12f1a579dc3948568d684ac950.tar.bz2 mv-553ca65f60d72a12f1a579dc3948568d684ac950.tar.xz mv-553ca65f60d72a12f1a579dc3948568d684ac950.zip |
Add net function readInt8 and use it for item pixel offset.
-rw-r--r-- | src/net/ea/itemhandler.cpp | 8 | ||||
-rw-r--r-- | src/net/messagein.cpp | 12 | ||||
-rw-r--r-- | 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<int>(msg.readInt8()); + const int subY = static_cast<int>(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<int>(msg.readUInt8()); - const int subY = static_cast<int>(msg.readUInt8()); + const int subX = static_cast<int>(msg.readInt8()); + const int subY = static_cast<int>(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 @@ -55,6 +55,18 @@ unsigned char MessageIn::readUInt8() mPos += 1; PacketCounters::incInBytes(1); + DEBUGLOG("readUInt8: " + toStringPrint(static_cast<int>(value))); + return value; +} + +signed char MessageIn::readInt8() +{ + signed char value = static_cast<signed char>(-1); + if (mPos < mLength) + value = static_cast<signed char>(mData[mPos]); + + mPos += 1; + PacketCounters::incInBytes(1); DEBUGLOG("readInt8: " + toStringPrint(static_cast<int>(value))); return 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. */ |