42 lookupData.
Data.emplace();
43 if (lookupData.
Data->Initialize(guid, player))
87 TC_LOG_DEBUG(
"network",
"WORLD: Sent SMSG_QUERY_CREATURE_RESPONSE");
96 TC_LOG_DEBUG(
"network",
"WORLD: Sent SMSG_QUERY_CREATURE_RESPONSE");
112 TC_LOG_DEBUG(
"network",
"WORLD: Sent SMSG_GAMEOBJECT_QUERY_RESPONSE");
116 TC_LOG_DEBUG(
"network",
"WORLD: CMSG_GAMEOBJECT_QUERY - Missing gameobject info for (ENTRY: {})", packet.
GameObjectID);
122 TC_LOG_DEBUG(
"network",
"WORLD: Sent SMSG_GAMEOBJECT_QUERY_RESPONSE");
132 packet.
Valid =
false;
151 if (corpseMapEntry->IsDungeon() && corpseMapEntry->CorpseMapID >= 0)
154 if (std::shared_ptr<TerrainInfo> entranceTerrain =
sTerrainMgr.LoadTerrain(corpseMapEntry->CorpseMapID))
156 mapID = corpseMapEntry->CorpseMapID;
157 x = corpseMapEntry->Corpse.X;
158 y = corpseMapEntry->Corpse.Y;
168 packet.
MapID = corpseMapID;
191 response.
Allow =
true;
196 TC_LOG_ERROR(
"sql.sql",
"HandleNpcTextQueryOpcode: no BroadcastTextID found for text {} in `npc_text table`", packet.
TextID);
226 response.
Pages.push_back(page);
241 Corpse* corpse = player->GetCorpse();
266 questCompletionNPC.
QuestID = questID;
268 for (
auto const& creatures :
sObjectMgr->GetCreatureQuestInvolvedRelationReverseBounds(questID))
269 questCompletionNPC.
NPCs.push_back(creatures.second);
271 for (
auto const& gos :
sObjectMgr->GetGOQuestInvolvedRelationReverseBounds(questID))
272 questCompletionNPC.
NPCs.push_back(gos.second | 0x80000000);
286 std::unordered_set<int32> questIds;
292 for (
uint32 questId : questIds)
308 queryItemTextResponse.
Id = itemTextQuery.
Id;
312 queryItemTextResponse.
Valid =
true;
313 queryItemTextResponse.
Item.
Text = item->GetText();
DB2Storage< MapEntry > sMapStore("Map.db2", &MapLoadInfo::Instance)
#define TC_LOG_DEBUG(filterType__,...)
#define TC_LOG_ERROR(filterType__,...)
#define MAX_NPC_TEXT_OPTIONS
#define MAX_QUEST_LOG_SIZE
Difficulty GetDifficultyID() const
static ObjectGuid const Empty
std::string ToString() const
static std::string_view GetLocaleString(std::vector< std::string > const &data, LocaleConstant locale)
static ObjectGuid GetGUID(Object const *o)
bool IsInSameRaidWith(Player const *p) const
uint16 FindQuestSlot(uint32 quest_id) const
WorldLocation GetCorpseLocation() const
Item * GetItemByGuid(ObjectGuid guid) const
constexpr uint32 GetMapId() const
Position const & GetTransOffset() const
PhaseShift & GetPhaseShift()
virtual ObjectGuid GetTransGUID() const
float GetTransOffsetO() const
WorldPacket const * Write() override
TaggedPosition<::Position::XYZ > Position
TaggedPosition<::Position::XYZ > Position
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
std::array< float, MAX_NPC_TEXT_OPTIONS > Probabilities
std::array< uint32, MAX_NPC_TEXT_OPTIONS > BroadcastTextID
std::vector< PageTextInfo > Pages
WorldPacket const * Write() override
std::vector< NameCacheLookupResult > Players
WorldPacket const * Write() override
Array< ObjectGuid, 50 > Players
Array< int32, 100 > QuestCompletionNPCs
uint32 VirtualRealmAddress
WorldPacket const * Write() override
std::vector< QuestCompletionNPC > QuestCompletionNPCs
WorldPacket const * Write() override
WorldPacket const * Write() override
std::vector< QuestPOIData const * > QuestPOIDataStats
std::array< int32, 175 > MissingQuestPOIs
WorldPackets::Auth::VirtualRealmNameInfo NameInfo
uint32 VirtualRealmAddress
void HandleQueryCorpseTransport(WorldPackets::Query::QueryCorpseTransport &packet)
void HandleCreatureQuery(WorldPackets::Query::QueryCreature &packet)
Only static data is sent in this packet !!!
void HandleQueryPageText(WorldPackets::Query::QueryPageText &packet)
Only static data is sent in this packet !!!
void HandleQueryQuestCompletionNPCs(WorldPackets::Query::QueryQuestCompletionNPCs &queryQuestCompletionNPCs)
LocaleConstant GetSessionDbLocaleIndex() const
void HandleItemTextQuery(WorldPackets::Query::ItemTextQuery &itemTextQuery)
void BuildNameQueryData(ObjectGuid guid, WorldPackets::Query::NameCacheLookupResult &lookupData)
void HandleGameObjectQueryOpcode(WorldPackets::Query::QueryGameObject &packet)
Only static data is sent in this packet !!!
void HandleNpcTextQueryOpcode(WorldPackets::Query::QueryNPCText &packet)
void SendPacket(WorldPacket const *packet, bool forced=false)
Send a packet to the client.
void HandleQueryPlayerNames(WorldPackets::Query::QueryPlayerNames &queryPlayerNames)
void HandleQueryRealmName(WorldPackets::Query::QueryRealmName &queryRealmName)
void HandleQuestPOIQuery(WorldPackets::Query::QuestPOIQuery &questPoiQuery)
void HandleQueryTimeOpcode(WorldPackets::Query::QueryTime &queryTime)
void SendQueryTimeResponse()
void HandleQueryCorpseLocation(WorldPackets::Query::QueryCorpseLocationFromClient &packet)
uint32 GetVirtualRealmAddress()
@ CONFIG_CACHE_DATA_QUERIES
SystemTimePoint GetSystemTime()
Current chrono system_clock time point.
TC_GAME_API Player * FindConnectedPlayer(ObjectGuid const &)
NpcTextData Data[MAX_NPC_TEXT_OPTIONS]
constexpr float GetPositionX() const
constexpr float GetPositionY() const
constexpr float GetPositionZ() const
std::string RealmNameActual
the name of the realm
std::string RealmNameNormalized
the name of the realm without spaces
bool IsLocal
true if the realm is the same as the account's home realm
Optional< PlayerGuidLookupData > Data
std::vector< int32 > NPCs