Skip to content

Commit 31e11d6

Browse files
committed
more decoupling and fixes
1 parent af74f5a commit 31e11d6

File tree

5 files changed

+24
-14
lines changed

5 files changed

+24
-14
lines changed

bags/bank.lua

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ function bank.proto:OnShow(ctx)
8080
self.bag.tabs:SetTabByID(ctx, firstTabID)
8181
ctx:Set("filterBagID", firstTabID) -- Set the filter for the initial tab
8282
else
83-
self.bag.bankTab = Enum.BagIndex.Bank
83+
self.bag.bankTab = Enum.BagIndex.Characterbanktab
8484
self.bag.tabs:SetTabByID(ctx, 1)
8585
end
8686
-- Set the active bank type for character bank
@@ -420,7 +420,7 @@ end
420420

421421
---@param ctx Context
422422
function bank.proto:SwitchToBank(ctx)
423-
self.bag.bankTab = Enum.BagIndex.Bank
423+
self.bag.bankTab = Enum.BagIndex.Characterbanktab
424424
BankFrame.selectedTab = 1
425425
self.bag:SetTitle(L:G("Bank"))
426426
self.bag.currentItemCount = -1
@@ -505,14 +505,18 @@ end
505505
---@param ctx Context
506506
function bank.proto:SwitchToBankAndWipe(ctx)
507507
ctx:Set("wipe", true)
508-
self.bag.tabs:SetTabByID(ctx, 1)
509-
self.bag.bankTab = Enum.BagIndex.Bank
508+
-- Set bankTab first to ensure it's always valid for refresh operations
509+
-- Use Characterbanktab as Bank was removed in TWW 11.2
510+
self.bag.bankTab = Enum.BagIndex.Characterbanktab
510511
BankFrame.selectedTab = 1
511512
BankFrame.activeTabIndex = 1
512513
-- Set the active bank type so right-click item movement works correctly
513514
if BankPanel and BankPanel.SetBankType then
514515
BankPanel:SetBankType(Enum.BankType.Character)
515516
end
517+
if self.bag.tabs then
518+
self.bag.tabs:SetTabByID(ctx, 1)
519+
end
516520
self.bag:SetTitle(L:G("Bank"))
517521
items:ClearBankCache(ctx)
518522
self.bag:Wipe(ctx)

data/items.lua

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -567,7 +567,8 @@ function items:RefreshBags(ctx, kind)
567567
end
568568

569569
local filterBagID = ctx:Get("filterBagID")
570-
local reagentBank = addon.isRetail and Enum.BagIndex.Reagentbank or const.BANK_TAB.REAGENT
570+
-- Reagent bank was removed in TWW 11.2 for retail, only exists in classic/era
571+
local reagentBank = not addon.isRetail and const.BANK_TAB.REAGENT or nil
571572
local accountBankStart = addon.isRetail and Enum.BagIndex.AccountBankTab_1 or const.BANK_TAB.ACCOUNT_BANK_1
572573

573574
-- Determine which bank bags to show
@@ -748,13 +749,12 @@ function items:UpdateFreeSlots(ctx, kind)
748749
else
749750
name = C_Item.GetItemSubClassInfo(Enum.ItemClass.Container, 0)
750751
end
751-
if bagid == Enum.BagIndex.Bank or bagid == Enum.BagIndex.Reagentbank then
752-
-- BugFix(https://github.com/Stanzilla/WoWUIBugs/issues/538):
753-
-- There are 4 extra slots in the bank bag in Classic that should not
754-
-- exist. This is a Blizzard bug.
755-
if addon.isClassic then
756-
freeSlots = freeSlots - 4
757-
end
752+
-- BugFix(https://github.com/Stanzilla/WoWUIBugs/issues/538):
753+
-- There are 4 extra slots in the bank bag in Classic that should not
754+
-- exist. This is a Blizzard bug.
755+
-- Note: Enum.BagIndex.Bank and Reagentbank were removed in TWW 11.2
756+
if addon.isClassic and (bagid == Enum.BagIndex.Bank or bagid == Enum.BagIndex.Reagentbank) then
757+
freeSlots = freeSlots - 4
758758
end
759759

760760
if bagid ~= Enum.BagIndex.Keyring then

data/refresh.lua

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,11 @@ function refresh:ExecutePendingUpdates()
146146
refreshCtx:Set('filterBagID', addon.Bags.Bank.bankTab)
147147
else
148148
local currentTab = addon.Bags.Bank.bankTab
149+
-- Guard against nil bankTab (can happen if refresh fires before OnShow completes)
150+
-- Use hardcoded -1 as fallback (bank bag ID) since Enum.BagIndex.Bank may not exist in all contexts
151+
if currentTab == nil then
152+
currentTab = -1
153+
end
149154
accountBankStart = addon.isRetail and Enum.BagIndex.AccountBankTab_1 or 13
150155

151156
if currentTab >= accountBankStart then

frames/bag.lua

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -401,7 +401,7 @@ function bagFrame:Create(ctx, kind)
401401
b.currentItemCount = 0
402402
b.drawOnClose = false
403403
b.drawAfterCombat = false
404-
b.bankTab = addon.isRetail and Enum.BagIndex.Bank or Enum.BagIndex.Characterbanktab
404+
b.bankTab = Enum.BagIndex.Characterbanktab
405405
b.sections = {}
406406
b.toRelease = {}
407407
b.toReleaseSections = {}

util/movementflow.lua

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,8 @@ end
3131
function movementFlow:GetMovementFlow()
3232
-- Fix for retail WoW: use Enum.BagIndex values directly
3333
local accountBankStart = addon.isRetail and Enum.BagIndex.AccountBankTab_1 or const.BANK_TAB.ACCOUNT_BANK_1
34-
local reagentBank = addon.isRetail and Enum.BagIndex.Reagentbank or const.BANK_TAB.REAGENT
34+
-- Reagent bank was removed in TWW 11.2 for retail, only exists in classic/era
35+
local reagentBank = not addon.isRetail and const.BANK_TAB.REAGENT or nil
3536

3637
-- Only check bank-specific flows if Bank bag is enabled
3738
if addon.Bags.Bank and addon.atBank and addon.Bags.Bank.bankTab then

0 commit comments

Comments
 (0)