From f349460cedb54d3490e016a48036ced26cd8e998 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Thu, 14 Jun 2018 23:28:55 +0300 Subject: Add packet CMSG_PLAYER_SELECT_STYLE 0x0a46. --- src/net/eathena/packetsout.inc | 7 +++++++ src/net/eathena/playerhandler.cpp | 18 ++++++++++++++++++ src/net/eathena/playerhandler.h | 6 ++++++ src/net/playerhandler.h | 6 ++++++ src/net/tmwa/playerhandler.cpp | 9 +++++++++ src/net/tmwa/playerhandler.h | 7 +++++++ 6 files changed, 53 insertions(+) (limited to 'src') diff --git a/src/net/eathena/packetsout.inc b/src/net/eathena/packetsout.inc index 70e1e25f2..b622b0340 100644 --- a/src/net/eathena/packetsout.inc +++ b/src/net/eathena/packetsout.inc @@ -335,6 +335,7 @@ packet(CMSG_WINDOW_OPEN_REQUEST2, 0x0000, 0, nullptr); packet(CMSG_ATTENDANCE_REWARD, 0x0000, 0, nullptr); packet(CMSG_MAP_BLOCK_PLAY_CANCEL, 0x0000, 0, nullptr); packet(CMSG_PRIVATE_AIRSHIP_REQUEST, 0x0000, 0, nullptr); +packet(CMSG_PLAYER_SELECT_STYLE, 0x0000, 0, nullptr); #else // 20040713 if (packetVersion >= 20040713) @@ -1328,6 +1329,12 @@ if (packetVersion >= 20151001) packet(CMSG_CHAR_CREATE, 0x0a39, 36, chr->parse_char_create_new_char); } +// 20151104 +if (packetVersion >= 20151104) +{ + packet(CMSG_PLAYER_SELECT_STYLE, 0x0a46, 14, clif->pReqStyleChange); +} + // 20160323 if (packetVersion >= 20160323) { diff --git a/src/net/eathena/playerhandler.cpp b/src/net/eathena/playerhandler.cpp index c86eb5c28..e22ca822b 100644 --- a/src/net/eathena/playerhandler.cpp +++ b/src/net/eathena/playerhandler.cpp @@ -789,6 +789,24 @@ void PlayerHandler::setStat(Net::MessageIn &msg, } } +void PlayerHandler::selectStyle(const int headColor, + const int headStyle, + const int bodyColor, + const int topStyle, + const int middleStyle, + const int bottomStyle) const +{ + if (packetVersion < 20151104) + return; + createOutPacket(CMSG_PLAYER_SELECT_STYLE); + outMsg.writeInt16(headColor, "head color"); + outMsg.writeInt16(headStyle, "head style"); + outMsg.writeInt16(bodyColor, "body color"); + outMsg.writeInt16(topStyle, "top style"); + outMsg.writeInt16(middleStyle, "middle style"); + outMsg.writeInt16(bottomStyle, "bottom style"); +} + #undef setStatComplex } // namespace EAthena diff --git a/src/net/eathena/playerhandler.h b/src/net/eathena/playerhandler.h index 6df0aa5f2..c98b7f885 100644 --- a/src/net/eathena/playerhandler.h +++ b/src/net/eathena/playerhandler.h @@ -69,6 +69,12 @@ class PlayerHandler final : public Ea::PlayerHandler void requestPvpInfo() const override final; void revive() const override final; void setViewEquipment(const bool allow) const override final; + void selectStyle(const int headColor, + const int headStyle, + const int bodyColor, + const int topStyle, + const int middleStyle, + const int bottomStyle) const override final; void setStat(Net::MessageIn &msg, const int type, diff --git a/src/net/playerhandler.h b/src/net/playerhandler.h index 88a13fa1f..58fa582ee 100644 --- a/src/net/playerhandler.h +++ b/src/net/playerhandler.h @@ -111,6 +111,12 @@ class PlayerHandler notfinal const int64_t base, const int mod, const Notify notify) const = 0; + virtual void selectStyle(const int headColor, + const int headStyle, + const int bodyColor, + const int topStyle, + const int middleStyle, + const int bottomStyle) const = 0; }; } // namespace Net diff --git a/src/net/tmwa/playerhandler.cpp b/src/net/tmwa/playerhandler.cpp index 0fd189f8e..71b2d55c6 100644 --- a/src/net/tmwa/playerhandler.cpp +++ b/src/net/tmwa/playerhandler.cpp @@ -494,4 +494,13 @@ void PlayerHandler::setStat(Net::MessageIn &msg, #undef setStatComplex +void PlayerHandler::selectStyle(const int headColor A_UNUSED, + const int headStyle A_UNUSED, + const int bodyColor A_UNUSED, + const int topStyle A_UNUSED, + const int middleStyle A_UNUSED, + const int bottomStyle A_UNUSED) const +{ +} + } // namespace TmwAthena diff --git a/src/net/tmwa/playerhandler.h b/src/net/tmwa/playerhandler.h index fca26b2b8..b4bfabe02 100644 --- a/src/net/tmwa/playerhandler.h +++ b/src/net/tmwa/playerhandler.h @@ -80,6 +80,13 @@ class PlayerHandler final : public Ea::PlayerHandler void setViewEquipment(const bool allow) const override final; + void selectStyle(const int headColor, + const int headStyle, + const int bodyColor, + const int topStyle, + const int middleStyle, + const int bottomStyle) const override final; + void setStat(Net::MessageIn &msg, const int type, const int64_t base, -- cgit v1.2.3-70-g09d2