by Nethaera | 23/05/2007 21:24:06

- Lua errors are no longer shown by default, but you can set the scriptErrors cvar to 1 to enable them. It is recommended that AddOn authors and testers leave this turned on so you can catch problems in your AddOns. This is implemented by code in the _ERRORMESSAGE() function, so if you already have an improved error message AddOn, this will not affect you.
- Improved UI loading time and memory usage when parsing XML files.
- User Interface Scripting
[ul]
- Macro Features:
[ul]
- New conditional [flyable] which is true if you're in a location where you could use a flying mount
- You can use %f in chat text to refer to your focus, the same way %t or %n refers to your target.
- Added macro option support for /dismount
- Macros containing conditionals will automatically update their visual feedback as appropriate during play.
- #show and #showtooltip can be given conditionals and will update dynamically
- #show and #showtooltip can be given a slot number, to display the appropriate feedback for that slot
- Added bag and slot number support to: /castsequence, /cast, /castrandom, /use, /userandom, /equip, /equipslot
- New slash command /cancelform
- The /equip command can take item identifiers specified as item:[id]: e.g. /equip [modifier:alt] item:25640
- You can provide several conditional clauses for a single action, which will be performed if any of the clauses evaluates to true. e.g. /cast [target=target,help,nodead] [target=targettarget,help,nodead] [target=player] Flash of Light
AddOn Features:
- New TOC field: LoadManagers - When the game loads, each AddOn listed in this field is loaded in order until one successfully loads. If one of these are loaded, then the AddOn is then loaded on demand.
UIPanel Frame Management:
- The UI panel layout code now uses frame attributes instead of variables to manage layout. This allows well written AddOns to customize the layout without blocking protected panels in combat.
UIParent Attributes:
- DEFAULT_FRAME_WIDTH - The default width of a single pane UI panel (default 384)
- TOP_OFFSET - The offset from the top of the screen (default -104)
- LEFT_OFFSET - The offset of the left panel from the left side of the screen (default 0)
- RIGHT_OFFSET_BUFFER - The amount of space to leave open on the right side of the screen (default 80)
UI Panel Attributes (initial values come from the UIPanelWindows table):
- UIPanelLayout-defined - True if the frame has layout attributes defined.
- UIPanelLayout-enabled - True if the frame should be handled by the UI panel layout system.
- UIPanelLayout-area - One of "left", "center", "right"
- UIPanelLayout-width - The effective width of the UI panel, used as an override for frame:GetWidth()
- UIPanelLayout-pushable - If specified as a value greater than 0, this is the priority used when sliding frames to the right when a new frame is opened.
- UIPanelLayout-whileDead - True if the frame can be opened while the player is dead.
Secure Templates:
- For "item" buttons, name can be an item ID or item link.
- Action buttons will automatically update if their action attribute changes.
- The SecureStateHeaderTemplate now supports a small stack of saved states that can be used in state transition rules via push/pop/swap actions (See the header file for usage information)
- Added a generalized state driver that uses conditional macro syntax. e.g.: RegisterStateDriver(header, "stance", "[stance:1] 1; [stance:2] 2; [stance:3] 3; [stance:4] 4; [stance:5] 5; [stance:6] 6; [stance:7] 7; 0");
Memory Profiling:
- Script memory is now tracked on a per-addon basis, with functions provided to analyze and query usage.
- The script memory manager has been optimized and the garbage collection tuned so there is no longer any need for a hard cap on the amount of UI memory available.
- NEW - UpdateAddOnMemoryUsage() - Scan through memory profiling data and update the per-addon statistics
- NEW - usedKB = GetAddOnMemoryUse(index or "name") - Returns the total memory used by the specified AddOn. This returns a cached value calculated by UpdateAddOnMemoryUsage().
|