summaryrefslogtreecommitdiff
path: root/src/net
diff options
context:
space:
mode:
authorGuillaume Melquiond <guillaume.melquiond@gmail.com>2007-01-04 20:17:07 +0000
committerGuillaume Melquiond <guillaume.melquiond@gmail.com>2007-01-04 20:17:07 +0000
commite68fa3087865e369cb78cfa61c441507eedf4284 (patch)
tree72bb502abdb4fb4081ba2457be1c53ea0d1933e4 /src/net
parentbbdbb95d5d477b9934bf27cb45c53afbabb2db78 (diff)
downloadmanaserv-e68fa3087865e369cb78cfa61c441507eedf4284.tar.gz
manaserv-e68fa3087865e369cb78cfa61c441507eedf4284.tar.bz2
manaserv-e68fa3087865e369cb78cfa61c441507eedf4284.tar.xz
manaserv-e68fa3087865e369cb78cfa61c441507eedf4284.zip
Server-side implementation of item pick-up.
Diffstat (limited to 'src/net')
-rw-r--r--src/net/messagein.cpp28
-rw-r--r--src/net/messagein.hpp21
2 files changed, 21 insertions, 28 deletions
diff --git a/src/net/messagein.cpp b/src/net/messagein.cpp
index 8da02550..783cbf11 100644
--- a/src/net/messagein.cpp
+++ b/src/net/messagein.cpp
@@ -35,37 +35,33 @@ MessageIn::MessageIn(const char *data, int length):
mId = readShort();
}
-MessageIn::~MessageIn()
+int MessageIn::readByte()
{
-}
-
-char MessageIn::readByte()
-{
- char value = -1;
+ int value = -1;
if (mPos < mLength)
{
- value = mData[mPos];
+ value = (unsigned char)mData[mPos];
}
mPos += 1;
return value;
}
-short MessageIn::readShort()
+int MessageIn::readShort()
{
- short value = -1;
+ int value = -1;
if (mPos + 2 <= mLength)
{
uint16_t t;
memcpy(&t, mData + mPos, 2);
- value = ENET_NET_TO_HOST_16(t);
+ value = (unsigned short)ENET_NET_TO_HOST_16(t);
}
mPos += 2;
return value;
}
-long MessageIn::readLong()
+int MessageIn::readLong()
{
- long value = -1;
+ int value = -1;
if (mPos + 4 <= mLength)
{
uint32_t t;
@@ -79,14 +75,16 @@ long MessageIn::readLong()
std::string MessageIn::readString(int length)
{
// Get string length
- if (length < 0) {
+ if (length < 0)
+ {
length = readShort();
}
// Make sure the string isn't erroneous
- if (length < 0 || mPos + length > mLength) {
+ if (length < 0 || mPos + length > mLength)
+ {
mPos = mLength + 1;
- return "";
+ return std::string();
}
// Read the string
diff --git a/src/net/messagein.hpp b/src/net/messagein.hpp
index c582d056..79063f97 100644
--- a/src/net/messagein.hpp
+++ b/src/net/messagein.hpp
@@ -39,16 +39,11 @@ class MessageIn
*/
MessageIn(const char *data, int length);
- /**
- * Destructor.
- */
- ~MessageIn();
-
- short getId() { return mId; } /**< Returns the message ID. */
+ int getId() { return mId; } /**< Returns the message ID. */
- char readByte(); /**< Reads a byte. */
- short readShort(); /**< Reads a short. */
- long readLong(); /**< Reads a long. */
+ int readByte(); /**< Reads a byte. */
+ int readShort(); /**< Reads a short. */
+ int readLong(); /**< Reads a long. */
/**
* Reads a string. If a length is not given (-1), it is assumed
@@ -60,18 +55,18 @@ class MessageIn
/**
* Returns the length of unread data.
*/
- unsigned getUnreadLength() { return mLength - mPos; }
+ int getUnreadLength() { return mLength - mPos; }
private:
const char *mData; /**< Packet data */
- unsigned int mLength; /**< Length of data in bytes */
- short mId; /**< The message ID. */
+ unsigned short mLength; /**< Length of data in bytes */
+ unsigned short mId; /**< The message ID. */
/**
* Actual position in the packet. From 0 to packet->length. A value
* bigger than packet->length means EOP was reached when reading it.
*/
- unsigned int mPos;
+ unsigned short mPos;
};
#endif