Thread Tools Display Modes
12-28-05, 01:32 PM   #1
Cairenn
Credendo Vides
 
Cairenn's Avatar
Premium Member
WoWInterface Admin
Join Date: Mar 2004
Posts: 7,134
Upcoming 1.9 Changes

Important Note for Mac OS X Users

The minimum supported Mac OS X revision for WoW will be changed in a post-1.9.0 patch, from 10.3.5 to 10.3.9. If you are running 10.3.5 - 10.3.8 and need to get the free update, you can use Software Update or you can click here for the direct download. This change will make it easier for us to release future updates to the game, for example to support upcoming Mac models based on Intel processors.


Iriel has started the (traditional) "Consolidated Changes Thread" on the Blizz forum, here.

Updated 8 Dec 05

Layout Engine
* Optimization of the entire Layout Engine.
* Game loading time should be improved.
* Scrolling speed of EULA/ToS greatly increased.
* Circular parent loops will result in a LUA error instead of client crash.

LUA Libraries
* bitlib will is now available in the WoW API (the bit namespace)

Bug Fixes
* Better range checking on GetPlayerBuffApplications
* Setting a Frame's parent to itself or one of its descendants will generate a Lua error rather than a client crash.
* Putting malformed item links into GetItemInfo no longer causes occasional client crashes.
* Text/button misalignment at bottom of guild window should be fixed.
* UIParent:SetFrameStrata("TOOLTIP") no longer crashes the client.
* AutoFollowStatus is anchored to the WorldFrame rather than UIParent.
* EquipCursorItem(slot) will use consisent slot numbers with the other inventory slot functions (you must update macros which put things in specific slots by adding one to the slot number used currently)
* Fixed SimpleHTML hyperlink active area placement issue (Where sometimes the link area didn't line up with the text)
* (Observed) Frames in the TOOLTIP stratum now properly receive mouse events.
* Fixed crash bug on CheckButton:GetText()
* Fixed crash bug on CancelTrackingBuff() - Used to crash when no such buff was active.
* Enslaved pets get any missing skills returned to their pet bars on login.
* Fixed issue when unregistering UNIT_AURA event {Not in Dec 4 build}
* Fixed cursor position issue in EditBox {Not in Dec 7 build}
* Fixed SimpleHTML "< br >\n" issue {Not in Dec 7 build}

XML
* Blizzard addons will have correct schemaLocation path (I guess we authors need to do ours also)
* Various XML validity fixes in Blizzard AddOn/FrameXML code.
* As part of layout optimization, inherited child frames are not instantiated until the whole inheriting frame has been loaded (This means you cannot anchor things to them in the inheriting XML)

AddOns
* NOT_DEMAND_LOADED error detection will be performed after all other errors have been checked (So that reason doesn't mask 'real' load-time errors)
* New TOC entry ## LoadWith: AddonName - Indicates that your addon should be loaded if ANY of the addons specified on the LoadWith line are loaded. (NOTE: Your addon CAN be loaded manually before its LoadWith's so code defensively by registering for the ADDON_LOADED event and using IsAddonLoaded) (See slouken's post below for more details)
* The capitalization of arg1 when loading an addon will match the directory in which the addon is installed (rather than the name by which it's loaded, which may be incorrect as a dependency).
* Addon files will ONLY be loaded from their 'appropriate' directories (i.e. not from the main game directory, even if they're present)

API Changes
* The 8th return value from GetItemInfo will no longer be localized, and instead will be one of a number of INVTYPE_ tokens (See slouken's post below), localized versions are obtained by calling getglobal on the returned token.
* A new 9th return value from GetItemInfo which will be the inventory texture for the item.
* debugprofilestop() will now return sub-milisecond (floating point) values.
* UnitIsUnit(x,y) will return nil if either of the units does not presently exist (Unless x==y, in which case it returns true)
* Added stacktext = debugstack([start[,startCount[,endCount]]]) - Returns string representation of current execution stack (Start - how deep to start (defaults to 1- the function calling debugstack), startCount - the number of functions to list at the start of the list (defaults to 12), endCount - the number of functions to list at the end of the list (defaults to 10) (If any functions are skipped, a ... is added to the result)). {Not in Dec 7 PTR build}

Frame Methods
* Added Texture:GetTexture() which returns the filename (without extension) of the file for the texture.
* Added FontString:SetNonSpaceWrap(true|false)
* Added Frame:GetFrameType() which returns the type of a frame.
* Added Frame:IsFrameType("typeName") which returns true if the frame is of type typeName, OR a subtype of typeName.
* New 8-param form of Texture:SetTexCoord(ULx, ULy, LLx, LLy, URx, URy, LRx, LRy)
* With 1.9 frame scales are calculated as frameEffectiveScale = frameScale * parentEffectiveScale, rather than being simply frameScale with parent scale changes actually changing child frame scale values.
* Added Frame:GetEffectiveScale() to return the new effective scale (Replace old calls to Frame:GetScale() with this for the 'old' result)
* Textures and FontStrings both will have the :IsShown() method (returns true if object would be visible if the parent was visible)
* Querying location of a hidden frame should cause the layout engine to resolve its location and return valid results.
* Added Button:SetFont("font", fontHeight [, flags]), which works exactly like the FontString function of the same name.
* Added EditBox:SetFont("font", fontHeight [, flags]), which works exactly like the FontString function of the same name.
* Added ScrollingMessageFrame:SetFont("font", fontHeight [, flags]), which works exactly like the FontString function of the same name.
* Added Frame:UnregisterAllEvents() which unregisters all of a frame's events.
* Added font,fontHeight,flags=FontString:GetFont() which returns font information as needed by SetFont.
* Added font,fontHeight,flags=Button:GetFont() which returns font information as needed by SetFont.
* Added font,fontHeight,flags=EditBox:GetFont() which returns font information as needed by SetFont.
* Added font,fontHeight,flags=ScrollingMessageFrame:GetFont() which returns font information as needed by SetFont.

FrameXML Changes
* New file FrameXML\GameTooltipTemplate.xml which contains the GameTooltipTemplate virtual frame.
* BuffButtonHarmful's template's border texture will have a name (Likely $parentBorder)
* Blizzard scrolling frames will have textures re-anchored to address above instantiation change.

Saved Variables + Settings
* Per-Character Saved Variables will become per-realm also (Stored in WTF\Account\{account}\{realm}\{character}\ ) - Existing per-character settings will be read from their old location if not present in the new for compatibility.
* WoW will remove the account level SavedVariables file for an addon which has no ## SavedVariables: TOC entry (or which has one that lists no variables) on logout.
* Key bindings for LoadOnDemand addons will not be lost between sessions if the addon is not loaded (The bindings will however be inactive until the addon loads)
* Saved variables will ONLY be loaded from their 'appropriate' directories (i.e. not from the main game directory, even if they're present)

Macros
* The existing 18 supported 'global' macros remain.
* There are an additional 18 per-character macros (ID's 19-36).
* Macro numbers outside of these ranges will be blocked by the API.

Key Bindings
* Keybindings are saved on logout instead of immediately, like all other settings.
* In a multi-line edit box, End goes to the end of the current line, rather than end of all lines (Ctrl+End may do that??) {Not in Dec 4 PTR}

Localization
* Each locale's build will have a variable that is true in that build only: LOCALE_enGB, LOCALE_enUS, LOCALE_frFR, LOCALE_deDE, LOCALE_koKR, LOCALE_zhCN, LOCALE zhTW

Notes/Recommendations
* The Strata of a frame really shouldn't be changed around - It should be set once.
* Do NOT try and change the strata of UIParent or WorldFrame.
* Make sure that conditionally shown frames start off with hidden="true" in their XML (for performance, especially in 1.9)

UPDATED FOR DEC 4th PTR BUILD
See this thread for the actual API changes detected.

Last edited by Cairenn : 08-01-08 at 03:15 AM.
  Reply With Quote
12-28-05, 01:32 PM   #2
Cairenn
Credendo Vides
 
Cairenn's Avatar
Premium Member
WoWInterface Admin
Join Date: Mar 2004
Posts: 7,134
Slouken:

The eighth return value of GetItemInfo() will no longer be localized, and will instead be a token from the following list:

"",
"INVTYPE_HEAD",
"INVTYPE_NECK",
"INVTYPE_SHOULDER",
"INVTYPE_BODY",
"INVTYPE_CHEST",
"INVTYPE_WAIST",
"INVTYPE_LEGS",
"INVTYPE_FEET",
"INVTYPE_WRIST",
"INVTYPE_HAND",
"INVTYPE_FINGER",
"INVTYPE_TRINKET",
"INVTYPE_WEAPON",
"INVTYPE_SHIELD",
"INVTYPE_RANGED",
"INVTYPE_CLOAK",
"INVTYPE_2HWEAPON",
"INVTYPE_BAG",
"INVTYPE_TABARD",
"INVTYPE_ROBE",
"INVTYPE_WEAPONMAINHAND",
"INVTYPE_WEAPONOFFHAND",
"INVTYPE_HOLDABLE",
"INVTYPE_AMMO",
"INVTYPE_THROWN",
"INVTYPE_RANGEDRIGHT",

You can get the localized text for each token by calling getglobal on the token (e.g.)
getglobal("INVTYPE_ROBE")

The other GetItemInfo() return values will remain localized.
  Reply With Quote

WoWInterface » Site Forums » News » Upcoming 1.9 Changes


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off