diff ObjectiveUI.lua @ 5:e9b61fd5f607

- use IsQuestWatched as the determinant for setting action button updates - check for block match-up in deferred action button updates
author Nenue
date Thu, 31 Mar 2016 15:58:08 -0400
parents 3397aae1f44d
children 589de8ea05b9
line wrap: on
line diff
--- a/ObjectiveUI.lua	Thu Mar 31 14:28:40 2016 -0400
+++ b/ObjectiveUI.lua	Thu Mar 31 15:58:08 2016 -0400
@@ -60,8 +60,13 @@
 end
 
 Quest.Remove = function(self)
-  RemoveQuestWatch(self.info.questIndex)
+  print('removing', self.info.questLogIndex, 'from watcher')
+  RemoveQuestWatch(self.info.questLogIndex)
+
+  mod.Quest.LogBlock[self.info.questLogIndex] = nil
+  mod.Quest.QuestBlock[self.info.questID] = nil
   QuestPOIUpdateIcons()
+  mod.UpdateWrapper()
 end
 
 
@@ -105,29 +110,28 @@
         itemButton.block = nil
       end
     else
-      print('    |cFFFF4400starting new button')
       local buttonIndex = mod.Quest.numButtons + #freeButtons + 1
       itemButton = CreateFrame('Button', 'VeneerQuestItemButton' .. buttonIndex, UIParent, 'VeneerItemButtonTemplate')
       itemButton.buttonIndex = buttonIndex
       itemButton:SetSize(48, 48)
       itemButton:GetNormalTexture():SetSize(80,80)
+      print('    |cFFFF4400starting new button', itemButton:GetName())
     end
     mod.Quest.numButtons = mod.Quest.numButtons + 1
   else
-    print('    |cFF00FF00found assigned button')
     itemButton = info.itemButton
-    if itemButton.block then
-      print('  - moving from old block')
-      itemButton.block.itemButton = nil
-    end
+    print('    |cFF00FF00found assigned button', itemButton:GetName())
 
   end
   -- set values
 
+  info.itemButton = itemButton
+  usedButtons[info.questID] = itemButton
+  print('      |cFF8800FFassigning|r', itemButton:GetName(), 'to quest|cFF00FF00', info.questID, '|rat|cFFFFFF00', block:GetName(),'|r')
 
-  info.itemButton = itemButton
-  block.itemButton = itemButton
-  usedButtons[info.questID] = itemButton
+  for k,v in pairs(usedButtons) do
+    print('|cFFFF44DD'..k..'|r', v:GetName())
+    end
 
   itemButton:SetAttribute("type", "item")
   itemButton:SetAttribute("item", itemInfo.link)
@@ -149,13 +153,18 @@
 
   if block.itemButton then
     local itemButton = block.itemButton
-    itemButton.block = nil
-    itemButton:Hide()
+    if itemButton.questID ~= block.info.questID then
+      block.itemButton = nil
+      itemButton.block = mod.Quest.InfoBlock[itemButton.questID]
+    else
+      itemButton.block = nil
+      itemButton:Hide()
 
-    usedButtons[itemButton.questID] = nil
-    freeButtons[#freeButtons + 1] = itemButton
-    mod.Quest.numButtons = mod.Quest.numButtons - 1
-    print('|cFFFF0088released', itemButton:GetName(),'and', block:GetName())
+      usedButtons[itemButton.questID] = nil
+      freeButtons[#freeButtons + 1] = itemButton
+      mod.Quest.numButtons = mod.Quest.numButtons - 1
+      print('|cFFFF0088released', itemButton:GetName(),'and', block:GetName())
+    end
   end
 end