From 50ff01c7d46090e15e6f7fbf1828234dd43cf5fa Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Fri, 13 Nov 2015 00:43:30 +0300 Subject: Impliment packet SMSG_GRAFFITI_VISIBLE. --- src/being/being.cpp | 2 +- src/net/eathena/beingrecv.cpp | 21 +++++++++++++++++++++ src/net/eathena/beingrecv.h | 1 + src/net/eathena/itemrecv.cpp | 13 ------------- src/net/eathena/itemrecv.h | 1 - src/net/eathena/packetsin.inc | 2 +- 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); -- cgit v1.2.3-70-g09d2