Reply
Thread Tools Display Modes
Unread 07-19-14, 11:02 PM   #1
p3lim
A Pyroguard Emberseer
 
p3lim's Avatar
AddOn Author - Click to view addons
Join Date: Feb 2007
Posts: 1,313
API Changes

Note; this list might be far from complete, I'm completely unaware of how accurate this is (pulled from exe strings)

Parameter Changes:

1/nil/0 changed to true/false across the API, examples:
CheckButton:SetChecked(true/false)
Texture:SetDesaturated(true/false)

Code:
Old: Button:SetCooldown(start, duration, charges, maxCharges)
New: Button:SetCooldown(start, duration)
Code:
Old: GameTooltip:SetHyperlink(link)
New: GameTooltip:SetHyperlink(link, classID, specID)
Code:
Old: GetSpecializationSpells(specIndex[, isInspect[, isPet]])
New: GetSpecializationSpells(specIndex[, isInspect[, isPet[, ignorePetOverrideSpec]]])
Code:
Old: Tooltip:SetTalent(talentIndex[, isInspect[, groupIndex]])
New: Tooltip:SetTalent(talentID[, isInspect[, groupIndex]])
Code:
Old: BNSendFriendInvite(battletag/email, noteText)
New: BNSendFriendInvite(battletag/email)
Code:
Old: BNSendFriendInviteByID(ID, noteText)
New: BNSendFriendInviteByID(ID)
Code:
Old: C_Vignettes.GetVignetteInfoFromInstanceID(instanceID)
New: C_Vignettes.GetVignetteInfoFromInstanceID(instanceGUID)
Code:
Old: C_Vignettes.GetVignetteInstanceID(index)
New: C_Vignettes.GetVignetteGUID(index)
Code:
Old: CagePetByID(petID)
New: CagePetByID(petGUID)
Code:
Old: ClickVoidStorageSlot(slot, [button])
New: ClickVoidStorageSlot(tab, slot, [button])
Code:
Old: DisableAddOn("character", index)
Old: DisableAddOn(index or "name")
New: DisableAddOn(index or "name", [set for all or "character"])
Code:
Old: EnableAddOn("character", index)
Old: EnableAddOn(index or "name")
New: EnableAddOn(index or "name", [set for all or "character"])
Code:
Old: LearnTalent(talentIndex)
New: LearnTalent(talentID)
Code:
Old: LearnTalents(talentIndex1 [, talentIndex2, ...])
New: LearnTalents(talentID1 [, talentID2, ...])
Code:
Old: PetCanBeReleased(petID)
New: PetCanBeReleased(petGUID)
Code:
Old: PetIsCaptureable(petID)
New: PetIsCaptureable(petGUID)
Code:
Old: PetIsHurt(petID)
New: PetIsHurt(petGUID)
Code:
Old: PetIsLockedForConvert(petID)
New: PetIsLockedForConvert(petGUID)
Code:
Old: PetIsRevoked(petID)
New: PetIsRevoked(petGUID)
Code:
Old: PetIsSlotted(petID)
New: PetIsSlotted(petGUID)
Code:
Old: PetIsSummonable(petID)
New: PetIsSummonable(petGUID)
Code:
Old: PetIsTradable(petID)
New: PetIsTradable(petGUID)
Code:
Old: PickupPet(petID)
New: PickupPet(petGUID)
Code:
Old: PickupTalent(talentindex)
New: PickupTalent(talentID)
Code:
Old: PlaySound("sound", optional["SFX","Music","Ambience" or "Master"])
New: PlaySound("sound", optional["SFX","Music","Ambience", "Dialog" or "Master"])
Code:
Old: RemoveTalent(talentIndex)
New: RemoveTalent(talentID)
Code:
Old: SetMapByID(mapID)
New: SetMapByID(mapID[, floor])
Code:
Old: SetRaidDifficultyID(difficultyID)
New: SetRaidDifficultyID(difficultyID[, force])
Code:
Old: SummonPetByGUID(petID)
New: SummonPetByGUID(petGUID)
Code:
Old: UseContainerItem(index, slot[, target])
New: UseContainerItem(index, slot[, target[, reagentBankOpen]])
Code:
Old: UseVoidItemForTransmogrify(voidItemslot, inventorySlot)
New: UseVoidItemForTransmogrify(voidItemTab, voidItemslot, inventorySlot)
Code:
Old: QueryAuctionItems(name, minLevel, maxLevel, invTypeIndex, classIndex, subclassIndex, page, isUsable, qualityIndex, getAll)
New: QueryAuctionItems(name, minLevel, maxLevel, invTypeIndex, classIndex, subclassIndex, page, isUsable, qualityIndex, getAll, exactMatch)
Code:
Old: StopSound(soundHandleID)
New: StopSound(soundHandleID[, fadeOutTime]) -- milliseconds

Last edited by p3lim : 09-03-14 at 03:22 AM. Reason: Build 18816
p3lim is offline   Reply With Quote
Unread 07-20-14, 12:40 AM   #2
p3lim
A Pyroguard Emberseer
 
p3lim's Avatar
AddOn Author - Click to view addons
Join Date: Feb 2007
Posts: 1,313
Return Changes:
Code:
Old: player, bank, bags, voidStorage, slot, bag = EquipmentManager_UnpackLocation(location)
New: player, bank, bags, voidStorage, slot, bag, tab, voidSlot = EquipmentManager_UnpackLocation(location)
Code:
Old: specID = GetArenaOpponentSpec(arenaUnitIndex)
New: specID, gender = GetArenaOpponentSpec(arenaUnitIndex)
Code:
Old: commandName, binding1, binding2, ... = GetBinding(index, mode)
New: commandName, category, binding1, binding2, ... = GetBinding(index, mode)
Code:
Old: name, className, class, specID = GetChallengeBestTimeInfo(mapID, index, guildOnly)
New: name, className, class, specID, gender = GetChallengeBestTimeInfo(mapID, index, guildOnly)
Code:
Old: name, groupType, isHeroic, isChallengeMode, toggleDifficultyID = GetDifficultyInfo(id)
New: name, groupType, isHeroic, isChallengeMode, displayHeroic, displayMythic, toggleDifficultyID = GetDifficultyInfo(id)
Code:
Old: id, name, description, icon, background, role, class = GetSpecializationInfoByID(specID)
New: id, name, description, icon, background, role, class = GetSpecializationInfoByID(specID, gender)
Code:
Old: id, name, description, icon, background, role = GetSpecializationInfo(specIndex [, isInspect [, isPet]])
New: id, name, description, icon, background, role, primaryStat = GetSpecializationInfo(specIndex [, isInspect [, isPet]], inspectedUnit, gender)
Code:
Old: id, name, description, icon, background, role = GetSpecializationInfoForClassID(classID, index)
New: id, name, description, icon, background, role, primaryStat = GetSpecializationInfoForClassID(classID, index, gender)
Code:
Old: GetSpecializationInfoForSpecID(specID)
New: GetSpecializationInfoForSpecID(specID[, gender])
Code:
Old: texture, itemCount, locked, isFiltered = GetGuildBankItemInfo(tabId, index)
New: texture, itemCount, locked, isFiltered, quality = GetGuildBankItemInfo(tabId, index)
Code:
Old: name, glyphType, isKnown, icon, glyphID, link, subText = GetGlyphInfo(index)
New: name, glyphType, isKnown, icon, glyphID, link, subText, specMatches, excluded = GetGlyphInfo(index)
Code:
Old: guildLevel, guildXP, guildNumMembers, guildName = GetInspectGuildInfo(unit);
New: guildPoints, guildNumMembers, guildName = GetInspectGuildInfo(unit);
Code:
Old: itemID = GetInventoryItemID(unit, slot);
New: itemID, itemAppearanceModID = GetInventoryItemID(unit, slot);
Code:
Old: isTransmogrified, canTransmogrify, cannotTransmogrifyReason, hasPending, hasUndo, visibleItemID, textureName = GetTransmogrifySlotInfo(index)
New: isTransmogrified, canTransmogrify, cannotTransmogrifyReason, hasPending, hasUndo, visibleItemID, textureName, visibleItemAppearanceModID = GetTransmogrifySlotInfo(index)
Code:
Old: link, icon, charges = GetQuestLogSpecialItemInfo(questIndex)
New: link, item, charges, showItemWhenComplete = GetQuestLogSpecialItemInfo(questIndex);
Code:
Old: distance = GetDistanceSqToQuest(index)
New: distance, onContinent = GetDistanceSqToQuest(index)
Code:
Old: description, type, completed, quantity, requiredQuantity, characterName, flags, assetID, quantityString, criteriaID = GetAchievementCriteriaInfo(achievementID, index)
New: description, type, completed, quantity, requiredQuantity, characterName, flags, assetID, quantityString, criteriaID, eligible, duration, elapsed = GetAchievementCriteriaInfo(achievementID, index)
Note: If you pass an invalid value to GetSpellInfo(), like a string or 0, it will return three empty strings, making checks like this return true regardless if the spell exists or not: if(GetSpellInfo('something')) then
Code:
Old: name, rank, icon, powerCost, isFunnel, powerType, castingTime, minRange, maxRange[/color] = GetSpellInfo(id)
New: name, subname, icon, castingTime, minRange, maxRange = GetSpellInfo(id)
Code:
Old: skillName, skillType, numAvailable, isExpanded, altVerb, numSkillUps, indentLevel, showProgressBar, currentRank, maxRank, startingRank = GetTradeSkillInfo(skillIndex)
New: skillName, skillType, numAvailable, isExpanded, altVerb, numSkillUps, indentLevel, showProgressBar, currentRank, maxRank, startingRank, displayAsUnavailable, unavailableString = GetTradeSkillInfo(skillIndex)
Code:
Old: cooldown, isDayCooldown = GetTradeSkillCooldown(index);
New: cooldown, isDayCooldown, charges, maxCharges = GetTradeSkillCooldown(index);
Code:
Old: itemID, textureName = GetVoidTransferDepositInfo(index)
New: itemID, textureName, quality = GetVoidTransferDepositInfo(index)
Code:
Old: itemID, textureName = GetVoidTransferWithdrawalInfo(index)
New: itemID, textureName, quality = GetVoidTransferWithdrawalInfo(index)
Code:
Old: itemID, textureName, locked, recentDeposit, isFiltered = GetVoidItemInfo(index)
New: itemID, textureName, locked, recentDeposit, isFiltered, quality = GetVoidItemInfo(tabId, index)
Code:
Old: texture, itemCount, locked, quality, readable, lootable, link, isFiltered = GetContainerItemInfo(container, slot)
New: texture, itemCount, locked, quality, readable, lootable, link, isFiltered, noValue = GetContainerItemInfo(container, slot)
Code:
Old: name, level, class, area, connected, status, note = GetFriendInfo(friendIndex)
New: name, level, class, area, connected, status, note, isReferAFriend = GetFriendInfo(friendIndex)
Code:
Old: texture, name, isTradeskillSpell, isSpellLearned = GetQuestLogRewardSpell()
New: texture, name, isTradeskillSpell, isSpellLearned, hideSpellLearnText = GetQuestLogRewardSpell()
Code:
Old: texture, name, isTradeskillSpell, isSpellLearned = GetRewardSpell()
New: texture, name, isTradeskillSpell, isSpellLearned, hideSpellLearnText = GetRewardSpell()
Code:
Old: areaID = GetCurrentMapAreaID()
New: areaID, isContinent = GetCurrentMapAreaID()
Code:
Old: title, level, questTag, suggestedGroup, isHeader, isCollapsed, isComplete, isDaily, questID, startEvent, displayQuestID = GetQuestLogTitle(questIndex)
New: title, level, suggestedGroup, isHeader, isCollapsed, isComplete, frequency, questID, startEvent, displayQuestID, isOnMap, hasLocalPOI, isTask, isStory = GetQuestLogTitle(questIndex)
Code:
Old: name, texture, offset, numSpells, isGuild, offSpecID = GetSpellTabInfo(index)
New: name, texture, offset, numSpells, isGuild, offSpecID, shouldHide = GetSpellTabInfo(index)
Code:
Old: name, iconTexture, tier, column, selected, available = GetTalentInfo(talentIndex [, isInspect, talentGroup, inspectedUnit, classID])
New: talentID, name, iconTexture, selected, available = GetTalentInfo(tier, column, talentGroup [, isInspect, inspectedUnit])
Code:
Old: link = GetTalentLink(talentIndex[, isInspect, inspectClassID])
New: link = GetTalentLink(talentID)
Code:
Old: name, description, textureIndex, x, y, mapLinkID, showInBattleMap, graveyardID, areaID, poiID, isObjectIcon = GetMapLandmarkInfo(index)
New: name, description, textureIndex, x, y, mapLinkID, showInBattleMap, graveyardID, areaID, poiID, isObjectIcon, atlasIcon = GetMapLandmarkInfo(index)
Code:
Old: name, title, notes, enabled, loadable, reason, security = GetAddOnInfo(index or "name")
New: name, title, notes, url, loadable, reason, security, newVersion = GetAddOnInfo(index or "name")
Code:
Old: optionsTable = GetVideoOptions(value)
New: optionsTable = GetVideoOptions(value[, isRaid])
Code:
Old: index, current, max, xp, gold, maxGold = GetGuildChallengeInfo(index)
New:  index, current, max, gold, maxGold = GetGuildChallengeInfo(index)
Code:
Old: name, typeID, subtypeID, minLevel, maxLevel, recLevel, minRecLevel, maxRecLevel, expansionLevel, groupID, textureFilename, difficulty, maxPlayers, description, isHoliday, repAmount, forceHide = GetLFGDungeonInfo(dungeonID)
New name, typeID, subtypeID, minLevel, maxLevel, recLevel, minRecLevel, maxRecLevel, expansionLevel, groupID, textureFilename, difficulty, maxPlayers, description, isHoliday, repAmount = GetLFGDungeonInfo(dungeonID)
NOTE: GetBindingText is now implemented C-side (used to be in FrameXML/UIParent.lua)
Code:
Old: text = GetBindingText(key, prefix, abbreviate)
New: text = GetBindingText(key, abbreviate)

Last edited by p3lim : 09-10-14 at 09:56 AM. Reason: Build 18837
p3lim is offline   Reply With Quote
Unread 07-20-14, 01:13 AM   #3
p3lim
A Pyroguard Emberseer
 
p3lim's Avatar
AddOn Author - Click to view addons
Join Date: Feb 2007
Posts: 1,313
Please let me know if you find additional changes and I'll update the original posts.
p3lim is offline   Reply With Quote
Unread 07-20-14, 09:41 AM   #4
Nimhfree
A Chromatic Dragonspawn
AddOn Author - Click to view addons
Join Date: Aug 2006
Posts: 153
GetQuestLogTitle no longer returns "isDaily" as a boolean, but "frequency" which needs to be compared against two constants representing daily or weekly values.
Nimhfree is offline   Reply With Quote
Unread 08-05-14, 12:09 AM   #5
p3lim
A Pyroguard Emberseer
 
p3lim's Avatar
AddOn Author - Click to view addons
Join Date: Feb 2007
Posts: 1,313
Changes in 18663:

Code:
Old: GameTooltip:SetHyperlink(link)
New: GameTooltip:SetHyperlink(link, classID, specID)
p3lim is offline   Reply With Quote
Unread 08-05-14, 07:13 AM   #6
Tageshi
A Murloc Raider
AddOn Author - Click to view addons
Join Date: Mar 2006
Posts: 7
GetMacroIcons

GetMacroIcons(table) will (sometimes?) populate numbers in the table instead of string for texture file path.
And we need to use texture:SetToFileData() for numbers instead of texture:SetTexture() like below:
Code:
texture = GetSpellorMacroIconInfo(index);
if(type(texture) == "number") then
	macroPopupIcon:SetToFileData(texture);
else
	macroPopupIcon:SetTexture("INTERFACE\\ICONS\\"..texture);
end
Where GetSpellorMacroIconInfo is returning values populated by GetMacroIcons()
Tageshi is offline   Reply With Quote
Unread 08-05-14, 07:39 AM   #7
p3lim
A Pyroguard Emberseer
 
p3lim's Avatar
AddOn Author - Click to view addons
Join Date: Feb 2007
Posts: 1,313
Might be temporary, at least seems like it.

Here is where they do this for future reference:
https://github.com/tekkub/wow-ui-sou....lua#L412-L417

Last edited by p3lim : 08-25-14 at 02:39 AM.
p3lim is offline   Reply With Quote
Unread 08-07-14, 03:19 AM   #8
p3lim
A Pyroguard Emberseer
 
p3lim's Avatar
AddOn Author - Click to view addons
Join Date: Feb 2007
Posts: 1,313
Changes in 18689:

Code:
Old: SetMapByID(mapID)
New: SetMapByID(mapID[, floor])
p3lim is offline   Reply With Quote
Unread 08-07-14, 08:27 PM   #9
myrroddin
Premium Member
 
myrroddin's Avatar
Premium Member
AddOn Author - Click to view addons
Join Date: Oct 2008
Posts: 404
Originally Posted by p3lim View Post
Changes in 18689:

Code:
Old: SetMapByID(mapID)
New: SetMapByID(mapID[, floor])
o.O That's a nice, if minor, change.
myrroddin is offline   Reply With Quote
Unread 08-07-14, 08:54 PM   #10
semlar
A Molten Giant
 
semlar's Avatar
AddOn Author - Click to view addons
Join Date: Sep 2007
Posts: 624
Originally Posted by myrroddin View Post
o.O That's a nice, if minor, change.
It doesn't currently work.

It would also be nice if we could somehow access microdungeon maps without actually being inside of it.
semlar is online now   Reply With Quote
Unread 08-12-14, 03:14 PM   #11
p3lim
A Pyroguard Emberseer
 
p3lim's Avatar
AddOn Author - Click to view addons
Join Date: Feb 2007
Posts: 1,313
Changes from 18689 to 18716:

Code:
Old: name, groupType, isHeroic, isChallengeMode, toggleDifficultyID = GetDifficultyInfo(id)
New: name, groupType, isHeroic, isChallengeMode, displayHeroic, displayMythic, toggleDifficultyID = GetDifficultyInfo(id)
p3lim is offline   Reply With Quote
Unread 08-18-14, 07:01 PM   #12
p3lim
A Pyroguard Emberseer
 
p3lim's Avatar
AddOn Author - Click to view addons
Join Date: Feb 2007
Posts: 1,313
No changes in build 18738, but GetSpellInfo no longer returns empty strings on invalid parameters, now returns nil as intended.
p3lim is offline   Reply With Quote
Unread 08-25-14, 01:44 AM   #13
Tekkub
Featured Artist
 
Tekkub's Avatar
Featured
Join Date: Dec 2005
Posts: 953
`BankButtonIDToInvSlotID(id, isBag)` appears to have changed the values is accepts for `id`. Previously it was 5-11 (the bank bags' bag IDs), now it is 1-7 (the bank bags' logical indexes).
__________________
I have reached enlightment.
Thank you bacon!
Tekkub is offline   Reply With Quote
Unread 09-03-14, 03:22 AM   #14
p3lim
A Pyroguard Emberseer
 
p3lim's Avatar
AddOn Author - Click to view addons
Join Date: Feb 2007
Posts: 1,313
Changes in 18816:

Code:
Old: GetSpecializationSpells(specIndex[, isInspect[, isPet]])
New: GetSpecializationSpells(specIndex[, isInspect[, isPet[, ignorePetOverrideSpec]]])
p3lim is offline   Reply With Quote
Unread 09-03-14, 07:44 AM   #15
Haleth
This Space For Rent
 
Haleth's Avatar
WoWInterface Super Mod
Featured
Join Date: Sep 2008
Posts: 1,172
Code:
name, title, notes, url, loadable, reason, security, newVersion = GetAddOnInfo(index)
newVersion? Incoming built-in addon update checker, or am I missing something?

AddonList.lua:

Code:
function AddonList_HasNewVersion()
	local hasNewVersion = false;
	for i=1, GetNumAddOns() do
		local name, title, notes, loadable, reason, security, newVersion = GetAddOnInfo(i);
		if ( newVersion ) then
			hasNewVersion = true;
			break;
		end
	end
	return hasNewVersion;
end

function UpdateAddonButton()
	if ( GetNumAddOns() > 0 ) then
		-- Check to see if any of them are out of date and not disabled
		if ( IsAddonVersionCheckEnabled() and AddonList_HasOutOfDate() and not HasShownAddonOutOfDateDialog ) then
			AddonDialog_Show("ADDONS_OUT_OF_DATE");
			HasShownAddonOutOfDateDialog = true;
		end
		if ( AddonList_HasNewVersion() ) then
			CharacterSelectAddonsButtonGlow:Show();
		else
			CharacterSelectAddonsButtonGlow:Hide();
		end
		CharacterSelectAddonsButton:Show();
	else
		CharacterSelectAddonsButton:Hide();
	end
end
Haleth is offline   Reply With Quote
Unread 09-03-14, 08:03 AM   #16
TOM_RUS
A Fallenroot Satyr
Join Date: Sep 2008
Posts: 23
Originally Posted by Haleth View Post
newVersion? Incoming built-in addon update checker, or am I missing something?
Nope. It has been in game since at least TBC. And never been used. It needs some server side support and only works for "Secure" addons right now.

This is how it looks in game (screenshots not from blizzard servers obviously):


Last edited by TOM_RUS : 09-03-14 at 08:16 AM.
TOM_RUS is offline   Reply With Quote
Unread 09-04-14, 09:46 AM   #17
liquidbase
A Wyrmkin Dreamwalker
 
liquidbase's Avatar
AddOn Author - Click to view addons
Join Date: Apr 2010
Posts: 57
Am I correct that they also have the "Enabled" removed from GetAddOnInfo ()?

On the live servers are GetAddOnInfo () still following values:

Code:
name, title, notes, enabled, loadable, reason, security = GetAddOnInfo(index or "name")
How can I now query whether a particular addon is enabled or not? So completely I do not understand the change of the function.

Last edited by liquidbase : 09-04-14 at 09:52 AM.
liquidbase is offline   Reply With Quote
Unread 09-04-14, 11:04 AM   #18
p3lim
A Pyroguard Emberseer
 
p3lim's Avatar
AddOn Author - Click to view addons
Join Date: Feb 2007
Posts: 1,313
Originally Posted by liquidbase View Post
Am I correct that they also have the "Enabled" removed from GetAddOnInfo ()?

On the live servers are GetAddOnInfo () still following values:

Code:
name, title, notes, enabled, loadable, reason, security = GetAddOnInfo(index or "name")
How can I now query whether a particular addon is enabled or not? So completely I do not understand the change of the function.
It seems to be gone, use this:

Code:
GetAddOnEnableState('character', index)
p3lim is offline   Reply With Quote
Unread 09-04-14, 11:06 AM   #19
liquidbase
A Wyrmkin Dreamwalker
 
liquidbase's Avatar
AddOn Author - Click to view addons
Join Date: Apr 2010
Posts: 57
Thanks I will try it.
liquidbase is offline   Reply With Quote
Unread 09-04-14, 02:49 PM   #20
gizmo28
A Kobold Labourer
AddOn Author - Click to view addons
Join Date: Oct 2008
Posts: 1
Originally Posted by p3lim View Post
It seems to be gone, use this:

Code:
GetAddOnEnableState('character', index)
This would also work without to much work:

Code:
		local enabled
		for i = 1, GetNumAddOns() do
			local name, title, notes, loadable, reason, security, newversion = GetAddOnInfo(i)
			if name ==  "NameofAddon" and loadable then
				enabled = true
				break
			end
		end
You can use either one of these of:

name - Name of the addon (name of the addon's folder and TOC file) (string)
title - Title of the addon (from the Title header in the addon's TOC file) (string)

I personally would use name because some people use different titles from the addon folder in their .toc files.

Last edited by gizmo28 : 09-04-14 at 03:41 PM.
gizmo28 is offline   Reply With Quote
Reply

Go BackWoWInterface » WoD Beta » WoD Beta API and Graphics Changes » 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