Core/Players: Implement warband scene collection

Port From (https://github.com/TrinityCore/TrinityCore/commit/29e032707686b18bbcce7029e8dd2eaa6606f6d4)
This commit is contained in:
Hondacrx
2025-06-16 16:42:29 -04:00
parent af80dc75f2
commit 9287b9b3a7
15 changed files with 349 additions and 23 deletions
@@ -1484,6 +1484,33 @@ namespace Game.Networking.Packets
public ObjectGuid SourceGuid;
}
class AccountWarbandSceneUpdate : ServerPacket
{
public bool IsFullUpdate;
public Dictionary<uint, WarbandSceneCollectionItem> WarbandScenes;
public AccountWarbandSceneUpdate() : base(ServerOpcodes.AccountWarbandSceneUpdate) { }
public override void Write()
{
_worldPacket.WriteBit(IsFullUpdate);
_worldPacket.WriteInt32(WarbandScenes.Count);
_worldPacket.WriteInt32(WarbandScenes.Count);
_worldPacket.WriteInt32(WarbandScenes.Count);
foreach (var (warbandSceneId, _) in WarbandScenes)
_worldPacket.WriteUInt32(warbandSceneId);
foreach (var (_, data) in WarbandScenes)
_worldPacket.WriteBit(data.Flags.HasFlag(WarbandSceneCollectionFlags.Favorite));
foreach (var (_, data) in WarbandScenes)
_worldPacket.WriteBit(data.Flags.HasFlag(WarbandSceneCollectionFlags.HasFanfare));
_worldPacket.FlushBits();
}
}
//Structs
struct PhaseShiftDataPhase
{