Merge pull request #14319 from DJScias/opcodes2

Core/Packets: update & enabled CMSG_SHOWING_CLOAK, CMSG_SHOWING_HELM
This commit is contained in:
Duarte Duarte
2015-03-09 22:20:58 +00:00
6 changed files with 48 additions and 14 deletions

View File

@@ -1177,18 +1177,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(WorldPackets::Character::CharacterRenameRequest& request)

View File

@@ -416,3 +416,13 @@ WorldPacket const* WorldPackets::Character::PlayedTime::Write()
return &_worldPacket;
}
void WorldPackets::Character::ShowingCloak::Read()
{
ShowCloak = _worldPacket.ReadBit();
}
void WorldPackets::Character::ShowingHelm::Read()
{
ShowHelm = _worldPacket.ReadBit();
}

View File

@@ -560,6 +560,26 @@ namespace WorldPackets
int32 LevelTime = 0;
bool TriggerEvent = false;
};
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

@@ -785,8 +785,8 @@ void OpcodeTable::Initialize()
DEFINE_OPCODE_HANDLER_OLD(CMSG_SET_TRADE_ITEM, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleSetTradeItemOpcode );
DEFINE_OPCODE_HANDLER_OLD(CMSG_SET_VEHICLE_REC_ID_ACK, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
DEFINE_OPCODE_HANDLER_OLD(CMSG_SET_WATCHED_FACTION, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleSetWatchedFactionOpcode );
DEFINE_OPCODE_HANDLER_OLD(CMSG_SHOWING_CLOAK, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleShowingCloakOpcode );
DEFINE_OPCODE_HANDLER_OLD(CMSG_SHOWING_HELM, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleShowingHelmOpcode );
DEFINE_HANDLER(CMSG_SHOWING_CLOAK, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Character::ShowingCloak, &WorldSession::HandleShowingCloakOpcode);
DEFINE_HANDLER(CMSG_SHOWING_HELM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Character::ShowingHelm, &WorldSession::HandleShowingHelmOpcode);
DEFINE_OPCODE_HANDLER_OLD(CMSG_SHOW_TRADE_SKILL, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
DEFINE_HANDLER(CMSG_SIGN_PETITION, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, WorldPackets::Petition::SignPetition, &WorldSession::HandleSignPetition);
DEFINE_OPCODE_HANDLER_OLD(CMSG_SILENCE_PARTY_TALKER, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );

View File

@@ -693,8 +693,8 @@ enum OpcodeClient : uint32
CMSG_SET_TRADE_ITEM = 0xBADD,
CMSG_SET_VEHICLE_REC_ID_ACK = 0xBADD,
CMSG_SET_WATCHED_FACTION = 0x154B,
CMSG_SHOWING_CLOAK = 0xBADD,
CMSG_SHOWING_HELM = 0xBADD,
CMSG_SHOWING_CLOAK = 0x1199,
CMSG_SHOWING_HELM = 0x05A3,
CMSG_SHOW_TRADE_SKILL = 0xBADD,
CMSG_SIGN_PETITION = 0xBADD,
CMSG_SILENCE_PARTY_TALKER = 0xBADD,

View File

@@ -119,6 +119,8 @@ namespace WorldPackets
class LoadingScreenNotify;
class SetActionBarToggles;
class PlayedTimeClient;
class ShowingCloak;
class ShowingHelm;
enum class LoginFailureReason : uint8;
}
@@ -812,8 +814,8 @@ class 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(WorldPackets::Item::RepairItem& packet);