aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Server/Packets
diff options
context:
space:
mode:
authorNoName <322016+Faq@users.noreply.github.com>2020-08-19 15:47:55 +0300
committerGitHub <noreply@github.com>2020-08-19 14:47:55 +0200
commit01c7663bdd771b54cbf65e9e3a158a2802ad12d2 (patch)
tree68864f3d7021907ca7d975de9132628968a13e7e /src/server/game/Server/Packets
parent515a34f64f200ea0fb9722914b76ab8abd358891 (diff)
Core/PacketIO: Update SMSG_QUESTGIVER_OFFER_REWARD (#25251)
Co-authored-by: Carbenium <carbenium@outlook.com>
Diffstat (limited to 'src/server/game/Server/Packets')
-rw-r--r--src/server/game/Server/Packets/QuestPackets.cpp60
-rw-r--r--src/server/game/Server/Packets/QuestPackets.h18
2 files changed, 78 insertions, 0 deletions
diff --git a/src/server/game/Server/Packets/QuestPackets.cpp b/src/server/game/Server/Packets/QuestPackets.cpp
index 9bad6dd5b7b..eb937f8052f 100644
--- a/src/server/game/Server/Packets/QuestPackets.cpp
+++ b/src/server/game/Server/Packets/QuestPackets.cpp
@@ -184,3 +184,63 @@ WorldPacket const* WorldPackets::Quest::QuestGiverQuestDetails::Write()
return &_worldPacket;
}
+
+WorldPacket const* WorldPackets::Quest::QuestGiverOfferRewardMessage::Write()
+{
+ _worldPacket << QuestGiverGUID;
+ _worldPacket << uint32(QuestID);
+
+ _worldPacket << Title;
+ _worldPacket << RewardText;
+
+ _worldPacket << uint8(AutoLaunched);
+ _worldPacket << uint32(Flags);
+ _worldPacket << uint32(SuggestedGroupNum);
+
+ _worldPacket << uint32(Emotes.size());
+ for (WorldPackets::Quest::QuestDescEmote const& emote : Emotes)
+ {
+ _worldPacket << uint32(emote.Delay);
+ _worldPacket << uint32(emote.Type);
+ }
+
+ _worldPacket << uint32(Rewards.UnfilteredChoiceItems.size());
+ for (WorldPackets::Quest::QuestChoiceItem const& item : Rewards.UnfilteredChoiceItems)
+ {
+ _worldPacket << uint32(item.ItemID);
+ _worldPacket << uint32(item.Quantity);
+ _worldPacket << uint32(item.DisplayID);
+ }
+
+ _worldPacket << uint32(Rewards.RewardItems.size());
+ for (WorldPackets::Quest::QuestChoiceItem const& item : Rewards.RewardItems)
+ {
+ _worldPacket << uint32(item.ItemID);
+ _worldPacket << uint32(item.Quantity);
+ _worldPacket << uint32(item.DisplayID);
+ }
+
+ _worldPacket << uint32(Rewards.RewardMoney);
+ _worldPacket << uint32(Rewards.RewardXPDifficulty);
+
+ _worldPacket << uint32(Rewards.RewardHonor);
+ _worldPacket << float(Rewards.RewardKillHonor);
+ _worldPacket << uint32(0); // Unknown value. Read in the packet handler but unused
+ _worldPacket << uint32(Rewards.RewardDisplaySpell);
+ _worldPacket << int32(Rewards.RewardSpell);
+ _worldPacket << uint32(Rewards.RewardTitleId);
+ _worldPacket << uint32(Rewards.RewardTalents);
+ _worldPacket << uint32(Rewards.RewardArenaPoints);
+ _worldPacket << uint32(Rewards.RewardFactionFlags);
+
+ for (uint32 factionId : Rewards.RewardFactionID)
+ _worldPacket << uint32(factionId);
+
+ for (uint32 value : Rewards.RewardFactionValue)
+ _worldPacket << int32(value);
+
+ for (uint32 valueOverride : Rewards.RewardFactionValueOverride)
+ _worldPacket << int32(valueOverride);
+
+ return &_worldPacket;
+}
diff --git a/src/server/game/Server/Packets/QuestPackets.h b/src/server/game/Server/Packets/QuestPackets.h
index 1d7248e7d82..073ff6138e6 100644
--- a/src/server/game/Server/Packets/QuestPackets.h
+++ b/src/server/game/Server/Packets/QuestPackets.h
@@ -166,6 +166,24 @@ namespace WorldPackets
QuestRewards Rewards;
std::vector<QuestDescEmote> DescEmotes;
};
+
+ class QuestGiverOfferRewardMessage final : public ServerPacket
+ {
+ public:
+ QuestGiverOfferRewardMessage() : ServerPacket(SMSG_QUEST_GIVER_OFFER_REWARD_MESSAGE, 600) { }
+
+ WorldPacket const* Write() override;
+
+ ObjectGuid QuestGiverGUID;
+ uint32 QuestID = 0;
+ std::string Title;
+ std::string RewardText;
+ bool AutoLaunched = false;
+ uint32 Flags = 0;
+ uint32 SuggestedGroupNum = 0;
+ std::vector<QuestDescEmote> Emotes;
+ QuestRewards Rewards;
+ };
}
}