Thread Tools Display Modes
06-13-13, 02:18 AM   #1
Dridzt
A Pyroguard Emberseer
 
Dridzt's Avatar
AddOn Author - Click to view addons
Join Date: Nov 2005
Posts: 1,359
Assorted 5.4.0 API changes

Legend
New|Modified|Breaking Change|Removed
Changes up to build: 17345 "release"
##Interface: 50400
leaky _ fixed in 17191
Oscarucb was kind enough to forward me a notice about changes to the tradeskill links.
Instead of copy-pasting I'll just add a link to the post on Wowace so discussion can happen in a single place.
5.4 changes to tradeskill hyperlinks

A whole bunch of Arena Team related events, API and widgets have been removed from various parts of the game (guild frame, calendar, unitpopup, petition, itemref, etc,etc)
Might try to go into more details later but essentially if you had any code that relates to arena teams it's broken.

Auction
Code:
local name, texture, count, quality, canUse, level, levelColHeader, minBid, minIncrement,
    buyoutPrice, bidAmount, highBidder, bidderFullName, owner, ownerFullName, 
    saleStatus, itemId, hasAllInfo =  GetAuctionItemInfo("bidder", index)
The 2 colored returns have been inserted before and after 'owner' pushing it to #14 from #13 and the last 3 returns by 2 places.

Auto-complete
Code:
GetAutoCompleteRealms(realms)
Auto-complete works in 2 steps after checking if the player has typed a realm separator '-' it runs this function.
Fills the passed table with realm names (array {"realmName1","realmName2",...}).

Unit Info
Code:
local unitName = GetUnitName(unitid[,showServer]) -- UnitFrame.lua
returns 'name-realm' instead of 'name - realm' (spaces removed) and most commands that accept a unitname now, work with 'name-server' format (/invite, /ginvite, /trade etc)
Code:
local sameServer = UnitIsSameServer("otherUnit")
-- was UnitIsSameServer("unit","otherUnit").
Function now takes only 1 parameter "otherUnit" and checks against "player" by default.
Code:
local isValid = BNIsFriendConversationValid(index)
globalstring
CONVERSATION_INCOMPATIBLE_CLIENT = "This friend is not using a client capable of conversations.";

X-Realms are now called 'Coalesced' and have FOREIGN_SERVER_LABEL enUS: ' (*)' appended to the name when showServer=nil/false (same as in 5.3).
Virtual-Realms are called 'Connected' and have INTERACTIVE_SERVER_LABEL enUS: ' (#)' appended to the name.
Code:
local relationship = UnitRealmRelationship("unit") 
relationship is one of the following constants:
LE_REALM_RELATION_VIRTUAL|LE_REALM_RELATION_COALESCED|LE_REALM_RELATION_SAME
Code:
local guildName, guildRankName, guildRankIndex, realm = GetGuildInfo("unit")
realm is a new return.
REALM_SEPARATORS = "-@#*"; --Interesting globalstring, seems more than just '-' will be used.
'-x' option added to /who -option"searchstring" for exact match (guessing to allow limiting results when you know the fullname to search for 'player-server')

Flex-Raid
New event: "INSTANCE_GROUP_SIZE_CHANGED"
Code:
local name, instanceType, difficultyID, difficultyName, maxPlayers, playerDifficulty,
    isDynamicInstance, mapID, instanceGroupSize = GetInstanceInfo()
'instanceGroupSize' = maxPlayers for fixed size raids, holds the actual raid size for the new flexible raid (between (8?)10 and 25)
'difficultyID' for Flexi raid is (probably placeholder) 14 on first PTR build.
Code:
local id = GetBestFlexRaidChoice()
Code:
local numFlexDungeons = GetNumFlexRaidDungeons()
Code:
local id, name, typeID, subtype, minLevel, maxLevel = GetFlexRaidDungeonInfo(i) 
-- i = 1, GetNumFlexRaidDungeons()
Code:
local name, typeID, subtypeID, minLevel, maxLevel, recLevel, minRecLevel, maxRecLevel, 
   expansionLevel, groupID, textureFilename, difficulty, maxPlayers, description,
    isHoliday, repAmount, forceHide = GetLFGDungeonInfo(dungeonID)
FLEX_RAID_SHOW_LEVEL = 90; --constant
LFG_SUBTYPEID_FLEXRAID = 5; --constant has been added as a possible return for subtypeID.
PLAYER_DIFFICULTY4 = "Flexible"; globalstring

Proving Grounds
Event: "PROVING_GROUNDS_SCORE_UPDATE" Argument: score
CHALLENGE_MEDAL_PLAT -- new constant; used in proving grounds endless mode.
Code:
local diffID, currWave, maxWave, duration = C_Scenario.GetProvingGroundsInfo()
Code:
local inProvingGround = IsInProvingGround() -- UI function (watchframe.lua)
RaidInfo
Code:
local savedWorldBosses = GetNumSavedWorldBosses()
Code:
local bossName, worldBossID, bossReset = GetSavedWorldBossInfo(i); 
-- i = 1,GetNumSavedWorldBosses()
instanceID for worldbosses: 322
globalstrings
WORLD_BOSS_FOUR_CELESTIALS = "The Four Celestials";
WORLD_BOSS_GALLEON = "Galleon";
WORLD_BOSS_NALAK = "Nalak";
WORLD_BOSS_OONDASTA = "Oondasta";
WORLD_BOSS_ORDOS = "Ordos";
WORLD_BOSS_SHA_OF_ANGER = "Sha of Anger";

Code:
local inParty, joined, queued, noPartialClear, achievements, lfgComment, 
    slotCount, category, leader, tank, healer, dps = GetLFGInfoServer(category, lfgID)
Code:
JoinSingleLFG(category, lfgID)
Code:
local mode, submode = GetLFGMode(category, lfgID) -- UIParent
Code:
local inProgress, slots, members, category, lfgID, bgQueue = GetLFGRoleUpdate()
-- bgQueue pushed from #4 to #5.
Code:
local hasData, leaderNeeds, tankNeeds, healerNeeds, dpsNeeds,
totalTanks, totalHealers, totalDPS, instanceType, instanceSubType,
instanceName, averageWait, tankWait, healerWait, damageWait,
myWait, queuedTime, activeID = GetLFGQueueStats(category[, activeID])
Code:
local suspendedPlayers = {}
suspendedPlayers = GetLFGSuspendedPlayers(category)
-- category is one of
-- LE_LFG_CATEGORY_FLEXRAID| LE_LFG_CATEGORY_SCENARIO| LE_LFG_CATEGORY_RF|
-- LE_LFG_CATEGORY_LFR| LE_LFG_CATEGORY_LFD

Timers
Code:
local unknown, elapsedTime, type = GetWorldElapsedTime(timerID)
'type' changed from boolean isChallengeMode to one of
LE_WORLD_ELAPSED_TIMER_TYPE_PROVING_GROUND
LE_WORLD_ELAPSED_TIMER_TYPE_CHALLENGE_MODE
LE_WORLD_ELAPSED_TIMER_TYPE_NONE

Map/MiniMap
Code:
local name, description, textureIndex, x, y, mapLinkID, inBattleMap, 
    graveyardID, areaID, poiID, isObjectIcon = GetMapLandmarkInfo(i)
'isObjectIcon' = new type of POI and
Code:
local x1,x2,y1,y2 = GetObjectIconTextureCoords(textureIndex)
new function to get the poi texture.
* from Semlar
Some new, possibly unintentional api functions regarding the new treasure chest/rare minimap icons:
local numVignettes = C_Vignettes.GetNumVignettes() -- number of visible icons
local vignetteInstanceID = C_Vignettes.GetVignetteInstanceID(i) -- takes 1 - numVignettes
local x, y, name, unknown = C_Vignettes.GetVignetteInfoFromInstanceID(vignetteInstanceID)
x and y coordinates refer to the icon's position relative to the bottom left of the minimap and change based on the size and scale of the minimap as well as (apparently) the window resolution or possibly the aspect ratio.
Event: "VIGNETTE_ADDED" Argument: instanceID
Event: "VIGNETTE_REMOVED" Argument: instanceID
They fire when an icon appears or disappears, respectively.
Both provide the instanceID of the affected vignette.

Archaeology
Event: "ARTIFACT_DIGSITE_COMPLETE" Arguments: researchBranchID
Event: "ARCHAEOLOGY_SURVEY_CAST" Arguments: numFindsCompleted, totalFinds
Event: "ARCHAEOLOGY_FIND_COMPLETE" Arguments: numFindsCompleted, totalFinds
Code:
local canScan = CanScanResearchSite()
Code:
local RaceName, RaceTexture = GetArchaeologyRaceInfoByID(researchBranchID);
-- GetArchaeologyRaceInfo(researchBranchID) seems to still be around but I'd keep an eye out for it getting deprecated/removed shortly.
PvP
Code:
local isWargame = IsWargame()
Code:
local arenarating, seasonPlayed, seasonWon, weeklyPlayed, weeklyWon = GetInspectArenaData(i)
-- i = 1, MAX_ARENA_TEAMS
MAX_ARENA_TEAMS -- moved to constants.lua so it's available on client start (was in LoD addon)

Code:
RequestRatedInfo() -- server request, "PVP_RATED_STATS_UPDATE" for reply?
RequestRated[Arena|Battleground]Info(i) seem to have been removed.
Code:
local rating, seasonBest, weeklyBest, seasonPlayed, seasonWon, 
    weeklyPlayed, weeklyWon, cap = GetPersonalRatedInfo(id)
-- id =1-4 (1:Arena2v2,2:Arena3v3,3:Arena5v5,4:RatedBG) the individual GetPersonalRated[Arena|BG]Info(i) seem to have been removed.
Code:
local pointsThisWeek, maxPointsThisWeek, tier2Quantity, tier2Limit, tier1Quantity, 
    tier1Limit, randomPointsThisWeek, maxRandomPointsThisWeek, arenaReward, ratedBGReward = GetPVPRewards()
-- 2 returns added. The values they provide used to be at #3 and #5 tier2Quantity,tier1Quantity.
Code:
StartWarGame("target"[, area]) 
-- "target" unitid was unitName previously
Combat
Code:
local myCurrentHealAbsorb = UnitGetTotalHealAbsorbs("unitid")
New widgets on all unitframes for showing overhealAbsorb and healAbsorb.
Code:
local isUnconscious = UnitIsUnconscious("unitid")
-- new type of "death"? it appears to be a new state of UnitHealth("unitid") == 0.
A fontstring has been added to all unitframes as well to display the unconscious status.
Event: "UNIT_HEAL_ABSORB_AMOUNT_CHANGED"
Event: "COMBAT_LOG_EVENT_UNFILTERED"
Base parameters remain unchanged.
SubEvents
"SPELL_INSTAKILL" -- has gotten a new suffix parameter arg15 (it had none)
"PARTY_KILL", "UNIT_DIED", "UNIT_DESTROYED","UNIT_DISSIPATES"
-- have gotten a new prefix parameter arg12 (they had none)
The new parameter in all cases is unconsciousOnDeath type:number 0|1
Globalstrings enUS.
ACTION_PARTY_KILL_UNCONSCIOUS = "knocked out";
ACTION_PARTY_KILL_UNCONSCIOUS_FULL_TEXT = "%1$s has knocked out %4$s!";
ACTION_PARTY_KILL_UNCONSCIOUS_POSSESSIVE = "0";
ACTION_SPELL_INSTAKILL_UNCONSCIOUS = "knocked out";
ACTION_SPELL_INSTAKILL_UNCONSCIOUS_FULL_TEXT = "%1$s %2$s knocks out %4$s.";
ACTION_SPELL_INSTAKILL_UNCONSCIOUS_FULL_TEXT_NO_SOURCE = "%2$s knocks out %4$s.";
ACTION_SPELL_INSTAKILL_UNCONSCIOUS_POSSESSIVE = "1";
ACTION_UNIT_BECCOMES_UNCONSCIOUS = "collapses";
ACTION_UNIT_BECOMES_UNCONSCIOUS_FULL_TEXT = "%4$s collapses.";
ACTION_UNIT_BECOMES_UNCONSCIOUS_POSSESSIVE = "0";
Code:
TimeoutResurrect()
Items
Code:
local specs = {}
specs = GetItemSpecInfo(itemLink, specs)
-- fills and returns the passed 'specs' table with an array of specs the item with itemLink is flagged for;
-- example {103,104} 'feral', 'guardian' spec ids as returned by GetSpecialization()
Code:
C_NewItems.* 
.IsNewItem(bag,slot) 
.RemoveNewItem(bag,slot) 
.ClearAll()
-- at a guess used to highlight newly acquired items in the bags until you mouseover them 
-- like Rift and other modern mmos are doing
Code:
local isBattlePayItem = IsBattlePayItem(bag,slot)
More loot patterns of interest to loot parsers.
LOOT_ITEM_BONUS_ROLL = "%s receives bonus loot: %s.";
LOOT_ITEM_BONUS_ROLL_MULTIPLE = "%s receives bonus loot: %sx%d.";
LOOT_ITEM_BONUS_ROLL_SELF = "You receive bonus loot: %s.";
LOOT_ITEM_BONUS_ROLL_SELF_MULTIPLE = "You receive bonus loot: %sx%d.";
LOOT_ITEM_PUSHED = "%s receives item: %s.";
LOOT_ITEM_PUSHED_MULTIPLE = "%s receives item: %sx%d.";

Combat Pets
Event: "PET_BATTLE_PET_TYPE_CHANGED" Arguments: petOwner, petIndex

AddOns
New event: "SAVED_VARIABLES_TOO_LARGE" Arguments: "addonName"
Globalstring: SAVED_VARIABLES_TOO_LARGE = "Your computer does not have enough memory to load settings from the following AddOn. Please disable some AddOns.\n\n|cffffd200%s|r";
Code:
StaticPopupDialogs["SAVED_VARIABLES_TOO_LARGE"] = {
	text = SAVED_VARIABLES_TOO_LARGE,
	button1 = OKAY,
	timeout = 0,
	showAlertGear = 1,
	hideOnEscape = 1
}
Addon: Blizzard_ShopUI renamed to Blizzard_StoreUI
Event: "STORE_PRODUCT_DELIVERED" arguments: "icon"
New file: SecureCapsule.lua used to remove things from the global environment (C_PurchaseAPI.* and a bunch of globalstrings related to in-game store atm) and import them for use in the new isolated Blizzard_ShopUI
"StoreMicroButton" added to MICRO_BUTTONS

Lua
Code:
local num = securerandom([lower,[upper]])
Code:
local isForbidden = button:IsForbidden()
-- This appears to be in place to restrict the functionality of /click macros, secure attributes, on specific buttons.
-- Probably to prevent "spoofing" store buttons?
StatusBars
Code:
local val = GetSmoothProgressChange(value, displayedValue, range, elapsed, minPerSecond, maxPerSecond) -- UIParent
Was defined in UnitPowerBarAlt and the added parameters were inaccessible locals defined outside the function.

Last edited by Dridzt : 08-30-13 at 09:38 PM. Reason: builds:17093>17124>17161>17169>17191>17205>17227>17247>17252 >17299>17314>17321>17331>17337>17345
  Reply With Quote
06-13-13, 03:01 AM   #2
Haleth
This Space For Rent
 
Haleth's Avatar
Featured
Join Date: Sep 2008
Posts: 1,173
Feels like there are a gazillion ways to get the amount of people/difficulty of an instance by now, and they just keep changing it
  Reply With Quote
06-13-13, 08:54 AM   #3
Cairenn
Credendo Vides
 
Cairenn's Avatar
Premium Member
WoWInterface Admin
Join Date: Mar 2004
Posts: 7,134
Thanks for posting this Dridzt.
__________________
“Do what you feel in your heart to be right — for you’ll be criticized anyway.” ~ Eleanor Roosevelt
~~~~~~~~~~~~~~~~~~~
Co-Founder & Admin: MMOUI
FaceBook Profile, Page, Group
Avatar Image by RaffaeleMarinetti
  Reply With Quote
06-13-13, 09:48 AM   #4
Dridzt
A Pyroguard Emberseer
 
Dridzt's Avatar
AddOn Author - Click to view addons
Join Date: Nov 2005
Posts: 1,359
Originally Posted by Haleth View Post
Feels like there are a gazillion ways to get the amount of people/difficulty of an instance by now, and they just keep changing it
My main annoyance is that they've let the array of difficulties have gaps in 5.3 (and 5.4 if it goes live like this)
Which means I have to either hardcode them and update each time something is added or loop to an arbitrary higher number and skip non-implemented ids in hopes that they won't exceed it.

Previously it was possible to make self-maintaining code with (as an example)
Code:
local diffs,id = {},1
diffs[0]={_G.NONE,_G.SOLO,false,false}
local name,groupType,isHeroic,isChallengeMode,toggleDifficultyID=GetDifficultyInfo(id)
while (name and name~="") do
  diffs[id]={name,groupType,isHeroic,isChallengeMode,toggleDifficultyID}
  id=id+1
  name,groupType,isHeroic,isChallengeMode,toggleDifficultyID=GetDifficultyInfo(id)
end
This now fails because there's a 'hole' in the array at id 10 so it doesn't grab scenario/hc scenario (and looks like another hole at 13 in 5.4)

Last edited by Dridzt : 06-13-13 at 09:55 AM. Reason: skipped a line of code
  Reply With Quote
06-16-13, 05:48 PM   #5
myrroddin
A Pyroguard Emberseer
 
myrroddin's Avatar
AddOn Author - Click to view addons
Join Date: Oct 2008
Posts: 1,237
Hmm, would GROUP_ROSTER_UPDATE still fire for flexi-raids? Based on the new event, then I'd guess no, at least without testing. Just wondering how GetNumGroupMembers will work...
  Reply With Quote
06-16-13, 11:15 PM   #6
Malsomnus
A Cobalt Mageweaver
AddOn Author - Click to view addons
Join Date: Apr 2013
Posts: 203
Judging by the feature's description, I'd guess that INSTANCE_GROUP_SIZE_CHANGED would fire when the amount of people inside the actual raid instance changes out of combat.
I doubt it will change anything for GROUP_ROSTER_UPDATE, which fires not only when people join/ leave the group but also on role changes and group changes and probably a few other things I forget.
  Reply With Quote
06-21-13, 03:04 AM   #7
fRodzet
A Flamescale Wyrmkin
Join Date: Mar 2013
Posts: 114
Ty i'll add these to my project aswell
  Reply With Quote
06-21-13, 02:08 PM   #8
Fizzlemizz
I did that?
 
Fizzlemizz's Avatar
Premium Member
AddOn Author - Click to view addons
Join Date: Dec 2011
Posts: 1,857
I'm getting a global is nil error for UnitPVPRank(). Not sure what's going on here as it's still included in Blizzards HonorFrame.lua.
__________________
Fizzlemizz
Maintainer of Discord Unit Frames and Discord Art.
Author of FauxMazzle, FauxMazzleHUD and Move Pad Plus.
  Reply With Quote
06-21-13, 04:12 PM   #9
Fizzlemizz
I did that?
 
Fizzlemizz's Avatar
Premium Member
AddOn Author - Click to view addons
Join Date: Dec 2011
Posts: 1,857
Thanks Dridzt.

Interesting, did rank icons disappear at some stage? It's the only place DUF uses UnitPVPRank() but I didn't start following API changes until late 4.x.

I'll have a rummage around Wowpedia.

Edit: I'm not sure it's intentional as GetPVPRankInfo() seems to still available and it pretty much requires UnitPVPRank().

Edit2: My bad, GetPVPRankInfo() is gone also so addons can't display rank information while the Blizzard UI can. Seems odd.

Originally Posted by Dridzt View Post
Hah! That's because it's been removed C-side.
It's not in the binaries anymore (build 17093).
Not sure if that's an oversight on the Lua side of things (where they forgot to remove it from HonorFrame.lua) or the c-side of things where they're no longer exporting/linking it to the lua environment.

Edit:The plot thickens :-P
There's 2 global HonorFrame_OnEvent() functions, one in HonorFrame.lua and one in \AddOns\Blizzard_PvPUI\Blizzard_PvPUI.lua.
Since by virtue of it being LoD the 2nd would overwrite the first, my guess is they forgot to remove HonorFrame.* and it's actually deprecated.
I don't see HonorFrame.xml loaded from FrameXML.toc so it's a good guess to say HonorFrame*.* files are leftovers and not loaded by the client.
__________________
Fizzlemizz
Maintainer of Discord Unit Frames and Discord Art.
Author of FauxMazzle, FauxMazzleHUD and Move Pad Plus.

Last edited by Fizzlemizz : 06-21-13 at 05:50 PM.
  Reply With Quote
06-26-13, 01:05 AM   #10
Fizzlemizz
I did that?
 
Fizzlemizz's Avatar
Premium Member
AddOn Author - Click to view addons
Join Date: Dec 2011
Posts: 1,857
Just to finish my portion of this thread, the personal PVP ranking system did die with TBC to be replaced later by titles. I just hadn't realised given I didn't have to think about it until now.

The removal of these PVP functions is no longer a mystery, to me .
__________________
Fizzlemizz
Maintainer of Discord Unit Frames and Discord Art.
Author of FauxMazzle, FauxMazzleHUD and Move Pad Plus.
  Reply With Quote
07-21-13, 02:54 PM   #11
Belechannas
A Warpwood Thunder Caller
Join Date: May 2010
Posts: 86
I'm getting errors from lines of HybridScrollFrame.lua that don't exist in the live version of FrameXml (the addon works with no errors on Live):

Code:
Message: Interface\FrameXML\HybridScrollFrame.lua:183: attempt to perform arithmetic on local 'buttonHeight' (a nil value)
Time: 07/21/13 13:41:58
Count: 1
Stack: Interface\FrameXML\HybridScrollFrame.lua:183: in function `HybridScrollFrame_SetOffset'
Interface\FrameXML\HybridScrollFrame.lua:30: in function `HybridScrollFrame_OnValueChanged'
[string "*:OnValueChanged"]:4: in function <[string "*:OnValueChanged"]:1>
[C]: in function `SetValue'
Interface\FrameXML\HybridScrollFrame.lua:243: in function `HybridScrollFrame_CreateButtons'
Interface\AddOns\RestoShamanStat\RShamanStatUI.lua:107: in function `RShamanStatUI_Load'
[string "*:OnLoad"]:2: in function <[string "*:OnLoad"]:1>

Locals: self = RShamanStatFrameRecordInfo {
 0 = <userdata>
 contentScrollFrame = RShamanStatFrameRecordInfoContentScrollFrame {
 }
 subheadline = RShamanStatFrameRecordInfoRecordInfoSubheadline {
 }
 material = "Parchment"
 extra = RShamanStatFrameRecordInfoRecordInfoExtra {
 }
 headline = RShamanStatFrameRecordInfoRecordInfoHeadline {
 }
}
offset = 0
buttons = nil
buttonHeight = nil
element = nil
overflow = nil
scrollHeight = 0
largeButtonTop = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = "attempt to perform arithmetic on local 'buttonHeight' (a nil value)"
There would appear to be potentially breaking changes somewhere in this component.

Last edited by Belechannas : 07-21-13 at 03:02 PM.
  Reply With Quote
07-21-13, 09:43 PM   #12
Dridzt
A Pyroguard Emberseer
 
Dridzt's Avatar
AddOn Author - Click to view addons
Join Date: Nov 2005
Posts: 1,359
Originally Posted by Belechannas View Post
I'm getting errors from lines of HybridScrollFrame.lua that don't exist in the live version of FrameXml (the addon works with no errors on Live):
There would appear to be potentially breaking changes somewhere in this component.
I haven't documented widget changes they're usually rather chaotic, won't do a comprehensive list but maybe I can point out a few affecting templates as those are liable to break several addons.

Is this your own addon or are you a user? It would help if you posted a link to the addon or the relevant lines of code where it errors, because without them all I can do is guess.

Anyway if that addon has an "OnValueChanged" script handler you'll need to remove any self:GetParent() from the script handler and just pass self.
Example:
HybridScrollFrame_OnValueChanged(self:GetParent(), value)
to
HybridScrollFrame_OnValueChanged(self, value)

If you want to post a version that won't break in 5.4 but retains compatibility with 5.3 you'll need to branch your code inside a client version check.
One simple and cheap way to do that is by checking for the existence of one of the new constants.
Example (assuming from error the addon is RestoShamanStat)
Code:
HybridScrollFrame_OnValueChanged(LFG_SUBTYPEID_FLEXRAID and self or self:GetParent(),value)

Last edited by Dridzt : 07-22-13 at 01:17 AM.
  Reply With Quote
07-22-13, 12:05 AM   #13
Belechannas
A Warpwood Thunder Caller
Join Date: May 2010
Posts: 86
Originally Posted by Dridzt View Post
I haven't documented widget changes they're usually rather chaotic, won't do a comprehensive list but maybe I can point out a few affecting templates as those are liable to break several addons.

Is this your own addon or are you a user? It would help if you posted a link to the addon or the relevant lines of code where it errors, because without them all I can do is guess.

Anyway if that addon has an "OnValueChanged" script handler you'll need to remove any self:GetParent() from the script handler and just pass self.
It's my addon, and you correctly diagnosed the problem, thanks!

Is there a way I could have discovered the change to HybridScrollFrame:OnValueChanged for myself? I searched the web for an hour or two, finding nothing, before posting here...
  Reply With Quote
08-20-13, 05:02 AM   #14
Haleth
This Space For Rent
 
Haleth's Avatar
Featured
Join Date: Sep 2008
Posts: 1,173
Something seems to be up with editbox:SetAltArrowKeyMode(). I used this on the chat edit box so I could browse through history without holding alt, but the function doesn't appear to do anything anymore. You have to press alt now.
  Reply With Quote
08-20-13, 05:25 AM   #15
Xrystal
nUI Maintainer
 
Xrystal's Avatar
Premium Member
AddOn Author - Click to view addons
Join Date: Feb 2006
Posts: 5,877
I've not seen it mentioned in this thread but it looks like they have implemented [shapeshift] for temporary shapeshift scenarios like the last boss in Draktharon Keep. I tested it the other day with a very basic action bar addon and it worked as a visibility macro conditional to make a new bar appear when you are shapeshifted.

A screen shot and my mini addon is in one of the last few posts in the nUI thread here : http://www.wowinterface.com/forums/s...260#post283260
__________________
  Reply With Quote
08-20-13, 07:24 AM   #16
Dridzt
A Pyroguard Emberseer
 
Dridzt's Avatar
AddOn Author - Click to view addons
Join Date: Nov 2005
Posts: 1,359
@Xrystal:
I can't find anything new regarding [shapeshift] in the 5.4.0 restricted environment files vs 5.3.0 so no idea what's happening there.

Last edited by Dridzt : 08-24-13 at 12:57 AM.
  Reply With Quote
08-20-13, 01:27 PM   #17
Xrystal
nUI Maintainer
 
Xrystal's Avatar
Premium Member
AddOn Author - Click to view addons
Join Date: Feb 2006
Posts: 5,877
It was something Scott was telling me about because we noticed that we couldn't implement the tempshapeshiftbar scenario into nUI. And seeing as I have never seen any mention of the other bar macro conditionals in the framexml I assumed it was changed behind the scenes with the other stuff.
__________________
  Reply With Quote
08-27-13, 12:23 PM   #18
Xrystal
nUI Maintainer
 
Xrystal's Avatar
Premium Member
AddOn Author - Click to view addons
Join Date: Feb 2006
Posts: 5,877
On looking at the tempshapeshift scenario in drak keep the other day it looks like they did get it working in 5.3 using that macro conditional. Tested it with a simple action bar addon and it switched as expected, so not a new feature for 5.4. But perhaps a sneak fix for 5.3.
__________________
  Reply With Quote
08-27-13, 01:33 PM   #19
semlar
A Pyroguard Emberseer
 
semlar's Avatar
AddOn Author - Click to view addons
Join Date: Sep 2007
Posts: 1,060
Some new, possibly unintentional api functions regarding the new treasure chest/rare minimap icons:
local numVignettes = C_Vignettes.GetNumVignettes() -- number of visible icons
local vignetteInstanceID = C_Vignettes.GetVignetteInstanceID(i) -- takes 1 - numVignettes
local x, y, name, unknown = C_Vignettes.GetVignetteInfoFromInstanceID(vignetteInstanceID)

x and y coordinates refer to the icon's position relative to the bottom left of the minimap and change based on the size and scale of the minimap as well as (apparently) the window resolution or possibly the aspect ratio.

They come with a couple events VIGNETTE_ADDED and VIGNETTE_REMOVED which fire when an icon appears or disappears, respectively. Both provide the instanceID of the affected vignette.

Last edited by semlar : 08-27-13 at 01:38 PM.
  Reply With Quote
08-28-13, 07:49 AM   #20
myrroddin
A Pyroguard Emberseer
 
myrroddin's Avatar
AddOn Author - Click to view addons
Join Date: Oct 2008
Posts: 1,237
Given that I'm writing LibMapPins-1.0, which won't be ready for 5.4 (least not by patch day), I'm guessing I don't need to accommodate the new vignettes, as they show up on the minimap by default, correct?
  Reply With Quote

WoWInterface » Developer Discussions » Tutorials & Other Helpful Info. » Assorted 5.4.0 API changes

Thread Tools
Display Modes

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