diff WorldQuests.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/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)