Core/PacketIO: Define enum for TreasurePickerBonus Context field

Port From (https://github.com/TrinityCore/TrinityCore/commit/8d1d1aa4347fb0fab2e4f9b3d85bf0e0ce383f53)
This commit is contained in:
Hondacrx
2025-08-19 18:58:06 -04:00
parent 4654c16c11
commit bd71d172da
+26 -20
View File
@@ -582,7 +582,7 @@ namespace Game.Networking.Packets
{
public uint QuestID;
public uint TreasurePickerID;
public TreasurePickerPick Pick;
public TreasurePickerPick Treasure;
public TreasurePickerResponse() : base(ServerOpcodes.TreasurePickerResponse, ConnectionType.Instance) { }
@@ -590,7 +590,7 @@ namespace Game.Networking.Packets
{
_worldPacket.WriteUInt32(QuestID);
_worldPacket.WriteUInt32(TreasurePickerID);
Pick.Write(_worldPacket);
Treasure.Write(_worldPacket);
}
}
@@ -834,52 +834,58 @@ namespace Game.Networking.Packets
}
}
enum TreasurePickerBonusContext
{
None = 0,
WarMode = 1
}
class TreasurePickerBonus
{
public List<TreasurePickItem> Items = new();
public List<TreasurePickCurrency> Currencies = new();
public ulong Money;
public bool Context;
public List<TreasurePickItem> ItemPicks = new();
public List<TreasurePickCurrency> CurrencyPicks = new();
public ulong Gold;
public TreasurePickerBonusContext Context;
public void Write(WorldPacket data)
{
data.WriteInt32(Items.Count);
data.WriteInt32(Currencies.Count);
data.WriteUInt64(Money);
data.WriteBit(Context);
data.WriteInt32(ItemPicks.Count);
data.WriteInt32(CurrencyPicks.Count);
data.WriteUInt64(Gold);
data.WriteBits(Context, 1);
data.FlushBits();
foreach (TreasurePickItem treasurePickerItem in Items)
foreach (TreasurePickItem treasurePickerItem in ItemPicks)
treasurePickerItem.Write(data);
foreach (TreasurePickCurrency treasurePickCurrency in Currencies)
foreach (TreasurePickCurrency treasurePickCurrency in CurrencyPicks)
treasurePickCurrency.Write(data);
}
}
class TreasurePickerPick
{
public List<TreasurePickItem> Items = new();
public List<TreasurePickCurrency> Currencies = new();
public List<TreasurePickItem> ItemPicks = new();
public List<TreasurePickCurrency> CurrencyPicks = new();
public List<TreasurePickerBonus> Bonuses = new();
public ulong Money;
public ulong Gold;
public int Flags;
public bool IsChoice;
public void Write(WorldPacket data)
{
data.WriteInt32(Items.Count);
data.WriteInt32(Currencies.Count);
data.WriteUInt64(Money);
data.WriteInt32(ItemPicks.Count);
data.WriteInt32(CurrencyPicks.Count);
data.WriteUInt64(Gold);
data.WriteInt32(Bonuses.Count);
data.WriteInt32(Flags);
data.WriteBit(IsChoice);
data.FlushBits();
foreach (TreasurePickItem treasurePickItem in Items)
foreach (TreasurePickItem treasurePickItem in ItemPicks)
treasurePickItem.Write(data);
foreach (TreasurePickCurrency treasurePickCurrency in Currencies)
foreach (TreasurePickCurrency treasurePickCurrency in CurrencyPicks)
treasurePickCurrency.Write(data);
foreach (TreasurePickerBonus treasurePickerBonus in Bonuses)