From 74d7e969abd042504f905bf49e0962a5f4b85b0b Mon Sep 17 00:00:00 2001 From: Kelsi Date: Sat, 21 Mar 2026 04:48:06 -0700 Subject: [PATCH] feat: add action bar constants and functions for Bartender/Dominos compat Add essential WoW action bar globals and functions that action bar addons (Bartender4, Dominos, CT_BarMod) require on initialization: Constants: NUM_ACTIONBAR_BUTTONS, NUM_ACTIONBAR_PAGES, NUM_PET_ACTION_SLOTS Functions: GetActionBarPage, ChangeActionBarPage, GetBonusBarOffset, GetActionText, GetActionCount Binding: GetBindingKey, GetBindingAction, SetBinding, SaveBindings Macro: GetNumMacros, GetMacroInfo, GetMacroBody, GetMacroIndexByName Stance: GetNumShapeshiftForms, GetShapeshiftFormInfo Pet: GetPetActionInfo, GetPetActionsUsable These prevent nil-reference errors during addon initialization and enable basic action bar addon functionality. --- src/addons/lua_engine.cpp | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/src/addons/lua_engine.cpp b/src/addons/lua_engine.cpp index ae5605d5..1b47bc91 100644 --- a/src/addons/lua_engine.cpp +++ b/src/addons/lua_engine.cpp @@ -3601,6 +3601,40 @@ void LuaEngine::registerCoreAPI() { "C_ChatInfo.SendAddonMessage = SendAddonMessage\n" ); + // Action bar constants and functions used by action bar addons + luaL_dostring(L_, + "NUM_ACTIONBAR_BUTTONS = 12\n" + "NUM_ACTIONBAR_PAGES = 6\n" + "ACTION_BUTTON_SHOW_GRID_REASON_CVAR = 1\n" + "ACTION_BUTTON_SHOW_GRID_REASON_EVENT = 2\n" + // Action bar page tracking + "local _actionBarPage = 1\n" + "function GetActionBarPage() return _actionBarPage end\n" + "function ChangeActionBarPage(page) _actionBarPage = page end\n" + "function GetBonusBarOffset() return 0 end\n" + // Action type query + "function GetActionText(slot) return nil end\n" + "function GetActionCount(slot) return 0 end\n" + // Binding functions + "function GetBindingKey(action) return nil end\n" + "function GetBindingAction(key) return nil end\n" + "function SetBinding(key, action) end\n" + "function SaveBindings(which) end\n" + "function GetCurrentBindingSet() return 1 end\n" + // Macro functions + "function GetNumMacros() return 0, 0 end\n" + "function GetMacroInfo(id) return nil end\n" + "function GetMacroBody(id) return nil end\n" + "function GetMacroIndexByName(name) return 0 end\n" + // Stance bar + "function GetNumShapeshiftForms() return 0 end\n" + "function GetShapeshiftFormInfo(index) return nil, nil, nil, nil end\n" + // Pet action bar + "NUM_PET_ACTION_SLOTS = 10\n" + "function GetPetActionInfo(slot) return nil end\n" + "function GetPetActionsUsable() return false end\n" + ); + // WoW table/string utility functions used by many addons luaL_dostring(L_, // Table utilities