Skip to content

WIP: Add WoW Midnight 12.0 support#16

Open
rursache wants to merge 15 commits intoResike:mainfrom
rursache:midnight
Open

WIP: Add WoW Midnight 12.0 support#16
rursache wants to merge 15 commits intoResike:mainfrom
rursache:midnight

Conversation

@rursache
Copy link

@rursache rursache commented Mar 8, 2026

Summary

  • Update Recount for WoW 12.0 (Midnight) API compatibility
  • Migrate combat tracking from COMBAT_LOG_EVENT_UNFILTERED to C_DamageMeter API (Blizzard now blocks CLEU for addons)
  • Handle secret values during active combat for real-time meter display
  • Hide unsupported legacy modes under Midnight across the main window, config, realtime options, keybindings, and summary details rather than showing misleading or partial data
  • Update deprecated APIs: GetSpellInfo, SendChatMessage, GetMouseFocus, UIFrameFade, FillLocalizedClassList, BNGetFriendInfo
  • Update bundled libraries: Ace3, ChatThrottleLib v31

Status

Work in progress — core functionality works, with some Midnight API limitations still remaining:

  • Addon loads without errors on 12.0
  • Damage/healing/absorb/damage taken tracking via C_DamageMeter
  • Real-time DPS and damage display during combat (secret value handling)
  • Real-time group/raid labels during combat
  • Spell breakdown in detail view
  • Multi-combat support (reset + fight again)
  • Group/raid testing with multiple players
  • Fight segment rotation
  • Unsupported legacy modes are hidden under Midnight so they do not show misleading data
  • Realtime party/raid rows now reset and re-merge cleanly during combat so duplicate bars and leaked __RECOUNT_DM__... placeholders do not persist between target swaps.
  • Full support for modes without C_DamageMeter data (Friendly Fire, Overhealing, DOT/HOT Uptime, Healing Taken, etc.)

rursache added 15 commits March 8, 2026 21:16
- TOC Interface bumped to 120001, added IconTexture field
- GetSpellInfo migrated to C_Spell.GetSpellInfo with positional return compat
- GetMouseFocus replaced with GetMouseFoci compat wrapper (LibDropDown)
- ColorPicker opacity API fixed for retail in GUI_Realtime (WOW_RETAIL guard)
- IsInScenarioGroup fallback to C_Scenario.IsInScenario
- UIFrameFade fallback added for potential removal
- Removed dead InterfaceOptionsFrame reference
- table.getn() replaced with # operator
- ChatThrottleLib: hooks C_ChatInfo.SendChatMessage when available (12.0 API move)
- ChatThrottleLib: hooks C_BattleNet.SendGameData when available
- GUI_Main/GUI_Detail: SendChatMessage alias uses C_ChatInfo.SendChatMessage fallback
- AceConfigDialog-3.0: v87 -> v92 (Settings API migration, removes
  InterfaceOptions_AddCategory, adds C_SettingsUtil.OpenSettingsPanel compat)
- AceConfigRegistry-3.0: v21 -> v22 (relWidth option support)
- AceGUIWidget-EditBox: ChatFrameUtil.InsertLink compat for 12.0
- AceGUIWidget-MultiLineEditBox: same ChatFrameUtil migration
- AceGUIContainer-TreeGroup: v48 -> v49 (tooltip SetText wrap arg fix)
- AceGUIWidget-Keybinding: v26 -> v27 (GamePad button support)
- AceGUIWidget-Slider: v23 -> v24 (font loading workaround)

Source: https://github.com/WoWUIDev/Ace3
- Replace FillLocalizedClassList/LocalizedClassList with LOCALIZED_CLASS_NAMES_MALE
  global (removed in 11.0.2, replacement available since 10.2.5)
- Replace BNGetFriendInfo/BNGetSelectedFriend with C_BattleNet.GetFriendAccountInfo
  (removed in 8.2.5, replacement available since then)
…eter API

WoW 12.0 (Midnight) blocks addons from registering COMBAT_LOG_EVENT_UNFILTERED.
This adds Tracker_DamageMeter.lua which uses Blizzard's server-side C_DamageMeter
API for damage/healing/absorb tracking. Handles secret values during combat by
using synthetic ordering for real-time bar display, with actual values populated
when combat ends. Includes spell breakdown support for detail views.
@Resike
Copy link
Owner

Resike commented Mar 10, 2026

Thanks, will test this tomorrow.

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.

2 participants