29 Commits

Author SHA1 Message Date
Brues 13a08b0ea3 Restore hooksecurefunc 2026-07-09 23:01:52 -05:00
Brues 3fe072c594 Route hooksecurefunc callers through pfUI.hooksecurefunc; global belongs to ClassicAPI
pfUI's Lua hooksecurefunc lived in pfUI.env and shadowed ClassicAPI's C
global for all pfUI code. Replace it with a thin pfUI.hooksecurefunc shim
that keeps the missing-target no-op our call sites rely on (ClassicAPI
errors on a nil target) and delegates the actual hook to _G.hooksecurefunc.

Migrated all 70 internal call sites (modules/libs/skins) to
pfUI.hooksecurefunc; bare hooksecurefunc now resolves to ClassicAPI's C
version everywhere. Dropped the unused prepend path and the orphaned
pfUI.hooks table.
2026-07-05 14:58:26 -05:00
Brues 822c873132 castbar: event-driven rewrite on ClassicAPI C_Spell + nampower events
Drive the cast bar from cast lifecycle events instead of polling C_Spell
every frame. OnUpdate now only animates a stamped start/end and fades out;
all state transitions come from events:

- player: vanilla SPELLCAST_START / _STOP / _FAILED / _INTERRUPTED /
  _CHANNEL_START / _CHANNEL_STOP, plus nampower SPELL_START_SELF (the only
  signal for a chained same-spell recast, which never runs the client cast
  path) and SPELL_DELAYED_SELF for pushback (applied from its delayMs arg).
- non-player (target/focus): nampower SPELL_START_OTHER / SPELL_FAILED_OTHER
  + PLAYER_TARGET_CHANGED / PLAYER_FOCUS_CHANGED.

Data comes from ClassicAPI's C_Spell.UnitCastingInfo / UnitChannelInfo
(player exact; other units from the SMSG_SPELL_START cache). SPELL_START_*
re-polls are deferred one frame so ClassicAPI's packet co-hook has stamped
before the read. SPELLCAST_CHANNEL_STOP only clears when a channel is shown,
so a lagged channel-stop doesn't wipe a following cast's bar.

Remove the now-unused CASTBAR_EVENT_* constants from compat/vanilla.lua.
2026-06-25 22:38:53 -05:00
Brues ba566cdd53 phase 2 removing tbc
Strip dead pfUI.client > 11200 and pfUI.expansion == "tbc" branches now
that vanilla is the only supported client.

- pfUI.lua: hardcode expansion = "vanilla"; collapse force_region matrix
- compat/vanilla.lua, libs/{libcast,libdebuff,libtotem,libunitscan,
  focus}: drop always-false early-returns
- api/unitframes.lua: delete TargetBuffOnUpdate poller + tbc visibility
  and secure-template branches; click-cast keeps only vanilla path
- api/ui-widgets.lua: unconditional EffectiveScale divide
- env/tables.lua: drop unused focus/focustarget pfValidUnits entries
- modules/actionbar.lua: simplify EnablePaging, drop ButtonSwitch/
  petvisibility, unwrap prowl block, single keybind-remap path
- modules/{castbar,chat,cooldown,loot,questitem,totems}: unwrap
  always-true conditionals
- modules/nameplates.lua: cfg-only fake-cooldown gate, unwrap overlap/
  clickthrough + mouselook blocks
- modules/friends.lua + skins/blizzard/friends.lua: maxtab = 4
- skins/blizzard/{help,game_menu,questlog}: drop tbc-only branches
2026-05-25 18:40:17 -05:00
Meow 0d9c3eacc2 fixed a rare lua error appearing when opening world map 2026-03-08 07:06:50 +01:00
shagu 703e93d021 compat: support up to 16 values in hooksecurefunc 2025-08-10 16:52:28 +02:00
shagu 67fe248600 compat: add return values to hooksecurefunc 2025-08-04 09:26:19 +02:00
shagu 73561eda4a compat: make hooksecurefunc append by default 2025-07-30 20:18:52 +02:00
shagu e5c2d08fbe compat: allow table hooks in hooksecurefunc 2025-07-30 19:52:38 +02:00
shagu 8c7579ad26 castbar: reset delays on new spell casts 2020-12-08 21:56:39 +01:00
shagu b903fffbfd compat: replace max level var with existing one 2020-08-16 11:11:06 +02:00
shagu 0751ab31cd compat: return when no item is given on vanilla 2020-07-10 16:57:00 +02:00
shagu 8e69c8b40b compat: add RunMacroText function to vanilla api 2020-03-31 11:39:17 +02:00
shagu 149339839d api: use backported getiteminfo for all versions 2020-01-06 11:15:38 +01:00
shagu cf3bff92b2 bags: use already existing constant for max bags 2019-11-08 15:58:21 +01:00
shagu 1335624c65 bags: fix amount of bankslots in tbc 2019-11-07 22:11:23 +01:00
shagu 3b3f2279a1 xpbar: rewrite to support dynamic reputation bars 2019-08-31 19:02:56 +02:00
Artur Morozov a75fd5dca4 skins: add a bunch of tbc compatible skins
* add skin for: auction, character, game_menu
  guild_registrar, inspect, macro, mail,
  merchant, options-interface, options-sound,
  options-video, popup_dialogs, professions,
  questlog, talents, tracking, guildbank,
  socket, readycheck, arena_registrar,
  arena, time_manager, LFG
* add mail highlighting the quality of items
* add quality borders of guildbank items
2019-06-16 15:03:35 +02:00
Artur Morozov 5082a7deb3 panel: add tbc compatibility for minimap zone text 2019-06-16 14:55:59 +02:00
Artur Morozov 08533849c5 tbc: fix micro menu 2019-06-13 18:40:50 +02:00
shagu 4fb8c6fdfa compat: use string based client check 2019-06-10 17:11:29 +02:00
shagu 597f19dd55 api: add HookScript back to the core api 2019-04-14 15:15:10 +02:00
shagu 3069c2626e unitframes: add securefuncs handling for TBC 2019-04-14 14:48:25 +02:00
shagu bd4ace48c8 actionbar: make it work on tbc 2019-04-10 21:00:20 +02:00
shagu 156d858a2e castbar: add pushback counter to channel bar 2018-11-10 13:41:58 +01:00
shagu b7638db5f2 loot: use both setslot and setid for lootbuttons 2018-11-04 21:35:19 +01:00
shagu fb8fbbc8c4 loot: move client abstraction into compat files 2018-11-04 13:11:31 +01:00
shagu 07ce172684 castbar: always update casting state 2018-11-01 16:22:30 +01:00
shagu 5dfe5a4899 compat: initial layout of client abstraction api 2018-11-01 14:55:29 +01:00