Core/PacketIO: Define enum for TreasurePickerBonus Context field

This commit is contained in:
Shauren
2025-07-03 13:17:17 +02:00
parent 1c175b8145
commit 8d1d1aa434
2 changed files with 25 additions and 19 deletions

View File

@@ -549,16 +549,16 @@ ByteBuffer& operator<<(ByteBuffer& data, TreasurePickCurrency const& treasurePic
ByteBuffer& operator<<(ByteBuffer& data, TreasurePickerBonus const& treasurePickerBonus)
{
data << Size<uint32>(treasurePickerBonus.Items);
data << Size<uint32>(treasurePickerBonus.Currencies);
data << uint64(treasurePickerBonus.Money);
data << Size<uint32>(treasurePickerBonus.ItemPicks);
data << Size<uint32>(treasurePickerBonus.CurrencyPicks);
data << uint64(treasurePickerBonus.Gold);
data << Bits<1>(treasurePickerBonus.Context);
data.FlushBits();
for (TreasurePickItem const& treasurePickerItem : treasurePickerBonus.Items)
for (TreasurePickItem const& treasurePickerItem : treasurePickerBonus.ItemPicks)
data << treasurePickerItem;
for (TreasurePickCurrency const& treasurePickCurrency : treasurePickerBonus.Currencies)
for (TreasurePickCurrency const& treasurePickCurrency : treasurePickerBonus.CurrencyPicks)
data << treasurePickCurrency;
return data;
@@ -566,18 +566,18 @@ ByteBuffer& operator<<(ByteBuffer& data, TreasurePickerBonus const& treasurePick
ByteBuffer& operator<<(ByteBuffer& data, TreasurePickerPick const& treasurePickerPick)
{
data << Size<uint32>(treasurePickerPick.Items);
data << Size<uint32>(treasurePickerPick.Currencies);
data << uint64(treasurePickerPick.Money);
data << Size<uint32>(treasurePickerPick.ItemPicks);
data << Size<uint32>(treasurePickerPick.CurrencyPicks);
data << uint64(treasurePickerPick.Gold);
data << Size<uint32>(treasurePickerPick.Bonuses);
data << int32(treasurePickerPick.Flags);
data << Bits<1>(treasurePickerPick.IsChoice);
data.FlushBits();
for (TreasurePickItem const& treasurePickItem : treasurePickerPick.Items)
for (TreasurePickItem const& treasurePickItem : treasurePickerPick.ItemPicks)
data << treasurePickItem;
for (TreasurePickCurrency const& treasurePickCurrency : treasurePickerPick.Currencies)
for (TreasurePickCurrency const& treasurePickCurrency : treasurePickerPick.CurrencyPicks)
data << treasurePickCurrency;
for (TreasurePickerBonus const& treasurePickerBonus : treasurePickerPick.Bonuses)
@@ -590,7 +590,7 @@ WorldPacket const* TreasurePickerResponse::Write()
{
_worldPacket << uint32(QuestID);
_worldPacket << uint32(TreasurePickerID);
_worldPacket << Pick;
_worldPacket << Treasure;
return &_worldPacket;
}

View File

@@ -463,20 +463,26 @@ namespace WorldPackets
Optional<QuestRewardContextFlags> ContextFlags;
};
enum class TreasurePickerBonusContext : uint8
{
None = 0,
WarMode = 1
};
struct TreasurePickerBonus
{
std::vector<TreasurePickItem> Items;
std::vector<TreasurePickCurrency> Currencies;
uint64 Money = 0;
uint8 Context = 0;
std::vector<TreasurePickItem> ItemPicks;
std::vector<TreasurePickCurrency> CurrencyPicks;
uint64 Gold = 0;
TreasurePickerBonusContext Context = TreasurePickerBonusContext::None;
};
struct TreasurePickerPick
{
std::vector<TreasurePickItem> Items;
std::vector<TreasurePickCurrency> Currencies;
std::vector<TreasurePickItem> ItemPicks;
std::vector<TreasurePickCurrency> CurrencyPicks;
std::vector<TreasurePickerBonus> Bonuses;
uint64 Money = 0;
uint64 Gold = 0;
int32 Flags = 0;
bool IsChoice = false;
};
@@ -490,7 +496,7 @@ namespace WorldPackets
uint32 QuestID = 0;
uint32 TreasurePickerID = 0;
TreasurePickerPick Pick;
TreasurePickerPick Treasure;
};
ByteBuffer& operator<<(ByteBuffer& data, PlayerGuidLookupData const& lookupData);