diff options
66 files changed, 517 insertions, 514 deletions
diff --git a/src/server/game/Achievements/CriteriaHandler.cpp b/src/server/game/Achievements/CriteriaHandler.cpp index e64f701dab7..a58b918aba3 100644 --- a/src/server/game/Achievements/CriteriaHandler.cpp +++ b/src/server/game/Achievements/CriteriaHandler.cpp @@ -3664,7 +3664,7 @@ bool CriteriaHandler::ModifierSatisfied(ModifierTreeEntry const* modifier, uint6 return referencePlayer->m_activePlayerData->RuneforgePowers[block] & (1 << bit); } case ModifierTreeType::PlayerInChromieTimeForScaling: // 304 - if (!(referencePlayer->m_playerData->CtrOptions->ContentTuningConditionMask & 1)) + if (!(referencePlayer->m_playerData->CtrOptions->ConditionalFlags & 1)) return false; break; case ModifierTreeType::IsRaFRecruit: // 305 diff --git a/src/server/game/AuctionHouse/AuctionHouseMgr.cpp b/src/server/game/AuctionHouse/AuctionHouseMgr.cpp index 3aa347b7457..7e94cb7a1a2 100644 --- a/src/server/game/AuctionHouse/AuctionHouseMgr.cpp +++ b/src/server/game/AuctionHouse/AuctionHouseMgr.cpp @@ -50,7 +50,7 @@ enum eAuctionHouse AuctionsBucketKey::AuctionsBucketKey(WorldPackets::AuctionHouse::AuctionBucketKey const& key) : ItemId(key.ItemID), ItemLevel(key.ItemLevel), BattlePetSpeciesId(key.BattlePetSpeciesID.value_or(0)), - SuffixItemNameDescriptionId(key.SuffixItemNameDescriptionID.value_or(0)) + SuffixItemNameDescriptionId(key.ItemSuffix.value_or(0)) { } @@ -109,6 +109,10 @@ void AuctionsBucketData::BuildBucketInfo(WorldPackets::AuctionHouse::BucketInfo* bucketInfo->MaxBattlePetQuality = bucketInfo->MaxBattlePetQuality ? std::max(*bucketInfo->MaxBattlePetQuality, quality) : quality; bucketInfo->MaxBattlePetLevel = bucketInfo->MaxBattlePetLevel ? std::max(*bucketInfo->MaxBattlePetLevel, level) : level; bucketInfo->BattlePetBreedID = breedId; + if (!bucketInfo->BattlePetLevelMask) + bucketInfo->BattlePetLevelMask = 0; + + *bucketInfo->BattlePetLevelMask |= 1 << (level - 1); } } @@ -864,13 +868,11 @@ AuctionPosting* AuctionHouseObject::GetAuction(uint32 auctionId) void AuctionHouseObject::AddAuction(CharacterDatabaseTransaction trans, AuctionPosting auction) { AuctionsBucketKey key = AuctionsBucketKey::ForItem(auction.Items[0]); - AuctionsBucketData* bucket; - auto bucketItr = _buckets.find(key); - if (bucketItr == _buckets.end()) + auto [bucketItr, isNew] = _buckets.try_emplace(key); + AuctionsBucketData* bucket = &bucketItr->second; + if (isNew) { // we don't have any item for this key yet, create new bucket - bucketItr = _buckets.emplace(std::piecewise_construct, std::forward_as_tuple(key), std::forward_as_tuple()).first; - bucket = &bucketItr->second; bucket->Key = key; ItemTemplate const* itemTemplate = auction.Items[0]->GetTemplate(); @@ -917,8 +919,6 @@ void AuctionHouseObject::AddAuction(CharacterDatabaseTransaction trans, AuctionP bucket->FullName[locale] = wstrCaseAccentInsensitiveParse(utf16name, locale); } } - else - bucket = &bucketItr->second; // update cache fields uint64 priceToDisplay = auction.BuyoutOrUnitPrice ? auction.BuyoutOrUnitPrice : auction.BidAmount; diff --git a/src/server/game/Conditions/ConditionMgr.cpp b/src/server/game/Conditions/ConditionMgr.cpp index 0730d4e9a23..6c611180cc4 100644 --- a/src/server/game/Conditions/ConditionMgr.cpp +++ b/src/server/game/Conditions/ConditionMgr.cpp @@ -2794,7 +2794,7 @@ bool ConditionMgr::IsPlayerMeetingCondition(Player const* player, uint32 conditi bool ConditionMgr::IsPlayerMeetingCondition(Player const* player, PlayerConditionEntry const* condition) { - if (Optional<ContentTuningLevels> levels = sDB2Manager.GetContentTuningData(condition->ContentTuningID, player->m_playerData->CtrOptions->ContentTuningConditionMask)) + if (Optional<ContentTuningLevels> levels = sDB2Manager.GetContentTuningData(condition->ContentTuningID, player->m_playerData->CtrOptions->ConditionalFlags)) { uint8 minLevel = condition->Flags & 0x800 ? levels->MinLevelWithDelta : levels->MinLevel; uint8 maxLevel = 0; diff --git a/src/server/game/DungeonFinding/LFGMgr.cpp b/src/server/game/DungeonFinding/LFGMgr.cpp index a823dcfd9ec..ae8b6da8bee 100644 --- a/src/server/game/DungeonFinding/LFGMgr.cpp +++ b/src/server/game/DungeonFinding/LFGMgr.cpp @@ -1761,7 +1761,7 @@ LfgLockMap LFGMgr::GetLockedDungeons(ObjectGuid guid) return LFG_LOCKSTATUS_RAID_LOCKED; if (sInstanceLockMgr.FindActiveInstanceLock(guid, { dungeon->map, Difficulty(dungeon->difficulty) })) return LFG_LOCKSTATUS_RAID_LOCKED; - if (Optional<ContentTuningLevels> levels = sDB2Manager.GetContentTuningData(dungeon->contentTuningId, player->m_playerData->CtrOptions->ContentTuningConditionMask)) + if (Optional<ContentTuningLevels> levels = sDB2Manager.GetContentTuningData(dungeon->contentTuningId, player->m_playerData->CtrOptions->ConditionalFlags)) { if (levels->MinLevel > level) return LFG_LOCKSTATUS_TOO_LOW_LEVEL; diff --git a/src/server/game/Entities/AreaTrigger/AreaTrigger.cpp b/src/server/game/Entities/AreaTrigger/AreaTrigger.cpp index 6b9b05924c8..dd8b8f0b54d 100644 --- a/src/server/game/Entities/AreaTrigger/AreaTrigger.cpp +++ b/src/server/game/Entities/AreaTrigger/AreaTrigger.cpp @@ -195,8 +195,8 @@ bool AreaTrigger::Create(AreaTriggerCreatePropertiesId areaTriggerCreateProperti SetUpdateFieldValue(areaTriggerData.ModifyValue(&UF::AreaTriggerData::VisualAnim).ModifyValue(&UF::VisualAnim::AnimationDataID), GetCreateProperties()->AnimId); SetUpdateFieldValue(areaTriggerData.ModifyValue(&UF::AreaTriggerData::VisualAnim).ModifyValue(&UF::VisualAnim::AnimKitID), GetCreateProperties()->AnimKitId); - if (GetCreateProperties() && GetCreateProperties()->Flags.HasFlag(AreaTriggerCreatePropertiesFlag::Unk3)) - SetUpdateFieldValue(areaTriggerData.ModifyValue(&UF::AreaTriggerData::VisualAnim).ModifyValue(&UF::VisualAnim::Field_C), true); + if (GetCreateProperties() && GetCreateProperties()->Flags.HasFlag(AreaTriggerCreatePropertiesFlag::VisualAnimIsDecay)) + SetUpdateFieldValue(areaTriggerData.ModifyValue(&UF::AreaTriggerData::VisualAnim).ModifyValue(&UF::VisualAnim::IsDecay), true); if (caster) PhasingHandler::InheritPhaseShift(this, caster); diff --git a/src/server/game/Entities/AreaTrigger/AreaTriggerTemplate.h b/src/server/game/Entities/AreaTrigger/AreaTriggerTemplate.h index d72cfe3dda3..2fe1797cd60 100644 --- a/src/server/game/Entities/AreaTrigger/AreaTriggerTemplate.h +++ b/src/server/game/Entities/AreaTrigger/AreaTriggerTemplate.h @@ -64,10 +64,10 @@ enum class AreaTriggerCreatePropertiesFlag : uint32 HasAttached = 0x00004, HasFaceMovementDir = 0x00008, HasFollowsTerrain = 0x00010, // NYI - Unk1 = 0x00020, + AlwaysExterior = 0x00020, HasTargetRollPitchYaw = 0x00040, // NYI HasAnimId = 0x00080, // DEPRECATED - Unk3 = 0x00100, + VisualAnimIsDecay = 0x00100, HasAnimKitId = 0x00200, // DEPRECATED HasCircularMovement = 0x00400, // DEPRECATED Unk5 = 0x00800, diff --git a/src/server/game/Entities/GameObject/GameObject.cpp b/src/server/game/Entities/GameObject/GameObject.cpp index a127fd25c57..ce475f4424f 100644 --- a/src/server/game/Entities/GameObject/GameObject.cpp +++ b/src/server/game/Entities/GameObject/GameObject.cpp @@ -2215,7 +2215,7 @@ uint8 GameObject::GetLevelForTarget(WorldObject const* target) const if (GetGoType() == GAMEOBJECT_TYPE_TRAP) { if (Player const* player = target->ToPlayer()) - if (Optional<ContentTuningLevels> userLevels = sDB2Manager.GetContentTuningData(GetGOInfo()->ContentTuningId, player->m_playerData->CtrOptions->ContentTuningConditionMask)) + if (Optional<ContentTuningLevels> userLevels = sDB2Manager.GetContentTuningData(GetGOInfo()->ContentTuningId, player->m_playerData->CtrOptions->ConditionalFlags)) return uint8(std::clamp<int16>(player->GetLevel(), userLevels->MinLevel, userLevels->MaxLevel)); if (Unit const* targetUnit = target->ToUnit()) @@ -3136,11 +3136,11 @@ void GameObject::Use(Unit* user) return; //required lvl checks! - if (Optional<ContentTuningLevels> userLevels = sDB2Manager.GetContentTuningData(info->ContentTuningId, player->m_playerData->CtrOptions->ContentTuningConditionMask)) + if (Optional<ContentTuningLevels> userLevels = sDB2Manager.GetContentTuningData(info->ContentTuningId, player->m_playerData->CtrOptions->ConditionalFlags)) if (player->GetLevel() < userLevels->MaxLevel) return; - if (Optional<ContentTuningLevels> targetLevels = sDB2Manager.GetContentTuningData(info->ContentTuningId, targetPlayer->m_playerData->CtrOptions->ContentTuningConditionMask)) + if (Optional<ContentTuningLevels> targetLevels = sDB2Manager.GetContentTuningData(info->ContentTuningId, targetPlayer->m_playerData->CtrOptions->ConditionalFlags)) if (targetPlayer->GetLevel() < targetLevels->MaxLevel) return; diff --git a/src/server/game/Entities/Item/Item.cpp b/src/server/game/Entities/Item/Item.cpp index 30ff3b8fb5c..498d2a0b3ee 100644 --- a/src/server/game/Entities/Item/Item.cpp +++ b/src/server/game/Entities/Item/Item.cpp @@ -89,7 +89,7 @@ void AddItemsSetItem(Player* player, Item const* item) { uint32 maxLevel = sDB2Manager.GetCurveXAxisRange(item->GetBonus()->PlayerLevelToItemLevelCurveId).second; - if (Optional<ContentTuningLevels> contentTuning = sDB2Manager.GetContentTuningData(item->GetBonus()->ContentTuningId, player->m_playerData->CtrOptions->ContentTuningConditionMask, true)) + if (Optional<ContentTuningLevels> contentTuning = sDB2Manager.GetContentTuningData(item->GetBonus()->ContentTuningId, player->m_playerData->CtrOptions->ConditionalFlags, true)) maxLevel = std::min<uint32>(maxLevel, contentTuning->MaxLevel); if (player->GetLevel() > maxLevel) diff --git a/src/server/game/Entities/Item/ItemBonusMgr.cpp b/src/server/game/Entities/Item/ItemBonusMgr.cpp index 6b7bcf03c40..fd660c02188 100644 --- a/src/server/game/Entities/Item/ItemBonusMgr.cpp +++ b/src/server/game/Entities/Item/ItemBonusMgr.cpp @@ -93,7 +93,7 @@ ItemContext GetContextForPlayer(MapDifficultyEntry const* mapDifficulty, Player if (mapDifficulty->ItemContextPickerID) { - uint32 contentTuningId = sDB2Manager.GetRedirectedContentTuningId(mapDifficulty->ContentTuningID, player->m_playerData->CtrOptions->ContentTuningConditionMask); + uint32 contentTuningId = sDB2Manager.GetRedirectedContentTuningId(mapDifficulty->ContentTuningID, player->m_playerData->CtrOptions->ConditionalFlags); ItemContextPickerEntryEntry const* selectedPickerEntry = nullptr; for (ItemContextPickerEntryEntry const* itemContextPickerEntry : sItemContextPickerEntryStore) diff --git a/src/server/game/Entities/Object/MovementInfo.h b/src/server/game/Entities/Object/MovementInfo.h index 768785fdfb9..2f753ee5257 100644 --- a/src/server/game/Entities/Object/MovementInfo.h +++ b/src/server/game/Entities/Object/MovementInfo.h @@ -153,7 +153,7 @@ struct MovementForce uint32 TransportID = 0; float Magnitude = 0.0f; MovementForceType Type = MovementForceType::SingleDirectional; - int32 Unused910 = 0; + int32 MovementForceID = 0; }; class MovementForces diff --git a/src/server/game/Entities/Object/Object.cpp b/src/server/game/Entities/Object/Object.cpp index 37004378740..6780fb0a270 100644 --- a/src/server/game/Entities/Object/Object.cpp +++ b/src/server/game/Entities/Object/Object.cpp @@ -562,7 +562,7 @@ void Object::BuildMovementUpdate(ByteBuffer* data, CreateObjectBits flags, Playe bool hasAttached = createProperties && createProperties->Flags.HasFlag(AreaTriggerCreatePropertiesFlag::HasAttached); bool hasFaceMovementDir = createProperties && createProperties->Flags.HasFlag(AreaTriggerCreatePropertiesFlag::HasFaceMovementDir); bool hasFollowsTerrain = createProperties && createProperties->Flags.HasFlag(AreaTriggerCreatePropertiesFlag::HasFollowsTerrain); - bool hasUnk1 = createProperties && createProperties->Flags.HasFlag(AreaTriggerCreatePropertiesFlag::Unk1); + bool hasAlwaysExterior = createProperties && createProperties->Flags.HasFlag(AreaTriggerCreatePropertiesFlag::AlwaysExterior); bool hasUnknown1025 = false; bool hasTargetRollPitchYaw = createProperties && createProperties->Flags.HasFlag(AreaTriggerCreatePropertiesFlag::HasTargetRollPitchYaw); bool hasScaleCurveID = createProperties && createProperties->ScaleCurveId != 0; @@ -579,7 +579,7 @@ void Object::BuildMovementUpdate(ByteBuffer* data, CreateObjectBits flags, Playe data->WriteBit(hasAttached); data->WriteBit(hasFaceMovementDir); data->WriteBit(hasFollowsTerrain); - data->WriteBit(hasUnk1); + data->WriteBit(hasAlwaysExterior); data->WriteBit(hasUnknown1025); data->WriteBit(hasTargetRollPitchYaw); data->WriteBit(hasScaleCurveID); diff --git a/src/server/game/Entities/Object/Updates/UpdateFields.cpp b/src/server/game/Entities/Object/Updates/UpdateFields.cpp index d2c72c3f945..82b4e9c8416 100644 --- a/src/server/game/Entities/Object/Updates/UpdateFields.cpp +++ b/src/server/game/Entities/Object/Updates/UpdateFields.cpp @@ -2200,23 +2200,23 @@ void PetCreatureName::ClearChangesMask() void CTROptions::WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const { - data << int32(ContentTuningConditionMask); - data << uint32(Field_4); - data << uint32(ExpansionLevelMask); + data << int32(ConditionalFlags); + data << uint32(FactionGroup); + data << uint32(ChromieTimeExpansionMask); } void CTROptions::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const { - data << int32(ContentTuningConditionMask); - data << uint32(Field_4); - data << uint32(ExpansionLevelMask); + data << int32(ConditionalFlags); + data << uint32(FactionGroup); + data << uint32(ChromieTimeExpansionMask); } bool CTROptions::operator==(CTROptions const& right) const { - return ContentTuningConditionMask == right.ContentTuningConditionMask - && Field_4 == right.Field_4 - && ExpansionLevelMask == right.ExpansionLevelMask; + return ConditionalFlags == right.ConditionalFlags + && FactionGroup == right.FactionGroup + && ChromieTimeExpansionMask == right.ChromieTimeExpansionMask; } void DeclinedNames::WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const @@ -6929,7 +6929,7 @@ void VisualAnim::WriteCreate(ByteBuffer& data, AreaTrigger const* owner, Player data << uint32(AnimationDataID); data << uint32(AnimKitID); data << uint32(AnimProgress); - data.WriteBit(Field_C); + data.WriteBit(IsDecay); data.FlushBits(); } @@ -6945,7 +6945,7 @@ void VisualAnim::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, AreaTrigg { if (changesMask[1]) { - data.WriteBit(Field_C); + data.WriteBit(IsDecay); } } data.FlushBits(); @@ -6969,7 +6969,7 @@ void VisualAnim::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, AreaTrigg void VisualAnim::ClearChangesMask() { - Base::ClearChangesMask(Field_C); + Base::ClearChangesMask(IsDecay); Base::ClearChangesMask(AnimationDataID); Base::ClearChangesMask(AnimKitID); Base::ClearChangesMask(AnimProgress); diff --git a/src/server/game/Entities/Object/Updates/UpdateFields.h b/src/server/game/Entities/Object/Updates/UpdateFields.h index e3bf583c73a..1f0abd879b7 100644 --- a/src/server/game/Entities/Object/Updates/UpdateFields.h +++ b/src/server/game/Entities/Object/Updates/UpdateFields.h @@ -481,9 +481,9 @@ struct PetCreatureName : public IsUpdateFieldStructureTag, public HasChangesMask struct CTROptions : public IsUpdateFieldStructureTag { - int32 ContentTuningConditionMask; - uint32 Field_4; - uint32 ExpansionLevelMask; + int32 ConditionalFlags; + uint32 FactionGroup; + uint32 ChromieTimeExpansionMask; void WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const; void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const; @@ -1275,7 +1275,7 @@ struct ScaleCurve : public IsUpdateFieldStructureTag, public HasChangesMask<7> struct VisualAnim : public IsUpdateFieldStructureTag, public HasChangesMask<5> { - UpdateField<bool, 0, 1> Field_C; + UpdateField<bool, 0, 1> IsDecay; UpdateField<uint32, 0, 2> AnimationDataID; UpdateField<uint32, 0, 3> AnimKitID; UpdateField<uint32, 0, 4> AnimProgress; diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index af3531687c2..dade7c080e9 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -6353,7 +6353,7 @@ void Player::CheckAreaExplore() UpdateCriteria(CriteriaType::RevealWorldMapOverlay, GetAreaId()); - if (Optional<ContentTuningLevels> areaLevels = sDB2Manager.GetContentTuningData(areaEntry->ContentTuningID, m_playerData->CtrOptions->ContentTuningConditionMask)) + if (Optional<ContentTuningLevels> areaLevels = sDB2Manager.GetContentTuningData(areaEntry->ContentTuningID, m_playerData->CtrOptions->ConditionalFlags)) { if (IsMaxLevel()) { @@ -6653,7 +6653,7 @@ void Player::RewardReputation(Unit* victim, float rate) Map const* map = GetMap(); if (map->IsNonRaidDungeon()) if (LFGDungeonsEntry const* dungeon = DB2Manager::GetLfgDungeon(map->GetId(), map->GetDifficultyID())) - if (Optional<ContentTuningLevels> dungeonLevels = sDB2Manager.GetContentTuningData(dungeon->ContentTuningID, m_playerData->CtrOptions->ContentTuningConditionMask)) + if (Optional<ContentTuningLevels> dungeonLevels = sDB2Manager.GetContentTuningData(dungeon->ContentTuningID, m_playerData->CtrOptions->ConditionalFlags)) if (dungeonLevels->TargetLevelMax == int16(GetMaxLevelForExpansion(EXPANSION_WRATH_OF_THE_LICH_KING))) ChampioningFaction = GetChampioningFaction(); } @@ -13926,7 +13926,7 @@ void Player::SendNewItem(Item* item, uint32 quantity, bool pushed, bool created, packet.Item.Initialize(item); - packet.QuestLogItemID = item->GetTemplate()->QuestLogItemId; + packet.ProxyItemID = item->GetTemplate()->QuestLogItemId; packet.Quantity = quantity; packet.QuantityInInventory = GetItemCount(item->GetEntry()); if (QuestObjective const* questObjective = GetQuestObjectiveForItem(item->GetEntry(), false)) @@ -13940,15 +13940,15 @@ void Player::SendNewItem(Item* item, uint32 quantity, bool pushed, bool created, packet.ItemGUID = item->GetGUID(); packet.Pushed = pushed; - packet.DisplayText = WorldPackets::Item::ItemPushResult::DISPLAY_TYPE_NORMAL; + packet.ChatNotifyType = WorldPackets::Item::ItemPushResult::DISPLAY_TYPE_NORMAL; packet.Created = created; //packet.IsBonusRoll; if (dungeonEncounterId) { - packet.DisplayText = WorldPackets::Item::ItemPushResult::DISPLAY_TYPE_ENCOUNTER_LOOT; - packet.DungeonEncounterID = dungeonEncounterId; - packet.IsEncounterLoot = true; + packet.ChatNotifyType = WorldPackets::Item::ItemPushResult::DISPLAY_TYPE_ENCOUNTER_LOOT; + packet.EncounterID = dungeonEncounterId; + packet.IsPersonalLoot = true; } if (broadcast && GetGroup() && !item->GetTemplate()->HasFlag(ITEM_FLAG3_DONT_REPORT_LOOT_LOG_TO_PARTY)) @@ -14362,7 +14362,7 @@ int32 Player::GetQuestMinLevel(Quest const* quest) const int32 Player::GetQuestMinLevel(uint32 contentTuningId) const { - if (Optional<ContentTuningLevels> questLevels = sDB2Manager.GetContentTuningData(contentTuningId, m_playerData->CtrOptions->ContentTuningConditionMask)) + if (Optional<ContentTuningLevels> questLevels = sDB2Manager.GetContentTuningData(contentTuningId, m_playerData->CtrOptions->ConditionalFlags)) { ChrRacesEntry const* race = sChrRacesStore.AssertEntry(GetRace()); FactionTemplateEntry const* raceFaction = sFactionTemplateStore.AssertEntry(race->FactionID); @@ -14386,7 +14386,7 @@ int32 Player::GetQuestLevel(Quest const* quest) const int32 Player::GetQuestLevel(uint32 contentTuningId) const { - if (Optional<ContentTuningLevels> questLevels = sDB2Manager.GetContentTuningData(contentTuningId, m_playerData->CtrOptions->ContentTuningConditionMask)) + if (Optional<ContentTuningLevels> questLevels = sDB2Manager.GetContentTuningData(contentTuningId, m_playerData->CtrOptions->ConditionalFlags)) { int32 minLevel = GetQuestMinLevel(contentTuningId); int32 maxLevel = questLevels->MaxLevel; @@ -17357,11 +17357,11 @@ void Player::SendQuestUpdateAddItem(ItemTemplate const* itemTemplate, QuestObjec packet.Slot = INVENTORY_SLOT_BAG_0; packet.SlotInBag = 0; packet.Item.ItemID = itemTemplate->GetId(); - packet.QuestLogItemID = itemTemplate->QuestLogItemId; + packet.ProxyItemID = itemTemplate->QuestLogItemId; packet.Quantity = count; packet.QuantityInInventory = GetQuestObjectiveData(obj); - packet.DisplayText = static_cast<WorldPackets::Item::ItemPushResult::DisplayType>(3); - packet.Unused_1017 = true; + packet.ChatNotifyType = static_cast<WorldPackets::Item::ItemPushResult::DisplayType>(3); + packet.FakeQuestItem = true; if (GetGroup() && !itemTemplate->HasFlag(ITEM_FLAG3_DONT_REPORT_LOOT_LOG_TO_PARTY)) GetGroup()->BroadcastPacket(packet.Write(), true); diff --git a/src/server/game/Handlers/AuthHandler.cpp b/src/server/game/Handlers/AuthHandler.cpp index 7af2a1e46fa..e630712d7bc 100644 --- a/src/server/game/Handlers/AuthHandler.cpp +++ b/src/server/game/Handlers/AuthHandler.cpp @@ -100,7 +100,7 @@ void WorldSession::SendSetTimeZoneInformation() WorldPackets::System::SetTimeZoneInformation packet; packet.ServerTimeTZ = clientSupportedTZ; packet.GameTimeTZ = clientSupportedTZ; - packet.ServerRegionalTZ = clientSupportedTZ; + packet.ServerRegionalTimeTZ = clientSupportedTZ; SendPacket(packet.Write()); } @@ -111,7 +111,7 @@ void WorldSession::SendFeatureSystemStatusGlueScreen() features.BpayStoreDisabledByParentalControls = false; features.CharUndeleteEnabled = sWorld->getBoolConfig(CONFIG_FEATURE_SYSTEM_CHARACTER_UNDELETE_ENABLED); features.BpayStoreEnabled = sWorld->getBoolConfig(CONFIG_FEATURE_SYSTEM_BPAY_STORE_ENABLED); - features.MaxCharactersPerRealm = sWorld->getIntConfig(CONFIG_CHARACTERS_PER_REALM); + features.MaxCharactersOnThisRealm = sWorld->getIntConfig(CONFIG_CHARACTERS_PER_REALM); features.MinimumExpansionLevel = EXPANSION_CLASSIC; features.MaximumExpansionLevel = sWorld->getIntConfig(CONFIG_EXPANSION); diff --git a/src/server/game/Handlers/CharacterHandler.cpp b/src/server/game/Handlers/CharacterHandler.cpp index 4eaa446eaa4..ff650982714 100644 --- a/src/server/game/Handlers/CharacterHandler.cpp +++ b/src/server/game/Handlers/CharacterHandler.cpp @@ -392,7 +392,7 @@ void WorldSession::HandleCharEnum(CharacterDatabaseQueryHolder const& holder) WorldPackets::Character::EnumCharactersResult charEnum; charEnum.Success = true; charEnum.IsDeletedCharacters = static_cast<EnumCharactersQueryHolder const&>(holder).IsDeletedCharacters(); - charEnum.DisabledClassesMask = sWorld->getIntConfig(CONFIG_CHARACTER_CREATING_DISABLED_CLASSMASK); + charEnum.ClassDisableMask = sWorld->getIntConfig(CONFIG_CHARACTER_CREATING_DISABLED_CLASSMASK); if (!charEnum.IsDeletedCharacters) _legitCharacters.clear(); @@ -458,8 +458,8 @@ void WorldSession::HandleCharEnum(CharacterDatabaseQueryHolder const& holder) { WorldPackets::Character::EnumCharactersResult::RaceUnlock raceUnlock; raceUnlock.RaceID = requirement.first; - raceUnlock.HasExpansion = GetAccountExpansion() >= requirement.second.Expansion; - raceUnlock.HasAchievement = requirement.second.AchievementId != 0 + raceUnlock.HasUnlockedLicense = GetAccountExpansion() >= requirement.second.Expansion; + raceUnlock.HasUnlockedAchievement = requirement.second.AchievementId != 0 && (sWorld->getBoolConfig(CONFIG_CHARACTER_CREATING_DISABLE_ALLIED_RACE_ACHIEVEMENT_REQUIREMENT) /* || HasAccountAchievement(requirement.second.AchievementId)*/); charEnum.RaceUnlockData.push_back(raceUnlock); @@ -1473,25 +1473,25 @@ void WorldSession::SendFeatureSystemStatus() features.ComplaintStatus = COMPLAINT_ENABLED_WITH_AUTO_IGNORE; features.CfgRealmID = 2; features.CfgRealmRecID = 0; - features.TokenPollTimeSeconds = 300; + features.CommercePricePollTimeSeconds = 300; features.VoiceEnabled = false; features.BrowserEnabled = false; // Has to be false, otherwise client will crash if "Customer Support" is opened // Enable guilds only. // This is required to restore old guild channel behavior for GMs. // The new club streams do not support sending messages through the guild channel when you are not in a guild. - features.ClubsEnabled = true; - features.ClubsBattleNetClubTypeAllowed = false; - features.ClubsCharacterClubTypeAllowed = false; - features.ClubsPresenceUpdateEnabled = true; - features.HiddenUIClubsPresenceUpdateTimer = 60000; + features.CommunitiesEnabled = true; + features.BnetGroupsEnabled = false; + features.CharacterCommunitiesEnabled = false; + features.ClubPresenceAllowSubscribeAll = true; + features.ClubPresenceUnsubscribeDelay = 60000; features.EuropaTicketSystemStatus.emplace(); features.EuropaTicketSystemStatus->ThrottleState.MaxTries = 10; features.EuropaTicketSystemStatus->ThrottleState.PerMilliseconds = 60000; features.EuropaTicketSystemStatus->ThrottleState.TryCount = 1; features.EuropaTicketSystemStatus->ThrottleState.LastResetTimeBeforeNow = 111111; - features.TutorialsEnabled = true; + features.TutorialEnabled = true; features.NPETutorialsEnabled = true; /// END OF DUMMY VALUES @@ -1502,9 +1502,9 @@ void WorldSession::SendFeatureSystemStatus() features.CharUndeleteEnabled = sWorld->getBoolConfig(CONFIG_FEATURE_SYSTEM_CHARACTER_UNDELETE_ENABLED); features.BpayStoreEnabled = sWorld->getBoolConfig(CONFIG_FEATURE_SYSTEM_BPAY_STORE_ENABLED); - features.IsMuted = !CanSpeak(); + features.IsChatMuted = !CanSpeak(); - features.TextToSpeechFeatureEnabled = false; + features.SpeakForMeAllowed = false; SendPacket(features.Write()); } diff --git a/src/server/game/Handlers/LFGHandler.cpp b/src/server/game/Handlers/LFGHandler.cpp index baaeebaf5bc..5abec45cbf8 100644 --- a/src/server/game/Handlers/LFGHandler.cpp +++ b/src/server/game/Handlers/LFGHandler.cpp @@ -143,7 +143,7 @@ void WorldSession::SendLfgPlayerLockInfo() // Get Random dungeons that can be done at a certain level and expansion uint8 level = GetPlayer()->GetLevel(); - uint32 contentTuningReplacementConditionMask = GetPlayer()->m_playerData->CtrOptions->ContentTuningConditionMask; + uint32 contentTuningReplacementConditionMask = GetPlayer()->m_playerData->CtrOptions->ConditionalFlags; lfg::LfgDungeonSet const& randomDungeons = sLFGMgr->GetRandomAndSeasonalDungeons(level, GetExpansion(), contentTuningReplacementConditionMask); WorldPackets::LFG::LfgPlayerInfo lfgPlayerInfo; @@ -475,7 +475,7 @@ void WorldSession::SendLfgUpdateProposal(lfg::LfgProposal const& proposal) lfgProposalUpdate.CompletedMask = proposal.encounters; lfgProposalUpdate.ValidCompletedMask = true; lfgProposalUpdate.ProposalSilent = silent; - lfgProposalUpdate.IsRequeue = !proposal.isNew; + lfgProposalUpdate.FailedByMyParty = !proposal.isNew; for (auto const& player : proposal.players) { diff --git a/src/server/game/Handlers/TokenHandler.cpp b/src/server/game/Handlers/TokenHandler.cpp index acd68dad9a3..de58aac4905 100644 --- a/src/server/game/Handlers/TokenHandler.cpp +++ b/src/server/game/Handlers/TokenHandler.cpp @@ -23,7 +23,7 @@ void WorldSession::HandleCommerceTokenGetLog(WorldPackets::Token::CommerceTokenG WorldPackets::Token::CommerceTokenGetLogResponse response; /// @todo: 6.x fix implementation - response.UnkInt = commerceTokenGetLog.UnkInt; + response.ClientToken = commerceTokenGetLog.ClientToken; response.Result = TOKEN_RESULT_SUCCESS; SendPacket(response.Write()); @@ -34,9 +34,9 @@ void WorldSession::HandleCommerceTokenGetMarketPrice(WorldPackets::Token::Commer WorldPackets::Token::CommerceTokenGetMarketPriceResponse response; /// @todo: 6.x fix implementation - response.CurrentMarketPrice = 300000000; - response.UnkInt = commerceTokenGetMarketPrice.UnkInt; - response.Result = TOKEN_RESULT_SUCCESS; + response.PriceGuarantee = 300000000; + response.ClientToken = commerceTokenGetMarketPrice.ClientToken; + response.ServerToken = TOKEN_RESULT_SUCCESS; //packet.ReadUInt32("UnkInt32"); SendPacket(response.Write()); diff --git a/src/server/game/Movement/Spline/MoveSplineInit.cpp b/src/server/game/Movement/Spline/MoveSplineInit.cpp index b0621256a64..ffd21ad8942 100644 --- a/src/server/game/Movement/Spline/MoveSplineInit.cpp +++ b/src/server/game/Movement/Spline/MoveSplineInit.cpp @@ -183,7 +183,7 @@ namespace Movement WorldPackets::Movement::MonsterMove packet; packet.MoverGUID = unit->GetGUID(); packet.Pos = Position(loc.x, loc.y, loc.z, loc.orientation); - packet.SplineData.StopDistanceTolerance = 2; + packet.SplineData.StopSplineStyle = 2; packet.SplineData.ID = move_spline.GetId(); if (transport) diff --git a/src/server/game/Server/Packets/AchievementPackets.cpp b/src/server/game/Server/Packets/AchievementPackets.cpp index cf8111ba8b4..b41120dbe9f 100644 --- a/src/server/game/Server/Packets/AchievementPackets.cpp +++ b/src/server/game/Server/Packets/AchievementPackets.cpp @@ -34,16 +34,16 @@ ByteBuffer& operator<<(ByteBuffer& data, CriteriaProgress const& criteria) data << uint32(criteria.Id); data << uint64(criteria.Quantity); data << criteria.Player; - data << uint32(criteria.Unused_10_1_5); data << uint32(criteria.Flags); + data << uint32(criteria.StateFlags); data << criteria.Date; data << criteria.TimeFromStart; data << criteria.TimeFromCreate; - data.WriteBit(criteria.RafAcceptanceID.has_value()); + data.WriteBit(criteria.DynamicID.has_value()); data.FlushBits(); - if (criteria.RafAcceptanceID) - data << uint64(*criteria.RafAcceptanceID); + if (criteria.DynamicID) + data << uint64(*criteria.DynamicID); return data; } @@ -91,16 +91,16 @@ WorldPacket const* CriteriaUpdate::Write() _worldPacket << uint32(CriteriaID); _worldPacket << uint64(Quantity); _worldPacket << PlayerGUID; - _worldPacket << uint32(Unused_10_1_5); _worldPacket << uint32(Flags); + _worldPacket << uint32(StateFlags); _worldPacket << CurrentTime; _worldPacket << ElapsedTime; _worldPacket << CreationTime; - _worldPacket.WriteBit(RafAcceptanceID.has_value()); + _worldPacket.WriteBit(DynamicID.has_value()); _worldPacket.FlushBits(); - if (RafAcceptanceID) - _worldPacket << uint64(*RafAcceptanceID); + if (DynamicID) + _worldPacket << uint64(*DynamicID); return &_worldPacket; } @@ -164,8 +164,8 @@ WorldPacket const* GuildCriteriaUpdate::Write() _worldPacket << int64(progress.DateUpdated.GetPackedTime()); _worldPacket << uint64(progress.Quantity); _worldPacket << progress.PlayerGUID; - _worldPacket << int32(progress.Unused_10_1_5); _worldPacket << int32(progress.Flags); + _worldPacket << int32(progress.StateFlags); } return &_worldPacket; diff --git a/src/server/game/Server/Packets/AchievementPackets.h b/src/server/game/Server/Packets/AchievementPackets.h index 8e2bbf14dfb..59be0a424d4 100644 --- a/src/server/game/Server/Packets/AchievementPackets.h +++ b/src/server/game/Server/Packets/AchievementPackets.h @@ -42,12 +42,12 @@ namespace WorldPackets uint32 Id = 0; uint64 Quantity = 0; ObjectGuid Player; - uint32 Unused_10_1_5 = 0; + uint32 StateFlags = 0; uint32 Flags = 0; WowTime Date; Duration<Seconds> TimeFromStart; Duration<Seconds> TimeFromCreate; - Optional<uint64> RafAcceptanceID; + Optional<uint64> DynamicID; }; struct AllAchievements @@ -97,12 +97,12 @@ namespace WorldPackets uint32 CriteriaID = 0; uint64 Quantity = 0; ObjectGuid PlayerGUID; - uint32 Unused_10_1_5 = 0; + uint32 StateFlags = 0; uint32 Flags = 0; WowTime CurrentTime; Duration<Seconds> ElapsedTime; Timestamp<> CreationTime; - Optional<uint64> RafAcceptanceID; + Optional<uint64> DynamicID; }; class AccountCriteriaUpdate final : public ServerPacket @@ -173,8 +173,8 @@ namespace WorldPackets WowTime DateUpdated; uint64 Quantity = 0; ObjectGuid PlayerGUID; - int32 Unused_10_1_5 = 0; int32 Flags = 0; + int32 StateFlags = 0; }; class GuildCriteriaUpdate final : public ServerPacket diff --git a/src/server/game/Server/Packets/AuctionHousePackets.cpp b/src/server/game/Server/Packets/AuctionHousePackets.cpp index b20637824f3..1b82475b66c 100644 --- a/src/server/game/Server/Packets/AuctionHousePackets.cpp +++ b/src/server/game/Server/Packets/AuctionHousePackets.cpp @@ -34,7 +34,7 @@ AuctionBucketKey& AuctionBucketKey::operator=(AuctionsBucketKey const& key) BattlePetSpeciesID = key.BattlePetSpeciesId; if (key.SuffixItemNameDescriptionId) - SuffixItemNameDescriptionID = key.SuffixItemNameDescriptionId; + ItemSuffix = key.SuffixItemNameDescriptionId; return *this; } @@ -50,13 +50,13 @@ ByteBuffer& operator>>(ByteBuffer& data, AuctionBucketKey& itemKey) itemKey.ItemLevel = data.ReadBits(11); if (data.ReadBit()) - itemKey.SuffixItemNameDescriptionID.emplace(); + itemKey.ItemSuffix.emplace(); if (itemKey.BattlePetSpeciesID) data >> *itemKey.BattlePetSpeciesID; - if (itemKey.SuffixItemNameDescriptionID) - data >> *itemKey.SuffixItemNameDescriptionID; + if (itemKey.ItemSuffix) + data >> *itemKey.ItemSuffix; return data; } @@ -66,14 +66,14 @@ ByteBuffer& operator<<(ByteBuffer& data, AuctionBucketKey const& itemKey) data.WriteBits(itemKey.ItemID, 20); data.WriteBit(itemKey.BattlePetSpeciesID.has_value()); data.WriteBits(itemKey.ItemLevel, 11); - data.WriteBit(itemKey.SuffixItemNameDescriptionID.has_value()); + data.WriteBit(itemKey.ItemSuffix.has_value()); data.FlushBits(); if (itemKey.BattlePetSpeciesID) data << uint16(*itemKey.BattlePetSpeciesID); - if (itemKey.SuffixItemNameDescriptionID) - data << uint16(*itemKey.SuffixItemNameDescriptionID); + if (itemKey.ItemSuffix) + data << uint16(*itemKey.ItemSuffix); return data; } @@ -164,7 +164,7 @@ ByteBuffer& operator<<(ByteBuffer& data, BucketInfo const& bucketInfo) 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.BattlePetLevelMask.has_value()); data.WriteBit(bucketInfo.ContainsOwnerItem); data.WriteBit(bucketInfo.ContainsOnlyCollectedAppearances); data.FlushBits(); @@ -178,8 +178,8 @@ ByteBuffer& operator<<(ByteBuffer& data, BucketInfo const& bucketInfo) if (bucketInfo.BattlePetBreedID) data << uint8(*bucketInfo.BattlePetBreedID); - if (bucketInfo.Unk901_1) - data << uint32(*bucketInfo.Unk901_1); + if (bucketInfo.BattlePetLevelMask) + data << uint32(*bucketInfo.BattlePetLevelMask); return data; } diff --git a/src/server/game/Server/Packets/AuctionHousePackets.h b/src/server/game/Server/Packets/AuctionHousePackets.h index 2adeaf9ae39..852ed4a5917 100644 --- a/src/server/game/Server/Packets/AuctionHousePackets.h +++ b/src/server/game/Server/Packets/AuctionHousePackets.h @@ -45,7 +45,7 @@ namespace WorldPackets uint32 ItemID = 0; uint16 ItemLevel = 0; Optional<uint16> BattlePetSpeciesID; - Optional<uint16> SuffixItemNameDescriptionID; + Optional<uint16> ItemSuffix; }; struct AuctionListFilterSubClass @@ -100,7 +100,7 @@ namespace WorldPackets Optional<uint8> MaxBattlePetQuality; Optional<uint8> MaxBattlePetLevel; Optional<uint8> BattlePetBreedID; - Optional<uint32> Unk901_1; + Optional<uint32> BattlePetLevelMask; bool ContainsOwnerItem = false; bool ContainsOnlyCollectedAppearances = false; }; diff --git a/src/server/game/Server/Packets/AuthenticationPackets.cpp b/src/server/game/Server/Packets/AuthenticationPackets.cpp index 4a948e6ca35..34f18b00027 100644 --- a/src/server/game/Server/Packets/AuthenticationPackets.cpp +++ b/src/server/game/Server/Packets/AuthenticationPackets.cpp @@ -153,13 +153,12 @@ WorldPacket const* WorldPackets::Auth::AuthResponse::Write() _worldPacket.FlushBits(); { - _worldPacket << uint32(SuccessInfo->GameTimeInfo.BillingPlan); - _worldPacket << uint32(SuccessInfo->GameTimeInfo.TimeRemain); - _worldPacket << uint32(SuccessInfo->GameTimeInfo.Unknown735); - // 3x same bit is not a mistake - preserves legacy client behavior of BillingPlanFlags::SESSION_IGR - _worldPacket.WriteBit(SuccessInfo->GameTimeInfo.InGameRoom); // inGameRoom check in function checking which lua event to fire when remaining time is near end - BILLING_NAG_DIALOG vs IGR_BILLING_NAG_DIALOG - _worldPacket.WriteBit(SuccessInfo->GameTimeInfo.InGameRoom); // inGameRoom lua return from Script_GetBillingPlan - _worldPacket.WriteBit(SuccessInfo->GameTimeInfo.InGameRoom); // not used anywhere in the client + _worldPacket << uint32(SuccessInfo->GameTimeInfo.BillingType); + _worldPacket << uint32(SuccessInfo->GameTimeInfo.MinutesRemaining); + _worldPacket << uint32(SuccessInfo->GameTimeInfo.RealBillingType); + _worldPacket.WriteBit(SuccessInfo->GameTimeInfo.IsInIGR); // inGameRoom check in function checking which lua event to fire when remaining time is near end - BILLING_NAG_DIALOG vs IGR_BILLING_NAG_DIALOG + _worldPacket.WriteBit(SuccessInfo->GameTimeInfo.IsPaidForByIGR); // inGameRoom lua return from Script_GetBillingPlan + _worldPacket.WriteBit(SuccessInfo->GameTimeInfo.IsCAISEnabled); // not used anywhere in the client _worldPacket.FlushBits(); } diff --git a/src/server/game/Server/Packets/AuthenticationPackets.h b/src/server/game/Server/Packets/AuthenticationPackets.h index 9b733f67728..2c9dd00c374 100644 --- a/src/server/game/Server/Packets/AuthenticationPackets.h +++ b/src/server/game/Server/Packets/AuthenticationPackets.h @@ -136,10 +136,12 @@ namespace WorldPackets { struct GameTime { - uint32 BillingPlan = 0; - uint32 TimeRemain = 0; - uint32 Unknown735 = 0; - bool InGameRoom = false; + uint32 BillingType = 0; + uint32 MinutesRemaining = 0; + uint32 RealBillingType = 0; + bool IsInIGR = false; + bool IsPaidForByIGR = false; + bool IsCAISEnabled = false; }; struct NewBuild diff --git a/src/server/game/Server/Packets/BattlegroundPackets.cpp b/src/server/game/Server/Packets/BattlegroundPackets.cpp index 820e2933f88..84fbd6e0498 100644 --- a/src/server/game/Server/Packets/BattlegroundPackets.cpp +++ b/src/server/game/Server/Packets/BattlegroundPackets.cpp @@ -27,8 +27,8 @@ WorldPacket const* WorldPackets::Battleground::SeasonInfo::Write() _worldPacket << int32(PvpSeasonID); _worldPacket << int32(Unknown1027_1); _worldPacket.WriteBit(WeeklyRewardChestsEnabled); - _worldPacket.WriteBit(Unknown1027_2); - _worldPacket.WriteBit(Unknown1027_3); + _worldPacket.WriteBit(CurrentArenaSeasonUsesTeams); + _worldPacket.WriteBit(PreviousArenaSeasonUsesTeams); _worldPacket.FlushBits(); return &_worldPacket; @@ -214,7 +214,7 @@ WorldPacket const* WorldPackets::Battleground::BattlefieldStatusQueued::Write() _worldPacket << Hdr; _worldPacket << uint32(AverageWaitTime); _worldPacket << uint32(WaitTime); - _worldPacket << int32(Unused920); + _worldPacket << int32(SpecSelected); _worldPacket.WriteBit(AsGroup); _worldPacket.WriteBit(EligibleForMatchmaking); _worldPacket.WriteBit(SuspendedQueue); @@ -330,8 +330,8 @@ ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Battleground::RatedPvpInf data << int32(bracketInfo.Ranking); data << int32(bracketInfo.SeasonPlayed); data << int32(bracketInfo.SeasonWon); - data << int32(bracketInfo.Unused1); - data << int32(bracketInfo.Unused2); + data << int32(bracketInfo.SeasonFactionPlayed); + data << int32(bracketInfo.SeasonFactionWon); data << int32(bracketInfo.WeeklyPlayed); data << int32(bracketInfo.WeeklyWon); data << int32(bracketInfo.RoundsSeasonPlayed); @@ -342,9 +342,9 @@ ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Battleground::RatedPvpInf data << int32(bracketInfo.LastWeeksBestRating); data << int32(bracketInfo.BestSeasonRating); data << int32(bracketInfo.PvpTierID); - data << int32(bracketInfo.Unused3); - data << int32(bracketInfo.Unused4); - data << int32(bracketInfo.Rank); + data << int32(bracketInfo.SeasonPvpTier); + data << int32(bracketInfo.BestWeeklyPvpTier); + data << int32(bracketInfo.BestSeasonPvpTierEnum); data.WriteBit(bracketInfo.Disqualified); data.FlushBits(); diff --git a/src/server/game/Server/Packets/BattlegroundPackets.h b/src/server/game/Server/Packets/BattlegroundPackets.h index cbe23709b0e..61c473c2036 100644 --- a/src/server/game/Server/Packets/BattlegroundPackets.h +++ b/src/server/game/Server/Packets/BattlegroundPackets.h @@ -45,8 +45,8 @@ namespace WorldPackets int32 ConquestWeeklyProgressCurrencyID = 0; int32 Unknown1027_1 = 0; bool WeeklyRewardChestsEnabled = false; - bool Unknown1027_2 = false; - bool Unknown1027_3 = false; + bool CurrentArenaSeasonUsesTeams = false; + bool PreviousArenaSeasonUsesTeams = false; }; class AreaSpiritHealerQuery final : public ClientPacket @@ -227,7 +227,7 @@ namespace WorldPackets bool SuspendedQueue = false; bool EligibleForMatchmaking = false; uint32 WaitTime = 0; - int32 Unused920 = 0; + int32 SpecSelected = 0; }; class BattlefieldStatusFailed final : public ServerPacket @@ -454,8 +454,8 @@ namespace WorldPackets int32 Ranking = 0; int32 SeasonPlayed = 0; int32 SeasonWon = 0; - int32 Unused1 = 0; - int32 Unused2 = 0; + int32 SeasonFactionPlayed = 0; + int32 SeasonFactionWon = 0; int32 WeeklyPlayed = 0; int32 WeeklyWon = 0; int32 RoundsSeasonPlayed = 0; @@ -466,9 +466,9 @@ namespace WorldPackets int32 LastWeeksBestRating = 0; int32 BestSeasonRating = 0; int32 PvpTierID = 0; - int32 Unused3 = 0; - int32 Unused4 = 0; - int32 Rank = 0; + int32 SeasonPvpTier = 0; + int32 BestWeeklyPvpTier = 0; + int32 BestSeasonPvpTierEnum = 0; bool Disqualified = false; } Bracket[9]; }; diff --git a/src/server/game/Server/Packets/CalendarPackets.cpp b/src/server/game/Server/Packets/CalendarPackets.cpp index 8d1dd199bb4..436026df50a 100644 --- a/src/server/game/Server/Packets/CalendarPackets.cpp +++ b/src/server/game/Server/Packets/CalendarPackets.cpp @@ -94,23 +94,18 @@ ByteBuffer& operator>>(ByteBuffer& buffer, WorldPackets::Calendar::CalendarAddEv buffer >> invite.Guid; buffer >> invite.Status; buffer >> invite.Moderator; - if (buffer.ReadBit()) - invite.Unused_801_1.emplace(); + buffer >> WorldPackets::OptionalInit(invite.BnetAccountID); + buffer >> WorldPackets::OptionalInit(invite.RealmAddress); + buffer >> WorldPackets::OptionalInit(invite.CommunityID); - if (buffer.ReadBit()) - invite.Unused_801_2.emplace(); + if (invite.BnetAccountID) + buffer >> *invite.BnetAccountID; - if (buffer.ReadBit()) - invite.Unused_801_3.emplace(); + if (invite.RealmAddress) + buffer >> *invite.RealmAddress; - if (invite.Unused_801_1) - buffer >> *invite.Unused_801_1; - - if (invite.Unused_801_2) - buffer >> *invite.Unused_801_2; - - if (invite.Unused_801_3) - buffer >> *invite.Unused_801_3; + if (invite.CommunityID) + buffer >> *invite.CommunityID; return buffer; } diff --git a/src/server/game/Server/Packets/CalendarPackets.h b/src/server/game/Server/Packets/CalendarPackets.h index 1d1ae538fac..12ee0bb1df3 100644 --- a/src/server/game/Server/Packets/CalendarPackets.h +++ b/src/server/game/Server/Packets/CalendarPackets.h @@ -65,9 +65,9 @@ namespace WorldPackets ObjectGuid Guid; uint8 Status = 0; uint8 Moderator = 0; - Optional<ObjectGuid> Unused_801_1; - Optional<uint64> Unused_801_2; - Optional<uint64> Unused_801_3; + Optional<ObjectGuid> BnetAccountID; + Optional<uint64> RealmAddress; + Optional<uint64> CommunityID; }; struct CalendarAddEventInfo diff --git a/src/server/game/Server/Packets/CharacterPackets.cpp b/src/server/game/Server/Packets/CharacterPackets.cpp index 3ae3077e37a..701560c9183 100644 --- a/src/server/game/Server/Packets/CharacterPackets.cpp +++ b/src/server/game/Server/Packets/CharacterPackets.cpp @@ -156,7 +156,7 @@ EnumCharactersResult::CharacterInfoBasic::CharacterInfoBasic(Field const* fields std::vector<std::string_view> equipment = Trinity::Tokenize(fields[17].GetStringView(), ' ', false); ListPosition = fields[19].GetUInt8(); - LastPlayedTime = fields[20].GetInt64(); + LastActiveTime = fields[20].GetInt64(); if (ChrSpecializationEntry const* spec = sDB2Manager.GetChrSpecializationByIndex(ClassID, fields[21].GetUInt8())) SpecID = spec->ID; @@ -213,7 +213,7 @@ ByteBuffer& operator<<(ByteBuffer& data, EnumCharactersResult::CharacterInfoBasi data << uint32(charInfo.Flags); data << uint32(charInfo.Flags2); data << uint32(charInfo.Flags3); - data << uint8(charInfo.unkWod61x); + data << uint8(charInfo.CantLoginReason); data << uint32(charInfo.PetCreatureDisplayID); data << uint32(charInfo.PetExperienceLevel); @@ -222,8 +222,8 @@ ByteBuffer& operator<<(ByteBuffer& data, EnumCharactersResult::CharacterInfoBasi for (EnumCharactersResult::CharacterInfoBasic::VisualItemInfo const& visualItem : charInfo.VisualItems) data << visualItem; - data << int32(charInfo.Unknown703); - data << charInfo.LastPlayedTime; + data << int32(charInfo.SaveVersion); + data << charInfo.LastActiveTime; data << int32(charInfo.LastLoginVersion); data << charInfo.PersonalTabard; @@ -255,7 +255,7 @@ ByteBuffer& operator<<(ByteBuffer& data, EnumCharactersResult::CharacterRestrict data << Bits<1>(restrictionsAndMails.RpeResetQuestClearAvailable); data.FlushBits(); - data << uint32(restrictionsAndMails.Flags4); + data << uint32(restrictionsAndMails.RestrictionFlags); data << uint32(restrictionsAndMails.MailSenders.size()); data << uint32(restrictionsAndMails.MailSenderTypes.size()); @@ -297,10 +297,10 @@ ByteBuffer& operator<<(ByteBuffer& data, EnumCharactersResult::RegionwideCharact ByteBuffer& operator<<(ByteBuffer& data, EnumCharactersResult::RaceUnlock const& raceUnlock) { data << int32(raceUnlock.RaceID); - data << Bits<1>(raceUnlock.HasExpansion); - data << Bits<1>(raceUnlock.HasAchievement); - data << Bits<1>(raceUnlock.HasHeritageArmor); - data << Bits<1>(raceUnlock.IsLocked); + data << Bits<1>(raceUnlock.HasUnlockedLicense); + data << Bits<1>(raceUnlock.HasUnlockedAchievement); + data << Bits<1>(raceUnlock.HasHeritageArmorUnlockAchievement); + data << Bits<1>(raceUnlock.HideRaceOnClient); data << Bits<1>(raceUnlock.Unused1027); data.FlushBits(); @@ -310,7 +310,7 @@ ByteBuffer& operator<<(ByteBuffer& data, EnumCharactersResult::RaceUnlock const& ByteBuffer& operator<<(ByteBuffer& data, EnumCharactersResult::UnlockedConditionalAppearance const& unlockedConditionalAppearance) { data << int32(unlockedConditionalAppearance.AchievementID); - data << int32(unlockedConditionalAppearance.Unused); + data << int32(unlockedConditionalAppearance.ConditionalType); return data; } @@ -318,7 +318,7 @@ ByteBuffer& operator<<(ByteBuffer& data, EnumCharactersResult::UnlockedCondition ByteBuffer& operator<<(ByteBuffer& data, EnumCharactersResult::RaceLimitDisableInfo const& raceLimitDisableInfo) { data << int32(raceLimitDisableInfo.RaceID); - data << int32(raceLimitDisableInfo.BlockReason); + data << int32(raceLimitDisableInfo.Reason); return data; } @@ -361,11 +361,11 @@ WorldPacket const* EnumCharactersResult::Write() _worldPacket << Bits<1>(Success); _worldPacket << Bits<1>(Realmless); _worldPacket << Bits<1>(IsDeletedCharacters); - _worldPacket << Bits<1>(IsNewPlayerRestrictionSkipped); - _worldPacket << Bits<1>(IsNewPlayerRestricted); - _worldPacket << Bits<1>(IsNewPlayer); - _worldPacket << Bits<1>(IsTrialAccountRestricted); - _worldPacket << OptionalInit(DisabledClassesMask); + _worldPacket << Bits<1>(IgnoreNewPlayerRestrictions); + _worldPacket << Bits<1>(IsRestrictedNewPlayer); + _worldPacket << Bits<1>(IsNewcomerChatCompleted); + _worldPacket << Bits<1>(IsRestrictedTrial); + _worldPacket << OptionalInit(ClassDisableMask); _worldPacket << Bits<1>(DontCreateCharacterDisplays); _worldPacket << uint32(Characters.size()); _worldPacket << uint32(RegionwideCharacters.size()); @@ -375,8 +375,8 @@ WorldPacket const* EnumCharactersResult::Write() _worldPacket << uint32(RaceLimitDisables.size()); _worldPacket << uint32(WarbandGroups.size()); - if (DisabledClassesMask) - _worldPacket << uint32(*DisabledClassesMask); + if (ClassDisableMask) + _worldPacket << uint32(*ClassDisableMask); for (UnlockedConditionalAppearance const& unlockedConditionalAppearance : UnlockedConditionalAppearances) _worldPacket << unlockedConditionalAppearance; diff --git a/src/server/game/Server/Packets/CharacterPackets.h b/src/server/game/Server/Packets/CharacterPackets.h index d10a7f7b031..186b0abf969 100644 --- a/src/server/game/Server/Packets/CharacterPackets.h +++ b/src/server/game/Server/Packets/CharacterPackets.h @@ -163,10 +163,10 @@ namespace WorldPackets uint32 Flags2 = 0; ///< Character customization flags @see enum CharacterCustomizeFlags uint32 Flags3 = 0; ///< Character flags 3 @todo research bool FirstLogin = false; - uint8 unkWod61x = 0; - Timestamp<> LastPlayedTime; + uint8 CantLoginReason = 0; + Timestamp<> LastActiveTime; uint16 SpecID = 0; - uint32 Unknown703 = 0; + uint32 SaveVersion = 0; uint32 LastLoginVersion = 0; uint32 OverrideSelectScreenFileDataID = 0; int32 TimerunningSeasonID = 0; @@ -195,7 +195,7 @@ namespace WorldPackets struct CharacterRestrictionAndMailData { bool BoostInProgress = false; ///< @todo - uint32 Flags4 = 0; + uint32 RestrictionFlags = 0; std::vector<std::string> MailSenders; std::vector<uint32> MailSenderTypes; bool RpeResetAvailable = false; @@ -224,18 +224,18 @@ namespace WorldPackets struct RaceUnlock { - int32 RaceID = 0; - bool HasExpansion = false; - bool HasAchievement = false; - bool HasHeritageArmor = false; - bool IsLocked = false; - bool Unused1027 = false; + int32 RaceID = 0; + bool HasUnlockedLicense = false; + bool HasUnlockedAchievement = false; + bool HasHeritageArmorUnlockAchievement = false; + bool HideRaceOnClient = false; + bool Unused1027 = false; }; struct UnlockedConditionalAppearance { int32 AchievementID = 0; - int32 Unused = 0; + int32 ConditionalType = 0; }; struct RaceLimitDisableInfo @@ -247,7 +247,7 @@ namespace WorldPackets }; int32 RaceID = 0; - int32 BlockReason = 0; + int32 Reason = 0; }; EnumCharactersResult() : ServerPacket(SMSG_ENUM_CHARACTERS_RESULT) { } @@ -257,14 +257,14 @@ namespace WorldPackets bool Success = false; bool Realmless = false; bool IsDeletedCharacters = false; ///< used for character undelete list - bool IsNewPlayerRestrictionSkipped = false; ///< allows client to skip new player restrictions - bool IsNewPlayerRestricted = false; ///< forbids using level boost and class trials - bool IsNewPlayer = false; ///< forbids hero classes and allied races - bool IsTrialAccountRestricted = false; + bool IgnoreNewPlayerRestrictions = false; ///< allows client to skip new player restrictions + bool IsRestrictedNewPlayer = false; ///< forbids using level boost and class trials + bool IsNewcomerChatCompleted = false; ///< forbids hero classes and allied races + bool IsRestrictedTrial = false; bool DontCreateCharacterDisplays = false; int32 MaxCharacterLevel = 1; - Optional<uint32> DisabledClassesMask; + Optional<uint32> ClassDisableMask; std::vector<CharacterInfo> Characters; ///< all characters on the list std::vector<RegionwideCharacterListEntry> RegionwideCharacters; diff --git a/src/server/game/Server/Packets/ChatPackets.cpp b/src/server/game/Server/Packets/ChatPackets.cpp index 5c0fa87124e..4d6c7143a6a 100644 --- a/src/server/game/Server/Packets/ChatPackets.cpp +++ b/src/server/game/Server/Packets/ChatPackets.cpp @@ -136,7 +136,7 @@ void WorldPackets::Chat::ChatMessageEmote::Read() WorldPackets::Chat::Chat::Chat(Chat const& chat) : ServerPacket(SMSG_CHAT, chat._worldPacket.size()), SlashCmd(chat.SlashCmd), _Language(chat._Language), SenderGUID(chat.SenderGUID), - SenderGuildGUID(chat.SenderGuildGUID), SenderAccountGUID(chat.SenderAccountGUID), TargetGUID(chat.TargetGUID), + SenderGuildGUID(chat.SenderGuildGUID), SenderWowAccount(chat.SenderWowAccount), TargetGUID(chat.TargetGUID), SenderVirtualAddress(chat.SenderVirtualAddress), TargetVirtualAddress(chat.TargetVirtualAddress), SenderName(chat.SenderName), TargetName(chat.TargetName), Prefix(chat.Prefix), _Channel(chat._Channel), ChatText(chat.ChatText), AchievementID(chat.AchievementID), _ChatFlags(chat._ChatFlags), DisplayTime(chat.DisplayTime), HideChatLog(chat.HideChatLog), FakeSenderName(chat.FakeSenderName) @@ -150,7 +150,7 @@ void WorldPackets::Chat::Chat::Initialize(ChatMsg chatType, Language language, W Clear(); SenderGUID.Clear(); - SenderAccountGUID.Clear(); + SenderWowAccount.Clear(); SenderGuildGUID.Clear(); TargetGUID.Clear(); SenderName.clear(); @@ -183,7 +183,7 @@ void WorldPackets::Chat::Chat::SetSender(WorldObject const* sender, LocaleConsta if (Player const* playerSender = sender->ToPlayer()) { - SenderAccountGUID = playerSender->GetSession()->GetAccountGUID(); + SenderWowAccount = playerSender->GetSession()->GetAccountGUID(); _ChatFlags = playerSender->GetChatFlags(); SenderGuildGUID = ObjectGuid::Create<HighGuid::Guild>(playerSender->GetGuildId()); @@ -203,7 +203,7 @@ WorldPacket const* WorldPackets::Chat::Chat::Write() _worldPacket << uint32(_Language); _worldPacket << SenderGUID; _worldPacket << SenderGuildGUID; - _worldPacket << SenderAccountGUID; + _worldPacket << SenderWowAccount; _worldPacket << TargetGUID; _worldPacket << uint32(TargetVirtualAddress); _worldPacket << uint32(SenderVirtualAddress); @@ -218,7 +218,7 @@ WorldPacket const* WorldPackets::Chat::Chat::Write() _worldPacket.WriteBits(ChatText.length(), 12); _worldPacket.WriteBit(HideChatLog); _worldPacket.WriteBit(FakeSenderName); - _worldPacket.WriteBit(Unused_801.has_value()); + _worldPacket.WriteBit(BroadcastTextID.has_value()); _worldPacket.WriteBit(ChannelGUID.has_value()); _worldPacket.FlushBits(); @@ -228,8 +228,8 @@ WorldPacket const* WorldPackets::Chat::Chat::Write() _worldPacket.WriteString(_Channel); _worldPacket.WriteString(ChatText); - if (Unused_801) - _worldPacket << uint32(*Unused_801); + if (BroadcastTextID) + _worldPacket << uint32(*BroadcastTextID); if (ChannelGUID) _worldPacket << *ChannelGUID; diff --git a/src/server/game/Server/Packets/ChatPackets.h b/src/server/game/Server/Packets/ChatPackets.h index dc61634eb3c..8af3f14d70a 100644 --- a/src/server/game/Server/Packets/ChatPackets.h +++ b/src/server/game/Server/Packets/ChatPackets.h @@ -167,7 +167,7 @@ namespace WorldPackets uint32 _Language = LANG_UNIVERSAL; ObjectGuid SenderGUID; ObjectGuid SenderGuildGUID; - ObjectGuid SenderAccountGUID; + ObjectGuid SenderWowAccount; ObjectGuid TargetGUID; uint32 SenderVirtualAddress = 0; uint32 TargetVirtualAddress = 0; @@ -180,7 +180,7 @@ namespace WorldPackets uint16 _ChatFlags = 0; ///< @see enum ChatFlags float DisplayTime = 0.0f; int32 SpellID = 0; - Optional<uint32> Unused_801; + Optional<uint32> BroadcastTextID; bool HideChatLog = false; bool FakeSenderName = false; Optional<ObjectGuid> ChannelGUID; diff --git a/src/server/game/Server/Packets/CombatLogPacketsCommon.cpp b/src/server/game/Server/Packets/CombatLogPacketsCommon.cpp index d417f50fa06..8571eb02f74 100644 --- a/src/server/game/Server/Packets/CombatLogPacketsCommon.cpp +++ b/src/server/game/Server/Packets/CombatLogPacketsCommon.cpp @@ -211,10 +211,10 @@ ByteBuffer& operator<<(ByteBuffer& data, SpellCastVisual const& visual) ByteBuffer& operator<<(ByteBuffer& data, SpellSupportInfo const& supportInfo) { - data << supportInfo.CasterGUID; - data << int32(supportInfo.SpellID); - data << int32(supportInfo.Amount); - data << float(supportInfo.Percentage); + data << supportInfo.Supporter; + data << int32(supportInfo.SupportSpellID); + data << int32(supportInfo.AmountRaw); + data << float(supportInfo.AmountPortion); return data; } diff --git a/src/server/game/Server/Packets/CombatLogPacketsCommon.h b/src/server/game/Server/Packets/CombatLogPacketsCommon.h index 62a35edd112..28088cf2e2d 100644 --- a/src/server/game/Server/Packets/CombatLogPacketsCommon.h +++ b/src/server/game/Server/Packets/CombatLogPacketsCommon.h @@ -93,10 +93,10 @@ namespace WorldPackets struct SpellSupportInfo { - ObjectGuid CasterGUID; - int32 SpellID = 0; - int32 Amount = 0; - float Percentage = 0.0f; + ObjectGuid Supporter; + int32 SupportSpellID = 0; + int32 AmountRaw = 0; + float AmountPortion = 0.0f; }; ByteBuffer& operator<<(ByteBuffer& data, SpellCastLogData const& spellCastLogData); diff --git a/src/server/game/Server/Packets/GuildPackets.cpp b/src/server/game/Server/Packets/GuildPackets.cpp index f6c75915527..52f2a953e61 100644 --- a/src/server/game/Server/Packets/GuildPackets.cpp +++ b/src/server/game/Server/Packets/GuildPackets.cpp @@ -119,12 +119,12 @@ void WorldPackets::Guild::GuildInviteByName::Read() { uint32 nameLen = _worldPacket.ReadBits(9); if (_worldPacket.ReadBit()) - Unused910.emplace(); + ArenaTeam.emplace(); Name = _worldPacket.ReadString(nameLen); - if (Unused910) - _worldPacket >> *Unused910; + if (ArenaTeam) + _worldPacket >> *ArenaTeam; } WorldPacket const* WorldPackets::Guild::GuildInvite::Write() @@ -528,7 +528,7 @@ WorldPacket const* WorldPackets::Guild::GuildPartyState::Write() ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Guild::GuildRewardItem const& rewardItem) { data << uint32(rewardItem.ItemID); - data << uint32(rewardItem.Unk4); + data << uint32(rewardItem.AchievementLogic); data << uint32(rewardItem.AchievementsRequired.size()); data << uint64(rewardItem.RaceMask.RawValue); data << int32(rewardItem.MinGuildLevel); diff --git a/src/server/game/Server/Packets/GuildPackets.h b/src/server/game/Server/Packets/GuildPackets.h index 2ca2fdbc202..20f3a0461f9 100644 --- a/src/server/game/Server/Packets/GuildPackets.h +++ b/src/server/game/Server/Packets/GuildPackets.h @@ -197,7 +197,7 @@ namespace WorldPackets void Read() override; std::string Name; - Optional<int32> Unused910; + Optional<int32> ArenaTeam; }; class GuildInvite final : public ServerPacket @@ -679,9 +679,9 @@ namespace WorldPackets struct GuildRewardItem { uint32 ItemID = 0; - uint32 Unk4 = 0; + uint32 AchievementLogic = 0; std::vector<uint32> AchievementsRequired; - Trinity::RaceMask<uint64> RaceMask = { 0 }; + Trinity::RaceMask<uint64> RaceMask = { }; int32 MinGuildLevel = 0; int32 MinGuildRep = 0; uint64 Cost = 0; diff --git a/src/server/game/Server/Packets/InspectPackets.cpp b/src/server/game/Server/Packets/InspectPackets.cpp index cd2d25b80a1..9cf557116dd 100644 --- a/src/server/game/Server/Packets/InspectPackets.cpp +++ b/src/server/game/Server/Packets/InspectPackets.cpp @@ -124,7 +124,7 @@ ByteBuffer& operator<<(ByteBuffer& data, InspectGuildData const& guildData) ByteBuffer& operator<<(ByteBuffer& data, PVPBracketData const& bracket) { data << uint8(bracket.Bracket); - data << int32(bracket.Unused3); + data << int32(bracket.RatingID); data << int32(bracket.Rating); data << int32(bracket.Rank); data << int32(bracket.WeeklyPlayed); @@ -132,11 +132,11 @@ ByteBuffer& operator<<(ByteBuffer& data, PVPBracketData const& bracket) data << int32(bracket.SeasonPlayed); data << int32(bracket.SeasonWon); data << int32(bracket.WeeklyBestRating); + data << int32(bracket.LastWeeksBestRating); + data << int32(bracket.Tier); + data << int32(bracket.WeeklyBestTier); data << int32(bracket.SeasonBestRating); - data << int32(bracket.PvpTierID); - data << int32(bracket.WeeklyBestWinPvpTierID); - data << int32(bracket.Unused1); - data << int32(bracket.Unused2); + data << int32(bracket.SeasonBestTierEnum); data << int32(bracket.RoundsSeasonPlayed); data << int32(bracket.RoundsSeasonWon); data << int32(bracket.RoundsWeeklyPlayed); diff --git a/src/server/game/Server/Packets/InspectPackets.h b/src/server/game/Server/Packets/InspectPackets.h index 48d008de22f..9cd7dfe386d 100644 --- a/src/server/game/Server/Packets/InspectPackets.h +++ b/src/server/game/Server/Packets/InspectPackets.h @@ -97,18 +97,18 @@ namespace WorldPackets struct PVPBracketData { int32 Rating = 0; + int32 RatingID = 0; int32 Rank = 0; int32 WeeklyPlayed = 0; int32 WeeklyWon = 0; int32 SeasonPlayed = 0; int32 SeasonWon = 0; int32 WeeklyBestRating = 0; + int32 LastWeeksBestRating = 0; + int32 Tier = 0; + int32 WeeklyBestTier = 0; int32 SeasonBestRating = 0; - int32 PvpTierID = 0; - int32 WeeklyBestWinPvpTierID = 0; - int32 Unused1 = 0; - int32 Unused2 = 0; - int32 Unused3 = 0; + int32 SeasonBestTierEnum = 0; int32 RoundsSeasonPlayed = 0; int32 RoundsSeasonWon = 0; int32 RoundsWeeklyPlayed = 0; diff --git a/src/server/game/Server/Packets/ItemPackets.cpp b/src/server/game/Server/Packets/ItemPackets.cpp index 01d6205ae33..19479c14929 100644 --- a/src/server/game/Server/Packets/ItemPackets.cpp +++ b/src/server/game/Server/Packets/ItemPackets.cpp @@ -251,11 +251,11 @@ WorldPacket const* WorldPackets::Item::ItemPushResult::Write() _worldPacket << PlayerGUID; _worldPacket << uint8(Slot); _worldPacket << int32(SlotInBag); - _worldPacket << int32(QuestLogItemID); + _worldPacket << int32(ProxyItemID); _worldPacket << int32(Quantity); _worldPacket << int32(QuantityInInventory); _worldPacket << int32(QuantityInQuestLog); - _worldPacket << int32(DungeonEncounterID); + _worldPacket << int32(EncounterID); _worldPacket << int32(BattlePetSpeciesID); _worldPacket << int32(BattlePetBreedID); _worldPacket << uint8(BattlePetBreedQuality); @@ -267,10 +267,10 @@ WorldPacket const* WorldPackets::Item::ItemPushResult::Write() _worldPacket << Bits<1>(Pushed); _worldPacket << Bits<1>(Created); - _worldPacket << Bits<1>(Unused_1017); - _worldPacket << Bits<3>(DisplayText); + _worldPacket << Bits<1>(FakeQuestItem); + _worldPacket << Bits<3>(ChatNotifyType); _worldPacket << Bits<1>(IsBonusRoll); - _worldPacket << Bits<1>(IsEncounterLoot); + _worldPacket << Bits<1>(IsPersonalLoot); _worldPacket << OptionalInit(CraftingData); _worldPacket << OptionalInit(FirstCraftOperationID); _worldPacket.FlushBits(); diff --git a/src/server/game/Server/Packets/ItemPackets.h b/src/server/game/Server/Packets/ItemPackets.h index e1b33cc99db..a6834efbe22 100644 --- a/src/server/game/Server/Packets/ItemPackets.h +++ b/src/server/game/Server/Packets/ItemPackets.h @@ -343,12 +343,12 @@ namespace WorldPackets uint8 Slot = 0; int32 SlotInBag = 0; ItemInstance Item; - int32 QuestLogItemID = 0; // Item ID used for updating quest progress + int32 ProxyItemID = 0; // Item ID used for updating quest progress // only set if different than real ID (similar to CreatureTemplate.KillCredit) int32 Quantity = 0; int32 QuantityInInventory = 0; int32 QuantityInQuestLog = 0; - int32 DungeonEncounterID = 0; + int32 EncounterID = 0; int32 BattlePetSpeciesID = 0; int32 BattlePetBreedID = 0; uint8 BattlePetBreedQuality = 0; @@ -358,11 +358,11 @@ namespace WorldPackets Optional<Crafting::CraftingData> CraftingData; Optional<uint32> FirstCraftOperationID; bool Pushed = false; - DisplayType DisplayText = DISPLAY_TYPE_HIDDEN; + DisplayType ChatNotifyType = DISPLAY_TYPE_HIDDEN; bool Created = false; - bool Unused_1017 = false; + bool FakeQuestItem = false; bool IsBonusRoll = false; - bool IsEncounterLoot = false; + bool IsPersonalLoot = false; }; class ReadItem final : public ClientPacket diff --git a/src/server/game/Server/Packets/LFGPackets.cpp b/src/server/game/Server/Packets/LFGPackets.cpp index 0e933141dcf..3dc36625568 100644 --- a/src/server/game/Server/Packets/LFGPackets.cpp +++ b/src/server/game/Server/Packets/LFGPackets.cpp @@ -21,7 +21,7 @@ void WorldPackets::LFG::DFJoin::Read() { QueueAsGroup = _worldPacket.ReadBit(); bool hasPartyIndex = _worldPacket.ReadBit(); - Unknown = _worldPacket.ReadBit(); + Mercenary = _worldPacket.ReadBit(); _worldPacket >> Roles; Slots.resize(_worldPacket.read<uint32>()); if (hasPartyIndex) @@ -127,19 +127,19 @@ ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::LFG::LfgPlayerQuestReward data << bonusCurrency; data.WriteBit(playerQuestReward.RewardSpellID.has_value()); - data.WriteBit(playerQuestReward.Unused1.has_value()); - data.WriteBit(playerQuestReward.Unused2.has_value()); + data.WriteBit(playerQuestReward.ArtifactXPCategory.has_value()); + data.WriteBit(playerQuestReward.ArtifactXP.has_value()); data.WriteBit(playerQuestReward.Honor.has_value()); data.FlushBits(); if (playerQuestReward.RewardSpellID) data << int32(*playerQuestReward.RewardSpellID); - if (playerQuestReward.Unused1) - data << int32(*playerQuestReward.Unused1); + if (playerQuestReward.ArtifactXPCategory) + data << int32(*playerQuestReward.ArtifactXPCategory); - if (playerQuestReward.Unused2) - data << uint64(*playerQuestReward.Unused2); + if (playerQuestReward.ArtifactXP) + data << uint64(*playerQuestReward.ArtifactXP); if (playerQuestReward.Honor) data << int32(*playerQuestReward.Honor); @@ -216,7 +216,7 @@ WorldPacket const* WorldPackets::LFG::LFGUpdateStatus::Write() _worldPacket.WriteBit(Joined); _worldPacket.WriteBit(LfgJoined); _worldPacket.WriteBit(Queued); - _worldPacket.WriteBit(Unused); + _worldPacket.WriteBit(Brawl); _worldPacket.FlushBits(); return &_worldPacket; @@ -382,10 +382,10 @@ WorldPacket const* WorldPackets::LFG::LFGProposalUpdate::Write() _worldPacket << uint32(CompletedMask); _worldPacket << uint32(EncounterMask); _worldPacket << uint32(Players.size()); - _worldPacket << uint8(Unused); + _worldPacket << uint8(PromisedShortageRolePriority); _worldPacket.WriteBit(ValidCompletedMask); _worldPacket.WriteBit(ProposalSilent); - _worldPacket.WriteBit(IsRequeue); + _worldPacket.WriteBit(FailedByMyParty); _worldPacket.FlushBits(); for (LFGProposalUpdatePlayer const& player : Players) diff --git a/src/server/game/Server/Packets/LFGPackets.h b/src/server/game/Server/Packets/LFGPackets.h index 80f1f689c28..8e51aa2378d 100644 --- a/src/server/game/Server/Packets/LFGPackets.h +++ b/src/server/game/Server/Packets/LFGPackets.h @@ -41,7 +41,7 @@ namespace WorldPackets void Read() override; bool QueueAsGroup = false; - bool Unknown = false; // Always false in 7.2.5 + bool Mercenary = false; Optional<uint8> PartyIndex; uint8 Roles = 0; Array<uint32, 50> Slots; @@ -166,8 +166,8 @@ namespace WorldPackets std::vector<LfgPlayerQuestRewardCurrency> Currency; // Only used by SMSG_LFG_PLAYER_INFO std::vector<LfgPlayerQuestRewardCurrency> BonusCurrency; // Only used by SMSG_LFG_PLAYER_INFO Optional<int32> RewardSpellID; // Only used by SMSG_LFG_PLAYER_INFO - Optional<int32> Unused1; - Optional<uint64> Unused2; + Optional<int32> ArtifactXPCategory; + Optional<uint64> ArtifactXP; Optional<int32> Honor; // Only used by SMSG_REQUEST_PVP_REWARDS_RESPONSE }; @@ -234,7 +234,7 @@ namespace WorldPackets bool Joined = false; bool LfgJoined = false; bool Queued = false; - bool Unused = false; + bool Brawl = false; }; class RoleChosen final : public ServerPacket @@ -393,10 +393,10 @@ namespace WorldPackets int8 State = 0; uint32 CompletedMask = 0; uint32 EncounterMask = 0; - uint8 Unused = 0; + uint8 PromisedShortageRolePriority = 0; bool ValidCompletedMask = false; bool ProposalSilent = false; - bool IsRequeue = false; + bool FailedByMyParty = false; std::vector<LFGProposalUpdatePlayer> Players; }; diff --git a/src/server/game/Server/Packets/LFGPacketsCommon.cpp b/src/server/game/Server/Packets/LFGPacketsCommon.cpp index a88cc08977e..e58a4d754d4 100644 --- a/src/server/game/Server/Packets/LFGPacketsCommon.cpp +++ b/src/server/game/Server/Packets/LFGPacketsCommon.cpp @@ -23,7 +23,7 @@ ByteBuffer& operator>>(ByteBuffer& data, WorldPackets::LFG::RideTicket& ticket) data >> ticket.Id; ticket.Type = data.read<WorldPackets::LFG::RideType>(); data >> ticket.Time; - ticket.Unknown925 = data.ReadBit(); + ticket.IsCrossFaction = data.ReadBit(); data.ResetBitPos(); return data; @@ -35,7 +35,7 @@ ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::LFG::RideTicket const& ti data << uint32(ticket.Id); data << uint32(ticket.Type); data << ticket.Time; - data.WriteBit(ticket.Unknown925); + data.WriteBit(ticket.IsCrossFaction); data.FlushBits(); return data; diff --git a/src/server/game/Server/Packets/LFGPacketsCommon.h b/src/server/game/Server/Packets/LFGPacketsCommon.h index 2244b7dcd31..3b9df00784a 100644 --- a/src/server/game/Server/Packets/LFGPacketsCommon.h +++ b/src/server/game/Server/Packets/LFGPacketsCommon.h @@ -38,7 +38,7 @@ namespace WorldPackets uint32 Id = 0; RideType Type = RideType::None; Timestamp<> Time; - bool Unknown925 = false; + bool IsCrossFaction = false; }; } } diff --git a/src/server/game/Server/Packets/MiscPackets.cpp b/src/server/game/Server/Packets/MiscPackets.cpp index 730ff5624cc..eb97e77cb28 100644 --- a/src/server/game/Server/Packets/MiscPackets.cpp +++ b/src/server/game/Server/Packets/MiscPackets.cpp @@ -658,7 +658,7 @@ WorldPacket const* WorldPackets::Misc::AccountHeirloomUpdate::Write() _worldPacket.WriteBit(IsFullUpdate); _worldPacket.FlushBits(); - _worldPacket << int32(Unk); + _worldPacket << int32(ItemCollectionType); // both lists have to have the same size _worldPacket << uint32(Heirlooms->size()); diff --git a/src/server/game/Server/Packets/MiscPackets.h b/src/server/game/Server/Packets/MiscPackets.h index da2f2ddd2f2..0630c794ca8 100644 --- a/src/server/game/Server/Packets/MiscPackets.h +++ b/src/server/game/Server/Packets/MiscPackets.h @@ -833,7 +833,7 @@ namespace WorldPackets bool IsFullUpdate = false; std::map<uint32, HeirloomData> const* Heirlooms = nullptr; - int32 Unk = 0; + int32 ItemCollectionType = 0; }; class MountSpecial final : public ClientPacket diff --git a/src/server/game/Server/Packets/MovementPackets.cpp b/src/server/game/Server/Packets/MovementPackets.cpp index 578ac6c4a5f..df64e05b35a 100644 --- a/src/server/game/Server/Packets/MovementPackets.cpp +++ b/src/server/game/Server/Packets/MovementPackets.cpp @@ -306,7 +306,7 @@ ByteBuffer& WorldPackets::operator<<(ByteBuffer& data, Movement::MovementSpline data.WriteBits(movementSpline.Face, 2); data.WriteBits(movementSpline.Points.size(), 16); data.WriteBit(movementSpline.VehicleExitVoluntary); - data.WriteBit(movementSpline.Interpolate); + data.WriteBit(movementSpline.TaxiSmoothing); data.WriteBits(movementSpline.PackedDeltas.size(), 16); data.WriteBit(movementSpline.SplineFilter.has_value()); data.WriteBit(movementSpline.SpellEffectExtraData.has_value()); @@ -357,7 +357,7 @@ ByteBuffer& WorldPackets::operator<<(ByteBuffer& data, Movement::MovementMonster { data << movementMonsterSpline.ID; data.WriteBit(movementMonsterSpline.CrzTeleport); - data.WriteBits(movementMonsterSpline.StopDistanceTolerance, 3); + data.WriteBits(movementMonsterSpline.StopSplineStyle, 3); data << movementMonsterSpline.Move; @@ -517,7 +517,7 @@ void WorldPackets::Movement::CommonMovement::WriteMovementForceWithDirection(Mov data << uint32(movementForce.TransportID); data << float(movementForce.Magnitude); - data << int32(movementForce.Unused910); + data << int32(movementForce.MovementForceID); data.WriteBits(AsUnderlyingType(movementForce.Type), 2); data.FlushBits(); } @@ -757,7 +757,7 @@ ByteBuffer& operator>>(ByteBuffer& data, MovementForce& movementForce) data >> movementForce.Direction; data >> movementForce.TransportID; data >> movementForce.Magnitude; - data >> movementForce.Unused910; + data >> movementForce.MovementForceID; movementForce.Type = MovementForceType(data.ReadBits(2)); return data; diff --git a/src/server/game/Server/Packets/MovementPackets.h b/src/server/game/Server/Packets/MovementPackets.h index 4c5a44d361c..8a4917fcffa 100644 --- a/src/server/game/Server/Packets/MovementPackets.h +++ b/src/server/game/Server/Packets/MovementPackets.h @@ -122,7 +122,7 @@ namespace WorldPackets std::vector<TaggedPosition<Position::XYZ>> Points; // Spline path uint8 Mode = 0; // Spline mode - actually always 0 in this packet - Catmullrom mode appears only in SMSG_UPDATE_OBJECT. In this packet it is determined by flags bool VehicleExitVoluntary = false; - bool Interpolate = false; + bool TaxiSmoothing = false; ObjectGuid TransportGUID; int8 VehicleSeat = -1; std::vector<TaggedPosition<Position::PackedXYZ>> PackedDeltas; @@ -140,7 +140,7 @@ namespace WorldPackets { uint32 ID = 0; bool CrzTeleport = false; - uint8 StopDistanceTolerance = 0; // Determines how far from spline destination the mover is allowed to stop in place 0, 0, 3.0, 2.76, numeric_limits<float>::max, 1.1, float(INT_MAX); default before this field existed was distance 3.0 (index 2) + uint8 StopSplineStyle = 0; // Determines how far from spline destination the mover is allowed to stop in place 0, 0, 3.0, 2.76, numeric_limits<float>::max, 1.1, float(INT_MAX); default before this field existed was distance 3.0 (index 2) MovementSpline Move; }; diff --git a/src/server/game/Server/Packets/PartyPackets.cpp b/src/server/game/Server/Packets/PartyPackets.cpp index 088de54e026..90fccd9512d 100644 --- a/src/server/game/Server/Packets/PartyPackets.cpp +++ b/src/server/game/Server/Packets/PartyPackets.cpp @@ -61,18 +61,18 @@ void WorldPackets::Party::PartyInviteClient::Read() WorldPacket const* WorldPackets::Party::PartyInvite::Write() { _worldPacket << Bits<1>(CanAccept); - _worldPacket << Bits<1>(MightCRZYou); _worldPacket << Bits<1>(IsXRealm); - _worldPacket << Bits<1>(MustBeBNetFriend); + _worldPacket << Bits<1>(IsXNativeRealm); + _worldPacket << Bits<1>(ShouldSquelch); _worldPacket << Bits<1>(AllowMultipleRoles); _worldPacket << Bits<1>(QuestSessionActive); _worldPacket << BitsSize<6>(InviterName); - _worldPacket << Bits<1>(Unused1102); + _worldPacket << Bits<1>(IsCrossFaction); _worldPacket << InviterRealm; _worldPacket << InviterGUID; _worldPacket << InviterBNetAccountId; - _worldPacket << uint16(Unk1); + _worldPacket << uint16(InviterCfgRealmID); _worldPacket << uint8(ProposedRoles); _worldPacket << uint32(LfgSlots.size()); _worldPacket << uint32(LfgCompletedMask); @@ -175,9 +175,9 @@ ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Party::PartyMemberAuraSta ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Party::CTROptions const& ctrOptions) { - data << uint32(ctrOptions.ContentTuningConditionMask); - data << int32(ctrOptions.Unused901); - data << uint32(ctrOptions.ExpansionLevelMask); + data << uint32(ctrOptions.ConditionalFlags); + data << int32(ctrOptions.FactionGroup); + data << uint32(ctrOptions.ChromieTimeExpansionMask); return data; } @@ -709,6 +709,10 @@ void WorldPackets::Party::PartyMemberFullState::Initialize(Player const* player) MemberStats.PetStats->Auras.push_back(aura); } } + + MemberStats.ChromieTime.ConditionalFlags = player->m_playerData->CtrOptions->ConditionalFlags; + MemberStats.ChromieTime.FactionGroup = player->m_playerData->CtrOptions->FactionGroup; + MemberStats.ChromieTime.ChromieTimeExpansionMask = player->m_playerData->CtrOptions->ChromieTimeExpansionMask; } WorldPacket const* WorldPackets::Party::PartyKillLog::Write() diff --git a/src/server/game/Server/Packets/PartyPackets.h b/src/server/game/Server/Packets/PartyPackets.h index 7bf510c1089..71f5d0e9805 100644 --- a/src/server/game/Server/Packets/PartyPackets.h +++ b/src/server/game/Server/Packets/PartyPackets.h @@ -66,12 +66,11 @@ namespace WorldPackets void Initialize(Player const* inviter, int32 proposedRoles, bool canAccept); - bool MightCRZYou = false; - bool MustBeBNetFriend = false; + bool ShouldSquelch = false; bool AllowMultipleRoles = false; bool QuestSessionActive = false; - bool Unused1102 = false; - uint16 Unk1 = 0; + bool IsCrossFaction = false; + uint16 InviterCfgRealmID = 0; bool CanAccept = false; @@ -83,6 +82,7 @@ namespace WorldPackets // Realm bool IsXRealm = false; + bool IsXNativeRealm = false; // Lfg uint8 ProposedRoles = 0; @@ -178,9 +178,9 @@ namespace WorldPackets struct CTROptions { - uint32 ContentTuningConditionMask = 0; - int32 Unused901 = 0; - uint32 ExpansionLevelMask = 0; + uint32 ConditionalFlags = 0; + int32 FactionGroup = 0; + uint32 ChromieTimeExpansionMask = 0; }; struct PartyMemberStats diff --git a/src/server/game/Server/Packets/PetitionPackets.cpp b/src/server/game/Server/Packets/PetitionPackets.cpp index 9f42c3807bb..e1796af85e2 100644 --- a/src/server/game/Server/Packets/PetitionPackets.cpp +++ b/src/server/game/Server/Packets/PetitionPackets.cpp @@ -88,7 +88,7 @@ void WorldPackets::Petition::PetitionBuy::Read() uint32 titleLen = _worldPacket.ReadBits(7); _worldPacket >> Unit; - _worldPacket >> Unused910; + _worldPacket >> Muid; Title = _worldPacket.ReadString(titleLen); } diff --git a/src/server/game/Server/Packets/PetitionPackets.h b/src/server/game/Server/Packets/PetitionPackets.h index 71d909e4028..ec5f6a2c4b8 100644 --- a/src/server/game/Server/Packets/PetitionPackets.h +++ b/src/server/game/Server/Packets/PetitionPackets.h @@ -100,7 +100,7 @@ namespace WorldPackets ObjectGuid Unit; std::string Title; - uint32 Unused910 = 0; + uint32 Muid = 0; }; class PetitionShowSignatures final : public ClientPacket diff --git a/src/server/game/Server/Packets/QueryPackets.cpp b/src/server/game/Server/Packets/QueryPackets.cpp index d41e683a5c8..1006e285f03 100644 --- a/src/server/game/Server/Packets/QueryPackets.cpp +++ b/src/server/game/Server/Packets/QueryPackets.cpp @@ -166,6 +166,7 @@ bool PlayerGuidLookupData::Initialize(ObjectGuid const& guid, Player const* play Sex = player->GetNativeGender(); ClassID = player->GetClass(); Level = player->GetLevel(); + PvpFaction = player->GetTeamId() == TEAM_ALLIANCE ? 1 : 0; TimerunningSeasonID = player->m_activePlayerData->TimerunningSeasonID; if (UF::DeclinedNames const* names = player->GetDeclinedNames()) @@ -183,6 +184,7 @@ bool PlayerGuidLookupData::Initialize(ObjectGuid const& guid, Player const* play Sex = characterInfo->Sex; ClassID = characterInfo->Class; Level = characterInfo->Level; + PvpFaction = Player::TeamIdForRace(characterInfo->Race) == TEAM_ALLIANCE ? 1 : 0; } IsDeleted = characterInfo->IsDeleted; @@ -213,21 +215,21 @@ ByteBuffer& operator<<(ByteBuffer& data, PlayerGuidLookupData const& lookupData) data << uint8(lookupData.Sex); data << uint8(lookupData.ClassID); data << uint8(lookupData.Level); - data << uint8(lookupData.Unused915); + data << uint8(lookupData.PvpFaction); data << int32(lookupData.TimerunningSeasonID); data.WriteString(lookupData.Name); return data; } -ByteBuffer& operator<<(ByteBuffer& data, NameCacheUnused920 const& thing) +ByteBuffer& operator<<(ByteBuffer& data, GuildGuidLookupData const& lookupData) { - data << uint32(thing.Unused1); - data << thing.Unused2; - data.WriteBits(thing.Unused3.length(), 7); + data << uint32(lookupData.VirtualRealmAddress); + data << lookupData.Guid; + data.WriteBits(lookupData.Name.length(), 7); data.FlushBits(); - data.WriteString(thing.Unused3); + data.WriteString(lookupData.Name); return data; } @@ -237,14 +239,14 @@ ByteBuffer& operator<<(ByteBuffer& data, NameCacheLookupResult const& result) data << uint8(result.Result); data << result.Player; data.WriteBit(result.Data.has_value()); - data.WriteBit(result.Unused920.has_value()); + data.WriteBit(result.GuildData.has_value()); data.FlushBits(); if (result.Data) data << *result.Data; - if (result.Unused920) - data << *result.Unused920; + if (result.GuildData) + data << *result.GuildData; return data; } @@ -557,7 +559,7 @@ ByteBuffer& operator<<(ByteBuffer& data, TreasurePickerBonus const& treasurePick data << uint32(treasurePickerBonus.Items.size()); data << uint32(treasurePickerBonus.Currencies.size()); data << uint64(treasurePickerBonus.Money); - data << Bits<1>(treasurePickerBonus.Unknown); + data << Bits<1>(treasurePickerBonus.Context); data.FlushBits(); for (TreasurePickItem const& treasurePickerItem : treasurePickerBonus.Items) diff --git a/src/server/game/Server/Packets/QueryPackets.h b/src/server/game/Server/Packets/QueryPackets.h index ec8eeb85b1f..9ab2c74d796 100644 --- a/src/server/game/Server/Packets/QueryPackets.h +++ b/src/server/game/Server/Packets/QueryPackets.h @@ -126,16 +126,16 @@ namespace WorldPackets uint8 Sex = GENDER_NONE; uint8 ClassID = CLASS_NONE; uint8 Level = 0; - uint8 Unused915 = 0; + uint8 PvpFaction = 0; int32 TimerunningSeasonID = 0; DeclinedName DeclinedNames; }; - struct NameCacheUnused920 + struct GuildGuidLookupData { - uint32 Unused1 = 0; - ObjectGuid Unused2; - std::string_view Unused3; + uint32 VirtualRealmAddress = 0; + ObjectGuid Guid; + std::string_view Name; }; struct NameCacheLookupResult @@ -143,7 +143,7 @@ namespace WorldPackets ObjectGuid Player; uint8 Result = 0; // 0 - full packet, != 0 - only guid Optional<PlayerGuidLookupData> Data; - Optional<NameCacheUnused920> Unused920; + Optional<GuildGuidLookupData> GuildData; }; class QueryPlayerNamesResponse final : public ServerPacket @@ -468,7 +468,7 @@ namespace WorldPackets std::vector<TreasurePickItem> Items; std::vector<TreasurePickCurrency> Currencies; uint64 Money = 0; - bool Unknown = false; + uint8 Context = 0; }; struct TreasurePickerPick diff --git a/src/server/game/Server/Packets/ScenarioPackets.cpp b/src/server/game/Server/Packets/ScenarioPackets.cpp index 616c410ab00..0e361a6ea42 100644 --- a/src/server/game/Server/Packets/ScenarioPackets.cpp +++ b/src/server/game/Server/Packets/ScenarioPackets.cpp @@ -87,8 +87,8 @@ WorldPacket const* ScenarioVacate::Write() { _worldPacket << ScenarioGUID; _worldPacket << int32(ScenarioID); - _worldPacket << int32(Unk1); - _worldPacket.WriteBits(Unk2, 2); + _worldPacket << int32(TimeRemain); + _worldPacket.WriteBits(Reason, 2); _worldPacket.FlushBits(); return &_worldPacket; diff --git a/src/server/game/Server/Packets/ScenarioPackets.h b/src/server/game/Server/Packets/ScenarioPackets.h index 1193e6de42d..671d25f225b 100644 --- a/src/server/game/Server/Packets/ScenarioPackets.h +++ b/src/server/game/Server/Packets/ScenarioPackets.h @@ -91,8 +91,8 @@ public: ObjectGuid ScenarioGUID; int32 ScenarioID = 0; - int32 Unk1 = 0; - uint8 Unk2 = 0; + int32 TimeRemain = 0; + uint8 Reason = 0; }; class QueryScenarioPOI final : public ClientPacket diff --git a/src/server/game/Server/Packets/SpellPackets.cpp b/src/server/game/Server/Packets/SpellPackets.cpp index 486ac112d34..c5271546d00 100644 --- a/src/server/game/Server/Packets/SpellPackets.cpp +++ b/src/server/game/Server/Packets/SpellPackets.cpp @@ -201,7 +201,7 @@ ByteBuffer& operator>>(ByteBuffer& data, SpellCraftingReagent& optionalReagent) data >> optionalReagent.DataSlotIndex; data >> optionalReagent.Quantity; if (data.ReadBit()) - optionalReagent.Unknown_1000 = data.read<uint8>(); + optionalReagent.Source = data.read<uint8>(); return data; } diff --git a/src/server/game/Server/Packets/SpellPackets.h b/src/server/game/Server/Packets/SpellPackets.h index 40256e7af16..0f38ef62e45 100644 --- a/src/server/game/Server/Packets/SpellPackets.h +++ b/src/server/game/Server/Packets/SpellPackets.h @@ -228,7 +228,7 @@ namespace WorldPackets int32 ItemID = 0; int32 DataSlotIndex = 0; int32 Quantity = 0; - Optional<uint8> Unknown_1000; + Optional<uint8> Source; }; struct SpellExtraCurrencyCost diff --git a/src/server/game/Server/Packets/SystemPackets.cpp b/src/server/game/Server/Packets/SystemPackets.cpp index c14bc777465..189a9e8fbb5 100644 --- a/src/server/game/Server/Packets/SystemPackets.cpp +++ b/src/server/game/Server/Packets/SystemPackets.cpp @@ -69,31 +69,31 @@ WorldPacket const* FeatureSystemStatus::Write() _worldPacket << uint32(RAFSystem.MaxRecruitMonths); _worldPacket << uint32(RAFSystem.MaxRecruitmentUses); _worldPacket << uint32(RAFSystem.DaysInCycle); - _worldPacket << uint32(RAFSystem.Unknown1007); + _worldPacket << uint32(RAFSystem.RewardsVersion); - _worldPacket << uint32(TokenPollTimeSeconds); - _worldPacket << uint32(KioskSessionMinutes); - _worldPacket << int64(TokenBalanceAmount); + _worldPacket << uint32(CommercePricePollTimeSeconds); + _worldPacket << uint32(KioskSessionDurationMinutes); + _worldPacket << int64(RedeemForBalanceAmount); - _worldPacket << uint32(BpayStoreProductDeliveryDelay); + _worldPacket << uint32(BpayStorePurchaseTimeout); - _worldPacket << uint32(ClubsPresenceUpdateTimer); - _worldPacket << uint32(HiddenUIClubsPresenceUpdateTimer); + _worldPacket << uint32(ClubsPresenceDelay); + _worldPacket << uint32(ClubPresenceUnsubscribeDelay); - _worldPacket << int32(ActiveSeason); - _worldPacket << uint32(GameRuleValues.size()); + _worldPacket << int32(ContentSetID); + _worldPacket << uint32(GameRules.size()); _worldPacket << int32(ActiveTimerunningSeasonID); _worldPacket << int32(RemainingTimerunningSeasonSeconds); - _worldPacket << int16(MaxPlayerNameQueriesPerPacket); - _worldPacket << int16(PlayerNameQueryTelemetryInterval); - _worldPacket << PlayerNameQueryInterval; + _worldPacket << int16(MaxPlayerGuidLookupsPerRequest); + _worldPacket << int16(NameLookupTelemetryInterval); + _worldPacket << NotFoundCacheTimeSeconds; _worldPacket << int32(AddonChatThrottle.MaxTries); _worldPacket << int32(AddonChatThrottle.TriesRestoredPerSecond); _worldPacket << int32(AddonChatThrottle.UsedTriesPerMessage); - for (GameRuleValuePair const& gameRuleValue : GameRuleValues) + for (GameRuleValuePair const& gameRuleValue : GameRules) _worldPacket << gameRuleValue; _worldPacket << Bits<1>(VoiceEnabled); @@ -109,43 +109,43 @@ WorldPacket const* FeatureSystemStatus::Write() _worldPacket << Bits<1>(RAFSystem.RecruitingEnabled); _worldPacket << Bits<1>(CharUndeleteEnabled); _worldPacket << Bits<1>(RestrictedAccount); - _worldPacket << Bits<1>(CommerceSystemEnabled); - _worldPacket << Bits<1>(TutorialsEnabled); - _worldPacket << Bits<1>(Unk67); - _worldPacket << Bits<1>(WillKickFromWorld); + _worldPacket << Bits<1>(CommerceServerEnabled); + _worldPacket << Bits<1>(TutorialEnabled); + _worldPacket << Bits<1>(VeteranTokenRedeemWillKick); + _worldPacket << Bits<1>(WorldTokenRedeemWillKick); _worldPacket << Bits<1>(KioskModeEnabled); _worldPacket << Bits<1>(CompetitiveModeEnabled); - _worldPacket << Bits<1>(TokenBalanceEnabled); - _worldPacket << Bits<1>(WarModeFeatureEnabled); - _worldPacket << Bits<1>(ClubsEnabled); - _worldPacket << Bits<1>(ClubsBattleNetClubTypeAllowed); - _worldPacket << Bits<1>(ClubsCharacterClubTypeAllowed); - _worldPacket << Bits<1>(ClubsPresenceUpdateEnabled); - - _worldPacket << Bits<1>(VoiceChatDisabledByParentalControl); - _worldPacket << Bits<1>(VoiceChatMutedByParentalControl); + _worldPacket << Bits<1>(RedeemForBalanceAvailable); + _worldPacket << Bits<1>(WarModeEnabled); + _worldPacket << Bits<1>(CommunitiesEnabled); + _worldPacket << Bits<1>(BnetGroupsEnabled); + _worldPacket << Bits<1>(CharacterCommunitiesEnabled); + _worldPacket << Bits<1>(ClubPresenceAllowSubscribeAll); + + _worldPacket << Bits<1>(VoiceChatParentalDisabled); + _worldPacket << Bits<1>(VoiceChatParentalMuted); _worldPacket << Bits<1>(QuestSessionEnabled); - _worldPacket << Bits<1>(IsMuted); + _worldPacket << Bits<1>(IsChatMuted); _worldPacket << Bits<1>(ClubFinderEnabled); _worldPacket << Bits<1>(CommunityFinderEnabled); - _worldPacket << Bits<1>(Unknown901CheckoutRelated); - _worldPacket << Bits<1>(TextToSpeechFeatureEnabled); + _worldPacket << Bits<1>(BrowserCrashReporterEnabled); + _worldPacket << Bits<1>(SpeakForMeAllowed); - _worldPacket << Bits<1>(ChatDisabledByDefault); - _worldPacket << Bits<1>(ChatDisabledByPlayer); - _worldPacket << Bits<1>(LFGListCustomRequiresAuthenticator); - _worldPacket << Bits<1>(AddonsDisabled); + _worldPacket << Bits<1>(DoesAccountNeedAADCPrompt); + _worldPacket << Bits<1>(IsAccountOptedInToAADC); + _worldPacket << Bits<1>(LfgRequireAuthenticatorEnabled); + _worldPacket << Bits<1>(ScriptsDisallowedForBeta); _worldPacket << Bits<1>(TimerunningEnabled); _worldPacket << Bits<1>(WarGamesEnabled); - _worldPacket << Bits<1>(ContentTrackingEnabled); - _worldPacket << Bits<1>(IsSellAllJunkEnabled); + _worldPacket << Bits<1>(IsPlayerContentTrackingEnabled); + _worldPacket << Bits<1>(SellAllJunkEnabled); - _worldPacket << Bits<1>(IsGroupFinderEnabled); - _worldPacket << Bits<1>(IsLFDEnabled); - _worldPacket << Bits<1>(IsLFREnabled); + _worldPacket << Bits<1>(GroupFinderEnabled); + _worldPacket << Bits<1>(LfdEnabled); + _worldPacket << Bits<1>(LfrEnabled); _worldPacket << Bits<1>(IsPremadeGroupEnabled); - _worldPacket << Bits<1>(CanShowSetRoleButton); + _worldPacket << Bits<1>(PremadeGroupsEnabled); _worldPacket << Bits<1>(false); // unused 10.2.7 _worldPacket << Bits<1>(GuildEventsEditsEnabled); _worldPacket << Bits<1>(GuildTradeSkillsEnabled); @@ -211,33 +211,33 @@ WorldPacket const* FeatureSystemStatusGlueScreen::Write() _worldPacket << Bits<1>(BpayStoreAvailable); _worldPacket << Bits<1>(BpayStoreDisabledByParentalControls); _worldPacket << Bits<1>(CharUndeleteEnabled); - _worldPacket << Bits<1>(CommerceSystemEnabled); - _worldPacket << Bits<1>(Unk14); - _worldPacket << Bits<1>(WillKickFromWorld); - _worldPacket << Bits<1>(IsExpansionPreorderInStore); + _worldPacket << Bits<1>(CommerceServerEnabled); + _worldPacket << Bits<1>(VeteranTokenRedeemWillKick); + _worldPacket << Bits<1>(WorldTokenRedeemWillKick); + _worldPacket << Bits<1>(ExpansionPreorderInStore); _worldPacket << Bits<1>(KioskModeEnabled); _worldPacket << Bits<1>(CompetitiveModeEnabled); - _worldPacket << Bits<1>(IsBoostEnabled); + _worldPacket << Bits<1>(BoostEnabled); _worldPacket << Bits<1>(TrialBoostEnabled); - _worldPacket << Bits<1>(TokenBalanceEnabled); + _worldPacket << Bits<1>(RedeemForBalanceAvailable); _worldPacket << Bits<1>(PaidCharacterTransfersBetweenBnetAccountsEnabled); _worldPacket << Bits<1>(LiveRegionCharacterListEnabled); _worldPacket << Bits<1>(LiveRegionCharacterCopyEnabled); _worldPacket << Bits<1>(LiveRegionAccountCopyEnabled); _worldPacket << Bits<1>(LiveRegionKeyBindingsCopyEnabled); - _worldPacket << Bits<1>(Unknown901CheckoutRelated); - _worldPacket << Bits<1>(false); // unused, 10.0.2 + _worldPacket << Bits<1>(BrowserCrashReporterEnabled); + _worldPacket << Bits<1>(IisEmployeeAccount); _worldPacket << OptionalInit(EuropaTicketSystemStatus); - _worldPacket << Bits<1>(IsNameReservationEnabled); - _worldPacket << OptionalInit(LaunchETA); + _worldPacket << Bits<1>(NameReservationOnly); + _worldPacket << OptionalInit(LaunchDurationETA); _worldPacket << Bits<1>(TimerunningEnabled); - _worldPacket << Bits<1>(AddonsDisabled); - _worldPacket << Bits<1>(Unused1000); - _worldPacket << Bits<1>(AccountSaveDataExportEnabled); - _worldPacket << Bits<1>(AccountLockedByExport); + _worldPacket << Bits<1>(ScriptsDisallowedForBeta); + _worldPacket << Bits<1>(PlayerIdentityOptionsEnabled); + _worldPacket << Bits<1>(AccountExportEnabled); + _worldPacket << Bits<1>(AccountLockedPostExport); _worldPacket << Bits<11>(RealmHiddenAlert.length() + 1); @@ -251,29 +251,29 @@ WorldPacket const* FeatureSystemStatusGlueScreen::Write() if (EuropaTicketSystemStatus) _worldPacket << *EuropaTicketSystemStatus; - _worldPacket << uint32(TokenPollTimeSeconds); - _worldPacket << uint32(KioskSessionMinutes); - _worldPacket << int64(TokenBalanceAmount); - _worldPacket << int32(MaxCharactersPerRealm); + _worldPacket << uint32(CommercePricePollTimeSeconds); + _worldPacket << uint32(KioskSessionDurationMinutes); + _worldPacket << int64(RedeemForBalanceAmount); + _worldPacket << int32(MaxCharactersOnThisRealm); _worldPacket << uint32(LiveRegionCharacterCopySourceRegions.size()); - _worldPacket << uint32(BpayStoreProductDeliveryDelay); - _worldPacket << int32(ActiveCharacterUpgradeBoostType); - _worldPacket << int32(ActiveClassTrialBoostType); + _worldPacket << uint32(BpayStorePurchaseTimeout); + _worldPacket << int32(ActiveBoostType); + _worldPacket << int32(TrialBoostType); _worldPacket << int32(MinimumExpansionLevel); _worldPacket << int32(MaximumExpansionLevel); - _worldPacket << int32(ActiveSeason); - _worldPacket << uint32(GameRuleValues.size()); + _worldPacket << int32(ContentSetID); + _worldPacket << uint32(GameRules.size()); _worldPacket << int32(ActiveTimerunningSeasonID); _worldPacket << int32(RemainingTimerunningSeasonSeconds); - _worldPacket << int16(MaxPlayerNameQueriesPerPacket); - _worldPacket << int16(PlayerNameQueryTelemetryInterval); - _worldPacket << PlayerNameQueryInterval; + _worldPacket << int16(MaxPlayerGuidLookupsPerRequest); + _worldPacket << int16(NameLookupTelemetryInterval); + _worldPacket << NotFoundCacheTimeSeconds; _worldPacket << uint32(DebugTimeEvents.size()); - _worldPacket << int32(Unused1007); + _worldPacket << int32(MostRecentTimeEventID); _worldPacket << uint32(EventRealmQueues); - if (LaunchETA) - _worldPacket << int32(*LaunchETA); + if (LaunchDurationETA) + _worldPacket << int32(*LaunchDurationETA); if (!RealmHiddenAlert.empty()) _worldPacket << RealmHiddenAlert; @@ -281,7 +281,7 @@ WorldPacket const* FeatureSystemStatusGlueScreen::Write() if (!LiveRegionCharacterCopySourceRegions.empty()) _worldPacket.append(LiveRegionCharacterCopySourceRegions.data(), LiveRegionCharacterCopySourceRegions.size()); - for (GameRuleValuePair const& gameRuleValue : GameRuleValues) + for (GameRuleValuePair const& gameRuleValue : GameRules) _worldPacket << gameRuleValue; for (DebugTimeEventInfo const& debugTimeEventInfo : DebugTimeEvents) @@ -294,12 +294,12 @@ WorldPacket const* SetTimeZoneInformation::Write() { _worldPacket << BitsSize<7>(ServerTimeTZ); _worldPacket << BitsSize<7>(GameTimeTZ); - _worldPacket << BitsSize<7>(ServerRegionalTZ); + _worldPacket << BitsSize<7>(ServerRegionalTimeTZ); _worldPacket.FlushBits(); _worldPacket.WriteString(ServerTimeTZ); _worldPacket.WriteString(GameTimeTZ); - _worldPacket.WriteString(ServerRegionalTZ); + _worldPacket.WriteString(ServerRegionalTimeTZ); return &_worldPacket; } diff --git a/src/server/game/Server/Packets/SystemPackets.h b/src/server/game/Server/Packets/SystemPackets.h index 8c1ff5f18e5..21cb9056c4e 100644 --- a/src/server/game/Server/Packets/SystemPackets.h +++ b/src/server/game/Server/Packets/SystemPackets.h @@ -103,7 +103,7 @@ namespace WorldPackets uint32 MaxRecruitMonths = 0; uint32 MaxRecruitmentUses = 0; uint32 DaysInCycle = 0; - uint32 Unknown1007 = 0; + uint32 RewardsVersion = 0; }; struct AddonChatThrottleParams @@ -126,54 +126,54 @@ namespace WorldPackets uint32 CfgRealmID = 0; uint8 ComplaintStatus = 0; int32 CfgRealmRecID = 0; - uint32 TokenPollTimeSeconds = 0; - int64 TokenBalanceAmount = 0; - uint32 BpayStoreProductDeliveryDelay = 0; - uint32 ClubsPresenceUpdateTimer = 0; - uint32 HiddenUIClubsPresenceUpdateTimer = 0; ///< Timer for updating club presence when communities ui frame is hidden - uint32 KioskSessionMinutes = 0; - int32 ActiveSeason = 0; ///< Currently active Classic season - int16 MaxPlayerNameQueriesPerPacket = 50; - int16 PlayerNameQueryTelemetryInterval = 600; - Duration<Seconds, uint32> PlayerNameQueryInterval = 10s; + uint32 CommercePricePollTimeSeconds = 0; + int64 RedeemForBalanceAmount = 0; + uint32 BpayStorePurchaseTimeout = 0; + uint32 ClubsPresenceDelay = 0; + uint32 ClubPresenceUnsubscribeDelay = 0; ///< Timer for updating club presence when communities ui frame is hidden + uint32 KioskSessionDurationMinutes = 0; + int32 ContentSetID = 0; ///< Currently active Classic season + int16 MaxPlayerGuidLookupsPerRequest = 50; + int16 NameLookupTelemetryInterval = 600; + Duration<Seconds, uint32> NotFoundCacheTimeSeconds = 10s; bool ItemRestorationButtonEnabled = false; bool CharUndeleteEnabled = false; ///< Implemented bool BpayStoreDisabledByParentalControls = false; - bool CommerceSystemEnabled = false; - bool Unk67 = false; - bool WillKickFromWorld = false; + bool CommerceServerEnabled = false; + bool VeteranTokenRedeemWillKick = false; + bool WorldTokenRedeemWillKick = false; bool RestrictedAccount = false; - bool TutorialsEnabled = false; + bool TutorialEnabled = false; bool NPETutorialsEnabled = false; bool KioskModeEnabled = false; bool CompetitiveModeEnabled = false; - bool TokenBalanceEnabled = false; - bool WarModeFeatureEnabled = true; - bool ClubsEnabled = false; - bool ClubsBattleNetClubTypeAllowed = false; - bool ClubsCharacterClubTypeAllowed = false; - bool ClubsPresenceUpdateEnabled = false; - bool VoiceChatDisabledByParentalControl = false; - bool VoiceChatMutedByParentalControl = false; + bool RedeemForBalanceAvailable = false; + bool WarModeEnabled = true; + bool CommunitiesEnabled = false; + bool BnetGroupsEnabled = false; + bool CharacterCommunitiesEnabled = false; + bool ClubPresenceAllowSubscribeAll = false; + bool VoiceChatParentalDisabled = false; + bool VoiceChatParentalMuted = false; bool QuestSessionEnabled = false; - bool IsMuted = false; + bool IsChatMuted = false; bool ClubFinderEnabled = false; bool CommunityFinderEnabled = false; - bool Unknown901CheckoutRelated = false; - bool TextToSpeechFeatureEnabled = false; - bool ChatDisabledByDefault = false; - bool ChatDisabledByPlayer = false; - bool LFGListCustomRequiresAuthenticator = false; - bool AddonsDisabled = false; + bool BrowserCrashReporterEnabled = false; + bool SpeakForMeAllowed = false; + bool DoesAccountNeedAADCPrompt = false; + bool IsAccountOptedInToAADC = false; + bool LfgRequireAuthenticatorEnabled = false; + bool ScriptsDisallowedForBeta = false; bool TimerunningEnabled = false; bool WarGamesEnabled = false; // classic only - bool ContentTrackingEnabled = false; - bool IsSellAllJunkEnabled = false; - bool IsGroupFinderEnabled = true; // classic only - bool IsLFDEnabled = true; // classic only - bool IsLFREnabled = true; // classic only + bool IsPlayerContentTrackingEnabled = false; + bool SellAllJunkEnabled = false; + bool GroupFinderEnabled = true; // classic only + bool LfdEnabled = true; // classic only + bool LfrEnabled = true; // classic only bool IsPremadeGroupEnabled = true; // classic only - bool CanShowSetRoleButton = true; + bool PremadeGroupsEnabled = true; bool GuildEventsEditsEnabled = true; bool GuildTradeSkillsEnabled = true; bool BNSendWhisperUseV2Services = true; ///< BNSendWhisper will send to v2.WhisperService instead of v1.NotificationService @@ -183,7 +183,7 @@ namespace WorldPackets SocialQueueConfig QuickJoinConfig; SquelchInfo Squelch; RafSystemFeatureInfo RAFSystem; - std::vector<GameRuleValuePair> GameRuleValues; + std::vector<GameRuleValuePair> GameRules; int32 ActiveTimerunningSeasonID = 0; int32 RemainingTimerunningSeasonSeconds = 0; std::string Unknown1027; // related to movement lua functions used by keybinds @@ -207,51 +207,52 @@ namespace WorldPackets bool BpayStoreDisabledByParentalControls = false; // NYI bool CharUndeleteEnabled = false; bool BpayStoreEnabled = false; // NYI - bool CommerceSystemEnabled = false; // NYI - bool Unk14 = false; // NYI - bool WillKickFromWorld = false; // NYI - bool IsExpansionPreorderInStore = false; // NYI + bool CommerceServerEnabled = false; // NYI + bool VeteranTokenRedeemWillKick = false; // NYI + bool WorldTokenRedeemWillKick = false; // NYI + bool ExpansionPreorderInStore = false; // NYI bool KioskModeEnabled = false; // NYI bool CompetitiveModeEnabled = false; // NYI - bool IsBoostEnabled = false; // classic only + bool BoostEnabled = false; // classic only bool TrialBoostEnabled = false; // NYI - bool TokenBalanceEnabled = false; // NYI + bool RedeemForBalanceAvailable = false; // NYI bool PaidCharacterTransfersBetweenBnetAccountsEnabled = false; bool LiveRegionCharacterListEnabled = false; // NYI bool LiveRegionCharacterCopyEnabled = false; // NYI bool LiveRegionAccountCopyEnabled = false; // NYI bool LiveRegionKeyBindingsCopyEnabled = false; - bool Unknown901CheckoutRelated = false; // NYI - bool IsNameReservationEnabled = false; // classic only + bool BrowserCrashReporterEnabled = false; // NYI + bool IisEmployeeAccount = false; // NYI + bool NameReservationOnly = false; // classic only bool TimerunningEnabled = false; // NYI - bool AddonsDisabled = false; - bool Unused1000 = false; - bool AccountSaveDataExportEnabled = false; - bool AccountLockedByExport = false; + bool ScriptsDisallowedForBeta = false; + bool PlayerIdentityOptionsEnabled = false; + bool AccountExportEnabled = false; + bool AccountLockedPostExport = false; bool BNSendWhisperUseV2Services = true; ///< BNSendWhisper will send to v2.WhisperService instead of v1.NotificationService bool BNSendGameDataUseV2Services = true; ///< BNSendGameData will send to v2.NotificationService instead of v1.NotificationService bool CharacterSelectListModeRealmless = false; Optional<EuropaTicketConfig> EuropaTicketSystemStatus; std::vector<int32> LiveRegionCharacterCopySourceRegions; - uint32 TokenPollTimeSeconds = 0; // NYI - int64 TokenBalanceAmount = 0; // NYI - int32 MaxCharactersPerRealm = 0; - uint32 BpayStoreProductDeliveryDelay = 0; // NYI - int32 ActiveCharacterUpgradeBoostType = 0; // NYI - int32 ActiveClassTrialBoostType = 0; // NYI + uint32 CommercePricePollTimeSeconds = 0; // NYI + int64 RedeemForBalanceAmount = 0; // NYI + int32 MaxCharactersOnThisRealm = 0; + uint32 BpayStorePurchaseTimeout = 0; // NYI + int32 ActiveBoostType = 0; // NYI + int32 TrialBoostType = 0; // NYI int32 MinimumExpansionLevel = 0; int32 MaximumExpansionLevel = 0; - uint32 KioskSessionMinutes = 0; - int32 ActiveSeason = 0; // Currently active Classic season - std::vector<GameRuleValuePair> GameRuleValues; + uint32 KioskSessionDurationMinutes = 0; + int32 ContentSetID = 0; // Currently active Classic season + std::vector<GameRuleValuePair> GameRules; int32 ActiveTimerunningSeasonID = 0; int32 RemainingTimerunningSeasonSeconds = 0; - int16 MaxPlayerNameQueriesPerPacket = 50; - int16 PlayerNameQueryTelemetryInterval = 600; - Duration<Seconds, uint32> PlayerNameQueryInterval = 10s; - Optional<int32> LaunchETA; + int16 MaxPlayerGuidLookupsPerRequest = 50; + int16 NameLookupTelemetryInterval = 600; + Duration<Seconds, uint32> NotFoundCacheTimeSeconds = 10s; + Optional<int32> LaunchDurationETA; std::vector<DebugTimeEventInfo> DebugTimeEvents; - int32 Unused1007 = 0; + int32 MostRecentTimeEventID = 0; uint32 EventRealmQueues = 0; std::string RealmHiddenAlert; }; @@ -265,7 +266,7 @@ namespace WorldPackets std::string_view ServerTimeTZ; std::string_view GameTimeTZ; - std::string_view ServerRegionalTZ; + std::string_view ServerRegionalTimeTZ; }; } } diff --git a/src/server/game/Server/Packets/TicketPackets.cpp b/src/server/game/Server/Packets/TicketPackets.cpp index 018e4fee0e8..1d133113d10 100644 --- a/src/server/game/Server/Packets/TicketPackets.cpp +++ b/src/server/game/Server/Packets/TicketPackets.cpp @@ -206,25 +206,25 @@ ByteBuffer& operator>>(ByteBuffer& data, Optional<WorldPackets::Ticket::SupportT return data; } -ByteBuffer& operator>>(ByteBuffer& data, Optional<WorldPackets::Ticket::SupportTicketLFGListSearchResult>& lfgListSearchResult) +ByteBuffer& operator>>(ByteBuffer& data, Optional<WorldPackets::Ticket::SupportTicketLFGListEntryInfo>& lfgListSearchResult) { lfgListSearchResult.emplace(); - data >> lfgListSearchResult->RideTicket; - data >> lfgListSearchResult->GroupFinderActivityID; - data >> lfgListSearchResult->Unknown1007; - data >> lfgListSearchResult->LastTitleAuthorGuid; - data >> lfgListSearchResult->LastDescriptionAuthorGuid; - data >> lfgListSearchResult->LastVoiceChatAuthorGuid; - data >> lfgListSearchResult->ListingCreatorGuid; - data >> lfgListSearchResult->Unknown735; - - uint32 titleLength = data.ReadBits(10); - uint32 descriptionLength = data.ReadBits(11); + data >> lfgListSearchResult->Ticket; + data >> lfgListSearchResult->ActivityID; + data >> lfgListSearchResult->FactionID; + data >> lfgListSearchResult->LastTouchedName; + data >> lfgListSearchResult->LastTouchedComment; + data >> lfgListSearchResult->LastTouchedVoiceChat; + data >> lfgListSearchResult->LastTouchedAny; + data >> lfgListSearchResult->PartyGuid; + + uint32 nameLength = data.ReadBits(10); + uint32 commentLength = data.ReadBits(11); uint32 voiceChatLength = data.ReadBits(8); - lfgListSearchResult->Title = data.ReadString(titleLength); - lfgListSearchResult->Description = data.ReadString(descriptionLength); + lfgListSearchResult->Name = data.ReadString(nameLength); + lfgListSearchResult->Comment = data.ReadString(commentLength); lfgListSearchResult->VoiceChat = data.ReadString(voiceChatLength); return data; @@ -234,31 +234,31 @@ ByteBuffer& operator>>(ByteBuffer& data, Optional<WorldPackets::Ticket::SupportT { lfgListApplicant.emplace(); - data >> lfgListApplicant->RideTicket; + data >> lfgListApplicant->Ticket; lfgListApplicant->Comment = data.ReadString(data.ReadBits(9)); return data; } -ByteBuffer& operator>>(ByteBuffer& data, Optional<WorldPackets::Ticket::SupportTicketClubFinderResult>& clubInfo) +ByteBuffer& operator>>(ByteBuffer& data, Optional<WorldPackets::Ticket::SupportTicketClubFinderInfo>& clubInfo) { clubInfo.emplace(); - data >> clubInfo->ClubFinderPostingID; + data >> clubInfo->PostingID; data >> clubInfo->ClubID; - data >> clubInfo->ClubFinderGUID; - clubInfo->ClubName = data.ReadString(data.ReadBits(12)); + data >> clubInfo->GuildID; + clubInfo->PostingDescription = data.ReadString(data.ReadBits(12)); return data; } -ByteBuffer& operator>>(ByteBuffer& data, Optional<WorldPackets::Ticket::SupportTicketUnused910>& unused) +ByteBuffer& operator>>(ByteBuffer& data, Optional<WorldPackets::Ticket::SupportTicketArenaTeamInfo>& arenaTeam) { - unused.emplace(); + arenaTeam.emplace(); - uint32 field_0Length = data.ReadBits(7); - data >> unused->field_104; - unused->field_0 = data.ReadString(field_0Length); + uint32 arenaTeamNameLength = data.ReadBits(7); + data >> arenaTeam->ArenaTeamID; + arenaTeam->ArenaTeamName = data.ReadString(arenaTeamNameLength); return data; } @@ -277,18 +277,18 @@ void WorldPackets::Ticket::SupportTicketSubmitComplaint::Read() bool hasCalendarInfo = _worldPacket.ReadBit(); bool hasPetInfo = _worldPacket.ReadBit(); bool hasGuildInfo = _worldPacket.ReadBit(); - bool hasLFGListSearchResult = _worldPacket.ReadBit(); - bool hasLFGListApplicant = _worldPacket.ReadBit(); - bool hasClubMessage = _worldPacket.ReadBit(); + bool hasLfgListEntryInfo = _worldPacket.ReadBit(); + bool hasLfgListAppInfo = _worldPacket.ReadBit(); + bool hasVoiceChatInfo = _worldPacket.ReadBit(); bool hasClubFinderResult = _worldPacket.ReadBit(); - bool hasUnk910 = _worldPacket.ReadBit(); + bool hasArenaTeamInfo = _worldPacket.ReadBit(); _worldPacket.ResetBitPos(); - if (hasClubMessage) + if (hasVoiceChatInfo) { - CommunityMessage.emplace(); - CommunityMessage->IsPlayerUsingVoice = _worldPacket.ReadBit(); + VoiceChatInfo.emplace(); + VoiceChatInfo->TargetIsCurrentlyInVoiceChatWithPlayer = _worldPacket.ReadBit(); _worldPacket.ResetBitPos(); } @@ -308,17 +308,17 @@ void WorldPackets::Ticket::SupportTicketSubmitComplaint::Read() if (hasGuildInfo) _worldPacket >> GuildInfo; - if (hasLFGListSearchResult) - _worldPacket >> LFGListSearchResult; + if (hasLfgListEntryInfo) + _worldPacket >> LfgListEntryInfo; - if (hasLFGListApplicant) - _worldPacket >> LFGListApplicant; + if (hasLfgListAppInfo) + _worldPacket >> LfgListAppInfo; if (hasClubFinderResult) - _worldPacket >> ClubFinderResult; + _worldPacket >> ClubFinderInfo; - if (hasUnk910) - _worldPacket >> Unused910; + if (hasArenaTeamInfo) + _worldPacket >> ArenaTeamInfo; } ByteBuffer& operator>>(ByteBuffer& data, WorldPackets::Ticket::Complaint::ComplaintOffender& complaintOffender) diff --git a/src/server/game/Server/Packets/TicketPackets.h b/src/server/game/Server/Packets/TicketPackets.h index aed1cc1d185..1e0bd625137 100644 --- a/src/server/game/Server/Packets/TicketPackets.h +++ b/src/server/game/Server/Packets/TicketPackets.h @@ -171,44 +171,44 @@ namespace WorldPackets std::string GuildName; }; - struct SupportTicketLFGListSearchResult + struct SupportTicketLFGListEntryInfo { - WorldPackets::LFG::RideTicket RideTicket; - uint32 GroupFinderActivityID = 0; - uint8 Unknown1007 = 0; - ObjectGuid LastTitleAuthorGuid; - ObjectGuid LastDescriptionAuthorGuid; - ObjectGuid LastVoiceChatAuthorGuid; - ObjectGuid ListingCreatorGuid; - ObjectGuid Unknown735; - std::string Title; - std::string Description; + WorldPackets::LFG::RideTicket Ticket; + uint32 ActivityID = 0; + uint8 FactionID = 0; + ObjectGuid LastTouchedName; + ObjectGuid LastTouchedComment; + ObjectGuid LastTouchedVoiceChat; + ObjectGuid LastTouchedAny; + ObjectGuid PartyGuid; + std::string Name; + std::string Comment; std::string VoiceChat; }; struct SupportTicketLFGListApplicant { - WorldPackets::LFG::RideTicket RideTicket; + WorldPackets::LFG::RideTicket Ticket; std::string Comment; }; - struct SupportTicketCommunityMessage + struct SupportTicketVoiceChatInfo { - bool IsPlayerUsingVoice = false; + bool TargetIsCurrentlyInVoiceChatWithPlayer = false; }; - struct SupportTicketClubFinderResult + struct SupportTicketClubFinderInfo { - uint64 ClubFinderPostingID = 0; + uint64 PostingID = 0; uint64 ClubID = 0; - ObjectGuid ClubFinderGUID; - std::string ClubName; + ObjectGuid GuildID; + std::string PostingDescription; }; - struct SupportTicketUnused910 + struct SupportTicketArenaTeamInfo { - std::string field_0; - ObjectGuid field_104; + std::string ArenaTeamName; + ObjectGuid ArenaTeamID; }; class SupportTicketSubmitComplaint final : public ClientPacket @@ -230,11 +230,11 @@ namespace WorldPackets Optional<SupportTicketCalendarEventInfo> CalenderInfo; Optional<SupportTicketPetInfo> PetInfo; Optional<SupportTicketGuildInfo> GuildInfo; - Optional<SupportTicketLFGListSearchResult> LFGListSearchResult; - Optional<SupportTicketLFGListApplicant> LFGListApplicant; - Optional<SupportTicketCommunityMessage> CommunityMessage; - Optional<SupportTicketClubFinderResult> ClubFinderResult; - Optional<SupportTicketUnused910> Unused910; + Optional<SupportTicketLFGListEntryInfo> LfgListEntryInfo; + Optional<SupportTicketLFGListApplicant> LfgListAppInfo; + Optional<SupportTicketVoiceChatInfo> VoiceChatInfo; + Optional<SupportTicketClubFinderInfo> ClubFinderInfo; + Optional<SupportTicketArenaTeamInfo> ArenaTeamInfo; }; class Complaint final : public ClientPacket diff --git a/src/server/game/Server/Packets/TokenPackets.cpp b/src/server/game/Server/Packets/TokenPackets.cpp index 5b9182d0c27..f7ba5e76494 100644 --- a/src/server/game/Server/Packets/TokenPackets.cpp +++ b/src/server/game/Server/Packets/TokenPackets.cpp @@ -19,20 +19,20 @@ void WorldPackets::Token::CommerceTokenGetLog::Read() { - _worldPacket >> UnkInt; + _worldPacket >> ClientToken; } WorldPacket const* WorldPackets::Token::CommerceTokenGetLogResponse::Write() { - _worldPacket << UnkInt; + _worldPacket << ClientToken; _worldPacket << Result; - _worldPacket << uint32(AuctionableTokenAuctionableList.size()); - for (AuctionableTokenInfo const& auctionableTokenAuctionable : AuctionableTokenAuctionableList) + _worldPacket << uint32(AuctionableTokens.size()); + for (AuctionableTokenInfo const& auctionableTokenAuctionable : AuctionableTokens) { - _worldPacket << auctionableTokenAuctionable.UnkInt1; - _worldPacket << auctionableTokenAuctionable.UnkInt2; - _worldPacket << auctionableTokenAuctionable.BuyoutPrice; - _worldPacket << auctionableTokenAuctionable.Owner; + _worldPacket << auctionableTokenAuctionable.Id; + _worldPacket << auctionableTokenAuctionable.LastUpdate; + _worldPacket << auctionableTokenAuctionable.Price; + _worldPacket << auctionableTokenAuctionable.Status; _worldPacket << auctionableTokenAuctionable.DurationLeft; } @@ -41,15 +41,15 @@ WorldPacket const* WorldPackets::Token::CommerceTokenGetLogResponse::Write() void WorldPackets::Token::CommerceTokenGetMarketPrice::Read() { - _worldPacket >> UnkInt; + _worldPacket >> ClientToken; } WorldPacket const* WorldPackets::Token::CommerceTokenGetMarketPriceResponse::Write() { - _worldPacket << CurrentMarketPrice; - _worldPacket << UnkInt; - _worldPacket << Result; - _worldPacket << AuctionDuration; + _worldPacket << PriceGuarantee; + _worldPacket << ClientToken; + _worldPacket << ServerToken; + _worldPacket << PriceLockDurationSeconds; return &_worldPacket; } diff --git a/src/server/game/Server/Packets/TokenPackets.h b/src/server/game/Server/Packets/TokenPackets.h index 2a50ac81ef1..60b36e78fbe 100644 --- a/src/server/game/Server/Packets/TokenPackets.h +++ b/src/server/game/Server/Packets/TokenPackets.h @@ -32,7 +32,7 @@ namespace WorldPackets void Read() override; - uint32 UnkInt = 0; + uint32 ClientToken = 0; }; class CommerceTokenGetLogResponse final : public ServerPacket @@ -44,16 +44,16 @@ namespace WorldPackets struct AuctionableTokenInfo { - uint64 UnkInt1 = 0; - Timestamp<> UnkInt2; - int32 Owner = 0; - uint64 BuyoutPrice = 0; + uint64 Id = 0; + Timestamp<> LastUpdate; + int32 Status = 0; + uint64 Price = 0; uint32 DurationLeft = 0; }; - uint32 UnkInt = 0; // send CMSG_UPDATE_WOW_TOKEN_AUCTIONABLE_LIST + uint32 ClientToken = 0; uint32 Result = 0; - std::vector<AuctionableTokenInfo> AuctionableTokenAuctionableList; + std::vector<AuctionableTokenInfo> AuctionableTokens; }; class CommerceTokenGetMarketPrice final : public ClientPacket @@ -63,7 +63,7 @@ namespace WorldPackets void Read() override; - uint32 UnkInt = 0; + uint32 ClientToken = 0; }; class CommerceTokenGetMarketPriceResponse final : public ServerPacket @@ -73,10 +73,10 @@ namespace WorldPackets WorldPacket const* Write() override; - uint64 CurrentMarketPrice = 0; - uint32 UnkInt = 0; // send CMSG_REQUEST_WOW_TOKEN_MARKET_PRICE - uint32 Result = 0; - uint32 AuctionDuration = 0; // preset auction duration enum + uint64 PriceGuarantee = 0; + uint32 ClientToken = 0; + uint32 ServerToken = 0; + uint32 PriceLockDurationSeconds = 0; // preset auction duration enum }; } } diff --git a/src/server/scripts/Commands/cs_lookup.cpp b/src/server/scripts/Commands/cs_lookup.cpp index 4a6fbd0fb38..359b9651783 100644 --- a/src/server/scripts/Commands/cs_lookup.cpp +++ b/src/server/scripts/Commands/cs_lookup.cpp @@ -685,7 +685,7 @@ public: { int32 maxLevel = 0; if (Optional<ContentTuningLevels> questLevels = sDB2Manager.GetContentTuningData(questTemplatePair.second->GetContentTuningId(), - handler->GetSession()->GetPlayer()->m_playerData->CtrOptions->ContentTuningConditionMask)) + handler->GetSession()->GetPlayer()->m_playerData->CtrOptions->ConditionalFlags)) maxLevel = questLevels->MaxLevel; int32 scalingFactionGroup = 0; @@ -745,7 +745,7 @@ public: { int32 maxLevel = 0; if (Optional<ContentTuningLevels> questLevels = sDB2Manager.GetContentTuningData(questTemplatePair.second->GetContentTuningId(), - handler->GetSession()->GetPlayer()->m_playerData->CtrOptions->ContentTuningConditionMask)) + handler->GetSession()->GetPlayer()->m_playerData->CtrOptions->ConditionalFlags)) maxLevel = questLevels->MaxLevel; int32 scalingFactionGroup = 0; @@ -815,7 +815,7 @@ public: { int32 maxLevel = 0; if (Optional<ContentTuningLevels> questLevels = sDB2Manager.GetContentTuningData(quest->GetContentTuningId(), - handler->GetSession()->GetPlayer()->m_playerData->CtrOptions->ContentTuningConditionMask)) + handler->GetSession()->GetPlayer()->m_playerData->CtrOptions->ConditionalFlags)) maxLevel = questLevels->MaxLevel; int32 scalingFactionGroup = 0; |