annotate ObjectiveTracker/ObjectiveEvents.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 e837384ac363
children
rev   line source
Nenue@1 1 --- ${PACKAGE_NAME}
Nenue@1 2 -- @file-author@
Nenue@1 3 -- @project-revision@ @project-hash@
Nenue@1 4 -- @file-revision@ @file-hash@
Nenue@1 5 -- Created: 3/30/2016 1:23 AM
Nenue@1 6 local B = select(2,...).frame
Nenue@1 7 local mod = B:RegisterModule("ObjectiveTracker", _G.VeneerObjectiveWrapper, 'BuffFrame')
Nenue@19 8 local print = B.print('Objectives')
Nenue@6 9
Nenue@1 10 --------------------------------------------------------------------
Nenue@6 11 --- Events that are handled by Blizzard_ObjectiveTracker
Nenue@1 12 --------------------------------------------------------------------
Nenue@1 13
Nenue@6 14 -------------------------------------------------------------------
Nenue@6 15 --- Function hooks for BlizzUI compatibility
Nenue@6 16 -------------------------------------------------------------------
Nenue@6 17 mod.AddQuestWatch = function(questID)
Nenue@19 18 mod:Update(0x00000003)
Nenue@1 19 end
Nenue@6 20
Nenue@21 21 local Quest = mod.Quest
Nenue@8 22 mod.RemoveQuestWatch = function(questIndex, ...)
Nenue@8 23 print('|cFFFF8800RemoveQuestWatch', questIndex, ...)
Nenue@21 24
Nenue@8 25 local info = mod.Quest.LogInfo[questIndex]
Nenue@8 26
Nenue@8 27 -- remove quest refs
Nenue@21 28 local block = Quest.QuestBlock[info.questID]
Nenue@21 29 Quest.QuestBlock[info.questID] = nil
Nenue@21 30 Quest.LogBlock[questIndex] = nil
Nenue@8 31
Nenue@8 32 -- remove if they still match
Nenue@21 33 if Quest.WatchInfo[info.watchIndex] == info then
Nenue@8 34 print('cleaning dead WatchInfo entry')
Nenue@21 35 Quest.WatchInfo[info.watchIndex] = nil
Nenue@8 36 end
Nenue@21 37
Nenue@19 38 mod:Update(OBJECTIVE_TRACKER_UPDATE_MODULE_QUEST)
Nenue@19 39 end
Nenue@8 40
Nenue@19 41 mod.AddTrackedAchievement = function(cheevID)
Nenue@19 42 mod.CleanWidgets()
Nenue@19 43 mod:Update(OBJECTIVE_TRACKER_UPDATE_MODULE_ACHIEVEMENT)
Nenue@8 44 end
Nenue@8 45
Nenue@19 46
Nenue@8 47 mod.RemoveTrackedAchievement = function(cheevID)
Nenue@8 48 print('|cFFFF8800UntrackAchievement', cheevID)
Nenue@8 49 mod.CleanWidgets()
Nenue@19 50 mod:Update(OBJECTIVE_TRACKER_UPDATE_MODULE_ACHIEVEMENT)
Nenue@6 51 end
Nenue@6 52
Nenue@6 53 mod.AcceptQuest = function()
Nenue@19 54 mod:Update(OBJECTIVE_TRACKER_UPDATE_MODULE_QUEST_ADDED)
Nenue@6 55 end
Nenue@6 56
Nenue@6 57 mod.AbandonQuest = function()
Nenue@8 58 QuestPOIUpdateIcons()
Nenue@19 59 mod:Update(OBJECTIVE_TRACKER_UPDATE_MODULE_QUEST)
Nenue@19 60 end
Nenue@19 61 mod.TurnInQuest = function()
Nenue@19 62 QuestPOIUpdateIcons()
Nenue@19 63 mod:Update(OBJECTIVE_TRACKER_UPDATE_MODULE_QUEST)
Nenue@19 64 end
Nenue@19 65 mod.AddAutoQuestPopUp = function(...)
Nenue@19 66 mod:Update(OBJECTIVE_TRACKER_UPDATE_MODULE_AUTO_QUEST_POPUP)
Nenue@19 67 end
Nenue@19 68 mod.RemoveAutoQuestPopUp = function(...)
Nenue@19 69 mod:Update(OBJECTIVE_TRACKER_UPDATE_MODULE_AUTO_QUEST_POPUP)
Nenue@6 70 end
Nenue@6 71
Nenue@20 72
Nenue@20 73
Nenue@19 74 mod.SetSuperTrackedQuestID = function(questID)
Nenue@21 75 --mod:Update()
Nenue@6 76 end