Skip to content

Add support for all WoW client versions (TBC, WotLK, updated Vanilla/Retail)#39

Open
paradosi wants to merge 3 commits intoSharpWoW:mainfrom
paradosi:all-versions-support
Open

Add support for all WoW client versions (TBC, WotLK, updated Vanilla/Retail)#39
paradosi wants to merge 3 commits intoSharpWoW:mainfrom
paradosi:all-versions-support

Conversation

@paradosi
Copy link

Summary

Adds support for TBC Anniversary and WotLK Classic clients, updates existing interface versions, and adds compatibility shims so the addon works across all current WoW flavors.

Changes

TOC

  • Added Interface-BCC: 20505 (TBC Anniversary Edition)
  • Added Interface-Wrath: 30405 (WotLK Classic)
  • Updated Interface: 110207 (current Retail)
  • Updated Interface-Vanilla: 11508 (current Classic Era)

KillTrack.lua

  • Added C_AddOns shim for older clients that don't have the namespace (falls back to GetAddOnMetadata/IsAddOnLoaded)
  • Added IsGUIDInGroup fallback for Vanilla Classic (scans party/raid unit IDs)
  • Added UnitIsTapDenied fallback for clients that don't have it

Options.lua

  • Added Settings API guards with fallback to legacy InterfaceOptions_AddCategory and InterfaceOptionsFrame_OpenToCategory for Classic clients that don't have the modern Settings API
  • Guarded HideUIPanel(InterfaceOptionsFrame) for clients where it may not exist

Testing

  • Tested on TBC Anniversary (20505)
  • All shims are conditional (if not X then) so existing Retail/Cata behavior is unchanged

- Add Interface-BCC (20505) and Interface-Wrath (30405) to TOC
- Update Interface to 110207, Interface-Vanilla to 11508
- Add C_AddOns shim for older clients without the namespace
- Add IsGUIDInGroup fallback for Vanilla Classic
- Add UnitIsTapDenied fallback for clients that don't have it
- Add Settings API guards in Options.lua with fallback to
  legacy InterfaceOptions_AddCategory for Classic clients
- Add separate TOC files for each client flavor (TBC, Wrath, Vanilla, Cata)
  since Classic clients don't reliably use multi-interface single TOC
- Bundle LibStub, CallbackHandler-1.0, and LibDBIcon-1.0 (CurseForge
  packager normally bundles these but manual installs need them)
- Strip #@no-lib-strip@ tags so libs load in manual installs
- Fix @Project-Version@ placeholder to v2.32.0
Added compatibility shim for Anniversary realm's Settings API.
Falls back to old InterfaceOptions_AddCategory if available.

Fixes error: attempt to call global 'InterfaceOptions_AddCategory' (a nil value)

The Anniversary realm removed the old API and uses Settings.RegisterCanvasLayoutCategory instead.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

Comments