missing opcodes implementation
This commit is contained in:
@@ -922,3 +922,9 @@ void WorldSession::HandleJoinSkirmish(WorldPackets::Battleground::JoinSkirmish&
|
||||
|
||||
sBattlegroundMgr->ScheduleQueueUpdate(0, bgQueueTypeId, bracketEntry->GetBracketId());
|
||||
}
|
||||
|
||||
void WorldSession::HandleRequestScheduledPVPInfo(WorldPackets::Battleground::RequestScheduledPVPInfo& /*packet*/)
|
||||
{
|
||||
WorldPackets::Battleground::RequestScheduledPVPInfoResponse requestScheduledPVPInfoResponse;
|
||||
SendPacket(requestScheduledPVPInfoResponse.Write());
|
||||
}
|
||||
|
||||
@@ -479,5 +479,30 @@ void JoinSkirmish::Read()
|
||||
_worldPacket >> Bracket;
|
||||
IsRequeue = _worldPacket.ReadBit();
|
||||
}
|
||||
|
||||
WorldPacket const* RequestScheduledPVPInfoResponse::Write()
|
||||
{
|
||||
_worldPacket << Bits<1>(HasBrawlInfo);
|
||||
_worldPacket << Bits<1>(HasSpecialEventInfo);
|
||||
_worldPacket.FlushBits();
|
||||
|
||||
if (HasBrawlInfo)
|
||||
{
|
||||
_worldPacket << Brawl->PvpBrawlID;
|
||||
_worldPacket << Brawl->TimeToBrawl;
|
||||
_worldPacket.WriteBit(Brawl->IsActive);
|
||||
_worldPacket.FlushBits();
|
||||
}
|
||||
|
||||
if (HasSpecialEventInfo)
|
||||
{
|
||||
_worldPacket << SpecialEvent->PvpBrawlID;
|
||||
_worldPacket << SpecialEvent->AchievementId;
|
||||
_worldPacket << Bits<1>(SpecialEvent->CanQueue);
|
||||
_worldPacket.FlushBits();
|
||||
}
|
||||
|
||||
return &_worldPacket;
|
||||
}
|
||||
//WowCommunity
|
||||
}
|
||||
|
||||
@@ -606,6 +606,42 @@ namespace WorldPackets
|
||||
uint8 Bracket = 0;
|
||||
bool IsRequeue = false;
|
||||
};
|
||||
|
||||
class RequestScheduledPVPInfo final : public ClientPacket
|
||||
{
|
||||
public:
|
||||
RequestScheduledPVPInfo(WorldPacket&& packet) : ClientPacket(CMSG_REQUEST_SCHEDULED_PVP_INFO, std::move(packet)) {}
|
||||
|
||||
void Read() override {}
|
||||
};
|
||||
|
||||
struct SpecialEventInfo
|
||||
{
|
||||
int32 PvpBrawlID = 0;
|
||||
int32 AchievementId = 0;
|
||||
bool CanQueue = true;
|
||||
};
|
||||
|
||||
struct BrawlInfo
|
||||
{
|
||||
int32 PvpBrawlID = 0;
|
||||
int32 TimeToBrawl = 0;
|
||||
bool IsActive = true;
|
||||
};
|
||||
|
||||
class RequestScheduledPVPInfoResponse final : public ServerPacket
|
||||
{
|
||||
public:
|
||||
RequestScheduledPVPInfoResponse() : ServerPacket(SMSG_REQUEST_SCHEDULED_PVP_INFO_RESPONSE) {}
|
||||
|
||||
WorldPacket const* Write() override;
|
||||
|
||||
bool HasBrawlInfo = false;
|
||||
bool HasSpecialEventInfo = false;
|
||||
|
||||
Optional<BrawlInfo> Brawl;
|
||||
Optional<SpecialEventInfo> SpecialEvent;
|
||||
};
|
||||
//WowCommunity
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1002,14 +1002,17 @@ void OpcodeTable::InitializeClientOpcodes()
|
||||
DEFINE_HANDLER(CMSG_REQUEST_MYTHIC_PLUS_SEASON_DATA, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL);
|
||||
DEFINE_HANDLER(CMSG_REQUEST_PARTY_ELIGIBILITY_FOR_DELVE_TIERS, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleRequestPartyEligibilityForDelveTiers);
|
||||
DEFINE_HANDLER(CMSG_REQUEST_PARTY_JOIN_UPDATES, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleRequestPartyJoinUpdates);
|
||||
DEFINE_HANDLER(CMSG_REQUEST_PARTY_MEMBER_STATS, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleRequestPartyMemberStatsOpcode);
|
||||
DEFINE_HANDLER(CMSG_REQUEST_PET_INFO, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleRequestPetInfo);
|
||||
DEFINE_HANDLER(CMSG_REQUEST_PLAYED_TIME, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandlePlayedTime);
|
||||
DEFINE_HANDLER(CMSG_REQUEST_PVP_REWARDS, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleRequestPvpReward);
|
||||
DEFINE_HANDLER(CMSG_REQUEST_RAID_INFO, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleRequestRaidInfoOpcode);
|
||||
DEFINE_HANDLER(CMSG_REQUEST_RATED_PVP_INFO, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleRequestRatedPvpInfo);
|
||||
DEFINE_HANDLER(CMSG_REQUEST_REALM_GUILD_MASTER_INFO, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
|
||||
DEFINE_HANDLER(CMSG_REQUEST_SCHEDULED_AREA_POI_UPDATE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
|
||||
DEFINE_HANDLER(CMSG_REQUEST_SCHEDULED_PVP_INFO, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
|
||||
DEFINE_HANDLER(CMSG_REQUEST_SCHEDULED_PVP_INFO, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleRequestScheduledPVPInfo);
|
||||
DEFINE_HANDLER(CMSG_REQUEST_STABLED_PETS, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleRequestStabledPets);
|
||||
DEFINE_HANDLER(CMSG_REQUEST_STORE_FRONT_INFO_UPDATE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL);
|
||||
DEFINE_HANDLER(CMSG_REQUEST_STORE_FRONT_INFO_UPDATE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleRequestStoreFrontInfoUpdate);
|
||||
DEFINE_HANDLER(CMSG_REQUEST_SURVEY, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
|
||||
DEFINE_HANDLER(CMSG_REQUEST_TREASURE_PUNCH_LIST_ITEMS, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
|
||||
DEFINE_HANDLER(CMSG_REQUEST_VEHICLE_EXIT, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleRequestVehicleExit);
|
||||
|
||||
@@ -204,6 +204,8 @@ namespace WorldPackets
|
||||
class AcceptWargameInvite;
|
||||
class BattlemasterJoinBrawl;
|
||||
class JoinSkirmish;
|
||||
class RequestScheduledPVPInfo;
|
||||
class RequestScheduledPVPInfoResponse;
|
||||
}
|
||||
|
||||
namespace Battlenet
|
||||
@@ -2167,6 +2169,7 @@ class TC_GAME_API WorldSession
|
||||
void HandleBattlemasterJoinBrawl(WorldPackets::Battleground::BattlemasterJoinBrawl& packet);
|
||||
void JoinBracket(uint8 slot, uint8 rolesMask = 0);
|
||||
void HandleJoinSkirmish(WorldPackets::Battleground::JoinSkirmish& packet);
|
||||
void HandleRequestScheduledPVPInfo(WorldPackets::Battleground::RequestScheduledPVPInfo& /*packet*/);
|
||||
|
||||
void HandleMinimapPingOpcode(WorldPackets::Party::MinimapPingClient& packet);
|
||||
void HandleRandomRollOpcode(WorldPackets::Misc::RandomRollClient& packet);
|
||||
|
||||
Reference in New Issue
Block a user