# HG changeset patch # User Nenue # Date 1496015726 14400 # Node ID 9f664a0ef8a828b5ff2b7d490c1842bedda1bc2d # Parent a3800989f5154edc58aba22059039f2343b73516# Parent 4d1520186ea45f3d3ad9060873d34acb07f96930 Merge diff -r 4d1520186ea4 -r 9f664a0ef8a8 QuestPOI.lua --- 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) diff -r 4d1520186ea4 -r 9f664a0ef8a8 WorldQuests.lua --- 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