Quantcast

Fixed a lot of metatable stuff

Kevin Lyles [12-17-09 - 20:29]
Fixed a lot of metatable stuff
Filename
WeightsWatcher.lua
config.lua
config.xml
weights.lua
diff --git a/WeightsWatcher.lua b/WeightsWatcher.lua
index 1ca4f93..be29ed7 100644
--- a/WeightsWatcher.lua
+++ b/WeightsWatcher.lua
@@ -94,9 +94,7 @@ ww_weightCacheMetatable = {

 ww_weightIdealCacheWeightMetatable = {
 	__index = function(tbl, key)
-		if key == "weight" then
-			return nil
-		elseif key == "bestGems" then
+		if key == "bestGems" then
 			local redScore, yellowScore, blueScore, overallScore
 			local bestGems = {}

diff --git a/config.lua b/config.lua
index 5f3b1bd..84e6a0a 100644
--- a/config.lua
+++ b/config.lua
@@ -58,7 +58,7 @@ end
 function GemQualityDropDownOnClick(choice, dropdown)
 	UIDropDownMenu_SetSelectedValue(dropdown, choice.value, false)
 	ww_vars.options.gemQualityLimit = choice.value
-	ww_weightIdealCache = {}
+	ww_weightIdealCache = setmetatable({}, ww_weightIdealCacheMetatable)
 end

 function ModifierKeyDropDownInitialize(dropdown)
diff --git a/config.xml b/config.xml
index 0ca1c6f..337ad06 100644
--- a/config.xml
+++ b/config.xml
@@ -161,7 +161,7 @@
 									ww_vars.options.breakSocketColors = true
 									self:GetParent().alwaysObeySocketColors:Disable()
 								end
-								ww_weightIdealCache = {}
+								ww_weightIdealCache = setmetatable({}, ww_weightIdealCacheMetatable)
 							</OnClick>
 							<OnEnter>
 								GameTooltip:SetOwner(self,"ANCHOR_RIGHT")
@@ -197,7 +197,7 @@
 								else
 									ww_vars.options.neverBreakSocketColors = false
 								end
-								ww_weightIdealCache = {}
+								ww_weightIdealCache = setmetatable({}, ww_weightIdealCacheMetatable)
 							</OnClick>
 							<OnDisable>
 								self.text:SetTextColor(0.5, 0.5, 0.5)
@@ -246,8 +246,8 @@
 								else
 									ww_vars.options.normalizeWeights = false
 								end
-								ww_weightCache = {}
-								ww_weightIdealCache = {}
+								ww_weightCache = setmetatable({}, ww_weightCacheMetatable)
+								ww_weightIdealCache = setmetatable({}, ww_weightIdealCacheMetatable)
 							</OnClick>
 							<OnEnter>
 								GameTooltip:SetOwner(self,"ANCHOR_RIGHT")
diff --git a/weights.lua b/weights.lua
index b5d7bdd..b6ec9b2 100644
--- a/weights.lua
+++ b/weights.lua
@@ -41,12 +41,8 @@ StaticPopupDialogs["WW_CONFIRM_RESTORE_DEFAULTS"] = {
 			for _, class in ipairs(defaultVars.weightsList) do
 				for _, weight in ipairs(defaultVars.weightsList[class]) do
 					setWeight(class, weight, defaultVars.weightsList[class][weight])
-					if ww_weightCache[class] then
-						ww_weightCache[class][weight] = {}
-					end
-					if ww_weightIdealCache[class] then
-						ww_weightIdealCache[class][weight] = {}
-					end
+					ww_weightCache[class][weight] = nil
+					ww_weightIdealCache[class][weight] = nil
 				end
 			end
 			if ww_weights.rightPanel:IsShown() then
@@ -257,12 +253,8 @@ function configSaveWeight()
 	local weightFrame = ww_weights.rightPanel.weightFrame

 	-- The weight is changing, clear any cached info
-	if ww_weightCache[weightFrame.category.class] then
-		ww_weightCache[weightFrame.category.class][weightFrame.name] = {}
-	end
-	if ww_weightIdealCache[weightFrame.category.class] then
-		ww_weightIdealCache[weightFrame.category.class][weightFrame.name] = {}
-	end
+	ww_weightCache[weightFrame.category.class][weightFrame.name] = nil
+	ww_weightIdealCache[weightFrame.category.class][weightFrame.name] = nil

 	for statValue, statName in pairs(ww_weights.rightPanel.changedStats) do
 		number = statValue:GetNumber()