From 115d0546d253b500b8f459adaedfa6ae29de62e3 Mon Sep 17 00:00:00 2001 From: Grimfeather <88028633+Grimfeather@users.noreply.github.com> Date: Sun, 20 Jul 2025 06:27:43 +0200 Subject: [PATCH] Remove RDF from SimpleConfigOverride config option (#561) removed RDF from the SimpleConfigOverride including it in the SimpleConfigOverride complicates things because if you wanted to enable the RDF you were forced to change several other settings as well. it's all very confusing I'm trying to make it simple. With disableRDF in the Individual Progression config file you can now enable/disable the RDF. that's it. no need to edit the worldserver.conf file for this any more. it's also very clear now when it's disabled. can't even select dungeons anymore. --- conf/individualProgression.conf.dist | 6 ++---- src/IndividualProgression.cpp | 7 ++++++- src/IndividualProgression.h | 2 +- src/IndividualProgressionPlayer.cpp | 31 ---------------------------- 4 files changed, 9 insertions(+), 37 deletions(-) diff --git a/conf/individualProgression.conf.dist b/conf/individualProgression.conf.dist index 7eae4c1..0a8659b 100644 --- a/conf/individualProgression.conf.dist +++ b/conf/individualProgression.conf.dist @@ -168,7 +168,6 @@ IndividualProgression.FishingFix = 1 # Water Breath Timer to 1 Minute (Vanilla value, changed to 3 Minutes in WotLK) # Disable Quest Object sparkle and object quest markers (added in patch 2.3) # Enable PlayerSettings (required by Individual Progression module) -# Disable the LFG tool, aside from special Holiday events otherwise inaccessible # Do not enforce DBC Item Attributes, so that Vanilla item changes can override client values # # Default: 1 - Enabled @@ -294,9 +293,8 @@ IndividualProgression.PvPGearRequirements = 1 # IndividualProgression.DisableRDF # Description: Enable or disable the Random Dungeon Finder feature within the context of Individual Progression. # Queuing for specific dungeons and Holiday Events will still be possible. (Use DungeonFinder.OptionsMask in worldserver.conf to completely disable the LFG tool.) -# Please note that the LFG tool is disabled (except for Holiday events) by default if SimpleConfigOverride is enabled. -# Default: 0 - Enabled -# 1 - Disabled +# Default: 0 - RDF Enabled +# 1 - RDF Disabled # IndividualProgression.DisableRDF = 0 diff --git a/src/IndividualProgression.cpp b/src/IndividualProgression.cpp index 4ab8391..f22f458 100644 --- a/src/IndividualProgression.cpp +++ b/src/IndividualProgression.cpp @@ -307,6 +307,7 @@ private: sIndividualProgression->LoadCustomProgressionEntries(sConfigMgr->GetOption("IndividualProgression.CustomProgression", "")); sIndividualProgression->earlyDungeonSet2 = sConfigMgr->GetOption("IndividualProgression.AllowEarlyDungeonSet2", true); sIndividualProgression->pvpGearRequirements = sConfigMgr->GetOption("IndividualProgression.PvPGearRequirements", true); + sIndividualProgression->DisableRDF = sConfigMgr->GetOption("IndividualProgression.DisableRDF", false); sIndividualProgression->excludeAccounts = sConfigMgr->GetOption("IndividualProgression.ExcludeAccounts", false); sIndividualProgression->excludedAccountsRegex = sConfigMgr->GetOption("IndividualProgression.ExcludedAccountsRegex", ""); } @@ -346,13 +347,17 @@ public: if (sIndividualProgression->simpleConfigOverride) { sWorld->setIntConfig(CONFIG_WATER_BREATH_TIMER, 60000); - sWorld->setIntConfig(CONFIG_LFG_OPTIONSMASK, 4); sWorld->setBoolConfig(CONFIG_OBJECT_QUEST_MARKERS, false); sWorld->setBoolConfig(CONFIG_OBJECT_SPARKLES, false); sWorld->setBoolConfig(CONFIG_PLAYER_SETTINGS_ENABLED, true); sWorld->setBoolConfig(CONFIG_LOW_LEVEL_REGEN_BOOST, false); sWorld->setBoolConfig(CONFIG_DBC_ENFORCE_ITEM_ATTRIBUTES, false); } + + if (sIndividualProgression->DisableRDF) + { + sWorld->setIntConfig(CONFIG_LFG_OPTIONSMASK, 4); + } } }; diff --git a/src/IndividualProgression.h b/src/IndividualProgression.h index 3bda44b..23bf648 100644 --- a/src/IndividualProgression.h +++ b/src/IndividualProgression.h @@ -226,7 +226,7 @@ public: std::map customProgressionMap; questXpMapType questXpMap; float vanillaPowerAdjustment, vanillaHealthAdjustment, tbcPowerAdjustment, tbcHealthAdjustment, vanillaHealingAdjustment, tbcHealingAdjustment, previousGearTuning; - bool enabled, questXpFix, hunterPetLevelFix, enforceGroupRules, fishingFix, simpleConfigOverride, questMoneyAtLevelCap, repeatableVanillaQuestsXp, disableDefaultProgression, earlyDungeonSet2, requireNaxxStrath, pvpGearRequirements, excludeAccounts; + bool enabled, questXpFix, hunterPetLevelFix, enforceGroupRules, fishingFix, simpleConfigOverride, questMoneyAtLevelCap, repeatableVanillaQuestsXp, disableDefaultProgression, earlyDungeonSet2, requireNaxxStrath, pvpGearRequirements, DisableRDF, excludeAccounts; int progressionLimit, startingProgression, tbcRacesProgressionLevel, deathKnightProgressionLevel, deathKnightStartingProgression; std::string excludedAccountsRegex; diff --git a/src/IndividualProgressionPlayer.cpp b/src/IndividualProgressionPlayer.cpp index ad2887b..58afcea 100644 --- a/src/IndividualProgressionPlayer.cpp +++ b/src/IndividualProgressionPlayer.cpp @@ -1019,37 +1019,6 @@ public: } } - void OnPlayerQueueRandomDungeon(Player* player, uint32& rDungeonId) override - { - // List of exceptions for seasonal event dungeons - std::set seasonalEventDungeons = { 285, 286, 287, 288 }; - if (seasonalEventDungeons.find(rDungeonId) != seasonalEventDungeons.end()) - { - return; - } - - // Check if RDF is disabled in the context of Individual Progression - if (sConfigMgr->GetOption("IndividualProgression.DisableRDF", false)) - { - ChatHandler(player->GetSession()).SendNotification("The Random Dungeon feature is currently disabled by the Individual Progression module."); - rDungeonId = 1000; // Set dungeon ID to an invalid value to cancel the queuing - return; - } - - if (!sIndividualProgression->hasPassedProgression(player, PROGRESSION_PRE_TBC) || (!sIndividualProgression->hasPassedProgression(player, PROGRESSION_PRE_TBC) && (player->GetLevel() <= IP_LEVEL_VANILLA))) - { - rDungeonId = RDF_CLASSIC; - } - else if ((rDungeonId == RDF_WRATH_OF_THE_LICH_KING && !sIndividualProgression->hasPassedProgression(player, PROGRESSION_TBC_TIER_5)) || (!sIndividualProgression->hasPassedProgression(player, PROGRESSION_TBC_TIER_5) && (player->GetLevel() <= IP_LEVEL_TBC))) - { - rDungeonId = RDF_THE_BURNING_CRUSADE; - } - else if ((rDungeonId == RDF_WRATH_OF_THE_LICH_KING_HEROIC && !sIndividualProgression->hasPassedProgression(player, PROGRESSION_TBC_TIER_5)) || (!sIndividualProgression->hasPassedProgression(player, PROGRESSION_TBC_TIER_5) && (player->GetLevel() <= IP_LEVEL_TBC))) - { - rDungeonId = RDF_THE_BURNING_CRUSADE_HEROIC; - } - } - bool OnPlayerCanEquipItem(Player* player, uint8 /*slot*/, uint16& /*dest*/, Item* pItem, bool /*swap*/, bool /*not_loading*/) override { if (sIndividualProgression->pvpGearRequirements)