Core/Misc: Replace boost::optional with std::optional part 2

This commit is contained in:
Shauren
2022-01-23 20:31:52 +01:00
parent 770fbcca0c
commit 596bf2b772
77 changed files with 498 additions and 501 deletions
+2 -4
View File
@@ -492,7 +492,7 @@ void BattlePetMgr::ClearFanfare(ObjectGuid guid)
pet->SaveInfo = BATTLE_PET_CHANGED;
}
void BattlePetMgr::ModifyName(ObjectGuid guid, std::string const& name, DeclinedName* declinedName)
void BattlePetMgr::ModifyName(ObjectGuid guid, std::string const& name, std::unique_ptr<DeclinedName> declinedName)
{
if (!HasJournalLock())
return;
@@ -504,9 +504,7 @@ void BattlePetMgr::ModifyName(ObjectGuid guid, std::string const& name, Declined
pet->PacketInfo.Name = name;
pet->NameTimestamp = GameTime::GetGameTime();
pet->DeclinedName.reset();
if (declinedName)
pet->DeclinedName = std::make_unique<DeclinedName>(*declinedName);
pet->DeclinedName = std::move(declinedName);
if (pet->SaveInfo != BATTLE_PET_NEW)
pet->SaveInfo = BATTLE_PET_CHANGED;
+1 -1
View File
@@ -162,7 +162,7 @@ public:
void AddPet(uint32 species, uint32 display, uint16 breed, BattlePetBreedQuality quality, uint16 level = 1);
void RemovePet(ObjectGuid guid);
void ClearFanfare(ObjectGuid guid);
void ModifyName(ObjectGuid guid, std::string const& name, DeclinedName* declinedName);
void ModifyName(ObjectGuid guid, std::string const& name, std::unique_ptr<DeclinedName> declinedName);
bool IsPetInSlot(ObjectGuid guid);
uint8 GetPetCount(BattlePetSpeciesEntry const* battlePetSpecies, ObjectGuid ownerGuid) const;
+1 -1
View File
@@ -101,7 +101,7 @@ void Arena::BuildPvPLogDataPacket(WorldPackets::Battleground::PVPMatchStatistics
if (isRated())
{
pvpLogData.Ratings = boost::in_place();
pvpLogData.Ratings.emplace();
for (uint8 i = 0; i < PVP_TEAMS_COUNT; ++i)
{
@@ -63,7 +63,7 @@ void BattlegroundScore::BuildPvPLogPlayerDataPacket(WorldPackets::Battleground::
playerData.Faction = TeamId;
if (HonorableKills || Deaths || BonusHonor)
{
playerData.Honor = boost::in_place();
playerData.Honor.emplace();
playerData.Honor->HonorKills = HonorableKills;
playerData.Honor->Deaths = Deaths;
playerData.Honor->ContributionPoints = BonusHonor;
@@ -375,7 +375,7 @@ bool BlackMarketTemplate::LoadFromDB(Field* fields)
if (!bonusListIDs.empty())
{
Item.ItemBonus = boost::in_place();
Item.ItemBonus.emplace();
Item.ItemBonus->BonusListIDs = bonusListIDs;
}
@@ -777,7 +777,7 @@ void AreaTrigger::InitSplines(std::vector<G3D::Vector3> splinePoints, uint32 tim
WorldPackets::AreaTrigger::AreaTriggerRePath reshape;
reshape.TriggerGUID = GetGUID();
reshape.AreaTriggerSpline = boost::in_place();
reshape.AreaTriggerSpline.emplace();
reshape.AreaTriggerSpline->ElapsedTimeForMovement = GetElapsedTimeForMovement();
reshape.AreaTriggerSpline->TimeToTarget = timeToTarget;
for (G3D::Vector3 const& vec : splinePoints)
@@ -797,7 +797,7 @@ bool AreaTrigger::HasSplines() const
void AreaTrigger::InitOrbit(AreaTriggerOrbitInfo const& orbit, uint32 timeToTarget)
{
// Circular movement requires either a center position or an attached unit
ASSERT(orbit.Center.is_initialized() || orbit.PathTarget.is_initialized());
ASSERT(orbit.Center.has_value() || orbit.PathTarget.has_value());
// should be sent in object create packets only
DoWithSuppressingObjectUpdates([&]()
@@ -823,19 +823,19 @@ void AreaTrigger::InitOrbit(AreaTriggerOrbitInfo const& orbit, uint32 timeToTarg
bool AreaTrigger::HasOrbit() const
{
return _orbitInfo.is_initialized();
return _orbitInfo.has_value();
}
Position const* AreaTrigger::GetOrbitCenterPosition() const
{
if (!_orbitInfo.is_initialized())
if (!_orbitInfo)
return nullptr;
if (_orbitInfo->PathTarget.is_initialized())
if (_orbitInfo->PathTarget)
if (WorldObject* center = ObjectAccessor::GetWorldObject(*this, *_orbitInfo->PathTarget))
return center;
if (_orbitInfo->Center.is_initialized())
if (_orbitInfo->Center)
return &_orbitInfo->Center->Pos;
return nullptr;
+5 -5
View File
@@ -316,7 +316,7 @@ void ItemAdditionalLoadInfo::Init(std::unordered_map<ObjectGuid::LowType, ItemAd
Field* fields = artifactResult->Fetch();
ItemAdditionalLoadInfo& info = (*loadInfo)[fields[0].GetUInt64()];
if (!info.Artifact)
info.Artifact = boost::in_place();
info.Artifact.emplace();
info.Artifact->Xp = fields[1].GetUInt64();
info.Artifact->ArtifactAppearanceId = fields[2].GetUInt32();
info.Artifact->ArtifactTierId = fields[3].GetUInt32();
@@ -359,7 +359,7 @@ void ItemAdditionalLoadInfo::Init(std::unordered_map<ObjectGuid::LowType, ItemAd
Field* fields = azeriteItemResult->Fetch();
ItemAdditionalLoadInfo& info = (*loadInfo)[fields[0].GetUInt64()];
if (!info.AzeriteItem)
info.AzeriteItem = boost::in_place();
info.AzeriteItem.emplace();
info.AzeriteItem->Xp = fields[1].GetUInt64();
info.AzeriteItem->Level = fields[2].GetUInt32();
info.AzeriteItem->KnowledgeLevel = fields[3].GetUInt32();
@@ -392,7 +392,7 @@ void ItemAdditionalLoadInfo::Init(std::unordered_map<ObjectGuid::LowType, ItemAd
Field* fields = azeriteItemMilestonePowersResult->Fetch();
ItemAdditionalLoadInfo& info = (*loadInfo)[fields[0].GetUInt64()];
if (!info.AzeriteItem)
info.AzeriteItem = boost::in_place();
info.AzeriteItem.emplace();
info.AzeriteItem->AzeriteItemMilestonePowers.push_back(fields[1].GetUInt32());
}
while (azeriteItemMilestonePowersResult->NextRow());
@@ -409,7 +409,7 @@ void ItemAdditionalLoadInfo::Init(std::unordered_map<ObjectGuid::LowType, ItemAd
{
ItemAdditionalLoadInfo& info = (*loadInfo)[fields[0].GetUInt64()];
if (!info.AzeriteItem)
info.AzeriteItem = boost::in_place();
info.AzeriteItem.emplace();
info.AzeriteItem->UnlockedAzeriteEssences.push_back(azeriteEssencePower);
}
@@ -426,7 +426,7 @@ void ItemAdditionalLoadInfo::Init(std::unordered_map<ObjectGuid::LowType, ItemAd
Field* fields = azeriteEmpoweredItemResult->Fetch();
ItemAdditionalLoadInfo& info = (*loadInfo)[fields[0].GetUInt64()];
if (!info.AzeriteEmpoweredItem)
info.AzeriteEmpoweredItem = boost::in_place();
info.AzeriteEmpoweredItem.emplace();
for (uint32 i = 0; i < MAX_AZERITE_EMPOWERED_TIER; ++i)
if (sAzeritePowerStore.LookupEntry(fields[1 + i].GetInt32()))
@@ -238,7 +238,7 @@ namespace UF
private:
void RemoveValue()
{
if (_field.is_initialized())
if (_field.has_value())
_field.DestroyValue();
}
@@ -329,7 +329,7 @@ namespace UF
std::conditional_t<PublicSet, UpdateFieldPublicSetter<V>, UpdateFieldSetter<V>>>>>
ModifyValue(OptionalUpdateField<V, BlockBit, Bit>(T::* field), uint32 /*dummy*/)
{
if (!(_value.*field).is_initialized())
if (!(_value.*field).has_value())
(_value.*field).ConstructValue();
_value._changesMask.Set(BlockBit);
@@ -433,7 +433,7 @@ namespace UF
std::conditional_t<PublicSet, UpdateFieldPublicSetter<value_type>, UpdateFieldSetter<value_type>>>>>
ModifyValue(uint32 /*dummy*/)
{
if (!_value.is_initialized())
if (!_value.has_value())
_value.ConstructValue();
return { *(_value._value) };
@@ -639,7 +639,7 @@ namespace UF
template<typename T, uint32 BlockBit, uint32 Bit>
void ClearChangesMask(OptionalUpdateField<T, BlockBit, Bit>& field, std::true_type)
{
if (field.is_initialized())
if (field.has_value())
field._value->ClearChangesMask();
}
@@ -905,7 +905,7 @@ namespace UF
DestroyValue();
}
bool is_initialized() const
bool has_value() const
{
return !!_value;
}
@@ -3181,9 +3181,9 @@ void ActivePlayerData::WriteCreate(ByteBuffer& data, EnumFlag<UpdateFieldFlag> f
data.WriteBit(BankAutoSortDisabled);
data.WriteBit(SortBagsRightToLeft);
data.WriteBit(InsertItemsLeftToRight);
data.WriteBits(QuestSession.is_initialized(), 1);
data.WriteBits(QuestSession.has_value(), 1);
Field_1410->WriteCreate(data, owner, receiver);
if (QuestSession.is_initialized())
if (QuestSession.has_value())
{
QuestSession->WriteCreate(data, owner, receiver);
}
@@ -3949,14 +3949,14 @@ void ActivePlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo
}
if (changesMask[98])
{
data.WriteBits(QuestSession.is_initialized(), 1);
data.WriteBits(QuestSession.has_value(), 1);
if (changesMask[106])
{
Field_1410->WriteUpdate(data, ignoreNestedChangesMask, owner, receiver);
}
if (changesMask[105])
{
if (QuestSession.is_initialized())
if (QuestSession.has_value())
{
QuestSession->WriteUpdate(data, ignoreNestedChangesMask, owner, receiver);
}
+8 -9
View File
@@ -438,7 +438,7 @@ bool Player::Create(ObjectGuid::LowType guidlow, WorldPackets::Character::Charac
return false;
}
PlayerInfo::CreatePosition const& position = createInfo->UseNPE && info->createPositionNPE ? info->createPositionNPE.get() : info->createPosition;
PlayerInfo::CreatePosition const& position = createInfo->UseNPE && info->createPositionNPE ? *info->createPositionNPE : info->createPosition;
m_createTime = GameTime::GetGameTime();
m_createMode = createInfo->UseNPE && info->createPositionNPE ? PlayerCreateMode::NPE : PlayerCreateMode::Normal;
@@ -1513,7 +1513,7 @@ bool Player::TeleportTo(uint32 mapid, float x, float y, float z, float orientati
transferPending.OldMapPosition = GetPosition();
if (Transport* transport = GetTransport())
{
transferPending.Ship = boost::in_place();
transferPending.Ship.emplace();
transferPending.Ship->ID = transport->GetEntry();
transferPending.Ship->OriginMapID = GetMapId();
}
@@ -20382,7 +20382,7 @@ bool Player::_LoadHomeBind(PreparedQueryResult result)
if (!ok && HasAtLoginFlag(AT_LOGIN_FIRST))
{
PlayerInfo::CreatePosition const& createPosition = m_createMode == PlayerCreateMode::NPE && info->createPositionNPE ? info->createPositionNPE.get() : info->createPosition;
PlayerInfo::CreatePosition const& createPosition = m_createMode == PlayerCreateMode::NPE && info->createPositionNPE ? *info->createPositionNPE : info->createPosition;
m_homebind.WorldRelocate(createPosition.Loc);
if (createPosition.TransportGuid)
@@ -28007,7 +28007,7 @@ void Player::SendItemRefundResult(Item* item, ItemExtendedCostEntry const* iece,
itemPurchaseRefundResult.Result = error;
if (!error)
{
itemPurchaseRefundResult.Contents = boost::in_place();
itemPurchaseRefundResult.Contents.emplace();
itemPurchaseRefundResult.Contents->Money = item->GetPaidMoney();
for (uint8 i = 0; i < MAX_ITEM_EXT_COST_ITEMS; ++i) // item cost data
{
@@ -28404,7 +28404,7 @@ void Player::SendPlayerChoice(ObjectGuid sender, int32 choiceId)
if (playerChoiceResponseTemplate.Reward)
{
playerChoiceResponse.Reward = boost::in_place();
playerChoiceResponse.Reward.emplace();
playerChoiceResponse.Reward->TitleID = playerChoiceResponseTemplate.Reward->TitleId;
playerChoiceResponse.Reward->PackageID = playerChoiceResponseTemplate.Reward->PackageId;
playerChoiceResponse.Reward->SkillLineID = playerChoiceResponseTemplate.Reward->SkillLineId;
@@ -28421,7 +28421,7 @@ void Player::SendPlayerChoice(ObjectGuid sender, int32 choiceId)
rewardEntry.Quantity = item.Quantity;
if (!item.BonusListIDs.empty())
{
rewardEntry.Item.ItemBonus = boost::in_place();
rewardEntry.Item.ItemBonus.emplace();
rewardEntry.Item.ItemBonus->BonusListIDs = item.BonusListIDs;
}
}
@@ -28447,7 +28447,7 @@ void Player::SendPlayerChoice(ObjectGuid sender, int32 choiceId)
rewardEntry.Quantity = item.Quantity;
if (!item.BonusListIDs.empty())
{
rewardEntry.Item.ItemBonus = boost::in_place();
rewardEntry.Item.ItemBonus.emplace();
rewardEntry.Item.ItemBonus->BonusListIDs = item.BonusListIDs;
}
}
@@ -28457,8 +28457,7 @@ void Player::SendPlayerChoice(ObjectGuid sender, int32 choiceId)
if (playerChoiceResponseTemplate.MawPower)
{
playerChoiceResponse.MawPower.emplace();
WorldPackets::Quest::PlayerChoiceResponseMawPower& mawPower = playerChoiceResponse.MawPower.get();
WorldPackets::Quest::PlayerChoiceResponseMawPower& mawPower = playerChoiceResponse.MawPower.emplace();
mawPower.TypeArtFileID = playerChoiceResponse.MawPower->TypeArtFileID;
mawPower.Rarity = playerChoiceResponse.MawPower->Rarity;
mawPower.RarityColor = playerChoiceResponse.MawPower->RarityColor;
+3 -3
View File
@@ -5249,7 +5249,7 @@ void Unit::SendAttackStateUpdate(CalcDamageInfo* damageInfo)
int32 overkill = damageInfo->Damage - damageInfo->Target->GetHealth();
packet.OverDamage = (overkill < 0 ? -1 : overkill);
packet.SubDmg = boost::in_place();
packet.SubDmg.emplace();
packet.SubDmg->SchoolMask = damageInfo->DamageSchoolMask; // School of sub damage
packet.SubDmg->FDamage = damageInfo->Damage; // sub damage
packet.SubDmg->Damage = damageInfo->Damage; // Sub Damage
@@ -12271,7 +12271,7 @@ void Unit::SendClearTarget()
int32 Unit::GetResistance(SpellSchoolMask mask) const
{
Optional<int32> resist = boost::make_optional(false, 0);
Optional<int32> resist;
for (int32 i = SPELL_SCHOOL_NORMAL; i < MAX_SPELL_SCHOOL; ++i)
{
int32 schoolResistance = GetResistance(SpellSchools(i));
@@ -12279,7 +12279,7 @@ int32 Unit::GetResistance(SpellSchoolMask mask) const
resist = schoolResistance;
}
return resist ? *resist : 0;
return resist.value_or(0);
}
void CharmInfo::SetIsCommandAttack(bool val)
+2 -2
View File
@@ -77,7 +77,7 @@ bool Garrison::LoadFromDB(PreparedQueryResult garrison, PreparedQueryResult blue
if (!sGarrBuildingStore.LookupEntry(buildingId))
continue;
plot->BuildingInfo.PacketInfo = boost::in_place();
plot->BuildingInfo.PacketInfo.emplace();
plot->BuildingInfo.PacketInfo->GarrPlotInstanceID = plotInstanceId;
plot->BuildingInfo.PacketInfo->GarrBuildingID = buildingId;
plot->BuildingInfo.PacketInfo->TimeBuilt = timeBuilt;
@@ -558,7 +558,7 @@ void Garrison::SendInfo()
Plot& plot = p.second;
garrison.Plots.push_back(&plot.PacketInfo);
if (plot.BuildingInfo.PacketInfo)
garrison.Buildings.push_back(plot.BuildingInfo.PacketInfo.get_ptr());
garrison.Buildings.push_back(&*plot.BuildingInfo.PacketInfo);
}
for (auto const& p : _followers)
+2 -5
View File
@@ -10922,9 +10922,7 @@ void ObjectMgr::LoadPlayerChoices()
continue;
}
responseItr->Reward = boost::in_place();
PlayerChoiceResponseReward* reward = responseItr->Reward.get_ptr();
PlayerChoiceResponseReward* reward = &responseItr->Reward.emplace();
reward->TitleId = fields[2].GetInt32();
reward->PackageId = fields[3].GetInt32();
reward->SkillLineId = fields[4].GetInt32();
@@ -11178,8 +11176,7 @@ void ObjectMgr::LoadPlayerChoices()
continue;
}
responseItr->MawPower.emplace();
PlayerChoiceResponseMawPower& mawPower = responseItr->MawPower.get();
PlayerChoiceResponseMawPower& mawPower = responseItr->MawPower.emplace();
mawPower.TypeArtFileID = fields[2].GetInt32();
mawPower.Rarity = fields[3].GetInt32();
mawPower.RarityColor = fields[4].GetUInt32();
+1 -1
View File
@@ -132,7 +132,7 @@ void LoadHelper(CellGuidSet const& guid_set, CellCoord& cell, GridRefManager<T>&
T* obj = new T;
//TC_LOG_INFO("misc", "DEBUG: LoadHelper from table: %s for (guid: " UI64FMTD ") Loading", table, guid);
if (!obj->LoadFromDB(guid, map, false, phaseOwner.is_initialized() /*allowDuplicate*/))
if (!obj->LoadFromDB(guid, map, false, phaseOwner.has_value() /*allowDuplicate*/))
{
delete obj;
continue;
+3 -3
View File
@@ -1564,13 +1564,13 @@ void Group::SendUpdateToPlayer(ObjectGuid playerGUID, MemberSlot* slot)
if (GetMembersCount() > 1)
{
// LootSettings
partyUpdate.LootSettings = boost::in_place();
partyUpdate.LootSettings.emplace();
partyUpdate.LootSettings->Method = m_lootMethod;
partyUpdate.LootSettings->Threshold = m_lootThreshold;
partyUpdate.LootSettings->LootMaster = m_lootMethod == MASTER_LOOT ? m_masterLooterGuid : ObjectGuid::Empty;
// Difficulty Settings
partyUpdate.DifficultySettings = boost::in_place();
partyUpdate.DifficultySettings.emplace();
partyUpdate.DifficultySettings->DungeonDifficultyID = m_dungeonDifficulty;
partyUpdate.DifficultySettings->RaidDifficultyID = m_raidDifficulty;
partyUpdate.DifficultySettings->LegacyRaidDifficultyID = m_legacyRaidDifficulty;
@@ -1579,7 +1579,7 @@ void Group::SendUpdateToPlayer(ObjectGuid playerGUID, MemberSlot* slot)
// LfgInfos
if (isLFGGroup())
{
partyUpdate.LfgInfos = boost::in_place();
partyUpdate.LfgInfos.emplace();
partyUpdate.LfgInfos->Slot = sLFGMgr->GetLFGDungeonEntry(sLFGMgr->GetDungeon(m_guid));
partyUpdate.LfgInfos->BootCount = 0;
+1 -1
View File
@@ -1374,7 +1374,7 @@ void Guild::SendQueryResponse(WorldSession* session, ObjectGuid const& playerGui
WorldPackets::Guild::QueryGuildInfoResponse response;
response.GuildGuid = GetGUID();
response.PlayerGuid = playerGuid;
response.Info = boost::in_place();
response.Info.emplace();
response.Info->GuildGUID = GetGUID();
response.Info->VirtualRealmAddress = GetVirtualRealmAddress();
@@ -36,7 +36,7 @@
void WorldSession::HandleAuctionBrowseQuery(WorldPackets::AuctionHouse::AuctionBrowseQuery& browseQuery)
{
AuctionThrottleResult throttle = sAuctionMgr->CheckThrottle(_player, browseQuery.TaintedBy.is_initialized());
AuctionThrottleResult throttle = sAuctionMgr->CheckThrottle(_player, browseQuery.TaintedBy.has_value());
if (throttle.Throttled)
return;
@@ -65,7 +65,7 @@ void WorldSession::HandleAuctionBrowseQuery(WorldPackets::AuctionHouse::AuctionB
WorldPackets::AuctionHouse::AuctionListBucketsResult listBucketsResult;
if (!browseQuery.ItemClassFilters.empty())
{
classFilters = boost::in_place();
classFilters.emplace();
for (auto const& classFilter : browseQuery.ItemClassFilters)
{
@@ -98,7 +98,7 @@ void WorldSession::HandleAuctionBrowseQuery(WorldPackets::AuctionHouse::AuctionB
void WorldSession::HandleAuctionCancelCommoditiesPurchase(WorldPackets::AuctionHouse::AuctionCancelCommoditiesPurchase& cancelCommoditiesPurchase)
{
AuctionThrottleResult throttle = sAuctionMgr->CheckThrottle(_player, cancelCommoditiesPurchase.TaintedBy.is_initialized(), AuctionCommand::PlaceBid);
AuctionThrottleResult throttle = sAuctionMgr->CheckThrottle(_player, cancelCommoditiesPurchase.TaintedBy.has_value(), AuctionCommand::PlaceBid);
if (throttle.Throttled)
return;
@@ -120,7 +120,7 @@ void WorldSession::HandleAuctionCancelCommoditiesPurchase(WorldPackets::AuctionH
void WorldSession::HandleAuctionConfirmCommoditiesPurchase(WorldPackets::AuctionHouse::AuctionConfirmCommoditiesPurchase& confirmCommoditiesPurchase)
{
AuctionThrottleResult throttle = sAuctionMgr->CheckThrottle(_player, confirmCommoditiesPurchase.TaintedBy.is_initialized(), AuctionCommand::PlaceBid);
AuctionThrottleResult throttle = sAuctionMgr->CheckThrottle(_player, confirmCommoditiesPurchase.TaintedBy.has_value(), AuctionCommand::PlaceBid);
if (throttle.Throttled)
return;
@@ -158,7 +158,7 @@ void WorldSession::HandleAuctionConfirmCommoditiesPurchase(WorldPackets::Auction
void WorldSession::HandleAuctionGetCommodityQuote(WorldPackets::AuctionHouse::AuctionGetCommodityQuote& getCommodityQuote)
{
AuctionThrottleResult throttle = sAuctionMgr->CheckThrottle(_player, getCommodityQuote.TaintedBy.is_initialized(), AuctionCommand::PlaceBid);
AuctionThrottleResult throttle = sAuctionMgr->CheckThrottle(_player, getCommodityQuote.TaintedBy.has_value(), AuctionCommand::PlaceBid);
if (throttle.Throttled)
return;
@@ -209,7 +209,7 @@ void WorldSession::HandleAuctionHelloOpcode(WorldPackets::AuctionHouse::AuctionH
void WorldSession::HandleAuctionListBiddedItems(WorldPackets::AuctionHouse::AuctionListBiddedItems& listBiddedItems)
{
AuctionThrottleResult throttle = sAuctionMgr->CheckThrottle(_player, listBiddedItems.TaintedBy.is_initialized());
AuctionThrottleResult throttle = sAuctionMgr->CheckThrottle(_player, listBiddedItems.TaintedBy.has_value());
if (throttle.Throttled)
return;
@@ -236,7 +236,7 @@ void WorldSession::HandleAuctionListBiddedItems(WorldPackets::AuctionHouse::Auct
void WorldSession::HandleAuctionListBucketsByBucketKeys(WorldPackets::AuctionHouse::AuctionListBucketsByBucketKeys& listBucketsByBucketKeys)
{
AuctionThrottleResult throttle = sAuctionMgr->CheckThrottle(_player, listBucketsByBucketKeys.TaintedBy.is_initialized());
AuctionThrottleResult throttle = sAuctionMgr->CheckThrottle(_player, listBucketsByBucketKeys.TaintedBy.has_value());
if (throttle.Throttled)
return;
@@ -267,7 +267,7 @@ void WorldSession::HandleAuctionListBucketsByBucketKeys(WorldPackets::AuctionHou
void WorldSession::HandleAuctionListItemsByBucketKey(WorldPackets::AuctionHouse::AuctionListItemsByBucketKey& listItemsByBucketKey)
{
AuctionThrottleResult throttle = sAuctionMgr->CheckThrottle(_player, listItemsByBucketKey.TaintedBy.is_initialized());
AuctionThrottleResult throttle = sAuctionMgr->CheckThrottle(_player, listItemsByBucketKey.TaintedBy.has_value());
if (throttle.Throttled)
return;
@@ -298,7 +298,7 @@ void WorldSession::HandleAuctionListItemsByBucketKey(WorldPackets::AuctionHouse:
void WorldSession::HandleAuctionListItemsByItemID(WorldPackets::AuctionHouse::AuctionListItemsByItemID& listItemsByItemID)
{
AuctionThrottleResult throttle = sAuctionMgr->CheckThrottle(_player, listItemsByItemID.TaintedBy.is_initialized());
AuctionThrottleResult throttle = sAuctionMgr->CheckThrottle(_player, listItemsByItemID.TaintedBy.has_value());
if (throttle.Throttled)
return;
@@ -330,7 +330,7 @@ void WorldSession::HandleAuctionListItemsByItemID(WorldPackets::AuctionHouse::Au
//this void sends player info about his auctions
void WorldSession::HandleAuctionListOwnedItems(WorldPackets::AuctionHouse::AuctionListOwnedItems& listOwnedItems)
{
AuctionThrottleResult throttle = sAuctionMgr->CheckThrottle(_player, listOwnedItems.TaintedBy.is_initialized());
AuctionThrottleResult throttle = sAuctionMgr->CheckThrottle(_player, listOwnedItems.TaintedBy.has_value());
if (throttle.Throttled)
return;
@@ -357,7 +357,7 @@ void WorldSession::HandleAuctionListOwnedItems(WorldPackets::AuctionHouse::Aucti
// this function is called when client bids or buys out auction
void WorldSession::HandleAuctionPlaceBid(WorldPackets::AuctionHouse::AuctionPlaceBid& placeBid)
{
AuctionThrottleResult throttle = sAuctionMgr->CheckThrottle(_player, placeBid.TaintedBy.is_initialized(), AuctionCommand::PlaceBid);
AuctionThrottleResult throttle = sAuctionMgr->CheckThrottle(_player, placeBid.TaintedBy.has_value(), AuctionCommand::PlaceBid);
if (throttle.Throttled)
return;
@@ -486,7 +486,7 @@ void WorldSession::HandleAuctionPlaceBid(WorldPackets::AuctionHouse::AuctionPlac
void WorldSession::HandleAuctionRemoveItem(WorldPackets::AuctionHouse::AuctionRemoveItem& removeItem)
{
AuctionThrottleResult throttle = sAuctionMgr->CheckThrottle(_player, removeItem.TaintedBy.is_initialized(), AuctionCommand::Cancel);
AuctionThrottleResult throttle = sAuctionMgr->CheckThrottle(_player, removeItem.TaintedBy.has_value(), AuctionCommand::Cancel);
if (throttle.Throttled)
return;
@@ -577,7 +577,7 @@ void WorldSession::HandleAuctionReplicateItems(WorldPackets::AuctionHouse::Aucti
void WorldSession::HandleAuctionSellCommodity(WorldPackets::AuctionHouse::AuctionSellCommodity& sellCommodity)
{
AuctionThrottleResult throttle = sAuctionMgr->CheckThrottle(_player, sellCommodity.TaintedBy.is_initialized(), AuctionCommand::SellItem);
AuctionThrottleResult throttle = sAuctionMgr->CheckThrottle(_player, sellCommodity.TaintedBy.has_value(), AuctionCommand::SellItem);
if (throttle.Throttled)
return;
@@ -789,7 +789,7 @@ void WorldSession::HandleAuctionSellCommodity(WorldPackets::AuctionHouse::Auctio
void WorldSession::HandleAuctionSellItem(WorldPackets::AuctionHouse::AuctionSellItem& sellItem)
{
AuctionThrottleResult throttle = sAuctionMgr->CheckThrottle(_player, sellItem.TaintedBy.is_initialized(), AuctionCommand::SellItem);
AuctionThrottleResult throttle = sAuctionMgr->CheckThrottle(_player, sellItem.TaintedBy.has_value(), AuctionCommand::SellItem);
if (throttle.Throttled)
return;
+2 -2
View File
@@ -35,7 +35,7 @@ void WorldSession::SendAuthResponse(uint32 code, bool queued, uint32 queuePos)
if (code == ERROR_OK)
{
response.SuccessInfo = boost::in_place();
response.SuccessInfo.emplace();
response.SuccessInfo->ActiveExpansionLevel = GetExpansion();
response.SuccessInfo->AccountExpansionLevel = GetAccountExpansion();
@@ -58,7 +58,7 @@ void WorldSession::SendAuthResponse(uint32 code, bool queued, uint32 queuePos)
if (queued)
{
response.WaitInfo = boost::in_place();
response.WaitInfo.emplace();
response.WaitInfo->WaitCount = queuePos;
}
@@ -44,7 +44,7 @@ void WorldSession::HandleBattlePetSetBattleSlot(WorldPackets::BattlePet::BattleP
void WorldSession::HandleBattlePetModifyName(WorldPackets::BattlePet::BattlePetModifyName& battlePetModifyName)
{
GetBattlePetMgr()->ModifyName(battlePetModifyName.PetGuid, battlePetModifyName.Name, battlePetModifyName.DeclinedNames.get_ptr());
GetBattlePetMgr()->ModifyName(battlePetModifyName.PetGuid, battlePetModifyName.Name, std::move(battlePetModifyName.DeclinedNames));
}
void WorldSession::HandleQueryBattlePetName(WorldPackets::BattlePet::QueryBattlePetName& queryBattlePetName)
@@ -1130,7 +1130,7 @@ void WorldSession::HandlePlayerLogin(LoginQueryHolder* holder)
{
case PlayerCreateMode::Normal:
if (playerInfo->introMovieId)
pCurrChar->SendMovieStart(playerInfo->introMovieId.get());
pCurrChar->SendMovieStart(*playerInfo->introMovieId);
else if (playerInfo->introSceneId)
pCurrChar->GetSceneMgr().PlayScene(*playerInfo->introSceneId);
else if (sChrClassesStore.AssertEntry(pCurrChar->GetClass())->CinematicSequenceID)
@@ -1418,7 +1418,7 @@ void WorldSession::SendFeatureSystemStatus()
features.VoiceEnabled = false;
features.BrowserEnabled = false; // Has to be false, otherwise client will crash if "Customer Support" is opened
features.EuropaTicketSystemStatus = boost::in_place();
features.EuropaTicketSystemStatus.emplace();
features.EuropaTicketSystemStatus->ThrottleState.MaxTries = 10;
features.EuropaTicketSystemStatus->ThrottleState.PerMilliseconds = 60000;
features.EuropaTicketSystemStatus->ThrottleState.TryCount = 1;
@@ -2768,7 +2768,7 @@ void WorldSession::SendCharFactionChange(ResponseCodes result, WorldPackets::Cha
if (result == RESPONSE_SUCCESS)
{
packet.Display = boost::in_place();
packet.Display.emplace();
packet.Display->Name = factionChangeInfo->Name;
packet.Display->SexID = factionChangeInfo->SexID;
packet.Display->Customizations = &factionChangeInfo->Customizations;
+1 -1
View File
@@ -59,7 +59,7 @@ void WorldSession::HandleInspectOpcode(WorldPackets::Inspect::Inspect& inspect)
if (Guild* guild = sGuildMgr->GetGuildById(player->GetGuildId()))
{
inspectResult.GuildData = boost::in_place();
inspectResult.GuildData.emplace();
inspectResult.GuildData->GuildGUID = guild->GetGUID();
inspectResult.GuildData->NumGuildMembers = guild->GetMembersCount();
inspectResult.GuildData->AchievementPoints = guild->GetAchievementMgr().GetAchievementPoints();
+1 -1
View File
@@ -679,7 +679,7 @@ void WorldSession::SendListInventory(ObjectGuid vendorGuid)
item.Item.ItemID = vendorItem->item;
if (!vendorItem->BonusListIDs.empty())
{
item.Item.ItemBonus = boost::in_place();
item.Item.ItemBonus.emplace();
item.Item.ItemBonus->BonusListIDs = vendorItem->BonusListIDs;
}
}
+5 -6
View File
@@ -530,7 +530,7 @@ void WorldSession::HandlePetRename(WorldPackets::Pet::PetRename& packet)
ObjectGuid petguid = packet.RenameData.PetGUID;
std::string name = packet.RenameData.NewName;
DeclinedName* declinedname = packet.RenameData.DeclinedNames.get_ptr();
Optional<DeclinedName> const& declinedname = packet.RenameData.DeclinedNames;
Pet* pet = ObjectAccessor::GetPet(*_player, petguid);
// check it!
@@ -542,13 +542,13 @@ void WorldSession::HandlePetRename(WorldPackets::Pet::PetRename& packet)
PetNameInvalidReason res = ObjectMgr::CheckPetName(name);
if (res != PET_NAME_SUCCESS)
{
SendPetNameInvalid(res, name, nullptr);
SendPetNameInvalid(res, name, {});
return;
}
if (sObjectMgr->IsReservedName(name))
{
SendPetNameInvalid(PET_NAME_RESERVED, name, nullptr);
SendPetNameInvalid(PET_NAME_RESERVED, name, {});
return;
}
@@ -751,13 +751,12 @@ void WorldSession::HandlePetCastSpellOpcode(WorldPackets::Spells::PetCastSpell&
}
}
void WorldSession::SendPetNameInvalid(uint32 error, const std::string& name, DeclinedName *declinedName)
void WorldSession::SendPetNameInvalid(uint32 error, const std::string& name, Optional<DeclinedName> const& declinedName)
{
WorldPackets::Pet::PetNameInvalid petNameInvalid;
petNameInvalid.Result = error;
petNameInvalid.RenameData.NewName = name;
if (declinedName)
petNameInvalid.RenameData.DeclinedNames = *declinedName;
petNameInvalid.RenameData.DeclinedNames = declinedName;
SendPacket(petNameInvalid.Write());
}
+1 -1
View File
@@ -103,7 +103,7 @@ void WorldSession::SendTaxiMenu(Creature* unit)
TC_LOG_DEBUG("network", "WORLD: CMSG_TAXINODE_STATUS_QUERY %u ", curloc);
WorldPackets::Taxi::ShowTaxiNodes data;
data.WindowInfo = boost::in_place();
data.WindowInfo.emplace();
data.WindowInfo->UnitGUID = unit->GetGUID();
data.WindowInfo->CurrentNode = curloc;
+2 -2
View File
@@ -63,14 +63,14 @@ void WorldSession::SendUpdateTrade(bool trader_data /*= true*/)
{
if (Item* item = view_trade->GetItem(TradeSlots(i)))
{
WorldPackets::Trade::TradeUpdated::TradeItem tradeItem;
WorldPackets::Trade::TradeItem tradeItem;
tradeItem.Slot = i;
tradeItem.Item.Initialize(item);
tradeItem.StackCount = item->GetCount();
tradeItem.GiftCreator = item->GetGiftCreator();
if (!item->IsWrapped())
{
tradeItem.Unwrapped = boost::in_place();
tradeItem.Unwrapped.emplace();
tradeItem.Unwrapped->EnchantID = item->GetEnchantmentId(PERM_ENCHANTMENT_SLOT);
tradeItem.Unwrapped->OnUseEnchantmentID = item->GetEnchantmentId(USE_ENCHANTMENT_SLOT);
@@ -31,12 +31,15 @@ template<class T>
PointMovementGenerator<T>::PointMovementGenerator(uint32 id, float x, float y, float z, bool generatePath, float speed /*= 0.0f*/, Optional<float> finalOrient /*= {}*/,
Unit const* faceTarget /*= nullptr*/, Movement::SpellEffectExtraData const* spellEffectExtraData /*= nullptr*/)
: _movementId(id), _destination(x, y, z), _speed(speed), _generatePath(generatePath), _finalOrient(finalOrient),
i_faceTarget(faceTarget), i_spellEffectExtra(spellEffectExtraData)
i_faceTarget(faceTarget)
{
this->Mode = MOTION_MODE_DEFAULT;
this->Priority = MOTION_PRIORITY_NORMAL;
this->Flags = MOVEMENTGENERATOR_FLAG_INITIALIZATION_PENDING;
this->BaseUnitState = UNIT_STATE_ROAMING;
if (spellEffectExtraData)
this->i_spellEffectExtra = std::make_unique<Movement::SpellEffectExtraData>(*spellEffectExtraData);
}
template<class T>
@@ -57,7 +57,7 @@ class PointMovementGenerator : public MovementGeneratorMedium<T, PointMovementGe
//! if set then unit will turn to specified _orient in provided _pos
Optional<float> _finalOrient;
Unit const* i_faceTarget;
Movement::SpellEffectExtraData const* i_spellEffectExtra;
std::unique_ptr<Movement::SpellEffectExtraData> i_spellEffectExtra;
};
class AssistanceMovementGenerator : public PointMovementGenerator<Creature>
@@ -36,7 +36,7 @@ ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Achievement::CriteriaProg
data << criteria.TimeFromStart;
data << criteria.TimeFromCreate;
data.WriteBits(criteria.Flags, 4);
data.WriteBit(criteria.RafAcceptanceID.is_initialized());
data.WriteBit(criteria.RafAcceptanceID.has_value());
data.FlushBits();
if (criteria.RafAcceptanceID)
@@ -92,7 +92,7 @@ WorldPacket const* WorldPackets::Achievement::CriteriaUpdate::Write()
_worldPacket.AppendPackedTime(CurrentTime);
_worldPacket << ElapsedTime;
_worldPacket << CreationTime;
_worldPacket.WriteBit(RafAcceptanceID.is_initialized());
_worldPacket.WriteBit(RafAcceptanceID.has_value());
_worldPacket.FlushBits();
if (RafAcceptanceID)
@@ -33,8 +33,8 @@ ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::AreaTrigger::AreaTriggerS
ByteBuffer& operator<<(ByteBuffer& data, AreaTriggerOrbitInfo const& areaTriggerCircularMovement)
{
data.WriteBit(areaTriggerCircularMovement.PathTarget.is_initialized());
data.WriteBit(areaTriggerCircularMovement.Center.is_initialized());
data.WriteBit(areaTriggerCircularMovement.PathTarget.has_value());
data.WriteBit(areaTriggerCircularMovement.Center.has_value());
data.WriteBit(areaTriggerCircularMovement.CounterClockwise);
data.WriteBit(areaTriggerCircularMovement.CanLoop);
@@ -83,9 +83,9 @@ WorldPacket const* WorldPackets::AreaTrigger::AreaTriggerRePath::Write()
{
_worldPacket << TriggerGUID;
_worldPacket.WriteBit(AreaTriggerSpline.is_initialized());
_worldPacket.WriteBit(AreaTriggerOrbit.is_initialized());
_worldPacket.WriteBit(AreaTriggerMovementScript.is_initialized());
_worldPacket.WriteBit(AreaTriggerSpline.has_value());
_worldPacket.WriteBit(AreaTriggerOrbit.has_value());
_worldPacket.WriteBit(AreaTriggerMovementScript.has_value());
_worldPacket.FlushBits();
if (AreaTriggerSpline)
@@ -63,9 +63,9 @@ ByteBuffer& operator>>(ByteBuffer& data, AuctionBucketKey& itemKey)
ByteBuffer& operator<<(ByteBuffer& data, AuctionBucketKey const& itemKey)
{
data.WriteBits(itemKey.ItemID, 20);
data.WriteBit(itemKey.BattlePetSpeciesID.is_initialized());
data.WriteBit(itemKey.BattlePetSpeciesID.has_value());
data.WriteBits(itemKey.ItemLevel, 11);
data.WriteBit(itemKey.SuffixItemNameDescriptionID.is_initialized());
data.WriteBit(itemKey.SuffixItemNameDescriptionID.has_value());
data.FlushBits();
if (itemKey.BattlePetSpeciesID)
@@ -160,10 +160,10 @@ ByteBuffer& operator<<(ByteBuffer& data, BucketInfo const& bucketInfo)
if (!bucketInfo.ItemModifiedAppearanceIDs.empty())
data.append(bucketInfo.ItemModifiedAppearanceIDs.data(), bucketInfo.ItemModifiedAppearanceIDs.size());
data.WriteBit(bucketInfo.MaxBattlePetQuality.is_initialized());
data.WriteBit(bucketInfo.MaxBattlePetLevel.is_initialized());
data.WriteBit(bucketInfo.BattlePetBreedID.is_initialized());
data.WriteBit(bucketInfo.Unk901_1.is_initialized());
data.WriteBit(bucketInfo.MaxBattlePetQuality.has_value());
data.WriteBit(bucketInfo.MaxBattlePetLevel.has_value());
data.WriteBit(bucketInfo.BattlePetBreedID.has_value());
data.WriteBit(bucketInfo.Unk901_1.has_value());
data.WriteBit(bucketInfo.ContainsOwnerItem);
data.WriteBit(bucketInfo.ContainsOnlyCollectedAppearances);
data.FlushBits();
@@ -185,21 +185,21 @@ ByteBuffer& operator<<(ByteBuffer& data, BucketInfo const& bucketInfo)
ByteBuffer& operator<<(ByteBuffer& data, AuctionItem const& auctionItem)
{
data.WriteBit(auctionItem.Item.is_initialized());
data.WriteBit(auctionItem.Item.has_value());
data.WriteBits(auctionItem.Enchantments.size(), 4);
data.WriteBits(auctionItem.Gems.size(), 2);
data.WriteBit(auctionItem.MinBid.is_initialized());
data.WriteBit(auctionItem.MinIncrement.is_initialized());
data.WriteBit(auctionItem.BuyoutPrice.is_initialized());
data.WriteBit(auctionItem.UnitPrice.is_initialized());
data.WriteBit(auctionItem.MinBid.has_value());
data.WriteBit(auctionItem.MinIncrement.has_value());
data.WriteBit(auctionItem.BuyoutPrice.has_value());
data.WriteBit(auctionItem.UnitPrice.has_value());
data.WriteBit(auctionItem.CensorServerSideInfo);
data.WriteBit(auctionItem.CensorBidInfo);
data.WriteBit(auctionItem.AuctionBucketKey.is_initialized());
data.WriteBit(auctionItem.Creator.is_initialized());
data.WriteBit(auctionItem.AuctionBucketKey.has_value());
data.WriteBit(auctionItem.Creator.has_value());
if (!auctionItem.CensorBidInfo)
{
data.WriteBit(auctionItem.Bidder.is_initialized());
data.WriteBit(auctionItem.BidAmount.is_initialized());
data.WriteBit(auctionItem.Bidder.has_value());
data.WriteBit(auctionItem.BidAmount.has_value());
}
data.FlushBits();
@@ -545,9 +545,9 @@ WorldPacket const* AuctionCommandResult::Write()
WorldPacket const* AuctionGetCommodityQuoteResult::Write()
{
_worldPacket.WriteBit(TotalPrice.is_initialized());
_worldPacket.WriteBit(Quantity.is_initialized());
_worldPacket.WriteBit(QuoteDuration.is_initialized());
_worldPacket.WriteBit(TotalPrice.has_value());
_worldPacket.WriteBit(Quantity.has_value());
_worldPacket.WriteBit(QuoteDuration.has_value());
_worldPacket << int32(ItemID);
_worldPacket << uint32(DesiredDelay);
@@ -112,8 +112,8 @@ ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Auth::AuthWaitInfo const&
WorldPacket const* WorldPackets::Auth::AuthResponse::Write()
{
_worldPacket << uint32(Result);
_worldPacket.WriteBit(SuccessInfo.is_initialized());
_worldPacket.WriteBit(WaitInfo.is_initialized());
_worldPacket.WriteBit(SuccessInfo.has_value());
_worldPacket.WriteBit(WaitInfo.has_value());
_worldPacket.FlushBits();
if (SuccessInfo)
@@ -144,9 +144,9 @@ WorldPacket const* WorldPackets::Auth::AuthResponse::Write()
_worldPacket.WriteBit(SuccessInfo->IsExpansionTrial);
_worldPacket.WriteBit(SuccessInfo->ForceCharacterTemplate);
_worldPacket.WriteBit(SuccessInfo->NumPlayersHorde.is_initialized());
_worldPacket.WriteBit(SuccessInfo->NumPlayersAlliance.is_initialized());
_worldPacket.WriteBit(SuccessInfo->ExpansionTrialExpiration.is_initialized());
_worldPacket.WriteBit(SuccessInfo->NumPlayersHorde.has_value());
_worldPacket.WriteBit(SuccessInfo->NumPlayersAlliance.has_value());
_worldPacket.WriteBit(SuccessInfo->ExpansionTrialExpiration.has_value());
_worldPacket.FlushBits();
{
@@ -140,6 +140,8 @@ namespace WorldPackets
bool InGameRoom = false;
};
AuthSuccessInfo() { } // work around clang bug https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101227
uint8 ActiveExpansionLevel = 0; ///< the current server expansion, the possible values are in @ref Expansions
uint8 AccountExpansionLevel = 0; ///< the current expansion of this account, the possible values are in @ref Expansions
uint32 TimeRested = 0; ///< affects the return value of the GetBillingTimeRested() client API call, it is the number of seconds you have left until the experience points and loot you receive from creatures and quests is reduced. It is only used in the Asia region in retail, it's not implemented in TC and will probably never be.
@@ -47,7 +47,7 @@ void WorldPackets::Azerite::AzeriteEssenceActivateEssence::Read()
WorldPacket const* WorldPackets::Azerite::ActivateEssenceFailed::Write()
{
_worldPacket.WriteBits(AsUnderlyingType(Reason), 4);
_worldPacket.WriteBit(Slot.is_initialized());
_worldPacket.WriteBit(Slot.has_value());
_worldPacket << int32(Arg);
_worldPacket << int32(AzeriteEssenceID);
if (Slot)
@@ -44,7 +44,7 @@ ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::BattlePet::BattlePet cons
data << uint32(pet.Speed);
data << uint8(pet.Quality);
data.WriteBits(pet.Name.size(), 7);
data.WriteBit(pet.OwnerInfo.is_initialized());
data.WriteBit(pet.OwnerInfo.has_value());
data.WriteBit(false); // NoRename
data.FlushBits();
@@ -116,7 +116,7 @@ void WorldPackets::BattlePet::BattlePetModifyName::Read()
if (hasDeclinedNames)
{
DeclinedNames.emplace();
DeclinedNames = std::make_unique<DeclinedName>();
uint8 declinedNameLengths[MAX_DECLINED_NAME_CASES];
for (uint8 i = 0; i < MAX_DECLINED_NAME_CASES; ++i)
@@ -23,6 +23,7 @@
#include "ObjectGuid.h"
#include "Optional.h"
#include "UnitDefines.h"
#include <memory>
namespace WorldPackets
{
@@ -150,7 +151,7 @@ namespace WorldPackets
ObjectGuid PetGuid;
std::string Name;
Optional<DeclinedName> DeclinedNames;
std::unique_ptr<DeclinedName> DeclinedNames;
};
class QueryBattlePetName final : public ClientPacket
@@ -92,11 +92,11 @@ ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Battleground::PVPMatchSta
data.WriteBit(playerData.Faction != 0);
data.WriteBit(playerData.IsInWorld);
data.WriteBit(playerData.Honor.is_initialized());
data.WriteBit(playerData.PreMatchRating.is_initialized());
data.WriteBit(playerData.RatingChange.is_initialized());
data.WriteBit(playerData.PreMatchMMR.is_initialized());
data.WriteBit(playerData.MmrChange.is_initialized());
data.WriteBit(playerData.Honor.has_value());
data.WriteBit(playerData.PreMatchRating.has_value());
data.WriteBit(playerData.RatingChange.has_value());
data.WriteBit(playerData.PreMatchMMR.has_value());
data.WriteBit(playerData.MmrChange.has_value());
data.FlushBits();
if (playerData.Honor)
@@ -119,11 +119,11 @@ ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Battleground::PVPMatchSta
ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Battleground::PVPMatchStatistics const& pvpLogData)
{
data.WriteBit(pvpLogData.Ratings.is_initialized());
data.WriteBit(pvpLogData.Ratings.has_value());
data << uint32(pvpLogData.Statistics.size());
data.append(pvpLogData.PlayerCount.data(), pvpLogData.PlayerCount.size());
if (pvpLogData.Ratings.is_initialized())
if (pvpLogData.Ratings.has_value())
data << *pvpLogData.Ratings;
for (WorldPackets::Battleground::PVPMatchStatistics::PVPMatchPlayerStatistics const& player : pvpLogData.Statistics)
@@ -361,7 +361,7 @@ WorldPacket const* WorldPackets::Battleground::PVPMatchComplete::Write()
{
_worldPacket << uint8(Winner);
_worldPacket << Duration;
_worldPacket.WriteBit(LogData.is_initialized());
_worldPacket.WriteBit(LogData.has_value());
_worldPacket.FlushBits();
if (LogData)
@@ -96,6 +96,8 @@ namespace WorldPackets
{
struct RatingData
{
RatingData() { } // work around clang bug https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101227
int32 Prematch[2] = { };
int32 Postmatch[2] = { };
int32 PrematchMMR[2] = { };
@@ -103,6 +105,8 @@ namespace WorldPackets
struct HonorData
{
HonorData() { } // work around clang bug https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101227
uint32 HonorKills = 0;
uint32 Deaths = 0;
uint32 ContributionPoints = 0;
@@ -94,13 +94,13 @@ ByteBuffer& operator>>(ByteBuffer& buffer, WorldPackets::Calendar::CalendarAddEv
buffer >> invite.Status;
buffer >> invite.Moderator;
if (buffer.ReadBit())
invite.Unused_801_1 = boost::in_place();
invite.Unused_801_1.emplace();
if (buffer.ReadBit())
invite.Unused_801_2 = boost::in_place();
invite.Unused_801_2.emplace();
if (buffer.ReadBit())
invite.Unused_801_3 = boost::in_place();
invite.Unused_801_3.emplace();
if (invite.Unused_801_1)
buffer >> *invite.Unused_801_1;
@@ -253,7 +253,7 @@ WorldPacket const* EnumCharactersResult::Write()
_worldPacket.WriteBit(IsNewPlayerRestrictionSkipped);
_worldPacket.WriteBit(IsNewPlayerRestricted);
_worldPacket.WriteBit(IsNewPlayer);
_worldPacket.WriteBit(DisabledClassesMask.is_initialized());
_worldPacket.WriteBit(DisabledClassesMask.has_value());
_worldPacket.WriteBit(IsAlliedRacesCreationAllowed);
_worldPacket << uint32(Characters.size());
_worldPacket << int32(MaxCharacterLevel);
@@ -339,7 +339,7 @@ void CharacterRenameRequest::Read()
WorldPacket const* CharacterRenameResult::Write()
{
_worldPacket << uint8(Result);
_worldPacket.WriteBit(Guid.is_initialized());
_worldPacket.WriteBit(Guid.has_value());
_worldPacket.WriteBits(Name.length(), 6);
_worldPacket.FlushBits();
@@ -388,7 +388,7 @@ WorldPacket const* CharFactionChangeResult::Write()
{
_worldPacket << uint8(Result);
_worldPacket << Guid;
_worldPacket.WriteBit(Display.is_initialized());
_worldPacket.WriteBit(Display.has_value());
_worldPacket.FlushBits();
if (Display)
@@ -346,17 +346,17 @@ namespace WorldPackets
std::shared_ptr<CharRaceOrFactionChangeInfo> RaceOrFactionChangeInfo;
};
struct CharFactionChangeDisplayInfo
{
std::string Name;
uint8 SexID = 0;
uint8 RaceID = RACE_NONE;
Array<ChrCustomizationChoice, 50> const* Customizations = nullptr;
};
class CharFactionChangeResult final : public ServerPacket
{
public:
struct CharFactionChangeDisplayInfo
{
std::string Name;
uint8 SexID = 0;
uint8 RaceID = RACE_NONE;
Array<ChrCustomizationChoice, 50> const* Customizations = nullptr;
};
CharFactionChangeResult() : ServerPacket(SMSG_CHAR_FACTION_CHANGE_RESULT, 20 + sizeof(CharFactionChangeDisplayInfo)) { }
WorldPacket const* Write() override;
@@ -181,8 +181,8 @@ WorldPacket const* WorldPackets::Chat::Chat::Write()
_worldPacket.WriteBits(_ChatFlags, 14);
_worldPacket.WriteBit(HideChatLog);
_worldPacket.WriteBit(FakeSenderName);
_worldPacket.WriteBit(Unused_801.is_initialized());
_worldPacket.WriteBit(ChannelGUID.is_initialized());
_worldPacket.WriteBit(Unused_801.has_value());
_worldPacket.WriteBit(ChannelGUID.has_value());
_worldPacket.FlushBits();
_worldPacket.WriteString(SenderName);
@@ -36,7 +36,7 @@ WorldPacket const* WorldPackets::CombatLog::SpellNonMeleeDamageLog::Write()
WriteBits(Flags, 7);
WriteBit(false); // Debug info
WriteLogDataBit();
WriteBit(ContentTuning.is_initialized());
WriteBit(ContentTuning.has_value());
FlushBits();
WriteLogData();
if (ContentTuning)
@@ -136,10 +136,10 @@ WorldPacket const* WorldPackets::CombatLog::SpellHealLog::Write()
*this << int32(OverHeal);
*this << int32(Absorbed);
WriteBit(Crit);
WriteBit(CritRollMade.is_initialized());
WriteBit(CritRollNeeded.is_initialized());
WriteBit(CritRollMade.has_value());
WriteBit(CritRollNeeded.has_value());
WriteLogDataBit();
WriteBit(ContentTuning.is_initialized());
WriteBit(ContentTuning.has_value());
FlushBits();
WriteLogData();
@@ -175,8 +175,8 @@ WorldPacket const* WorldPackets::CombatLog::SpellPeriodicAuraLog::Write()
*this << int32(effect.AbsorbedOrAmplitude);
*this << int32(effect.Resisted);
WriteBit(effect.Crit);
WriteBit(effect.DebugInfo.is_initialized());
WriteBit(effect.ContentTuning.is_initialized());
WriteBit(effect.DebugInfo.has_value());
WriteBit(effect.ContentTuning.has_value());
FlushBits();
if (effect.ContentTuning)
@@ -241,7 +241,7 @@ ByteBuffer& operator<<(ByteBuffer& buffer, WorldPackets::CombatLog::SpellLogMiss
{
buffer << missEntry.Victim;
buffer << uint8(missEntry.MissReason);
if (buffer.WriteBit(missEntry.Debug.is_initialized()))
if (buffer.WriteBit(missEntry.Debug.has_value()))
buffer << *missEntry.Debug;
buffer.FlushBits();
@@ -264,8 +264,8 @@ WorldPacket const* WorldPackets::CombatLog::ProcResist::Write()
_worldPacket << Caster;
_worldPacket << Target;
_worldPacket << int32(SpellID);
_worldPacket.WriteBit(Rolled.is_initialized());
_worldPacket.WriteBit(Needed.is_initialized());
_worldPacket.WriteBit(Rolled.has_value());
_worldPacket.WriteBit(Needed.has_value());
_worldPacket.FlushBits();
if (Rolled)
@@ -314,7 +314,7 @@ WorldPacket const* WorldPackets::CombatLog::AttackerStateUpdate::Write()
attackRoundInfo << int32(Damage);
attackRoundInfo << int32(OriginalDamage);
attackRoundInfo << int32(OverDamage);
attackRoundInfo << uint8(SubDmg.is_initialized());
attackRoundInfo << uint8(SubDmg.has_value());
if (SubDmg)
{
attackRoundInfo << int32(SubDmg->SchoolMask);
@@ -381,11 +381,11 @@ ByteBuffer& operator<<(ByteBuffer& buffer, WorldPackets::CombatLog::SpellDispell
{
buffer << int32(dispellData.SpellID);
buffer.WriteBit(dispellData.Harmful);
buffer.WriteBit(dispellData.Rolled.is_initialized());
buffer.WriteBit(dispellData.Needed.is_initialized());
if (dispellData.Rolled.is_initialized())
buffer.WriteBit(dispellData.Rolled.has_value());
buffer.WriteBit(dispellData.Needed.has_value());
if (dispellData.Rolled.has_value())
buffer << int32(*dispellData.Rolled);
if (dispellData.Needed.is_initialized())
if (dispellData.Needed.has_value())
buffer << int32(*dispellData.Needed);
buffer.FlushBits();
@@ -114,7 +114,7 @@ ByteBuffer& operator<<(ByteBuffer& data, GarrisonMissionReward const& missionRew
data << uint32(missionRewardItem.FollowerXP);
data << uint32(missionRewardItem.GarrMssnBonusAbilityID);
data << int32(missionRewardItem.ItemFileDataID);
data.WriteBit(missionRewardItem.ItemInstance.is_initialized());
data.WriteBit(missionRewardItem.ItemInstance.has_value());
data.FlushBits();
if (missionRewardItem.ItemInstance)
@@ -145,7 +145,7 @@ ByteBuffer& operator<<(ByteBuffer& data, GarrisonTalent const& talent)
data << int32(talent.Rank);
data << talent.ResearchStartTime;
data << int32(talent.Flags);
data.WriteBit(talent.Socket.is_initialized());
data.WriteBit(talent.Socket.has_value());
data.FlushBits();
if (talent.Socket)
+18 -18
View File
@@ -30,7 +30,7 @@ WorldPacket const* WorldPackets::Guild::QueryGuildInfoResponse::Write()
{
_worldPacket << GuildGuid;
_worldPacket << PlayerGuid;
_worldPacket.WriteBit(Info.is_initialized());
_worldPacket.WriteBit(Info.has_value());
_worldPacket.FlushBits();
if (Info)
@@ -657,7 +657,7 @@ void WorldPackets::Guild::AutoGuildBankItem::Read()
_worldPacket >> ContainerItemSlot;
if (_worldPacket.ReadBit())
ContainerSlot = boost::in_place();
ContainerSlot.emplace();
if (ContainerSlot)
_worldPacket >> *ContainerSlot;
@@ -671,7 +671,7 @@ void WorldPackets::Guild::StoreGuildBankItem::Read()
_worldPacket >> ContainerItemSlot;
if (_worldPacket.ReadBit())
ContainerSlot = boost::in_place();
ContainerSlot.emplace();
if (ContainerSlot)
_worldPacket >> *ContainerSlot;
@@ -685,7 +685,7 @@ void WorldPackets::Guild::SwapItemWithGuildBankItem::Read()
_worldPacket >> ContainerItemSlot;
if (_worldPacket.ReadBit())
ContainerSlot = boost::in_place();
ContainerSlot.emplace();
if (ContainerSlot)
_worldPacket >> *ContainerSlot;
@@ -718,7 +718,7 @@ void WorldPackets::Guild::MergeItemWithGuildBankItem::Read()
_worldPacket >> StackCount;
if (_worldPacket.ReadBit())
ContainerSlot = boost::in_place();
ContainerSlot.emplace();
if (ContainerSlot)
_worldPacket >> *ContainerSlot;
@@ -733,7 +733,7 @@ void WorldPackets::Guild::SplitItemToGuildBank::Read()
_worldPacket >> StackCount;
if (_worldPacket.ReadBit())
ContainerSlot = boost::in_place();
ContainerSlot.emplace();
if (ContainerSlot)
_worldPacket >> *ContainerSlot;
@@ -748,7 +748,7 @@ void WorldPackets::Guild::MergeGuildBankItemWithItem::Read()
_worldPacket >> StackCount;
if (_worldPacket.ReadBit())
ContainerSlot = boost::in_place();
ContainerSlot.emplace();
if (ContainerSlot)
_worldPacket >> *ContainerSlot;
@@ -763,7 +763,7 @@ void WorldPackets::Guild::SplitGuildBankItemToInventory::Read()
_worldPacket >> StackCount;
if (_worldPacket.ReadBit())
ContainerSlot = boost::in_place();
ContainerSlot.emplace();
if (ContainerSlot)
_worldPacket >> *ContainerSlot;
@@ -805,7 +805,7 @@ WorldPacket const* WorldPackets::Guild::GuildBankLogQueryResults::Write()
{
_worldPacket << int32(Tab);
_worldPacket << uint32(Entry.size());
_worldPacket.WriteBit(WeeklyBonusMoney.is_initialized());
_worldPacket.WriteBit(WeeklyBonusMoney.has_value());
_worldPacket.FlushBits();
for (GuildBankLogEntry const& logEntry : Entry)
@@ -814,22 +814,22 @@ WorldPacket const* WorldPackets::Guild::GuildBankLogQueryResults::Write()
_worldPacket << uint32(logEntry.TimeOffset);
_worldPacket << int8(logEntry.EntryType);
_worldPacket.WriteBit(logEntry.Money.is_initialized());
_worldPacket.WriteBit(logEntry.ItemID.is_initialized());
_worldPacket.WriteBit(logEntry.Count.is_initialized());
_worldPacket.WriteBit(logEntry.OtherTab.is_initialized());
_worldPacket.WriteBit(logEntry.Money.has_value());
_worldPacket.WriteBit(logEntry.ItemID.has_value());
_worldPacket.WriteBit(logEntry.Count.has_value());
_worldPacket.WriteBit(logEntry.OtherTab.has_value());
_worldPacket.FlushBits();
if (logEntry.Money.is_initialized())
if (logEntry.Money.has_value())
_worldPacket << uint64(*logEntry.Money);
if (logEntry.ItemID.is_initialized())
if (logEntry.ItemID.has_value())
_worldPacket << int32(*logEntry.ItemID);
if (logEntry.Count.is_initialized())
if (logEntry.Count.has_value())
_worldPacket << int32(*logEntry.Count);
if (logEntry.OtherTab.is_initialized())
if (logEntry.OtherTab.has_value())
_worldPacket << int8(*logEntry.OtherTab);
}
@@ -883,7 +883,7 @@ ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Guild::GuildNewsEvent con
for (ObjectGuid memberGuid : newsEvent.MemberList)
data << memberGuid;
data.WriteBit(newsEvent.Item.is_initialized());
data.WriteBit(newsEvent.Item.has_value());
data.FlushBits();
if (newsEvent.Item)
+27 -27
View File
@@ -40,36 +40,36 @@ namespace WorldPackets
ObjectGuid GuildGuid;
};
struct GuildInfo
{
ObjectGuid GuildGUID;
uint32 VirtualRealmAddress = 0; ///< a special identifier made from the Index, BattleGroup and Region.
std::string GuildName;
struct GuildInfoRank
{
GuildInfoRank(uint32 id, uint32 order, std::string const& name)
: RankID(id), RankOrder(order), RankName(name) { }
uint32 RankID;
uint32 RankOrder;
std::string RankName;
};
std::vector<GuildInfoRank> Ranks;
uint32 EmblemStyle = 0;
uint32 EmblemColor = 0;
uint32 BorderStyle = 0;
uint32 BorderColor = 0;
uint32 BackgroundColor = 0;
};
class QueryGuildInfoResponse final : public ServerPacket
{
public:
struct GuildInfo
{
ObjectGuid GuildGUID;
uint32 VirtualRealmAddress = 0; ///< a special identifier made from the Index, BattleGroup and Region.
std::string GuildName;
struct GuildInfoRank
{
GuildInfoRank(uint32 id, uint32 order, std::string const& name)
: RankID(id), RankOrder(order), RankName(name) { }
uint32 RankID;
uint32 RankOrder;
std::string RankName;
};
std::vector<GuildInfoRank> Ranks;
uint32 EmblemStyle = 0;
uint32 EmblemColor = 0;
uint32 BorderStyle = 0;
uint32 BorderColor = 0;
uint32 BackgroundColor = 0;
};
QueryGuildInfoResponse();
WorldPacket const* Write() override;
@@ -208,8 +208,8 @@ WorldPacket const* WorldPackets::Inspect::InspectResult::Write()
if (!PvpTalents.empty())
_worldPacket.append(PvpTalents.data(), PvpTalents.size());
_worldPacket.WriteBit(GuildData.is_initialized());
_worldPacket.WriteBit(AzeriteLevel.is_initialized());
_worldPacket.WriteBit(GuildData.has_value());
_worldPacket.WriteBit(AzeriteLevel.has_value());
_worldPacket.FlushBits();
for (PVPBracketData const& bracket : Bracket)
@@ -106,7 +106,7 @@ WorldPacket const* WorldPackets::Item::ItemPurchaseRefundResult::Write()
{
_worldPacket << ItemGUID;
_worldPacket << uint8(Result);
_worldPacket.WriteBit(Contents.is_initialized());
_worldPacket.WriteBit(Contents.has_value());
_worldPacket.FlushBits();
if (Contents)
_worldPacket << *Contents;
@@ -53,7 +53,7 @@ void ItemInstance::Initialize(::Item const* item)
std::vector<int32> const& bonusListIds = item->m_itemData->BonusListIDs;
if (!bonusListIds.empty())
{
ItemBonus = boost::in_place();
ItemBonus.emplace();
ItemBonus->BonusListIDs.insert(ItemBonus->BonusListIDs.end(), bonusListIds.begin(), bonusListIds.end());
ItemBonus->Context = item->GetContext();
}
@@ -82,7 +82,7 @@ void ItemInstance::Initialize(::LootItem const& lootItem)
if (!lootItem.BonusListIDs.empty() || lootItem.randomBonusListId)
{
ItemBonus = boost::in_place();
ItemBonus.emplace();
ItemBonus->BonusListIDs = lootItem.BonusListIDs;
ItemBonus->Context = lootItem.context;
if (lootItem.randomBonusListId)
@@ -102,7 +102,7 @@ void ItemInstance::Initialize(::VoidStorageItem const* voidItem)
if (!voidItem->BonusListIDs.empty())
{
ItemBonus = boost::in_place();
ItemBonus.emplace();
ItemBonus->Context = voidItem->Context;
ItemBonus->BonusListIDs = voidItem->BonusListIDs;
}
@@ -113,13 +113,13 @@ bool ItemInstance::operator==(ItemInstance const& r) const
if (ItemID != r.ItemID)
return false;
if (ItemBonus.is_initialized() != r.ItemBonus.is_initialized())
if (ItemBonus.has_value() != r.ItemBonus.has_value())
return false;
if (Modifications != r.Modifications)
return false;
if (ItemBonus.is_initialized() && *ItemBonus != *r.ItemBonus)
if (ItemBonus.has_value() && *ItemBonus != *r.ItemBonus)
return false;
return true;
@@ -194,7 +194,7 @@ ByteBuffer& operator<<(ByteBuffer& data, ItemInstance const& itemInstance)
{
data << int32(itemInstance.ItemID);
data.WriteBit(itemInstance.ItemBonus.is_initialized());
data.WriteBit(itemInstance.ItemBonus.has_value());
data.FlushBits();
data << itemInstance.Modifications;
@@ -216,7 +216,7 @@ ByteBuffer& operator>>(ByteBuffer& data, ItemInstance& itemInstance)
if (hasItemBonus)
{
itemInstance.ItemBonus = boost::in_place();
itemInstance.ItemBonus.emplace();
data >> *itemInstance.ItemBonus;
}
@@ -76,7 +76,7 @@ ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::LFG::LFGBlackListSlot con
ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::LFG::LFGBlackList const& blackList)
{
data.WriteBit(blackList.PlayerGuid.is_initialized());
data.WriteBit(blackList.PlayerGuid.has_value());
data << uint32(blackList.Slot.size());
if (blackList.PlayerGuid)
data << *blackList.PlayerGuid;
@@ -121,10 +121,10 @@ ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::LFG::LfgPlayerQuestReward
for (WorldPackets::LFG::LfgPlayerQuestRewardCurrency const& bonusCurrency : playerQuestReward.BonusCurrency)
data << bonusCurrency;
data.WriteBit(playerQuestReward.RewardSpellID.is_initialized());
data.WriteBit(playerQuestReward.Unused1.is_initialized());
data.WriteBit(playerQuestReward.Unused2.is_initialized());
data.WriteBit(playerQuestReward.Honor.is_initialized());
data.WriteBit(playerQuestReward.RewardSpellID.has_value());
data.WriteBit(playerQuestReward.Unused1.has_value());
data.WriteBit(playerQuestReward.Unused2.has_value());
data.WriteBit(playerQuestReward.Honor.has_value());
data.FlushBits();
if (playerQuestReward.RewardSpellID)
@@ -303,8 +303,8 @@ WorldPacket const* WorldPackets::LFG::LFGQueueStatus::Write()
ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::LFG::LFGPlayerRewards const& lfgPlayerRewards)
{
data.WriteBit(lfgPlayerRewards.RewardItem.is_initialized());
data.WriteBit(lfgPlayerRewards.RewardCurrency.is_initialized());
data.WriteBit(lfgPlayerRewards.RewardItem.has_value());
data.WriteBit(lfgPlayerRewards.RewardCurrency.has_value());
if (lfgPlayerRewards.RewardItem)
data << *lfgPlayerRewards.RewardItem;
+1 -1
View File
@@ -316,7 +316,7 @@ namespace WorldPackets
{
if (!isCurrency)
{
RewardItem = boost::in_place();
RewardItem.emplace();
RewardItem->ItemID = id;
}
else
@@ -143,8 +143,8 @@ WorldPacket const* WorldPackets::Loot::LootList::Write()
_worldPacket << Owner;
_worldPacket << LootObj;
_worldPacket.WriteBit(Master.is_initialized());
_worldPacket.WriteBit(RoundRobinWinner.is_initialized());
_worldPacket.WriteBit(Master.has_value());
_worldPacket.WriteBit(RoundRobinWinner.has_value());
_worldPacket.FlushBits();
@@ -124,8 +124,8 @@ ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Mail::MailListEntry const
data << float(entry.DaysLeft);
data << int32(entry.MailTemplateID);
data << uint32(entry.Attachments.size());
data.WriteBit(entry.SenderCharacter.is_initialized());
data.WriteBit(entry.AltSenderID.is_initialized());
data.WriteBit(entry.SenderCharacter.has_value());
data.WriteBit(entry.AltSenderID.has_value());
data.WriteBits(entry.Subject.size(), 8);
data.WriteBits(entry.Body.size(), 13);
data.FlushBits();
+17 -17
View File
@@ -50,14 +50,14 @@ WorldPacket const* WorldPackets::Misc::SetCurrency::Write()
_worldPacket << int32(Type);
_worldPacket << int32(Quantity);
_worldPacket << uint32(Flags);
_worldPacket.WriteBit(WeeklyQuantity.is_initialized());
_worldPacket.WriteBit(TrackedQuantity.is_initialized());
_worldPacket.WriteBit(MaxQuantity.is_initialized());
_worldPacket.WriteBit(Unused901.is_initialized());
_worldPacket.WriteBit(WeeklyQuantity.has_value());
_worldPacket.WriteBit(TrackedQuantity.has_value());
_worldPacket.WriteBit(MaxQuantity.has_value());
_worldPacket.WriteBit(Unused901.has_value());
_worldPacket.WriteBit(SuppressChatLog);
_worldPacket.WriteBit(QuantityChange.is_initialized());
_worldPacket.WriteBit(QuantityGainSource.is_initialized());
_worldPacket.WriteBit(QuantityLostSource.is_initialized());
_worldPacket.WriteBit(QuantityChange.has_value());
_worldPacket.WriteBit(QuantityGainSource.has_value());
_worldPacket.WriteBit(QuantityLostSource.has_value());
_worldPacket.FlushBits();
if (WeeklyQuantity)
@@ -98,11 +98,11 @@ WorldPacket const* WorldPackets::Misc::SetupCurrency::Write()
_worldPacket << int32(data.Type);
_worldPacket << int32(data.Quantity);
_worldPacket.WriteBit(data.WeeklyQuantity.is_initialized());
_worldPacket.WriteBit(data.MaxWeeklyQuantity.is_initialized());
_worldPacket.WriteBit(data.TrackedQuantity.is_initialized());
_worldPacket.WriteBit(data.MaxQuantity.is_initialized());
_worldPacket.WriteBit(data.Unused901.is_initialized());
_worldPacket.WriteBit(data.WeeklyQuantity.has_value());
_worldPacket.WriteBit(data.MaxWeeklyQuantity.has_value());
_worldPacket.WriteBit(data.TrackedQuantity.has_value());
_worldPacket.WriteBit(data.MaxQuantity.has_value());
_worldPacket.WriteBit(data.Unused901.has_value());
_worldPacket.WriteBits(data.Flags, 5);
_worldPacket.FlushBits();
@@ -181,9 +181,9 @@ WorldPacket const* WorldPackets::Misc::WorldServerInfo::Write()
_worldPacket << uint8(IsTournamentRealm);
_worldPacket.WriteBit(XRealmPvpAlert);
_worldPacket.WriteBit(BlockExitingLoadingScreen);
_worldPacket.WriteBit(RestrictedAccountMaxLevel.is_initialized());
_worldPacket.WriteBit(RestrictedAccountMaxMoney.is_initialized());
_worldPacket.WriteBit(InstanceGroupSize.is_initialized());
_worldPacket.WriteBit(RestrictedAccountMaxLevel.has_value());
_worldPacket.WriteBit(RestrictedAccountMaxMoney.has_value());
_worldPacket.WriteBit(InstanceGroupSize.has_value());
if (RestrictedAccountMaxLevel)
_worldPacket << uint32(*RestrictedAccountMaxLevel);
@@ -680,8 +680,8 @@ WorldPacket const* WorldPackets::Misc::OverrideLight::Write()
WorldPacket const* WorldPackets::Misc::DisplayGameError::Write()
{
_worldPacket << uint32(Error);
_worldPacket.WriteBit(Arg.is_initialized());
_worldPacket.WriteBit(Arg2.is_initialized());
_worldPacket.WriteBit(Arg.has_value());
_worldPacket.WriteBit(Arg2.has_value());
_worldPacket.FlushBits();
if (Arg)
@@ -265,11 +265,11 @@ ByteBuffer& WorldPackets::operator<<(ByteBuffer& data, Movement::MovementSpline
data.WriteBit(movementSpline.VehicleExitVoluntary);
data.WriteBit(movementSpline.Interpolate);
data.WriteBits(movementSpline.PackedDeltas.size(), 16);
data.WriteBit(movementSpline.SplineFilter.is_initialized());
data.WriteBit(movementSpline.SpellEffectExtraData.is_initialized());
data.WriteBit(movementSpline.JumpExtraData.is_initialized());
data.WriteBit(movementSpline.AnimTierTransition.is_initialized());
data.WriteBit(movementSpline.Unknown901.is_initialized());
data.WriteBit(movementSpline.SplineFilter.has_value());
data.WriteBit(movementSpline.SpellEffectExtraData.has_value());
data.WriteBit(movementSpline.JumpExtraData.has_value());
data.WriteBit(movementSpline.AnimTierTransition.has_value());
data.WriteBit(movementSpline.Unknown901.has_value());
data.FlushBits();
if (movementSpline.SplineFilter)
@@ -348,9 +348,9 @@ void WorldPackets::Movement::CommonMovement::WriteCreateObjectSplineDataBlock(::
bool hasFadeObjectTime = data.WriteBit(moveSpline.splineflags.fadeObject && moveSpline.effect_start_time < moveSpline.Duration());
data.WriteBits(moveSpline.getPath().size(), 16);
data.WriteBit(false); // HasSplineFilter
data.WriteBit(moveSpline.spell_effect_extra.is_initialized()); // HasSpellEffectExtraData
data.WriteBit(moveSpline.spell_effect_extra.has_value()); // HasSpellEffectExtraData
bool hasJumpExtraData = data.WriteBit(moveSpline.splineflags.parabolic && (!moveSpline.spell_effect_extra || moveSpline.effect_start_time));
data.WriteBit(moveSpline.anim_tier.is_initialized()); // HasAnimationTierTransition
data.WriteBit(moveSpline.anim_tier.has_value()); // HasAnimationTierTransition
data.WriteBit(false); // HasUnknown901
data.FlushBits();
@@ -622,8 +622,8 @@ WorldPacket const* WorldPackets::Movement::TransferPending::Write()
{
_worldPacket << int32(MapID);
_worldPacket << OldMapPosition;
_worldPacket.WriteBit(Ship.is_initialized());
_worldPacket.WriteBit(TransferSpellID.is_initialized());
_worldPacket.WriteBit(Ship.has_value());
_worldPacket.WriteBit(TransferSpellID.has_value());
if (Ship)
{
_worldPacket << uint32(Ship->ID);
@@ -674,8 +674,8 @@ WorldPacket const* WorldPackets::Movement::MoveTeleport::Write()
_worldPacket << float(Facing);
_worldPacket << uint8(PreloadWorld);
_worldPacket.WriteBit(TransportGUID.is_initialized());
_worldPacket.WriteBit(Vehicle.is_initialized());
_worldPacket.WriteBit(TransportGUID.has_value());
_worldPacket.WriteBit(Vehicle.has_value());
_worldPacket.FlushBits();
if (Vehicle)
@@ -718,15 +718,15 @@ WorldPacket const* WorldPackets::Movement::MoveUpdateTeleport::Write()
_worldPacket << *Status;
_worldPacket << uint32(MovementForces ? MovementForces->size() : 0);
_worldPacket.WriteBit(WalkSpeed.is_initialized());
_worldPacket.WriteBit(RunSpeed.is_initialized());
_worldPacket.WriteBit(RunBackSpeed.is_initialized());
_worldPacket.WriteBit(SwimSpeed.is_initialized());
_worldPacket.WriteBit(SwimBackSpeed.is_initialized());
_worldPacket.WriteBit(FlightSpeed.is_initialized());
_worldPacket.WriteBit(FlightBackSpeed.is_initialized());
_worldPacket.WriteBit(TurnRate.is_initialized());
_worldPacket.WriteBit(PitchRate.is_initialized());
_worldPacket.WriteBit(WalkSpeed.has_value());
_worldPacket.WriteBit(RunSpeed.has_value());
_worldPacket.WriteBit(RunBackSpeed.has_value());
_worldPacket.WriteBit(SwimSpeed.has_value());
_worldPacket.WriteBit(SwimBackSpeed.has_value());
_worldPacket.WriteBit(FlightSpeed.has_value());
_worldPacket.WriteBit(FlightBackSpeed.has_value());
_worldPacket.WriteBit(TurnRate.has_value());
_worldPacket.WriteBit(PitchRate.has_value());
_worldPacket.FlushBits();
if (MovementForces)
@@ -839,7 +839,7 @@ void WorldPackets::Movement::MoveKnockBackAck::Read()
bool hasSpeeds = _worldPacket.ReadBit();
if (hasSpeeds)
{
Speeds = boost::in_place();
Speeds.emplace();
_worldPacket >> *Speeds;
}
}
@@ -995,12 +995,12 @@ ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Movement::MoveSetCompound
{
data << uint16(stateChange.MessageID);
data << uint32(stateChange.SequenceIndex);
data.WriteBit(stateChange.Speed.is_initialized());
data.WriteBit(stateChange.KnockBack.is_initialized());
data.WriteBit(stateChange.VehicleRecID.is_initialized());
data.WriteBit(stateChange.CollisionHeight.is_initialized());
data.WriteBit(stateChange.MovementForce_.is_initialized());
data.WriteBit(stateChange.MovementForceGUID.is_initialized());
data.WriteBit(stateChange.Speed.has_value());
data.WriteBit(stateChange.KnockBack.has_value());
data.WriteBit(stateChange.VehicleRecID.has_value());
data.WriteBit(stateChange.CollisionHeight.has_value());
data.WriteBit(stateChange.MovementForce_.has_value());
data.WriteBit(stateChange.MovementForceGUID.has_value());
data.FlushBits();
if (stateChange.MovementForce_)
@@ -234,14 +234,14 @@ namespace WorldPackets
uint32 SequenceIndex = 0; ///< Unit movement packet index, incremented each time
};
struct ShipTransferPending
{
uint32 ID = 0; ///< gameobject_template.entry of the transport the player is teleporting on
int32 OriginMapID = -1; ///< Map id the player is currently on (before teleport)
};
class TransferPending final : public ServerPacket
{
struct ShipTransferPending
{
uint32 ID = 0; ///< gameobject_template.entry of the transport the player is teleporting on
int32 OriginMapID = -1; ///< Map id the player is currently on (before teleport)
};
public:
TransferPending() : ServerPacket(SMSG_TRANSFER_PENDING, 16) { }
@@ -80,7 +80,7 @@ WorldPacket const* GossipMessage::Write()
_worldPacket.WriteBits(options.Text.size(), 12);
_worldPacket.WriteBits(options.Confirm.size(), 12);
_worldPacket.WriteBits(AsUnderlyingType(options.Status), 2);
_worldPacket.WriteBit(options.SpellID.is_initialized());
_worldPacket.WriteBit(options.SpellID.has_value());
_worldPacket.FlushBits();
_worldPacket << options.Treasure;
+10 -10
View File
@@ -106,7 +106,7 @@ void WorldPackets::Party::PartyInviteResponse::Read()
bool hasRolesDesired = _worldPacket.ReadBit();
if (hasRolesDesired)
{
RolesDesired = boost::in_place();
RolesDesired.emplace();
_worldPacket >> *RolesDesired;
}
}
@@ -221,12 +221,12 @@ ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Party::PartyMemberStats c
for (WorldPackets::Party::PartyMemberAuraStates const& aura : memberStats.Auras)
data << aura;
data.WriteBit(memberStats.PetStats.is_initialized());
data.WriteBit(memberStats.PetStats.has_value());
data.FlushBits();
data << memberStats.DungeonScore;
if (memberStats.PetStats.is_initialized())
if (memberStats.PetStats.has_value())
data << *memberStats.PetStats;
return data;
@@ -484,21 +484,21 @@ WorldPacket const* WorldPackets::Party::PartyUpdate::Write()
_worldPacket << uint32(SequenceNum);
_worldPacket << LeaderGUID;
_worldPacket << uint32(PlayerList.size());
_worldPacket.WriteBit(LfgInfos.is_initialized());
_worldPacket.WriteBit(LootSettings.is_initialized());
_worldPacket.WriteBit(DifficultySettings.is_initialized());
_worldPacket.WriteBit(LfgInfos.has_value());
_worldPacket.WriteBit(LootSettings.has_value());
_worldPacket.WriteBit(DifficultySettings.has_value());
_worldPacket.FlushBits();
for (WorldPackets::Party::PartyPlayerInfo const& playerInfos : PlayerList)
_worldPacket << playerInfos;
if (LootSettings.is_initialized())
if (LootSettings.has_value())
_worldPacket << *LootSettings;
if (DifficultySettings.is_initialized())
if (DifficultySettings.has_value())
_worldPacket << *DifficultySettings;
if (LfgInfos.is_initialized())
if (LfgInfos.has_value())
_worldPacket << *LfgInfos;
return &_worldPacket;
@@ -640,7 +640,7 @@ void WorldPackets::Party::PartyMemberFullState::Initialize(Player const* player)
{
::Pet* pet = player->GetPet();
MemberStats.PetStats = boost::in_place();
MemberStats.PetStats.emplace();
MemberStats.PetStats->GUID = pet->GetGUID();
MemberStats.PetStats->Name = pet->GetName();
@@ -104,7 +104,7 @@ WorldPacket const* WorldPackets::Pet::PetNameInvalid::Write()
_worldPacket << uint8(RenameData.NewName.length());
_worldPacket.WriteBit(RenameData.DeclinedNames.is_initialized());
_worldPacket.WriteBit(RenameData.DeclinedNames.has_value());
if (RenameData.DeclinedNames)
{
@@ -128,7 +128,7 @@ void WorldPackets::Pet::PetRename::Read()
if (_worldPacket.ReadBit())
{
RenameData.DeclinedNames = boost::in_place();
RenameData.DeclinedNames.emplace();
int32 count[MAX_DECLINED_NAME_CASES];
for (int32 i = 0; i < MAX_DECLINED_NAME_CASES; i++)
count[i] = _worldPacket.ReadBits(7);
@@ -107,8 +107,8 @@ void WorldPackets::Query::QueryPlayerName::Read()
ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Query::PlayerGuidLookupHint const& lookupHint)
{
data.WriteBit(lookupHint.VirtualRealmAddress.is_initialized());
data.WriteBit(lookupHint.NativeRealmAddress.is_initialized());
data.WriteBit(lookupHint.VirtualRealmAddress.has_value());
data.WriteBit(lookupHint.NativeRealmAddress.has_value());
data.FlushBits();
if (lookupHint.VirtualRealmAddress)
+4 -10
View File
@@ -61,12 +61,6 @@ namespace WorldPackets
struct CreatureStats
{
CreatureStats()
{
Flags.fill(0);
ProxyCreatureID.fill(0);
}
std::string Title;
std::string TitleAlt;
std::string CursorName;
@@ -86,10 +80,10 @@ namespace WorldPackets
int32 CreatureDifficultyID = 0;
int32 WidgetSetID = 0;
int32 WidgetSetUnitConditionID = 0;
std::array<uint32, 2> Flags;
std::array<uint32, 2> ProxyCreatureID;
std::array<std::string, 4> Name;
std::array<std::string, 4> NameAlt;
std::array<uint32, 2> Flags = { };
std::array<uint32, 2> ProxyCreatureID = { };
std::array<std::string, 4> Name = { };
std::array<std::string, 4> NameAlt = { };
};
class QueryCreatureResponse final : public ServerPacket
@@ -710,9 +710,9 @@ ByteBuffer& operator<<(ByteBuffer& data, PlayerChoiceResponse const& playerChoic
data.WriteBits(playerChoiceResponse.ButtonTooltip.length(), 9);
data.WriteBits(playerChoiceResponse.Description.length(), 11);
data.WriteBits(playerChoiceResponse.Confirmation.length(), 7);
data.WriteBit(playerChoiceResponse.RewardQuestID.is_initialized());
data.WriteBit(playerChoiceResponse.Reward.is_initialized());
data.WriteBit(playerChoiceResponse.MawPower.is_initialized());
data.WriteBit(playerChoiceResponse.RewardQuestID.has_value());
data.WriteBit(playerChoiceResponse.Reward.has_value());
data.WriteBit(playerChoiceResponse.MawPower.has_value());
data.FlushBits();
if (playerChoiceResponse.Reward)
+18 -18
View File
@@ -101,13 +101,13 @@ ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Spells::AuraDataInfo cons
data << uint16(auraData.CastLevel);
data << uint8(auraData.Applications);
data << int32(auraData.ContentTuningID);
data.WriteBit(auraData.CastUnit.is_initialized());
data.WriteBit(auraData.Duration.is_initialized());
data.WriteBit(auraData.Remaining.is_initialized());
data.WriteBit(auraData.TimeMod.is_initialized());
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.is_initialized());
data.WriteBit(auraData.ContentTuning.has_value());
if (auraData.ContentTuning)
data << *auraData.ContentTuning;
@@ -136,7 +136,7 @@ ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Spells::AuraDataInfo cons
ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Spells::AuraInfo const& aura)
{
data << aura.Slot;
data.WriteBit(aura.AuraData.is_initialized());
data.WriteBit(aura.AuraData.has_value());
data.FlushBits();
if (aura.AuraData)
@@ -159,7 +159,7 @@ WorldPacket const* WorldPackets::Spells::AuraUpdate::Write()
ByteBuffer& operator>>(ByteBuffer& buffer, Optional<WorldPackets::Spells::TargetLocation>& location)
{
location = boost::in_place();
location.emplace();
buffer >> location->Transport;
buffer >> location->Location.m_positionX;
buffer >> location->Location.m_positionY;
@@ -244,7 +244,7 @@ ByteBuffer& operator>>(ByteBuffer& buffer, WorldPackets::Spells::SpellCastReques
if (hasMoveUpdate)
{
request.MoveUpdate = boost::in_place();
request.MoveUpdate.emplace();
buffer >> *request.MoveUpdate;
}
@@ -298,10 +298,10 @@ ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Spells::TargetLocation co
ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Spells::SpellTargetData const& spellTargetData)
{
data.WriteBits(spellTargetData.Flags, 26);
data.WriteBit(spellTargetData.SrcLocation.is_initialized());
data.WriteBit(spellTargetData.DstLocation.is_initialized());
data.WriteBit(spellTargetData.Orientation.is_initialized());
data.WriteBit(spellTargetData.MapID.is_initialized());
data.WriteBit(spellTargetData.SrcLocation.has_value());
data.WriteBit(spellTargetData.DstLocation.has_value());
data.WriteBit(spellTargetData.Orientation.has_value());
data.WriteBit(spellTargetData.MapID.has_value());
data.WriteBits(spellTargetData.Name.size(), 7);
data.FlushBits();
@@ -409,7 +409,7 @@ ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Spells::SpellCastData con
data.WriteBits(spellCastData.HitStatus.size(), 16);
data.WriteBits(spellCastData.MissStatus.size(), 16);
data.WriteBits(spellCastData.RemainingPower.size(), 9);
data.WriteBit(spellCastData.RemainingRunes.is_initialized());
data.WriteBit(spellCastData.RemainingRunes.has_value());
data.WriteBits(spellCastData.TargetPoints.size(), 16);
data.FlushBits();
@@ -646,8 +646,8 @@ ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Spells::SpellHistoryEntry
data << int32(historyEntry.RecoveryTime);
data << int32(historyEntry.CategoryRecoveryTime);
data << float(historyEntry.ModRate);
data.WriteBit(historyEntry.unused622_1.is_initialized());
data.WriteBit(historyEntry.unused622_2.is_initialized());
data.WriteBit(historyEntry.unused622_1.has_value());
data.WriteBit(historyEntry.unused622_2.has_value());
data.WriteBit(historyEntry.OnHold);
if (historyEntry.unused622_1)
data << uint32(*historyEntry.unused622_1);
@@ -833,8 +833,8 @@ WorldPacket const* WorldPackets::Spells::SpellChannelStart::Write()
_worldPacket << int32(SpellID);
_worldPacket << Visual;
_worldPacket << uint32(ChannelDuration);
_worldPacket.WriteBit(InterruptImmunities.is_initialized());
_worldPacket.WriteBit(HealPrediction.is_initialized());
_worldPacket.WriteBit(InterruptImmunities.has_value());
_worldPacket.WriteBit(HealPrediction.has_value());
_worldPacket.FlushBits();
if (InterruptImmunities)
@@ -967,7 +967,7 @@ void WorldPackets::Spells::UpdateMissileTrajectory::Read()
_worldPacket.ResetBitPos();
if (hasStatus)
{
Status = boost::in_place();
Status.emplace();
_worldPacket >> *Status;
}
}
@@ -71,14 +71,14 @@ WorldPacket const* FeatureSystemStatus::Write()
_worldPacket << uint32(HiddenUIClubsPresenceUpdateTimer);
_worldPacket.WriteBit(VoiceEnabled);
_worldPacket.WriteBit(EuropaTicketSystemStatus.is_initialized());
_worldPacket.WriteBit(EuropaTicketSystemStatus.has_value());
_worldPacket.WriteBit(ScrollOfResurrectionEnabled);
_worldPacket.WriteBit(BpayStoreEnabled);
_worldPacket.WriteBit(BpayStoreAvailable);
_worldPacket.WriteBit(BpayStoreDisabledByParentalControls);
_worldPacket.WriteBit(ItemRestorationButtonEnabled);
_worldPacket.WriteBit(BrowserEnabled);
_worldPacket.WriteBit(SessionAlert.is_initialized());
_worldPacket.WriteBit(SessionAlert.has_value());
_worldPacket.WriteBit(RAFSystem.Enabled);
_worldPacket.WriteBit(RAFSystem.RecruitingEnabled);
_worldPacket.WriteBit(CharUndeleteEnabled);
@@ -173,7 +173,7 @@ WorldPacket const* FeatureSystemStatusGlueScreen::Write()
_worldPacket.WriteBit(LiveRegionAccountCopyEnabled);
_worldPacket.WriteBit(LiveRegionKeyBindingsCopyEnabled);
_worldPacket.WriteBit(Unknown901CheckoutRelated);
_worldPacket.WriteBit(EuropaTicketSystemStatus.is_initialized());
_worldPacket.WriteBit(EuropaTicketSystemStatus.has_value());
_worldPacket.FlushBits();
if (EuropaTicketSystemStatus)
@@ -33,13 +33,13 @@ WorldPacket const* WorldPackets::Taxi::TaxiNodeStatus::Write()
WorldPacket const* WorldPackets::Taxi::ShowTaxiNodes::Write()
{
_worldPacket.WriteBit(WindowInfo.is_initialized());
_worldPacket.WriteBit(WindowInfo.has_value());
_worldPacket.FlushBits();
_worldPacket << uint32(CanLandNodes.size());
_worldPacket << uint32(CanUseNodes.size());
if (WindowInfo.is_initialized())
if (WindowInfo.has_value())
{
_worldPacket << WindowInfo->UnitGUID;
_worldPacket << uint32(WindowInfo->CurrentNode);
@@ -76,11 +76,11 @@ void WorldPackets::Ticket::SubmitUserFeedback::Read()
}
}
WorldPackets::Ticket::SupportTicketSubmitComplaint::SupportTicketChatLine::SupportTicketChatLine(time_t timestamp, std::string const& text) :
WorldPackets::Ticket::SupportTicketChatLine::SupportTicketChatLine(time_t timestamp, std::string const& text) :
Timestamp(timestamp), Text(text)
{ }
ByteBuffer& operator>>(ByteBuffer& data, WorldPackets::Ticket::SupportTicketSubmitComplaint::SupportTicketChatLine& line)
ByteBuffer& operator>>(ByteBuffer& data, WorldPackets::Ticket::SupportTicketChatLine& line)
{
data >> line.Timestamp;
line.Text = data.ReadString(data.ReadBits(12));
@@ -88,12 +88,12 @@ ByteBuffer& operator>>(ByteBuffer& data, WorldPackets::Ticket::SupportTicketSubm
return data;
}
WorldPackets::Ticket::SupportTicketSubmitComplaint::SupportTicketChatLine::SupportTicketChatLine(ByteBuffer& data)
WorldPackets::Ticket::SupportTicketChatLine::SupportTicketChatLine(ByteBuffer& data)
{
data >> *this;
}
ByteBuffer& operator>>(ByteBuffer& data, WorldPackets::Ticket::SupportTicketSubmitComplaint::SupportTicketChatLog& chatlog)
ByteBuffer& operator>>(ByteBuffer& data, WorldPackets::Ticket::SupportTicketChatLog& chatlog)
{
uint32 linesCount = data.read<uint32>();
bool hasReportLineIndex = data.ReadBit();
@@ -108,7 +108,7 @@ ByteBuffer& operator>>(ByteBuffer& data, WorldPackets::Ticket::SupportTicketSubm
return data;
}
ByteBuffer& operator>>(ByteBuffer& data, WorldPackets::Ticket::SupportTicketSubmitComplaint::SupportTicketHorusChatLine& line)
ByteBuffer& operator>>(ByteBuffer& data, WorldPackets::Ticket::SupportTicketHorusChatLine& line)
{
data >> line.Timestamp;
data >> line.AuthorGUID;
@@ -124,13 +124,13 @@ ByteBuffer& operator>>(ByteBuffer& data, WorldPackets::Ticket::SupportTicketSubm
if (hasChannelGUID)
{
line.ChannelGUID = boost::in_place();
line.ChannelGUID.emplace();
data >> *line.ChannelGUID;
}
if (hasRealmAddress)
{
line.RealmAddress = boost::in_place();
line.RealmAddress.emplace();
data >> line.RealmAddress->VirtualRealmAddress;
data >> line.RealmAddress->field_4;
data >> line.RealmAddress->field_6;
@@ -144,12 +144,12 @@ ByteBuffer& operator>>(ByteBuffer& data, WorldPackets::Ticket::SupportTicketSubm
return data;
}
WorldPackets::Ticket::SupportTicketSubmitComplaint::SupportTicketHorusChatLine::SupportTicketHorusChatLine(ByteBuffer& data)
WorldPackets::Ticket::SupportTicketHorusChatLine::SupportTicketHorusChatLine(ByteBuffer& data)
{
data >> *this;
}
ByteBuffer& operator>>(ByteBuffer& data, WorldPackets::Ticket::SupportTicketSubmitComplaint::SupportTicketHorusChatLog& chatlog)
ByteBuffer& operator>>(ByteBuffer& data, WorldPackets::Ticket::SupportTicketHorusChatLog& chatlog)
{
uint32 linesCount = data.read<uint32>();
data.ResetBitPos();
@@ -160,9 +160,9 @@ ByteBuffer& operator>>(ByteBuffer& data, WorldPackets::Ticket::SupportTicketSubm
return data;
}
ByteBuffer& operator>>(ByteBuffer& data, Optional<WorldPackets::Ticket::SupportTicketSubmitComplaint::SupportTicketMailInfo>& mail)
ByteBuffer& operator>>(ByteBuffer& data, Optional<WorldPackets::Ticket::SupportTicketMailInfo>& mail)
{
mail = boost::in_place();
mail.emplace();
data >> mail->MailID;
uint32 bodyLength = data.ReadBits(13);
@@ -173,9 +173,9 @@ ByteBuffer& operator>>(ByteBuffer& data, Optional<WorldPackets::Ticket::SupportT
return data;
}
ByteBuffer& operator>>(ByteBuffer& data, Optional<WorldPackets::Ticket::SupportTicketSubmitComplaint::SupportTicketCalendarEventInfo>& event)
ByteBuffer& operator>>(ByteBuffer& data, Optional<WorldPackets::Ticket::SupportTicketCalendarEventInfo>& event)
{
event = boost::in_place();
event.emplace();
data >> event->EventID;
data >> event->InviteID;
@@ -184,9 +184,9 @@ ByteBuffer& operator>>(ByteBuffer& data, Optional<WorldPackets::Ticket::SupportT
return data;
}
ByteBuffer& operator>>(ByteBuffer& data, Optional<WorldPackets::Ticket::SupportTicketSubmitComplaint::SupportTicketPetInfo>& pet)
ByteBuffer& operator>>(ByteBuffer& data, Optional<WorldPackets::Ticket::SupportTicketPetInfo>& pet)
{
pet = boost::in_place();
pet.emplace();
data >> pet->PetID;
pet->PetName = data.ReadString(data.ReadBits(8));
@@ -194,9 +194,9 @@ ByteBuffer& operator>>(ByteBuffer& data, Optional<WorldPackets::Ticket::SupportT
return data;
}
ByteBuffer& operator>>(ByteBuffer& data, Optional<WorldPackets::Ticket::SupportTicketSubmitComplaint::SupportTicketGuildInfo>& guild)
ByteBuffer& operator>>(ByteBuffer& data, Optional<WorldPackets::Ticket::SupportTicketGuildInfo>& guild)
{
guild = boost::in_place();
guild.emplace();
uint32 nameLength = data.ReadBits(7);
data >> guild->GuildID;
@@ -205,9 +205,9 @@ ByteBuffer& operator>>(ByteBuffer& data, Optional<WorldPackets::Ticket::SupportT
return data;
}
ByteBuffer& operator>>(ByteBuffer& data, Optional<WorldPackets::Ticket::SupportTicketSubmitComplaint::SupportTicketLFGListSearchResult>& lfgListSearchResult)
ByteBuffer& operator>>(ByteBuffer& data, Optional<WorldPackets::Ticket::SupportTicketLFGListSearchResult>& lfgListSearchResult)
{
lfgListSearchResult = boost::in_place();
lfgListSearchResult.emplace();
data >> lfgListSearchResult->RideTicket;
data >> lfgListSearchResult->GroupFinderActivityID;
@@ -228,9 +228,9 @@ ByteBuffer& operator>>(ByteBuffer& data, Optional<WorldPackets::Ticket::SupportT
return data;
}
ByteBuffer& operator>>(ByteBuffer& data, Optional<WorldPackets::Ticket::SupportTicketSubmitComplaint::SupportTicketLFGListApplicant>& lfgListApplicant)
ByteBuffer& operator>>(ByteBuffer& data, Optional<WorldPackets::Ticket::SupportTicketLFGListApplicant>& lfgListApplicant)
{
lfgListApplicant = boost::in_place();
lfgListApplicant.emplace();
data >> lfgListApplicant->RideTicket;
lfgListApplicant->Comment = data.ReadString(data.ReadBits(9));
@@ -238,9 +238,9 @@ ByteBuffer& operator>>(ByteBuffer& data, Optional<WorldPackets::Ticket::SupportT
return data;
}
ByteBuffer& operator>>(ByteBuffer& data, Optional<WorldPackets::Ticket::SupportTicketSubmitComplaint::SupportTicketClubFinderResult>& clubInfo)
ByteBuffer& operator>>(ByteBuffer& data, Optional<WorldPackets::Ticket::SupportTicketClubFinderResult>& clubInfo)
{
clubInfo = boost::in_place();
clubInfo.emplace();
data >> clubInfo->ClubFinderPostingID;
data >> clubInfo->ClubID;
@@ -250,9 +250,9 @@ ByteBuffer& operator>>(ByteBuffer& data, Optional<WorldPackets::Ticket::SupportT
return data;
}
ByteBuffer& operator>>(ByteBuffer& data, Optional<WorldPackets::Ticket::SupportTicketSubmitComplaint::SupportTicketUnused910>& unused)
ByteBuffer& operator>>(ByteBuffer& data, Optional<WorldPackets::Ticket::SupportTicketUnused910>& unused)
{
unused = boost::in_place();
unused.emplace();
uint32 field_0Length = data.ReadBits(7);
data >> unused->field_104;
@@ -283,7 +283,7 @@ void WorldPackets::Ticket::SupportTicketSubmitComplaint::Read()
if (hasClubMessage)
{
CommunityMessage = boost::in_place();
CommunityMessage.emplace();
CommunityMessage->IsPlayerUsingVoice = _worldPacket.ReadBit();
_worldPacket.ResetBitPos();
}
+105 -105
View File
@@ -104,114 +104,114 @@ namespace WorldPackets
bool IsSuggestion = false;
};
struct SupportTicketChatLine
{
SupportTicketChatLine(ByteBuffer& data);
SupportTicketChatLine(time_t timestamp, std::string const& text);
WorldPackets::Timestamp<> Timestamp;
std::string Text;
};
struct SupportTicketChatLog
{
std::vector<SupportTicketChatLine> Lines;
Optional<uint32> ReportLineIndex;
};
struct SupportTicketHorusChatLine
{
SupportTicketHorusChatLine(ByteBuffer& data);
struct SenderRealm
{
uint32 VirtualRealmAddress;
uint16 field_4;
uint8 field_6;
};
WorldPackets::Timestamp<> Timestamp;
ObjectGuid AuthorGUID;
Optional<uint64> ClubID;
Optional<ObjectGuid> ChannelGUID;
Optional<SenderRealm> RealmAddress;
Optional<int32> SlashCmd;
std::string Text;
};
struct SupportTicketHorusChatLog
{
std::vector<SupportTicketHorusChatLine> Lines;
};
struct SupportTicketMailInfo
{
int32 MailID = 0;
std::string MailSubject;
std::string MailBody;
};
struct SupportTicketCalendarEventInfo
{
uint64 EventID = 0;
uint64 InviteID = 0;
std::string EventTitle;
};
struct SupportTicketPetInfo
{
ObjectGuid PetID;
std::string PetName;
};
struct SupportTicketGuildInfo
{
ObjectGuid GuildID;
std::string GuildName;
};
struct SupportTicketLFGListSearchResult
{
WorldPackets::LFG::RideTicket RideTicket;
uint32 GroupFinderActivityID = 0;
ObjectGuid LastTitleAuthorGuid;
ObjectGuid LastDescriptionAuthorGuid;
ObjectGuid LastVoiceChatAuthorGuid;
ObjectGuid ListingCreatorGuid;
ObjectGuid Unknown735;
std::string Title;
std::string Description;
std::string VoiceChat;
};
struct SupportTicketLFGListApplicant
{
WorldPackets::LFG::RideTicket RideTicket;
std::string Comment;
};
struct SupportTicketCommunityMessage
{
bool IsPlayerUsingVoice = false;
};
struct SupportTicketClubFinderResult
{
uint64 ClubFinderPostingID = 0;
uint64 ClubID = 0;
ObjectGuid ClubFinderGUID;
std::string ClubName;
};
struct SupportTicketUnused910
{
std::string field_0;
ObjectGuid field_104;
};
class SupportTicketSubmitComplaint final : public ClientPacket
{
public:
struct SupportTicketChatLine
{
SupportTicketChatLine(ByteBuffer& data);
SupportTicketChatLine(time_t timestamp, std::string const& text);
WorldPackets::Timestamp<> Timestamp;
std::string Text;
};
struct SupportTicketChatLog
{
std::vector<SupportTicketChatLine> Lines;
Optional<uint32> ReportLineIndex;
};
struct SupportTicketHorusChatLine
{
SupportTicketHorusChatLine(ByteBuffer& data);
struct SenderRealm
{
uint32 VirtualRealmAddress;
uint16 field_4;
uint8 field_6;
};
WorldPackets::Timestamp<> Timestamp;
ObjectGuid AuthorGUID;
Optional<uint64> ClubID;
Optional<ObjectGuid> ChannelGUID;
Optional<SenderRealm> RealmAddress;
Optional<int32> SlashCmd;
std::string Text;
};
struct SupportTicketHorusChatLog
{
std::vector<SupportTicketHorusChatLine> Lines;
};
struct SupportTicketMailInfo
{
int32 MailID = 0;
std::string MailSubject;
std::string MailBody;
};
struct SupportTicketCalendarEventInfo
{
uint64 EventID = 0;
uint64 InviteID = 0;
std::string EventTitle;
};
struct SupportTicketPetInfo
{
ObjectGuid PetID;
std::string PetName;
};
struct SupportTicketGuildInfo
{
ObjectGuid GuildID;
std::string GuildName;
};
struct SupportTicketLFGListSearchResult
{
WorldPackets::LFG::RideTicket RideTicket;
uint32 GroupFinderActivityID = 0;
ObjectGuid LastTitleAuthorGuid;
ObjectGuid LastDescriptionAuthorGuid;
ObjectGuid LastVoiceChatAuthorGuid;
ObjectGuid ListingCreatorGuid;
ObjectGuid Unknown735;
std::string Title;
std::string Description;
std::string VoiceChat;
};
struct SupportTicketLFGListApplicant
{
WorldPackets::LFG::RideTicket RideTicket;
std::string Comment;
};
struct SupportTicketCommunityMessage
{
bool IsPlayerUsingVoice = false;
};
struct SupportTicketClubFinderResult
{
uint64 ClubFinderPostingID = 0;
uint64 ClubID = 0;
ObjectGuid ClubFinderGUID;
std::string ClubName;
};
struct SupportTicketUnused910
{
std::string field_0;
ObjectGuid field_104;
};
SupportTicketSubmitComplaint(WorldPacket&& packet) : ClientPacket(CMSG_SUPPORT_TICKET_SUBMIT_COMPLAINT, std::move(packet)) { }
void Read() override;
@@ -82,7 +82,7 @@ WorldPacket const* WorldPackets::Trade::TradeStatus::Write()
return &_worldPacket;
}
ByteBuffer& operator<<(ByteBuffer& buffer, WorldPackets::Trade::TradeUpdated::UnwrappedTradeItem const& unwrappedTradeItem)
ByteBuffer& operator<<(ByteBuffer& buffer, WorldPackets::Trade::UnwrappedTradeItem const& unwrappedTradeItem)
{
buffer << int32(unwrappedTradeItem.EnchantID);
buffer << int32(unwrappedTradeItem.OnUseEnchantmentID);
@@ -100,13 +100,13 @@ ByteBuffer& operator<<(ByteBuffer& buffer, WorldPackets::Trade::TradeUpdated::Un
return buffer;
}
ByteBuffer& operator<<(ByteBuffer& buffer, WorldPackets::Trade::TradeUpdated::TradeItem const& tradeItem)
ByteBuffer& operator<<(ByteBuffer& buffer, WorldPackets::Trade::TradeItem const& tradeItem)
{
buffer << uint8(tradeItem.Slot);
buffer << uint32(tradeItem.StackCount);
buffer << tradeItem.GiftCreator;
buffer << tradeItem.Item;
buffer.WriteBit(tradeItem.Unwrapped.is_initialized());
buffer.WriteBit(tradeItem.Unwrapped.has_value());
buffer.FlushBits();
if (tradeItem.Unwrapped)
buffer << *tradeItem.Unwrapped;
+22 -22
View File
@@ -150,31 +150,31 @@ namespace WorldPackets
bool PartnerIsSameBnetAccount = false;
};
struct UnwrappedTradeItem
{
WorldPackets::Item::ItemInstance Item;
int32 EnchantID = 0;
int32 OnUseEnchantmentID = 0;
ObjectGuid Creator;
int32 Charges = 0;
bool Lock = false;
uint32 MaxDurability = 0;
uint32 Durability = 0;
std::vector<Item::ItemGemData> Gems;
};
struct TradeItem
{
uint8 Slot = 0;
Item::ItemInstance Item;
int32 StackCount = 0;
ObjectGuid GiftCreator;
Optional<UnwrappedTradeItem> Unwrapped;
};
class TradeUpdated final : public ServerPacket
{
public:
struct UnwrappedTradeItem
{
WorldPackets::Item::ItemInstance Item;
int32 EnchantID = 0;
int32 OnUseEnchantmentID = 0;
ObjectGuid Creator;
int32 Charges = 0;
bool Lock = false;
uint32 MaxDurability = 0;
uint32 Durability = 0;
std::vector<Item::ItemGemData> Gems;
};
struct TradeItem
{
uint8 Slot = 0;
Item::ItemInstance Item;
int32 StackCount = 0;
ObjectGuid GiftCreator;
Optional<UnwrappedTradeItem> Unwrapped;
};
TradeUpdated() : ServerPacket(SMSG_TRADE_UPDATED, 8 + 4 + 1 + 4 + 7 * sizeof(UnwrappedTradeItem) + 4 + 4 + 4 + 4) { }
WorldPacket const* Write() override;
@@ -42,7 +42,7 @@ ByteBuffer& operator>>(ByteBuffer& data, WorldPackets::Who::WhoWord& word)
ByteBuffer& operator>>(ByteBuffer& data, Optional<WorldPackets::Who::WhoRequestServerInfo>& serverInfo)
{
serverInfo = boost::in_place();
serverInfo.emplace();
data >> serverInfo->FactionGroup;
data >> serverInfo->Locale;
+1 -1
View File
@@ -967,7 +967,7 @@ class TC_GAME_API WorldSession
void SendNotification(char const* format, ...) ATTR_PRINTF(2, 3);
void SendNotification(uint32 stringId, ...);
void SendPetNameInvalid(uint32 error, std::string const& name, DeclinedName *declinedName);
void SendPetNameInvalid(uint32 error, std::string const& name, Optional<DeclinedName> const& declinedName);
void SendPartyResult(PartyOperation operation, std::string const& member, PartyResult res, uint32 val = 0);
void SendQueryTimeResponse();
+1 -3
View File
@@ -228,11 +228,9 @@ void AuraApplication::BuildUpdatePacket(WorldPackets::Spells::AuraInfo& auraInfo
if (remove)
return;
auraInfo.AuraData = boost::in_place();
Aura const* aura = GetBase();
WorldPackets::Spells::AuraDataInfo& auraData = auraInfo.AuraData.get();
WorldPackets::Spells::AuraDataInfo& auraData = auraInfo.AuraData.emplace();
auraData.CastID = aura->GetCastId();
auraData.SpellID = aura->GetId();
auraData.Visual = aura->GetSpellVisual();
+4 -4
View File
@@ -3049,7 +3049,7 @@ void Spell::DoSpellEffectHit(Unit* unit, SpellEffectInfo const& spellEffectInfo,
}
}
else
hitInfo.AuraDuration = m_spellValue->Duration.get();
hitInfo.AuraDuration = *m_spellValue->Duration;
if (hitInfo.AuraDuration != hitInfo.HitAura->GetMaxDuration())
{
@@ -3750,7 +3750,7 @@ void Spell::handle_immediate()
m_caster->ModSpellDurationTime(m_spellInfo, duration, this);
}
else
duration = m_spellValue->Duration.get();
duration = *m_spellValue->Duration;
m_channeledDuration = duration;
SendChannelStart(duration);
@@ -4900,7 +4900,7 @@ void Spell::SendChannelStart(uint32 duration)
if (schoolImmunityMask || mechanicImmunityMask)
{
spellChannelStart.InterruptImmunities = boost::in_place();
spellChannelStart.InterruptImmunities.emplace();
spellChannelStart.InterruptImmunities->SchoolImmunities = schoolImmunityMask;
spellChannelStart.InterruptImmunities->Immunities = mechanicImmunityMask;
}
@@ -7516,7 +7516,7 @@ void Spell::DelayedChannel()
bool Spell::HasPowerTypeCost(Powers power) const
{
return GetPowerTypeCostAmount(power).is_initialized();
return GetPowerTypeCostAmount(power).has_value();
}
Optional<int32> Spell::GetPowerTypeCostAmount(Powers power) const
+6 -4
View File
@@ -3937,7 +3937,7 @@ void Spell::EffectCharge()
Optional<Movement::SpellEffectExtraData> spellEffectExtraData;
if (effectInfo->MiscValueB)
{
spellEffectExtraData = boost::in_place();
spellEffectExtraData.emplace();
spellEffectExtraData->Target = unitTarget->GetGUID();
spellEffectExtraData->SpellVisualId = effectInfo->MiscValueB;
}
@@ -3949,7 +3949,7 @@ void Spell::EffectCharge()
if (G3D::fuzzyGt(m_spellInfo->Speed, 0.0f) && m_spellInfo->HasAttribute(SPELL_ATTR9_SPECIAL_DELAY_CALCULATION))
speed = pos.GetExactDist(m_caster) / speed;
unitCaster->GetMotionMaster()->MoveCharge(pos.m_positionX, pos.m_positionY, pos.m_positionZ, speed, EVENT_CHARGE, false, unitTarget, spellEffectExtraData.get_ptr());
unitCaster->GetMotionMaster()->MoveCharge(pos.m_positionX, pos.m_positionY, pos.m_positionZ, speed, EVENT_CHARGE, false, unitTarget, spellEffectExtraData ? &*spellEffectExtraData : nullptr);
}
else
{
@@ -3959,7 +3959,7 @@ void Spell::EffectCharge()
speed = Position(pos.x, pos.y, pos.z).GetExactDist(m_caster) / speed;
}
unitCaster->GetMotionMaster()->MoveCharge(*m_preGeneratedPath, speed, unitTarget, spellEffectExtraData.get_ptr());
unitCaster->GetMotionMaster()->MoveCharge(*m_preGeneratedPath, speed, unitTarget, spellEffectExtraData ? &*spellEffectExtraData : nullptr);
}
}
@@ -5784,7 +5784,9 @@ void Spell::EffectJumpCharge()
effectExtra->ParabolicCurveId = *params->ParabolicCurveId;
}
unitCaster->GetMotionMaster()->MoveJumpWithGravity(*destTarget, speed, params->JumpGravity, EVENT_JUMP, false, arrivalCast.get_ptr(), effectExtra.get_ptr());
unitCaster->GetMotionMaster()->MoveJumpWithGravity(*destTarget, speed, params->JumpGravity, EVENT_JUMP, false,
arrivalCast ? &*arrivalCast : nullptr,
effectExtra ? &*effectExtra : nullptr);
}
void Spell::EffectLearnTransmogSet()
+1 -1
View File
@@ -49,7 +49,7 @@ enum SupportSpamType
SUPPORT_SPAM_TYPE_CALENDAR = 2
};
using ChatLog = WorldPackets::Ticket::SupportTicketSubmitComplaint::SupportTicketChatLog;
using ChatLog = WorldPackets::Ticket::SupportTicketChatLog;
class TC_GAME_API Ticket
{
+2 -2
View File
@@ -171,10 +171,10 @@ public:
handler->SetSentErrorMessage(true);
return false;
case 1:
sWorld->SetForcedWarModeFactionBalanceState(TEAM_ALLIANCE, rewardValue.get_value_or(0));
sWorld->SetForcedWarModeFactionBalanceState(TEAM_ALLIANCE, rewardValue.value_or(0));
break;
case 2:
sWorld->SetForcedWarModeFactionBalanceState(TEAM_HORDE, rewardValue.get_value_or(0));
sWorld->SetForcedWarModeFactionBalanceState(TEAM_HORDE, rewardValue.value_or(0));
break;
case 3:
sWorld->SetForcedWarModeFactionBalanceState(TEAM_NEUTRAL);
+1 -1
View File
@@ -1078,7 +1078,7 @@ class spell_pal_righteous_protector : public AuraScript
else
_baseHolyPowerCost.reset();
return _baseHolyPowerCost.is_initialized();
return _baseHolyPowerCost.has_value();
}
void HandleEffectProc(AuraEffect* aurEff, ProcEventInfo& /*eventInfo*/)
+1 -1
View File
@@ -91,7 +91,7 @@ Optional<int32> GetFinishingMoveCPCost(Spell const* spell)
* A finishing move is a spell that cost combo points */
bool IsFinishingMove(Spell const* spell)
{
return GetFinishingMoveCPCost(spell).is_initialized();
return GetFinishingMoveCPCost(spell).has_value();
}
// 53 - Backstab