Mercurial > wow > worldplan
comparison WorldQuests.lua @ 67:96183f981acb
Update for Legion Patch 7.2
- Pins for quests detected from the flight map should properly update as needed.
- Fixed dropdown menu configurations not getting applied.
- Added a toggle button to the world map display that performs the same function as the 'Enable' option in the dropdown menu.
- Rewrote the majority of display update handlers for a significant performance improvements while interacting with the world map.
- AP token info should now reflect artifact knowledge changes.
| author | Nenue |
|---|---|
| date | Sat, 01 Apr 2017 08:17:30 -0400 |
| parents | e43e10c5576b |
| children | 31de7e9e7849 |
comparison
equal
deleted
inserted
replaced
| 66:e43e10c5576b | 67:96183f981acb |
|---|---|
| 16 local SpellCanTargetQuest = SpellCanTargetQuest | 16 local SpellCanTargetQuest = SpellCanTargetQuest |
| 17 local tonumber, abs = tonumber, math.abs | 17 local tonumber, abs = tonumber, math.abs |
| 18 local GetQuestLogRewardInfo = GetQuestLogRewardInfo | 18 local GetQuestLogRewardInfo = GetQuestLogRewardInfo |
| 19 local GetCurrentMapAreaID, GetMapInfo, GetMapNameByID = GetCurrentMapAreaID, GetMapInfo, GetMapNameByID | 19 local GetCurrentMapAreaID, GetMapInfo, GetMapNameByID = GetCurrentMapAreaID, GetMapInfo, GetMapNameByID |
| 20 | 20 |
| 21 | |
| 21 local print = DEVIAN_WORKSPACE and function(...) _G.print('WorldQuests', ...) end or function() end | 22 local print = DEVIAN_WORKSPACE and function(...) _G.print('WorldQuests', ...) end or function() end |
| 22 local rprint = DEVIAN_WORKSPACE and function(...) _G.print('WQRefresh', ...) end or function() end | 23 local rprint = DEVIAN_WORKSPACE and function(...) _G.print('WQRefresh', ...) end or function() end |
| 23 local qprint = DEVIAN_WORKSPACE and function(...) _G.print('POI', ...) end or function() end | 24 local qprint = DEVIAN_WORKSPACE and function(...) _G.print('POI', ...) end or function() end |
| 24 local wprint = DEVIAN_WORKSPACE and function(...) _G.print('WP', ...) end or function() end | 25 local wprint = DEVIAN_WORKSPACE and function(...) _G.print('WP', ...) end or function() end |
| 25 local mprint = DEVIAN_WORKSPACE and function(...) _G.print('Canvas', ...) end or function() end | 26 local mprint = DEVIAN_WORKSPACE and function(...) _G.print('Canvas', ...) end or function() end |
| 36 local REWARD_REAGENT = WORLD_QUEST_REWARD_TYPE_FLAG_MATERIALS | 37 local REWARD_REAGENT = WORLD_QUEST_REWARD_TYPE_FLAG_MATERIALS |
| 37 local SCALE_FACTORS = { | 38 local SCALE_FACTORS = { |
| 38 0.25, 0.7, 1 | 39 0.25, 0.7, 1 |
| 39 } | 40 } |
| 40 | 41 |
| 42 local ToggleButton = {} | |
| 41 local numShown = 0 | 43 local numShown = 0 |
| 42 local numLoaded = 0 | 44 local numLoaded = 0 |
| 43 local isDataLoaded | 45 local isDataLoaded |
| 44 local numPins = 0 | 46 local numPins = 0 |
| 45 local NumPinFrames = 1 | 47 local NumPinFrames = 1 |
| 54 end | 56 end |
| 55 end) | 57 end) |
| 56 end | 58 end |
| 57 | 59 |
| 58 function Module:OnUpdate(sinceLast) | 60 function Module:OnUpdate(sinceLast) |
| 59 if self.filtersDirty or self.isStale or self.isZoomDirty then | 61 |
| 62 if self.filtersDirty or self.isStale then | |
| 60 self:Refresh() | 63 self:Refresh() |
| 61 end | 64 end |
| 62 end | 65 if #db.UpdatedPins >= 1 then |
| 63 | 66 print('|cFF00FF88pending updates', #db.UpdatedPins) |
| 64 local InternalDoRefresh = function (self) | 67 self:UpdateQueuedPins() |
| 65 WorldPlanQuests:Refresh() | 68 end |
| 69 | |
| 70 end | |
| 71 | |
| 72 local currentScale = WorldMapDetailFrame:GetScale() | |
| 73 function Module:RefreshIfChanged() | |
| 74 local scaleCheck = WorldMapDetailFrame:GetScale() | |
| 75 if scaleCheck ~= currentScale then | |
| 76 print('|cFF00FF88scale changed from', currentScale, 'to', scaleCheck) | |
| 77 self:Refresh() | |
| 78 currentScale = scaleCheck | |
| 79 end | |
| 66 end | 80 end |
| 67 | 81 |
| 68 function Module:Setup() | 82 function Module:Setup() |
| 69 print('|cFFFF4400'..self:GetName()..':Setup()') | 83 print('|cFFFF4400'..self:GetName()..':Setup()') |
| 70 | 84 |
| 71 for mapID, mapName in pairs(WORLD_QUEST_MAPS) do | 85 for mapID, mapName in pairs(WORLD_QUEST_MAPS) do |
| 72 db.QuestsByZone[mapID] = {} | 86 db.QuestsByZone[mapID] = {} |
| 73 end | 87 end |
| 74 | 88 |
| 75 hooksecurefunc("ClickWorldMapActionButton", function () self:OnClickWorldMapActionButton() end) | 89 hooksecurefunc("ClickWorldMapActionButton", function () self:OnClickWorldMapActionButton() end) |
| 76 hooksecurefunc("WorldMapScrollFrame_ReanchorQuestPOIs", InternalDoRefresh) | 90 hooksecurefunc("WorldMapScrollFrame_ReanchorQuestPOIs", function() |
| 77 hooksecurefunc("WorldMap_UpdateQuestBonusObjectives", function () self:OnUpdateQuestBonusObjectives() end) | 91 print("WorldMapScrollFrame_ReanchorQuestPOIs") |
| 78 hooksecurefunc("WorldMapFrame_UpdateMap", InternalDoRefresh) | 92 self:RefreshIfChanged() |
| 79 WorldMapFrame.UIElementsFrame.BountyBoard:SetSelectedBountyChangedCallback(InternalDoRefresh); | 93 end) |
| 80 WorldMapFrame.UIElementsFrame.ActionButton:SetOnCastChangedCallback(InternalDoRefresh); | 94 hooksecurefunc("WorldMap_UpdateQuestBonusObjectives", function () |
| 95 self:OnUpdateQuestBonusObjectives() | |
| 96 end) | |
| 97 hooksecurefunc("WorldMapFrame_UpdateMap", function() | |
| 98 print("WorldMapFrame_UpdateMap") | |
| 99 self:RefreshIfChanged() | |
| 100 end) | |
| 101 WorldMapFrame.UIElementsFrame.BountyBoard:SetSelectedBountyChangedCallback(function() | |
| 102 self:OnSelectedBountyChanged() | |
| 103 end); | |
| 104 WorldMapFrame.UIElementsFrame.ActionButton:SetOnCastChangedCallback(function() | |
| 105 print("CastChangedCallback") | |
| 106 self:Refresh(true) | |
| 107 end); | |
| 81 | 108 |
| 82 self.Status = CreateFrame('Frame', nil, self) | 109 self.Status = CreateFrame('Frame', nil, self) |
| 83 self.Status:SetPoint('TOPLEFT', WorldMapPOIFrame, 'TOPLEFT', 0, 0) | 110 self.Status:SetPoint('TOPLEFT', WorldMapPOIFrame, 'TOPLEFT', 0, 0) |
| 84 self.Status:SetPoint('BOTTOMRIGHT', WorldMapPOIFrame, 'TOPRIGHT', 0, -4) | 111 self.Status:SetPoint('BOTTOMRIGHT', WorldMapPOIFrame, 'TOPRIGHT', 0, -4) |
| 85 self.Status.t = self.Status:CreateTexture(nil, 'OVERLAY') | 112 self.Status.t = self.Status:CreateTexture(nil, 'OVERLAY') |
| 101 status.t:SetWidth(translateTo) | 128 status.t:SetWidth(translateTo) |
| 102 end | 129 end |
| 103 | 130 |
| 104 | 131 |
| 105 end) | 132 end) |
| 133 | |
| 134 self:SetAllPoints(WorldMapPOIFrame) | |
| 135 for k,v in pairs( ToggleButton) do | |
| 136 self.Toggle:SetScript(k,v) | |
| 137 end | |
| 138 self:Show() | |
| 139 end | |
| 140 | |
| 141 local GetQuestBountyInfoForMapID, GetQuestLogTitle, GetQuestLogIndexByID, IsQuestFlaggedCompleted = GetQuestBountyInfoForMapID, GetQuestLogTitle, GetQuestLogIndexByID, IsQuestFlaggedCompleted | |
| 142 function Module:UpdateBountyInfo() | |
| 143 wipe(db.BountyInfo) | |
| 144 db.selectedBounty = nil | |
| 145 | |
| 146 local selectedBounty = WorldMapFrame.UIElementsFrame.BountyBoard:GetSelectedBountyIndex() | |
| 147 local bounties, numBounties = GetQuestBountyInfoForMapID(db.currentMapID) | |
| 148 | |
| 149 for index, data in ipairs(bounties) do | |
| 150 if data.factionID then | |
| 151 data.title = GetQuestLogTitle(GetQuestLogIndexByID(data.questID)) | |
| 152 data.complete = IsQuestFlaggedCompleted(data.questID) | |
| 153 db.BountyInfo[data.factionID] = data | |
| 154 if index == selectedBounty then | |
| 155 db.selectedBounty = data | |
| 156 end | |
| 157 end | |
| 158 end | |
| 159 | |
| 160 for questID, pin in pairs(db.QuestsByID) do | |
| 161 local doUpdate | |
| 162 if pin.factionID and db.BountyInfo[pin.factionID] then | |
| 163 if not pin.isCriteria then | |
| 164 pin.isCriteria = true | |
| 165 doUpdate = true | |
| 166 end | |
| 167 else | |
| 168 if pin.isCriteria then | |
| 169 doUpdate = true | |
| 170 pin.isCriteria = nil | |
| 171 end | |
| 172 end | |
| 173 if doUpdate then | |
| 174 if pin:IsVisible() then | |
| 175 pin:Refresh() | |
| 176 else | |
| 177 pin.isStale = true | |
| 178 end | |
| 179 end | |
| 180 end | |
| 181 db.BountyUpdate = nil | |
| 182 end | |
| 183 | |
| 184 function Module:OnSelectedBountyChanged() | |
| 185 self:UpdateBountyInfo() | |
| 106 end | 186 end |
| 107 | 187 |
| 108 function Module:OnConfigUpdate() | 188 function Module:OnConfigUpdate() |
| 189 print('|cFFFFFF00OnConfigUpdate()|r') | |
| 109 if db.Config.FadeWhileGrouped then | 190 if db.Config.FadeWhileGrouped then |
| 110 db.PinAlpha = 0.15 | 191 db.PinAlpha = 0.15 |
| 111 else | 192 else |
| 112 db.PinAlpha = 1 | 193 db.PinAlpha = 1 |
| 113 end | 194 end |
| 195 | |
| 196 if not db.Config.EnablePins then | |
| 197 for _, pin in pairs(db.QuestsByID) do | |
| 198 pin:SetShown(false) | |
| 199 end | |
| 200 end | |
| 201 | |
| 202 ToggleButton.OnShow(self.Toggle) | |
| 114 end | 203 end |
| 115 | 204 |
| 116 local InternalHideButton = function(button, index) | 205 local InternalHideButton = function(button, index) |
| 117 button:Hide() | 206 button:Hide() |
| 118 if button.questID and db.QuestsByID[button.questID] then | 207 if button.questID and db.QuestsByID[button.questID] then |
| 138 end | 227 end |
| 139 end | 228 end |
| 140 end | 229 end |
| 141 | 230 |
| 142 function Module:OnUpdateQuestBonusObjectives() | 231 function Module:OnUpdateQuestBonusObjectives() |
| 143 print('|cFFFF4400WorldMap_UpdateQuestBonusObjectives') | 232 rprint('|cFFFF4400WorldMap_UpdateQuestBonusObjectives') |
| 144 self:UpdateBlizzButtons() | 233 self:UpdateBlizzButtons() |
| 145 end | 234 end |
| 146 | 235 |
| 147 function Module:OnClickWorldMapActionButton() | 236 function Module:OnClickWorldMapActionButton() |
| 237 rprint('|cFFFF4400ClickWorldMapActionButton') | |
| 148 self:UpdateBlizzButtons() | 238 self:UpdateBlizzButtons() |
| 149 end | 239 end |
| 150 | 240 |
| 151 local defaults = {} | 241 local defaults = {} |
| 152 local REWARD_UNKNOWN = 768 | 242 local REWARD_UNKNOWN = 768 |
| 165 self:RegisterEvent('SUPER_TRACKED_QUEST_CHANGED') | 255 self:RegisterEvent('SUPER_TRACKED_QUEST_CHANGED') |
| 166 self:RegisterEvent('SKILL_LINES_CHANGED') | 256 self:RegisterEvent('SKILL_LINES_CHANGED') |
| 167 self:RegisterEvent('CURRENT_SPELL_CAST_CHANGED') | 257 self:RegisterEvent('CURRENT_SPELL_CAST_CHANGED') |
| 168 end | 258 end |
| 169 | 259 |
| 170 function Module:OnMapInfo(isBrokenIsle, isZoomedOut, mapAreaID) | 260 function Module:OnMapInfo(isBrokenIsle, isZoomedOut, mapAreaID, isNewMap, isMapOpen) |
| 171 print('|cFFFFFF00'..self:GetName()..':OnMapInfo()|r visible =', self:IsVisible()) | 261 |
| 172 if self.isZoomedOut ~= isZoomedOut then | 262 print('|cFFFFFF00'..self:GetName()..':OnMapInfo()|r, mapAreaID =', mapAreaID,'visible =', isMapOpen, 'changed =', isNewMap) |
| 173 self.sizesDirty = true | 263 |
| 174 end | 264 if db.BountyUpdate then |
| 175 | 265 self:UpdateBountyInfo() |
| 176 self.isZoomedOut = isZoomedOut | 266 end |
| 177 self.isWorldQuestMap = isBrokenIsle | 267 if isNewMap then |
| 178 self.currentMapID = mapAreaID | 268 print('|cFF00FF88refreshing for changed map') |
| 179 | 269 if isMapOpen then |
| 180 if self:IsVisible() then | 270 self:Refresh(true) |
| 181 self:Refresh(true) | 271 else |
| 182 else | 272 self.isStale = true |
| 183 self.isStale = true | 273 end |
| 184 end | 274 end |
| 275 | |
| 185 end | 276 end |
| 186 local superTrackedQuestID | 277 local superTrackedQuestID |
| 187 function Module:OnEvent (event, ...) | 278 function Module:OnEvent (event, ...) |
| 188 | 279 |
| 189 print('|cFFFFFF00'..self:GetName()..':OnEvent() '..event..'|r', GetTime(), ...) | 280 print('|cFFFFFF00'..self:GetName()..':OnEvent() '..event..'|r', GetTime(), ...) |
| 288 | 379 |
| 289 | 380 |
| 290 pin.isActive = TQ_IsActive(questID) | 381 pin.isActive = TQ_IsActive(questID) |
| 291 pin:CheckFilterRules() | 382 pin:CheckFilterRules() |
| 292 rprint(pin:GetID(), pin.filtered, pin.used) | 383 rprint(pin:GetID(), pin.filtered, pin.used) |
| 384 pin:SetShown(pin.used) | |
| 293 | 385 |
| 294 return pin | 386 return pin |
| 295 end | 387 end |
| 296 | 388 |
| 297 -- remove from index and add it to the recycling heap | 389 -- remove from index and add it to the recycling heap |
| 415 return REWARD_REAGENT, icon, quantity, name, itemID, quality | 507 return REWARD_REAGENT, icon, quantity, name, itemID, quality |
| 416 end | 508 end |
| 417 end | 509 end |
| 418 return 128, icon, quantity, name, itemID, quality | 510 return 128, icon, quantity, name, itemID, quality |
| 419 end | 511 end |
| 512 | |
| 513 -- pins are queued by their OnUpdate and are ostensibly already visible, we just need to fix the zoom and anchor | |
| 514 function Module:UpdateQueuedPins() | |
| 515 print('|cFF00FF88UpdateQueuedPins()') | |
| 516 local pin = tremove(db.UpdatedPins) | |
| 517 while pin do | |
| 518 pin:CheckFilterRules() | |
| 519 | |
| 520 local scaleFactor = SCALE_FACTORS[(pin.dataLoaded and not pin.filtered) and scaleConstant or 1] | |
| 521 print(pin.title, pin.dataLoaded and not pin.filtered, scaleFactor) | |
| 522 pin:SetAnchor(nil, pin.x, pin.y, self.hostWidth, self.hostHeight, scaleFactor) | |
| 523 pin = tremove(db.UpdatedPins) | |
| 524 end | |
| 525 end | |
| 526 | |
| 420 -- create of update quest pins for a map and its underlying zones | 527 -- create of update quest pins for a map and its underlying zones |
| 421 function Module:UpdateWorldQuests (mapID) | 528 function Module:UpdateWorldQuests (mapID) |
| 422 | 529 |
| 423 mapID = mapID or db.currentMapID | 530 mapID = mapID or db.currentMapID |
| 424 if not mapID then | 531 if not mapID then |
| 488 for id, pin in pairs(db.QuestsByID) do | 595 for id, pin in pairs(db.QuestsByID) do |
| 489 db:print(id, pin.worldQuestType, pin.rewardType, pin.title) | 596 db:print(id, pin.worldQuestType, pin.rewardType, pin.title) |
| 490 end | 597 end |
| 491 end | 598 end |
| 492 | 599 |
| 493 function Module:Refresh() | 600 local bountiesInitialized |
| 494 self.currentMapID = GetCurrentMapAreaID() | 601 function Module:Refresh(...) |
| 495 rprint('|cFF00FF88'..self:GetName()..':Refresh()|r') | 602 rprint('|cFF00FF88'..self:GetName()..':Refresh()|r', ...) |
| 496 print('|cFF00FF88'..self:GetName()..':Refresh()|r') | 603 print('|cFF00FF88'..self:GetName()..':Refresh()|r', ...) |
| 497 if not self:IsVisible() then | 604 if not self:IsVisible() then |
| 498 print(' not visible, flag for later') | 605 print(' not visible, flag for later') |
| 499 self.isStale = true | 606 self.isStale = true |
| 500 return self:MarkAllPins() | 607 return self:MarkAllPins() |
| 501 end | 608 end |
| 609 if not db.Config.EnablePins then | |
| 610 return | |
| 611 end | |
| 612 | |
| 613 | |
| 502 wprint(' |cFF00FF88'..self:GetName()..':Refresh()|r') | 614 wprint(' |cFF00FF88'..self:GetName()..':Refresh()|r') |
| 503 | 615 |
| 504 scaleConstant = db.isContinentMap and 2 or 3 | 616 scaleConstant = db.isContinentMap and 2 or 3 |
| 505 for index, pin in pairs(db.QuestsByID) do | 617 for index, pin in pairs(db.QuestsByID) do |
| 506 pin.used = nil | 618 pin.used = nil |
| 510 self:UpdateBlizzButtons() | 622 self:UpdateBlizzButtons() |
| 511 else | 623 else |
| 512 self:UpdateAnchors(nil) | 624 self:UpdateAnchors(nil) |
| 513 end | 625 end |
| 514 | 626 |
| 515 print('|cFFFFFF00'..self:GetName()..':Cleanup()|r') | |
| 516 rprint('|cFFFFFF00'..self:GetName()..':Cleanup()|r') | |
| 517 --local showQuestPOI = db.Config.EnablePins | 627 --local showQuestPOI = db.Config.EnablePins |
| 518 numShown = 0 | 628 numShown = 0 |
| 519 numLoaded = 0 | 629 numLoaded = 0 |
| 520 for questID, pin in pairs(db.QuestsByID) do | 630 for questID, pin in pairs(db.QuestsByID) do |
| 521 local oV = pin:IsShown() | 631 local oV = pin:IsShown() |
| 522 if pin.used then | 632 if pin.used then |
| 523 pin.throttle = 1 | 633 pin.throttle = 1 |
| 524 if oV == false then | 634 if oV == false then |
| 525 print('|cFF00FF00cleanup +|r', questID, pin.title) | 635 rprint('|cFF00FF00cleanup +|r', questID, pin.title) |
| 526 end | 636 end |
| 527 pin:SetShown(true) | 637 pin:SetShown(true) |
| 528 numShown = numShown + 1 | 638 numShown = numShown + 1 |
| 529 if pin.dataLoaded then | 639 if pin.dataLoaded then |
| 530 numLoaded = numLoaded + 1 | 640 numLoaded = numLoaded + 1 |
| 531 end | 641 end |
| 532 | 642 |
| 533 else | 643 else |
| 534 if oV == true then | 644 if oV == true then |
| 535 print('|cFFFF4400 -|r', questID, pin.title) | 645 rprint('|cFFFF4400 -|r', questID, pin.title) |
| 536 end | 646 end |
| 537 pin:HideFrames() | 647 pin:HideFrames() |
| 538 end | 648 end |
| 539 end | 649 end |
| 540 | 650 |
| 651 print(numShown, 'shown', numLoaded, 'loaded') | |
| 541 if numShown > numLoaded then | 652 if numShown > numLoaded then |
| 542 self.Status:Show() | 653 self.Status:Show() |
| 543 end | 654 end |
| 544 | 655 |
| 545 | 656 |
| 564 if not pin then | 675 if not pin then |
| 565 return | 676 return |
| 566 end | 677 end |
| 567 | 678 |
| 568 | 679 |
| 569 print('~ ', pin.mapID, pin.questID, pin.title) | 680 --print(' |- ', pin.questID, pin.title) |
| 570 rprint('|cFF00FF00update|r', pin.questID, pin.title) | 681 rprint('|cFF00FF00update|r', pin.questID, pin.title) |
| 571 | 682 |
| 572 if x and y then | 683 if x and y then |
| 573 local scaleFactor = SCALE_FACTORS[(pin.dataLoaded and not pin.filtered) and scaleConstant or 1] | 684 local scaleFactor = SCALE_FACTORS[(pin.dataLoaded and not pin.filtered) and scaleConstant or 1] |
| 574 pin:SetFrameLevel(PinBaseIndex+pin:GetID()) | 685 pin:SetFrameLevel(PinBaseIndex+pin:GetID()) |
| 601 wipe(self.UsedPositions) | 712 wipe(self.UsedPositions) |
| 602 print(' |cFF00FF00'..self:GetName()..':UpdateAnchors()') | 713 print(' |cFF00FF00'..self:GetName()..':UpdateAnchors()') |
| 603 self.hostWidth, self.hostHeight = WorldMapPOIFrame:GetSize() | 714 self.hostWidth, self.hostHeight = WorldMapPOIFrame:GetSize() |
| 604 self.nudgeThrescholdX = 16/self.hostWidth | 715 self.nudgeThrescholdX = 16/self.hostWidth |
| 605 self.nudgeThrescholdY = 16/self.hostHeight | 716 self.nudgeThrescholdY = 16/self.hostHeight |
| 606 local print = rprint | 717 |
| 607 print('|cFF00FF00'..self:GetName()..':UpdateAnchors()') | 718 rprint('|cFF00FF00'..self:GetName()..':UpdateAnchors()') |
| 608 local mapFileName, textureHeight, textureWidth, isMicroDungeon, microDungeonMapName = GetMapInfo() | 719 local mapFileName, textureHeight, textureWidth, isMicroDungeon, microDungeonMapName = GetMapInfo() |
| 609 if isMicroDungeon then | 720 if isMicroDungeon then |
| 610 return | 721 return |
| 611 end | 722 end |
| 612 -- starts as true | 723 -- starts as true |
| 613 isDataLoaded = true | 724 isDataLoaded = true |
| 614 | 725 |
| 615 numPins = 0 | 726 numPins = 0 |
| 616 local taskInfo = TQ_GetQuestsForPlayerByMapID(self.currentMapID) | 727 local taskInfo = TQ_GetQuestsForPlayerByMapID(db.currentMapID) |
| 617 if taskInfo then | 728 if taskInfo then |
| 618 self:UpdateMap(taskInfo, self.currentMapID) | 729 self:UpdateMap(taskInfo, db.currentMapID) |
| 619 end | 730 end |
| 620 local numZones = MC_GetNumZones(self.currentMapID) | 731 local numZones = MC_GetNumZones(db.currentMapID) |
| 621 if numZones then | 732 if numZones then |
| 622 for i = 1, numZones do | 733 for i = 1, numZones do |
| 623 local mapAreaID = MC_GetZoneInfo(self.currentMapID, i) | 734 local mapAreaID = MC_GetZoneInfo(db.currentMapID, i) |
| 624 local taskInfo = TQ_GetQuestsForPlayerByMapID(mapAreaID, self.currentMapID) | 735 local taskInfo = TQ_GetQuestsForPlayerByMapID(mapAreaID, db.currentMapID) |
| 625 if taskInfo then | 736 if taskInfo then |
| 626 self:UpdateMap(taskInfo, mapAreaID) | 737 self:UpdateMap(taskInfo, mapAreaID) |
| 627 end | 738 end |
| 628 end | 739 end |
| 629 end | 740 end |
| 630 end | 741 end |
| 631 | 742 |
| 743 function ToggleButton:OnShow() | |
| 744 self:SetChecked(db.Config.EnablePins and true or false) | |
| 745 end | |
| 746 function ToggleButton:OnClick() | |
| 747 print(self:GetChecked()) | |
| 748 db.Config.EnablePins = self:GetChecked() | |
| 749 _G.WorldPlan:OnConfigUpdate() | |
| 750 end |
