Re-sync after coa-ace3 3ec2009 added two CoA-compat patches:
- AceGUI-3.0/widgets/AceGUIContainer-BlizOptionsGroup.lua: parent
falls back to UIParent when InterfaceOptionsFramePanelContainer is nil
- AceConfig-3.0/AceConfigDialog-3.0: Settings.* block guarded with
fallback to InterfaceOptions_AddCategory on WotLK-era clients
Without these, every addon registering a Blizzard Interface Options
panel via AceConfigDialog errors on load on the CoA client.
Vanilla Bartender4 assumes only DRUID/WARRIOR/WARLOCK/PRIEST/ROGUE/HERO have
shapeshift forms. CoA custom classes (Witchdoctor, Templar, …) can register
forms late at runtime and aren't in the whitelist, so the stance/state bar
never came up for them.
StanceBar.lua:
- ApplyConfig() no longer Disable()s the module when GetNumShapeshiftForms()
is 0 at config time. A disabled module never re-enables on
UPDATE_SHAPESHIFT_FORMS, so late-registered forms were lost. We now just
hide the bar frame.
- Register UPDATE_SHAPESHIFT_FORMS and PLAYER_ENTERING_WORLD on the module
itself and re-Enable() / show the bar when forms appear after the fact.
Options/Bar.lua:
- The 'Hide in Stance/Form' visibility option was gated by a hard-coded
stanceClasses whitelist. Add an OR-fallback on GetNumShapeshiftForms() > 0
so CoA classes with forms get the UI.
StateBar.lua:
- DefaultStanceMap only had vanilla entries. For unknown classes with live
forms, synthesise a generic { id="formN", index=N } map at runtime so
UpdateStates() can wire stance-based action bar swaps.
Both MultiCastBar.lua and Options/MultiCastBar.lua hard-coded a class-mask
gate of SHAMAN|HERO, which doesn't know about CoA custom classes. As a
result, Witchdoctor (and any other CoA class the engine produces a totem
bar for) never had Bartender's wrapper module register, leaving the totem
bar un-skinned / un-configurable.
Keep the original mask check as the fast path, but fall through and load
the module when MultiCastActionBarFrame already exists — the engine only
creates that frame for classes that actually use the totem bar, so it's a
reliable class-agnostic test.
Re-sync after coa-ace3 d422ad3 which converted 42 numeric FileDataIDs in
Set*Texture() calls back to string paths. Upstream Ace3 uses FDIDs which
silently fail on WoW 3.3.5 / CoA, rendering color swatches, checkboxes
and window chrome as solid-red placeholders.
Translate non-numeric stance/form/aura conditionals to [stance:N] via
GetShapeshiftFormInfo() before handing the string to RegisterStateDriver.
Lets CoA custom-class users write self-documenting paging strings:
[aura:Beetle Form]6;1 -- instead of [stance:1]6;1
[stance:Beetle Form/Wasp Form]9
[noaura:Beetle Form]2
All three keywords (aura, form, stance) are accepted equivalently when
the value is a non-numeric form name. Numeric values pass through
unchanged. Unresolved names are left as-is so the failure is visible
at parse time.
Re-applies on UPDATE_SHAPESHIFT_FORMS / PLAYER_ENTERING_WORLD so newly
learned forms take effect without a /reload (defers during combat
lockdown to avoid taint).
Bumps Version to 4.4.2-2-g3b02ee4-coa1 so the loaded copy is
identifiable in-game.
Imported from /srv/add01/wow-ascension/Interface/AddOns/Bartender4 — the
build Ascension's WotLK 3.3.5 client ships.
Single vendored drop: Ascension's build process bundles their custom
patches with the standard CurseForge packager output (embedded libs),
and the individual patches aren't published separately.
Net delta vs Nevcairiel 4.4.2, excluding bundled libs and CRLF
normalization: 21 files, 2213+/52- — the Ascension-specific
adaptations for WotLK 3.3.5 hero classes / custom action systems.
License: All rights reserved (per .toc).