# HG changeset patch # User Nenue # Date 1491410659 14400 # Node ID d6c0bed32c51ae03dc53eeb67a73ce9946f90bca # Parent bb2baedae81f70d299c3a825ce27109ec002a248 fixed bounty highlighting and changed quests matching the selected bounty to have a yellow highlight, while quests matching any ongoing bounty are highlighted blue diff -r bb2baedae81f -r d6c0bed32c51 QuestPOI.lua --- a/QuestPOI.lua Wed Apr 05 12:12:41 2017 -0400 +++ b/QuestPOI.lua Wed Apr 05 12:44:19 2017 -0400 @@ -782,6 +782,8 @@ if tl and (timeLeft < 120) then self.HighlightBorder:SetVertexColor(1,0,0,0.7) elseif self.isBounty then + self.HighlightBorder:SetVertexColor(1,1,0,1) + elseif self.isCriteria then self.HighlightBorder:SetVertexColor(.25,.5,1,1) else self.HighlightBorder:SetVertexColor(0,0,0,0.7) diff -r bb2baedae81f -r d6c0bed32c51 WorldQuests.lua --- a/WorldQuests.lua Wed Apr 05 12:12:41 2017 -0400 +++ b/WorldQuests.lua Wed Apr 05 12:44:19 2017 -0400 @@ -80,11 +80,11 @@ for target, arg in pairs(callbacks) do print(type(target)) if type(target) == 'table' then - local callerName = target:GetName() + local callerName = target:GetName() or tostring(target) for name, method in pairs(arg) do print(callerName, arg) hooksecurefunc(target, name, function(...) - self:OnSecureHook(callerName .. '.' .. arg, method, ...) + self:OnSecureHook(callerName .. '.' .. name, method, ...) end) end else @@ -138,6 +138,7 @@ callbacks[WorldMapFrame.UIElementsFrame.BountyBoard] = { SetSelectedBountyIndex = function(WorldQuests) WorldQuests:UpdateBountyInfo() + WorldQuests:Refresh(true) end } callbacks[WorldMapFrame.UIElementsFrame.ActionButton] = { @@ -149,6 +150,7 @@ local GetQuestBountyInfoForMapID, GetQuestLogTitle, GetQuestLogIndexByID, IsQuestFlaggedCompleted = GetQuestBountyInfoForMapID, GetQuestLogTitle, GetQuestLogIndexByID, IsQuestFlaggedCompleted function Module:UpdateBountyInfo() + print('|cFF00FF88BountyInfo()|r') wipe(db.BountyInfo) db.selectedBounty = nil @@ -159,26 +161,32 @@ if data.factionID then data.title = GetQuestLogTitle(GetQuestLogIndexByID(data.questID)) data.complete = IsQuestFlaggedCompleted(data.questID) - db.BountyInfo[data.factionID] = data - if index == selectedBounty then - db.selectedBounty = data + if not data.complete then + db.BountyInfo[data.factionID] = data + print('bounty', data.factionID, data.title, data.complete) + if index == selectedBounty then + db.selectedBounty = data + end end + end end for questID, pin in pairs(db.QuestsByID) do local doUpdate - if pin.factionID and db.BountyInfo[pin.factionID] then - if not pin.isCriteria then + if pin.factionID then + if db.BountyInfo[pin.factionID] then + print(pin.questID, pin.factionID, db.BountyInfo[pin.factionID], pin.isCriteria) pin.isCriteria = true doUpdate = true - end - else - if pin.isCriteria then + else doUpdate = true pin.isCriteria = nil end + end + + if doUpdate then if pin:IsVisible() then pin:Refresh() @@ -519,13 +527,13 @@ local scaleFactor = SCALE_FACTORS[(pin.dataLoaded and not pin.filtered) and scaleConstant or 1] print(pin.title, pin.dataLoaded and not pin.filtered, scaleFactor) - pin:SetAnchor(nil, pin.x, pin.y, self.hostWidth, self.hostHeight, scaleFactor) - - if pin.isNew then - pin:OnShow() + if pin.used then + pin:SetAnchor(nil, pin.x, pin.y, self.hostWidth, self.hostHeight, scaleFactor) + if pin.isNew then + pin:OnShow() + end end - pin = tremove(db.UpdatedPins) end @@ -654,6 +662,9 @@ end end + + self:UpdateBountyInfo() + print(numShown, 'shown', numLoaded, 'loaded') if numShown > numLoaded then self.Status:Show()