mirror of
https://github.com/araxiaonline/TrinityCore.git
synced 2026-06-13 03:32:28 -04:00
Core/PacketIO: Added example uses of new packet reading/writing utilities
This commit is contained in:
@@ -99,8 +99,8 @@ ByteBuffer& operator>>(ByteBuffer& data, AuctionListFilterClass& filterClass)
|
||||
ByteBuffer& operator>>(ByteBuffer& data, AuctionSortDef& sortDef)
|
||||
{
|
||||
data.ResetBitPos();
|
||||
sortDef.SortOrder = static_cast<AuctionHouseSortOrder>(data.ReadBits(4));
|
||||
sortDef.ReverseSort = data.ReadBit();
|
||||
data >> Bits<4>(sortDef.SortOrder);
|
||||
data >> Bits<1>(sortDef.ReverseSort);
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
@@ -327,7 +327,7 @@ void WorldPackets::Auth::AuthContinuedSession::Read()
|
||||
|
||||
void WorldPackets::Auth::ConnectToFailed::Read()
|
||||
{
|
||||
Serial = _worldPacket.read<ConnectToSerial>();
|
||||
_worldPacket >> As<uint32>(Serial);
|
||||
_worldPacket >> Con;
|
||||
}
|
||||
|
||||
|
||||
@@ -290,8 +290,8 @@ WorldPacket const* WorldPackets::Calendar::CalendarSendEvent::Write()
|
||||
_worldPacket << LockDate;
|
||||
_worldPacket << uint64(EventClubID);
|
||||
_worldPacket << uint32(Invites.size());
|
||||
_worldPacket.WriteBits(EventName.size(), 8);
|
||||
_worldPacket.WriteBits(Description.size(), 11);
|
||||
_worldPacket << BitsSize<8>(EventName);
|
||||
_worldPacket << BitsSize<11>(Description);
|
||||
_worldPacket.FlushBits();
|
||||
|
||||
for (auto const& invite : Invites)
|
||||
@@ -319,7 +319,7 @@ WorldPacket const* WorldPackets::Calendar::CalendarInviteAlert::Write()
|
||||
_worldPacket << InvitedByGuid;
|
||||
_worldPacket << OwnerGuid;
|
||||
|
||||
_worldPacket.WriteBits(EventName.size(), 8);
|
||||
_worldPacket << BitsSize<8>(EventName);
|
||||
_worldPacket.FlushBits();
|
||||
_worldPacket.WriteString(EventName);
|
||||
|
||||
|
||||
@@ -49,16 +49,7 @@ namespace Character
|
||||
{
|
||||
void SortCustomizations(Array<ChrCustomizationChoice, 250>& customizations)
|
||||
{
|
||||
auto first = customizations.begin();
|
||||
auto last = customizations.end();
|
||||
for (auto itr = first; itr != last; ++itr)
|
||||
{
|
||||
auto insertion = std::upper_bound(first, itr, *itr, [](ChrCustomizationChoice const& left, ChrCustomizationChoice const& right)
|
||||
{
|
||||
return left.ChrCustomizationOptionID < right.ChrCustomizationOptionID;
|
||||
});
|
||||
std::rotate(insertion, itr, std::next(itr));
|
||||
}
|
||||
std::ranges::sort(customizations, std::ranges::less(), &ChrCustomizationChoice::ChrCustomizationOptionID);
|
||||
}
|
||||
|
||||
ByteBuffer& operator<<(ByteBuffer& data, CustomTabardInfo const& customTabardInfo)
|
||||
@@ -88,7 +79,7 @@ EnumCharacters::EnumCharacters(WorldPacket&& packet) : ClientPacket(std::move(pa
|
||||
ASSERT(GetOpcode() == CMSG_ENUM_CHARACTERS || GetOpcode() == CMSG_ENUM_CHARACTERS_DELETED_BY_CLIENT);
|
||||
}
|
||||
|
||||
EnumCharactersResult::CharacterInfo::CharacterInfo(Field* fields)
|
||||
EnumCharactersResult::CharacterInfo::CharacterInfo(Field const* fields)
|
||||
{
|
||||
// 0 1 2 3 4 5
|
||||
// "SELECT characters.guid, characters.name, characters.race, characters.class, characters.gender, characters.level, "
|
||||
@@ -248,15 +239,15 @@ ByteBuffer& operator<<(ByteBuffer& data, EnumCharactersResult::CharacterInfo con
|
||||
if (!charInfo.MailSenderTypes.empty())
|
||||
data.append(charInfo.MailSenderTypes.data(), charInfo.MailSenderTypes.size());
|
||||
|
||||
data.WriteBits(charInfo.Name.length(), 6);
|
||||
data.WriteBit(charInfo.FirstLogin);
|
||||
data.WriteBit(charInfo.BoostInProgress);
|
||||
data.WriteBits(charInfo.unkWod61x, 5);
|
||||
data.WriteBit(charInfo.RpeResetAvailable);
|
||||
data.WriteBit(charInfo.RpeResetQuestClearAvailable);
|
||||
data << BitsSize<6>(charInfo.Name);
|
||||
data << Bits<1>(charInfo.FirstLogin);
|
||||
data << Bits<1>(charInfo.BoostInProgress);
|
||||
data << Bits<5>(charInfo.unkWod61x);
|
||||
data << Bits<1>(charInfo.RpeResetAvailable);
|
||||
data << Bits<1>(charInfo.RpeResetQuestClearAvailable);
|
||||
|
||||
for (std::string const& str : charInfo.MailSenders)
|
||||
data.WriteBits(str.length() + 1, 6);
|
||||
data << Bits<6>(str.length() + 1);
|
||||
|
||||
data.FlushBits();
|
||||
|
||||
@@ -272,11 +263,11 @@ ByteBuffer& operator<<(ByteBuffer& data, EnumCharactersResult::CharacterInfo con
|
||||
ByteBuffer& operator<<(ByteBuffer& data, EnumCharactersResult::RaceUnlock const& raceUnlock)
|
||||
{
|
||||
data << int32(raceUnlock.RaceID);
|
||||
data.WriteBit(raceUnlock.HasExpansion);
|
||||
data.WriteBit(raceUnlock.HasAchievement);
|
||||
data.WriteBit(raceUnlock.HasHeritageArmor);
|
||||
data.WriteBit(raceUnlock.IsLocked);
|
||||
data.WriteBit(raceUnlock.Unused1027);
|
||||
data << Bits<1>(raceUnlock.HasExpansion);
|
||||
data << Bits<1>(raceUnlock.HasAchievement);
|
||||
data << Bits<1>(raceUnlock.HasHeritageArmor);
|
||||
data << Bits<1>(raceUnlock.IsLocked);
|
||||
data << Bits<1>(raceUnlock.Unused1027);
|
||||
data.FlushBits();
|
||||
|
||||
return data;
|
||||
@@ -302,13 +293,13 @@ WorldPacket const* EnumCharactersResult::Write()
|
||||
{
|
||||
_worldPacket.reserve(9 + Characters.size() * sizeof(CharacterInfo) + RaceUnlockData.size() * sizeof(RaceUnlock));
|
||||
|
||||
_worldPacket.WriteBit(Success);
|
||||
_worldPacket.WriteBit(IsDeletedCharacters);
|
||||
_worldPacket.WriteBit(IsNewPlayerRestrictionSkipped);
|
||||
_worldPacket.WriteBit(IsNewPlayerRestricted);
|
||||
_worldPacket.WriteBit(IsNewPlayer);
|
||||
_worldPacket.WriteBit(IsTrialAccountRestricted);
|
||||
_worldPacket.WriteBit(DisabledClassesMask.has_value());
|
||||
_worldPacket << Bits<1>(Success);
|
||||
_worldPacket << Bits<1>(IsDeletedCharacters);
|
||||
_worldPacket << Bits<1>(IsNewPlayerRestrictionSkipped);
|
||||
_worldPacket << Bits<1>(IsNewPlayerRestricted);
|
||||
_worldPacket << Bits<1>(IsNewPlayer);
|
||||
_worldPacket << Bits<1>(IsTrialAccountRestricted);
|
||||
_worldPacket << OptionalInit(DisabledClassesMask);
|
||||
_worldPacket << uint32(Characters.size());
|
||||
_worldPacket << int32(MaxCharacterLevel);
|
||||
_worldPacket << uint32(RaceUnlockData.size());
|
||||
|
||||
@@ -128,7 +128,7 @@ namespace WorldPackets
|
||||
*
|
||||
* @param fields Field set of CharacterDatabaseStatements::CHAR_SEL_ENUM
|
||||
*/
|
||||
CharacterInfo(Field* fields);
|
||||
CharacterInfo(Field const* fields);
|
||||
|
||||
ObjectGuid Guid;
|
||||
uint64 GuildClubMemberID = 0; ///< same as bgs.protocol.club.v1.MemberId.unique_id, guessed basing on SMSG_QUERY_PLAYER_NAME_RESPONSE (that one is known)
|
||||
|
||||
@@ -55,7 +55,7 @@ void SpellCastLogData::Initialize(Spell const* spell)
|
||||
}
|
||||
|
||||
if (!primaryPowerAdded)
|
||||
PowerData.insert(PowerData.begin(), SpellLogPowerData(int32(primaryPowerType), unitCaster->GetPower(primaryPowerType), 0));
|
||||
PowerData.emplace(PowerData.begin(), int32(primaryPowerType), unitCaster->GetPower(primaryPowerType), 0);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -160,10 +160,10 @@ ByteBuffer& operator<<(ByteBuffer& data, SpellCastLogData const& spellCastLogDat
|
||||
data << int32(spellCastLogData.AttackPower);
|
||||
data << int32(spellCastLogData.SpellPower);
|
||||
data << int32(spellCastLogData.Armor);
|
||||
data.WriteBits(spellCastLogData.PowerData.size(), 9);
|
||||
data << BitsSize<9>(spellCastLogData.PowerData);
|
||||
data.FlushBits();
|
||||
|
||||
for (WorldPackets::Spells::SpellLogPowerData const& powerData : spellCastLogData.PowerData)
|
||||
for (SpellLogPowerData const& powerData : spellCastLogData.PowerData)
|
||||
{
|
||||
data << int32(powerData.PowerType);
|
||||
data << int32(powerData.Amount);
|
||||
|
||||
@@ -48,10 +48,10 @@ ByteBuffer& operator<<(ByteBuffer& data, CraftingData const& craftingData)
|
||||
for (SpellReducedReagent const& spellReducedReagent : craftingData.ResourcesReturned)
|
||||
data << spellReducedReagent;
|
||||
|
||||
data.WriteBit(craftingData.IsCrit);
|
||||
data.WriteBit(craftingData.field_29);
|
||||
data.WriteBit(craftingData.field_2A);
|
||||
data.WriteBit(craftingData.BonusCraft);
|
||||
data << Bits<1>(craftingData.IsCrit);
|
||||
data << Bits<1>(craftingData.field_29);
|
||||
data << Bits<1>(craftingData.field_2A);
|
||||
data << Bits<1>(craftingData.BonusCraft);
|
||||
data.FlushBits();
|
||||
|
||||
data << craftingData.OldItem;
|
||||
|
||||
@@ -67,7 +67,7 @@ WorldPacket const* WorldPackets::EquipmentSet::LoadEquipmentSet::Write()
|
||||
|
||||
void WorldPackets::EquipmentSet::SaveEquipmentSet::Read()
|
||||
{
|
||||
Set.Type = _worldPacket.read<EquipmentSetInfo::EquipmentSetType, int32>();
|
||||
_worldPacket >> As<int32>(Set.Type);
|
||||
_worldPacket >> Set.Guid;
|
||||
_worldPacket >> Set.SetID;
|
||||
_worldPacket >> Set.IgnoreMask;
|
||||
|
||||
@@ -253,7 +253,7 @@ ByteBuffer& operator<<(ByteBuffer& data, GarrisonInfo const& garrison)
|
||||
data << uint32(garrison.NumMissionsStartedToday);
|
||||
data << int32(garrison.MinAutoTroopLevel);
|
||||
|
||||
for (GarrisonPlotInfo* plot : garrison.Plots)
|
||||
for (GarrisonPlotInfo const* plot : garrison.Plots)
|
||||
data << *plot;
|
||||
|
||||
for (std::vector<GarrisonMissionReward> const& missionReward : garrison.MissionRewards)
|
||||
|
||||
@@ -906,8 +906,7 @@ void WorldPackets::Guild::GuildNewsUpdateSticky::Read()
|
||||
{
|
||||
_worldPacket >> GuildGUID;
|
||||
_worldPacket >> NewsID;
|
||||
|
||||
NewsID = _worldPacket.ReadBit();
|
||||
_worldPacket >> Bits<1>(Sticky);
|
||||
}
|
||||
|
||||
void WorldPackets::Guild::GuildSetGuildMaster::Read()
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
*/
|
||||
|
||||
#include "InstancePackets.h"
|
||||
#include "PacketUtilities.h"
|
||||
|
||||
WorldPacket const* WorldPackets::Instance::UpdateLastInstance::Write()
|
||||
{
|
||||
@@ -110,8 +111,8 @@ WorldPacket const* WorldPackets::Instance::RaidInstanceMessage::Write()
|
||||
_worldPacket << uint8(Type);
|
||||
_worldPacket << uint32(MapID);
|
||||
_worldPacket << uint32(DifficultyID);
|
||||
_worldPacket.WriteBit(Locked);
|
||||
_worldPacket.WriteBit(Extended);
|
||||
_worldPacket << Bits<1>(Locked);
|
||||
_worldPacket << Bits<1>(Extended);
|
||||
_worldPacket.FlushBits();
|
||||
|
||||
return &_worldPacket;
|
||||
|
||||
@@ -264,14 +264,14 @@ WorldPacket const* WorldPackets::Item::ItemPushResult::Write()
|
||||
for (UiEventToast const& uiEventToast : Toasts)
|
||||
_worldPacket << uiEventToast;
|
||||
|
||||
_worldPacket.WriteBit(Pushed);
|
||||
_worldPacket.WriteBit(Created);
|
||||
_worldPacket.WriteBit(Unused_1017);
|
||||
_worldPacket.WriteBits(DisplayText, 3);
|
||||
_worldPacket.WriteBit(IsBonusRoll);
|
||||
_worldPacket.WriteBit(IsEncounterLoot);
|
||||
_worldPacket.WriteBit(CraftingData.has_value());
|
||||
_worldPacket.WriteBit(FirstCraftOperationID.has_value());
|
||||
_worldPacket << Bits<1>(Pushed);
|
||||
_worldPacket << Bits<1>(Created);
|
||||
_worldPacket << Bits<1>(Unused_1017);
|
||||
_worldPacket << Bits<3>(DisplayText);
|
||||
_worldPacket << Bits<1>(IsBonusRoll);
|
||||
_worldPacket << Bits<1>(IsEncounterLoot);
|
||||
_worldPacket << OptionalInit(CraftingData);
|
||||
_worldPacket << OptionalInit(FirstCraftOperationID);
|
||||
_worldPacket.FlushBits();
|
||||
|
||||
_worldPacket << Item;
|
||||
|
||||
@@ -147,17 +147,16 @@ ByteBuffer& operator<<(ByteBuffer& data, ItemBonuses const& itemBonusInstanceDat
|
||||
|
||||
ByteBuffer& operator>>(ByteBuffer& data, ItemBonuses& itemBonusInstanceData)
|
||||
{
|
||||
uint32 bonusListIdSize;
|
||||
|
||||
itemBonusInstanceData.Context = data.read<ItemContext>();
|
||||
uint32 bonusListIdSize;
|
||||
data >> bonusListIdSize;
|
||||
if (bonusListIdSize > 32)
|
||||
throw PacketArrayMaxCapacityException(bonusListIdSize, 32);
|
||||
|
||||
for (uint32 i = 0u; i < bonusListIdSize; ++i)
|
||||
{
|
||||
uint32 bonusId;
|
||||
data >> bonusId;
|
||||
itemBonusInstanceData.BonusListIDs.push_back(bonusId);
|
||||
}
|
||||
itemBonusInstanceData.BonusListIDs.resize(bonusListIdSize);
|
||||
|
||||
for (int32& bonusListID : itemBonusInstanceData.BonusListIDs)
|
||||
data >> bonusListID;
|
||||
|
||||
return data;
|
||||
}
|
||||
@@ -173,14 +172,14 @@ ByteBuffer& operator<<(ByteBuffer& data, ItemMod const& itemMod)
|
||||
ByteBuffer& operator>>(ByteBuffer& data, ItemMod& itemMod)
|
||||
{
|
||||
data >> itemMod.Value;
|
||||
itemMod.Type = data.read<ItemModifier, uint8>();
|
||||
data >> As<uint8>(itemMod.Type);
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
ByteBuffer& operator<<(ByteBuffer& data, ItemModList const& itemModList)
|
||||
{
|
||||
data.WriteBits(itemModList.Values.size(), 6);
|
||||
data << BitsSize<6>(itemModList.Values);
|
||||
data.FlushBits();
|
||||
|
||||
for (ItemMod const& itemMod : itemModList.Values)
|
||||
@@ -191,7 +190,7 @@ ByteBuffer& operator<<(ByteBuffer& data, ItemModList const& itemModList)
|
||||
|
||||
ByteBuffer& operator>>(ByteBuffer& data, ItemModList& itemModList)
|
||||
{
|
||||
itemModList.Values.resize(data.ReadBits(6));
|
||||
data >> BitsSize<6>(itemModList.Values);
|
||||
data.ResetBitPos();
|
||||
|
||||
for (ItemMod& itemMod : itemModList.Values)
|
||||
|
||||
@@ -16,13 +16,12 @@
|
||||
*/
|
||||
|
||||
#include "NPCPackets.h"
|
||||
#include "Util.h"
|
||||
|
||||
namespace WorldPackets::NPC
|
||||
{
|
||||
ByteBuffer& operator<<(ByteBuffer& data, TreasureItem const& treasureItem)
|
||||
{
|
||||
data.WriteBits(AsUnderlyingType(treasureItem.Type), 1);
|
||||
data << Bits<1>(treasureItem.Type);
|
||||
data << int32(treasureItem.ID);
|
||||
data << int32(treasureItem.Quantity);
|
||||
|
||||
@@ -47,11 +46,11 @@ ByteBuffer& operator<<(ByteBuffer& data, ClientGossipOptions const& gossipOption
|
||||
data << uint32(gossipOption.OptionLanguage);
|
||||
data << int32(gossipOption.Flags);
|
||||
data << int32(gossipOption.OrderIndex);
|
||||
data.WriteBits(gossipOption.Text.size(), 12);
|
||||
data.WriteBits(gossipOption.Confirm.size(), 12);
|
||||
data.WriteBits(AsUnderlyingType(gossipOption.Status), 2);
|
||||
data.WriteBit(gossipOption.SpellID.has_value());
|
||||
data.WriteBit(gossipOption.OverrideIconID.has_value());
|
||||
data << BitsSize<12>(gossipOption.Text);
|
||||
data << BitsSize<12>(gossipOption.Confirm);
|
||||
data << Bits<2>(gossipOption.Status);
|
||||
data << OptionalInit(gossipOption.SpellID);
|
||||
data << OptionalInit(gossipOption.OverrideIconID);
|
||||
data.FlushBits();
|
||||
|
||||
data << gossipOption.Treasure;
|
||||
@@ -76,9 +75,9 @@ ByteBuffer& operator<<(ByteBuffer& data, ClientGossipText const& gossipText)
|
||||
data << int32(gossipText.QuestFlags[0]);
|
||||
data << int32(gossipText.QuestFlags[1]);
|
||||
|
||||
data.WriteBit(gossipText.Repeatable);
|
||||
data.WriteBit(gossipText.Important);
|
||||
data.WriteBits(gossipText.QuestTitle.size(), 9);
|
||||
data << Bits<1>(gossipText.Repeatable);
|
||||
data << Bits<1>(gossipText.Important);
|
||||
data << BitsSize<9>(gossipText.QuestTitle);
|
||||
data.FlushBits();
|
||||
|
||||
data.WriteString(gossipText.QuestTitle);
|
||||
@@ -108,8 +107,8 @@ WorldPacket const* GossipMessage::Write()
|
||||
_worldPacket << int32(FriendshipFactionID);
|
||||
_worldPacket << uint32(GossipOptions.size());
|
||||
_worldPacket << uint32(GossipText.size());
|
||||
_worldPacket.WriteBit(TextID.has_value());
|
||||
_worldPacket.WriteBit(BroadcastTextID.has_value());
|
||||
_worldPacket << OptionalInit(TextID);
|
||||
_worldPacket << OptionalInit(BroadcastTextID);
|
||||
_worldPacket.FlushBits();
|
||||
|
||||
for (ClientGossipOptions const& options : GossipOptions)
|
||||
|
||||
@@ -94,13 +94,13 @@ namespace WorldPackets
|
||||
|
||||
struct ClientGossipText
|
||||
{
|
||||
int32 QuestID = 0;
|
||||
int32 QuestID = 0;
|
||||
int32 ContentTuningID = 0;
|
||||
int32 QuestType = 0;
|
||||
bool Repeatable = false;
|
||||
bool Important = false;
|
||||
int32 QuestType = 0;
|
||||
bool Repeatable = false;
|
||||
bool Important = false;
|
||||
std::string QuestTitle;
|
||||
int32 QuestFlags[2] = { };
|
||||
std::array<int32, 2> QuestFlags = { };
|
||||
};
|
||||
|
||||
ByteBuffer& operator<<(ByteBuffer& data, ClientGossipText const& gossipText);
|
||||
|
||||
@@ -735,9 +735,9 @@ WorldPacket const* WorldPackets::Party::BroadcastSummonResponse::Write()
|
||||
|
||||
void WorldPackets::Party::SetRestrictPingsToAssistants::Read()
|
||||
{
|
||||
bool hasPartyIndex = _worldPacket.ReadBit();
|
||||
RestrictPingsToAssistants = _worldPacket.ReadBit();
|
||||
if (hasPartyIndex)
|
||||
_worldPacket >> OptionalInit(PartyIndex);
|
||||
_worldPacket >> Bits<1>(RestrictPingsToAssistants);
|
||||
if (PartyIndex)
|
||||
_worldPacket >> PartyIndex.emplace();
|
||||
}
|
||||
|
||||
@@ -764,7 +764,7 @@ void WorldPackets::Party::SendPingWorldPoint::Read()
|
||||
_worldPacket >> SenderGUID;
|
||||
_worldPacket >> MapID;
|
||||
_worldPacket >> Point;
|
||||
Type = _worldPacket.read<PingSubjectType, uint8>();
|
||||
_worldPacket >> As<uint8>(Type);
|
||||
_worldPacket >> PinFrameID;
|
||||
}
|
||||
|
||||
|
||||
@@ -369,7 +369,7 @@ void QueryCorpseLocationFromClient::Read()
|
||||
|
||||
WorldPacket const* CorpseLocation::Write()
|
||||
{
|
||||
_worldPacket.WriteBit(Valid);
|
||||
_worldPacket << Bits<1>(Valid);
|
||||
_worldPacket.FlushBits();
|
||||
|
||||
_worldPacket << Player;
|
||||
|
||||
@@ -194,16 +194,16 @@ WorldPacket const* QueryQuestInfoResponse::Write()
|
||||
for (QuestCompleteDisplaySpell const& rewardDisplaySpell : Info.RewardDisplaySpell)
|
||||
_worldPacket << rewardDisplaySpell;
|
||||
|
||||
_worldPacket.WriteBits(Info.LogTitle.size(), 9);
|
||||
_worldPacket.WriteBits(Info.LogDescription.size(), 12);
|
||||
_worldPacket.WriteBits(Info.QuestDescription.size(), 12);
|
||||
_worldPacket.WriteBits(Info.AreaDescription.size(), 9);
|
||||
_worldPacket.WriteBits(Info.PortraitGiverText.size(), 10);
|
||||
_worldPacket.WriteBits(Info.PortraitGiverName.size(), 8);
|
||||
_worldPacket.WriteBits(Info.PortraitTurnInText.size(), 10);
|
||||
_worldPacket.WriteBits(Info.PortraitTurnInName.size(), 8);
|
||||
_worldPacket.WriteBits(Info.QuestCompletionLog.size(), 11);
|
||||
_worldPacket.WriteBit(Info.ReadyForTranslation);
|
||||
_worldPacket << BitsSize<9>(Info.LogTitle);
|
||||
_worldPacket << BitsSize<12>(Info.LogDescription);
|
||||
_worldPacket << BitsSize<12>(Info.QuestDescription);
|
||||
_worldPacket << BitsSize<9>(Info.AreaDescription);
|
||||
_worldPacket << BitsSize<10>(Info.PortraitGiverText);
|
||||
_worldPacket << BitsSize<8>(Info.PortraitGiverName);
|
||||
_worldPacket << BitsSize<10>(Info.PortraitTurnInText);
|
||||
_worldPacket << BitsSize<8>(Info.PortraitTurnInName);
|
||||
_worldPacket << BitsSize<11>(Info.QuestCompletionLog);
|
||||
_worldPacket << Bits<1>(Info.ReadyForTranslation);
|
||||
_worldPacket.FlushBits();
|
||||
|
||||
for (QuestObjective const& questObjective : Info.Objectives)
|
||||
@@ -221,7 +221,7 @@ WorldPacket const* QueryQuestInfoResponse::Write()
|
||||
for (int32 visualEffect : questObjective.VisualEffects)
|
||||
_worldPacket << int32(visualEffect);
|
||||
|
||||
_worldPacket.WriteBits(questObjective.Description.size(), 8);
|
||||
_worldPacket << BitsSize<8>(questObjective.Description);
|
||||
_worldPacket.FlushBits();
|
||||
|
||||
_worldPacket.WriteString(questObjective.Description);
|
||||
@@ -278,7 +278,7 @@ WorldPacket const* QuestUpdateAddPvPCredit::Write()
|
||||
|
||||
ByteBuffer& operator<<(ByteBuffer& data, QuestChoiceItem const& questChoiceItem)
|
||||
{
|
||||
data.WriteBits(AsUnderlyingType(questChoiceItem.LootItemType), 2);
|
||||
data << Bits<2>(questChoiceItem.LootItemType);
|
||||
data << questChoiceItem.Item;
|
||||
data << int32(questChoiceItem.Quantity);
|
||||
|
||||
@@ -288,7 +288,7 @@ ByteBuffer& operator<<(ByteBuffer& data, QuestChoiceItem const& questChoiceItem)
|
||||
ByteBuffer& operator>>(ByteBuffer& data, QuestChoiceItem& questChoiceItem)
|
||||
{
|
||||
data.ResetBitPos();
|
||||
questChoiceItem.LootItemType = LootItemType(data.ReadBits(2));
|
||||
data >> Bits<2>(questChoiceItem.LootItemType);
|
||||
data >> questChoiceItem.Item;
|
||||
data >> questChoiceItem.Quantity;
|
||||
|
||||
@@ -339,7 +339,7 @@ ByteBuffer& operator<<(ByteBuffer& data, QuestRewards const& questRewards)
|
||||
for (QuestChoiceItem const& choiceItem : questRewards.ChoiceItems)
|
||||
data << choiceItem;
|
||||
|
||||
data.WriteBit(questRewards.IsBoostSpell);
|
||||
data << Bits<1>(questRewards.IsBoostSpell);
|
||||
data.FlushBits();
|
||||
|
||||
return data;
|
||||
@@ -361,8 +361,8 @@ ByteBuffer& operator<<(ByteBuffer& data, QuestGiverOfferReward const& offer)
|
||||
data << uint32(emote.Delay);
|
||||
}
|
||||
|
||||
data.WriteBit(offer.AutoLaunched);
|
||||
data.WriteBit(false); // Unused
|
||||
data << Bits<1>(offer.AutoLaunched);
|
||||
data << Bits<1>(false); // Unused
|
||||
data.FlushBits();
|
||||
|
||||
data << offer.Rewards; // QuestRewards
|
||||
@@ -381,12 +381,12 @@ WorldPacket const* QuestGiverOfferRewardMessage::Write()
|
||||
_worldPacket << int32(QuestGiverCreatureID);
|
||||
_worldPacket << uint32(ConditionalRewardText.size());
|
||||
|
||||
_worldPacket.WriteBits(QuestTitle.size(), 9);
|
||||
_worldPacket.WriteBits(RewardText.size(), 12);
|
||||
_worldPacket.WriteBits(PortraitGiverText.size(), 10);
|
||||
_worldPacket.WriteBits(PortraitGiverName.size(), 8);
|
||||
_worldPacket.WriteBits(PortraitTurnInText.size(), 10);
|
||||
_worldPacket.WriteBits(PortraitTurnInName.size(), 8);
|
||||
_worldPacket << BitsSize<9>(QuestTitle);
|
||||
_worldPacket << BitsSize<12>(RewardText);
|
||||
_worldPacket << BitsSize<10>(PortraitGiverText);
|
||||
_worldPacket << BitsSize<8>(PortraitGiverName);
|
||||
_worldPacket << BitsSize<10>(PortraitTurnInText);
|
||||
_worldPacket << BitsSize<8>(PortraitTurnInName);
|
||||
_worldPacket.FlushBits();
|
||||
|
||||
for (ConditionalQuestText const& conditionalQuestText : ConditionalRewardText)
|
||||
@@ -477,18 +477,18 @@ WorldPacket const* QuestGiverQuestDetails::Write()
|
||||
_worldPacket << uint8(obj.Type);
|
||||
}
|
||||
|
||||
_worldPacket.WriteBits(QuestTitle.size(), 9);
|
||||
_worldPacket.WriteBits(DescriptionText.size(), 12);
|
||||
_worldPacket.WriteBits(LogDescription.size(), 12);
|
||||
_worldPacket.WriteBits(PortraitGiverText.size(), 10);
|
||||
_worldPacket.WriteBits(PortraitGiverName.size(), 8);
|
||||
_worldPacket.WriteBits(PortraitTurnInText.size(), 10);
|
||||
_worldPacket.WriteBits(PortraitTurnInName.size(), 8);
|
||||
_worldPacket.WriteBit(AutoLaunched);
|
||||
_worldPacket.WriteBit(FromContentPush);
|
||||
_worldPacket.WriteBit(false); // unused in client
|
||||
_worldPacket.WriteBit(StartCheat);
|
||||
_worldPacket.WriteBit(DisplayPopup);
|
||||
_worldPacket << BitsSize<9>(QuestTitle);
|
||||
_worldPacket << BitsSize<12>(DescriptionText);
|
||||
_worldPacket << BitsSize<12>(LogDescription);
|
||||
_worldPacket << BitsSize<10>(PortraitGiverText);
|
||||
_worldPacket << BitsSize<8>(PortraitGiverName);
|
||||
_worldPacket << BitsSize<10>(PortraitTurnInText);
|
||||
_worldPacket << BitsSize<8>(PortraitTurnInName);
|
||||
_worldPacket << Bits<1>(AutoLaunched);
|
||||
_worldPacket << Bits<1>(FromContentPush);
|
||||
_worldPacket << Bits<1>(false); // unused in client
|
||||
_worldPacket << Bits<1>(StartCheat);
|
||||
_worldPacket << Bits<1>(DisplayPopup);
|
||||
_worldPacket.FlushBits();
|
||||
|
||||
_worldPacket << Rewards; // QuestRewards
|
||||
@@ -535,14 +535,14 @@ WorldPacket const* QuestGiverRequestItems::Write()
|
||||
_worldPacket << int32(cur.Amount);
|
||||
}
|
||||
|
||||
_worldPacket.WriteBit(AutoLaunched);
|
||||
_worldPacket << Bits<1>(AutoLaunched);
|
||||
_worldPacket.FlushBits();
|
||||
|
||||
_worldPacket << int32(QuestGiverCreatureID);
|
||||
_worldPacket << uint32(ConditionalCompletionText.size());
|
||||
|
||||
_worldPacket.WriteBits(QuestTitle.size(), 9);
|
||||
_worldPacket.WriteBits(CompletionText.size(), 12);
|
||||
_worldPacket << BitsSize<9>(QuestTitle);
|
||||
_worldPacket << BitsSize<12>(CompletionText);
|
||||
_worldPacket.FlushBits();
|
||||
|
||||
for (ConditionalQuestText const& conditionalQuestText : ConditionalCompletionText)
|
||||
|
||||
@@ -280,7 +280,7 @@ namespace WorldPackets
|
||||
int32 SkillLineID = 0;
|
||||
int32 NumSkillUps = 0;
|
||||
int32 TreasurePickerID = 0;
|
||||
std::array<QuestChoiceItem, QUEST_REWARD_CHOICES_COUNT> ChoiceItems;
|
||||
std::array<QuestChoiceItem, QUEST_REWARD_CHOICES_COUNT> ChoiceItems = { };
|
||||
std::array<int32, QUEST_REWARD_ITEM_COUNT> ItemID = { };
|
||||
std::array<int32, QUEST_REWARD_ITEM_COUNT> ItemQty = { };
|
||||
std::array<int32, QUEST_REWARD_REPUTATIONS_COUNT> FactionID = { };
|
||||
@@ -302,13 +302,13 @@ namespace WorldPackets
|
||||
struct QuestGiverOfferReward
|
||||
{
|
||||
ObjectGuid QuestGiverGUID;
|
||||
int32 QuestGiverCreatureID = 0;
|
||||
int32 QuestID = 0;
|
||||
bool AutoLaunched = false;
|
||||
int32 SuggestedPartyMembers = 0;
|
||||
int32 QuestGiverCreatureID = 0;
|
||||
int32 QuestID = 0;
|
||||
bool AutoLaunched = false;
|
||||
int32 SuggestedPartyMembers = 0;
|
||||
QuestRewards Rewards;
|
||||
std::vector<QuestDescEmote> Emotes;
|
||||
int32 QuestFlags[3] = { }; // Flags and FlagsEx
|
||||
std::array<int32, 3> QuestFlags = { };
|
||||
};
|
||||
|
||||
class QuestGiverOfferRewardMessage final : public ServerPacket
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
*/
|
||||
|
||||
#include "ReputationPackets.h"
|
||||
#include "PacketUtilities.h"
|
||||
|
||||
WorldPacket const* WorldPackets::Reputation::InitializeFactions::Write()
|
||||
{
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
*/
|
||||
|
||||
#include "ScenePackets.h"
|
||||
#include "PacketUtilities.h"
|
||||
|
||||
WorldPacket const* WorldPackets::Scenes::PlayScene::Write()
|
||||
{
|
||||
@@ -24,8 +25,8 @@ WorldPacket const* WorldPackets::Scenes::PlayScene::Write()
|
||||
_worldPacket << uint32(SceneInstanceID);
|
||||
_worldPacket << int32(SceneScriptPackageID);
|
||||
_worldPacket << TransportGUID;
|
||||
_worldPacket << Location.PositionXYZOStream();
|
||||
_worldPacket.WriteBit(Encrypted);
|
||||
_worldPacket << Location;
|
||||
_worldPacket << Bits<1>(Encrypted);
|
||||
_worldPacket.FlushBits();
|
||||
|
||||
return &_worldPacket;
|
||||
|
||||
@@ -18,8 +18,9 @@
|
||||
#ifndef ScenePackets_h__
|
||||
#define ScenePackets_h__
|
||||
|
||||
#include "ObjectGuid.h"
|
||||
#include "Packet.h"
|
||||
#include "Object.h"
|
||||
#include "Position.h"
|
||||
|
||||
namespace WorldPackets
|
||||
{
|
||||
@@ -37,7 +38,7 @@ namespace WorldPackets
|
||||
uint32 SceneInstanceID = 0;
|
||||
int32 SceneScriptPackageID = 0;
|
||||
ObjectGuid TransportGUID;
|
||||
Position Location;
|
||||
TaggedPosition<Position::XYZO> Location;
|
||||
bool Encrypted = false;
|
||||
};
|
||||
|
||||
|
||||
@@ -94,13 +94,13 @@ ByteBuffer& operator<<(ByteBuffer& data, AuraDataInfo const& auraData)
|
||||
data << uint16(auraData.CastLevel);
|
||||
data << uint8(auraData.Applications);
|
||||
data << int32(auraData.ContentTuningID);
|
||||
data.WriteBit(auraData.CastUnit.has_value());
|
||||
data.WriteBit(auraData.Duration.has_value());
|
||||
data.WriteBit(auraData.Remaining.has_value());
|
||||
data.WriteBit(auraData.TimeMod.has_value());
|
||||
data.WriteBits(auraData.Points.size(), 6);
|
||||
data.WriteBits(auraData.EstimatedPoints.size(), 6);
|
||||
data.WriteBit(auraData.ContentTuning.has_value());
|
||||
data << OptionalInit(auraData.CastUnit);
|
||||
data << OptionalInit(auraData.Duration);
|
||||
data << OptionalInit(auraData.Remaining);
|
||||
data << OptionalInit(auraData.TimeMod);
|
||||
data << BitsSize<6>(auraData.Points);
|
||||
data << BitsSize<6>(auraData.EstimatedPoints);
|
||||
data << OptionalInit(auraData.ContentTuning);
|
||||
|
||||
if (auraData.ContentTuning)
|
||||
data << *auraData.ContentTuning;
|
||||
@@ -129,7 +129,7 @@ ByteBuffer& operator<<(ByteBuffer& data, AuraDataInfo const& auraData)
|
||||
ByteBuffer& operator<<(ByteBuffer& data, AuraInfo const& aura)
|
||||
{
|
||||
data << aura.Slot;
|
||||
data.WriteBit(aura.AuraData.has_value());
|
||||
data << OptionalInit(aura.AuraData);
|
||||
data.FlushBits();
|
||||
|
||||
if (aura.AuraData)
|
||||
@@ -141,7 +141,7 @@ ByteBuffer& operator<<(ByteBuffer& data, AuraInfo const& aura)
|
||||
WorldPacket const* AuraUpdate::Write()
|
||||
{
|
||||
_worldPacket.WriteBit(UpdateAll);
|
||||
_worldPacket.WriteBits(Auras.size(), 9);
|
||||
_worldPacket << BitsSize<9>(Auras);
|
||||
for (AuraInfo const& aura : Auras)
|
||||
_worldPacket << aura;
|
||||
|
||||
|
||||
@@ -30,10 +30,10 @@ ByteBuffer& operator<<(ByteBuffer& data, SavedThrottleObjectState const& throttl
|
||||
|
||||
ByteBuffer& operator<<(ByteBuffer& data, EuropaTicketConfig const& europaTicketSystemStatus)
|
||||
{
|
||||
data.WriteBit(europaTicketSystemStatus.TicketsEnabled);
|
||||
data.WriteBit(europaTicketSystemStatus.BugsEnabled);
|
||||
data.WriteBit(europaTicketSystemStatus.ComplaintsEnabled);
|
||||
data.WriteBit(europaTicketSystemStatus.SuggestionsEnabled);
|
||||
data << Bits<1>(europaTicketSystemStatus.TicketsEnabled);
|
||||
data << Bits<1>(europaTicketSystemStatus.BugsEnabled);
|
||||
data << Bits<1>(europaTicketSystemStatus.ComplaintsEnabled);
|
||||
data << Bits<1>(europaTicketSystemStatus.SuggestionsEnabled);
|
||||
|
||||
data << europaTicketSystemStatus.ThrottleState;
|
||||
|
||||
@@ -50,7 +50,7 @@ ByteBuffer& operator<<(ByteBuffer& data, GameRuleValuePair const& gameRuleValue)
|
||||
ByteBuffer& operator<<(ByteBuffer& data, DebugTimeEventInfo const& debugTimeEventInfo)
|
||||
{
|
||||
data << uint32(debugTimeEventInfo.TimeEvent);
|
||||
data.WriteBits(debugTimeEventInfo.Text.length(), 7);
|
||||
data << BitsSize<7>(debugTimeEventInfo.Text);
|
||||
data.FlushBits();
|
||||
|
||||
data.WriteString(debugTimeEventInfo.Text);
|
||||
@@ -94,59 +94,59 @@ WorldPacket const* FeatureSystemStatus::Write()
|
||||
for (GameRuleValuePair const& gameRuleValue : GameRuleValues)
|
||||
_worldPacket << gameRuleValue;
|
||||
|
||||
_worldPacket.WriteBit(VoiceEnabled);
|
||||
_worldPacket.WriteBit(EuropaTicketSystemStatus.has_value());
|
||||
_worldPacket.WriteBit(BpayStoreEnabled);
|
||||
_worldPacket.WriteBit(BpayStoreAvailable);
|
||||
_worldPacket.WriteBit(BpayStoreDisabledByParentalControls);
|
||||
_worldPacket.WriteBit(ItemRestorationButtonEnabled);
|
||||
_worldPacket.WriteBit(BrowserEnabled);
|
||||
_worldPacket.WriteBit(SessionAlert.has_value());
|
||||
_worldPacket << Bits<1>(VoiceEnabled);
|
||||
_worldPacket << OptionalInit(EuropaTicketSystemStatus);
|
||||
_worldPacket << Bits<1>(BpayStoreEnabled);
|
||||
_worldPacket << Bits<1>(BpayStoreAvailable);
|
||||
_worldPacket << Bits<1>(BpayStoreDisabledByParentalControls);
|
||||
_worldPacket << Bits<1>(ItemRestorationButtonEnabled);
|
||||
_worldPacket << Bits<1>(BrowserEnabled);
|
||||
_worldPacket << OptionalInit(SessionAlert);
|
||||
|
||||
_worldPacket.WriteBit(RAFSystem.Enabled);
|
||||
_worldPacket.WriteBit(RAFSystem.RecruitingEnabled);
|
||||
_worldPacket.WriteBit(CharUndeleteEnabled);
|
||||
_worldPacket.WriteBit(RestrictedAccount);
|
||||
_worldPacket.WriteBit(CommerceSystemEnabled);
|
||||
_worldPacket.WriteBit(TutorialsEnabled);
|
||||
_worldPacket.WriteBit(Unk67);
|
||||
_worldPacket.WriteBit(WillKickFromWorld);
|
||||
_worldPacket << Bits<1>(RAFSystem.Enabled);
|
||||
_worldPacket << Bits<1>(RAFSystem.RecruitingEnabled);
|
||||
_worldPacket << Bits<1>(CharUndeleteEnabled);
|
||||
_worldPacket << Bits<1>(RestrictedAccount);
|
||||
_worldPacket << Bits<1>(CommerceSystemEnabled);
|
||||
_worldPacket << Bits<1>(TutorialsEnabled);
|
||||
_worldPacket << Bits<1>(Unk67);
|
||||
_worldPacket << Bits<1>(WillKickFromWorld);
|
||||
|
||||
_worldPacket.WriteBit(KioskModeEnabled);
|
||||
_worldPacket.WriteBit(CompetitiveModeEnabled);
|
||||
_worldPacket.WriteBit(TokenBalanceEnabled);
|
||||
_worldPacket.WriteBit(WarModeFeatureEnabled);
|
||||
_worldPacket.WriteBit(ClubsEnabled);
|
||||
_worldPacket.WriteBit(ClubsBattleNetClubTypeAllowed);
|
||||
_worldPacket.WriteBit(ClubsCharacterClubTypeAllowed);
|
||||
_worldPacket.WriteBit(ClubsPresenceUpdateEnabled);
|
||||
_worldPacket << Bits<1>(KioskModeEnabled);
|
||||
_worldPacket << Bits<1>(CompetitiveModeEnabled);
|
||||
_worldPacket << Bits<1>(TokenBalanceEnabled);
|
||||
_worldPacket << Bits<1>(WarModeFeatureEnabled);
|
||||
_worldPacket << Bits<1>(ClubsEnabled);
|
||||
_worldPacket << Bits<1>(ClubsBattleNetClubTypeAllowed);
|
||||
_worldPacket << Bits<1>(ClubsCharacterClubTypeAllowed);
|
||||
_worldPacket << Bits<1>(ClubsPresenceUpdateEnabled);
|
||||
|
||||
_worldPacket.WriteBit(VoiceChatDisabledByParentalControl);
|
||||
_worldPacket.WriteBit(VoiceChatMutedByParentalControl);
|
||||
_worldPacket.WriteBit(QuestSessionEnabled);
|
||||
_worldPacket.WriteBit(IsMuted);
|
||||
_worldPacket.WriteBit(ClubFinderEnabled);
|
||||
_worldPacket.WriteBit(CommunityFinderEnabled);
|
||||
_worldPacket.WriteBit(Unknown901CheckoutRelated);
|
||||
_worldPacket.WriteBit(TextToSpeechFeatureEnabled);
|
||||
_worldPacket << Bits<1>(VoiceChatDisabledByParentalControl);
|
||||
_worldPacket << Bits<1>(VoiceChatMutedByParentalControl);
|
||||
_worldPacket << Bits<1>(QuestSessionEnabled);
|
||||
_worldPacket << Bits<1>(IsMuted);
|
||||
_worldPacket << Bits<1>(ClubFinderEnabled);
|
||||
_worldPacket << Bits<1>(CommunityFinderEnabled);
|
||||
_worldPacket << Bits<1>(Unknown901CheckoutRelated);
|
||||
_worldPacket << Bits<1>(TextToSpeechFeatureEnabled);
|
||||
|
||||
_worldPacket.WriteBit(ChatDisabledByDefault);
|
||||
_worldPacket.WriteBit(ChatDisabledByPlayer);
|
||||
_worldPacket.WriteBit(LFGListCustomRequiresAuthenticator);
|
||||
_worldPacket.WriteBit(AddonsDisabled);
|
||||
_worldPacket.WriteBit(WarGamesEnabled);
|
||||
_worldPacket.WriteBit(ContentTrackingEnabled);
|
||||
_worldPacket.WriteBit(IsSellAllJunkEnabled);
|
||||
_worldPacket.WriteBit(IsGroupFinderEnabled);
|
||||
_worldPacket << Bits<1>(ChatDisabledByDefault);
|
||||
_worldPacket << Bits<1>(ChatDisabledByPlayer);
|
||||
_worldPacket << Bits<1>(LFGListCustomRequiresAuthenticator);
|
||||
_worldPacket << Bits<1>(AddonsDisabled);
|
||||
_worldPacket << Bits<1>(WarGamesEnabled);
|
||||
_worldPacket << Bits<1>(ContentTrackingEnabled);
|
||||
_worldPacket << Bits<1>(IsSellAllJunkEnabled);
|
||||
_worldPacket << Bits<1>(IsGroupFinderEnabled);
|
||||
|
||||
_worldPacket.WriteBit(IsLFDEnabled);
|
||||
_worldPacket.WriteBit(IsLFREnabled);
|
||||
_worldPacket.WriteBit(IsPremadeGroupEnabled);
|
||||
_worldPacket.WriteBit(CanShowSetRoleButton);
|
||||
_worldPacket.WriteBit(false); // unused 10.2.7
|
||||
_worldPacket.WriteBit(false); // unused 10.2.7
|
||||
_worldPacket << Bits<1>(IsLFDEnabled);
|
||||
_worldPacket << Bits<1>(IsLFREnabled);
|
||||
_worldPacket << Bits<1>(IsPremadeGroupEnabled);
|
||||
_worldPacket << Bits<1>(CanShowSetRoleButton);
|
||||
_worldPacket << Bits<1>(false); // unused 10.2.7
|
||||
_worldPacket << Bits<1>(false); // unused 10.2.7
|
||||
|
||||
_worldPacket.WriteBits(Unknown1027.length(), 7);
|
||||
_worldPacket << BitsSize<7>(Unknown1027);
|
||||
|
||||
_worldPacket.FlushBits();
|
||||
|
||||
@@ -186,7 +186,7 @@ WorldPacket const* FeatureSystemStatus::Write()
|
||||
_worldPacket.WriteString(Unknown1027);
|
||||
|
||||
{
|
||||
_worldPacket.WriteBit(Squelch.IsSquelched);
|
||||
_worldPacket << Bits<1>(Squelch.IsSquelched);
|
||||
_worldPacket << Squelch.BnetAccountGuid;
|
||||
_worldPacket << Squelch.GuildGuid;
|
||||
}
|
||||
@@ -199,38 +199,38 @@ WorldPacket const* FeatureSystemStatus::Write()
|
||||
|
||||
WorldPacket const* FeatureSystemStatusGlueScreen::Write()
|
||||
{
|
||||
_worldPacket.WriteBit(BpayStoreEnabled);
|
||||
_worldPacket.WriteBit(BpayStoreAvailable);
|
||||
_worldPacket.WriteBit(BpayStoreDisabledByParentalControls);
|
||||
_worldPacket.WriteBit(CharUndeleteEnabled);
|
||||
_worldPacket.WriteBit(CommerceSystemEnabled);
|
||||
_worldPacket.WriteBit(Unk14);
|
||||
_worldPacket.WriteBit(WillKickFromWorld);
|
||||
_worldPacket.WriteBit(IsExpansionPreorderInStore);
|
||||
_worldPacket << Bits<1>(BpayStoreEnabled);
|
||||
_worldPacket << Bits<1>(BpayStoreAvailable);
|
||||
_worldPacket << Bits<1>(BpayStoreDisabledByParentalControls);
|
||||
_worldPacket << Bits<1>(CharUndeleteEnabled);
|
||||
_worldPacket << Bits<1>(CommerceSystemEnabled);
|
||||
_worldPacket << Bits<1>(Unk14);
|
||||
_worldPacket << Bits<1>(WillKickFromWorld);
|
||||
_worldPacket << Bits<1>(IsExpansionPreorderInStore);
|
||||
|
||||
_worldPacket.WriteBit(KioskModeEnabled);
|
||||
_worldPacket.WriteBit(CompetitiveModeEnabled);
|
||||
_worldPacket.WriteBit(IsBoostEnabled);
|
||||
_worldPacket.WriteBit(TrialBoostEnabled);
|
||||
_worldPacket.WriteBit(TokenBalanceEnabled);
|
||||
_worldPacket.WriteBit(LiveRegionCharacterListEnabled);
|
||||
_worldPacket.WriteBit(LiveRegionCharacterCopyEnabled);
|
||||
_worldPacket.WriteBit(LiveRegionAccountCopyEnabled);
|
||||
_worldPacket << Bits<1>(KioskModeEnabled);
|
||||
_worldPacket << Bits<1>(CompetitiveModeEnabled);
|
||||
_worldPacket << Bits<1>(IsBoostEnabled);
|
||||
_worldPacket << Bits<1>(TrialBoostEnabled);
|
||||
_worldPacket << Bits<1>(TokenBalanceEnabled);
|
||||
_worldPacket << Bits<1>(LiveRegionCharacterListEnabled);
|
||||
_worldPacket << Bits<1>(LiveRegionCharacterCopyEnabled);
|
||||
_worldPacket << Bits<1>(LiveRegionAccountCopyEnabled);
|
||||
|
||||
_worldPacket.WriteBit(LiveRegionKeyBindingsCopyEnabled);
|
||||
_worldPacket.WriteBit(Unknown901CheckoutRelated);
|
||||
_worldPacket.WriteBit(false); // unused, 10.0.2
|
||||
_worldPacket.WriteBit(EuropaTicketSystemStatus.has_value());
|
||||
_worldPacket.WriteBit(IsNameReservationEnabled);
|
||||
_worldPacket.WriteBit(LaunchETA.has_value());
|
||||
_worldPacket.WriteBit(TimerunningEnabled);
|
||||
_worldPacket.WriteBit(AddonsDisabled);
|
||||
_worldPacket << Bits<1>(LiveRegionKeyBindingsCopyEnabled);
|
||||
_worldPacket << Bits<1>(Unknown901CheckoutRelated);
|
||||
_worldPacket << Bits<1>(false); // unused, 10.0.2
|
||||
_worldPacket << OptionalInit(EuropaTicketSystemStatus);
|
||||
_worldPacket << Bits<1>(IsNameReservationEnabled);
|
||||
_worldPacket << OptionalInit(LaunchETA);
|
||||
_worldPacket << Bits<1>(TimerunningEnabled);
|
||||
_worldPacket << Bits<1>(AddonsDisabled);
|
||||
|
||||
_worldPacket.WriteBit(Unused1000);
|
||||
_worldPacket.WriteBit(AccountSaveDataExportEnabled);
|
||||
_worldPacket.WriteBit(AccountLockedByExport);
|
||||
_worldPacket << Bits<1>(Unused1000);
|
||||
_worldPacket << Bits<1>(AccountSaveDataExportEnabled);
|
||||
_worldPacket << Bits<1>(AccountLockedByExport);
|
||||
|
||||
_worldPacket.WriteBits(RealmHiddenAlert.length() + 1, 11);
|
||||
_worldPacket << Bits<11>(RealmHiddenAlert.length() + 1);
|
||||
|
||||
_worldPacket.FlushBits();
|
||||
|
||||
@@ -278,9 +278,9 @@ WorldPacket const* FeatureSystemStatusGlueScreen::Write()
|
||||
|
||||
WorldPacket const* SetTimeZoneInformation::Write()
|
||||
{
|
||||
_worldPacket.WriteBits(ServerTimeTZ.length(), 7);
|
||||
_worldPacket.WriteBits(GameTimeTZ.length(), 7);
|
||||
_worldPacket.WriteBits(ServerRegionalTZ.length(), 7);
|
||||
_worldPacket << BitsSize<7>(ServerTimeTZ);
|
||||
_worldPacket << BitsSize<7>(GameTimeTZ);
|
||||
_worldPacket << BitsSize<7>(ServerRegionalTZ);
|
||||
_worldPacket.FlushBits();
|
||||
|
||||
_worldPacket.WriteString(ServerTimeTZ);
|
||||
|
||||
@@ -152,7 +152,6 @@ namespace WorldPackets
|
||||
|
||||
struct UnwrappedTradeItem
|
||||
{
|
||||
WorldPackets::Item::ItemInstance Item;
|
||||
int32 EnchantID = 0;
|
||||
int32 OnUseEnchantmentID = 0;
|
||||
ObjectGuid Creator;
|
||||
|
||||
@@ -5191,7 +5191,7 @@ SpellLogEffect& Spell::GetExecuteLogEffect(SpellEffectName effect)
|
||||
return _executeLogEffects.back();
|
||||
}
|
||||
|
||||
void Spell::ExecuteLogEffectTakeTargetPower(SpellEffectName effect, Unit* target, uint32 powerType, uint32 points, float amplitude)
|
||||
void Spell::ExecuteLogEffectTakeTargetPower(SpellEffectName effect, Unit* target, Powers powerType, uint32 points, float amplitude)
|
||||
{
|
||||
SpellLogEffectPowerDrainParams spellLogEffectPowerDrainParams;
|
||||
|
||||
|
||||
@@ -176,7 +176,7 @@ struct SpellLogEffectPowerDrainParams
|
||||
{
|
||||
ObjectGuid Victim;
|
||||
uint32 Points = 0;
|
||||
uint32 PowerType = 0;
|
||||
Powers PowerType = POWER_MANA;
|
||||
float Amplitude = 0;
|
||||
};
|
||||
|
||||
@@ -549,7 +549,7 @@ class TC_GAME_API Spell
|
||||
|
||||
return *opt;
|
||||
}
|
||||
void ExecuteLogEffectTakeTargetPower(SpellEffectName effect, Unit* target, uint32 powerType, uint32 points, float amplitude);
|
||||
void ExecuteLogEffectTakeTargetPower(SpellEffectName effect, Unit* target, Powers powerType, uint32 points, float amplitude);
|
||||
void ExecuteLogEffectExtraAttacks(SpellEffectName effect, Unit* victim, uint32 numAttacks);
|
||||
void ExecuteLogEffectDurabilityDamage(SpellEffectName effect, Unit* victim, int32 itemId, int32 amount);
|
||||
void ExecuteLogEffectOpenLock(SpellEffectName effect, Object* obj);
|
||||
|
||||
Reference in New Issue
Block a user