ESO UI API Patch Highlights (V100023)
A summary of important changes to the ESO UI API in this package.
Jewelry Crafting
We have added Jewelry Crafting as a new crafting type. It is very similar in implementation to Woodworking, Blacksmithing, and Clothier. The major difference is that jewelry does not make use of style items. Any smithing APIs that take style id as parameter should take 0 for Jewelry Crafting. Here are the new enum values for jewelry crafting:
- NON_COMBAT_BONUS_JEWELRYCRAFTING_BOOSTER_BONUS
- NON_COMBAT_BONUS_JEWELRYCRAFTING_CRAFT_PERCENT_DISCOUNT
- NON_COMBAT_BONUS_JEWELRYCRAFTING_EXTRACT_LEVEL
- NON_COMBAT_BONUS_JEWELRYCRAFTING_HIRELING_LEVEL
- NON_COMBAT_BONUS_JEWELRYCRAFTING_LEVEL
- NON_COMBAT_BONUS_JEWELRYCRAFTING_RESEARCH_LEVEL
- NON_COMBAT_BONUS_JEWELRYCRAFTING_SHOW_NODES
- RECIPE_CRAFTING_SYSTEM_JEWELRYCRAFTING_SKETCHES
- CRAFTING_TYPE_JEWELRYCRAFTING
- ITEM_TRAIT_TYPE_JEWELRY_BLOODTHIRSTY
- ITEM_TRAIT_TYPE_JEWELRY_HARMONY
- ITEM_TRAIT_TYPE_JEWELRY_INFUSED
- ITEM_TRAIT_TYPE_JEWELRY_INTRICATE
- ITEM_TRAIT_TYPE_JEWELRY_PROTECTIVE
- ITEM_TRAIT_TYPE_JEWELRY_SWIFT
- ITEM_TRAIT_TYPE_JEWELRY_TRIUNE
- ITEMTYPE_JEWELRYCRAFTING_BOOSTER
- ITEMTYPE_JEWELRYCRAFTING_MATERIAL
- ITEMTYPE_JEWELRYCRAFTING_RAW_BOOSTER
- ITEMTYPE_JEWELRYCRAFTING_RAW_MATERIAL
- ITEMTYPE_JEWELRY_RAW_TRAIT
- ITEMTYPE_JEWELRY_TRAIT
- SPECIALIZED_ITEMTYPE_FURNISHING_MATERIAL_JEWELRYCRAFTING
- SPECIALIZED_ITEMTYPE_JEWELRYCRAFTING_BOOSTER
- SPECIALIZED_ITEMTYPE_JEWELRYCRAFTING_MATERIAL
- SPECIALIZED_ITEMTYPE_JEWELRYCRAFTING_RAW_BOOSTER
- SPECIALIZED_ITEMTYPE_JEWELRYCRAFTING_RAW_MATERIAL
- SPECIALIZED_ITEMTYPE_JEWELRY_RAW_TRAIT
- SPECIALIZED_ITEMTYPE_JEWELRY_TRAIT
- SPECIALIZED_ITEMTYPE_RECIPE_JEWELRYCRAFTING_SKETCH_FURNISHING
Saved Variables Size
We have updated the virtual machine to handle larger tables in saved variables. Please let us know if this helps with saved variable corruption problems.
Rewards
A reward ID can no longer contain multiple rewards. As a result, the reward APIs have had the reward index parameter removed.
Quest Tracker
The quest tracker has been changed from two objects (QUEST_TRACKER and FOCUSED_QUEST_TRACKER) into just one object (FOCUSED_QUEST_TRACKER). The previous structure was a remnant of transitioning from one type of tracker to another. The co-dependency between the two led to a number of bugs including cases where the tracker would change the focused quest when you traveled to a different zone. All uses of QUEST_TRACKER now call the same functions on FOCUSED_QUEST_TRACKER.
Control Profiling
We have added the ability to count the number of controls created by different code paths. This can be used to profile the amount of controls created by your addon. To enable control profiling, set the user setting “ProfileControlCreation” to “1” before starting the game. ZO_DumpTopControlCreations(N) will output the top N sources of control creation ordered by controls created.
ZO_DumpControlCreationStacksForSource(searchTerm) will output all sources of control creation containing the search term. You can use this function with terms common to your lua and XML file paths to evaluate their control creation.
Control::OnRectChanged
A new handler has been added to all controls named “OnRectChanged”. It will fire anytime the top, bottom, left, or right of a control changes. The hander will pass the control followed by newLeft, newTop, newRight, newBottom, oldLeft, oldTop, oldRight, and oldBottom. This handler can fire quite frequently so be careful to evaluate the performance before making use of it.
Label::SetMinLineCount/minLineCount
This function/attribute will set the minimum number of lines that a Label can be.
Miscellaneous
- StringToId64(stringId) – id.
- Converts a string representation of an id4 into an id64.
- GetItemLinkItemId(itemLink) – itemId.
- Gets the item id from an item link.
- DoesItemLinkFulfillJournalQuestCondition(link, journalQuestIndex, stepIndex, conditionIndex) – fulfillsCondition.
- Returns if the linked item fulfills the chosen quest condition.
- Added conditionType as a return to GetJournalQuestConditionInfo.