aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Server/Packets
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2025-06-18 11:37:07 +0200
committerShauren <shauren.trinity@gmail.com>2025-06-18 11:37:07 +0200
commitceb8d561b44579118b109a9ff71ba415df53bbdc (patch)
treeb2a6b87afa6a2b83b8040b8632a87cb9a8308775 /src/server/game/Server/Packets
parente02e8a474244c229cc34c4efb987e24b6dd417f5 (diff)
Core: Updated to 11.1.7
Diffstat (limited to 'src/server/game/Server/Packets')
-rw-r--r--src/server/game/Server/Packets/AuthenticationPackets.cpp2
-rw-r--r--src/server/game/Server/Packets/AuthenticationPackets.h4
-rw-r--r--src/server/game/Server/Packets/CharacterPackets.cpp3
-rw-r--r--src/server/game/Server/Packets/CharacterPackets.h2
-rw-r--r--src/server/game/Server/Packets/ClientConfigPackets.cpp9
-rw-r--r--src/server/game/Server/Packets/ClientConfigPackets.h12
-rw-r--r--src/server/game/Server/Packets/CombatLogPacketsCommon.cpp9
-rw-r--r--src/server/game/Server/Packets/CombatLogPacketsCommon.h16
-rw-r--r--src/server/game/Server/Packets/GarrisonPackets.cpp2
-rw-r--r--src/server/game/Server/Packets/GarrisonPackets.h2
-rw-r--r--src/server/game/Server/Packets/GuildPackets.cpp5
-rw-r--r--src/server/game/Server/Packets/InstancePackets.cpp2
-rw-r--r--src/server/game/Server/Packets/MiscPackets.cpp4
-rw-r--r--src/server/game/Server/Packets/MiscPackets.h4
-rw-r--r--src/server/game/Server/Packets/MovementPackets.cpp39
-rw-r--r--src/server/game/Server/Packets/MovementPackets.h9
-rw-r--r--src/server/game/Server/Packets/PartyPackets.cpp2
-rw-r--r--src/server/game/Server/Packets/PartyPackets.h8
-rw-r--r--src/server/game/Server/Packets/SystemPackets.cpp9
-rw-r--r--src/server/game/Server/Packets/SystemPackets.h2
20 files changed, 113 insertions, 32 deletions
diff --git a/src/server/game/Server/Packets/AuthenticationPackets.cpp b/src/server/game/Server/Packets/AuthenticationPackets.cpp
index e5ab6678fd8..3c22fd4084d 100644
--- a/src/server/game/Server/Packets/AuthenticationPackets.cpp
+++ b/src/server/game/Server/Packets/AuthenticationPackets.cpp
@@ -360,8 +360,8 @@ WorldPacket const* EnterEncryptedMode::Write()
ed25519.SignWithContext(toSign, { EnableEncryptionContext.begin(), EnableEncryptionContext.end() }, signature);
- _worldPacket.append(signature.data(), signature.size());
_worldPacket << int32(RegionGroup);
+ _worldPacket.append(signature.data(), signature.size());
_worldPacket << Bits<1>(Enabled);
_worldPacket.FlushBits();
diff --git a/src/server/game/Server/Packets/AuthenticationPackets.h b/src/server/game/Server/Packets/AuthenticationPackets.h
index e6a7a96f8ae..0f6cb281373 100644
--- a/src/server/game/Server/Packets/AuthenticationPackets.h
+++ b/src/server/game/Server/Packets/AuthenticationPackets.h
@@ -307,15 +307,15 @@ namespace WorldPackets
static bool InitializeEncryption();
static void ShutdownEncryption();
- explicit EnterEncryptedMode(std::array<uint8, 32> const& encryptionKey, bool enabled) : ServerPacket(SMSG_ENTER_ENCRYPTED_MODE, 256 + 1),
+ explicit EnterEncryptedMode(std::array<uint8, 32> const& encryptionKey, bool enabled) : ServerPacket(SMSG_ENTER_ENCRYPTED_MODE, 4 + 256 + 1),
EncryptionKey(encryptionKey), Enabled(enabled)
{
}
WorldPacket const* Write() override;
- std::array<uint8, 32> const& EncryptionKey;
int32 RegionGroup = 0;
+ std::array<uint8, 32> const& EncryptionKey;
bool Enabled = false;
};
diff --git a/src/server/game/Server/Packets/CharacterPackets.cpp b/src/server/game/Server/Packets/CharacterPackets.cpp
index 7935dba4cde..88a897400aa 100644
--- a/src/server/game/Server/Packets/CharacterPackets.cpp
+++ b/src/server/game/Server/Packets/CharacterPackets.cpp
@@ -617,9 +617,10 @@ WorldPacket const* UndeleteCharacterResponse::Write()
WorldPacket const* UndeleteCooldownStatusResponse::Write()
{
- _worldPacket << Bits<1>(OnCooldown);
_worldPacket << uint32(MaxCooldown);
_worldPacket << uint32(CurrentCooldown);
+ _worldPacket << Bits<1>(OnCooldown);
+ _worldPacket.FlushBits();
return &_worldPacket;
}
diff --git a/src/server/game/Server/Packets/CharacterPackets.h b/src/server/game/Server/Packets/CharacterPackets.h
index d123b269406..5a78c17d976 100644
--- a/src/server/game/Server/Packets/CharacterPackets.h
+++ b/src/server/game/Server/Packets/CharacterPackets.h
@@ -532,9 +532,9 @@ namespace WorldPackets
WorldPacket const* Write() override;
- bool OnCooldown = false; ///<
uint32 MaxCooldown = 0; ///< Max. cooldown until next free character restoration. Displayed in undelete confirm message. (in sec)
uint32 CurrentCooldown = 0; ///< Current cooldown until next free character restoration. (in sec)
+ bool OnCooldown = false; ///<
};
class PlayerLogin final : public ClientPacket
diff --git a/src/server/game/Server/Packets/ClientConfigPackets.cpp b/src/server/game/Server/Packets/ClientConfigPackets.cpp
index dd99efb4685..505f7f8e900 100644
--- a/src/server/game/Server/Packets/ClientConfigPackets.cpp
+++ b/src/server/game/Server/Packets/ClientConfigPackets.cpp
@@ -73,6 +73,15 @@ void UserClientUpdateAccountData::Read()
_worldPacket.rpos(pos + compressedSize);
}
+WorldPacket const* UpdateAccountDataComplete::Write()
+{
+ _worldPacket << Player;
+ _worldPacket << int32(DataType);
+ _worldPacket << int32(Result);
+
+ return &_worldPacket;
+}
+
void SetAdvancedCombatLogging::Read()
{
_worldPacket >> Bits<1>(Enable);
diff --git a/src/server/game/Server/Packets/ClientConfigPackets.h b/src/server/game/Server/Packets/ClientConfigPackets.h
index 60e09afff52..22be7aaa1d1 100644
--- a/src/server/game/Server/Packets/ClientConfigPackets.h
+++ b/src/server/game/Server/Packets/ClientConfigPackets.h
@@ -87,6 +87,18 @@ namespace WorldPackets
std::span<uint8 const> CompressedData;
};
+ class UpdateAccountDataComplete final : public ServerPacket
+ {
+ public:
+ explicit UpdateAccountDataComplete() : ServerPacket(SMSG_UPDATE_ACCOUNT_DATA_COMPLETE, 16 + 4 + 4) { }
+
+ WorldPacket const* Write() override;
+
+ ObjectGuid Player;
+ int32 DataType = 0; ///< @see enum AccountDataType
+ int32 Result = 0;
+ };
+
class SetAdvancedCombatLogging final : public ClientPacket
{
public:
diff --git a/src/server/game/Server/Packets/CombatLogPacketsCommon.cpp b/src/server/game/Server/Packets/CombatLogPacketsCommon.cpp
index 72c67e33256..d3b01ea4f1c 100644
--- a/src/server/game/Server/Packets/CombatLogPacketsCommon.cpp
+++ b/src/server/game/Server/Packets/CombatLogPacketsCommon.cpp
@@ -77,6 +77,7 @@ bool ContentTuningParams::GenerateDataForUnits<Creature, Player>(Creature* attac
if (ContentTuningEntry const* contentTuning = sContentTuningStore.LookupEntry(creatureDifficulty->ContentTuningID))
{
ScalingHealthItemLevelCurveID = contentTuning->HealthItemLevelCurveID;
+ ScalingHealthPrimaryStatCurveID = contentTuning->HealthPrimaryStatCurveID;
TargetContentTuningID = contentTuning->ID;
}
TargetLevel = target->GetLevel();
@@ -98,6 +99,7 @@ bool ContentTuningParams::GenerateDataForUnits<Player, Creature>(Player* attacke
if (ContentTuningEntry const* contentTuning = sContentTuningStore.LookupEntry(creatureDifficulty->ContentTuningID))
{
ScalingHealthItemLevelCurveID = contentTuning->HealthItemLevelCurveID;
+ ScalingHealthPrimaryStatCurveID = contentTuning->HealthPrimaryStatCurveID;
TargetContentTuningID = contentTuning->ID;
}
TargetLevel = target->GetLevel();
@@ -179,14 +181,17 @@ ByteBuffer& operator<<(ByteBuffer& data, ContentTuningParams const& contentTunin
data << float(contentTuningParams.PlayerItemLevel);
data << float(contentTuningParams.TargetItemLevel);
data << int16(contentTuningParams.PlayerLevelDelta);
- data << uint32(contentTuningParams.ScalingHealthItemLevelCurveID);
+ data << int32(contentTuningParams.ScalingHealthItemLevelCurveID);
+ data << int32(contentTuningParams.Unused1117);
+ data << int32(contentTuningParams.ScalingHealthPrimaryStatCurveID);
data << uint8(contentTuningParams.TargetLevel);
data << uint8(contentTuningParams.Expansion);
data << int8(contentTuningParams.TargetScalingLevelDelta);
data << uint32(contentTuningParams.Flags);
data << int32(contentTuningParams.PlayerContentTuningID);
data << int32(contentTuningParams.TargetContentTuningID);
- data << int32(contentTuningParams.Unused927);
+ data << int32(contentTuningParams.TargetHealingContentTuningID);
+ data << float(contentTuningParams.PlayerPrimaryStatToExpectedRatio);
data << Bits<4>(contentTuningParams.Type);
data.FlushBits();
diff --git a/src/server/game/Server/Packets/CombatLogPacketsCommon.h b/src/server/game/Server/Packets/CombatLogPacketsCommon.h
index cc9294dfe4f..235bb50ac48 100644
--- a/src/server/game/Server/Packets/CombatLogPacketsCommon.h
+++ b/src/server/game/Server/Packets/CombatLogPacketsCommon.h
@@ -57,9 +57,12 @@ namespace WorldPackets
{
TYPE_CREATURE_TO_PLAYER_DAMAGE = 1,
TYPE_PLAYER_TO_CREATURE_DAMAGE = 2,
- TYPE_CREATURE_TO_CREATURE_DAMAGE = 4,
- TYPE_PLAYER_TO_PLAYER_SANDBOX_SCALING = 7, // NYI
- TYPE_PLAYER_TO_PLAYER_EXPECTED_STAT = 8,
+ TYPE_CREATURE_TO_PLAYER_HEALING = 3,
+ TYPE_PLAYER_TO_CREATURE_HEALING = 4,
+ TYPE_CREATURE_TO_CREATURE_DAMAGE = 5,
+ TYPE_CREATURE_TO_CREATURE_HEALING = 6,
+ TYPE_PLAYER_TO_PLAYER_DAMAGE = 7, // NYI
+ TYPE_PLAYER_TO_PLAYER_HEALING = 8,
};
enum ContentTuningFlags : uint32
@@ -72,14 +75,17 @@ namespace WorldPackets
int16 PlayerLevelDelta = 0;
float PlayerItemLevel = 0;
float TargetItemLevel = 0;
- uint32 ScalingHealthItemLevelCurveID = 0;
+ int32 ScalingHealthItemLevelCurveID = 0;
+ int32 Unused1117 = 0;
+ int32 ScalingHealthPrimaryStatCurveID = 0;
uint8 TargetLevel = 0;
uint8 Expansion = 0;
int8 TargetScalingLevelDelta = 0;
uint32 Flags = NO_LEVEL_SCALING | NO_ITEM_LEVEL_SCALING;
int32 PlayerContentTuningID = 0;
int32 TargetContentTuningID = 0;
- int32 Unused927 = 0;
+ int32 TargetHealingContentTuningID = 0; // direct heal only, not periodic
+ float PlayerPrimaryStatToExpectedRatio = 1.0f;
template<class T, class U>
bool GenerateDataForUnits(T* attacker, U* target);
diff --git a/src/server/game/Server/Packets/GarrisonPackets.cpp b/src/server/game/Server/Packets/GarrisonPackets.cpp
index b773a5d64c0..1e6bc914d05 100644
--- a/src/server/game/Server/Packets/GarrisonPackets.cpp
+++ b/src/server/game/Server/Packets/GarrisonPackets.cpp
@@ -49,9 +49,9 @@ ByteBuffer& operator<<(ByteBuffer& data, GarrisonPlotInfo const& plotInfo)
ByteBuffer& operator<<(ByteBuffer& data, GarrisonBuildingInfo const& buildingInfo)
{
+ data << buildingInfo.TimeBuilt;
data << uint32(buildingInfo.GarrPlotInstanceID);
data << uint32(buildingInfo.GarrBuildingID);
- data << buildingInfo.TimeBuilt;
data << uint32(buildingInfo.CurrentGarSpecID);
data << buildingInfo.TimeSpecCooldown;
data << Bits<1>(buildingInfo.Active);
diff --git a/src/server/game/Server/Packets/GarrisonPackets.h b/src/server/game/Server/Packets/GarrisonPackets.h
index 402c95f2704..3e2df57f33d 100644
--- a/src/server/game/Server/Packets/GarrisonPackets.h
+++ b/src/server/game/Server/Packets/GarrisonPackets.h
@@ -73,9 +73,9 @@ namespace WorldPackets
struct GarrisonBuildingInfo
{
+ Timestamp<> TimeBuilt;
uint32 GarrPlotInstanceID = 0;
uint32 GarrBuildingID = 0;
- Timestamp<> TimeBuilt;
uint32 CurrentGarSpecID = 0;
Timestamp<> TimeSpecCooldown = time_t(2288912640); // 06/07/1906 18:35:44 - another in the series of magic blizz dates
bool Active = false;
diff --git a/src/server/game/Server/Packets/GuildPackets.cpp b/src/server/game/Server/Packets/GuildPackets.cpp
index 06d654bef9a..e3701a7d09e 100644
--- a/src/server/game/Server/Packets/GuildPackets.cpp
+++ b/src/server/game/Server/Packets/GuildPackets.cpp
@@ -517,12 +517,11 @@ void RequestGuildPartyState::Read()
WorldPacket const* GuildPartyState::Write()
{
- _worldPacket << Bits<1>(InGuildParty);
- _worldPacket.FlushBits();
-
_worldPacket << int32(NumMembers);
_worldPacket << int32(NumRequired);
_worldPacket << float(GuildXPEarnedMult);
+ _worldPacket << Bits<1>(InGuildParty);
+ _worldPacket.FlushBits();
return &_worldPacket;
}
diff --git a/src/server/game/Server/Packets/InstancePackets.cpp b/src/server/game/Server/Packets/InstancePackets.cpp
index a1973f8a1ff..eafb7219b7b 100644
--- a/src/server/game/Server/Packets/InstancePackets.cpp
+++ b/src/server/game/Server/Packets/InstancePackets.cpp
@@ -36,9 +36,9 @@ WorldPacket const* UpdateInstanceOwnership::Write()
ByteBuffer& operator<<(ByteBuffer& data, InstanceLock const& lockInfos)
{
+ data << uint64(lockInfos.InstanceID);
data << uint32(lockInfos.MapID);
data << uint32(lockInfos.DifficultyID);
- data << uint64(lockInfos.InstanceID);
data << uint32(lockInfos.TimeRemaining);
data << uint32(lockInfos.CompletedMask);
diff --git a/src/server/game/Server/Packets/MiscPackets.cpp b/src/server/game/Server/Packets/MiscPackets.cpp
index dc49cc30113..f6351382dd5 100644
--- a/src/server/game/Server/Packets/MiscPackets.cpp
+++ b/src/server/game/Server/Packets/MiscPackets.cpp
@@ -235,8 +235,8 @@ void SetDungeonDifficulty::Read()
void SetRaidDifficulty::Read()
{
- _worldPacket >> DifficultyID;
_worldPacket >> Legacy;
+ _worldPacket >> DifficultyID;
}
WorldPacket const* DungeonDifficultySet::Write()
@@ -248,8 +248,8 @@ WorldPacket const* DungeonDifficultySet::Write()
WorldPacket const* RaidDifficultySet::Write()
{
+ _worldPacket << int32(Legacy);
_worldPacket << int32(DifficultyID);
- _worldPacket << uint8(Legacy);
return &_worldPacket;
}
diff --git a/src/server/game/Server/Packets/MiscPackets.h b/src/server/game/Server/Packets/MiscPackets.h
index 45a3ad386fa..83b4dfb3a74 100644
--- a/src/server/game/Server/Packets/MiscPackets.h
+++ b/src/server/game/Server/Packets/MiscPackets.h
@@ -284,8 +284,8 @@ namespace WorldPackets
void Read() override;
+ int32 Legacy = 0;
int32 DifficultyID = 0;
- uint8 Legacy = 0;
};
class DungeonDifficultySet final : public ServerPacket
@@ -305,8 +305,8 @@ namespace WorldPackets
WorldPacket const* Write() override;
+ int32 Legacy = 0;
int32 DifficultyID = 0;
- uint8 Legacy = 0;
};
class CorpseReclaimDelay : public ServerPacket
diff --git a/src/server/game/Server/Packets/MovementPackets.cpp b/src/server/game/Server/Packets/MovementPackets.cpp
index 356e1c4c409..b9796743e6c 100644
--- a/src/server/game/Server/Packets/MovementPackets.cpp
+++ b/src/server/game/Server/Packets/MovementPackets.cpp
@@ -149,10 +149,11 @@ ByteBuffer& operator<<(ByteBuffer& data, MovementInfo const& movementInfo)
if (hasDriveStatus)
{
- data.WriteBit(movementInfo.driveStatus->accelerating);
- data.WriteBit(movementInfo.driveStatus->drifting);
data << float(movementInfo.driveStatus->speed);
data << float(movementInfo.driveStatus->movementAngle);
+ data.WriteBit(movementInfo.driveStatus->accelerating);
+ data.WriteBit(movementInfo.driveStatus->drifting);
+ data.FlushBits();
}
return data;
@@ -239,10 +240,10 @@ ByteBuffer& operator>>(ByteBuffer& data, MovementInfo& movementInfo)
movementInfo.driveStatus.emplace();
- movementInfo.driveStatus->accelerating = data.ReadBit();
- movementInfo.driveStatus->drifting = data.ReadBit();
data >> movementInfo.driveStatus->speed;
data >> movementInfo.driveStatus->movementAngle;
+ movementInfo.driveStatus->accelerating = data.ReadBit();
+ movementInfo.driveStatus->drifting = data.ReadBit();
}
return data;
@@ -305,6 +306,15 @@ ByteBuffer& operator<<(ByteBuffer& data, MonsterSplineJumpExtraData const& jumpE
return data;
}
+ByteBuffer& operator<<(ByteBuffer& data, MonsterSplineTurnData const& turnData)
+{
+ data << float(turnData.StartFacing);
+ data << float(turnData.TotalTurnRads);
+ data << float(turnData.RadsPerSec);
+
+ return data;
+}
+
ByteBuffer& operator<<(ByteBuffer& data, MonsterSplineAnimTierTransition const& animTierTransition)
{
data << int32(animTierTransition.TierTransitionID);
@@ -344,6 +354,7 @@ ByteBuffer& operator<<(ByteBuffer& data, MovementSpline const& movementSpline)
data << OptionalInit(movementSpline.SplineFilter);
data << OptionalInit(movementSpline.SpellEffectExtraData);
data << OptionalInit(movementSpline.JumpExtraData);
+ data << OptionalInit(movementSpline.TurnData);
data << OptionalInit(movementSpline.AnimTierTransition);
data << OptionalInit(movementSpline.Unknown901);
data.FlushBits();
@@ -377,6 +388,9 @@ ByteBuffer& operator<<(ByteBuffer& data, MovementSpline const& movementSpline)
if (movementSpline.JumpExtraData)
data << *movementSpline.JumpExtraData;
+ if (movementSpline.TurnData)
+ data << *movementSpline.TurnData;
+
if (movementSpline.AnimTierTransition)
data << *movementSpline.AnimTierTransition;
@@ -390,6 +404,7 @@ ByteBuffer& operator<<(ByteBuffer& data, MovementMonsterSpline const& movementMo
{
data << movementMonsterSpline.ID;
data << Bits<1>(movementMonsterSpline.CrzTeleport);
+ data << Bits<1>(movementMonsterSpline.StopUseFaceDirection);
data << Bits<3>(movementMonsterSpline.StopSplineStyle);
data << movementMonsterSpline.Move;
@@ -434,6 +449,7 @@ void CommonMovement::WriteCreateObjectSplineDataBlock(::Movement::MoveSpline con
data << OptionalInit(moveSpline.spell_effect_extra); // HasSpellEffectExtraData
bool hasJumpExtraData = moveSpline.splineflags.Parabolic && (!moveSpline.spell_effect_extra || moveSpline.effect_start_time);
data << Bits<1>(hasJumpExtraData);
+ data << OptionalInit(moveSpline.turn); // HasTurnData
data << OptionalInit(moveSpline.anim_tier); // HasAnimTierTransition
data.WriteBit(false); // HasUnknown901
data.FlushBits();
@@ -492,6 +508,13 @@ void CommonMovement::WriteCreateObjectSplineDataBlock(::Movement::MoveSpline con
data << uint32(0); // Duration (override)
}
+ if (moveSpline.turn)
+ {
+ data << float(moveSpline.turn->StartFacing);
+ data << float(moveSpline.turn->TotalTurnRads);
+ data << float(moveSpline.turn->RadsPerSec);
+ }
+
if (moveSpline.anim_tier)
{
data << int32(moveSpline.anim_tier->TierTransitionId);
@@ -584,6 +607,14 @@ void MonsterMove::InitializeSplineData(::Movement::MoveSpline const& moveSpline)
movementSpline.JumpExtraData->StartTime = moveSpline.effect_start_time;
}
+ if (moveSpline.turn)
+ {
+ MonsterSplineTurnData& turn = movementSpline.TurnData.emplace();
+ turn.StartFacing = moveSpline.turn->StartFacing;
+ turn.TotalTurnRads = moveSpline.turn->TotalTurnRads;
+ turn.RadsPerSec = moveSpline.turn->RadsPerSec;
+ }
+
if (splineFlags.FadeObject)
movementSpline.FadeObjectTime = moveSpline.effect_start_time;
diff --git a/src/server/game/Server/Packets/MovementPackets.h b/src/server/game/Server/Packets/MovementPackets.h
index a6f628184d2..8ad8b641cf5 100644
--- a/src/server/game/Server/Packets/MovementPackets.h
+++ b/src/server/game/Server/Packets/MovementPackets.h
@@ -90,6 +90,13 @@ namespace WorldPackets
uint32 Duration = 0;
};
+ struct MonsterSplineTurnData
+ {
+ float StartFacing = 0.0f;
+ float TotalTurnRads = 0.0f;
+ float RadsPerSec = 0.0f;
+ };
+
struct MonsterSplineAnimTierTransition
{
int32 TierTransitionID = 0;
@@ -127,6 +134,7 @@ namespace WorldPackets
Optional<MonsterSplineFilter> SplineFilter;
Optional<MonsterSplineSpellEffectExtraData> SpellEffectExtraData;
Optional<MonsterSplineJumpExtraData> JumpExtraData;
+ Optional<MonsterSplineTurnData> TurnData;
Optional<MonsterSplineAnimTierTransition> AnimTierTransition;
Optional<MonsterSplineUnknown901> Unknown901;
float FaceDirection = 0.0f;
@@ -138,6 +146,7 @@ namespace WorldPackets
{
uint32 ID = 0;
bool CrzTeleport = false;
+ bool StopUseFaceDirection = false;
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 496426b2a58..fa559dbef04 100644
--- a/src/server/game/Server/Packets/PartyPackets.cpp
+++ b/src/server/game/Server/Packets/PartyPackets.cpp
@@ -479,8 +479,8 @@ ByteBuffer& operator<<(ByteBuffer& data, PartyPlayerInfo const& playerInfo)
ByteBuffer& operator<<(ByteBuffer& data, PartyLFGInfo const& lfgInfos)
{
- data << uint8(lfgInfos.MyFlags);
data << uint32(lfgInfos.Slot);
+ data << uint8(lfgInfos.MyFlags);
data << uint32(lfgInfos.MyRandomSlot);
data << uint8(lfgInfos.MyPartialClear);
data << float(lfgInfos.MyGearDiff);
diff --git a/src/server/game/Server/Packets/PartyPackets.h b/src/server/game/Server/Packets/PartyPackets.h
index 2dd627a32ac..8c287fe8b12 100644
--- a/src/server/game/Server/Packets/PartyPackets.h
+++ b/src/server/game/Server/Packets/PartyPackets.h
@@ -395,7 +395,7 @@ namespace WorldPackets
explicit SetPartyAssignment(WorldPacket&& packet) : ClientPacket(CMSG_SET_PARTY_ASSIGNMENT, std::move(packet)) { }
void Read() override;
- uint8 Assignment = 0;
+ int32 Assignment = 0;
Optional<uint8> PartyIndex;
ObjectGuid Target;
bool Set = false;
@@ -525,15 +525,15 @@ namespace WorldPackets
struct PartyLFGInfo
{
- uint8 MyFlags = 0;
uint32 Slot = 0;
- uint8 BootCount = 0;
+ uint8 MyFlags = 0;
uint32 MyRandomSlot = 0;
- bool Aborted = false;
uint8 MyPartialClear = 0;
float MyGearDiff = 0.0f;
uint8 MyStrangerCount = 0;
uint8 MyKickVoteCount = 0;
+ uint8 BootCount = 0;
+ bool Aborted = false;
bool MyFirstReward = false;
};
diff --git a/src/server/game/Server/Packets/SystemPackets.cpp b/src/server/game/Server/Packets/SystemPackets.cpp
index 5bf9641f793..d3414c11436 100644
--- a/src/server/game/Server/Packets/SystemPackets.cpp
+++ b/src/server/game/Server/Packets/SystemPackets.cpp
@@ -22,7 +22,6 @@ namespace WorldPackets::System
{
ByteBuffer& operator<<(ByteBuffer& data, SocialQueueConfig const& socialQueueConfig)
{
- data << Bits<1>(socialQueueConfig.ToastsDisabled);
data << float(socialQueueConfig.ToastDuration);
data << float(socialQueueConfig.DelayDuration);
data << float(socialQueueConfig.QueueMultiplier);
@@ -45,6 +44,8 @@ ByteBuffer& operator<<(ByteBuffer& data, SocialQueueConfig const& socialQueueCon
data << float(socialQueueConfig.ThrottleRfIlvlScalingAbove);
data << float(socialQueueConfig.ThrottleDfMaxItemLevel);
data << float(socialQueueConfig.ThrottleDfBestPriority);
+ data << Bits<1>(socialQueueConfig.ToastsDisabled);
+ data.FlushBits();
return data;
}
@@ -212,6 +213,8 @@ WorldPacket const* FeatureSystemStatus::Write()
_worldPacket << Bits<1>(LobbyMatchmakerQueueFromMainlineEnabled);
_worldPacket << Bits<1>(CanSendLobbyMatchmakerPartyCustomizations);
_worldPacket << Bits<1>(AddonProfilerEnabled);
+ _worldPacket << Bits<1>(false); // unused 11.1.7
+ _worldPacket << Bits<1>(false); // unused 11.1.7
_worldPacket.FlushBits();
@@ -270,6 +273,10 @@ WorldPacket const* FeatureSystemStatusGlueScreen::Write()
_worldPacket << Bits<1>(BNSendGameDataUseV2Services);
_worldPacket << Bits<1>(CharacterSelectListModeRealmless);
+ _worldPacket << Bits<1>(WowTokenLimitedMode);
+ _worldPacket << Bits<1>(false); // unused 11.1.7
+ _worldPacket << Bits<1>(false); // unused 11.1.7
+ _worldPacket << Bits<1>(PandarenLevelBoostAllowed);
_worldPacket.FlushBits();
diff --git a/src/server/game/Server/Packets/SystemPackets.h b/src/server/game/Server/Packets/SystemPackets.h
index 42d40c4cf60..9a3cd43350d 100644
--- a/src/server/game/Server/Packets/SystemPackets.h
+++ b/src/server/game/Server/Packets/SystemPackets.h
@@ -237,6 +237,8 @@ namespace WorldPackets
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;
+ bool WowTokenLimitedMode = false; // classic only
+ bool PandarenLevelBoostAllowed = false; // classic only
Optional<EuropaTicketConfig> EuropaTicketSystemStatus;
std::vector<int32> LiveRegionCharacterCopySourceRegions;
uint32 CommercePricePollTimeSeconds = 0; // NYI