v1.4.9: Validation fixes, Profiler fix, Quest link duplicate fix, Ascension fixes

This commit is contained in:
Xurkon
2026-03-26 06:47:54 -05:00
parent 284f0c3794
commit 1fc9727fee
194 changed files with 21008 additions and 743 deletions
@@ -1,6 +1,8 @@
-------------------------
--Import modules.
-------------------------
---@type Questie
local Questie = QuestieLoader:ImportModule("Questie");
---@type QuestieQuest
local QuestieQuest = QuestieLoader:ImportModule("QuestieQuest");
---@type QuestieOptions
@@ -15,8 +17,10 @@ local QuestieTracker = QuestieLoader:ImportModule("QuestieTracker");
local IsleOfQuelDanas = QuestieLoader:ImportModule("IsleOfQuelDanas");
---@type l10n
local l10n = QuestieLoader:ImportModule("l10n")
---@type QuestieCompat
local QuestieCompat = QuestieLoader:ImportModule("QuestieCompat")
QuestieOptions.tabs.advanced = {...}
QuestieOptions.tabs.advanced = {}
local optionsDefaults = QuestieOptionsDefaults:Load()
local _GetLanguages
@@ -419,7 +423,71 @@ function QuestieOptions.tabs.advanced:Initialize()
compat_header = {
type = "header",
order = 6,
name = l10n('3.3.5 Compatibility Settings'),
name = "3.3.5 Compatibility Settings",
hidden = function() return not (Questie.IsWotlk or (QuestieCompat and QuestieCompat.Is335)) end,
},
useWotlkMapData = {
type = "toggle",
order = 6.1,
name = "Use WotLK map data",
desc = "Use WotLK map data for exploration and coordinates.",
width = 1.65,
hidden = function() return not (Questie.IsWotlk or (QuestieCompat and QuestieCompat.Is335)) end,
get = function(info) return QuestieOptions:GetProfileValue(info); end,
set = function(info, value)
QuestieOptions:SetProfileValue(info, value)
StaticPopup_Show("QUESTIE_RELOAD")
end,
},
initDelay = {
type = "range",
order = 6.2,
name = "Init rate delay",
desc = "Adjust the initialization rate delay (seconds) for slower systems.",
width = 1.65,
min = 0.01,
max = 0.5,
step = 0.01,
hidden = function() return not (Questie.IsWotlk or (QuestieCompat and QuestieCompat.Is335)) or not Questie.db.profile.debugEnabled end,
get = function(info) return Questie.db.profile.initDelay or 0.05; end,
set = function(info, value)
Questie.db.profile.initDelay = value
end,
},
resetDailyQuests = {
type = "toggle",
order = 6.3,
name = "Reset Daily Quests",
desc = "Force a daily quest reset check.",
width = 1.65,
hidden = function() return not (Questie.IsWotlk or (QuestieCompat and QuestieCompat.Is335)) end,
get = function(info) return QuestieOptions:GetProfileValue(info); end,
set = function(info, value)
QuestieOptions:SetProfileValue(info, value)
Questie.db.profile.dailyResetTime = nil
StaticPopup_Show("QUESTIE_RELOAD")
end,
},
weeklyResetDay = {
type = "select",
order = 6.4,
values = {
[1] = "Sunday",
[2] = "Monday",
[3] = "Tuesday",
[4] = "Wednesday",
[5] = "Thursday",
[6] = "Friday",
[7] = "Saturday",
},
style = 'dropdown',
name = "Weekly Reset Day",
disabled = function() return not Questie.db.profile.resetDailyQuests end,
hidden = function() return not (Questie.IsWotlk or (QuestieCompat and QuestieCompat.Is335)) end,
get = function(info) return QuestieOptions:GetProfileValue(info) or 3; end,
set = function(info, value)
QuestieOptions:SetProfileValue(info, value)
end,
},
},
@@ -35,7 +35,7 @@ local function GetLearnedCounts()
if not bucket then return none end
local function Count(t)
if not t then return 0 end
local n = 0; for _ in pairs(t) do n = n + 1 end; return n
local n = 0; local k, _ = next(t); while k do n = n + 1; k, _ = next(t, k) end; return n
end
local s = {
npcs = Count(bucket.npcs),
@@ -448,6 +448,7 @@ function QuestieOptions.tabs.database:Initialize()
name = function() return l10n("Contribute") end,
},
submit_desc = {
type = "description",
order = 6.1,
@@ -501,7 +502,8 @@ function QuestieOptions.tabs.database:Initialize()
local output = ""
local hasPlugins = false
for pluginName, plugin in pairs(QuestiePluginAPI.registeredPlugins) do
local pluginName, plugin = next(QuestiePluginAPI.registeredPlugins)
while pluginName do
hasPlugins = true
local q, n, o, i = GetPluginCounts(pluginName, plugin.stats or {})
output = output .. "|cFF5EBAF3[Questie-" .. pluginName .. "]|r"
@@ -509,6 +511,7 @@ function QuestieOptions.tabs.database:Initialize()
output = output .. " NPCs: |cFFFFD700" .. tostring(n) .. "|r"
output = output .. " Objects: |cFFFFD700" .. tostring(o) .. "|r"
output = output .. " Items: |cFFFFD700" .. tostring(i) .. "|r\n"
pluginName, plugin = next(QuestiePluginAPI.registeredPlugins, pluginName)
end
if not hasPlugins then
@@ -204,17 +204,20 @@ function QuestieOptions.tabs.general:Initialize()
desc = function() return l10n('Toggles the default Instant Quest Text option. This is just a shortcut for the WoW option in Interface.'); end,
width = 1.55,
get = function()
if GetCVar("instantQuestText") == '1' then
local val = GetCVar("instantQuestText")
if val == '1' then
return true;
else
return false;
end
end,
set = function(info, value)
if value then
SetCVar("instantQuestText", 1);
else
SetCVar("instantQuestText", 0);
if GetCVar("instantQuestText") ~= nil then
if value then
SetCVar("instantQuestText", "1");
else
SetCVar("instantQuestText", "0");
end
end
end,
},