comparison QuestPOI.lua @ 78:fadf00b437fb v1.4.1

- Fixed pins not being removed upon completion - Fixed animation stuttering
author Nenue
date Mon, 10 Apr 2017 13:14:05 -0400
parents 78d78dc77822
children 26d736fbfe67
comparison
equal deleted inserted replaced
77:d55ceee94714 78:fadf00b437fb
257 if self.filtered and (self.questID ~= GetSuperTrackedQuestID()) then 257 if self.filtered and (self.questID ~= GetSuperTrackedQuestID()) then
258 return 258 return
259 end 259 end
260 WorldMap_HijackTooltip(self.owningFrame); 260 WorldMap_HijackTooltip(self.owningFrame);
261 self:SetFrameLevel(pinBaseIndex+100) 261 self:SetFrameLevel(pinBaseIndex+100)
262 self.Overlay:SetFrameLevel(pinBaseIndex+101) 262 self.Overlay:SetFrameLevel(overlayBaseIndex+100)
263 263
264 if previousHighlight then 264 if previousHighlight then
265 previousHighlight:SetFrameLevel(pinBaseIndex+previousHighlight:GetID()) 265 previousHighlight:SetFrameLevel(pinBaseIndex+previousHighlight:GetID())
266 previousHighlight.Overlay:SetFrameLevel(overlayBaseIndex+previousHighlight:GetID()) 266 previousHighlight.Overlay:SetFrameLevel(overlayBaseIndex+previousHighlight:GetID())
267 end 267 end
571 571
572 -- run from OnShow if .isNew is set 572 -- run from OnShow if .isNew is set
573 573
574 function QuestPOI:OnAnimStart() 574 function QuestPOI:OnAnimStart()
575 --qprint('|cFFFFFF00OnAnimStart(|r'..self:GetID()..'|cFFFFFF00)|r', self.fadeEvent) 575 --qprint('|cFFFFFF00OnAnimStart(|r'..self:GetID()..'|cFFFFFF00)|r', self.fadeEvent)
576 self.isAnimating = true 576 self:Refresh('FADE_IN_START')
577 self.isNew = nil 577 self.isNew = nil
578 end 578 end
579 579
580 function QuestPOI:TryToFade(event) 580 function QuestPOI:TryToFade(event)
581 if self.FadeIn:IsPlaying() then 581 if self.FadeIn:IsPlaying() then
585 585
586 self.fadeEvent = event 586 self.fadeEvent = event
587 if self.dataLoaded then 587 if self.dataLoaded then
588 --qprint('|cFFFFFF00TryToFade('..self:GetID()..'|cFFFFFF00)|r', event) 588 --qprint('|cFFFFFF00TryToFade('..self:GetID()..'|cFFFFFF00)|r', event)
589 self:SetAlpha(0) 589 self:SetAlpha(0)
590 self:Refresh(event)
591 self.FadeIn.FadeIn:SetToAlpha(db.PinAlpha) 590 self.FadeIn.FadeIn:SetToAlpha(db.PinAlpha)
592 self.isStale = true
593 self.FadeIn:Play() 591 self.FadeIn:Play()
594 else 592 else
595 593
596 --qprint('|cFFFF4400TryToFade('..self:GetID()..'|cFFFF4400)|r stopping because not loaded') 594 --qprint('|cFFFF4400TryToFade('..self:GetID()..'|cFFFF4400)|r stopping because not loaded')
597 end 595 end
598 end 596 end
599 597
600 function QuestPOI:OnAnimStop() 598 function QuestPOI:OnAnimStop()
601 self.isAnimating = nil
602 self:SetAlpha(db.PinAlpha) 599 self:SetAlpha(db.PinAlpha)
603 end 600 end
604 601
605 function QuestPOI:OnShow () 602 function QuestPOI:OnShow ()
606 603
607 if self.isNew then 604 if self.isNew then
608 self:TryToFade('POI_ONSHOW_NEW') 605 self:TryToFade('POI_ONSHOW_NEW')
609 else 606 elseif not self.FadeIn:IsPlaying() then
610 if not self.isAnimating then 607 print('|cFF00FF00Alpha correction')
611 --print('|cFF00FF00Alpha correction') 608 self:SetAlpha(db.PinAlpha) -- fix stuck alpha
612 self:SetAlpha(db.PinAlpha) -- fix stuck alpha
613 end
614 if self.isStale then 609 if self.isStale then
615 --print('|cFF00FF00refresh on show') 610 --print('|cFF00FF00refresh on show')
616 self:Refresh('POI_ONSHOW_STALE') 611 self:Refresh('POI_ONSHOW_STALE')
617 end 612 end
618 end 613 end
614 self:RegisterEvent('QUEST_LOG_UPDATE')
619 self:ShowFrames() 615 self:ShowFrames()
616 end
617
618 function QuestPOI:OnEvent(event)
619 if not TQ_IsActive(self.questID) then
620
621 self:UnregisterEvent('QUEST_LOG_UPDATE')
622
623 self.hideReason = 'Hiding self because quest is inactive.'
624 self:SetShown(false)
625 end
620 end 626 end
621 627
622 function QuestPOI:OnHide() 628 function QuestPOI:OnHide()
623 --DEFAULT_CHAT_FRAME:AddMessage('|cFFFFFF00'..self:GetName()..'|r:OnHide()') 629 --DEFAULT_CHAT_FRAME:AddMessage('|cFFFFFF00'..self:GetName()..'|r:OnHide()')
624 self:HideFrames() 630 self:HideFrames()
642 648
643 649
644 if owner then 650 if owner then
645 self:SetParent(owner) 651 self:SetParent(owner)
646 self.Overlay:SetParent(owner) 652 self.Overlay:SetParent(owner)
653 self:SetFrameStrata('HIGH')
654 self:SetFrameLevel(pinBaseIndex + self:GetID())
655 self.Overlay:SetFrameStrata('HIGH')
656 self.Overlay:SetFrameLevel(overlayBaseIndex + self:GetID())
647 self.isStale = true 657 self.isStale = true
648 else 658 else
649 owner = self:GetParent() 659 owner = self:GetParent()
650 end 660 end
651 661
764 self:UpdateStatus() 774 self:UpdateStatus()
765 end 775 end
766 776
767 end 777 end
768 778
779 -- Non-hieriarchical display states, checked separately from used/filtered states
769 function QuestPOI:GetCriteriaState() 780 function QuestPOI:GetCriteriaState()
770 local isCriteria, isBounty, isSpellTarget 781 local isCriteria, isBounty, isSpellTarget
771 if self.factionID then 782 if self.factionID then
772 for index, bounty in pairs(db.Bounties) do 783 for index, bounty in pairs(db.Bounties) do
773 if IsQuestCriteriaForBounty(self.questID, bounty.questID) then 784 if IsQuestCriteriaForBounty(self.questID, bounty.questID) then
979 990
980 991
981 function QuestPOI:CheckFilterRules () 992 function QuestPOI:CheckFilterRules ()
982 local print = qprint 993 local print = qprint
983 local qType = self.worldQuestType 994 local qType = self.worldQuestType
984 local filtered 995 if not TQ_IsActive(self.questID) then
985 local canShow = TQ_IsActive(self.questID) 996 self.hideReason = 'Filter check ended because quest is inactive.'
986 997 self.used = nil
998 self:SetShown(false)
999 return
1000 end
987 1001
988 if qType == LE_QUEST_TAG_TYPE_PROFESSION then 1002 if qType == LE_QUEST_TAG_TYPE_PROFESSION then
989 if not(self.isKnownProfession or db.Config.ShowAllProfessionQuests) then 1003 if not(self.isKnownProfession or db.Config.ShowAllProfessionQuests) then
990 canShow = nil 1004 self.hideReason = 'Failed profession check.'
991 end 1005 self.used = nil
992 end 1006 self:SetShown(false)
993 if canShow then 1007 return
994 for filterKey, value in pairs(db.UsedFilters) do 1008 end
995 if self[filterKey] ~= value then 1009 end
996 if not self.filtered then 1010
997 print('|cFFFF4400filtering', filterKey, value, '~=', self[filterKey], self.title) 1011 local filtered
998 end 1012 for filterKey, value in pairs(db.UsedFilters) do
999 1013 if self[filterKey] ~= value then
1000 filtered = true 1014 if not self.filtered then
1001 end 1015 print('|cFFFF4400filtering', filterKey, value, '~=', self[filterKey], self.title)
1002 end 1016 end
1003 if self.rewardType and cvar_check[self.rewardType] then 1017 filtered = true
1004 if not GetCVarBool(cvar_check[self.rewardType]) then 1018 end
1005 filtered = true 1019 end
1006 end 1020 if self.rewardType and cvar_check[self.rewardType] then
1007 end 1021 if not GetCVarBool(cvar_check[self.rewardType]) then
1008 if canShow and self.filtered ~= filtered then 1022 filtered = true
1009 self.isStale = true 1023 end
1010 print(' '..self.questID..':|cFFFFFF00CheckFilterRules()|r ', canShow, filtered, self.title) 1024 end
1011 end 1025
1012 self.filtered = filtered 1026 print(' '..self.questID..':|cFFFFFF00CheckFilterRules()|r', filtered, self.title)
1013 end 1027 if self.filtered ~= filtered then
1014 self.used = canShow 1028 self.isStale = true
1015 if not canShow then 1029 end
1016 self.hideReason = "Failed filter check." 1030
1017 end 1031 self.used = true
1018 self:SetShown(canShow) 1032 self:SetShown(true)
1019 end 1033 end
1020 1034
1021 --- Fixes icons upon size update 1035 --- Fixes icons upon size update
1022 function QuestPOI:UpdateSize () 1036 function QuestPOI:UpdateSize ()
1023 1037