diff ObjectiveInfo.lua @ 1:b0447b382f36

sorting client events from maintenance logic implemented all that action buttons entail for quest items
author Nenue
date Wed, 30 Mar 2016 16:30:49 -0400
parents 3dbcad2b387d
children a2396b03ce63
line wrap: on
line diff
--- a/ObjectiveInfo.lua	Wed Mar 30 02:24:56 2016 -0400
+++ b/ObjectiveInfo.lua	Wed Mar 30 16:30:49 2016 -0400
@@ -9,13 +9,15 @@
 --------------------------------------------------------------------
 --- Tracker-specific data retrieval functions
 --------------------------------------------------------------------
-
+Quest.itemButtons = {}
+Quest.freeButtons = {}
+Quest.POI = {}
 Quest.GetNumWatched = function()
   return GetNumQuestWatches ()
 end
 Quest.GetInfo = function (self, watchIndex)
   print('|cFF00DDFFQuest|r.|cFF0088FFGetInfo(|r'.. tostring(watchIndex)..'|r)')
-  local questID, title, questLogIndex, numObjectives, requiredMoney, isComplete,
+  local questID, title, questIndex, numObjectives, requiredMoney, isComplete,
   startEvent, isAutoComplete, failureTime, timeElapsed, questType, isTask, isStory, isOnMap, hasLocalPOI = GetQuestWatchInfo(watchIndex)
 print(GetQuestWatchInfo(watchIndex))
   if not questID then
@@ -29,7 +31,7 @@
   q.type = 'Quest'
   q.questID = questID
   q.title = title
-  q.questLogIndex = questLogIndex
+  q.questLogIndex = questIndex
   q.numObjectives = numObjectives
   q.requiredMoney = requiredMoney
   q.isComplete = isComplete
@@ -45,7 +47,7 @@
 
   --- Start QuestLogEntry calls
   -----------------------------------------
-  SelectQuestLogEntry(questLogIndex)
+  SelectQuestLogEntry(questIndex)
   q.greenRange = GetQuestGreenRange()
   q.isDaily = QuestIsDaily()
   q.isWeekly = QuestIsWeekly()
@@ -57,13 +59,14 @@
   q.isComplete = IsQuestComplete(questID)
   q.isBreadCrumb = IsBreadcrumbQuest(questID)
   q.isStoryQuest = IsStoryQuest(questID)
-  q.completionText= GetQuestLogCompletionText(questLogIndex)
+  q.completionText= GetQuestLogCompletionText(questIndex)
   q.trackingID = questID
   q.superTracked =  (questID == GetSuperTrackedQuestID()) -- call directly so artifact data doesn't become an issue
-  q.numObjectives = GetNumQuestLeaderBoards(questLogIndex)
+  q.numObjectives = GetNumQuestLeaderBoards(questIndex)
+  q.isWatched = IsQuestWatched(questIndex)
   q.objectives = {}
   for i = 1, q.numObjectives do
-    local text, type, finished = GetQuestLogLeaderBoard(i, questLogIndex)
+    local text, type, finished = GetQuestLogLeaderBoard(i, questIndex)
     q.objectives[i] = {
       type = type,
       text = text,
@@ -77,10 +80,12 @@
     end
   end
 
-  local link, icon, charges = GetQuestLogSpecialItemInfo(questLogIndex)
-  local start, duration, enable = GetQuestLogSpecialItemCooldown(questLogIndex)
+  local link, icon, charges = GetQuestLogSpecialItemInfo(questIndex)
+  local start, duration, enable = GetQuestLogSpecialItemCooldown(questIndex)
   if link or icon or charges then
     q.specialItem = {
+      questID = questID,
+      questIndex = questIndex,
       link = link,
       charges = charges,
       icon = icon,
@@ -90,11 +95,35 @@
     }
   end
 
-  self.LogInfo[questLogIndex] = q
-  print('|cFF0088FFGetQuestInfo('..questID..')|r', questLogIndex, title)
+
+  if QuestHasPOIInfo(questID) then
+    local distance, onContinent = GetDistanceSqToQuest(questIndex)
+      if distance ~= nil and distance > 0 then
+      self.POI[questIndex] = {
+        questIndex = questIndex,
+        questID = questID,
+        distance = distance,
+        onContinent = onContinent
+      }
+    end
+  end
+
+  self.LogInfo[questIndex] = q
+  print('|cFF0088FFGetQuestInfo('..questID..')|r', questIndex, title)
   return q
 end
 
+Quest.GetClosest = function()
+  local minID
+  local minDist = math.huge
+  for i =  1, Quest.GetNumWatched() do
+      local info = Quest.GetInfo(i)
+      if info.hasLocalPOI then
+        local distance, onContinent = GetDistanceSqToQuest(info.questIndex)
+      end
+  end
+end
+
 Cheevs.GetNumWatched = function(self)
   Cheevs.trackedCheevs = {GetTrackedAchievements()}
   return GetNumTrackedAchievements()