diff options
author | Andrei Karas <akaras@inbox.ru> | 2018-03-05 22:31:07 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2018-03-05 22:31:07 +0300 |
commit | 135fa01ee301fd878c93444999a625f64ccf76c1 (patch) | |
tree | 61c3bc0c3778268b64e1471aea4a2d0ead3962ad /src/net/eathena | |
parent | ca8cf76ea713b75db3b573f30c023f7637e9cdf3 (diff) | |
download | plus-135fa01ee301fd878c93444999a625f64ccf76c1.tar.gz plus-135fa01ee301fd878c93444999a625f64ccf76c1.tar.bz2 plus-135fa01ee301fd878c93444999a625f64ccf76c1.tar.xz plus-135fa01ee301fd878c93444999a625f64ccf76c1.zip |
Moved same methods from messageout into one file.
Diffstat (limited to 'src/net/eathena')
-rw-r--r-- | src/net/eathena/messageout.cpp | 91 | ||||
-rw-r--r-- | src/net/eathena/messageout.h | 25 |
2 files changed, 0 insertions, 116 deletions
diff --git a/src/net/eathena/messageout.cpp b/src/net/eathena/messageout.cpp index 58792b0ef..065471355 100644 --- a/src/net/eathena/messageout.cpp +++ b/src/net/eathena/messageout.cpp @@ -30,10 +30,6 @@ #include "debug.h" -#ifndef SDL_BIG_ENDIAN -#error missing SDL_endian.h -#endif // SDL_BYTEORDER - namespace EAthena { @@ -56,91 +52,4 @@ void MessageOut::expand(const size_t bytes) const PacketCounters::incOutBytes(CAST_S32(bytes)); } -void MessageOut::writeInt16(const int16_t value, const char *const str) -{ - expand(2); -#if SDL_BYTEORDER == SDL_BIG_ENDIAN - int16_t swap = SDL_Swap16(value); - memcpy(mData + CAST_SIZE(mPos), &swap, sizeof(int16_t)); -#else // SDL_BYTEORDER == SDL_BIG_ENDIAN - - memcpy(mData + CAST_SIZE(mPos), &value, sizeof(int16_t)); -#endif // SDL_BYTEORDER == SDL_BIG_ENDIAN - - DEBUGLOG2("writeInt16: " + toStringPrint(CAST_U32( - CAST_U16(value))), - mPos, str); - mPos += 2; -} - -void MessageOut::writeInt32(const int32_t value, const char *const str) -{ - DEBUGLOG2("writeInt32: " + toStringPrint(CAST_U32(value)), - mPos, str); - expand(4); -#if SDL_BYTEORDER == SDL_BIG_ENDIAN - int32_t swap = SDL_Swap32(value); - memcpy(mData + CAST_SIZE(mPos), &swap, sizeof(int32_t)); -#else // SDL_BYTEORDER == SDL_BIG_ENDIAN - - memcpy(mData + CAST_SIZE(mPos), &value, sizeof(int32_t)); -#endif // SDL_BYTEORDER == SDL_BIG_ENDIAN - - mPos += 4; -} - -void MessageOut::writeInt64(const int64_t value, const char *const str) -{ - DEBUGLOG2("writeInt64: " + toStringPrint(CAST_U32(value)), - mPos, str); - expand(8); -#if SDL_BYTEORDER == SDL_BIG_ENDIAN - int32_t swap = SDL_Swap64(value); - memcpy(mData + CAST_SIZE(mPos), &swap, sizeof(int64_t)); -#else // SDL_BYTEORDER == SDL_BIG_ENDIAN - - memcpy(mData + CAST_SIZE(mPos), &value, sizeof(int64_t)); -#endif // SDL_BYTEORDER == SDL_BIG_ENDIAN - - mPos += 8; -} - -void MessageOut::writeBeingId(const BeingId value, const char *const str) -{ - writeInt32(toInt(value, int32_t), str); -} - -#define LOBYTE(w) (CAST_U8(w)) -#define HIBYTE(w) (CAST_U8(( \ -CAST_U16(w)) >> 8)) - -void MessageOut::writeCoordinates(const uint16_t x, - const uint16_t y, - unsigned char direction, - const char *const str) -{ - DEBUGLOG2(strprintf("writeCoordinates: %u,%u %u", - CAST_U32(x), - CAST_U32(y), - CAST_U32(direction)), mPos, str); - unsigned char *const data = reinterpret_cast<unsigned char*>(mData) - + CAST_SIZE(mPos); - expand(3); - mPos += 3; - - uint16_t temp = x; - temp <<= 6; - data[0] = 0; - data[1] = 1; - data[2] = 2; - data[0] = HIBYTE(temp); - data[1] = CAST_U8(temp); - temp = y; - temp <<= 4; - data[1] |= HIBYTE(temp); - data[2] = LOBYTE(temp); - direction = toServerDirection(direction); - data[2] |= direction; -} - } // namespace EAthena diff --git a/src/net/eathena/messageout.h b/src/net/eathena/messageout.h index 2f2718e23..b86c10d4f 100644 --- a/src/net/eathena/messageout.h +++ b/src/net/eathena/messageout.h @@ -49,31 +49,6 @@ class MessageOut final : public Net::MessageOut ~MessageOut() override final; - /**< Writes a short. */ - void writeInt16(const int16_t value, - const char *const str) override final; - - /**< Writes a long. */ - void writeInt32(const int32_t value, - const char *const str) override final; - - void writeInt64(const int64_t value, - const char *const str); - - void writeBeingId(const BeingId value, - const char *const str) override final; - - /** - * Encodes coordinates and direction in 3 bytes. - */ - void writeCoordinates(const uint16_t x, - const uint16_t y, - unsigned char direction, - const char *const str); - - void resetPos() - { mPos = 0; } - private: void expand(const size_t size) const override final; |