Skip to content

Audit: data tables, cooldowns and dev tools - #10

Merged
pedrozc90 merged 19 commits into
masterfrom
audit
Oct 30, 2026
Merged

pedrozc90 merged 19 commits into
masterfrom
audit

Conversation

@pedrozc90

Copy link
Copy Markdown
Member

Summary

  • Data: update spell, cooldown and blacklist tables for every client; remove invalid IDs; resolve blacklist names from spell IDs.
  • Data loading: collect invalid entries instead of warning at every login.
  • Cooldowns: reuse row data, cache name/icon, treat a shown secret cooldown as cast, refresh on equipment and spellbook changes.
  • API: replace MergeAPI with a direct backdrop call.
  • TOC: remove unused FilgerData SavedVariable.
  • Dev: add /filger unseen to list aura IDs that never appear; drop experimental commands.
  • Tests: add a plain Lua test runner for util and data.
  • Update LibDispel submodule.

Finalize now records unresolved spell IDs and duplicated cooldowns in
data.invalid as { kind, class, id } instead of printing a warning for
each one at every login. Cooldown rows are now validated for every
class, while the active list is still built from the player's class
and ALL only. With dev enabled, each invalid entry is printed on its
own line.
Prints the entries collected in data.invalid at load, grouped by
kind and class, so spell data can be checked in-game on each client.
Name entries now hold a representative ID marked name; Finalize stores
its localized name, so matching works on every locale. Drop the Retail
name keys, which never matched.
A cast whose UNIT_SPELLCAST_SUCCEEDED spellID is secret is never
recorded, so the row vanished once the restriction lifted while its
cooldown was still running.
SPELL_UPDATE_COOLDOWN fires on every GCD, and each update built a new
table per row and repeated the spell and item info lookups.

Each row now keeps one data table that is refreshed in place. Spell
name and icon are looked up again only when the override spell changes,
since iconID follows the override. Slot name and icon are looked up
again only when the equipped item link changes, and keep retrying while
item info is not cached yet.
Covers FormatTime, the data constructors and Finalize (blacklist,
spells, cooldown ordering, duplicates and invalid entries).
Adds a make test target, runs it in CI and excludes tests/ from packaging.
@pedrozc90 pedrozc90 self-assigned this Oct 30, 2026
@pedrozc90
pedrozc90 merged commit 45d52b2 into master Oct 30, 2026
2 checks passed
@pedrozc90
pedrozc90 deleted the audit branch October 30, 2026 00:01
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