From caa163786eabb7408cb0050dc3b4c82f80a083d6 Mon Sep 17 00:00:00 2001 From: "Johnny C. Lam" Date: Sun, 13 Jul 2014 11:31:46 +0000 Subject: [PATCH] Special handling of "mastery" keyword since it's also the name of a buff. Rename "mastery" keyword to "specialization", i.e., specialization=feral, so that it doesn't conflict with the name of the "mastery" raid buff. Mark the use of the "mastery" keyword as deprecated for removal in a future release. git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1545 d5049fe3-3747-40f7-a4b5-f36d6801af5f --- OvaleAST.lua | 2 +- OvaleCompile.lua | 20 +++++++++++++++----- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/OvaleAST.lua b/OvaleAST.lua index 6e21879..65b4a43 100644 --- a/OvaleAST.lua +++ b/OvaleAST.lua @@ -108,7 +108,7 @@ local PARAMETER_KEYWORD = { ["itemcount"] = true, ["itemset"] = true, ["list"] = true, - ["mastery"] = true, + ["specialization"] = true, ["stance"] = true, ["talent"] = true, ["wait"] = true, diff --git a/OvaleCompile.lua b/OvaleCompile.lua index f5efc2b..bb00ba8 100644 --- a/OvaleCompile.lua +++ b/OvaleCompile.lua @@ -101,6 +101,12 @@ local function TestConditions(parameters) local hasGlyph = OvaleSpellBook:IsActiveGlyph(glyph) boolean = (required and hasGlyph) or (not required and not hasGlyph) end + if boolean and parameters.specialization then + local spec, required = RequireValue(parameters.specialization) + local isSpec = OvalePaperDoll:IsSpecialization(spec) + boolean = (required and isSpec) or (not required and not isSpec) + end + -- Deprecated: mastery -> specialization if boolean and parameters.mastery then local spec, required = RequireValue(parameters.mastery) local isSpec = OvalePaperDoll:IsSpecialization(spec) @@ -139,7 +145,7 @@ local function TestConditions(parameters) local isChecked = (profile.check[name] ~= nil) boolean = (required and isChecked) or (not required and not isChecked) end - -- XXX Deprecated: checkboxon + -- Deprecated: checkboxon if boolean and parameters.checkboxon then -- Flag this checkbox as triggering a script evaluation. local name = parameters.checkboxon @@ -150,7 +156,7 @@ local function TestConditions(parameters) profile = profile or OvaleOptions:GetProfile() boolean = (profile.check[name] ~= nil) end - -- XXX Deprecated: checkboxoff + -- Deprecated: checkboxoff if boolean and parameters.checkboxoff then -- Flag this checkbox as triggering a script evaluation. local name = parameters.checkboxon @@ -314,7 +320,8 @@ local function EvaluateSpellAuraList(node) local tbl = auraTable[filter] or {} local count = 0 for k, v in pairs(parameters) do - if not OvaleAST.PARAMETER_KEYWORD[k] then + -- Deprecated: "mastery" can't be a keyword since it's the same as the name of the raid buff. + if not OvaleAST.PARAMETER_KEYWORD[k] and k ~= "mastery" then tbl[k] = v count = count + 1 end @@ -355,8 +362,11 @@ local function EvaluateSpellInfo(node) OvaleData.buffSpellList[v] = list elseif k == "sharedcd" then OvaleCooldown:AddSharedCooldown(v, spellId) - elseif not OvaleAST.PARAMETER_KEYWORD[k] then - si[k] = v + else + -- Deprecated: "mastery" can't be a keyword since it's the same as the name of the raid buff. + if not OvaleAST.PARAMETER_KEYWORD[k] and k ~= "mastery" then + si[k] = v + end end end end -- 1.7.9.5