Thread Tools Display Modes
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,710
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
 
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,710
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
 
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,710
Please let me know if you find additional changes and I'll update the original posts.
 
07-20-14, 09:41 AM   #4
Nimhfree
A Frostmaul Preserver
AddOn Author - Click to view addons
Join Date: Aug 2006
Posts: 267
GetQuestLogTitle no longer returns "isDaily" as a boolean, but "frequency" which needs to be compared against two constants representing daily or weekly values.
 
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,710
Changes in 18663:

Code:
Old: GameTooltip:SetHyperlink(link)
New: GameTooltip:SetHyperlink(link, classID, specID)
 
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()
 
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,710
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.
 
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,710
Changes in 18689:

Code:
Old: SetMapByID(mapID)
New: SetMapByID(mapID[, floor])
 
08-07-14, 08:27 PM   #9
myrroddin
A Pyroguard Emberseer
 
myrroddin's Avatar
AddOn Author - Click to view addons
Join Date: Oct 2008
Posts: 1,240
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.
 
08-07-14, 08:54 PM   #10
semlar
A Pyroguard Emberseer
 
semlar's Avatar
AddOn Author - Click to view addons
Join Date: Sep 2007
Posts: 1,060
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.
 
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,710
Changes from 18689 to 18716:

Code:
Old: name, groupType, isHeroic, isChallengeMode, toggleDifficultyID = GetDifficultyInfo(id)
New: name, groupType, isHeroic, isChallengeMode, displayHeroic, displayMythic, toggleDifficultyID = GetDifficultyInfo(id)
 
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,710
No changes in build 18738, but GetSpellInfo no longer returns empty strings on invalid parameters, now returns nil as intended.
 
08-25-14, 01:44 AM   #13
Tekkub
A Molten Giant
 
Tekkub's Avatar
AddOn Author - Click to view addons
Join Date: Dec 2005
Posts: 960
`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!
 
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,710
Changes in 18816:

Code:
Old: GetSpecializationSpells(specIndex[, isInspect[, isPet]])
New: GetSpecializationSpells(specIndex[, isInspect[, isPet[, ignorePetOverrideSpec]]])
 
09-03-14, 07:44 AM   #15
Haleth
This Space For Rent
 
Haleth's Avatar
Featured
Join Date: Sep 2008
Posts: 1,173
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
 
09-03-14, 08:03 AM   #16
TOM_RUS
A Warpwood Thunder Caller
AddOn Author - Click to view addons
Join Date: Sep 2008
Posts: 95
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.
 
09-04-14, 09:46 AM   #17
liquidbase
A Warpwood Thunder Caller
 
liquidbase's Avatar
AddOn Author - Click to view addons
Join Date: Apr 2010
Posts: 97
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.
 
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,710
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)
 
09-04-14, 11:06 AM   #19
liquidbase
A Warpwood Thunder Caller
 
liquidbase's Avatar
AddOn Author - Click to view addons
Join Date: Apr 2010
Posts: 97
Thanks I will try it.
 
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.
 
 

WoWInterface » Site Forums » Archived Beta Forums » WoD Beta archived threads » 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