annotate ObjectiveTracker/AutoQuestPopups.lua @ 37:e84d645c8ab8

- revised the tracker update function to build its complete data list up front and use the values as points of comparison for determining possible out of place blocks, which will be iterated over afterward to remove what wasn't re-used - also entailed revising the exact role of global event handlers and function hooks, limiting their directions of communication so one doesn't end up calling the other multiple or inifinity times - schema handling polish
author Nenue
date Mon, 18 Apr 2016 07:56:23 -0400
parents 9856ebc63fa4
children
rev   line source
Nenue@28 1 --- ${PACKAGE_NAME}
Nenue@28 2 -- @file-author@
Nenue@28 3 -- @project-revision@ @project-hash@
Nenue@28 4 -- @file-revision@ @file-hash@
Nenue@28 5 -- Created: 4/13/2016 7:49 PM
Nenue@28 6 local B = select(2,...).frame
Nenue@28 7 local T = B:RegisterModule("ObjectiveTracker", _G.VeneerObjectiveWrapper, 'BuffFrame')
Nenue@29 8 local print = B.print('Info')
Nenue@29 9 local lprint = B.print('Line')
Nenue@29 10 local AutoQuest, Quest = T.AutoQuest, T.Quest
Nenue@28 11 local ShowQuestOffer, ShowQuestComplete, RemoveAutoQuestPopUp = ShowQuestOffer, ShowQuestComplete, RemoveAutoQuestPopUp
Nenue@29 12 local GetNumAutoQuestPopUps, GetAutoQuestPopUp, GetQuestLogIndexByID, GetQuestLogTitle = GetNumAutoQuestPopUps, GetAutoQuestPopUp, GetQuestLogIndexByID, GetQuestLogTitle
Nenue@29 13 --- Data retrieval
Nenue@29 14 function AutoQuest:GetNumWatched ()
Nenue@37 15 if true then return 0, 0, nil end
Nenue@29 16 print(self.name, self)
Nenue@34 17 --Quest:GetNumWatched()
Nenue@29 18 self.numWatched = GetNumAutoQuestPopUps()
Nenue@28 19
Nenue@29 20 return self.numWatched
Nenue@29 21 end
Nenue@29 22 AutoQuest.GetInfo = function(self, popupIndex)
Nenue@29 23
Nenue@29 24
Nenue@29 25 local questID, type = GetAutoQuestPopUp(popupIndex)
Nenue@29 26 local questLogIndex = GetQuestLogIndexByID(questID)
Nenue@29 27 local title, level, suggestedGroup, isHeader, isCollapsed, isComplete, frequency, questID, startEvent, displayQuestID, isOnMap, hasLocalPOI, isTask, isStory = GetQuestLogTitle(questLogIndex)
Nenue@29 28
Nenue@29 29 self.Info[questID] = self.Info[questID] or {}
Nenue@29 30 local popup = self.Info[questID]
Nenue@30 31 popup.questID = questID
Nenue@30 32 popup.id = questID
Nenue@29 33 popup.title = title
Nenue@29 34 popup.description = type
Nenue@29 35 popup.popupType = type
Nenue@34 36 popup.logIndex = questLogIndex
Nenue@29 37 popup.popupIndex = popupIndex
Nenue@29 38
Nenue@29 39 self.Info[questID] = popup
Nenue@29 40 self.WatchInfo[popupIndex] = popup
Nenue@29 41
Nenue@29 42
Nenue@29 43 return self.Info[questID]
Nenue@29 44 end
Nenue@29 45
Nenue@28 46 AutoQuest.UpdateObjectives = function(handler, block)
Nenue@28 47 local print = lprint
Nenue@28 48 if block.info.type == 'OFFER' then
Nenue@29 49 block.status:SetText(T.strings.CLICK_TO_ACCEPT)
Nenue@28 50 end
Nenue@28 51 end
Nenue@28 52
Nenue@31 53 AutoQuest.Select = function(handler, block)
Nenue@28 54
Nenue@31 55 if block.info.popupType == 'OFFER' then
Nenue@34 56 ShowQuestOffer(block.info.logIndex)
Nenue@28 57 else
Nenue@34 58 ShowQuestComplete(block.info.logIndex)
Nenue@28 59 end
Nenue@31 60 RemoveAutoQuestPopUp(block.info.questID)
Nenue@28 61 end
Nenue@28 62
Nenue@28 63 AutoQuest.Link = T.Quest.Link