changeset 64:876c3f0bfd0e

- script upvalues cleanup - add quest active status to pin metadata
author Nick@Zahhak
date Thu, 23 Mar 2017 05:26:51 -0400
parents 8e130c92698f
children 02f1d3bce558
files QuestPOI.lua WorldPlan.lua WorldQuests.lua
diffstat 3 files changed, 36 insertions(+), 24 deletions(-) [+]
line wrap: on
line diff
--- a/QuestPOI.lua	Tue Mar 21 16:36:12 2017 -0400
+++ b/QuestPOI.lua	Thu Mar 23 05:26:51 2017 -0400
@@ -4,8 +4,7 @@
 -- %file-revision%
 --
 local _, db = ...
-
-local TQ_GetQuestInfoByQuestID = C_TaskQuest.GetQuestInfoByQuestID -- Return the name of a quest with a given ID
+local TQ_GetQuestInfoByQuestID = C_TaskQuest.GetQuestInfoByQuestID
 local TQ_GetQuestLocation = C_TaskQuest.GetQuestLocation
 local TQ_GetQuestTimeLeftMinutes = C_TaskQuest.GetQuestTimeLeftMinutes
 local TQ_IsActive = C_TaskQuest.IsActive
@@ -14,6 +13,15 @@
 local WorldMap_DoesWorldQuestInfoPassFilters = WorldMap_DoesWorldQuestInfoPassFilters
 local QuestMapFrame_IsQuestWorldQuest = QuestMapFrame_IsQuestWorldQuest
 local GetAchievementNumCriteria, GetAchievementCriteriaInfo, GetAchievementInfo = GetAchievementNumCriteria, GetAchievementCriteriaInfo, GetAchievementInfo
+
+local IsQuestFlaggedCompleted = IsQuestFlaggedCompleted
+local GetFactionInfoByID, GetQuestObjectiveInfo = GetFactionInfoByID, GetQuestObjectiveInfo
+local GetQuestTagInfo, GetProfessionInfo = GetQuestTagInfo, GetProfessionInfo
+local GetNumQuestLogRewards, GetNumQuestLogRewardCurrencies, HaveQuestData = GetNumQuestLogRewards, GetNumQuestLogRewardCurrencies, HaveQuestData
+local GetQuestLogRewardMoney, GetQuestLogRewardCurrencyInfo, GetMoneyString = GetQuestLogRewardMoney, GetQuestLogRewardCurrencyInfo, GetMoneyString
+local SpellCanTargetQuest, GetCVarBool = SpellCanTargetQuest, GetCVarBool
+local SetSuperTrackedQuestID = SetSuperTrackedQuestID
+
 local pairs, ipairs, tinsert, unpack, select = pairs, ipairs, tinsert, unpack, select
 local floor, mod, tostring, tonumber, GetSuperTrackedQuestID = floor, mod, tostring, tonumber, GetSuperTrackedQuestID
 local GameTooltip = GameTooltip
@@ -188,7 +196,6 @@
 
 end
 
-local GetFactionInfoByID, GetQuestObjectiveInfo = GetFactionInfoByID, GetQuestObjectiveInfo
 
 function QuestPOI:OnEnter()
   if self.filtered and (self.questID ~= GetSuperTrackedQuestID()) then
@@ -274,7 +281,6 @@
 end
 
 -- attempt to pull pin data
-local GetQuestTagInfo, GetProfessionInfo = GetQuestTagInfo, GetProfessionInfo
 function QuestPOI:GetData ()
   dprint('|cFF00FF88'..self:GetID()..':GetData()|r')
   local questID = self.questID
@@ -341,8 +347,6 @@
   return self.isStale, self.isPending
 end
 
-local GetNumQuestLogRewards, GetNumQuestLogRewardCurrencies, HaveQuestData = GetNumQuestLogRewards, GetNumQuestLogRewardCurrencies, HaveQuestData
-local GetQuestLogRewardMoney, GetQuestLogRewardCurrencyInfo, GetMoneyString = GetQuestLogRewardMoney, GetQuestLogRewardCurrencyInfo, GetMoneyString
 function QuestPOI:SetRewardInfo()
   local questID = self.questID
   if not HaveQuestData(questID) then
@@ -468,16 +472,13 @@
   self:ShowFrames()
 end
 
-
+-- Show/Hide the text overlays associated with the quest pin; they aren't hierarchically linked
 function QuestPOI:ShowFrames()
   if not self:IsShown() then
-    --self:SetShown(true)
     print('|cFFFFFF00' ..self:GetName()..':ShowFrames()')
-    qprint('|cFFFFFF00'..tostring(self:GetName())..':OnShow()|r update:', self.isStale, 'new:', self.isNew, 'animation:', self.isAnimating)
-  else
+    -- do not SetShown() here
+  end
 
-    --print(self:GetName()..':ShowFrames()')
-  end
   self.count:SetShown(true)
   self.Overlay:SetShown(true)
   self.count:SetShown(true)
@@ -511,6 +512,7 @@
   self.Overlay:SetPoint('TOPLEFT', self, 'TOPLEFT', 0, 4)
   self.Overlay:SetPoint('BOTTOMRIGHT', self, 'BOTTOMRIGHT', 0, -4)
 end
+
 function QuestPOI:OnMouseDown(button)
   if button == 'RightButton' then
     SetSuperTrackedQuestID(nil)
@@ -565,7 +567,9 @@
 -- Called at static intervals and with Refresh
 function QuestPOI:UpdateStatus()
   -- update time elements
-  if TQ_IsActive(self.questID) then
+  self.isActive = TQ_IsActive(self.questID)
+
+  if self.isActive then
     local tl = self.alertLevel
     local timeLeft = TQ_GetQuestTimeLeftMinutes(self.questID)
     if timeLeft > 0 then
@@ -593,7 +597,6 @@
   else
     if not self.completed then
       self.completed = true
-      WorldPlan:print('|cFFFFFF00'..tostring(self.title).. '|r is no longer active.')
       self:HideFrames()
     end
   end
@@ -703,6 +706,8 @@
   [REWARD_GEAR] = 'worldQuestFilterEquipment',
 }
 
+
+
 function QuestPOI:CheckFilterRules ()
   local print = qprint
   local qType = self.worldQuestType
--- a/WorldPlan.lua	Tue Mar 21 16:36:12 2017 -0400
+++ b/WorldPlan.lua	Thu Mar 23 05:26:51 2017 -0400
@@ -3,7 +3,7 @@
 -- %file-revision%
 local addonFileName, db = ...
 local print = DEVIAN_WORKSPACE and function(...) _G.print('WP', ...) end or function() end
-local WP_VERSION = "1.0"
+local WP_VERSION = "1.2"
 local tinsert, pairs, floor = tinsert, pairs, floor
 local tremove, ipairs, wipe, unpack = tremove, ipairs, wipe, unpack
 local select, type, tostring, tonumber = select, type, tostring, tonumber
@@ -568,6 +568,7 @@
   self.callbacks[func] = func
 end
 function WorldPlanCore:FireCallbacks()
+  self.callbacks = self.callbacks or {}
   for func in pairs(self.callbacks) do
     func()
   end
--- a/WorldQuests.lua	Tue Mar 21 16:36:12 2017 -0400
+++ b/WorldQuests.lua	Thu Mar 23 05:26:51 2017 -0400
@@ -5,16 +5,24 @@
 local _, db = ...
 local Module = WorldPlanQuestsMixin
 
+local _G = _G
 local MC_GetNumZones, MC_GetZoneInfo = C_MapCanvas.GetNumZones, C_MapCanvas.GetZoneInfo
 local TQ_GetQuestsForPlayerByMapID = C_TaskQuest.GetQuestsForPlayerByMapID -- This function is not yet documented
 local TQ_GetQuestZoneID = C_TaskQuest.GetQuestZoneID
-local GetMapInfo = GetMapInfo
+local TQ_IsActive = C_TaskQuest.IsActive
+local pairs, ipairs, tinsert, tremove, wipe = pairs, ipairs, tinsert, tremove, table.wipe
+local GetTaskInfo, GetTasksTable, HaveQuestData = GetTaskInfo, GetTasksTable, HaveQuestData
+local GetTime = GetTime
+local SpellCanTargetQuest = SpellCanTargetQuest
+local tonumber, abs = tonumber, math.abs
+local GetQuestLogRewardInfo = GetQuestLogRewardInfo
+local GetCurrentMapAreaID, GetMapInfo, GetMapNameByID = GetCurrentMapAreaID, GetMapInfo, GetMapNameByID
+
 local print = DEVIAN_WORKSPACE and function(...) _G.print('WorldQuests', ...) end or function() end
 local rprint = DEVIAN_WORKSPACE and function(...) _G.print('WQRefresh', ...) end or function() end
 local qprint = DEVIAN_WORKSPACE and function(...) _G.print('POI', ...) end or function() end
 local wprint = DEVIAN_WORKSPACE and function(...) _G.print('WP', ...) end or function() end
 local mprint = DEVIAN_WORKSPACE and function(...) _G.print('Canvas', ...) end or function() end
-local pairs = pairs
 
 local PinBaseIndex = 1200
 local BROKEN_ISLES_ID, DALARAN_ID, AZSUNA_ID, VALSHARAH_ID, HIGHMOUNTAIN_ID, STORMHEIM_ID, SURAMAR_ID, EOA_ID = 1007, 1014, 1015,1018, 1024, 1017, 1033, 1096
@@ -89,7 +97,6 @@
   end
 end
 
-local SpellCanTargetQuest = SpellCanTargetQuest
 function Module:UpdateBlizzButtons()
 
   local func = SpellCanTargetQuest() and InternalShowButton or InternalHideButton
@@ -250,6 +257,8 @@
     WorldPlan.dataFlush = true
   end
 
+  pin.isActive = TQ_IsActive(questID)
+
   pin:CheckFilterRules()
   pin.isStale = true
   rprint(pin:GetID(), pin.filtered, pin.used)
@@ -270,6 +279,8 @@
     end
     db.TasksByID[id] = nil
   end
+  pin.isActive = nil
+  pin.dataLoaded = nil
   pin:HideFrames()
   tinsert(db.FreePins, pin)
 
@@ -277,6 +288,7 @@
   print('|cFF00FF00-'.. (pin.mapID and GetMapNameByID(pin.mapID) or '???') ..'|r', id, pin.title)
 end
 
+
 function Module:GetBonusObjectives()
 
 
@@ -321,8 +333,6 @@
 end
 
 
-
-
 -- use tooltip object to extract item details
 function Module:GetRewardHeader(questID)
   local name, icon, quantity, quality, _, itemID = GetQuestLogRewardInfo(1, questID)
@@ -379,9 +389,6 @@
   end
   return 128, icon, quantity, name, itemID, quality
 end
-
-local GetCurrentMapAreaID, GetMapNameByID= GetCurrentMapAreaID, GetMapNameByID
-local wipe, pairs = wipe, pairs
 -- create of update quest pins for a map and its underlying zones
 function Module:UpdateWorldQuests (mapID)
 
@@ -498,7 +505,6 @@
   end
 end
 
-local abs = math.abs
 function Module:UpdateQuestButton(info, mapID)
   local questID, x, y = info.questId, info.x, info.y
   local pin = self:AcquirePin(info)