changeset 105:9f664a0ef8a8

Merge
author Nenue
date Sun, 28 May 2017 19:55:26 -0400
parents a3800989f515 (diff) 4d1520186ea4 (current diff)
children 1197c8825eda
files ClassPlan.lua QuestPOI.lua WorldQuests.lua
diffstat 2 files changed, 17 insertions(+), 31 deletions(-) [+]
line wrap: on
line diff
--- a/QuestPOI.lua	Thu May 25 17:24:00 2017 -0400
+++ b/QuestPOI.lua	Sun May 28 19:55:26 2017 -0400
@@ -324,7 +324,7 @@
 
 function QuestPOI:OnEvent(event, questID)
   if (self.questID == questID) and IsQuestComplete(self.questID) then
-    db.log(self.questID .. " Marked completed.")
+    db.log(event .. ' for ' .. self:GetName().. ' triggered.')
     self:Release()
   end
 end
@@ -335,9 +335,9 @@
   -- reset flags
   self:SetAlpha(db.PinAlpha)
   self.isAnimating = nil
-  if db.Config.DebugEnabled then
-    db.log(tostring(self.questID) .. ' ' .. tostring(self.title) .. "\n" .. tostring(REWARD_TYPE_NAMES[self.rewardType]) .. ' ' .. tostring(self.itemName) .. ' ' .. tostring(self.itemNumber) .. "\n|cFFFF4400" .. (self.hideReason or 'NO_MESSAGE') .. "|r\n|cFF00FFFF" ..  debugstack(2,3,0) .. '|r')
-  end
+  --if db.Config.DebugEnabled then
+  --  db.log(tostring(self.questID) .. ' ' .. tostring(self.title) .. "\n" .. tostring(REWARD_TYPE_NAMES[self.rewardType]) .. ' ' .. tostring(self.itemName) .. ' ' .. tostring(self.itemNumber) .. "\n|cFFFF4400" .. (self.hideReason or 'NO_MESSAGE') .. "|r\n|cFF00FFFF" ..  debugstack(2,3,0) .. '|r')
+  --end
   self.hideReason = nil
 end
 
@@ -739,23 +739,6 @@
         return false
       end
     end
-
-
-
-    --[[ set reward category
-    local numRewards = GetNumQuestLogRewards(questID)
-    local numCurrency = GetNumQuestLogRewardCurrencies(questID)
-    local money = GetQuestLogRewardMoney(questID)
-    if numRewards >= 1 then
-      rewardType, rewardIcon, rewardCount, rewardName, itemID, quality = WorldPlanQuests:GetRewardHeader(questID)
-    elseif numCurrency >= 1 then
-      rewardName, rewardIcon, rewardCount = GetQuestLogRewardCurrencyInfo(1, questID)
-      rewardType = REWARD_CURRENCY
-    elseif money >= 1 then
-      rewardName = GetMoneyString(money)
-    end
-    --]]
-
   end
 end
 
@@ -800,7 +783,6 @@
     return
   end
 
-
   if owner then
     self:SetParent(owner)
     self.Overlay:SetParent(owner)
@@ -844,7 +826,7 @@
   self.checkCriteria = nil
   local isCriteria, isBounty, isSpellTarget
 
-  print('  ' ..self:GetID() .. ':|cFFFFFF00OnCriteria()' )
+  print('|cFFFFFF00OnCriteria(' ..self:GetID() .. ')' )
 
   for index, bounty in pairs(db.Bounties) do
     if (not IsQuestComplete(bounty.questID)) and IsQuestCriteriaForBounty(self.questID, bounty.questID) then
@@ -1149,8 +1131,9 @@
 end
 
 function QuestPOI:Release(msg)
-  print('|cFFFF4400'..self:GetID()..':Release()', self.hideReason)
+  print('|cFFFF4400Release('..self:GetID()..')', self.hideReason)
   self.hideReason = msg or 'Released by script.'
+  self:ClearAllPoints()
   self:SetShown(false)
   self:HideOrShowFrames(false)
 
--- a/WorldQuests.lua	Thu May 25 17:24:00 2017 -0400
+++ b/WorldQuests.lua	Sun May 28 19:55:26 2017 -0400
@@ -45,6 +45,7 @@
 local BountyBoard = WorldMapFrame.UIElementsFrame.BountyBoard
 local ActionButton = WorldMapFrame.UIElementsFrame.ActionButton
 local defaults = {}
+local completedQuests = {}
 
 local continentScanned
 local layoutDirty = true
@@ -135,6 +136,7 @@
   elseif event == 'WORLD_QUEST_COMPLETED_BY_SPELL' then
     local questID = ...
     if questID and db.QuestsByID[questID] then
+      completedQuests[questID] = true
       db.QuestsByID[questID]:Release()
     end
     self:Refresh(event)
@@ -582,12 +584,16 @@
   if not (questID and QuestUtils_IsQuestWorldQuest(questID)) then
     return nil
   end
-  if IsQuestComplete(questID) then
+  local pin = db.QuestsByID[questID]
+  -- check to avoid creating unnecessary frames
+  if IsQuestComplete(questID) or completedQuests[questID] then
+    completedQuests[questID] = true
+    if pin then
+      pin:Release()
+    end
     return nil
   end
 
-
-  local pin = db.QuestsByID[questID]
   if not pin then
     local numFree = #db.FreePins
     if numFree >= 1 then
@@ -611,10 +617,7 @@
     tinsert(db.UsedPins, pin)
   end
 
-  if IsQuestComplete(questID) then
-    pin:Release()
-    return nil
-  elseif info then
+  if info then
     pin.inProgress = info.inProgress
     pin.floor = info.floor
     pin.numObjectives = info.numObjectives or 0