TrinityCore
MiscPackets.cpp
Go to the documentation of this file.
1/*
2 * This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
3 *
4 * This program is free software; you can redistribute it and/or modify it
5 * under the terms of the GNU General Public License as published by the
6 * Free Software Foundation; either version 2 of the License, or (at your
7 * option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12 * more details.
13 *
14 * You should have received a copy of the GNU General Public License along
15 * with this program. If not, see <http://www.gnu.org/licenses/>.
16 */
17
18#include "MiscPackets.h"
19#include "Common.h"
20
22{
26
27 return &_worldPacket;
28}
29
31{
32 _worldPacket << Guid;
33
34 return &_worldPacket;
35}
36
38{
39 _worldPacket << ServerTime;
40 _worldPacket << GameTime;
41 _worldPacket << float(NewSpeed);
42 _worldPacket << uint32(ServerTimeHolidayOffset);
43 _worldPacket << uint32(GameTimeHolidayOffset);
44
45 return &_worldPacket;
46}
47
49{
50 _worldPacket << int32(Type);
51 _worldPacket << int32(Quantity);
52 _worldPacket << uint32(Flags);
53 _worldPacket << uint32(Toasts.size());
54
55 for (WorldPackets::Item::UiEventToast const& toast : Toasts)
56 _worldPacket << toast;
57
58 _worldPacket.WriteBit(WeeklyQuantity.has_value());
59 _worldPacket.WriteBit(TrackedQuantity.has_value());
60 _worldPacket.WriteBit(MaxQuantity.has_value());
61 _worldPacket.WriteBit(TotalEarned.has_value());
62 _worldPacket.WriteBit(SuppressChatLog);
63 _worldPacket.WriteBit(QuantityChange.has_value());
64 _worldPacket.WriteBit(QuantityGainSource.has_value());
65 _worldPacket.WriteBit(QuantityLostSource.has_value());
66 _worldPacket.WriteBit(FirstCraftOperationID.has_value());
67 _worldPacket.WriteBit(NextRechargeTime.has_value());
68 _worldPacket.WriteBit(RechargeCycleStartTime.has_value());
69 _worldPacket.WriteBit(OverflownCurrencyID.has_value());
70 _worldPacket.FlushBits();
71
72 if (WeeklyQuantity)
73 _worldPacket << int32(*WeeklyQuantity);
74
75 if (TrackedQuantity)
76 _worldPacket << int32(*TrackedQuantity);
77
78 if (MaxQuantity)
79 _worldPacket << int32(*MaxQuantity);
80
81 if (TotalEarned)
82 _worldPacket << int32(*TotalEarned);
83
84 if (QuantityChange)
85 _worldPacket << int32(*QuantityChange);
86
87 if (QuantityGainSource)
88 _worldPacket << int32(*QuantityGainSource);
89
90 if (QuantityLostSource)
91 _worldPacket << int32(*QuantityLostSource);
92
93 if (FirstCraftOperationID)
94 _worldPacket << uint32(*FirstCraftOperationID);
95
96 if (NextRechargeTime)
97 _worldPacket << *NextRechargeTime;
98
99 if (RechargeCycleStartTime)
100 _worldPacket << *RechargeCycleStartTime;
101
102 if (OverflownCurrencyID)
103 _worldPacket << int32(*OverflownCurrencyID);
104
105 return &_worldPacket;
106}
107
109{
110 _worldPacket >> Selection;
111}
112
114{
115 _worldPacket << uint32(Data.size());
116
117 for (Record const& data : Data)
118 {
119 _worldPacket << int32(data.Type);
120 _worldPacket << int32(data.Quantity);
121
122 _worldPacket.WriteBit(data.WeeklyQuantity.has_value());
123 _worldPacket.WriteBit(data.MaxWeeklyQuantity.has_value());
124 _worldPacket.WriteBit(data.TrackedQuantity.has_value());
125 _worldPacket.WriteBit(data.MaxQuantity.has_value());
126 _worldPacket.WriteBit(data.TotalEarned.has_value());
127 _worldPacket.WriteBit(data.NextRechargeTime.has_value());
128 _worldPacket.WriteBit(data.RechargeCycleStartTime.has_value());
129 _worldPacket.WriteBits(uint8(data.Flags), 5);
130 _worldPacket.FlushBits();
131
132 if (data.WeeklyQuantity)
133 _worldPacket << uint32(*data.WeeklyQuantity);
134 if (data.MaxWeeklyQuantity)
135 _worldPacket << uint32(*data.MaxWeeklyQuantity);
136 if (data.TrackedQuantity)
137 _worldPacket << uint32(*data.TrackedQuantity);
138 if (data.MaxQuantity)
139 _worldPacket << int32(*data.MaxQuantity);
140 if (data.TotalEarned)
141 _worldPacket << int32(*data.TotalEarned);
142 if (data.NextRechargeTime)
143 _worldPacket << *data.NextRechargeTime;
144 if (data.RechargeCycleStartTime)
145 _worldPacket << *data.RechargeCycleStartTime;
146 }
147
148 return &_worldPacket;
149}
150
152{
153 _worldPacket >> ViolenceLvl;
154}
155
157{
158 _worldPacket << SequenceIndex;
159
160 return &_worldPacket;
161}
162
164{
165 _worldPacket >> SequenceIndex;
166 _worldPacket >> ClientTime;
167}
168
170{
171 _worldPacket << Time;
172
173 return &_worldPacket;
174}
175
177{
178 _worldPacket << uint32(MovieID);
179
180 return &_worldPacket;
181}
183{
184 _worldPacket << uint32(CinematicID);
185 _worldPacket << ConversationGuid;
186
187 return &_worldPacket;
188}
189
191{
192 _worldPacket.append(TutorialData, MAX_ACCOUNT_TUTORIAL_VALUES);
193
194 return &_worldPacket;
195}
196
198{
199 Action = _worldPacket.ReadBits(2);
200
202 _worldPacket >> TutorialBit;
203}
204
206{
207 _worldPacket << uint32(DifficultyID);
208 _worldPacket.WriteBit(IsTournamentRealm);
209 _worldPacket.WriteBit(XRealmPvpAlert);
210 _worldPacket.WriteBit(BlockExitingLoadingScreen);
211 _worldPacket.WriteBit(RestrictedAccountMaxLevel.has_value());
212 _worldPacket.WriteBit(RestrictedAccountMaxMoney.has_value());
213 _worldPacket.WriteBit(InstanceGroupSize.has_value());
214
215 if (RestrictedAccountMaxLevel)
216 _worldPacket << uint32(*RestrictedAccountMaxLevel);
217
218 if (RestrictedAccountMaxMoney)
219 _worldPacket << uint64(*RestrictedAccountMaxMoney);
220
221 if (InstanceGroupSize)
222 _worldPacket << uint32(*InstanceGroupSize);
223
224 _worldPacket.FlushBits();
225
226 return &_worldPacket;
227}
228
230{
231 _worldPacket >> DifficultyID;
232}
233
235{
236 _worldPacket >> DifficultyID;
237 _worldPacket >> Legacy;
238}
239
241{
242 _worldPacket << int32(DifficultyID);
243 return &_worldPacket;
244}
245
247{
248 _worldPacket << int32(DifficultyID);
249 _worldPacket << uint8(Legacy);
250 return &_worldPacket;
251}
252
254{
255 _worldPacket << Remaining;
256
257 return &_worldPacket;
258}
259
261{
262 _worldPacket << MapID;
263 _worldPacket << Loc;
264
265 return &_worldPacket;
266}
267
269{
270 _worldPacket << PlayerGUID;
271
272 return &_worldPacket;
273}
274
276{
277 _worldPacket >> CorpseGUID;
278}
279
281{
282 CheckInstance = _worldPacket.ReadBit();
283}
284
286{
287 _worldPacket.WriteBit(IsGossipTriggered);
288 _worldPacket.FlushBits();
289
290 _worldPacket << uint32(CemeteryID.size());
291 for (uint32 cemetery : CemeteryID)
292 _worldPacket << cemetery;
293
294 return &_worldPacket;
295}
296
298{
299 _worldPacket >> Resurrecter;
300 _worldPacket >> Response;
301}
302
304
305WorldPackets::Misc::Weather::Weather(WeatherState weatherID, float intensity /*= 0.0f*/, bool abrupt /*= false*/)
306 : ServerPacket(SMSG_WEATHER, 4 + 4 + 1), Abrupt(abrupt), Intensity(intensity), WeatherID(weatherID) { }
307
309{
310 _worldPacket << uint32(WeatherID);
311 _worldPacket << float(Intensity);
312 _worldPacket.WriteBit(Abrupt);
313
314 _worldPacket.FlushBits();
315 return &_worldPacket;
316}
317
319{
320 _worldPacket >> As<uint8>(StandState);
321}
322
324{
325 _worldPacket << uint8(State);
326 _worldPacket << uint32(AnimKitID);
327
328 return &_worldPacket;
329}
330
332{
333 _worldPacket << Unit;
334 _worldPacket.WriteBits(Tier, 3);
335 _worldPacket.FlushBits();
336
337 return &_worldPacket;
338}
339
341{
342 _worldPacket << BinderID;
343 _worldPacket << uint32(AreaID);
344
345 return &_worldPacket;
346}
347
349{
350 _worldPacket << uint8(Timer);
351 _worldPacket << int32(Value);
352 _worldPacket << int32(MaxValue);
353 _worldPacket << int32(Scale);
354 _worldPacket << int32(SpellID);
355 _worldPacket.WriteBit(Paused);
356 _worldPacket.FlushBits();
357
358 return &_worldPacket;
359}
360
362{
363 _worldPacket << uint8(Timer);
364 _worldPacket.WriteBit(Paused);
365 _worldPacket.FlushBits();
366
367 return &_worldPacket;
368}
369
371{
372 _worldPacket << uint8(Timer);
373
374 return &_worldPacket;
375}
376
378{
379 _worldPacket << int32(AreaID);
380 _worldPacket << int32(Experience);
381
382 return &_worldPacket;
383}
384
386{
387 _worldPacket << int32(Level);
388 _worldPacket << int32(HealthDelta);
389
390 for (int32 power : PowerDelta)
391 _worldPacket << power;
392
393 for (int32 stat : StatDelta)
394 _worldPacket << stat;
395
396 _worldPacket << int32(NumNewTalents);
397 _worldPacket << int32(NumNewPvpTalentSlots);
398
399 return &_worldPacket;
400}
401
403{
404 _worldPacket << uint32(SoundKitID);
405
406 return &_worldPacket;
407}
408
410{
411 bool hasPartyIndex = _worldPacket.ReadBit();
412 _worldPacket >> Min;
413 _worldPacket >> Max;
414 if (hasPartyIndex)
415 _worldPacket >> PartyIndex.emplace();
416}
417
419{
420 _worldPacket << Roller;
421 _worldPacket << RollerWowAccount;
422 _worldPacket << int32(Min);
423 _worldPacket << int32(Max);
424 _worldPacket << int32(Result);
425
426 return &_worldPacket;
427}
428
430{
431 _worldPacket << uint32(CustomizationFeatureMask);
432
433 return &_worldPacket;
434}
435
437{
438 data << uint32(phaseShiftDataPhase.PhaseFlags);
439 data << uint16(phaseShiftDataPhase.Id);
440 return data;
441}
442
444{
445 data << uint32(phaseShiftData.PhaseShiftFlags);
446 data << uint32(phaseShiftData.Phases.size());
447 data << phaseShiftData.PersonalGUID;
448 for (WorldPackets::Misc::PhaseShiftDataPhase const& phaseShiftDataPhase : phaseShiftData.Phases)
449 data << phaseShiftDataPhase;
450
451 return data;
452}
453
455{
456 _worldPacket << Client;
457 _worldPacket << Phaseshift;
458 _worldPacket << uint32(VisibleMapIDs.size() * 2); // size in bytes
459 for (uint16 visibleMapId : VisibleMapIDs)
460 _worldPacket << uint16(visibleMapId); // Active terrain swap map id
461
462 _worldPacket << uint32(PreloadMapIDs.size() * 2); // size in bytes
463 for (uint16 preloadMapId : PreloadMapIDs)
464 _worldPacket << uint16(preloadMapId); // Inactive terrain swap map id
465
466 _worldPacket << uint32(UiMapPhaseIDs.size() * 2); // size in bytes
467 for (uint16 uiMapPhaseId : UiMapPhaseIDs)
468 _worldPacket << uint16(uiMapPhaseId); // phase id, controls only map display (visible on all maps)
469
470 return &_worldPacket;
471}
472
474{
475 _worldPacket << int32(AreaID);
476
477 return &_worldPacket;
478}
479
481{
482 _worldPacket << int32(Percent);
483
484 return &_worldPacket;
485}
486
488{
489 _worldPacket >> ObjectGUID;
490}
491
493{
494 _worldPacket >> ObjectGUID;
495}
496
498{
499 _worldPacket << int32(SoundKitID);
500 _worldPacket << SourceObjectGUID;
501 _worldPacket << TargetObjectGUID;
502 _worldPacket << Position;
503 _worldPacket << int32(BroadcastTextID);
504
505 return &_worldPacket;
506}
507
509{
510 _worldPacket << int32(SoundKitID);
511 _worldPacket << SourceObjectGuid;
512 _worldPacket << int32(BroadcastTextID);
513
514 return &_worldPacket;
515}
516
518{
519 _worldPacket << SourceObjectGUID;
520 _worldPacket << int32(SoundKitID);
521
522 return &_worldPacket;
523}
524
526{
527 _worldPacket << SourceObjectGUID;
528
529 return &_worldPacket;
530}
531
533{
534 Enable = _worldPacket.ReadBit();
535}
536
538{
539 CUFProfiles.resize(_worldPacket.read<uint32>());
540 for (std::unique_ptr<CUFProfile>& cufProfile : CUFProfiles)
541 {
542 cufProfile = std::make_unique<CUFProfile>();
543
544 uint8 strLen = _worldPacket.ReadBits(7);
545
546 // Bool Options
547 for (uint8 option = 0; option < CUF_BOOL_OPTIONS_COUNT; option++)
548 cufProfile->BoolOptions.set(option, _worldPacket.ReadBit());
549
550 // Other Options
551 _worldPacket >> cufProfile->FrameHeight;
552 _worldPacket >> cufProfile->FrameWidth;
553
554 _worldPacket >> cufProfile->SortBy;
555 _worldPacket >> cufProfile->HealthText;
556
557 _worldPacket >> cufProfile->TopPoint;
558 _worldPacket >> cufProfile->BottomPoint;
559 _worldPacket >> cufProfile->LeftPoint;
560
561 _worldPacket >> cufProfile->TopOffset;
562 _worldPacket >> cufProfile->BottomOffset;
563 _worldPacket >> cufProfile->LeftOffset;
564
565 cufProfile->ProfileName = _worldPacket.ReadString(strLen);
566 }
567}
568
570{
571 _worldPacket << uint32(CUFProfiles.size());
572
573 for (CUFProfile const* cufProfile : CUFProfiles)
574 {
575 _worldPacket.WriteBits(cufProfile->ProfileName.size(), 7);
576
577 // Bool Options
578 for (uint8 option = 0; option < CUF_BOOL_OPTIONS_COUNT; option++)
579 _worldPacket.WriteBit(cufProfile->BoolOptions[option]);
580
581 // Other Options
582 _worldPacket << cufProfile->FrameHeight;
583 _worldPacket << cufProfile->FrameWidth;
584
585 _worldPacket << cufProfile->SortBy;
586 _worldPacket << cufProfile->HealthText;
587
588 _worldPacket << cufProfile->TopPoint;
589 _worldPacket << cufProfile->BottomPoint;
590 _worldPacket << cufProfile->LeftPoint;
591
592 _worldPacket << cufProfile->TopOffset;
593 _worldPacket << cufProfile->BottomOffset;
594 _worldPacket << cufProfile->LeftOffset;
595
596 _worldPacket.WriteString(cufProfile->ProfileName);
597 }
598
599 return &_worldPacket;
600}
601
603{
604 _worldPacket << Unit;
605 _worldPacket << uint16(AnimKitID);
606
607 return &_worldPacket;
608}
609
611{
612 _worldPacket << Unit;
613 _worldPacket << uint16(AnimKitID);
614
615 return &_worldPacket;
616}
617
619{
620 _worldPacket << Unit;
621 _worldPacket << uint16(AnimKitID);
622
623 return &_worldPacket;
624}
625
627{
628 _worldPacket << Unit;
629 _worldPacket << uint16(AnimKitID);
630
631 return &_worldPacket;
632}
633
635{
636 _worldPacket << UnitGUID;
637 _worldPacket.WriteBit(PlayHoverAnim);
638 _worldPacket.FlushBits();
639
640 return &_worldPacket;
641}
642
644{
645 EnablePVP = _worldPacket.ReadBit();
646}
647
649{
650 Enable = _worldPacket.ReadBit();
651}
652
654{
655 _worldPacket.WriteBit(IsFullUpdate);
656 _worldPacket.FlushBits();
657
658 _worldPacket << int32(ItemCollectionType);
659
660 // both lists have to have the same size
661 _worldPacket << uint32(Heirlooms->size());
662 _worldPacket << uint32(Heirlooms->size());
663
664 for (auto const& item : *Heirlooms)
665 _worldPacket << int32(item.first);
666
667 for (auto const& flags : *Heirlooms)
668 _worldPacket << uint32(flags.second.flags);
669
670 return &_worldPacket;
671}
672
674{
675 SpellVisualKitIDs.resize(_worldPacket.read<uint32>());
676 _worldPacket >> SequenceVariation;
677 for (int32& spellVisualKitId : SpellVisualKitIDs)
678 _worldPacket >> spellVisualKitId;
679}
680
682{
683 _worldPacket << UnitGUID;
684 _worldPacket << uint32(SpellVisualKitIDs.size());
685 _worldPacket << int32(SequenceVariation);
686 if (!SpellVisualKitIDs.empty())
687 _worldPacket.append(SpellVisualKitIDs.data(), SpellVisualKitIDs.size());
688
689 return &_worldPacket;
690}
691
693{
694 _worldPacket << Guid;
695 _worldPacket << int32(Threshold);
696 _worldPacket << int32(ItemID);
697
698 return &_worldPacket;
699}
700
702{
703 Enable = _worldPacket.ReadBit();
704}
705
707{
708 _worldPacket << int32(AreaLightID);
709 _worldPacket << int32(OverrideLightID);
710 _worldPacket << int32(TransitionMilliseconds);
711
712 return &_worldPacket;
713}
714
716{
717 _worldPacket << uint32(Error);
718 _worldPacket.WriteBit(Arg.has_value());
719 _worldPacket.WriteBit(Arg2.has_value());
720 _worldPacket.FlushBits();
721
722 if (Arg)
723 _worldPacket << int32(*Arg);
724
725 if (Arg2)
726 _worldPacket << int32(*Arg2);
727
728 return &_worldPacket;
729}
730
732{
733 _worldPacket.WriteBit(IsFullUpdate);
734 _worldPacket << uint32(Mounts->size());
735
736 for (auto [spellId, flags] : *Mounts)
737 {
738 _worldPacket << int32(spellId);
739 _worldPacket.WriteBits(flags, 4);
740 }
741
742 _worldPacket.FlushBits();
743
744 return &_worldPacket;
745}
746
748{
749 _worldPacket >> MountSpellID;
750 IsFavorite = _worldPacket.ReadBit();
751}
752
754{
755 _worldPacket >> SourceGuid;
756}
757
759{
760 _worldPacket << TotalTime;
761 _worldPacket << int32(Type);
762 _worldPacket << TimeLeft;
763 _worldPacket.WriteBit(PlayerGuid.has_value());
764 _worldPacket.FlushBits();
765
766 if (PlayerGuid)
767 _worldPacket << *PlayerGuid;
768
769 return &_worldPacket;
770}
771
773{
774 _worldPacket >> As<int32>(TimerType);
775}
776
778{
779 _worldPacket >> ConversationGUID;
780 _worldPacket >> LineID;
781}
782
784{
785 _worldPacket << int32(UISplashScreenID);
786
787 return &_worldPacket;
788}
789
791{
792 _worldPacket << uint64(Quantity);
793 _worldPacket << uint8(AsUnderlyingType(DisplayToastMethod));
794 _worldPacket << uint32(QuestID);
795
796 _worldPacket.WriteBit(Mailed);
797 _worldPacket.WriteBits(AsUnderlyingType(Type), 2);
798 _worldPacket.WriteBit(IsSecondaryResult);
799
800 switch (Type)
801 {
803 _worldPacket.WriteBit(BonusRoll);
804 _worldPacket << Item;
805 _worldPacket << int32(LootSpec);
806 _worldPacket << int8(Gender);
807 break;
809 _worldPacket << uint32(CurrencyID);
810 break;
811 default:
812 break;
813 }
814
815 _worldPacket.FlushBits();
816
817 return &_worldPacket;
818}
819
821{
822 _worldPacket << Bits<1>(IsFullUpdate);
823 _worldPacket << uint32(WarbandScenes->size());
824 _worldPacket << uint32(WarbandScenes->size());
825 _worldPacket << uint32(WarbandScenes->size());
826
827 for (auto [warbandSceneId, _] : *WarbandScenes)
828 _worldPacket << uint32(warbandSceneId);
829
830 for (auto [_, data] : *WarbandScenes)
831 _worldPacket << Bits<1>(data.Flags.HasFlag(WarbandSceneCollectionFlags::Favorite));
832
833 for (auto [_, data] : *WarbandScenes)
834 _worldPacket << Bits<1>(data.Flags.HasFlag(WarbandSceneCollectionFlags::HasFanfare));
835
836 _worldPacket.FlushBits();
837
838 return &_worldPacket;
839}
@ CUF_BOOL_OPTIONS_COUNT
Definition: CUFProfile.h:59
ItemCollectionType
Definition: DBCEnums.h:1108
uint8_t uint8
Definition: Define.h:144
int8_t int8
Definition: Define.h:140
int32_t int32
Definition: Define.h:138
uint64_t uint64
Definition: Define.h:141
uint16_t uint16
Definition: Define.h:143
uint32_t uint32
Definition: Define.h:142
uint16 flags
Definition: DisableMgr.cpp:49
DisplayToastMethod
Definition: Player.h:1013
Gender
@ TUTORIAL_ACTION_UPDATE
#define MAX_ACCOUNT_TUTORIAL_VALUES
constexpr std::underlying_type< E >::type AsUnderlyingType(E enumValue)
Definition: Util.h:528
Action
void append(T value)
Definition: ByteBuffer.h:137
bool WriteBit(bool bit)
Definition: ByteBuffer.h:169
Definition: Item.h:170
Definition: Unit.h:631
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
Definition: MiscPackets.cpp:21
TaggedPosition< Position::XYZ > BindPosition
Definition: MiscPackets.h:51
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
Definition: MiscPackets.cpp:30
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
Definition: MiscPackets.cpp:37
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
Definition: MiscPackets.cpp:48
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket _worldPacket
Definition: Packet.h:43
@ SMSG_WEATHER
Definition: Opcodes.h:2158
WeatherState
Definition: Weather.h:46
time_t GameTime
Definition: GameTime.cpp:28
boost::beast::http::response< ResponseBody > Response
Definition: HttpCommon.h:31
static constexpr uint32 Timer
ByteBuffer & operator<<(ByteBuffer &data, Movement::MonsterSplineFilterKey const &monsterSplineFilterKey)
Represents a CompactUnitFrame profile.
Definition: CUFProfile.h:64
std::vector< PhaseShiftDataPhase > Phases
Definition: MiscPackets.h:571