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 QuestID;
public uint TreasurePickerID; public uint TreasurePickerID;
public TreasurePickerPick Pick; public TreasurePickerPick Treasure;
public TreasurePickerResponse() : base(ServerOpcodes.TreasurePickerResponse, ConnectionType.Instance) { } public TreasurePickerResponse() : base(ServerOpcodes.TreasurePickerResponse, ConnectionType.Instance) { }
@@ -590,7 +590,7 @@ namespace Game.Networking.Packets
{ {
_worldPacket.WriteUInt32(QuestID); _worldPacket.WriteUInt32(QuestID);
_worldPacket.WriteUInt32(TreasurePickerID); _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 class TreasurePickerBonus
{ {
public List<TreasurePickItem> Items = new(); public List<TreasurePickItem> ItemPicks = new();
public List<TreasurePickCurrency> Currencies = new(); public List<TreasurePickCurrency> CurrencyPicks = new();
public ulong Money; public ulong Gold;
public bool Context; public TreasurePickerBonusContext Context;
public void Write(WorldPacket data) public void Write(WorldPacket data)
{ {
data.WriteInt32(Items.Count); data.WriteInt32(ItemPicks.Count);
data.WriteInt32(Currencies.Count); data.WriteInt32(CurrencyPicks.Count);
data.WriteUInt64(Money); data.WriteUInt64(Gold);
data.WriteBit(Context); data.WriteBits(Context, 1);
data.FlushBits(); data.FlushBits();
foreach (TreasurePickItem treasurePickerItem in Items) foreach (TreasurePickItem treasurePickerItem in ItemPicks)
treasurePickerItem.Write(data); treasurePickerItem.Write(data);
foreach (TreasurePickCurrency treasurePickCurrency in Currencies) foreach (TreasurePickCurrency treasurePickCurrency in CurrencyPicks)
treasurePickCurrency.Write(data); treasurePickCurrency.Write(data);
} }
} }
class TreasurePickerPick class TreasurePickerPick
{ {
public List<TreasurePickItem> Items = new(); public List<TreasurePickItem> ItemPicks = new();
public List<TreasurePickCurrency> Currencies = new(); public List<TreasurePickCurrency> CurrencyPicks = new();
public List<TreasurePickerBonus> Bonuses = new(); public List<TreasurePickerBonus> Bonuses = new();
public ulong Money; public ulong Gold;
public int Flags; public int Flags;
public bool IsChoice; public bool IsChoice;
public void Write(WorldPacket data) public void Write(WorldPacket data)
{ {
data.WriteInt32(Items.Count); data.WriteInt32(ItemPicks.Count);
data.WriteInt32(Currencies.Count); data.WriteInt32(CurrencyPicks.Count);
data.WriteUInt64(Money); data.WriteUInt64(Gold);
data.WriteInt32(Bonuses.Count); data.WriteInt32(Bonuses.Count);
data.WriteInt32(Flags); data.WriteInt32(Flags);
data.WriteBit(IsChoice); data.WriteBit(IsChoice);
data.FlushBits(); data.FlushBits();
foreach (TreasurePickItem treasurePickItem in Items) foreach (TreasurePickItem treasurePickItem in ItemPicks)
treasurePickItem.Write(data); treasurePickItem.Write(data);
foreach (TreasurePickCurrency treasurePickCurrency in Currencies) foreach (TreasurePickCurrency treasurePickCurrency in CurrencyPicks)
treasurePickCurrency.Write(data); treasurePickCurrency.Write(data);
foreach (TreasurePickerBonus treasurePickerBonus in Bonuses) foreach (TreasurePickerBonus treasurePickerBonus in Bonuses)