TrinityCore
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages Concepts
QuestPackets.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 "QuestPackets.h"
19#include "PacketOperators.h"
20
21namespace WorldPackets::Quest
22{
24{
25 data << int32(questDisplaySpell.SpellID);
26 data << int32(questDisplaySpell.PlayerConditionID);
27 data << int32(questDisplaySpell.Type);
28
29 return data;
30}
31
32ByteBuffer& operator<<(ByteBuffer& data, ConditionalQuestText const& conditionalQuestText)
33{
34 data << int32(conditionalQuestText.PlayerConditionID);
35 data << int32(conditionalQuestText.QuestGiverCreatureID);
36 data << SizedString::BitsSize<12>(conditionalQuestText.Text);
37 data.FlushBits();
38
39 data << SizedString::Data(conditionalQuestText.Text);
40
41 return data;
42}
43
45{
47}
48
50{
53
54 return &_worldPacket;
55}
56
58{
59 _worldPacket << Size<int32>(QuestGiver);
60 for (QuestGiverInfo const& questGiver : QuestGiver)
61 {
62 _worldPacket << questGiver.Guid;
63 _worldPacket << uint64(questGiver.Status);
64 }
65
66 return &_worldPacket;
67}
68
70{
72}
73
75{
78}
79
81{
83
84 _worldPacket << Bits<1>(Allow);
86
87 if (Allow)
88 {
103 _worldPacket << Size<uint32>(Info.RewardDisplaySpell);
115
116 for (uint32 i = 0; i < QUEST_REWARD_ITEM_COUNT; ++i)
117 {
122 }
123
124 for (uint32 i = 0; i < QUEST_REWARD_CHOICES_COUNT; ++i)
125 {
129 }
130
132 _worldPacket << float(Info.POIx);
133 _worldPacket << float(Info.POIy);
135
140
145
146 for (uint32 i = 0; i < QUEST_REWARD_REPUTATIONS_COUNT; ++i)
147 {
152 }
153
155
156 for (uint32 i = 0; i < QUEST_REWARD_CURRENCY_COUNT; ++i)
157 {
160 }
161
164
167
168 _worldPacket << Size<uint32>(Info.Objectives);
170 _worldPacket << Size<uint32>(Info.TreasurePickerID);
171 _worldPacket << Size<uint32>(Info.TreasurePickerID2);
176
177 _worldPacket << Size<uint32>(Info.ConditionalQuestDescription);
178 _worldPacket << Size<uint32>(Info.ConditionalQuestCompletionLog);
179
180 for (QuestCompleteDisplaySpell const& rewardDisplaySpell : Info.RewardDisplaySpell)
181 _worldPacket << rewardDisplaySpell;
182
183 if (!Info.TreasurePickerID.empty())
185
186 if (!Info.TreasurePickerID2.empty())
188
189 _worldPacket << SizedString::BitsSize<9>(Info.LogTitle);
190 _worldPacket << SizedString::BitsSize<12>(Info.LogDescription);
191 _worldPacket << SizedString::BitsSize<12>(Info.QuestDescription);
192 _worldPacket << SizedString::BitsSize<9>(Info.AreaDescription);
193 _worldPacket << SizedString::BitsSize<10>(Info.PortraitGiverText);
194 _worldPacket << SizedString::BitsSize<8>(Info.PortraitGiverName);
195 _worldPacket << SizedString::BitsSize<10>(Info.PortraitTurnInText);
196 _worldPacket << SizedString::BitsSize<8>(Info.PortraitTurnInName);
197 _worldPacket << SizedString::BitsSize<11>(Info.QuestCompletionLog);
198 _worldPacket << Bits<1>(Info.ResetByScheduler);
199 _worldPacket << Bits<1>(Info.ReadyForTranslation);
201
202 for (QuestObjective const& questObjective : Info.Objectives)
203 {
204 _worldPacket << uint32(questObjective.ID);
205 _worldPacket << int32(questObjective.Type);
206 _worldPacket << int8(questObjective.StorageIndex);
207 _worldPacket << int32(questObjective.ObjectID);
208 _worldPacket << int32(questObjective.Amount);
209 _worldPacket << uint32(questObjective.Flags);
210 _worldPacket << uint32(questObjective.Flags2);
211 _worldPacket << float(questObjective.ProgressBarWeight);
212
213 _worldPacket << Size<int32>(questObjective.VisualEffects);
214 for (int32 visualEffect : questObjective.VisualEffects)
215 _worldPacket << int32(visualEffect);
216
217 _worldPacket << SizedString::BitsSize<8>(questObjective.Description);
219
220 _worldPacket << SizedString::Data(questObjective.Description);
221 }
222
232
233 for (ConditionalQuestText const& conditionalQuestText : Info.ConditionalQuestDescription)
234 _worldPacket << conditionalQuestText;
235
236 for (ConditionalQuestText const& conditionalQuestText : Info.ConditionalQuestCompletionLog)
237 _worldPacket << conditionalQuestText;
238 }
239
240 return &_worldPacket;
241}
242
244{
251
252 return &_worldPacket;
253};
254
256{
260
261 return &_worldPacket;
262}
263
265{
268
269 return &_worldPacket;
270}
271
272ByteBuffer& operator<<(ByteBuffer& data, QuestRewardItem const& questRewardItem)
273{
274 data << int32(questRewardItem.ItemID);
275 data << int32(questRewardItem.ItemQty);
276 data << OptionalInit(questRewardItem.ContextFlags);
277 data.FlushBits();
278 if (questRewardItem.ContextFlags)
279 data << As<int32>(*questRewardItem.ContextFlags);
280
281 return data;
282}
283
284ByteBuffer& operator<<(ByteBuffer& data, QuestChoiceItem const& questChoiceItem)
285{
286 data << Bits<2>(questChoiceItem.LootItemType);
287 data << OptionalInit(questChoiceItem.ContextFlags);
288 data << questChoiceItem.Item;
289 data << int32(questChoiceItem.Quantity);
290 if (questChoiceItem.ContextFlags)
291 data << As<int32>(*questChoiceItem.ContextFlags);
292
293 return data;
294}
295
297{
298 data.ResetBitPos();
299 data >> Bits<2>(questChoiceItem.LootItemType);
300 data >> OptionalInit(questChoiceItem.ContextFlags);
301 data >> questChoiceItem.Item;
302 data >> questChoiceItem.Quantity;
303 if (questChoiceItem.ContextFlags)
304 data >> As<int32>(*questChoiceItem.ContextFlags);
305
306 return data;
307}
308
309ByteBuffer& operator<<(ByteBuffer& data, QuestRewardCurrency const& questRewardCurrency)
310{
311 data << int32(questRewardCurrency.CurrencyID);
312 data << int32(questRewardCurrency.CurrencyQty);
313 data << int32(questRewardCurrency.BonusQty);
314 data << OptionalInit(questRewardCurrency.ContextFlags);
315 data.FlushBits();
316 if (questRewardCurrency.ContextFlags)
317 data << As<int32>(*questRewardCurrency.ContextFlags);
318
319 return data;
320}
321
322ByteBuffer& operator<<(ByteBuffer& data, QuestRewards const& questRewards)
323{
324 for (QuestRewardItem const& item : questRewards.Items)
325 data << item;
326
327 data << int32(questRewards.ChoiceItemCount);
328 data << int32(questRewards.ItemCount);
329 data << int32(questRewards.Money);
330 data << int32(questRewards.XP);
331 data << int64(questRewards.ArtifactXP);
332 data << int32(questRewards.ArtifactCategoryID);
333 data << int32(questRewards.Honor);
334 data << int32(questRewards.Title);
335 data << int32(questRewards.FactionFlags);
336
337 for (uint32 i = 0; i < QUEST_REWARD_REPUTATIONS_COUNT; ++i)
338 {
339 data << int32(questRewards.FactionID[i]);
340 data << int32(questRewards.FactionValue[i]);
341 data << int32(questRewards.FactionOverride[i]);
342 data << int32(questRewards.FactionCapIn[i]);
343 }
344
345 data.append(questRewards.SpellCompletionDisplayID.data(), questRewards.SpellCompletionDisplayID.size());
346
347 data << int32(questRewards.SpellCompletionID);
348
349 data << int32(questRewards.SkillLineID);
350 data << int32(questRewards.NumSkillUps);
351 data << Size<uint32>(questRewards.TreasurePickerID);
352 if (!questRewards.TreasurePickerID.empty())
353 data.append(questRewards.TreasurePickerID.data(), questRewards.TreasurePickerID.size());
354
355 for (QuestRewardCurrency const& currency : questRewards.Currencies)
356 data << currency;
357
358 data << Bits<1>(questRewards.IsBoostSpell);
359 data.FlushBits();
360
361 for (QuestChoiceItem const& choiceItem : questRewards.ChoiceItems)
362 data << choiceItem;
363
364 return data;
365}
366
368{
369 data << offer.Rewards; // QuestRewards
370 data << Size<int32>(offer.Emotes);
371 data << offer.QuestGiverGUID;
372 data.append(offer.QuestFlags);
373 data << int32(offer.QuestGiverCreatureID);
374 data << int32(offer.QuestID);
375 data << int32(offer.SuggestedPartyMembers);
376 data << int32(offer.QuestInfoID);
377 for (QuestDescEmote const& emote : offer.Emotes)
378 {
379 data << int32(emote.Type);
380 data << uint32(emote.Delay);
381 }
382
383 data << Bits<1>(offer.AutoLaunched);
384 data << Bits<1>(false); // Unused
385 data << Bits<1>(offer.ResetByScheduler);
386 data.FlushBits();
387
388 return data;
389}
390
392{
393 _worldPacket << QuestData; // QuestGiverOfferReward
400 _worldPacket << Size<uint32>(ConditionalRewardText);
401
402 _worldPacket << SizedString::BitsSize<9>(QuestTitle);
403 _worldPacket << SizedString::BitsSize<12>(RewardText);
404 _worldPacket << SizedString::BitsSize<10>(PortraitGiverText);
405 _worldPacket << SizedString::BitsSize<8>(PortraitGiverName);
406 _worldPacket << SizedString::BitsSize<10>(PortraitTurnInText);
407 _worldPacket << SizedString::BitsSize<8>(PortraitTurnInName);
409
410 for (ConditionalQuestText const& conditionalQuestText : ConditionalRewardText)
411 _worldPacket << conditionalQuestText;
412
419
420 return &_worldPacket;
421};
422
424{
428}
429
431{
437 _worldPacket << Bits<1>(UseQuestReward);
438 _worldPacket << Bits<1>(LaunchGossip);
439 _worldPacket << Bits<1>(LaunchQuest);
440 _worldPacket << Bits<1>(HideChatMessage);
441
443
444 return &_worldPacket;
445}
446
448{
451 _worldPacket >> Bits<1>(FromScript);
452}
453
455{
457}
458
460{
471 _worldPacket << Size<uint32>(LearnSpells);
472 _worldPacket << Size<uint32>(DescEmotes);
473 _worldPacket << Size<uint32>(Objectives);
478 _worldPacket << Size<uint32>(ConditionalDescriptionText);
479
480 for (int32 spell : LearnSpells)
481 _worldPacket << int32(spell);
482
483 for (QuestDescEmote const& emote : DescEmotes)
484 {
485 _worldPacket << int32(emote.Type);
486 _worldPacket << uint32(emote.Delay);
487 }
488
489 for (QuestObjectiveSimple const& obj : Objectives)
490 {
491 _worldPacket << int32(obj.ID);
492 _worldPacket << int32(obj.Type);
493 _worldPacket << int32(obj.ObjectID);
494 _worldPacket << int32(obj.Amount);
495 }
496
497 _worldPacket << SizedString::BitsSize<9>(QuestTitle);
498 _worldPacket << SizedString::BitsSize<12>(DescriptionText);
499 _worldPacket << SizedString::BitsSize<12>(LogDescription);
500 _worldPacket << SizedString::BitsSize<10>(PortraitGiverText);
501 _worldPacket << SizedString::BitsSize<8>(PortraitGiverName);
502 _worldPacket << SizedString::BitsSize<10>(PortraitTurnInText);
503 _worldPacket << SizedString::BitsSize<8>(PortraitTurnInName);
504 _worldPacket << Bits<1>(AutoLaunched);
505 _worldPacket << Bits<1>(FromContentPush);
506 _worldPacket << Bits<1>(false); // unused in client
507 _worldPacket << Bits<1>(ResetByScheduler);
508 _worldPacket << Bits<1>(StartCheat);
509 _worldPacket << Bits<1>(DisplayPopup);
511
512 _worldPacket << Rewards; // QuestRewards
520
521 for (ConditionalQuestText const& conditionalQuestText : ConditionalDescriptionText)
522 _worldPacket << conditionalQuestText;
523
524 return &_worldPacket;
525}
526
528{
529 _worldPacket << Size<int32>(Collect);
530 _worldPacket << Size<int32>(Currency);
541
542 for (QuestObjectiveCollect const& obj : Collect)
543 {
544 _worldPacket << int32(obj.ObjectID);
545 _worldPacket << int32(obj.Amount);
546 _worldPacket << uint32(obj.Flags);
547 }
548
549 for (QuestCurrency const& cur : Currency)
550 {
551 _worldPacket << int32(cur.CurrencyID);
552 _worldPacket << int32(cur.Amount);
553 }
554
555 _worldPacket << Bits<1>(AutoLaunched);
556 _worldPacket << Bits<1>(ResetByScheduler);
558
560 _worldPacket << Size<uint32>(ConditionalCompletionText);
561
562 _worldPacket << SizedString::BitsSize<9>(QuestTitle);
563 _worldPacket << SizedString::BitsSize<12>(CompletionText);
565
566 for (ConditionalQuestText const& conditionalQuestText : ConditionalCompletionText)
567 _worldPacket << conditionalQuestText;
568
571
572 return &_worldPacket;
573}
574
576{
579}
580
582{
585 _worldPacket >> Bits<1>(RespondToGiver);
586}
587
589{
592 _worldPacket >> Bits<1>(StartCheat);
593}
594
596{
598}
599
601{
605 _worldPacket << Size<uint32>(QuestDataText);
606 _worldPacket << SizedString::BitsSize<11>(Greeting);
608
609 for (NPC::ClientGossipText const& gossip : QuestDataText)
610 _worldPacket << gossip;
611
613
614 return &_worldPacket;
615}
616
618{
620
621 return &_worldPacket;
622}
623
625{
628
629 _worldPacket << SizedString::BitsSize<10>(QuestTitle);
631
633
634 return &_worldPacket;
635}
636
638{
640}
641
643{
646
647 _worldPacket << SizedString::BitsSize<9>(QuestTitle);
649
651
652 return &_worldPacket;
653}
654
656{
660}
661
663{
666
667 _worldPacket << Bits<1>(SendErrorMessage);
668 _worldPacket << SizedString::BitsSize<9>(ReasonText);
670
672
673 return &_worldPacket;
674}
675
677{
679
680 return &_worldPacket;
681}
682
684{
687
688 return &_worldPacket;
689}
690
692{
694}
695
697{
699
700 return &_worldPacket;
701}
702
704{
706
707 return &_worldPacket;
708}
709
711{
712 _worldPacket << Size<uint32>(WorldQuestUpdates);
713
714 for (WorldQuestUpdateInfo const& worldQuestUpdate : WorldQuestUpdates)
715 {
716 _worldPacket << worldQuestUpdate.LastUpdate;
717 _worldPacket << uint32(worldQuestUpdate.QuestID);
718 _worldPacket << uint32(worldQuestUpdate.Timer);
719 _worldPacket << int32(worldQuestUpdate.VariableID);
720 _worldPacket << int32(worldQuestUpdate.Value);
721 }
722
723 return &_worldPacket;
724}
725
726ByteBuffer& operator<<(ByteBuffer& data, PlayerChoiceResponseRewardEntry const& playerChoiceResponseRewardEntry)
727{
728 data << playerChoiceResponseRewardEntry.Item;
729 data << int32(playerChoiceResponseRewardEntry.Quantity);
730
731 return data;
732}
733
734ByteBuffer& operator<<(ByteBuffer& data, PlayerChoiceResponseReward const& playerChoiceResponseReward)
735{
736 data << int32(playerChoiceResponseReward.TitleID);
737 data << int32(playerChoiceResponseReward.PackageID);
738 data << int32(playerChoiceResponseReward.SkillLineID);
739 data << uint32(playerChoiceResponseReward.SkillPointCount);
740 data << uint32(playerChoiceResponseReward.ArenaPointCount);
741 data << uint32(playerChoiceResponseReward.HonorPointCount);
742 data << uint64(playerChoiceResponseReward.Money);
743 data << uint32(playerChoiceResponseReward.Xp);
744 data << Size<uint32>(playerChoiceResponseReward.Items);
745 data << Size<uint32>(playerChoiceResponseReward.Currencies);
746 data << Size<uint32>(playerChoiceResponseReward.Factions);
747 data << Size<uint32>(playerChoiceResponseReward.ItemChoices);
748
749 for (PlayerChoiceResponseRewardEntry const& item : playerChoiceResponseReward.Items)
750 data << item;
751
752 for (PlayerChoiceResponseRewardEntry const& currency : playerChoiceResponseReward.Currencies)
753 data << currency;
754
755 for (PlayerChoiceResponseRewardEntry const& faction : playerChoiceResponseReward.Factions)
756 data << faction;
757
758 for (PlayerChoiceResponseRewardEntry const& itemChoice : playerChoiceResponseReward.ItemChoices)
759 data << itemChoice;
760
761 return data;
762}
763
764ByteBuffer& operator<<(ByteBuffer& data, PlayerChoiceResponseMawPower const& playerChoiceResponseMawPower)
765{
766 data << int32(playerChoiceResponseMawPower.Unused901_1);
767 data << int32(playerChoiceResponseMawPower.TypeArtFileID);
768 data << int32(playerChoiceResponseMawPower.Unused901_2);
769 data << int32(playerChoiceResponseMawPower.SpellID);
770 data << int32(playerChoiceResponseMawPower.MaxStacks);
771 data << OptionalInit(playerChoiceResponseMawPower.Rarity);
772 data.FlushBits();
773
774 if (playerChoiceResponseMawPower.Rarity)
775 data << int32(*playerChoiceResponseMawPower.Rarity);
776
777 return data;
778}
779
780ByteBuffer& operator<<(ByteBuffer& data, PlayerChoiceResponse const& playerChoiceResponse)
781{
782 data << int32(playerChoiceResponse.ResponseID);
783 data << uint16(playerChoiceResponse.ResponseIdentifier);
784 data << int32(playerChoiceResponse.ChoiceArtFileID);
785 data << int32(playerChoiceResponse.Flags);
786 data << uint32(playerChoiceResponse.WidgetSetID);
787 data << uint32(playerChoiceResponse.UiTextureAtlasElementID);
788 data << uint32(playerChoiceResponse.SoundKitID);
789 data << uint8(playerChoiceResponse.GroupID);
790 data << int32(playerChoiceResponse.UiTextureKitID);
791
792 data << SizedString::BitsSize<9>(playerChoiceResponse.Answer);
793 data << SizedString::BitsSize<9>(playerChoiceResponse.Header);
794 data << SizedString::BitsSize<7>(playerChoiceResponse.SubHeader);
795 data << SizedString::BitsSize<9>(playerChoiceResponse.ButtonTooltip);
796 data << SizedString::BitsSize<11>(playerChoiceResponse.Description);
797 data << SizedString::BitsSize<7>(playerChoiceResponse.Confirmation);
798 data << OptionalInit(playerChoiceResponse.RewardQuestID);
799 data << OptionalInit(playerChoiceResponse.Reward);
800 data << OptionalInit(playerChoiceResponse.MawPower);
801 data.FlushBits();
802
803 if (playerChoiceResponse.Reward)
804 data << *playerChoiceResponse.Reward;
805
806 data << SizedString::Data(playerChoiceResponse.Answer);
807 data << SizedString::Data(playerChoiceResponse.Header);
808 data << SizedString::Data(playerChoiceResponse.SubHeader);
809 data << SizedString::Data(playerChoiceResponse.ButtonTooltip);
810 data << SizedString::Data(playerChoiceResponse.Description);
811 data << SizedString::Data(playerChoiceResponse.Confirmation);
812
813 if (playerChoiceResponse.RewardQuestID)
814 data << uint32(*playerChoiceResponse.RewardQuestID);
815
816 if (playerChoiceResponse.MawPower)
817 data << *playerChoiceResponse.MawPower;
818
819 return data;
820}
821
823{
825 _worldPacket << Size<uint32>(Responses);
832 _worldPacket << SizedString::BitsSize<8>(Question);
833 _worldPacket << SizedString::BitsSize<8>(PendingChoiceText);
834 _worldPacket << Bits<1>(InfiniteRange);
835 _worldPacket << Bits<1>(HideWarboardHeader);
836 _worldPacket << Bits<1>(KeepOpenAfterChoice);
837 _worldPacket << Bits<1>(Unknown_1115_1);
838 _worldPacket << Bits<1>(Unknown_1115_2);
840
841 for (PlayerChoiceResponse const& response : Responses)
842 _worldPacket << response;
843
846
847 return &_worldPacket;
848}
849
851{
854 _worldPacket >> Bits<1>(IsReroll);
855}
856
858{
860 _worldPacket << Size<uint32>(QuestLineXQuestIDs);
861 _worldPacket << Size<uint32>(QuestIDs);
862 _worldPacket << Size<uint32>(QuestLineIDs);
863
864 for (uint32 const& questLineQuestID : QuestLineXQuestIDs)
865 _worldPacket << uint32(questLineQuestID);
866
867 for (uint32 const& questID : QuestIDs)
868 _worldPacket << uint32(questID);
869
870 for (uint32 const& questLineID : QuestLineIDs)
871 _worldPacket << uint32(questLineID);
872
873 return &_worldPacket;
874}
875
877{
879}
880
882{
883 data >> spawnTrackingRequestInfo.ObjectTypeMask;
884 data >> spawnTrackingRequestInfo.ObjectID;
885 data >> spawnTrackingRequestInfo.SpawnTrackingID;
886
887 return data;
888}
889
891{
892 uint32 requests = _worldPacket.read<uint32>();
893 if (requests > 10000)
894 OnInvalidArraySize(requests, 10000);
895
896 SpawnTrackingRequests.resize(requests);
897 for (SpawnTrackingRequestInfo& spawnTrackingRequestInfo : SpawnTrackingRequests)
898 _worldPacket >> spawnTrackingRequestInfo;
899}
900
901ByteBuffer& operator<<(ByteBuffer& data, SpawnTrackingResponseInfo const& spawnTrackingResponseInfo)
902{
903 data << uint32(spawnTrackingResponseInfo.SpawnTrackingID);
904 data << int32(spawnTrackingResponseInfo.ObjectID);
905 data << int32(spawnTrackingResponseInfo.PhaseID);
906 data << int32(spawnTrackingResponseInfo.PhaseGroupID);
907 data << int32(spawnTrackingResponseInfo.PhaseUseFlags);
908
909 data << Bits<1>(spawnTrackingResponseInfo.Visible);
910 data.FlushBits();
911
912 return data;
913}
914
916{
917 _worldPacket << Size<uint32>(SpawnTrackingResponses);
918
919 for (SpawnTrackingResponseInfo const& spawnTrackingResponseInfo : SpawnTrackingResponses)
920 _worldPacket << spawnTrackingResponseInfo;
921
922 return &_worldPacket;
923}
924
926{
928
929 return &_worldPacket;
930}
931}
uint8_t uint8
Definition: Define.h:150
int64_t int64
Definition: Define.h:143
int8_t int8
Definition: Define.h:146
int32_t int32
Definition: Define.h:144
uint64_t uint64
Definition: Define.h:147
uint16_t uint16
Definition: Define.h:149
uint32_t uint32
Definition: Define.h:148
#define QUEST_REWARD_ITEM_COUNT
Definition: QuestDef.h:50
#define QUEST_REWARD_REPUTATIONS_COUNT
Definition: QuestDef.h:52
#define QUEST_REWARD_CURRENCY_COUNT
Definition: QuestDef.h:54
#define QUEST_REWARD_CHOICES_COUNT
Definition: QuestDef.h:49
QuestFlags
Definition: QuestDef.h:216
void append(T value)
Definition: ByteBuffer.h:130
void ResetBitPos()
Definition: ByteBuffer.h:152
void FlushBits()
Definition: ByteBuffer.h:141
WorldPacket _worldPacket
Definition: Packet.h:43
WorldPacket const * Write() override
WorldPackets::Duration< Seconds > Duration
Definition: QuestPackets.h:773
std::vector< PlayerChoiceResponse > Responses
Definition: QuestPackets.h:776
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
std::vector< ConditionalQuestText > ConditionalRewardText
Definition: QuestPackets.h:342
WorldPackets::Item::ItemInstance ItemReward
Definition: QuestPackets.h:375
WorldPacket const * Write() override
std::vector< ConditionalQuestText > ConditionalDescriptionText
Definition: QuestPackets.h:440
std::vector< QuestDescEmote > DescEmotes
Definition: QuestPackets.h:423
std::vector< QuestObjectiveSimple > Objectives
Definition: QuestPackets.h:422
WorldPacket const * Write() override
WorldPacket const * Write() override
std::vector< NPC::ClientGossipText > QuestDataText
Definition: QuestPackets.h:544
std::vector< QuestCurrency > Currency
Definition: QuestPackets.h:480
std::vector< ConditionalQuestText > ConditionalCompletionText
Definition: QuestPackets.h:486
WorldPacket const * Write() override
std::vector< QuestObjectiveCollect > Collect
Definition: QuestPackets.h:479
std::vector< QuestGiverInfo > QuestGiver
Definition: QuestPackets.h:80
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
std::vector< SpawnTrackingResponseInfo > SpawnTrackingResponses
Definition: QuestPackets.h:853
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
std::vector< SpawnTrackingRequestInfo > SpawnTrackingRequests
Definition: QuestPackets.h:833
WorldPacket const * Write() override
WorldPacket const * Write() override
std::vector< WorldQuestUpdateInfo > WorldQuestUpdates
Definition: QuestPackets.h:703
ByteBuffer & operator>>(ByteBuffer &data, QuestChoiceItem &questChoiceItem)
ByteBuffer & operator<<(ByteBuffer &data, QuestCompleteDisplaySpell const &questDisplaySpell)
DataWriter< Container > Data(Container const &value)
void OnInvalidArraySize(std::size_t requestedSize, std::size_t sizeLimit)
OptionalInitWriter< T > OptionalInit(Optional< T > const &value)
int32 ObjectID
Definition: QuestDef.h:485
uint32 Flags2
Definition: QuestDef.h:488
std::string Description
Definition: QuestDef.h:490
int8 StorageIndex
Definition: QuestDef.h:484
std::vector< int32 > VisualEffects
Definition: QuestDef.h:491
uint32 Flags
Definition: QuestDef.h:487
int32 Amount
Definition: QuestDef.h:486
float ProgressBarWeight
Definition: QuestDef.h:489
std::vector< PlayerChoiceResponseRewardEntry > Factions
Definition: QuestPackets.h:724
std::vector< PlayerChoiceResponseRewardEntry > ItemChoices
Definition: QuestPackets.h:725
std::vector< PlayerChoiceResponseRewardEntry > Currencies
Definition: QuestPackets.h:723
std::vector< PlayerChoiceResponseRewardEntry > Items
Definition: QuestPackets.h:722
Optional< PlayerChoiceResponseReward > Reward
Definition: QuestPackets.h:755
Optional< PlayerChoiceResponseMawPower > MawPower
Definition: QuestPackets.h:757
Optional< QuestRewardContextFlags > ContextFlags
Definition: QuestPackets.h:266
std::vector< QuestDescEmote > Emotes
Definition: QuestPackets.h:319
std::vector< QuestCompleteDisplaySpell > RewardDisplaySpell
Definition: QuestPackets.h:141
std::span< int32 const > TreasurePickerID2
Definition: QuestPackets.h:181
std::span< int32 const > TreasurePickerID
Definition: QuestPackets.h:180
std::vector< QuestObjective > Objectives
Definition: QuestPackets.h:186
int32 RewardAmount[QUEST_REWARD_ITEM_COUNT]
Definition: QuestPackets.h:190
int32 ItemDrop[QUEST_ITEM_DROP_COUNT]
Definition: QuestPackets.h:191
int32 RewardFactionOverride[QUEST_REWARD_REPUTATIONS_COUNT]
Definition: QuestPackets.h:196
int32 RewardItems[QUEST_REWARD_ITEM_COUNT]
Definition: QuestPackets.h:189
int32 RewardFactionCapIn[QUEST_REWARD_REPUTATIONS_COUNT]
Definition: QuestPackets.h:197
QuestInfoChoiceItem UnfilteredChoiceItems[QUEST_REWARD_CHOICES_COUNT]
Definition: QuestPackets.h:193
Trinity::RaceMask< uint64 > AllowableRaces
Definition: QuestPackets.h:157
std::vector< ConditionalQuestText > ConditionalQuestDescription
Definition: QuestPackets.h:187
std::vector< ConditionalQuestText > ConditionalQuestCompletionLog
Definition: QuestPackets.h:188
int32 RewardFactionID[QUEST_REWARD_REPUTATIONS_COUNT]
Definition: QuestPackets.h:194
int32 RewardCurrencyID[QUEST_REWARD_CURRENCY_COUNT]
Definition: QuestPackets.h:198
int32 ItemDropQuantity[QUEST_ITEM_DROP_COUNT]
Definition: QuestPackets.h:192
int32 RewardCurrencyQty[QUEST_REWARD_CURRENCY_COUNT]
Definition: QuestPackets.h:199
int32 RewardFactionValue[QUEST_REWARD_REPUTATIONS_COUNT]
Definition: QuestPackets.h:195
Optional< QuestRewardContextFlags > ContextFlags
Definition: QuestPackets.h:274
Optional< QuestRewardContextFlags > ContextFlags
Definition: QuestPackets.h:258
std::array< int32, QUEST_REWARD_REPUTATIONS_COUNT > FactionOverride
Definition: QuestPackets.h:297
std::array< QuestChoiceItem, QUEST_REWARD_CHOICES_COUNT > ChoiceItems
Definition: QuestPackets.h:293
std::array< int32, QUEST_REWARD_DISPLAY_SPELL_COUNT > SpellCompletionDisplayID
Definition: QuestPackets.h:288
std::array< QuestRewardItem, QUEST_REWARD_ITEM_COUNT > Items
Definition: QuestPackets.h:294
std::array< int32, QUEST_REWARD_REPUTATIONS_COUNT > FactionValue
Definition: QuestPackets.h:296
std::array< int32, QUEST_REWARD_REPUTATIONS_COUNT > FactionCapIn
Definition: QuestPackets.h:298
std::array< int32, QUEST_REWARD_REPUTATIONS_COUNT > FactionID
Definition: QuestPackets.h:295
std::array< QuestRewardCurrency, QUEST_REWARD_CURRENCY_COUNT > Currencies
Definition: QuestPackets.h:299
std::span< int32 const > TreasurePickerID
Definition: QuestPackets.h:292