summaryrefslogtreecommitdiff
path: root/src/net/eathena
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2014-09-10 13:56:48 +0300
committerAndrei Karas <akaras@inbox.ru>2014-09-10 13:57:45 +0300
commite16fca5b58bbe867b63050e880ba8c156c6fe268 (patch)
tree5690d16b93cf42157384748987c485d2b2c1d43b /src/net/eathena
parentbe02f2d6d4a9afdcd2d46570cbeb97b73cc33526 (diff)
downloadplus-e16fca5b58bbe867b63050e880ba8c156c6fe268.tar.gz
plus-e16fca5b58bbe867b63050e880ba8c156c6fe268.tar.bz2
plus-e16fca5b58bbe867b63050e880ba8c156c6fe268.tar.xz
plus-e16fca5b58bbe867b63050e880ba8c156c6fe268.zip
add function to convert special npc server gender type into client type.
Diffstat (limited to 'src/net/eathena')
-rw-r--r--src/net/eathena/beinghandler.cpp64
-rw-r--r--src/net/eathena/beinghandler.h3
2 files changed, 22 insertions, 45 deletions
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