Core/Quests: send StatusFlags index based to reflect wpp struct

This commit is contained in:
Ovahlord committed 2019-12-18 06:09:01 +01:00
1 parent 39c20cd8be
commit 10062737bc
3 files changed
+10 -6

No files matched your search

@@ -758,10 +758,13 @@ void PlayerMenu::SendQuestGiverRequestItems(Quest const* quest, ObjectGuid npcGU
packet.Currency.emplace_back(quest->RequiredCurrencyId[i], quest->RequiredCurrencyCount[i]);
}
// incomplete: FD
// incomplete quest with item objective but item objective is complete DD
// To-do: validate this. 4.3.4 the packet parser reads this flag as 6 seperate values which seems a bit odd for a bitmask based flag
packet.StatusFlags = canComplete ? 0xFF : 0xFD;
// incomplete: 0
// complete : 2
packet.StatusFlags[0] = canComplete ? 0x2 : 0x0;
packet.StatusFlags[1] = 0x4;
packet.StatusFlags[2] = 0x8;
packet.StatusFlags[3] = 0x10;
packet.StatusFlags[4] = 0x40;
_session->SendPacket(packet.Write());
TC_LOG_DEBUG("network", "WORLD: Sent SMSG_QUEST_GIVER_REQUEST_ITEMS NPC=%s, questid=%u", npcGUID.ToString().c_str(), quest->GetQuestId());
@@ -47,7 +47,8 @@ WorldPacket const* WorldPackets::Quest::QuestGiverRequestItems::Write()
_worldPacket << uint32(cur.Amount);
}
_worldPacket << uint32(StatusFlags);
for (uint8 i = 0; i < 5; i++)
_worldPacket << uint32(StatusFlags[i]);
return &_worldPacket;
}
@@ -57,7 +57,7 @@ namespace WorldPackets
uint32 MoneyToGet = 0;
std::vector<QuestObjectiveCollect> Collect;
std::vector<QuestCurrency> Currency;
uint32 StatusFlags = 0;
uint32 StatusFlags[5] = { };
uint32 QuestFlags = 0;
std::string QuestTitle;
std::string CompletionText;