Commit Graph
70 Commits
Author SHA1 Message Date
Brues 782c685fba Replace tooltip-scanning GetSpellCost with ClassicAPI DBC reads
GetSpellCost now reads power cost and reagents straight from Spell.dbc via
C_Spell.GetSpellPowerCost (effective, talent-modified cost) and
C_Spell.GetSpellReagents (itemID), dropping the GameTooltip owner/scan
frames, their font strings, and all locale-dependent line parsing.

Reagent counting is now itemID-based end to end: GetReagentCount takes an
itemID and matches by id in the Items cache / bag scan. This removes the
hardcoded English reagent tables (_ReagentBySpell, _ReagentIdByName) and
the name-matching bag-scan tooltip, so it works on any client locale.
Verified in-game that GetSpellReagents covers DBC reagent spells (Vanish
-> Flash Powder), which the hand table previously special-cased.

The localized reagent name is still used for countedItemTypes registration
(recognizing a reagent item placed on the action bar); when that name
isn't cached yet, warm it via the ClassicAPI Item mixin
(Item:CreateFromItemID/ContinueOnItemLoad) and register it once it lands.
2026-07-19 16:34:19 -05:00
Brues b84835a567 Use GetInventoryItemID instead of string parsing 2026-07-17 21:25:25 -05:00
Brues 40cf2c8010 More ClassicAPI porting 2026-07-15 19:45:31 -05:00
Brues 6e57ff01dc Adopt ClassicAPI C_Item item reads in Tooltip/Generic.lua indexers
Migrate the link-scrape-then-discard sites to direct ClassicAPI reads:

- IndexEquippedItems / IndexEquipSlot: GetInventoryItemID for the id
  (GetItemInfo still supplies the stored base link/texture)
- IndexItems bag+equip scans: GetContainerItemID/GetInventoryItemID +
  C_Item.GetItemName (decorated) for the dedup fast-path; drop the now
  dead GetContainerItemLink/GetInventoryItemLink locals
- GetItemFast cache validation: alloc-free id compare via
  GetInventoryItemID/GetContainerItemID, decorated-name compare otherwise
- IsItemEquipped: GetInventoryItemID + C_Item.GetItemName

Left untouched: makeInventoryItem/makeBagItem and the GetItem/GetItemFast
scan loops, which build a real link that is stored on the item and later
fed to GameTooltip:SetHyperlink.

Note: the equipped-scan loops now start at slot 1 (GetInventoryItemID
requires slot>=1), so the ammo slot (0) is no longer walked by these
indexers -- ammo is not referenced by name anywhere in the addon.
2026-07-15 19:33:07 -05:00
Brues 963ad21297 Show resolved icon for question-mark macros in the macro list
Macros with no chosen icon (e.g. "#showtooltip Shoot") display Blizzard's
default question mark in the macro UI. After each MacroFrame_Update, swap
that placeholder for the icon the action bar would show, resolved from the
macro's #showtooltip/first action via GetMacroByIndex.

- Only replaces icons that are currently the question mark, so user-chosen
  icons are never touched.
- Covers both the list buttons (MacroButtonNIcon) and the selected-macro
  detail icon.
- Purely cosmetic: never changes the saved icon; Blizzard repaints the
  default on the next refresh if resolution fails or the macro changes.
- Installed in MacroErrorUI's existing hook path (gated on Blizzard_MacroUI
  load and the SuperMacro guard).
2026-06-22 00:35:19 -05:00
Brues c710ccf832 Identify action-bar macros by slot/index; drop name restrictions
Resolve a slot's macro by its Blizzard macro index via ClassicAPI's
GetActionInfo instead of GetActionText -> name -> GetMacro, so action-bar
macros no longer depend on the macro name.

- Core.lua: GetAction uses GetActionInfo(slot) -> macro index ->
  GetMacroByIndex; falls back to the name path for SuperMacro (no index).
  ParseMacro split into a shared BuildMacro + ParseMacroByIndex (caches by
  index) + ParseMacro(name). Added GetMacroByIndex. The macro cache is now
  keyed by index for action-bar macros, so blank/duplicate names no longer
  collide. GetMacroIndexByName remains only for genuine name references
  ({MacroName}, /runmacro, /macrocheck).
- MacroErrorUI.lua: remove the now-obsolete macro-name warnings (duplicate,
  blank, spell-conflict, item-conflict) from both the live editor validation
  and the on-close report; delete the unused name-set helpers.
- README: update the known-issue to note only name-referenced macros need
  unique names.
2026-06-21 00:30:30 -05:00
Brues 73e8938d76 Use ClassicAPI for action-bar mapping, spell IDs, and dynamic pfUI icons
GetActionInfo:
- Add ClassicAPI.GetActionInfo wrapper; rewrite GetActionButtonInfo
  (Generic.lua) to use it and resolve names via GetSpellRecField /
  GetItem / GetMacroInfo, replacing the per-slot GameTooltip scan +
  texture heuristic. Powers reactive-ability slot detection.
- Delete the dead SuperWoW-GetActionText copy of GetActionButtonInfo.

Spell IDs in the index:
- IndexSpells now uses ClassicAPI GetSpellInfo(slot, bookType), whose
  10th return is the spellID, so every Spells entry carries .id (one
  call also replaces GetSpellName + GetSpellTexture).

Dynamic pfUI action-button icons (pairs with the pfUI fork change):
- GameTooltip.SetAction hook renders spells via ClassicAPI
  SetSpellByID(spell.id) instead of SetSpell(spellSlot, bookType) +
  manual rank text. Items stay location-based (instance data).
- Drop the redundant GetActionSpellSlot -> GetSpellCooldown cooldown
  shim in the pfUI handler; pfUI now routes through the hooked
  GetActionCooldown when it defers macro scanning to us.
2026-06-21 00:11:46 -05:00
Jrc13245 e51c4f7136 fix pfui libdebuff and extra overflowframe tracking 2026-04-02 15:02:50 -04:00
Jrc13245 fbbbb1fcce updates for unified tracking 2026-04-01 16:11:47 -04:00
Jrc13245 25b689f5cb fix non standard token usage like focustarget 2026-03-30 16:25:01 -04:00
Jrc13245 7577c76050 fix highlight 2026-03-29 10:24:13 -04:00
Jrc13245 3aa3d616c1 fix highlights with multiline 2026-03-29 08:58:51 -04:00
DCV-2142 af1e57c254 Update OverflowBuffFrame.lua
Fixed player's buff frame not appearing when enabling test mode
2026-03-28 19:30:12 +02:00
Jrc13245 5bb8ebe9b7 add item count support for inbag/noinbag conditional, fix macro frame whitelist and error log on macro frame 2026-03-21 12:03:46 -04:00
Jrc13245 0e6371692e update for DragonFlightReloaded 2026-03-21 09:02:04 -04:00
Jrc13245 4a34cf25ce fix talent error 2026-03-20 13:37:50 -04:00
Jrc13245 137e08a209 fix target overflowframe and possible immunity system fix 2026-03-17 18:25:20 -04:00
Jrc13245 d380fe314c feature live passing conditional checker 2026-03-15 12:17:45 -04:00
Jrc13245 efdcde3eca performance updates, meleerange conditional checks if unit is alive 2026-03-11 19:57:33 -04:00
Jrc13245 34190ccbd8 fix debuff and buff tracking 2026-03-06 18:55:39 -05:00
Jrc13245 6d3fb05c1e get correct debuff aura durations 2026-03-05 17:11:03 -05:00
Jrc13245 9b140ad56c fix target and player overflowframe checking visible buffs before verifying overflow buff exists 2026-03-04 18:23:26 -05:00
Jrc13245 82b2ab889f remove superwow requirement by using nampower, update nampower support to 3_1_0 2026-03-02 19:55:53 -05:00
Jrc13245 b56beef4b2 remove more superwow only functions 2026-03-02 09:01:34 -05:00
Jrc13245 2f0f000733 no superwow required, update for nampower 3 2026-03-01 09:33:41 -05:00
Jrc13245 a50a5c7e7c use pfui swingtimer if SP not available, fix vanish regeant count 2026-02-27 07:59:05 -05:00
Jrc13245 543f2e80fe fixes for overflow frames 2026-02-24 21:40:44 -05:00
Jrc13245 172448d9f9 update frame titles 2026-02-21 11:48:46 -05:00
Jrc13245 bc193c24bc update overflow frame to disable default, rename frame for clarity, update readme for information 2026-02-21 11:39:27 -05:00
Jrc13245 d41271bbed remove gmatch and match polyfill and fix reactive surprise attack 2026-02-20 14:57:39 -05:00
Jrc13245 5e067afd26 update pfcast and pfui markertracker compatibility 2026-02-19 22:10:32 -05:00
Jrc13245 ec43a636d6 update for pfui buff tracking and nampower buff tracking fallback 2026-02-17 19:19:07 -05:00
Jrc13245 860fca0001 target can use multiscan/fix overflowframe not showing more than 1 buff 2026-02-16 15:26:55 -05:00
Jrc13245 e3cfde0506 add full disable command to macrochecker and temporarily disable swimming conditional ddue to lack of dll support 2026-02-15 10:09:34 -05:00
Jrc13245 dae56dbb16 slashcommand whitelist 2026-02-14 10:38:03 -05:00
Jrc13245 3a3719a37a initial overflowtest 2026-02-12 21:19:20 -05:00
Jrc13245 b0cd1c0657 ingame error checker gui 2026-02-08 21:24:46 -05:00
Jrc13245 9002f52478 fix errors 2026-01-28 09:57:46 -05:00
Jrc13245 cbbc4cc5a7 make supermacro compatibility work with new slashcommands 2026-01-22 17:46:03 -05:00
Jrc13245 8f1e2166b1 fix false immunities 2026-01-16 09:35:29 -05:00
Jrc13245 c230b1decb fix stopmacro and fix mouseover in other addons 2026-01-15 11:48:01 -05:00
Jrc13245 7d0dec2a2b cursive mouseover support, applymain and applyoff slashcommands, nampower feature update with incominghit, lastswing, buffcap, debuffcap conditionals 2026-01-12 17:13:40 -05:00
Jrc13245 2058ca1fc9 fix mouseover for all uis 2026-01-10 11:37:44 -05:00
Jrc13245 1160baedc9 fix xperl issues 2026-01-10 10:39:25 -05:00
Jrc13245 5ae45b3406 fix stack overflow on some ui and syntax errors 2026-01-10 09:48:18 -05:00
Jrc13245 d89853396b fix mousueover for many ui addons and add many more to support them 2026-01-10 09:40:11 -05:00
Jrc13245 e85217f148 add mouseover fallback when tooltips not available 2026-01-09 16:29:37 -05:00
Jrc13245 1a1f2ff65b improve memory and cpu usage and fix some spell debuffs and inject pfui with debuffs we track 2026-01-04 14:40:19 -05:00
Jrc13245 f457ac7ec4 check nampower version to get exact functionality for that version as well as update cursive compatibility and custom spell add cursive functions 2026-01-03 16:11:13 -05:00
Jrc13245 003d230e52 revert multi target tracker 2026-01-02 23:16:57 -05:00