annotate ObjectiveTracker/Events.lua @ 34:9856ebc63fa4

- half solution to Update being fired multiple times during load - change securefunc handlers to dispense a reason code; catch that reason code in the enclosure passed to hooksecurefunc, and decide whether to update or not from there.
author Nenue
date Sun, 17 Apr 2016 00:21:45 -0400
parents 48b3e3959a0a
children e84d645c8ab8
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: 3/30/2016 1:23 AM
Nenue@28 6 local B = select(2,...).frame
Nenue@28 7 local T = B:RegisterModule("ObjectiveTracker", _G.VeneerObjectiveWrapper, 'BuffFrame')
Nenue@28 8 local print = B.print('Objectives')
Nenue@28 9
Nenue@34 10 local _G = _G
Nenue@34 11 local OBJECTIVE_TRACKER_UPDATE_MODULE_ACHIEVEMENT = OBJECTIVE_TRACKER_UPDATE_MODULE_ACHIEVEMENT
Nenue@34 12 local OBJECTIVE_TRACKER_UPDATE_MODULE_QUEST_ADDED = OBJECTIVE_TRACKER_UPDATE_MODULE_QUEST_ADDED
Nenue@34 13 local OBJECTIVE_TRACKER_UPDATE_MODULE_QUEST = OBJECTIVE_TRACKER_UPDATE_MODULE_QUEST
Nenue@34 14 local OBJECTIVE_TRACKER_UPDATE_MODULE_AUTO_QUEST_POPUP = OBJECTIVE_TRACKER_UPDATE_MODULE_AUTO_QUEST_POPUP
Nenue@34 15 local GetQuestID, GetQuestLogIndexByID, AddQuestWatch, SetSuperTrackedQuestID = GetQuestID, GetQuestLogIndexByID, AddQuestWatch, SetSuperTrackedQuestID
Nenue@34 16 local QuestPOIUpdateIcons = QuestPOIUpdateIcons
Nenue@28 17 -------------------------------------------------------------------
Nenue@34 18 --- Deal with blizzard API calls that affect the tracker/log contents
Nenue@34 19 --- mainly just hiding blocks until they can be picked up by the next update event
Nenue@28 20 -------------------------------------------------------------------
Nenue@28 21 T.AddQuestWatch = function(questID)
Nenue@34 22 if not B.Conf.VeneerObjectiveWrapper.enabled then return end
Nenue@34 23 return OBJECTIVE_TRACKER_UPDATE_MODULE_QUEST
Nenue@28 24 end
Nenue@28 25
Nenue@28 26 local Quest = T.Quest
Nenue@28 27 T.RemoveQuestWatch = function(questIndex, ...)
Nenue@28 28 print('|cFFFF8800RemoveQuestWatch', questIndex, ...)
Nenue@34 29 local block = T.Quest.LogBlock[questIndex]
Nenue@34 30 if block then
Nenue@34 31 block:Hide()
Nenue@28 32 end
Nenue@34 33 return OBJECTIVE_TRACKER_UPDATE_MODULE_QUEST
Nenue@28 34 end
Nenue@28 35
Nenue@28 36 T.AddTrackedAchievement = function(cheevID)
Nenue@28 37 T.CleanWidgets()
Nenue@34 38 return OBJECTIVE_TRACKER_UPDATE_MODULE_ACHIEVEMENT
Nenue@28 39 end
Nenue@28 40
Nenue@28 41
Nenue@28 42 T.RemoveTrackedAchievement = function(cheevID)
Nenue@28 43 T.CleanWidgets()
Nenue@34 44 return OBJECTIVE_TRACKER_UPDATE_MODULE_ACHIEVEMENT
Nenue@28 45 end
Nenue@28 46
Nenue@28 47 T.AcceptQuest = function()
Nenue@28 48 end
Nenue@28 49
Nenue@28 50 T.AbandonQuest = function()
Nenue@28 51 QuestPOIUpdateIcons()
Nenue@34 52 return OBJECTIVE_TRACKER_UPDATE_MODULE_QUEST
Nenue@28 53 end
Nenue@34 54 T.CompleteQuest = function()
Nenue@34 55 local questID = GetQuestID()
Nenue@34 56 if T.Quest.Info[questID] then
Nenue@34 57 local q = T.Quest.Info[questID]
Nenue@34 58 if q.logIndex then
Nenue@34 59 local block = T.Quest.LogBlock[q.logIndex]
Nenue@34 60 if block and block.id == questID then
Nenue@34 61 block:Hide()
Nenue@34 62 end
Nenue@34 63 end
Nenue@34 64 end
Nenue@34 65
Nenue@28 66 QuestPOIUpdateIcons()
Nenue@34 67 return OBJECTIVE_TRACKER_UPDATE_MODULE_QUEST
Nenue@28 68 end
Nenue@28 69 T.AddAutoQuestPopUp = function(...)
Nenue@34 70 return OBJECTIVE_TRACKER_UPDATE_MODULE_AUTO_QUEST_POPUP
Nenue@28 71 end
Nenue@34 72 T.RemoveAutoQuestPopUp = function(questID)
Nenue@34 73 return OBJECTIVE_TRACKER_UPDATE_MODULE_AUTO_QUEST_POPUP
Nenue@34 74
Nenue@28 75 end
Nenue@28 76
Nenue@28 77
Nenue@28 78
Nenue@28 79 T.SetSuperTrackedQuestID = function(questID)
Nenue@28 80 --T:Update()
Nenue@28 81 end