58 RewardItemId({ questRecord.RewardItem1().GetUInt32(), questRecord.RewardItem2().GetUInt32(),
59 questRecord.RewardItem3().GetUInt32(), questRecord.RewardItem4().GetUInt32() }),
60 RewardItemCount({ questRecord.RewardAmount1().GetUInt32(), questRecord.RewardAmount2().GetUInt32(),
61 questRecord.RewardAmount3().GetUInt32(), questRecord.RewardAmount4().GetUInt32() }),
62 ItemDrop({ questRecord.ItemDrop1().GetUInt32(), questRecord.ItemDrop2().GetUInt32(),
63 questRecord.ItemDrop3().GetUInt32(), questRecord.ItemDrop4().GetUInt32() }),
64 ItemDropQuantity({ questRecord.ItemDropQuantity1().GetUInt32(), questRecord.ItemDropQuantity2().GetUInt32(),
65 questRecord.ItemDropQuantity3().GetUInt32(), questRecord.ItemDropQuantity4().GetUInt32() }),
66 RewardChoiceItemId({ questRecord.RewardChoiceItemID1().GetUInt32(), questRecord.RewardChoiceItemID2().GetUInt32(),
67 questRecord.RewardChoiceItemID3().GetUInt32(), questRecord.RewardChoiceItemID4().GetUInt32(),
68 questRecord.RewardChoiceItemID5().GetUInt32(), questRecord.RewardChoiceItemID6().GetUInt32() }),
69 RewardChoiceItemCount({ questRecord.RewardChoiceItemQuantity1().GetUInt32(), questRecord.RewardChoiceItemQuantity2().GetUInt32(),
70 questRecord.RewardChoiceItemQuantity3().GetUInt32(), questRecord.RewardChoiceItemQuantity4().GetUInt32(),
71 questRecord.RewardChoiceItemQuantity5().GetUInt32(), questRecord.RewardChoiceItemQuantity6().GetUInt32() }),
72 RewardChoiceItemDisplayId({ questRecord.RewardChoiceItemDisplayID1().GetUInt32(), questRecord.RewardChoiceItemDisplayID2().GetUInt32(),
73 questRecord.RewardChoiceItemDisplayID3().GetUInt32(), questRecord.RewardChoiceItemDisplayID4().GetUInt32(),
74 questRecord.RewardChoiceItemDisplayID5().GetUInt32(), questRecord.RewardChoiceItemDisplayID6().GetUInt32() }),
75 RewardFactionId({ questRecord.RewardFactionID1().GetUInt32(), questRecord.RewardFactionID2().GetUInt32(),
76 questRecord.RewardFactionID3().GetUInt32(), questRecord.RewardFactionID4().GetUInt32(), questRecord.RewardFactionID5().GetUInt32() }),
77 RewardFactionValue({ questRecord.RewardFactionValue1().GetInt32(), questRecord.RewardFactionValue2().GetInt32(),
78 questRecord.RewardFactionValue3().GetInt32(), questRecord.RewardFactionValue4().GetInt32(), questRecord.RewardFactionValue5().GetInt32() }),
79 RewardFactionOverride({ questRecord.RewardFactionOverride1().GetInt32(), questRecord.RewardFactionOverride2().GetInt32(),
80 questRecord.RewardFactionOverride3().GetInt32(), questRecord.RewardFactionOverride4().GetInt32(), questRecord.RewardFactionOverride5().GetInt32() }),
81 RewardFactionCapIn({ questRecord.RewardFactionCapIn1().GetInt32(), questRecord.RewardFactionCapIn2().GetInt32(),
82 questRecord.RewardFactionCapIn3().GetInt32(), questRecord.RewardFactionCapIn4().GetInt32(), questRecord.RewardFactionCapIn5().GetInt32() }),
83 RewardCurrencyId({ questRecord.RewardCurrencyID1().GetUInt32(), questRecord.RewardCurrencyID2().GetUInt32(),
84 questRecord.RewardCurrencyID3().GetUInt32(), questRecord.RewardCurrencyID4().GetUInt32() }),
85 RewardCurrencyCount({ questRecord.RewardCurrencyQty1().GetUInt32(), questRecord.RewardCurrencyQty2().GetUInt32(),
86 questRecord.RewardCurrencyQty3().GetUInt32(), questRecord.RewardCurrencyQty4().GetUInt32() }),
87 _rewItemsCount(std::ranges::count_if(RewardItemId, [](
uint32 itemId) {
return itemId != 0; })),
88 _rewChoiceItemsCount(std::ranges::count_if(RewardChoiceItemId, [](
uint32 itemId) {
return itemId != 0; })),
89 _id(questRecord.ID().GetUInt32()),
90 _type(questRecord.QuestType().GetUInt8()),
91 _packageID(questRecord.QuestPackageID().GetUInt32()),
92 _contentTuningID(questRecord.ContentTuningID().GetInt32()),
93 _questSortID(questRecord.QuestSortID().GetInt16()),
94 _questInfoID(questRecord.QuestInfoID().GetUInt16()),
95 _suggestedPlayers(questRecord.SuggestedGroupNum().GetUInt8()),
96 _nextQuestInChain(questRecord.RewardNextQuest().GetUInt32()),
97 _rewardXPDifficulty(questRecord.RewardXPDifficulty().GetUInt32()),
98 _rewardXPMultiplier(questRecord.RewardXPMultiplier().GetFloat()),
99 _rewardMoneyDifficulty(questRecord.RewardMoneyDifficulty().GetUInt32()),
100 _rewardMoneyMultiplier(questRecord.RewardMoneyMultiplier().GetFloat()),
101 _rewardBonusMoney(questRecord.RewardBonusMoney().GetUInt32()),
102 _rewardSpell(questRecord.RewardSpell().GetUInt32()),
103 _rewardHonor(questRecord.RewardHonor().GetUInt32()),
104 _rewardKillHonor(questRecord.RewardKillHonor().GetUInt32()),
105 _rewardFavor(questRecord.RewardFavor().GetInt32()),
106 _rewardArtifactXPDifficulty(questRecord.RewardArtifactXPDifficulty().GetUInt32()),
107 _rewardArtifactXPMultiplier(questRecord.RewardArtifactXPMultiplier().GetFloat()),
108 _rewardArtifactCategoryID(questRecord.RewardArtifactCategoryID().GetUInt32()),
109 _sourceItemId(questRecord.StartItem().GetUInt32()),
110 _flags(questRecord.Flags().GetUInt32()),
111 _flagsEx(questRecord.FlagsEx().GetUInt32()),
112 _flagsEx2(questRecord.FlagsEx2().GetUInt32()),
113 _flagsEx3(questRecord.FlagsEx3().GetUInt32()),
114 _poiContinent(questRecord.POIContinent().GetUInt32()),
115 _poix(questRecord.POIx().GetFloat()),
116 _poiy(questRecord.POIy().GetFloat()),
117 _poiPriority(questRecord.POIPriority().GetUInt32()),
118 _rewardTitleId(questRecord.RewardTitle().GetUInt32()),
119 _rewardArenaPoints(questRecord.RewardArenaPoints().GetUInt32()),
120 _rewardSkillId(questRecord.RewardSkillLineID().GetUInt32()),
121 _rewardSkillPoints(questRecord.RewardNumSkillUps().GetUInt32()),
122 _questGiverPortrait(questRecord.PortraitGiver().GetUInt32()),
123 _questGiverPortraitMount(questRecord.PortraitGiverMount().GetUInt32()),
124 _questGiverPortraitModelSceneId(questRecord.PortraitGiverModelSceneID().GetInt32()),
125 _questTurnInPortrait(questRecord.PortraitTurnIn().GetUInt32()),
126 _rewardReputationMask(questRecord.RewardFactionFlags().GetUInt32()),
127 _soundAccept(questRecord.AcceptedSoundKitID().GetUInt32()),
128 _soundTurnIn(questRecord.CompleteSoundKitID().GetUInt32()),
129 _areaGroupID(questRecord.AreaGroupID().GetUInt32()),
130 _limitTime(questRecord.TimeAllowed().GetInt64()),
131 _allowableRaces({ .RawValue = advstd::bit_cast<std::array<int32, 2>>(questRecord.AllowableRaces().GetUInt64()) }),
132 _expansion(questRecord.Expansion().GetInt32()),
133 _managedWorldStateID(questRecord.ManagedWorldStateID().GetInt32()),
134 _questSessionBonus(questRecord.QuestSessionBonus().GetInt32()),
135 _logTitle(questRecord.LogTitle().GetStringView()),
136 _logDescription(questRecord.LogDescription().GetStringView()),
137 _questDescription(questRecord.QuestDescription().GetStringView()),
138 _areaDescription(questRecord.AreaDescription().GetStringView()),
139 _portraitGiverText(questRecord.PortraitGiverText().GetStringView()),
140 _portraitGiverName(questRecord.PortraitGiverName().GetStringView()),
141 _portraitTurnInText(questRecord.PortraitTurnInText().GetStringView()),
142 _portraitTurnInName(questRecord.PortraitTurnInName().GetStringView()),
143 _questCompletionLog(questRecord.QuestCompletionLog().GetStringView()),
144 _resetByScheduler(questRecord.ResetByScheduler().GetBool())
668 response.
Allow =
true;
682 std::string_view content = text.Text[LOCALE_enUS];
683 ObjectMgr::GetLocaleString(text.Text, loc, content);
684 return { .PlayerConditionID = text.PlayerConditionId, .QuestGiverCreatureID = text.QuestgiverCreatureId, .Text = content };
689 std::string_view content = text.Text[LOCALE_enUS];
690 ObjectMgr::GetLocaleString(text.Text, loc, content);
691 return { .PlayerConditionID = text.PlayerConditionId, .QuestGiverCreatureID = text.QuestgiverCreatureId, .Text = content };
710 response.Info.QuestID = GetQuestId();
711 response.Info.QuestType = GetQuestType();
712 response.Info.ContentTuningID = GetContentTuningId();
713 response.Info.QuestPackageID = GetQuestPackageID();
714 response.Info.QuestSortID = GetZoneOrSort();
715 response.Info.QuestInfoID = GetQuestInfoID();
716 response.Info.SuggestedGroupNum = GetSuggestedPlayers();
717 response.Info.RewardNextQuest = GetNextQuestInChain();
718 response.Info.RewardXPDifficulty = GetXPDifficulty();
719 response.Info.RewardXPMultiplier = GetXPMultiplier();
722 response.Info.RewardMoney = player ? player->GetQuestMoneyReward(
this) : GetMaxMoneyReward();
724 response.Info.RewardMoneyDifficulty = GetRewMoneyDifficulty();
725 response.Info.RewardMoneyMultiplier = GetMoneyMultiplier();
726 response.Info.RewardBonusMoney = GetRewMoneyMaxLevel();
730 rewardDisplaySpell.
SpellID = displaySpell.SpellId;
732 rewardDisplaySpell.
Type =
int32(displaySpell.Type);
735 response.Info.RewardSpell = GetRewSpell();
737 response.Info.RewardHonor = GetRewHonor();
738 response.Info.RewardKillHonor = GetRewKillHonor();
740 response.Info.RewardFavor = GetRewardFavor();
742 response.Info.RewardArtifactXPDifficulty = GetArtifactXPDifficulty();
743 response.Info.RewardArtifactXPMultiplier = GetArtifactXPMultiplier();
744 response.Info.RewardArtifactCategoryID = GetArtifactCategoryId();
746 response.Info.StartItem = GetSrcItemId();
747 response.Info.Flags = GetFlags();
748 response.Info.FlagsEx = GetFlagsEx();
749 response.Info.FlagsEx2 = GetFlagsEx2();
750 response.Info.FlagsEx3 = GetFlagsEx3();
751 response.Info.RewardTitle = GetRewTitle();
752 response.Info.RewardArenaPoints = GetRewArenaPoints();
753 response.Info.RewardSkillLineID = GetRewardSkillId();
754 response.Info.RewardNumSkillUps = GetRewardSkillPoints();
755 response.Info.RewardFactionFlags = GetRewardReputationMask();
756 response.Info.PortraitGiver = GetQuestGiverPortrait();
757 response.Info.PortraitGiverMount = GetQuestGiverPortraitMount();
758 response.Info.PortraitGiverModelSceneID = GetQuestGiverPortraitModelSceneId();
759 response.Info.PortraitTurnIn = GetQuestTurnInPortrait();
763 response.Info.ItemDrop[i] = ItemDrop[i];
764 response.Info.ItemDropQuantity[i] = ItemDropQuantity[i];
771 response.Info.RewardItems[i] = RewardItemId[i];
772 response.Info.RewardAmount[i] = RewardItemCount[i];
776 response.Info.UnfilteredChoiceItems[i].ItemID = RewardChoiceItemId[i];
777 response.Info.UnfilteredChoiceItems[i].Quantity = RewardChoiceItemCount[i];
783 response.Info.RewardFactionID[i] = RewardFactionId[i];
784 response.Info.RewardFactionValue[i] = RewardFactionValue[i];
785 response.Info.RewardFactionOverride[i] = RewardFactionOverride[i];
786 response.Info.RewardFactionCapIn[i] = RewardFactionCapIn[i];
789 response.Info.POIContinent = GetPOIContinent();
790 response.Info.POIx = GetPOIx();
791 response.Info.POIy = GetPOIy();
792 response.Info.POIPriority = GetPOIPriority();
794 response.Info.AllowableRaces = GetAllowableRaces();
795 response.Info.TreasurePickerID = GetTreasurePickerId();
796 response.Info.Expansion = GetExpansion();
797 response.Info.ManagedWorldStateID = GetManagedWorldStateId();
798 response.Info.QuestSessionBonus = 0;
799 response.Info.QuestGiverCreatureID = 0;
800 response.Info.RewardHouseRoomIDs = GetRewardHouseRoomIds();
801 response.Info.RewardHouseDecorIDs = GetRewardRewardHouseDecorIds();
803 response.Info.Objectives.resize(GetObjectives().
size());
804 for (std::size_t i = 0; i < GetObjectives().size(); ++i)
809 responseObjective.
ID = questObjective.
ID;
811 responseObjective.
Type = questObjective.
Type;
816 responseObjective.
Flags = questObjective.
Flags;
833 response.Info.RewardCurrencyID[i] = RewardCurrencyId[i];
834 response.Info.RewardCurrencyQty[i] = RewardCurrencyCount[i];
837 response.Info.AcceptedSoundKitID = GetSoundAccept();
838 response.Info.CompleteSoundKitID = GetSoundTurnIn();
839 response.Info.AreaGroupID = GetAreaGroupID();
840 response.Info.TimeAllowed = GetLimitTime();
841 response.Info.ResetByScheduler = IsResetByScheduler();
844 response.ShrinkToFit();
845 return response.Move();