From 5a7822282f2e96304892376343e5f8f5c9334d8f Mon Sep 17 00:00:00 2001 From: ZhengPeiRu21 <98835050+ZhengPeiRu21@users.noreply.github.com> Date: Tue, 1 Nov 2022 03:22:09 -0600 Subject: [PATCH] feat(Core): Config to disable all Wintergrasp processing (#13086) * feat(Core): Config to disable all Wintergrasp processing * Use 2 instead of -1 - configs are parsed as uint * Fix build warnings --- src/server/apps/worldserver/worldserver.conf.dist | 5 +++-- src/server/game/Battlefield/BattlefieldMgr.cpp | 6 ++++++ src/server/game/Battlefield/Zones/BattlefieldWG.cpp | 2 +- src/server/game/Entities/Player/Player.cpp | 2 +- src/server/game/Spells/SpellMgr.cpp | 2 +- src/server/game/World/IWorld.h | 2 +- src/server/game/World/World.cpp | 2 +- src/server/scripts/Northrend/zone_wintergrasp.cpp | 2 +- 8 files changed, 15 insertions(+), 8 deletions(-) diff --git a/src/server/apps/worldserver/worldserver.conf.dist b/src/server/apps/worldserver/worldserver.conf.dist index 93a40d63f..53b86d5c7 100644 --- a/src/server/apps/worldserver/worldserver.conf.dist +++ b/src/server/apps/worldserver/worldserver.conf.dist @@ -2919,8 +2919,9 @@ Battleground.SpeedBuffRespawn = 150 # # Wintergrasp.Enable # Description: Enable the Wintergrasp battlefield. -# Default: 0 - (Disabled) -# 1 - (Enabled, Experimental as of still being in development) +# Default: 1 - (Enabled, Experimental as of still being in development) +# 0 - (Battleground disabled, Wintergrasp world processing still occurs) +# 2 - (Disable all Wintergrasp processing) Wintergrasp.Enable = 1 diff --git a/src/server/game/Battlefield/BattlefieldMgr.cpp b/src/server/game/Battlefield/BattlefieldMgr.cpp index 39335e435..ac8760935 100644 --- a/src/server/game/Battlefield/BattlefieldMgr.cpp +++ b/src/server/game/Battlefield/BattlefieldMgr.cpp @@ -40,6 +40,12 @@ BattlefieldMgr* BattlefieldMgr::instance() void BattlefieldMgr::InitBattlefield() { + if (sWorld->getIntConfig(CONFIG_WINTERGRASP_ENABLE) == 2) + { + LOG_INFO("server.loading", "Battlefield: Wintergrasp is disabled."); + LOG_INFO("server.loading", " "); + return; + } Battlefield* pBf = new BattlefieldWG; // respawn, init variables if (!pBf->SetupBattlefield()) diff --git a/src/server/game/Battlefield/Zones/BattlefieldWG.cpp b/src/server/game/Battlefield/Zones/BattlefieldWG.cpp index 71a41bc41..fdce52068 100644 --- a/src/server/game/Battlefield/Zones/BattlefieldWG.cpp +++ b/src/server/game/Battlefield/Zones/BattlefieldWG.cpp @@ -50,7 +50,7 @@ bool BattlefieldWG::SetupBattlefield() InitStalker(BATTLEFIELD_WG_NPC_STALKER, WintergraspStalkerPos[0], WintergraspStalkerPos[1], WintergraspStalkerPos[2], WintergraspStalkerPos[3]); m_MaxPlayer = sWorld->getIntConfig(CONFIG_WINTERGRASP_PLR_MAX); - m_IsEnabled = sWorld->getBoolConfig(CONFIG_WINTERGRASP_ENABLE); + m_IsEnabled = sWorld->getIntConfig(CONFIG_WINTERGRASP_ENABLE) == 1; m_MinPlayer = sWorld->getIntConfig(CONFIG_WINTERGRASP_PLR_MIN); m_MinLevel = sWorld->getIntConfig(CONFIG_WINTERGRASP_PLR_MIN_LVL); m_BattleTime = sWorld->getIntConfig(CONFIG_WINTERGRASP_BATTLETIME) * MINUTE * IN_MILLISECONDS; diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index c79d6f1e1..4057ed781 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -8698,7 +8698,7 @@ void Player::SendBGWeekendWorldStates() void Player::SendBattlefieldWorldStates() { /// Send misc stuff that needs to be sent on every login, like the battle timers. - if (sWorld->getBoolConfig(CONFIG_WINTERGRASP_ENABLE)) + if (sWorld->getIntConfig(CONFIG_WINTERGRASP_ENABLE) == 1) { if (BattlefieldWG* wg = (BattlefieldWG*)sBattlefieldMgr->GetBattlefieldByBattleId(BATTLEFIELD_BATTLEID_WG)) { diff --git a/src/server/game/Spells/SpellMgr.cpp b/src/server/game/Spells/SpellMgr.cpp index eb474c22c..26d5a407f 100644 --- a/src/server/game/Spells/SpellMgr.cpp +++ b/src/server/game/Spells/SpellMgr.cpp @@ -1143,7 +1143,7 @@ bool SpellArea::IsFitToRequirements(Player const* player, uint32 newZone, uint32 if (!player) return false; - if (!sWorld->getBoolConfig(CONFIG_WINTERGRASP_ENABLE)) + if (sWorld->getIntConfig(CONFIG_WINTERGRASP_ENABLE) != 1) return false; Battlefield* Bf = sBattlefieldMgr->GetBattlefieldByBattleId(BATTLEFIELD_BATTLEID_WG); diff --git a/src/server/game/World/IWorld.h b/src/server/game/World/IWorld.h index ce2b13faf..2fca26a2a 100644 --- a/src/server/game/World/IWorld.h +++ b/src/server/game/World/IWorld.h @@ -139,7 +139,6 @@ enum WorldBoolConfigs CONFIG_ALLOW_TICKETS, CONFIG_DELETE_CHARACTER_TICKET_TRACE, CONFIG_PRESERVE_CUSTOM_CHANNELS, - CONFIG_WINTERGRASP_ENABLE, CONFIG_PDUMP_NO_PATHS, CONFIG_PDUMP_NO_OVERWRITE, CONFIG_ENABLE_MMAPS, // pussywizard @@ -312,6 +311,7 @@ enum WorldIntConfigs CONFIG_BATTLEGROUND_SPEED_BUFF_RESPAWN, CONFIG_BATTLEGROUND_QUEUE_ANNOUNCER_LIMIT_MIN_LEVEL, CONFIG_BATTLEGROUND_QUEUE_ANNOUNCER_LIMIT_MIN_PLAYERS, + CONFIG_WINTERGRASP_ENABLE, CONFIG_ARENA_MAX_RATING_DIFFERENCE, CONFIG_ARENA_RATING_DISCARD_TIMER, CONFIG_ARENA_PREV_OPPONENTS_DISCARD_TIMER, diff --git a/src/server/game/World/World.cpp b/src/server/game/World/World.cpp index a178af405..12630c7ac 100644 --- a/src/server/game/World/World.cpp +++ b/src/server/game/World/World.cpp @@ -1384,7 +1384,7 @@ void World::LoadConfigSettings(bool reload) MMAP::MMapFactory::InitializeDisabledMaps(); // Wintergrasp - m_bool_configs[CONFIG_WINTERGRASP_ENABLE] = sConfigMgr->GetOption("Wintergrasp.Enable", false); + m_int_configs[CONFIG_WINTERGRASP_ENABLE] = sConfigMgr->GetOption("Wintergrasp.Enable", 1); m_int_configs[CONFIG_WINTERGRASP_PLR_MAX] = sConfigMgr->GetOption("Wintergrasp.PlayerMax", 100); m_int_configs[CONFIG_WINTERGRASP_PLR_MIN] = sConfigMgr->GetOption("Wintergrasp.PlayerMin", 0); m_int_configs[CONFIG_WINTERGRASP_PLR_MIN_LVL] = sConfigMgr->GetOption("Wintergrasp.PlayerMinLvl", 77); diff --git a/src/server/scripts/Northrend/zone_wintergrasp.cpp b/src/server/scripts/Northrend/zone_wintergrasp.cpp index 3ba339792..143584180 100644 --- a/src/server/scripts/Northrend/zone_wintergrasp.cpp +++ b/src/server/scripts/Northrend/zone_wintergrasp.cpp @@ -350,7 +350,7 @@ public: void UpdateAI(uint32 diff) override { - if (!sWorld->getBoolConfig(CONFIG_WINTERGRASP_ENABLE)) + if (sWorld->getIntConfig(CONFIG_WINTERGRASP_ENABLE) != 1) return; ScriptedAI::UpdateAI(diff);