perf: skip TestGameCache wait on clustering-only redraws
- SmoothReset now accepts { skipCacheTest = true } to short-circuit the game cache wait and draw-queue drain
- ClusterRedraw passes the flag so icon-cluster and dense-pin-clustering sliders redraw immediately
- QuestieOptionsAdvanced wires the spawn-pin-dedup-radius slider directly to ClusterRedraw instead of the delayed SmoothReset path
This commit is contained in:
@@ -374,7 +374,7 @@ function QuestieOptions.tabs.advanced:Initialize()
|
|||||||
if QuestieDB and QuestieDB.ClearModeCaches then
|
if QuestieDB and QuestieDB.ClearModeCaches then
|
||||||
QuestieDB:ClearModeCaches()
|
QuestieDB:ClearModeCaches()
|
||||||
end
|
end
|
||||||
QuestieOptionsUtils:Delay(0.05, QuestieQuest.SmoothReset, l10n('Setting spawn pin dedup radius to %s : Redrawing!', value))
|
QuestieOptions:ClusterRedraw()
|
||||||
end,
|
end,
|
||||||
},
|
},
|
||||||
learnerCommsIntensity = {
|
learnerCommsIntensity = {
|
||||||
|
|||||||
@@ -118,8 +118,9 @@ end
|
|||||||
|
|
||||||
function QuestieOptions:ClusterRedraw()
|
function QuestieOptions:ClusterRedraw()
|
||||||
Questie:Debug(Questie.DEBUG_INFO, "Clustering changed, redrawing!")
|
Questie:Debug(Questie.DEBUG_INFO, "Clustering changed, redrawing!")
|
||||||
--Redraw clusters here
|
-- Cluster-only changes don't depend on quest log state — skip the
|
||||||
QuestieQuest:SmoothReset();
|
-- TestGameCache wait and draw-queue drain that SmoothReset does.
|
||||||
|
QuestieQuest:SmoothReset({ skipCacheTest = true })
|
||||||
end
|
end
|
||||||
|
|
||||||
---@return table
|
---@return table
|
||||||
|
|||||||
@@ -330,7 +330,10 @@ local function _UpdateSpecials(questId)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function QuestieQuest:SmoothReset()
|
---@param opts? table Options table
|
||||||
|
---@field opts.skipCacheTest boolean If true, skip the TestGameCache wait and draw-queue drain. Use for clustering-only changes that don't depend on quest log state.
|
||||||
|
function QuestieQuest:SmoothReset(opts)
|
||||||
|
opts = opts or {}
|
||||||
Questie:Debug(Questie.DEBUG_DEVELOP, "[QuestieQuest:SmoothReset]")
|
Questie:Debug(Questie.DEBUG_DEVELOP, "[QuestieQuest:SmoothReset]")
|
||||||
if QuestieQuest._isResetting then
|
if QuestieQuest._isResetting then
|
||||||
QuestieQuest._resetAgain = true
|
QuestieQuest._resetAgain = true
|
||||||
@@ -344,6 +347,8 @@ function QuestieQuest:SmoothReset()
|
|||||||
local stepTable = {
|
local stepTable = {
|
||||||
function()
|
function()
|
||||||
-- Wait until game cache has quest log okay.
|
-- Wait until game cache has quest log okay.
|
||||||
|
-- Skipped when opts.skipCacheTest is set (clustering-only redraws).
|
||||||
|
if opts.skipCacheTest then return true end
|
||||||
return QuestLogCache.TestGameCache()
|
return QuestLogCache.TestGameCache()
|
||||||
end,
|
end,
|
||||||
function()
|
function()
|
||||||
|
|||||||
Reference in New Issue
Block a user