Core/Packets: update & enabled CMSG_SHOWING_CLOAK, CMSG_SHOWING_HELM (#24394)

(cherry picked from commit a47d57d1db)

Co-authored-by: DJScias <zumbak04@gmail.com>
# Conflicts:
#	src/server/game/Server/Packets/AllPackets.h
#	src/server/game/Server/Packets/CharacterPackets.cpp
#	src/server/game/Server/Packets/CharacterPackets.h
#	src/server/game/Server/WorldSession.h
This commit is contained in:
ForesterDev
2020-04-04 20:34:43 +04:00
committed by Ovahlord
parent a853bacd1d
commit e2643dabb0
4 changed files with 45 additions and 10 deletions

View File

@@ -1260,18 +1260,20 @@ void WorldSession::HandleSetFactionInactiveOpcode(WorldPacket& recvData)
_player->GetReputationMgr().SetInactive(replistid, inactive != 0);
}
void WorldSession::HandleShowingHelmOpcode(WorldPacket& recvData)
void WorldSession::HandleShowingHelmOpcode(WorldPackets::Character::ShowingHelm& packet)
{
TC_LOG_DEBUG("network", "CMSG_SHOWING_HELM for %s", _player->GetName().c_str());
recvData.read_skip<uint8>(); // unknown, bool?
_player->ToggleFlag(PLAYER_FLAGS, PLAYER_FLAGS_HIDE_HELM);
if (packet.ShowHelm)
_player->RemoveFlag(PLAYER_FLAGS, PLAYER_FLAGS_HIDE_HELM);
else
_player->SetFlag(PLAYER_FLAGS, PLAYER_FLAGS_HIDE_HELM);
}
void WorldSession::HandleShowingCloakOpcode(WorldPacket& recvData)
void WorldSession::HandleShowingCloakOpcode(WorldPackets::Character::ShowingCloak& packet)
{
TC_LOG_DEBUG("network", "CMSG_SHOWING_CLOAK for %s", _player->GetName().c_str());
recvData.read_skip<uint8>(); // unknown, bool?
_player->ToggleFlag(PLAYER_FLAGS, PLAYER_FLAGS_HIDE_CLOAK);
if (packet.ShowCloak)
_player->RemoveFlag(PLAYER_FLAGS, PLAYER_FLAGS_HIDE_CLOAK);
else
_player->SetFlag(PLAYER_FLAGS, PLAYER_FLAGS_HIDE_CLOAK);
}
void WorldSession::HandleCharRenameOpcode(WorldPacket& recvData)

View File

@@ -215,3 +215,14 @@ WorldPacket const* WorldPackets::Character::CharacterLoginFailed::Write()
_worldPacket << uint8(Code);
return &_worldPacket;
}
void WorldPackets::Character::ShowingCloak::Read()
{
_worldPacket >> ShowCloak;
}
void WorldPackets::Character::ShowingHelm::Read()
{
_worldPacket >> ShowHelm;
}

View File

@@ -125,6 +125,26 @@ namespace WorldPackets
LoginFailureReason Code = LoginFailureReason::Failed;
};
class ShowingCloak final : public ClientPacket
{
public:
ShowingCloak(WorldPacket&& packet) : ClientPacket(CMSG_SHOWING_CLOAK, std::move(packet)) { }
void Read() override;
bool ShowCloak = false;
};
class ShowingHelm final : public ClientPacket
{
public:
ShowingHelm(WorldPacket&& packet) : ClientPacket(CMSG_SHOWING_HELM, std::move(packet)) { }
void Read() override;
bool ShowHelm = false;
};
}
}

View File

@@ -83,6 +83,8 @@ namespace WorldPackets
namespace Character
{
class EnumCharacters;
class ShowingCloak;
class ShowingHelm;
enum class LoginFailureReason : uint8;
}
@@ -633,8 +635,8 @@ class TC_GAME_API WorldSession
void HandleMountSpecialAnimOpcode(WorldPacket& recvdata);
// character view
void HandleShowingHelmOpcode(WorldPacket& recvData);
void HandleShowingCloakOpcode(WorldPacket& recvData);
void HandleShowingHelmOpcode(WorldPackets::Character::ShowingHelm& packet);
void HandleShowingCloakOpcode(WorldPackets::Character::ShowingCloak& packet);
// repair
void HandleRepairItemOpcode(WorldPacket& recvPacket);