Mercurial > wow > buffalo2
comparison 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 |
comparison
equal
deleted
inserted
replaced
33:64f2a9bbea79 | 34:9856ebc63fa4 |
---|---|
5 -- Created: 3/30/2016 1:23 AM | 5 -- Created: 3/30/2016 1:23 AM |
6 local B = select(2,...).frame | 6 local B = select(2,...).frame |
7 local T = B:RegisterModule("ObjectiveTracker", _G.VeneerObjectiveWrapper, 'BuffFrame') | 7 local T = B:RegisterModule("ObjectiveTracker", _G.VeneerObjectiveWrapper, 'BuffFrame') |
8 local print = B.print('Objectives') | 8 local print = B.print('Objectives') |
9 | 9 |
10 local _G = _G | |
11 local OBJECTIVE_TRACKER_UPDATE_MODULE_ACHIEVEMENT = OBJECTIVE_TRACKER_UPDATE_MODULE_ACHIEVEMENT | |
12 local OBJECTIVE_TRACKER_UPDATE_MODULE_QUEST_ADDED = OBJECTIVE_TRACKER_UPDATE_MODULE_QUEST_ADDED | |
13 local OBJECTIVE_TRACKER_UPDATE_MODULE_QUEST = OBJECTIVE_TRACKER_UPDATE_MODULE_QUEST | |
14 local OBJECTIVE_TRACKER_UPDATE_MODULE_AUTO_QUEST_POPUP = OBJECTIVE_TRACKER_UPDATE_MODULE_AUTO_QUEST_POPUP | |
15 local GetQuestID, GetQuestLogIndexByID, AddQuestWatch, SetSuperTrackedQuestID = GetQuestID, GetQuestLogIndexByID, AddQuestWatch, SetSuperTrackedQuestID | |
16 local QuestPOIUpdateIcons = QuestPOIUpdateIcons | |
10 ------------------------------------------------------------------- | 17 ------------------------------------------------------------------- |
11 --- SecureHooked blizzard functions | 18 --- Deal with blizzard API calls that affect the tracker/log contents |
19 --- mainly just hiding blocks until they can be picked up by the next update event | |
12 ------------------------------------------------------------------- | 20 ------------------------------------------------------------------- |
13 T.AddQuestWatch = function(questID) | 21 T.AddQuestWatch = function(questID) |
14 T:Update(0x00000003) | 22 if not B.Conf.VeneerObjectiveWrapper.enabled then return end |
23 return OBJECTIVE_TRACKER_UPDATE_MODULE_QUEST | |
15 end | 24 end |
16 | 25 |
17 local Quest = T.Quest | 26 local Quest = T.Quest |
18 T.RemoveQuestWatch = function(questIndex, ...) | 27 T.RemoveQuestWatch = function(questIndex, ...) |
19 print('|cFFFF8800RemoveQuestWatch', questIndex, ...) | 28 print('|cFFFF8800RemoveQuestWatch', questIndex, ...) |
20 | 29 local block = T.Quest.LogBlock[questIndex] |
21 local info = T.Quest.LogInfo[questIndex] | 30 if block then |
22 | 31 block:Hide() |
23 -- remove quest refs | |
24 local block = Quest.QuestBlock[info.questID] | |
25 Quest.QuestBlock[info.questID] = nil | |
26 Quest.LogBlock[questIndex] = nil | |
27 | |
28 -- remove if they still match | |
29 if Quest.WatchInfo[info.watchIndex] == info then | |
30 print('cleaning dead WatchInfo entry') | |
31 Quest.WatchInfo[info.watchIndex] = nil | |
32 end | 32 end |
33 if Quest.itemButtons[info.questID] then | 33 return OBJECTIVE_TRACKER_UPDATE_MODULE_QUEST |
34 -- hide for now, it will get cleaned up shortly | |
35 Quest.itemButtons[info.questID]:Hide() | |
36 end | |
37 | |
38 T:Update(OBJECTIVE_TRACKER_UPDATE_MODULE_QUEST) | |
39 end | 34 end |
40 | 35 |
41 T.AddTrackedAchievement = function(cheevID) | 36 T.AddTrackedAchievement = function(cheevID) |
42 T.CleanWidgets() | 37 T.CleanWidgets() |
43 T:Update(OBJECTIVE_TRACKER_UPDATE_MODULE_ACHIEVEMENT) | 38 return OBJECTIVE_TRACKER_UPDATE_MODULE_ACHIEVEMENT |
44 end | 39 end |
45 | 40 |
46 | 41 |
47 T.RemoveTrackedAchievement = function(cheevID) | 42 T.RemoveTrackedAchievement = function(cheevID) |
48 print('|cFFFF8800UntrackAchievement', cheevID) | |
49 T.CleanWidgets() | 43 T.CleanWidgets() |
50 T:Update(OBJECTIVE_TRACKER_UPDATE_MODULE_ACHIEVEMENT) | 44 return OBJECTIVE_TRACKER_UPDATE_MODULE_ACHIEVEMENT |
51 end | 45 end |
52 | 46 |
53 T.AcceptQuest = function() | 47 T.AcceptQuest = function() |
54 T:Update(OBJECTIVE_TRACKER_UPDATE_MODULE_QUEST_ADDED) | |
55 end | 48 end |
56 | 49 |
57 T.AbandonQuest = function() | 50 T.AbandonQuest = function() |
58 QuestPOIUpdateIcons() | 51 QuestPOIUpdateIcons() |
59 T:Update(OBJECTIVE_TRACKER_UPDATE_MODULE_QUEST) | 52 return OBJECTIVE_TRACKER_UPDATE_MODULE_QUEST |
60 end | 53 end |
61 T.TurnInQuest = function() | 54 T.CompleteQuest = function() |
55 local questID = GetQuestID() | |
56 if T.Quest.Info[questID] then | |
57 local q = T.Quest.Info[questID] | |
58 if q.logIndex then | |
59 local block = T.Quest.LogBlock[q.logIndex] | |
60 if block and block.id == questID then | |
61 block:Hide() | |
62 end | |
63 end | |
64 end | |
65 | |
62 QuestPOIUpdateIcons() | 66 QuestPOIUpdateIcons() |
63 T:Update(OBJECTIVE_TRACKER_UPDATE_MODULE_QUEST) | 67 return OBJECTIVE_TRACKER_UPDATE_MODULE_QUEST |
64 end | 68 end |
65 T.AddAutoQuestPopUp = function(...) | 69 T.AddAutoQuestPopUp = function(...) |
66 T:Update(OBJECTIVE_TRACKER_UPDATE_MODULE_AUTO_QUEST_POPUP) | 70 return OBJECTIVE_TRACKER_UPDATE_MODULE_AUTO_QUEST_POPUP |
67 end | 71 end |
68 T.RemoveAutoQuestPopUp = function(...) | 72 T.RemoveAutoQuestPopUp = function(questID) |
69 T:Update(OBJECTIVE_TRACKER_UPDATE_MODULE_AUTO_QUEST_POPUP) | 73 return OBJECTIVE_TRACKER_UPDATE_MODULE_AUTO_QUEST_POPUP |
74 | |
70 end | 75 end |
71 | 76 |
72 | 77 |
73 | 78 |
74 T.SetSuperTrackedQuestID = function(questID) | 79 T.SetSuperTrackedQuestID = function(questID) |