comparison ObjectiveInfo.lua @ 19:605e8f0e46db

ObjectiveCore / Style / Events / Frame - polishing the execution path for better performance - make use of the Blizzard_ObjectiveTracker bitfield values to ensure compatibility in possible secure hooks - avoid full updates when possible (using said bitfield values to indicate targeted sections) - extreme streamlining of event handling layout: specific reason updates are invoked from API hooks; broader updates are invoked by when the event listener catches something vague like 'QUEST_LOG_UPDATE'
author Nenue
date Wed, 06 Apr 2016 07:38:35 -0400
parents d1812fb10ae6
children d5ee940de273
comparison
equal deleted inserted replaced
18:d1812fb10ae6 19:605e8f0e46db
17 local QUEST_TAG_TCOORDS = QUEST_TAG_TCOORDS 17 local QUEST_TAG_TCOORDS = QUEST_TAG_TCOORDS
18 local LE_QUEST_FREQUENCY_DAILY = LE_QUEST_FREQUENCY_DAILY 18 local LE_QUEST_FREQUENCY_DAILY = LE_QUEST_FREQUENCY_DAILY
19 local LE_QUEST_FREQUENCY_WEEKLY = LE_QUEST_FREQUENCY_WEEKLY 19 local LE_QUEST_FREQUENCY_WEEKLY = LE_QUEST_FREQUENCY_WEEKLY
20 local FACTION_ALLIANCE, LE_QUEST_FACTION_HORDE, FACTION_HORDE, LE_QUEST_FACTION_HORDE = FACTION_ALLIANCE, LE_QUEST_FACTION_HORDE, FACTION_HORDE, LE_QUEST_FACTION_HORDE 20 local FACTION_ALLIANCE, LE_QUEST_FACTION_HORDE, FACTION_HORDE, LE_QUEST_FACTION_HORDE = FACTION_ALLIANCE, LE_QUEST_FACTION_HORDE, FACTION_HORDE, LE_QUEST_FACTION_HORDE
21 21
22 local Tracker, Bonus, AutoQuest, Quest, Cheevs = mod.Tracker, mod.Bonus, mod.AutoQuest, mod.Quest, mod.Cheevs 22 local Tracker, Bonus, AutoQuest, Quest, Cheevs = mod.DefaultTracker, mod.Bonus, mod.AutoQuest, mod.Quest, mod.Cheevs
23 -------------------------------------------------------------------- 23 --------------------------------------------------------------------
24 --- Tracker-specific data retrieval functions 24 --- Tracker-specific data retrieval functions
25 -------------------------------------------------------------------- 25 --------------------------------------------------------------------
26 26
27 27
29 --- AUTO_QUEST 29 --- AUTO_QUEST
30 AutoQuest.LogInfo = {} 30 AutoQuest.LogInfo = {}
31 AutoQuest.LogBlock = {} 31 AutoQuest.LogBlock = {}
32 AutoQuest.QuestBlock = {} 32 AutoQuest.QuestBlock = {}
33 AutoQuest.WatchBlock = {} 33 AutoQuest.WatchBlock = {}
34 AutoQuest.GetNumWatched = function() 34 function AutoQuest:GetNumWatched ()
35 AutoQuest.numWatched = GetNumAutoQuestPopUps() 35 print(self.name, self)
36 return AutoQuest.numWatched 36 self.numWatched = GetNumAutoQuestPopUps()
37 return self.numWatched
37 end 38 end
38 AutoQuest.GetInfo = function(self, popupIndex) 39 AutoQuest.GetInfo = function(self, popupIndex)
39 40
40 local questID, type = GetAutoQuestPopUp(popupIndex) 41 local questID, type = GetAutoQuestPopUp(popupIndex)
41 local questIndex = GetQuestLogIndexByID(questID) 42 local questIndex = GetQuestLogIndexByID(questID)
64 Bonus.TaskScenario = {} 65 Bonus.TaskScenario = {}
65 66
66 local taskData = {} 67 local taskData = {}
67 Bonus.QuestBlock = {} 68 Bonus.QuestBlock = {}
68 Bonus.TaskWatch = {} 69 Bonus.TaskWatch = {}
69 Bonus.GetNumWatched = function() 70 function Bonus:GetNumWatched ()
71 print(self.name, self)
70 local tasks = GetTasksTable() 72 local tasks = GetTasksTable()
71 local numTasks = 0 73 local numTasks = 0
72 Bonus.TaskWatch = {} 74 Bonus.TaskWatch = {}
73 print('|cFFFFFF00Bonus.GetNumWatched()|r', #tasks) 75 print('|cFFFFFF00Bonus.GetNumWatched()|r', #tasks)
74 for i, questID in ipairs(tasks) do 76 for i, questID in ipairs(tasks) do
84 Bonus.numWatched = numTasks 86 Bonus.numWatched = numTasks
85 return GetNumQuestLogTasks() 87 return GetNumQuestLogTasks()
86 end 88 end
87 89
88 Bonus.GetInfo = function(self, taskIndex) 90 Bonus.GetInfo = function(self, taskIndex)
91 print(self.name, self)
89 return Bonus.TaskWatch[taskIndex] 92 return Bonus.TaskWatch[taskIndex]
90 end 93 end
91 94
92 Bonus.StoreTask = function(questID) 95 Bonus.StoreTask = function(questID)
93 96
181 Quest.POI = {} 184 Quest.POI = {}
182 Quest.QuestBlock = {} 185 Quest.QuestBlock = {}
183 Quest.LogBlock = {} 186 Quest.LogBlock = {}
184 Quest.LogInfo = {} 187 Quest.LogInfo = {}
185 188
186 Quest.GetNumWatched = function() 189 function Quest:GetNumWatched ()
187 Quest.numAll = GetNumQuestLogEntries() 190 print(self.name, self)
188 Quest.numWatched = GetNumQuestWatches() 191 self.numAll = GetNumQuestLogEntries()
189 return Quest.numWatched 192 self.numWatched = GetNumQuestWatches()
193 return self.numWatched, self.numAll
190 end 194 end
191 Quest.GetInfo = function (self, watchIndex) 195 Quest.GetInfo = function (self, watchIndex)
192 print('|cFF00DDFFQuest|r.|cFF0088FFGetInfo(|r'.. tostring(watchIndex)..'|r)') 196 print('|cFF00DDFFQuest|r.|cFF0088FFGetInfo(|r'.. tostring(watchIndex)..'|r)')
193 local questID, title, questIndex, numObjectives, requiredMoney, isComplete, 197 local questID, title, questIndex, numObjectives, requiredMoney, isComplete,
194 startEvent, isAutoComplete, failureTime, timeElapsed, questType, isTask, isStory, isOnMap, hasLocalPOI = GetQuestWatchInfo(watchIndex) 198 startEvent, isAutoComplete, failureTime, timeElapsed, questType, isTask, isStory, isOnMap, hasLocalPOI = GetQuestWatchInfo(watchIndex)
199
200 if not questIndex then
201 return
202 end
195 203
196 local _, level, suggestedGroup, isHeader, isCollapsed, isComplete, frequency, _, startEvent, displayQuestID, isOnMap, hasLocalPOI, isTask, isStory = GetQuestLogTitle(questIndex) 204 local _, level, suggestedGroup, isHeader, isCollapsed, isComplete, frequency, _, startEvent, displayQuestID, isOnMap, hasLocalPOI, isTask, isStory = GetQuestLogTitle(questIndex)
197 205
198 206
199 if not questID then 207 if not questID then