This checkout had no git history at all, so this one commit carries the whole
of the Everwood work as a single import on top of chairmanpow/benilla-octo's
`main` (706cd71). The two trees have genuinely diverged — each has files the
other does not — so this is a fork point, not a catch-up.
Today's work, which is the reason a baseline exists at all:
- Booth previews no longer cast world shadows (`NO_BOOTH_SHADOW`). Portrait
characters were entering the sun's shadow cascades, so every skinned-rig
shadow specialization compiled live mid-frame; the hitch detector logged
"main thread blocked 1316 ms" beside a `compiled LIVE` warning. This was
the Fashion/Tmog stutter.
- Per-pane dress-up: each `DressUpModel` pane assembles and stages its own
tried-on look instead of every pane mirroring the live player.
- Item template cache is append-only JSONL written on the IO pool, replacing
an 11.6 MB whole-map JSON rewrite on the main thread every 10 s.
- `WOW_SYSTEM_TIMING` rebuilt per-thread: it took 2 mutexes per system enter
and 4 per exit, costing 15 ms a frame (590 fps -> 60) and corrupting the
measurements it was taken to produce.
- The visibility-churn sweep moved to its own `WOW_FLASH_CHURN` switch, so a
frame-cost reading no longer pays 2.7 ms a frame for it.
Local state (`benilla-config/`, `logs/`, `target/`) is excluded by the
existing .gitignore; the account credential it holds is not in this commit.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SgstFWtn1RxEJ5kVrpgYwn
422 lines
22 KiB
Markdown
422 lines
22 KiB
Markdown
# ClassicAPI function inventory
|
|
|
|
A namespace-by-namespace list of every function `brues-code/ClassicAPI` documents in its own
|
|
`docs/API.md`, fetched 2026-10-05 for `docs/ADDON_COMPAT.md`'s ClassicAPI tracking. This is the
|
|
checklist for porting it into `crates/benilla-ui/src/script/compat/classic_api.rs` — check items
|
|
off there as they land; this file is the source list, not the status (status lives in
|
|
`ADDON_COMPAT.md`, one line per namespace, not per function, so it stays scannable).
|
|
|
|
Re-fetch `docs/API.md` from the upstream repo before resuming this work — this is a point-in-time
|
|
copy of names and one-line summaries, not argument types or behavior; the upstream file is still
|
|
the authoritative spec for implementing any one of these.
|
|
|
|
**Already free, no porting needed:** parsing Lua 5.1 *syntax* (not stdlib — see
|
|
`classic_api.rs`'s own doc comment on the stdlib/`lua50.rs` collision) covers the `Lua` namespace's
|
|
syntax-level items. `strsplit`/`strjoin`/`strtrim`(as `trim`)/`wipe` already exist as benilla
|
|
globals for unrelated reasons (TurtleWoW FrameXML compat, see `reference_surface.rs`'s exception
|
|
list) — the `Lua` namespace entries below for those four are therefore also already satisfied.
|
|
|
|
**Built so far** (per-namespace status, including what each one skipped and why, is
|
|
`docs/ADDON_COMPAT.md`'s ClassicAPI section — one row per namespace):
|
|
|
|
- `Unit`: `UnitGUID`, `UnitTokenFromGUID`.
|
|
- `Time`: `C_Timer.After`/`NewTimer`/`NewTicker`.
|
|
- `Container`: all of `C_Container.*` but `GetContainerItemCharges`/`GetContainerItemRepairCost`/
|
|
`GetContainerItemQuestInfo`/`GetContainerItemEquipmentSetInfo`/`IsContainerItemOpenable`, which
|
|
honestly answer nil/false.
|
|
- `UnitAuras`: all of `C_UnitAuras.*`; the two `Register*` hooks accept and discard.
|
|
- `CreatureInfo`: `GetRaceInfo`, `GetFactionInfo`, `GetClassInfo`, `GetCreatureID`. The two race getters read the
|
|
player's own `ChrRaces.dbc` through a new app→VM feed, not a table frozen into this client —
|
|
which is what makes OctoWoW's row 10 read **"High Elf"** rather than Blizzard's "Blood Elf"
|
|
while `clientFileString` stays `"BloodElf"` for the art paths. `GetRaceInfo` must keep answering
|
|
nil past the last race: pfUI walks until nil and an always-non-nil answer hangs the load.
|
|
- `State`: `IsSwimming`, `IsMounted`, `IsIndoors`, `IsOutdoors`, `IsFalling`,
|
|
`GetShapeshiftFormID`, `IsInGroup`, `IsInRaid`.
|
|
- `Spell`: 15 of ~45 (`DoesSpellExist`, the name/texture/subtext/info getters, `IsSpellPassive`,
|
|
`IsSpellKnown`, `IsCurrentSpell`, `GetSpellCooldown`, `IsSpellUsable`, `GetSchoolString`,
|
|
`CanDualWield`, `CastAtCursor`, `CastAtUnit`, `CancelSpellByID`). The five display getters read
|
|
`Spell.dbc` through the host probe, so they answer for any shipped spell; the predicates read the
|
|
player's book, which is the right source for them.
|
|
- `SpellBook`: 5 of ~19 (`FindSpellBookSlotByID`, `GetSpellBookItemInfo`,
|
|
`GetNumSpellBookSkillLines`, `GetSpellBookSkillLineInfo`, `GetSpellBookItemSkillLineIndex`).
|
|
- `ColorUtil`: all 8 of `C_ColorUtil.*` (pure maths + the `|c` escape builders).
|
|
- `ClassColor`: `C_ClassColor.GetClassColor`, over FrameXML's own `RAID_CLASS_COLORS`.
|
|
- `Expansion`: all 3.
|
|
- `Input`: 7 of 9 — the six sided modifier getters (each answering the combined bit the engine
|
|
tracks) and `IsModifierKeyDown`; `IsMouseButtonDown`/`GetMouseButtonClicked` have no honest
|
|
backing state.
|
|
- `Lua`: the additive half only — `table.count`, `Mixin`, `CreateFromMixins`, `strreplace`.
|
|
The `lua50.rs`-nilled 5.1 stdlib stays nilled, and so does `strrev` (`tests/stdlib.rs` pins it),
|
|
by the deferred decision above.
|
|
- `Currency`: `C_CurrencyInfo.GetCoinTextureString`, delegating to FrameXML's own.
|
|
- `Events`: `GetFramesRegisteredForEvent`; `C_EventUtils.IsEventValid` has no valid-event set.
|
|
- `System`: `GetPhysicalScreenSize` (logical rect, not device pixels); no `CopyToClipboard`.
|
|
- `Combat`: `InCombatLockdown` (always false, correctly).
|
|
- `Hooks`: `hooksecurefunc`, both forms — chains, passes the original's returns through, and
|
|
isolates a hook's error from the call it wrapped.
|
|
- `Frame` (widget **methods**, not globals): `SetShown`, `GetSize`/`SetSize`, `GetRect`,
|
|
`SetFormattedText`, `HookScript`, `IsEventRegistered`, `GetEffectiveAlpha`, and the four
|
|
`*Attribute` verbs as a plain per-frame store. The mask/atlas families, the secure-template
|
|
drivers and the text-measurement getters are skipped with reasons.
|
|
|
|
- `Quest`: 8 of ~13 `C_QuestLog.*` (the index↔questID mapping, `GetInfo`/`GetQuestLogTitle`,
|
|
`IsOnQuest`/`IsUnitOnQuest`, `GetNumQuestObjectives`); the four standalone-cache probes and the
|
|
bare `GetQuestLogLeaderBoardID` have no data behind them.
|
|
- `Faction`: all 3 bare id-keyed globals + 11 of 12 `C_Reputation.*`; only
|
|
`GetLastStandingChange` has no record to read. Answers for *listed* factions (no DBC here).
|
|
- `FriendList`: 8 of 13 `C_FriendList.*`; the notes pair and the two guid-keyed predicates have no
|
|
backing data.
|
|
- `Gossip`: all 11 of `C_GossipInfo.*` (selection stays index-keyed — 1.12 sends no option id).
|
|
- `MerchantFrame`: 3 real of 6 `C_MerchantFrame.*`, the other 3 honest constants (refunds and
|
|
one-click junk sale are later-era features).
|
|
- `Mail`: both link getters — which also closes SuperWoW's own pair.
|
|
- `CVar`: all 8 of `C_CVar.*`. `SetTempCVar`/`RemoveTempCVar` are genuinely non-persisting
|
|
(`CvarSlot::temp_original` + the snapshot), not just live-for-Lua.
|
|
- `NamePlate`: all 4 of `C_NamePlate.*`, over the existing plate pool.
|
|
- `Macro`: `C_Macro.GetMacroIcon`/`CreateMacro`/`EditMacro`. `GetMacroSpell`/`GetMacroItem`/
|
|
`StopMacro`/`SetMacroDisplay` and the four `Get*MacroIcons` need directive resolution, macro
|
|
execution, or icon provenance that does not exist — see `docs/ADDON_COMPAT.md`.
|
|
- `Action`: `GetActionInfo`.
|
|
- `Item`: 37 of ~55 `C_Item.*` — the identity/data/getter/predicate families over the one item
|
|
template cache, with `ItemLocation` accepted as the plain `{bagID,slotIndex}` /
|
|
`{equipmentSlotIndex}` table. The guid, item-level, item-stat and lock families are skipped with
|
|
reasons. **`ItemLocation` itself now exists** as a real mixin
|
|
(`compat/classic_api/item_location.rs`) with `CreateFromBagAndSlot`/`CreateFromEquipmentSlot`/
|
|
`CreateEmpty` and the whole `ItemLocationMixin`; the plain table still works, because the mixin
|
|
hands out exactly that table with methods copied on. `GetItemUniquenessByID` stays out: the fact
|
|
(`max_count`) is here but upstream's return shape is not, and the two candidate shapes behave
|
|
differently — `docs/ADDON_COMPAT.md` has the argument.
|
|
- `Map`: 4 of 27 `C_Map.*` — `GetMapWorldSize`, `GetMapAreaIDs`, `GetMapOverlays`, `GetAreas`.
|
|
The first three read the world-map catalog the app already pushes, no new feed; `GetMapOverlays`
|
|
answers **every** shipped overlay row, explored or not, which is what separates it from the stock
|
|
`GetNumMapOverlays`/`GetMapOverlayInfo` pair. `GetAreas` is the whole `AreaTable.dbc` name column
|
|
(1,480 rows, where the catalog keeps the ~80 that have a map) and is a feed of its own,
|
|
`ui_world_map::seed_area_names`; it is what pfQuest's minimap pass resolves the player's zone
|
|
through, so without it the world map drew pins and the minimap drew none. `GetAreaTriggerInfo`
|
|
still needs an app→VM feed and is specified in `ADDON_COMPAT.md`; the rest are later-era or
|
|
app-side.
|
|
- `PlayerInfo`: `C_PlayerInfo.CanUseItem` alone, the same function value `C_Item.IsUsableItem`
|
|
answers from so the two cannot disagree. The nine `PlayerLocation`-keyed members have no source
|
|
here.
|
|
- **`GetClassInfo`'s class table is a new app→VM feed** of the player's own `ChrClasses.dbc`
|
|
(`benilla-formats`' `chr_classes.rs` fields 5 and 14 → `benilla-app`'s `ui_chr_classes.rs` →
|
|
`UiScript::set_class_info`), the same shape the race feed takes and for the same reason. Nil for
|
|
a gap is load-bearing: 1.12 leaves ids 6 and 10 empty and pfQuest walks `1, 32` straight through
|
|
them. Worth knowing before touching it: all nine shipped enUS rows satisfy
|
|
`className:upper() == classFile`, so a reader that derived one from the other is invisible on
|
|
real data — a test records the coincidence and another uses a renamed fixture to pin the
|
|
independence.
|
|
- **Not ClassicAPI, built anyway**: `TableUtil.Execute` (`table_util.rs`). Blizzard's own FrameXML
|
|
helper, which this install's pfQuest calls at file scope — absent, it aborted `map.lua` and left
|
|
`pfMap` undefined.
|
|
- `AddOns`: 9 of 10 `C_AddOns.*`, all delegating to the stock addon globals;
|
|
`GetAddOnLocalTable` is absent (1.12 passes addon files no arguments, so no such table exists).
|
|
- `GameTooltip` (widget **methods**): the reader family — `GetItem`, `GetSpell`, `HasItem`,
|
|
`HasSpell`, `GetUnit`, `HasUnit`, `GetOwner`, `IsEquippedItem` — over new `TooltipState::subject`
|
|
state recorded at the one item renderer and the one spell renderer. `GetUnitGUID`, the
|
|
GameObject pair, the `Set*ByID` aliases and the talent/set/totem/compare setters are skipped
|
|
with reasons.
|
|
|
|
## Account
|
|
SaveAccount, DeleteAccount, GetSavedAccounts, LoginWithSavedAccount
|
|
|
|
## Action
|
|
GetActionInfo
|
|
|
|
## AddOns (`C_AddOns`)
|
|
GetAddOnName, GetAddOnTitle, GetAddOnNotes, IsAddOnLoadable, IsAddOnLoaded, LoadAddOn,
|
|
GetAddOnSecurity, DoesAddOnExist, GetAddOnOptionalDependencies, GetAddOnLocalTable
|
|
|
|
## APIDocumentation
|
|
C_APIDocumentation.GetSystems, C_APIDocumentation.GetSystem, _classicapi_UndocumentedAPI
|
|
|
|
## AuctionHouse (`C_AuctionHouse`)
|
|
PostItem
|
|
|
|
## AuraUtil
|
|
ForEachAura, FindAura, FindAuraByName, UnpackAuraData
|
|
|
|
## CharacterList
|
|
GetSavedCharacterOrder, SetSavedCharacterOrder
|
|
|
|
## Chat
|
|
GetCurrentChatGUID
|
|
|
|
## Class
|
|
FillLocalizedClassList
|
|
|
|
## ClassColor (`C_ClassColor`)
|
|
GetClassColor
|
|
|
|
## ColorUtil (`C_ColorUtil`)
|
|
ConvertRGBToHSV, ConvertHSVToRGB, ConvertHSVToHSL, ConvertHSLToHSV, ConvertHSLToRGB,
|
|
GenerateTextColorCode, WrapTextInColor, WrapTextInColorCode
|
|
|
|
## Combat
|
|
InCombatLockdown, StartAttack, StopAttack
|
|
|
|
## Console
|
|
ConsoleExec, ConsoleEcho, ConsolePrintAllMatchingCommands, ConsoleIsActive,
|
|
ConsoleGetColorFromType, ConsoleGetFontHeight, SetConsoleKey, CalculateStringEditDistance,
|
|
ConsoleGetAllCommands
|
|
|
|
## Container (`C_Container`)
|
|
GetContainerItemID, GetContainerItemInfo, HasContainerItem, GetItemCooldown, GetContainerItemDurability,
|
|
GetContainerItemRepairCost, GetContainerItemCharges, GetContainerNumFreeSlots, GetContainerFreeSlots,
|
|
GetContainerItemQuestInfo, GetContainerItemEquipmentSetInfo, CalculateTotalNumberOfFreeBagSlots,
|
|
IsContainerItemOpenable, PlayerHasHearthstone, UseHearthstone, SwapItems, MoveItem, AutoStoreItem,
|
|
SortBags, SortBankBags, GetSortBagsRightToLeft, SetSortBagsRightToLeft, GetBackpackAutosortDisabled,
|
|
SetBackpackAutosortDisabled, GetBankAutosortDisabled, SetBankAutosortDisabled
|
|
|
|
## Creature (`C_CreatureInfo`)
|
|
GetCreatureID, GetCreatureInfoByID, RequestLoadCreatureByID, GetRaceInfo, GetClassInfo,
|
|
GetCreatureFamilyInfo, GetCreatureFamilyIDs, GetFactionInfo, GetCreatureTypeInfo, GetCreatureTypeIDs
|
|
|
|
## Currency
|
|
GetCoinTextureString (also `C_CurrencyInfo.GetCoinTextureString`)
|
|
|
|
## CVar (`C_CVar`)
|
|
GetCVarInfo, DoesCVarExist, AreCVarsLoaded, GetCVarBitfield, SetCVarBitfield, SetTempCVar,
|
|
RemoveTempCVar, GetCVarBool
|
|
|
|
## Cursor
|
|
GetCursorInfo
|
|
|
|
## EquipmentSet (`C_EquipmentSet`)
|
|
CanUseEquipmentSets, GetNumEquipmentSets, GetEquipmentSetIDs, GetEquipmentSetID, GetEquipmentSetInfo,
|
|
GetIgnoredSlots, GetItemIDs, GetItemLocations, CreateEquipmentSet, SaveEquipmentSet,
|
|
ModifyEquipmentSet, DeleteEquipmentSet, IgnoreSlotForSave, UnignoreSlotForSave, IsSlotIgnoredForSave,
|
|
ClearIgnoredSlotsForSave, EquipmentSetContainsLockedItems, UseEquipmentSet, PickupEquipmentSet
|
|
|
|
## Events
|
|
C_EventUtils.IsEventValid, GetFramesRegisteredForEvent
|
|
|
|
## Expansion
|
|
GetClassicExpansionLevel, ClassicExpansionAtLeast, ClassicExpansionAtMost
|
|
|
|
## Faction
|
|
GetFactionIDByIndex, GetFactionInfoByID, GetFactionParentID, C_Reputation.GetFactionStandings,
|
|
C_Reputation.GetWatchedFactionData, C_Reputation.GetFactionDataByID, C_Reputation.GetFactionDataByIndex,
|
|
C_Reputation.SetSelectedFactionByID, C_Reputation.SetWatchedFactionByID,
|
|
C_Reputation.ToggleFactionAtWarByID, C_Reputation.IsFactionActive, C_Reputation.IsFactionActiveByID,
|
|
C_Reputation.SetFactionInactiveByID, C_Reputation.SetFactionActiveByID, C_Reputation.GetLastStandingChange
|
|
|
|
## Focus
|
|
FocusUnit, ClearFocus
|
|
|
|
## Frame
|
|
region:SetPoint (1-arg form), SetSize, GetSize, IsMouseOver, GetRect, IsDragging, GetMouseFoci,
|
|
SetShown, GetStringHeight, GetUnboundedStringWidth, GetWrappedWidth, GetNumLines, GetLineHeight,
|
|
IsTruncated, SetMaxLines, GetMaxLines, SetFormattedText, SetRotation, SetVertexOffset, SetMask,
|
|
CreateMaskTexture, AddMaskTexture, RemoveMaskTexture, GetNumMaskTextures, GetMaskTexture,
|
|
SetColorTexture, SetAtlas, GetAtlas, ResetTexCoord, SetSpriteSheetCell, SetDesaturation,
|
|
GetDesaturation, SetCursorPosition, GetCursorPosition, GetUTF8CursorPosition, ClearHighlightText,
|
|
HasFocus, HasText, SetHighlightColor, GetHighlightColor, ClearHistory, SetResizeBounds, HookScript,
|
|
IsEventRegistered, RegisterUnitEvent, GetEffectiveAlpha, SetAttribute, SetAttributeNoHandler,
|
|
ClearAttribute, GetAttribute, SetModernScriptArgs, GetModernScriptArgs, SecureCmdOptionParse,
|
|
RegisterStateDriver, UnregisterStateDriver, RegisterAttributeDriver, UnregisterAttributeDriver,
|
|
RegisterUnitWatch, UnregisterUnitWatch, UnitWatchRegistered, SecureButton_GetAttribute,
|
|
SecureButton_GetUnit, GetClickFrame
|
|
|
|
## FriendList (`C_FriendList`)
|
|
SendWhoQueryByName, IsWhoQueryPending, GetNumWhoResults, GetWhoInfo, IsFriend, IsIgnored,
|
|
IsIgnoredByGuid, GetNumFriends, GetNumOnlineFriends, GetFriendInfo, GetFriendInfoByIndex,
|
|
SetFriendNotes, SetFriendNotesByIndex
|
|
|
|
## GameObject (`C_GameObjectInfo`)
|
|
GetGameObjectInfoByID, RequestLoadGameObjectByID, ClosestGameObjectPosition
|
|
|
|
## GameTooltip
|
|
SetSpellByID, AddSpellByID, SetTalentByID, SetInventoryItemByID, SetHyperlinkCompareItem,
|
|
IsEquippedItem, SetItemByGUID, SetEquipmentSet, SetTotem, GetItem, GetSpell, HasItem, HasSpell,
|
|
GetUnit, GetUnitGUID, HasUnit, GetGameObject, HasGameObject, GetOwner
|
|
|
|
## Glue (`C_Glue`)
|
|
IsFirstLoadThisSession, IsOnGlueScreen
|
|
|
|
## Gossip (`C_GossipInfo`)
|
|
GetText, GetOptions, GetAvailableQuests, GetActiveQuests, GetNumOptions, GetNumAvailableQuests,
|
|
GetNumActiveQuests, SelectOption, SelectOptionByIndex, SelectAvailableQuest, SelectActiveQuest,
|
|
CloseGossip
|
|
|
|
## Hooks
|
|
hooksecurefunc (both forms)
|
|
|
|
## Input
|
|
IsLeftShiftKeyDown, IsRightShiftKeyDown, IsLeftControlKeyDown, IsRightControlKeyDown,
|
|
IsLeftAltKeyDown, IsRightAltKeyDown, IsModifierKeyDown, IsMouseButtonDown, GetMouseButtonClicked
|
|
|
|
## Instance
|
|
GetInstanceInfo
|
|
|
|
## Item (`C_Item`)
|
|
DoesItemExist, DoesItemExistByID, EquipItemByName, GetCurrentItemLevel, GetDetailedItemLevelInfo,
|
|
GetItemCount, GetItemData, GetItemDataByID, GetItemFamily, GetItemGUID, GetItemID, GetItemInfo,
|
|
GetItemInfoInstant, GetItemInventorySlotInfo, GetItemInventorySlotKey, GetItemInventoryType,
|
|
GetItemInventoryTypeByID, GetItemLink, GetItemLocation, GetItemMaxStackSize,
|
|
GetItemMaxStackSizeByID, GetItemName, GetItemNameByID, GetItemQuality, GetItemQualityByID,
|
|
GetItemSellPrice, GetItemSellPriceByID, GetItemSetID, GetItemSetIDByID, GetItemSetInfo,
|
|
GetItemSpell, GetItemStatDelta, GetItemStats, GetItemClassInfo, GetItemSubClassInfo,
|
|
GetItemUniqueness, GetItemUniquenessByID, GetStackCount, GetWeaponEnchantInfo,
|
|
GetItemTempEnchantInfo, GetEnchantInfo, IsBound, IsConsumableItem, IsEquippableItem, IsUsableItem,
|
|
IsEquippedItem, IsItemDataCachedByID, IsItemDataCached, IsItemGUIDInInventory, IsItemInRange,
|
|
IsItemOpenable, IsLocked, LockItem, LockItemByGUID, PickupItem, RequestLoadItemDataByID,
|
|
RequestLoadItemData, UnlockAllItems, UnlockItem, UseAtCursor, UseAtUnit, UseItemByName,
|
|
GetAverageItemLevel, GetInventoryItemDurability, GetInventoryItemID, GetInventoryItemRepairCost,
|
|
GetInventoryItemsForSlot, GetItemIcon, GetItemIconByID, OffhandHasWeapon
|
|
|
|
## Loot (`C_Loot`)
|
|
GetNearbyLootableUnits, LootUnit, LootUnitItem, ScanNearbyLoot, LootAllCorpses, IsScanInProgress,
|
|
GetLastScanResults
|
|
|
|
## LootHistory (`C_LootHistory`)
|
|
GetNumItems, GetItem, GetPlayerInfo
|
|
|
|
## LossOfControl (`C_LossOfControl`)
|
|
GetActiveLossOfControlDataCount, GetActiveLossOfControlData, GetSchoolLockout
|
|
|
|
## Lua
|
|
select, unpack, xpcall, collectgarbage, table.wipe, table.count, table.maxn, Mixin,
|
|
CreateFromMixins, strsplit, strjoin, strtrim, strreplace, string.reverse, strrev, math.fmod,
|
|
math.modf, coroutine.create, coroutine.resume, coroutine.yield, coroutine.status, coroutine.wrap,
|
|
coroutine.running
|
|
|
|
## Macros
|
|
CastSpellNoToggle (macro line), StopMacro, GetMacroSpell, GetMacroItem, GetMacroIcons,
|
|
GetMacroItemIcons, GetLooseMacroIcons, GetLooseMacroItemIcons, C_Macro.CreateMacro,
|
|
C_Macro.EditMacro, C_Macro.GetMacroIcon, C_Macro.SetMacroDisplay
|
|
|
|
## Mail
|
|
GetSendMailItemLink, GetInboxItemLink
|
|
|
|
## Map (`C_Map`)
|
|
CanSetUserWaypointOnMap, GetAreaInfo, GetAreas, GetAreaTriggerInfo, GetAreaTriggers,
|
|
GetBestMapForUnit, GetFallbackWorldMapID, GetMapAreaIDs, GetMapArtLayers, GetMapArtLayerTextures,
|
|
GetMapChildrenInfo, GetMapInfo, GetMapInfoAtPosition, GetMapOverlays, GetMapPosFromWorldPos,
|
|
GetMapRectOnMap, GetMapWorldSize, GetPlayerMapPosition, GetUserWaypoint, HasUserWaypoint,
|
|
ClearUserWaypoint, GetUserWaypointHyperlink, GetUserWaypointFromHyperlink,
|
|
GetUserWaypointPositionForMap, GetWorldPosFromMapPos, MapHasArt, SetUserWaypoint
|
|
|
|
## MapExplorationInfo (`C_MapExplorationInfo`)
|
|
GetExploredMapTextures, GetUnexploredMapTextures
|
|
|
|
## MerchantFrame (`C_MerchantFrame`)
|
|
GetItemInfo, GetBuybackItemID, GetNumJunkItems, SellAllJunkItems, IsMerchantItemRefundable,
|
|
IsSellAllJunkEnabled
|
|
|
|
## Model
|
|
model:SetDisplayInfo, model:SetCreature
|
|
|
|
## ChatBubbles (`C_ChatBubbles`)
|
|
GetAllChatBubbles
|
|
|
|
## NamePlate (`C_NamePlate`)
|
|
GetNamePlates, GetNamePlateGUIDs, GetNamePlateForUnit, GetNamePlateForGUID
|
|
|
|
## NameCache
|
|
GetPlayerInfoByGUID, UnitNameFromGUID, C_PlayerCache.GetPlayerInfoByName,
|
|
C_PlayerCache.RememberPlayer, C_PlayerCache.SetEnabled, C_PlayerCache.IsEnabled,
|
|
C_PlayerCache.SetScanEnabled, C_PlayerCache.IsScanEnabled
|
|
|
|
## NewItems (`C_NewItems`)
|
|
IsNewItem, RemoveNewItem, ClearAll
|
|
|
|
## PlayerInfo (`C_PlayerInfo`)
|
|
CanUseItem, GUIDIsPlayer, GUIDIsCreature, GUIDIsPet, GUIDIsGameObject, GetName, GetClass, GetRace,
|
|
GetSex, IsConnected
|
|
|
|
## Quest (`C_QuestLog`)
|
|
GetInfo, GetQuestLogTitle, GetQuestIDForLogIndex, GetLogIndexForQuestID, GetHeaderIndexForQuest,
|
|
RequestLoadQuestByID, IsOnQuest, IsUnitOnQuest, GetTitleForQuestID, GetQuestDetails,
|
|
GetNumQuestObjectives, IsQuestDataCachedByID, GetQuestLogLeaderBoardID
|
|
|
|
## Sound
|
|
PlaySound (both forms), C_Sound.PlaySound, C_Sound.PlaySoundWithOptions,
|
|
C_Sound.GetSoundScaledVolume, C_Sound.IsPlaying, C_Sound.PlayItemSound,
|
|
C_Sound.PlayVocalErrorSound, MuteSoundFile, UnmuteSoundFile, C_Sound.GetRecentSoundFiles
|
|
|
|
## Spell (`C_Spell`, plus several bare globals)
|
|
DoesSpellExist, GetSchoolString, GetSpellInfo (both forms), GetSpellName, GetSpellTexture,
|
|
GetSpellLink (both forms), GetSpellDescription, GetSpellMechanicByID, GetSpellEffectInfo,
|
|
GetSpellEffectMechanics, GetSpellDispelType, GetSpellRadius (both forms), GetSpellPowerCost,
|
|
GetSpellReagents, GetSpellCastCount, GetSpellSubtext, IsPassiveSpell (both forms),
|
|
IsSpellPassive, IsPlayerSpell, CanDualWield, IsSpellKnown, GetSpellBonusDamage,
|
|
GetSpellBonusHealing, IsUsableSpell (both forms), IsSpellUsable, GetSpellCooldown,
|
|
GetSpellLossOfControlCooldown, IsCurrentSpell, IsSelfBuff, SpellHasRange (both forms),
|
|
IsSpellInRange, IsAutoAttackSpell, IsRangedAutoAttackSpell, IsNextMeleeSpell, ResetsMeleeSwing,
|
|
IsHarmfulSpell, IsHelpfulSpell, IsSpellHarmful, IsSpellHelpful, GetSpellSchool,
|
|
CastSpellNoToggle, CastAtCursor, CastAtUnit, CancelSpellByID, CancelSpellByName,
|
|
UnitCastingInfo, CastingInfo, UnitChannelInfo, ChannelInfo, GetSpellLevelInfo,
|
|
GetSpellRequiredTargetLevel
|
|
|
|
## SpellBook (`C_SpellBook`)
|
|
FindSpellBookSlotByID, GetSpellBookItemInfo, GetNumSpellBookSkillLines, GetSpellBookSkillLineInfo,
|
|
GetSpellBookItemSkillLineIndex, GetSkillLineIndexByID, GetSpellBookItemCastCount,
|
|
GetSpellBookItemLossOfControlCooldownInfo, GetSpellBookItemLossOfControlCooldownDuration,
|
|
IsClassTalentSpellBookItem, ContainsAnyDisenchantSpell, GetSpellLevelLearned,
|
|
GetCurrentLevelSpells, GetPlayerSpellsByAura, GetSkillLineName, GetSkillLineRank,
|
|
GetSpellSkillLine, IsAutoAttackSpellBookItem, IsRangedAutoAttackSpellBookItem
|
|
|
|
## State
|
|
IsMounted, Dismount, IsStealthed, IsFalling, IsSwimming, IsIndoors, IsOutdoors,
|
|
IsAssistingRitual, IsInGroup, IsInRaid, GetMirrorTimerInfo, GetMirrorTimerProgress,
|
|
GetShapeshiftFormID, CancelShapeshiftForm, GetSheathState
|
|
|
|
## SwingTimer (`C_SwingTimer`)
|
|
EnableRangeCheck, IsTargetWithinSwingRange
|
|
|
|
## System
|
|
GetPhysicalScreenSize, CopyToClipboard
|
|
|
|
## Talent
|
|
GetTalentSpellID, GetTalentIDByIndex
|
|
|
|
## Targeting
|
|
GetPlayerFacing, TargetDirectionEnemy, TargetDirectionFriend, TargetNearest,
|
|
TargetNearestEnemyPlayer, TargetNearestFriendPlayer
|
|
|
|
## TaxiMap (`C_TaxiMap`)
|
|
GetTaxiNodesForMap, GetAllTaxiNodes, GetTaxiPaths, GetTaxiPathWaypoints, GetTaxiRoute
|
|
|
|
## Texture (`C_Texture`)
|
|
GetAtlasInfo, GetAtlasExists, GetAtlasID, GetAtlasElementID, GetAtlasElements, RegisterAtlas
|
|
|
|
## Time
|
|
GetServerTime, GetTimeCached, C_Timer.After, C_Timer.NewTimer, C_Timer.NewTicker,
|
|
C_DateAndTime.GetCurrentCalendarTime, C_DateAndTime.GetCalendarTimeFromEpoch,
|
|
C_DateAndTime.AdjustTimeByDays, C_DateAndTime.AdjustTimeByMinutes,
|
|
C_DateAndTime.CompareCalendarTime, C_DateAndTime.GetServerTimeLocal,
|
|
C_DateAndTime.GetSecondsUntilDailyReset
|
|
|
|
## Totem
|
|
GetTotemInfo, GetTotemTimeLeft, GetTotemDuration, TargetTotem
|
|
|
|
## Tracking
|
|
GetNumTrackingTypes, GetTrackingInfo, SetTracking
|
|
|
|
## TradeSkillUI (`C_TradeSkillUI`)
|
|
GetTradeSkillListLink, GetCraftListLink, GetTradeSkillListRecipes
|
|
|
|
## UIColor (`C_UIColor`)
|
|
GetColors
|
|
|
|
## Unit
|
|
UnitGUID (done), UnitTokenFromGUID (done), UnitTokenFromName, UnitSubName, UnitCreatureFamilyID,
|
|
UnitCreatureTypeID, UnitCreatureID, GetUnitSpeed, UnitClassBase, UnitRaceBase, UnitIsAFK,
|
|
UnitIsDND, UnitIsFeignDeath, UnitIsInMyGuild, UnitIsPossessed, UnitIsMinion, UnitIsPet,
|
|
UnitIsOtherPlayersPet, UnitOwnerGUID, UnitCreatedBySpell, UnitStandState, UnitInRange,
|
|
UnitDistanceSquared, UnitPosition, UnitInLineOfSight, ClosestUnitPosition, UnitHealthMissing,
|
|
UnitPower, UnitPowerMax, UnitPowerMissing, UnitPowerType, UnitSpellHaste, UnitSpellTargetName
|
|
|
|
## UnitAuras (`C_UnitAuras`)
|
|
GetAuraDataByIndex, GetBuffDataByIndex, GetDebuffDataByIndex, UnitAura, UnitBuff, UnitDebuff,
|
|
GetAuraSlots, GetAuraDataBySlot, UnitAuraBySlot, GetUnitAuraBySpellID, GetPlayerAuraBySpellID,
|
|
GetAuraDataBySpellName, RegisterComboDuration, RegisterAuraDurationModifierByTrigger,
|
|
GetUnitAuras, GetAuraDispelTypeColor
|
|
|
|
## VoiceChat (`C_VoiceChat`)
|
|
GetTtsVoices, GetRemoteTtsVoices, SpeakText, StopSpeakingText
|
|
|
|
## XMLUtil (`C_XMLUtil`)
|
|
GetTemplates, GetTemplateInfo, DoesTemplateExist
|