summaryrefslogtreecommitdiff
path: root/src/net/eathena/beinghandler.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/net/eathena/beinghandler.cpp')
-rw-r--r--src/net/eathena/beinghandler.cpp27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/net/eathena/beinghandler.cpp b/src/net/eathena/beinghandler.cpp
index c96f29433..7b3c3fcaf 100644
--- a/src/net/eathena/beinghandler.cpp
+++ b/src/net/eathena/beinghandler.cpp
@@ -23,6 +23,7 @@
#include "net/eathena/beinghandler.h"
#include "actormanager.h"
+#include "effectmanager.h"
#include "guild.h"
#include "guildmanager.h"
#include "party.h"
@@ -31,6 +32,8 @@
#include "being/mercenaryinfo.h"
#include "being/playerinfo.h"
+#include "particle/particle.h"
+
#include "input/keyboardconfig.h"
#include "gui/windows/socialwindow.h"
@@ -1977,4 +1980,28 @@ void BeingHandler::processBeingStatUpdate1(Net::MessageIn &msg) const
dstBeing->setManner(value);
}
+void BeingHandler::processBeingSelfEffect(Net::MessageIn &msg) const
+{
+ BLOCK_START("BeingHandler::processBeingSelfEffect")
+ if (!effectManager || !actorManager)
+ {
+ BLOCK_END("BeingHandler::processBeingSelfEffect")
+ return;
+ }
+
+ const int id = static_cast<uint32_t>(msg.readInt32("being id"));
+ Being *const being = actorManager->findBeing(id);
+ if (!being)
+ {
+ BLOCK_END("BeingHandler::processBeingSelfEffect")
+ return;
+ }
+
+ const int effectType = msg.readInt32("effect type");
+ if (Particle::enabled)
+ effectManager->trigger(effectType, being);
+
+ BLOCK_END("BeingHandler::processBeingSelfEffect")
+}
+
} // namespace EAthena