From e16fca5b58bbe867b63050e880ba8c156c6fe268 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Wed, 10 Sep 2014 13:56:48 +0300 Subject: add function to convert special npc server gender type into client type. --- src/net/eathena/beinghandler.cpp | 64 ++++++++++++---------------------------- src/net/eathena/beinghandler.h | 3 ++ 2 files changed, 22 insertions(+), 45 deletions(-) (limited to 'src/net/eathena') diff --git a/src/net/eathena/beinghandler.cpp b/src/net/eathena/beinghandler.cpp index a178a244b..1a5adcaf9 100644 --- a/src/net/eathena/beinghandler.cpp +++ b/src/net/eathena/beinghandler.cpp @@ -1031,21 +1031,7 @@ void BeingHandler::processBeingVisible(Net::MessageIn &msg) } else if (dstBeing->getType() == ActorType::NPC) { - switch (gender) - { - case 2: - dstBeing->setGender(Gender::FEMALE); - break; - case 3: - dstBeing->setGender(Gender::MALE); - break; - case 4: - dstBeing->setGender(Gender::OTHER); - break; - default: - dstBeing->setGender(Gender::UNSPECIFIED); - break; - } + setServerGender(dstBeing, gender); } uint8_t dir; @@ -1208,21 +1194,7 @@ void BeingHandler::processBeingMove(Net::MessageIn &msg) } else if (dstBeing->getType() == ActorType::NPC) { - switch (gender) - { - case 2: - dstBeing->setGender(Gender::FEMALE); - break; - case 3: - dstBeing->setGender(Gender::MALE); - break; - case 4: - dstBeing->setGender(Gender::OTHER); - break; - default: - dstBeing->setGender(Gender::UNSPECIFIED); - break; - } + setServerGender(dstBeing, gender); } uint16_t srcX, srcY, dstX, dstY; @@ -1387,21 +1359,7 @@ void BeingHandler::processBeingSpawn(Net::MessageIn &msg) } else if (dstBeing->getType() == ActorType::NPC) { - switch (gender) - { - case 2: - dstBeing->setGender(Gender::FEMALE); - break; - case 3: - dstBeing->setGender(Gender::MALE); - break; - case 4: - dstBeing->setGender(Gender::OTHER); - break; - default: - dstBeing->setGender(Gender::UNSPECIFIED); - break; - } + setServerGender(dstBeing, gender); } uint8_t dir; @@ -1685,4 +1643,20 @@ void BeingHandler::processBeingChangeDirection(Net::MessageIn &msg) const BLOCK_END("BeingHandler::processBeingChangeDirection") } +void BeingHandler::setServerGender(Being *const being, const uint8_t gender) +{ + switch (gender) + { + case 2: + being->setGender(Gender::FEMALE); + break; + case 3: + being->setGender(Gender::MALE); + break; + default: + being->setGender(Gender::UNSPECIFIED); + break; + } +} + } // namespace EAthena diff --git a/src/net/eathena/beinghandler.h b/src/net/eathena/beinghandler.h index 3f951870f..3b2760c07 100644 --- a/src/net/eathena/beinghandler.h +++ b/src/net/eathena/beinghandler.h @@ -86,6 +86,9 @@ class BeingHandler final : public MessageHandler, public Ea::BeingHandler const uint8_t type, const int id, const int id2) const; + + static void setServerGender(Being *const being, + const uint8_t gender); }; } // namespace EAthena -- cgit v1.2.3-70-g09d2