diff options
author | Andrei Karas <akaras@inbox.ru> | 2012-06-30 14:37:49 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2012-07-01 17:51:01 +0300 |
commit | c01aec243610016c2cd5e4211fee484627bc69ea (patch) | |
tree | 46a0b704701a9c1229fafa5e7ed7117002fc1579 /src/net/messagein.cpp | |
parent | 8321043b76660235a5ebbfbb8f43504f43c1af8b (diff) | |
download | manaplus-c01aec243610016c2cd5e4211fee484627bc69ea.tar.gz manaplus-c01aec243610016c2cd5e4211fee484627bc69ea.tar.bz2 manaplus-c01aec243610016c2cd5e4211fee484627bc69ea.tar.xz manaplus-c01aec243610016c2cd5e4211fee484627bc69ea.zip |
Add npc avatars for evol server.
Change protocol version to 6.
Diffstat (limited to 'src/net/messagein.cpp')
-rw-r--r-- | src/net/messagein.cpp | 76 |
1 files changed, 34 insertions, 42 deletions
diff --git a/src/net/messagein.cpp b/src/net/messagein.cpp index 445b43d3f..0af0e389f 100644 --- a/src/net/messagein.cpp +++ b/src/net/messagein.cpp @@ -75,6 +75,39 @@ void MessageIn::readCoordinates(uint16_t &x, uint16_t &y) + toString(static_cast<int>(y))); } +uint8_t MessageIn::fromServerDirection(uint8_t serverDir) +{ + // Translate from eAthena format + switch (serverDir) + { + case 0: + return 1; + case 1: + return 3; + case 2: + return 2; + case 3: + return 6; + case 4: + return 4; + case 5: + return 12; + case 6: + return 8; + case 7: + return 9; + case 8: +#ifdef MANASERV_SUPPORT + if (Net::getNetworkType() != ServerInfo::MANASERV) +#endif + return 8; + default: + logger->log("incorrect direction: %d", + static_cast<int>(serverDir)); + return 0; + } +} + void MessageIn::readCoordinates(uint16_t &x, uint16_t &y, uint8_t &direction) { uint8_t serverDir = 0; @@ -89,48 +122,7 @@ void MessageIn::readCoordinates(uint16_t &x, uint16_t &y, uint8_t &direction) y = static_cast<unsigned short>(temp >> 4); serverDir = data[2] & 0x000f; - - // Translate from eAthena format - switch (serverDir) - { - case 0: - direction = 1; - break; - case 1: - direction = 3; - break; - case 2: - direction = 2; - break; - case 3: - direction = 6; - break; - case 4: - direction = 4; - break; - case 5: - direction = 12; - break; - case 6: - direction = 8; - break; - case 7: - direction = 9; - break; - case 8: -#ifdef MANASERV_SUPPORT - if (Net::getNetworkType() != ServerInfo::MANASERV) -#endif - { - direction = 8; - break; - } - default: - logger->log("incorrect direction: %d", - static_cast<int>(direction)); - // OOPSIE! Impossible or unknown - direction = 0; - } + direction = fromServerDirection(serverDir); } mPos += 3; PacketCounters::incInBytes(3); |