diff ObjectiveTracker/AutoQuestPopupData.lua @ 45:dd1ae565f559

Hooks and Handlers: - correct argument mix-ups for AcceptQuest/QUEST_ACCEPTED handlers; fixes auto-watch - respond to AcknowledgeAutoAcceptQuest; fixes lingering popups - include Popup and Quest trackers in the response code for CompleteQuest; fixes content artifacts following the rollover of repeating popups seen in Ashran - clean up wacky OnEvent header Layout - add alpha blend options QuestData - reset objectives data when a quest is in a completed state; keeps old data from ever reaching the Default.x code
author Nenue
date Tue, 26 Apr 2016 14:57:18 -0400
parents 9480bd904f4c
children
line wrap: on
line diff
--- a/ObjectiveTracker/AutoQuestPopupData.lua	Mon Apr 25 19:37:13 2016 -0400
+++ b/ObjectiveTracker/AutoQuestPopupData.lua	Tue Apr 26 14:57:18 2016 -0400
@@ -12,32 +12,42 @@
 local GetNumAutoQuestPopUps, GetAutoQuestPopUp, GetQuestLogIndexByID, GetQuestLogTitle = GetNumAutoQuestPopUps, GetAutoQuestPopUp, GetQuestLogIndexByID, GetQuestLogTitle
 --- Data retrieval
 function AutoQuest:GetNumWatched ()
-  if true then return 0, 0, nil end
-  print(self.name, self)
-  --Quest:GetNumWatched()
-  self.numWatched = GetNumAutoQuestPopUps()
+  local numWatched = GetNumAutoQuestPopUps()
+  local numAll = numWatched
 
-  return self.numWatched
+  self.print('GetNumWatched', numWatched, 'popups detected')
+  for i = 1, numWatched do
+      self:GetInfo(i)
+  end
+
+  for i, block in ipairs(self.usedBlocks) do
+    if not GetAutoQuestPopUp(block.info.id) then
+      self:FreeBlock(block)
+    end
+  end
+
+  self.numWatched = numWatched
+  self.WatchList = self.Info
+  return numWatched
 end
-AutoQuest.GetInfo = function(self, popupIndex)
+AutoQuest.GetInfo = function(self, index)
 
 
-  local questID, type = GetAutoQuestPopUp(popupIndex)
+  local questID, type = GetAutoQuestPopUp(index)
   local questLogIndex = GetQuestLogIndexByID(questID)
   local title, level, suggestedGroup, isHeader, isCollapsed, isComplete, frequency, questID, startEvent, displayQuestID, isOnMap, hasLocalPOI, isTask, isStory = GetQuestLogTitle(questLogIndex)
 
-  self.Info[questID] = self.Info[questID] or {}
-  local popup = self.Info[questID]
+  self.Info[index] = self.Info[index] or {}
+  local popup = self.Info[index]
   popup.questID = questID
-  popup.id = questID
+  popup.id = index
   popup.title = title
   popup.description = type
   popup.popupType = type
   popup.logIndex = questLogIndex
-  popup.popupIndex = popupIndex
 
   self.Info[questID] = popup
-  self.WatchInfo[popupIndex] = popup
+  self.WatchInfo[index] = popup
 
 
   return self.Info[questID]