diff options
Diffstat (limited to 'src/net')
-rw-r--r-- | src/net/eathena/beingrecv.cpp | 21 | ||||
-rw-r--r-- | src/net/eathena/beingrecv.h | 1 | ||||
-rw-r--r-- | src/net/eathena/itemrecv.cpp | 13 | ||||
-rw-r--r-- | src/net/eathena/itemrecv.h | 1 | ||||
-rw-r--r-- | src/net/eathena/packetsin.inc | 2 |
5 files changed, 23 insertions, 15 deletions
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); |