diff QuestPOI.lua @ 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
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