diff 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
line wrap: on
line diff
--- a/ObjectiveInfo.lua	Tue Apr 05 02:38:01 2016 -0400
+++ b/ObjectiveInfo.lua	Wed Apr 06 07:38:35 2016 -0400
@@ -19,7 +19,7 @@
 local LE_QUEST_FREQUENCY_WEEKLY = LE_QUEST_FREQUENCY_WEEKLY
 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
 
-local Tracker, Bonus, AutoQuest, Quest, Cheevs = mod.Tracker, mod.Bonus, mod.AutoQuest, mod.Quest, mod.Cheevs
+local Tracker, Bonus, AutoQuest, Quest, Cheevs = mod.DefaultTracker, mod.Bonus, mod.AutoQuest, mod.Quest, mod.Cheevs
 --------------------------------------------------------------------
 --- Tracker-specific data retrieval functions
 --------------------------------------------------------------------
@@ -31,9 +31,10 @@
 AutoQuest.LogBlock = {}
 AutoQuest.QuestBlock = {}
 AutoQuest.WatchBlock = {}
-AutoQuest.GetNumWatched = function()
-  AutoQuest.numWatched = GetNumAutoQuestPopUps()
-  return AutoQuest.numWatched
+function AutoQuest:GetNumWatched ()
+  print(self.name, self)
+  self.numWatched = GetNumAutoQuestPopUps()
+  return self.numWatched
 end
 AutoQuest.GetInfo = function(self, popupIndex)
 
@@ -66,7 +67,8 @@
 local taskData = {}
 Bonus.QuestBlock = {}
 Bonus.TaskWatch = {}
-Bonus.GetNumWatched = function()
+function Bonus:GetNumWatched ()
+  print(self.name, self)
   local tasks = GetTasksTable()
   local numTasks = 0
   Bonus.TaskWatch = {}
@@ -86,6 +88,7 @@
 end
 
 Bonus.GetInfo = function(self, taskIndex)
+  print(self.name, self)
   return Bonus.TaskWatch[taskIndex]
 end
 
@@ -183,16 +186,21 @@
 Quest.LogBlock = {}
 Quest.LogInfo = {}
 
-Quest.GetNumWatched = function()
-  Quest.numAll = GetNumQuestLogEntries()
-  Quest.numWatched = GetNumQuestWatches()
-  return Quest.numWatched
+function Quest:GetNumWatched ()
+  print(self.name, self)
+  self.numAll = GetNumQuestLogEntries()
+  self.numWatched = GetNumQuestWatches()
+  return self.numWatched, self.numAll
 end
 Quest.GetInfo = function (self, watchIndex)
   print('|cFF00DDFFQuest|r.|cFF0088FFGetInfo(|r'.. tostring(watchIndex)..'|r)')
   local questID, title, questIndex, numObjectives, requiredMoney, isComplete,
   startEvent, isAutoComplete, failureTime, timeElapsed, questType, isTask, isStory, isOnMap, hasLocalPOI = GetQuestWatchInfo(watchIndex)
 
+  if not questIndex then
+    return
+  end
+
   local _, level, suggestedGroup, isHeader, isCollapsed, isComplete, frequency, _, startEvent, displayQuestID, isOnMap, hasLocalPOI, isTask, isStory = GetQuestLogTitle(questIndex)