Files
TCPlayerbotCore/src/server/game/Server/Packets/AchievementPackets.cpp
T
Vincent-Michael 478cc756eb Update copyright note for 2016
Happy new year (Again new year with idiots ...)
2016-01-01 00:34:25 +01:00

179 lines
5.0 KiB
C++

/*
* Copyright (C) 2008-2016 TrinityCore <http://www.trinitycore.org/>
*
* 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 "AchievementPackets.h"
ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Achievement::EarnedAchievement const& earned)
{
data << uint32(earned.Id);
data.AppendPackedTime(earned.Date);
data << earned.Owner;
data << uint32(earned.VirtualRealmAddress);
data << uint32(earned.NativeRealmAddress);
return data;
}
ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Achievement::AllAchievements const& allAchievements)
{
data << uint32(allAchievements.Earned.size());
data << uint32(allAchievements.Progress.size());
for (WorldPackets::Achievement::EarnedAchievement const& earned : allAchievements.Earned)
data << earned;
for (WorldPackets::Achievement::CriteriaProgress const& progress : allAchievements.Progress)
{
data << uint32(progress.Id);
data << uint64(progress.Quantity);
data << progress.Player;
data.AppendPackedTime(progress.Date);
data << uint32(progress.TimeFromStart);
data << uint32(progress.TimeFromCreate);
data.WriteBits(progress.Flags, 4);
data.FlushBits();
}
return data;
}
WorldPacket const* WorldPackets::Achievement::AllAchievementData::Write()
{
_worldPacket << Data;
return &_worldPacket;
}
WorldPacket const* WorldPackets::Achievement::RespondInspectAchievements::Write()
{
_worldPacket << Player;
_worldPacket << Data;
return &_worldPacket;
}
WorldPacket const* WorldPackets::Achievement::CriteriaUpdate::Write()
{
_worldPacket << uint32(CriteriaID);
_worldPacket << uint64(Quantity);
_worldPacket << PlayerGUID;
_worldPacket << uint32(Flags);
_worldPacket.AppendPackedTime(CurrentTime);
_worldPacket << uint32(ElapsedTime);
_worldPacket << uint32(CreationTime);
return &_worldPacket;
}
WorldPacket const* WorldPackets::Achievement::CriteriaDeleted::Write()
{
_worldPacket << uint32(CriteriaID);
return &_worldPacket;
}
WorldPacket const* WorldPackets::Achievement::AchievementDeleted::Write()
{
_worldPacket << uint32(AchievementID);
_worldPacket << uint32(Immunities);
return &_worldPacket;
}
WorldPacket const* WorldPackets::Achievement::AchievementEarned::Write()
{
_worldPacket << Sender;
_worldPacket << Earner;
_worldPacket << uint32(AchievementID);
_worldPacket.AppendPackedTime(Time);
_worldPacket << uint32(EarnerNativeRealm);
_worldPacket << uint32(EarnerVirtualRealm);
_worldPacket.WriteBit(Initial);
_worldPacket.FlushBits();
return &_worldPacket;
}
WorldPacket const* WorldPackets::Achievement::ServerFirstAchievement::Write()
{
_worldPacket.WriteBits(Name.length(), 7);
_worldPacket.WriteBit(GuildAchievement);
_worldPacket << PlayerGUID;
_worldPacket << AchievementID;
_worldPacket.WriteString(Name);
return &_worldPacket;
}
WorldPacket const* WorldPackets::Achievement::GuildCriteriaUpdate::Write()
{
_worldPacket << uint32(Progress.size());
for (GuildCriteriaProgress const& progress : Progress)
{
_worldPacket << int32(progress.CriteriaID);
_worldPacket << uint32(progress.DateCreated);
_worldPacket << uint32(progress.DateStarted);
_worldPacket.AppendPackedTime(progress.DateUpdated);
_worldPacket << uint64(progress.Quantity);
_worldPacket << progress.PlayerGUID;
_worldPacket << int32(progress.Flags);
}
return &_worldPacket;
}
WorldPacket const* WorldPackets::Achievement::GuildCriteriaDeleted::Write()
{
_worldPacket << GuildGUID;
_worldPacket << int32(CriteriaID);
return &_worldPacket;
}
void WorldPackets::Achievement::GuildSetFocusedAchievement::Read()
{
_worldPacket >> AchievementID;
}
WorldPacket const* WorldPackets::Achievement::GuildAchievementDeleted::Write()
{
_worldPacket << GuildGUID;
_worldPacket << uint32(AchievementID);
_worldPacket.AppendPackedTime(TimeDeleted);
return &_worldPacket;
}
WorldPacket const* WorldPackets::Achievement::GuildAchievementEarned::Write()
{
_worldPacket << GuildGUID;
_worldPacket << uint32(AchievementID);
_worldPacket.AppendPackedTime(TimeEarned);
return &_worldPacket;
}
WorldPacket const* WorldPackets::Achievement::AllGuildAchievements::Write()
{
_worldPacket << uint32(Earned.size());
for (EarnedAchievement const& earned : Earned)
_worldPacket << earned;
return &_worldPacket;
}