diff options
-rw-r--r-- | src/net/eathena/beingrecv.cpp | 46 | ||||
-rw-r--r-- | src/net/eathena/beingrecv.h | 9 |
2 files changed, 28 insertions, 27 deletions
diff --git a/src/net/eathena/beingrecv.cpp b/src/net/eathena/beingrecv.cpp index db3a61b4c..3087824d5 100644 --- a/src/net/eathena/beingrecv.cpp +++ b/src/net/eathena/beingrecv.cpp @@ -919,32 +919,11 @@ void BeingRecv::processSkillCasting(Net::MessageIn &msg) if (msg.getVersion() >= 20091124) msg.readInt8("dispossable"); - if (!effectManager) - return; - - if (srcId == BeingId_zero) - { - UNIMPLIMENTEDPACKETFIELD(0); - return; - } - else if (dstId != BeingId_zero) - { // being to being - Being *const srcBeing = actorManager->findBeing(srcId); - Being *const dstBeing = actorManager->findBeing(dstId); - if (srcBeing) - srcBeing->setAction(BeingAction::CAST, skillId); - skillDialog->playCastingSrcEffect(skillId, srcBeing); - skillDialog->playCastingDstEffect(skillId, dstBeing); - } - else if (dstX != 0 || dstY != 0) - { // being to position - Being *const srcBeing = actorManager->findBeing(srcId); - if (srcBeing) - srcBeing->setAction(BeingAction::CAST, skillId); - skillDialog->playCastingDstTileEffect(skillId, - dstX, dstY, - castTime); - } + processSkillCastingContinue(msg, + srcId, dstId, + dstX, dstY, + skillId, + castTime); } void BeingRecv::processSkillCasting2(Net::MessageIn &msg) @@ -959,6 +938,21 @@ void BeingRecv::processSkillCasting2(Net::MessageIn &msg) const int castTime = msg.readInt32("cast time"); msg.readInt32("skill range"); + processSkillCastingContinue(msg, + srcId, dstId, + dstX, dstY, + skillId, + castTime); +} + +void BeingRecv::processSkillCastingContinue(Net::MessageIn &msg, + const BeingId srcId, + const BeingId dstId, + const int dstX, + const int dstY, + const int skillId, + const int castTime) +{ if (!effectManager) return; diff --git a/src/net/eathena/beingrecv.h b/src/net/eathena/beingrecv.h index 0f2b6fab7..1a005e31f 100644 --- a/src/net/eathena/beingrecv.h +++ b/src/net/eathena/beingrecv.h @@ -110,6 +110,7 @@ namespace EAthena void processGraffiti(Net::MessageIn &msg); void processSkillDamage(Net::MessageIn &msg); void processNavigateTo(Net::MessageIn &msg); + Being *createBeing2(Net::MessageIn &msg, const BeingId id, const int32_t job, @@ -117,7 +118,13 @@ namespace EAthena void applyPlayerAction(Net::MessageIn &msg, Being *const being, const uint8_t type); - + void processSkillCastingContinue(Net::MessageIn &msg, + const BeingId srcId, + const BeingId dstId, + const int dstX, + const int dstY, + const int skillId, + const int castTime); } // namespace BeingRecv } // namespace EAthena |