Thread: 1.7 Patch Notes
View Single Post
09-13-05, 09:05 AM   #6
Cairenn
Credendo Vides
 
Cairenn's Avatar
Premium Member
WoWInterface Admin
Join Date: Mar 2004
Posts: 7,134
User Interface
  • New "Dressing Room" Interface now available! If you control-left click on any item, item reference (vendors, quests) or item link (chat), a UI panel will appear showing your character wearing that item. You can then use the same command (control-left click) on additional items to add to the preview appearance. In addition, the Auction House now has a checkbox in the upper right-hand corner; if checked, any item you click on within the Auction House will automatically be previewed on your character.
  • Need Before Greed and Group Loot options have been improved. The rolling window that appears when an item of the threshold and above is looted now has three buttons: a Need button (the dice), a Greed button (the coin), and a close button. Any players who select Need will get a chance to roll first for the item, with the high roller winning. If no one selects Need, all characters who selected Greed will then roll, with the highest roll winning the item. If everyone closes the window, the item becomes lootable by anyone in the group.
  • You can now disable the slow scrolling of text when you are receiving a new quest.
  • Opening the overhead map will now "ping" your location your map (to make it easier to notice your location when there are many friendlies nearby on the overhead map).
  • The overhead map now displays a directional icon for your character.
  • Spell effects that stack multiple times on a character will now display a number in the bottom corner indicating how many times the effect has stacked. For example, if a player has had the Sunder Armor ability used on them three times, the Sunder Armor effect icon will display a 3 in the corner.
  • A confirmation dialog is now shown when you choose to make an Inn your home.
  • The tooltip for spells like Seal of the Crusader correctly reflects the benefit of the spell, instead of occasionally being off by one.
  • Using /random will now send the text to your party or raid wherever they are instead of the local area around the player that used /random.
  • When in a raid group, the group you are in will now appear above your name next to your portrait.
  • Mail recipient name completion now works with offline guild members even if you are not showing them in the guild UI.
  • Guild ranks and player notes are now filtered by the profanity filter.
  • The temporary mana cost reduction of Burst of Knowledge and similar effects is now reflected in tooltips.
  • Quest rewards are now linked in chat like other items gained.
  • You can auto-equip items while in flight by right clicking on them, as you would normally.
  • You can now use the Escape key to exit out of pop up dialogues.
  • Fixed bug preventing the Release Spirit dialog from showing if you die while jumping in lava.
  • Fixed lua error when relinking poor and standard quality items from loot messages.
  • Consumable items on the action bar will now always show the number remaining, even if there are none in your inventory.
  • You can create the directory Interface\Icons, and any 32x32 .blp or .tga files you put in there will be available in the icon list for your macros.
  • Pet spells in macros are now supported, both using /cast and using CastSpellByName().
  • If you omit the rank of a spell in /cast or CastSpellByName(), it will use the highest rank of the spell which you know.
  • While it will still be possible to override files in Interface/FrameXML, doing so is discouraged (and is likely to become impossible in a future release). Significant API additions are being made to eliminate the need for such direct FrameXML changes.
  • You will now be able to list .lua files directly in the addon .toc file.
  • The SetPoint() and SetAllPoints() script functions can take an actual frame instead of a frame name.
  • TargetNearest* script functions will only work in response to a button click or a key binding, to discourage addons which scan the battlefield for targets.
  • Addon-specific Saved Variables!
    • Each addon's saved variables will be saved in the file WTF\Account\{accountname}\SavedVariables\{addonname}.lua, and will only be loaded when the addon is loaded.

      IMPORTANT: The first time you enter the game with this change, you must make sure all your addons are enabled, or their saved variables will be lost! If you accidentally do this once, you can recover by quitting the game, moving your backup SavedVariables.lua into place and restarting the game with addons enabled.
  • Addon Loading On Demand!
    • If you add the following line to your addon's .toc file, it will not be loaded at the normal load time, it will instead be dynamically loaded upon request:

      ## LoadOnDemand: 1

      You can query to see if an addon is loaded by using the new IsAddOnLoaded("addonname") function, and you can load an addon dynamically using the LoadAddOn("addonname") function. This function returns true if the addon is loaded successfully, and can be safely and efficiently called even if the addon is already loaded.

      For your convenience, the function UIParentLoadAddOn("addonname") is provided which will attempt to load the addon and pop up an error message if it failed to load for any reason.

      Once an addon is loaded, the ADDON_LOADED event is sent, with arg1 set to the name of the addon. An addon can listen for that event, and when it recieves that event with it's own name, it can safely access its saved variables.

      An important thing to note is that when an addon is loaded dynamically, it doesn't have access to any of the virtual frame templates that are defined by FrameXML, including font definitions.
  • New Scripting Functions
    • debugprofilestart() - starts a timer for profiling during debugging.
    • millis = debugprofilestop() - return the time in milliseconds since the last call to debugprofilestart()
  • New UI Element Member Functions
    • handlerFunction = Frame:GetScript("handler") - (for handlers like "OnShow", "OnEnter", etc) which returns the current event handler for a frame.
    • Frame:SetScript("handler", function) - sets the action/event handler for a frame (or removes it with a nil function)
    • Frame:SetBackdrop(nil) / Frame:SetBackdrop({bgFile = "bgFile", edgeFile = "edgeFile", tile = false, tileSize = 0, edgeSize = 32, insets = { left = 0, right = 0, top = 0, bottom = 0 }}) (Note: This is a table argument)
    • FontString:SetFont("font", size [, "flags"]).
    • StatusBar:SetStatusBarTexture("file" [, "layer"])
    • lines = ScrollingMessageFrame:GetMaxLines()
    • ScrollingMessageFrame:SetMaxLines(lines)
    • ScrollingMessageFrame:EnableFading([isEnabled]) (Defaults to true)
    • ScrollingMessageFrame:SetFadeDuration(seconds)
    • ScrollingMessageFrame:SetTimeVisible(seconds)
    • ScrollingMessageFrame:Clear()
    • lines = EditBox:GetHistoryLines()
    • EditBox:SetHistoryLines(lines)
    • EditBox:SetIgnoreArrows([isIgnored]) (Defaults to true)
    • r,g,b,a = FontString:GetTextColor()
    • Frame:SetParent(nil, or "parent" or parentFrame)
    • numChildren = Frame:GetNumChildren()
    • child1, child2, child3, ... = Frame:GetChildren()
  • Addon Saved Variables
    • SavedVariables will no longer drop stored numbers to single precision.
    • Infinite/Nan values no longer cause corrupted SavedVariables.lua file. (Written as nils with comment)
  Reply With Quote