Core/PacketIO: Implemented SMSG_DISPLAY_TOAST for quest money rewards

Port From (https://github.com/TrinityCore/TrinityCore/commit/e5417e9ce747d92822538da77d32cf7d0f26ce8a)
This commit is contained in:
hondacrx
2022-05-04 10:12:29 -04:00
parent b048b57f46
commit aec91dc2b0
3 changed files with 109 additions and 0 deletions
@@ -1296,6 +1296,51 @@ namespace Game.Networking.Packets
public uint UISplashScreenID;
}
class DisplayToast : ServerPacket
{
public ulong Quantity;
public DisplayToastMethod DisplayToastMethod;
public bool Mailed;
public DisplayToastType Type = DisplayToastType.Money;
public uint QuestID;
public bool IsSecondaryResult;
public ItemInstance Item;
public bool BonusRoll;
public int LootSpec;
public Gender Gender = Gender.None;
public uint CurrencyID;
public DisplayToast() : base(ServerOpcodes.DisplayToast, ConnectionType.Instance) { }
public override void Write()
{
_worldPacket.WriteUInt64(Quantity);
_worldPacket.WriteUInt8((byte)DisplayToastMethod);
_worldPacket.WriteUInt32(QuestID);
_worldPacket.WriteBit(Mailed);
_worldPacket.WriteBits((byte)Type, 2);
_worldPacket.WriteBit(IsSecondaryResult);
switch (Type)
{
case DisplayToastType.NewItem:
_worldPacket.WriteBit(BonusRoll);
Item.Write(_worldPacket);
_worldPacket.WriteInt32(LootSpec);
_worldPacket.WriteInt32((int)Gender);
break;
case DisplayToastType.NewCurrency:
_worldPacket.WriteUInt32(CurrencyID);
break;
default:
break;
}
_worldPacket.FlushBits();
}
}
class DisplayGameError : ServerPacket
{