131 lines
4.6 KiB
C++
131 lines
4.6 KiB
C++
/*
|
|
* This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify it
|
|
* under the terms of the GNU General Public License as published by the
|
|
* Free Software Foundation; either version 2 of the License, or (at your
|
|
* option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful, but WITHOUT
|
|
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
|
* more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License along
|
|
* with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
#include "MythicPlusPacketsCommon.h"
|
|
#include "PacketOperators.h"
|
|
|
|
namespace WorldPackets::MythicPlus
|
|
{
|
|
ByteBuffer& operator<<(ByteBuffer& data, DungeonScoreMapSummary const& dungeonScoreMapSummary)
|
|
{
|
|
data << int32(dungeonScoreMapSummary.ChallengeModeID);
|
|
data << float(dungeonScoreMapSummary.MapScore);
|
|
data << int32(dungeonScoreMapSummary.BestRunLevel);
|
|
data << int32(dungeonScoreMapSummary.BestRunDurationMS);
|
|
data << uint8(dungeonScoreMapSummary.Unknown1110);
|
|
data << Bits<1>(dungeonScoreMapSummary.FinishedSuccess);
|
|
data.FlushBits();
|
|
|
|
return data;
|
|
}
|
|
|
|
ByteBuffer& operator<<(ByteBuffer& data, DungeonScoreSummary const& dungeonScoreSummary)
|
|
{
|
|
data << float(dungeonScoreSummary.OverallScoreCurrentSeason);
|
|
data << float(dungeonScoreSummary.LadderScoreCurrentSeason);
|
|
data << Size<uint32>(dungeonScoreSummary.Runs);
|
|
for (DungeonScoreMapSummary const& dungeonScoreMapSummary : dungeonScoreSummary.Runs)
|
|
data << dungeonScoreMapSummary;
|
|
|
|
return data;
|
|
}
|
|
|
|
ByteBuffer& operator<<(ByteBuffer& data, MythicPlusMember const& mythicPlusMember)
|
|
{
|
|
data << mythicPlusMember.BnetAccountGUID;
|
|
data << uint64(mythicPlusMember.GuildClubMemberID);
|
|
data << mythicPlusMember.GUID;
|
|
data << mythicPlusMember.GuildGUID;
|
|
data << uint32(mythicPlusMember.NativeRealmAddress);
|
|
data << uint32(mythicPlusMember.VirtualRealmAddress);
|
|
data << int32(mythicPlusMember.ChrSpecializationID);
|
|
data << int8(mythicPlusMember.RaceID);
|
|
data << int32(mythicPlusMember.ItemLevel);
|
|
data << int32(mythicPlusMember.CovenantID);
|
|
data << int32(mythicPlusMember.SoulbindID);
|
|
|
|
return data;
|
|
}
|
|
|
|
ByteBuffer& operator<<(ByteBuffer& data, MythicPlusRun const& mythicPlusRun)
|
|
{
|
|
data << int32(mythicPlusRun.MapChallengeModeID);
|
|
data << uint32(mythicPlusRun.Level);
|
|
data << int32(mythicPlusRun.DurationMs);
|
|
data << mythicPlusRun.StartDate;
|
|
data << mythicPlusRun.CompletionDate;
|
|
data << int32(mythicPlusRun.Season);
|
|
data.append(mythicPlusRun.KeystoneAffixIDs.data(), mythicPlusRun.KeystoneAffixIDs.size());
|
|
data << Size<uint32>(mythicPlusRun.Members);
|
|
data << float(mythicPlusRun.RunScore);
|
|
data << int32(mythicPlusRun.Unknown_1120);
|
|
for (MythicPlusMember const& member : mythicPlusRun.Members)
|
|
data << member;
|
|
|
|
data << Bits<1>(mythicPlusRun.Completed);
|
|
data.FlushBits();
|
|
|
|
return data;
|
|
}
|
|
|
|
ByteBuffer& operator<<(ByteBuffer& data, DungeonScoreBestRunForAffix const& dungeonScoreBestRunForAffix)
|
|
{
|
|
data << int32(dungeonScoreBestRunForAffix.KeystoneAffixID);
|
|
data << dungeonScoreBestRunForAffix.Run;
|
|
data << float(dungeonScoreBestRunForAffix.Score);
|
|
|
|
return data;
|
|
}
|
|
|
|
ByteBuffer& operator<<(ByteBuffer& data, DungeonScoreMapData const& dungeonScoreMapData)
|
|
{
|
|
data << int32(dungeonScoreMapData.MapChallengeModeID);
|
|
data << Size<uint32>(dungeonScoreMapData.BestRuns);
|
|
data << float(dungeonScoreMapData.OverAllScore);
|
|
for (DungeonScoreBestRunForAffix const& bestRun : dungeonScoreMapData.BestRuns)
|
|
data << bestRun;
|
|
|
|
return data;
|
|
}
|
|
|
|
ByteBuffer& operator<<(ByteBuffer& data, DungeonScoreSeasonData const& dungeonScoreSeasonData)
|
|
{
|
|
data << int32(dungeonScoreSeasonData.Season);
|
|
data << Size<uint32>(dungeonScoreSeasonData.SeasonMaps);
|
|
data << Size<uint32>(dungeonScoreSeasonData.LadderMaps);
|
|
data << float(dungeonScoreSeasonData.SeasonScore);
|
|
data << float(dungeonScoreSeasonData.LadderScore);
|
|
for (DungeonScoreMapData const& map : dungeonScoreSeasonData.SeasonMaps)
|
|
data << map;
|
|
|
|
for (DungeonScoreMapData const& map : dungeonScoreSeasonData.LadderMaps)
|
|
data << map;
|
|
|
|
return data;
|
|
}
|
|
|
|
ByteBuffer& operator<<(ByteBuffer& data, DungeonScoreData const& dungeonScoreData)
|
|
{
|
|
data << Size<uint32>(dungeonScoreData.Seasons);
|
|
data << int32(dungeonScoreData.TotalRuns);
|
|
for (DungeonScoreSeasonData const& season : dungeonScoreData.Seasons)
|
|
data << season;
|
|
|
|
return data;
|
|
}
|
|
}
|