From f01459553fd7e18bb2642257c17c9ce8db4f5762 Mon Sep 17 00:00:00 2001 From: ZhengPeiRu21 <98835050+ZhengPeiRu21@users.noreply.github.com> Date: Tue, 13 Sep 2022 18:40:27 -0600 Subject: [PATCH] feat(Core): Hide Quest Sparkle Config Option (#13005) --- src/server/apps/worldserver/worldserver.conf.dist | 8 ++++++++ src/server/game/Entities/GameObject/GameObject.cpp | 8 ++++++-- src/server/game/World/IWorld.h | 1 + src/server/game/World/World.cpp | 2 ++ 4 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/server/apps/worldserver/worldserver.conf.dist b/src/server/apps/worldserver/worldserver.conf.dist index 3e0775842..711c23287 100644 --- a/src/server/apps/worldserver/worldserver.conf.dist +++ b/src/server/apps/worldserver/worldserver.conf.dist @@ -2148,6 +2148,14 @@ Visibility.Notify.Period.OnContinents = 1000 Visibility.Notify.Period.InInstances = 1000 Visibility.Notify.Period.InBGArenas = 1000 +# +# Visibility.ObjectSparkles +# Description: Whether or not to display sparkles on gameobjects related to active quests. +# Default: 1 - (Show Sparkles) +# 0 - (Hide Sparkles) + +Visibility.ObjectSparkles = 1 + # ################################################################################################### diff --git a/src/server/game/Entities/GameObject/GameObject.cpp b/src/server/game/Entities/GameObject/GameObject.cpp index dfc3b0628..ee9f7e7f7 100644 --- a/src/server/game/Entities/GameObject/GameObject.cpp +++ b/src/server/game/Entities/GameObject/GameObject.cpp @@ -2787,13 +2787,17 @@ void GameObject::BuildValuesUpdate(uint8 updateType, ByteBuffer* data, Player* t case GAMEOBJECT_TYPE_CHEST: case GAMEOBJECT_TYPE_GOOBER: if (ActivateToQuest(target)) - dynFlags |= GO_DYNFLAG_LO_ACTIVATE | GO_DYNFLAG_LO_SPARKLE; + { + dynFlags |= GO_DYNFLAG_LO_ACTIVATE; + if (sWorld->getBoolConfig(CONFIG_OBJECT_SPARKLES)) + dynFlags |= GO_DYNFLAG_LO_SPARKLE; + } else if (targetIsGM) dynFlags |= GO_DYNFLAG_LO_ACTIVATE; break; case GAMEOBJECT_TYPE_SPELL_FOCUS: case GAMEOBJECT_TYPE_GENERIC: - if (ActivateToQuest(target)) + if (ActivateToQuest(target) && sWorld->getBoolConfig(CONFIG_OBJECT_SPARKLES)) dynFlags |= GO_DYNFLAG_LO_SPARKLE; break; case GAMEOBJECT_TYPE_TRANSPORT: diff --git a/src/server/game/World/IWorld.h b/src/server/game/World/IWorld.h index d11cb91ae..48da90242 100644 --- a/src/server/game/World/IWorld.h +++ b/src/server/game/World/IWorld.h @@ -176,6 +176,7 @@ enum WorldBoolConfigs CONFIG_MISS_CHANCE_MULTIPLIER_ONLY_FOR_PLAYERS, CONFIG_LEAVE_GROUP_ON_LOGOUT, CONFIG_VMAP_BLIZZLIKE_PVP_LOS, + CONFIG_OBJECT_SPARKLES, BOOL_CONFIG_VALUE_COUNT }; diff --git a/src/server/game/World/World.cpp b/src/server/game/World/World.cpp index d4a4a2b89..82c25842a 100644 --- a/src/server/game/World/World.cpp +++ b/src/server/game/World/World.cpp @@ -941,6 +941,8 @@ void World::LoadConfigSettings(bool reload) m_int_configs[CONFIG_GROUP_VISIBILITY] = sConfigMgr->GetOption("Visibility.GroupMode", 1); + m_bool_configs[CONFIG_OBJECT_SPARKLES] = sConfigMgr->GetOption("Visibility.ObjectSparkles", true); + m_int_configs[CONFIG_MAIL_DELIVERY_DELAY] = sConfigMgr->GetOption("MailDeliveryDelay", HOUR); m_int_configs[CONFIG_UPTIME_UPDATE] = sConfigMgr->GetOption("UpdateUptimeInterval", 10);