Mercurial > wow > buffalo2
comparison ObjectiveEvents.lua @ 8:7923243ae972
ObjectiveUI & ObjectiveEvents
- securehook to API calls for compatibility with addons that work with the objective tracking interface
- let the API hooks invoke ObjectiveUI functions when possible
- ObjectiveUI framescript handlers should use the corresponding API call if possible, so that addon space can be fully aware of our actions
- Sanity check cached data when possible during 'Remove' hooks
ObjectiveInfo
- Add cheevID to criteria info
ObjectiveCore
- Index quest tracker blocks by their watch offset, and use that to verify whether the given block frame should be released into pool
ObjectiveFrame
- Differentiate between visible and non-visible unused buttons, and only release when their quest has been dropped
author | Nenue |
---|---|
date | Fri, 01 Apr 2016 14:40:14 -0400 |
parents | 589de8ea05b9 |
children | 880828018bf4 |
comparison
equal
deleted
inserted
replaced
7:5301c68f28d8 | 8:7923243ae972 |
---|---|
26 local BlizzHooks = { | 26 local BlizzHooks = { |
27 ['AddQuestWatch'] = 'AddQuestWatch', | 27 ['AddQuestWatch'] = 'AddQuestWatch', |
28 ['RemoveQuestWatch'] = 'RemoveQuestWatch', | 28 ['RemoveQuestWatch'] = 'RemoveQuestWatch', |
29 ['AbandonQuest'] = 'AbandonQuest', | 29 ['AbandonQuest'] = 'AbandonQuest', |
30 ['AcknowledgeAutoAcceptQuest'] = 'AcknowledgeAutoAcceptQuest', | 30 ['AcknowledgeAutoAcceptQuest'] = 'AcknowledgeAutoAcceptQuest', |
31 ['AddAutoQuestPopUp'] = 'AddAutoQuestPopUp' | 31 ['AddAutoQuestPopUp'] = 'AddAutoQuestPopUp', |
32 ['RemoveTrackedAchievement'] = 'RemoveTrackedAchievement' | |
32 } | 33 } |
33 | 34 |
34 mod.SetEvents = function() | 35 mod.SetEvents = function() |
35 | 36 |
36 for event, _ in pairs(SmallEvents) do | 37 for event, _ in pairs(SmallEvents) do |
109 ------------------------------------------------------------------- | 110 ------------------------------------------------------------------- |
110 mod.AddQuestWatch = function(questID) | 111 mod.AddQuestWatch = function(questID) |
111 mod.UpdateWrapper() | 112 mod.UpdateWrapper() |
112 end | 113 end |
113 | 114 |
114 mod.RemoveQuestWatch = function(questIndex) | 115 mod.RemoveQuestWatch = function(questIndex, ...) |
116 print('|cFFFF8800RemoveQuestWatch', questIndex, ...) | |
117 local info = mod.Quest.LogInfo[questIndex] | |
118 | |
119 -- remove quest refs | |
120 mod.Quest.LogBlock[questIndex] = nil | |
121 mod.Quest.QuestBlock[info.questID] = nil | |
122 | |
123 -- remove if they still match | |
124 if mod.Quest.WatchInfo[info.watchIndex] == info then | |
125 print('cleaning dead WatchInfo entry') | |
126 mod.Quest.WatchInfo[info.watchIndex] = nil | |
127 end | |
128 | |
115 mod.UpdateWrapper() | 129 mod.UpdateWrapper() |
130 QuestPOIUpdateIcons() | |
131 end | |
132 | |
133 mod.RemoveTrackedAchievement = function(cheevID) | |
134 print('|cFFFF8800UntrackAchievement', cheevID) | |
135 mod.CleanWidgets() | |
116 end | 136 end |
117 | 137 |
118 mod.AcceptQuest = function() | 138 mod.AcceptQuest = function() |
119 end | 139 end |
120 | 140 |
121 mod.AbandonQuest = function() | 141 mod.AbandonQuest = function() |
142 | |
143 QuestPOIUpdateIcons() | |
122 end | 144 end |
123 | 145 |
124 mod.TurnInQuest = function() | 146 mod.TurnInQuest = function() |
147 | |
148 QuestPOIUpdateIcons() | |
125 end | 149 end |