Skip to content

Commit 6759f3e

Browse files
committed
fix most issues with switching recorded leveling builds
1 parent 433e565 commit 6759f3e

File tree

2 files changed

+17
-15
lines changed

2 files changed

+17
-15
lines changed

TalentTreeViewer/TalentViewer.lua

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -572,8 +572,7 @@ function TalentViewer:ClearLevelingBuild()
572572
table.insert(self.levelingBuilds[self.selectedSpecId], info);
573573
self.recordingInfo.buildID = #self.levelingBuilds[self.selectedSpecId];
574574

575-
self:RecalculateCurrentStartingOffsets();
576-
self:GetTalentFrame():SetLevelingBuildID(self.recordingInfo.buildID);
575+
self:StartRecordingLevelingBuild();
577576
end
578577

579578
function TalentViewer:IsRecordingLevelingBuild()
@@ -700,12 +699,12 @@ function TalentViewer:InitLevelingBuildUIs()
700699
end,
701700
});
702701
end
703-
for buildID, buildEntries in ipairs(self.levelingBuilds[self.selectedSpecId] or {}) do
702+
for buildID, buildInfo in ipairs(self.levelingBuilds[self.selectedSpecId] or {}) do
704703
table.insert(menu, {
705704
text = string.format(
706705
'Leveling build %d (%d points spent)',
707706
buildID,
708-
#buildEntries
707+
#buildInfo.entries[1] + #buildInfo.entries[2]
709708
),
710709
func = function(_, buildID)
711710
self:ApplyLevelingBuild(buildID, currentValue, true);

TalentTreeViewer/TalentViewerUIMixin.lua

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -745,7 +745,7 @@ function TalentViewerUIMixin:UpdateLevelingBuildHighlights()
745745
end
746746
end
747747

748-
--- @return nil|TalentViewer_LevelingBuildEntry[]
748+
--- @return nil|table<number, TalentViewer_LevelingBuildEntry> # [level] = entry
749749
function TalentViewerUIMixin:GetLevelingBuildInfo(buildID)
750750
return TalentViewer:GetLevelingBuild(buildID);
751751
end
@@ -754,9 +754,10 @@ function TalentViewerUIMixin:GetNextLevelingBuildPurchase(buildID)
754754
local info = self:GetLevelingBuildInfo(buildID);
755755
if not info then return; end
756756

757-
for _, entryInfo in ipairs(info) do
758-
local nodeInfo = self:GetAndCacheNodeInfo(entryInfo.nodeID);
759-
if nodeInfo.ranksPurchased < entryInfo.targetRank then
757+
for i = 10, ns.MAX_LEVEL do
758+
local entryInfo = info[i];
759+
local nodeInfo = entryInfo and self:GetAndCacheNodeInfo(entryInfo.nodeID);
760+
if nodeInfo and nodeInfo.ranksPurchased < entryInfo.targetRank then
760761
return entryInfo.nodeID, entryInfo.entryID;
761762
end
762763
end
@@ -802,14 +803,16 @@ function TalentViewerUIMixin:ApplyLevelingBuild(level, lockLevelingBuild)
802803
end
803804
end
804805

805-
--- @type table<number, number[]>
806-
local byNodes = {};
807-
for index, entry in ipairs(info) do
808-
byNodes[entry.nodeID] = byNodes[entry.nodeID] or {};
809-
table.insert(byNodes[entry.nodeID], index);
810-
end
811806
for _, button in ipairs(self.levelingOrderButtons) do
812-
button:SetOrder(byNodes[button:GetParent():GetNodeID()] or {});
807+
button:SetOrder({});
808+
end
809+
for entryLevel = 10, ns.MAX_LEVEL do
810+
local entryInfo = info[entryLevel];
811+
if entryInfo then
812+
local nodeID = entryInfo.nodeID;
813+
local button = self:GetTalentButtonByNodeID(nodeID);
814+
button.LevelingOrder:AppendToOrder(entryLevel);
815+
end
813816
end
814817

815818
self:UpdateTreeCurrencyInfo();

0 commit comments

Comments
 (0)