diff --git a/src/server/apps/worldserver/worldserver.conf.dist b/src/server/apps/worldserver/worldserver.conf.dist index 646d7706b..65b54feb7 100644 --- a/src/server/apps/worldserver/worldserver.conf.dist +++ b/src/server/apps/worldserver/worldserver.conf.dist @@ -2164,6 +2164,14 @@ Visibility.Notify.Period.InBGArenas = 1000 Visibility.ObjectSparkles = 1 +# +# Visibility.ObjectQuestMarkers +# Description: Show quest icons above game objects in the same way as creature quest givers. +# Default: 1 - (Show quest markers, post patch 2.3 behavior) +# 0 - (Hide quest markers, pre patch 2.3 behavior) + +Visibility.ObjectQuestMarkers = 1 + # ################################################################################################### diff --git a/src/server/game/Handlers/QuestHandler.cpp b/src/server/game/Handlers/QuestHandler.cpp index 49e951549..5f2927303 100644 --- a/src/server/game/Handlers/QuestHandler.cpp +++ b/src/server/game/Handlers/QuestHandler.cpp @@ -63,7 +63,10 @@ void WorldSession::HandleQuestgiverStatusQueryOpcode(WorldPacket& recvData) case TYPEID_GAMEOBJECT: { LOG_DEBUG("network", "WORLD: Received CMSG_QUESTGIVER_STATUS_QUERY for GameObject {}", guid.ToString()); - questStatus = _player->GetQuestDialogStatus(questGiver); + if (sWorld->getBoolConfig(CONFIG_OBJECT_QUEST_MARKERS)) + { + questStatus = _player->GetQuestDialogStatus(questGiver); + } break; } default: diff --git a/src/server/game/World/IWorld.h b/src/server/game/World/IWorld.h index ec6a880f9..ce2b13faf 100644 --- a/src/server/game/World/IWorld.h +++ b/src/server/game/World/IWorld.h @@ -177,6 +177,7 @@ enum WorldBoolConfigs CONFIG_LEAVE_GROUP_ON_LOGOUT, CONFIG_VMAP_BLIZZLIKE_PVP_LOS, CONFIG_OBJECT_SPARKLES, + CONFIG_OBJECT_QUEST_MARKERS, BOOL_CONFIG_VALUE_COUNT }; diff --git a/src/server/game/World/World.cpp b/src/server/game/World/World.cpp index 318af1ab6..b0b4a3110 100644 --- a/src/server/game/World/World.cpp +++ b/src/server/game/World/World.cpp @@ -950,6 +950,8 @@ void World::LoadConfigSettings(bool reload) m_bool_configs[CONFIG_OBJECT_SPARKLES] = sConfigMgr->GetOption("Visibility.ObjectSparkles", true); + m_bool_configs[CONFIG_OBJECT_QUEST_MARKERS] = sConfigMgr->GetOption("Visibility.ObjectQuestMarkers", true); + m_int_configs[CONFIG_MAIL_DELIVERY_DELAY] = sConfigMgr->GetOption("MailDeliveryDelay", HOUR); m_int_configs[CONFIG_UPTIME_UPDATE] = sConfigMgr->GetOption("UpdateUptimeInterval", 10);