summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2015-11-13 00:43:30 +0300
committerAndrei Karas <akaras@inbox.ru>2015-11-13 00:43:30 +0300
commit50ff01c7d46090e15e6f7fbf1828234dd43cf5fa (patch)
tree630ea30956ac52cc7d9316f28c85d4d37f076124
parent2300cbef216ff22275854e7fe76752a31a947bdc (diff)
downloadmv-50ff01c7d46090e15e6f7fbf1828234dd43cf5fa.tar.gz
mv-50ff01c7d46090e15e6f7fbf1828234dd43cf5fa.tar.bz2
mv-50ff01c7d46090e15e6f7fbf1828234dd43cf5fa.tar.xz
mv-50ff01c7d46090e15e6f7fbf1828234dd43cf5fa.zip
Impliment packet SMSG_GRAFFITI_VISIBLE.
-rw-r--r--src/being/being.cpp2
-rw-r--r--src/net/eathena/beingrecv.cpp21
-rw-r--r--src/net/eathena/beingrecv.h1
-rw-r--r--src/net/eathena/itemrecv.cpp13
-rw-r--r--src/net/eathena/itemrecv.h1
-rw-r--r--src/net/eathena/packetsin.inc2
6 files changed, 24 insertions, 16 deletions
diff --git a/src/being/being.cpp b/src/being/being.cpp
index 9e8b1f6db..b4ea52df1 100644
--- a/src/being/being.cpp
+++ b/src/being/being.cpp
@@ -414,7 +414,7 @@ void Being::setSubtype(const BeingTypeId subtype,
{
setName(mInfo->getName());
setupSpriteDisplay(mInfo->getDisplay(),
- ForceDisplay_true,
+ ForceDisplay_false,
0,
mInfo->getColor(fromInt(mLook, ItemColor)));
mYDiff = mInfo->getSortOffsetY();
diff --git a/src/net/eathena/beingrecv.cpp b/src/net/eathena/beingrecv.cpp
index a18af6b11..f80b16c54 100644
--- a/src/net/eathena/beingrecv.cpp
+++ b/src/net/eathena/beingrecv.cpp
@@ -1716,6 +1716,27 @@ void BeingRecv::processSolveCharName(Net::MessageIn &msg)
actorManager->addChar(id, name);
}
+void BeingRecv::processGraffiti(Net::MessageIn &msg)
+{
+ const BeingId id = msg.readBeingId("graffiti id");
+ msg.readBeingId("creator id");
+ const int x = msg.readInt16("x");
+ const int y = msg.readInt16("y");
+ const int job = msg.readUInt8("job");
+ msg.readUInt8("visible");
+ msg.readUInt8("is content");
+ const std::string text = msg.readString(80, "text");
+
+ Being *const dstBeing = createBeing2(msg, id, job, BeingType::SKILL);
+ if (!dstBeing)
+ return;
+
+ dstBeing->setAction(BeingAction::STAND, 0);
+ dstBeing->setTileCoords(x, y);
+ dstBeing->setShowName(true);
+ dstBeing->setName(text);
+}
+
void BeingRecv::applyPlayerAction(Net::MessageIn &msg,
Being *const being,
const uint8_t type)
diff --git a/src/net/eathena/beingrecv.h b/src/net/eathena/beingrecv.h
index 0c26d07b7..0714f2114 100644
--- a/src/net/eathena/beingrecv.h
+++ b/src/net/eathena/beingrecv.h
@@ -111,6 +111,7 @@ namespace EAthena
void processNameResponse2(Net::MessageIn &msg);
void processSkillCancel(Net::MessageIn &msg);
void processSolveCharName(Net::MessageIn &msg);
+ void processGraffiti(Net::MessageIn &msg);
Being *createBeing2(Net::MessageIn &msg,
const BeingId id,
const int16_t job,
diff --git a/src/net/eathena/itemrecv.cpp b/src/net/eathena/itemrecv.cpp
index f082ae163..cd034c739 100644
--- a/src/net/eathena/itemrecv.cpp
+++ b/src/net/eathena/itemrecv.cpp
@@ -96,19 +96,6 @@ void ItemRecv::processItemDropped2(Net::MessageIn &msg)
}
}
-void ItemRecv::processGraffiti(Net::MessageIn &msg)
-{
- UNIMPLIMENTEDPACKET;
- msg.readInt32("graffiti id");
- msg.readInt32("creator id");
- msg.readInt16("x");
- msg.readInt16("y");
- msg.readUInt8("job");
- msg.readUInt8("visible");
- msg.readUInt8("is content");
- msg.readString(80, "text");
-}
-
void ItemRecv::processItemMvpDropped(Net::MessageIn &msg)
{
UNIMPLIMENTEDPACKET;
diff --git a/src/net/eathena/itemrecv.h b/src/net/eathena/itemrecv.h
index 94d65bf3d..0af3dda3e 100644
--- a/src/net/eathena/itemrecv.h
+++ b/src/net/eathena/itemrecv.h
@@ -34,7 +34,6 @@ namespace EAthena
{
void processItemDropped(Net::MessageIn &msg);
void processItemDropped2(Net::MessageIn &msg);
- void processGraffiti(Net::MessageIn &msg);
void processItemMvpDropped(Net::MessageIn &msg);
void processItemVisible(Net::MessageIn &msg);
void processItemVisible2(Net::MessageIn &msg);
diff --git a/src/net/eathena/packetsin.inc b/src/net/eathena/packetsin.inc
index 7c35c31b1..30c7a526b 100644
--- a/src/net/eathena/packetsin.inc
+++ b/src/net/eathena/packetsin.inc
@@ -148,7 +148,7 @@ packet(SMSG_FRIENDS_REQUEST_ACK, 0x0209, 36, &FriendsRecv::processReq
packet(SMSG_GLADIATOR_FEEL_REQUEST, 0x0253, 3, &BeingRecv::processGladiatorFeelRequest);
packet(SMSG_GM_CHAT, 0x009a, -1, &ChatRecv::processGmChat);
packet(SMSG_GM_CHAT2, 0x01c3, -1, &ChatRecv::processGmChat2);
-packet(SMSG_GRAFFITI_VISIBLE, 0x01c9, 97, &ItemRecv::processGraffiti);
+packet(SMSG_GRAFFITI_VISIBLE, 0x01c9, 97, &BeingRecv::processGraffiti);
packet(SMSG_GUILD_ALIANCE_INFO, 0x014c, -1, &Ea::GuildRecv::processGuildAlianceInfo);
packet(SMSG_GUILD_ALLIANCE_ADDED_DISABLED, 0x0185, 34, nullptr);
packet(SMSG_GUILD_BASIC_INFO, 0x01b6, 114, &Ea::GuildRecv::processGuildBasicInfo);