From bb6b38cd8229abe1ea1002e6a0637416482c0dba Mon Sep 17 00:00:00 2001 From: "Johnny C. Lam" Date: Sun, 17 Nov 2013 16:29:47 +0000 Subject: [PATCH] De-couple module dependencies so that load-order isn't as important. - Initialize module dependencies at OnInitialize() for the module. - Separate modules into core and non-core modules. git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1189 d5049fe3-3747-40f7-a4b5-f36d6801af5f --- Ovale.toc | 61 +++++++++++++++++++++++++------------------------ OvaleAura.lua | 27 ++++++++++++++-------- OvaleBestAction.lua | 39 ++++++++++++++++++++++--------- OvaleComboPoints.lua | 14 +++++++++--- OvaleCompile.lua | 33 ++++++++++++++++++-------- OvaleCooldown.lua | 20 ++++++++++++---- OvaleDamageTaken.lua | 12 ++++++++-- OvaleEclipse.lua | 19 +++++++++++---- OvaleFuture.lua | 33 ++++++++++++++++++-------- OvaleOptions.lua | 13 ++++++++--- OvalePaperDoll.lua | 17 +++++++++++--- OvalePool.lua | 2 +- OvalePoolGC.lua | 2 +- OvalePoolRefCount.lua | 2 +- OvalePower.lua | 11 +++++++-- OvaleQueue.lua | 2 +- OvaleRecount.lua | 3 ++- OvaleRunes.lua | 23 ++++++++++++++----- OvaleScore.lua | 15 +++++++++--- OvaleSkada.lua | 8 ++++++- OvaleSpellDamage.lua | 14 +++++++++--- OvaleState.lua | 7 ++++-- OvaleSwing.lua | 13 ++++++++++- OvaleTimeSpan.lua | 2 +- compiler.pl | 5 ++++ 25 files changed, 284 insertions(+), 113 deletions(-) diff --git a/Ovale.toc b/Ovale.toc index 2162fe2..280b66d 100644 --- a/Ovale.toc +++ b/Ovale.toc @@ -18,47 +18,48 @@ locales\locales.xml Ovale.lua -# Modules with no dependencies -OvaleActionBar.lua -OvaleCondition.lua -OvaleData.lua -OvaleEnemies.lua -OvaleEquipement.lua -OvaleGUID.lua -OvaleLatency.lua +# Utility modules. OvalePool.lua OvalePoolGC.lua OvalePoolRefCount.lua OvaleQueue.lua -OvaleScripts.lua -scripts\scripts.xml -OvaleSpellBook.lua -OvaleStance.lua OvaleTimeSpan.lua -# -OvaleDamageTaken.lua -OvalePaperDoll.lua -OvaleScore.lua -OvaleSpellDamage.lua -OvaleState.lua -OvaleSwing.lua -# + +# Core modules. +OvaleActionBar.lua OvaleAura.lua +OvaleBestAction.lua OvaleComboPoints.lua +OvaleCompile.lua +OvaleCondition.lua OvaleCooldown.lua +OvaleData.lua +OvaleEquipement.lua +OvaleFuture.lua +OvaleGUID.lua +OvaleLatency.lua OvaleOptions.lua +OvalePaperDoll.lua OvalePower.lua -OvaleRecount.lua -OvaleSkada.lua -# -OvaleCompile.lua -OvaleEclipse.lua -OvaleFuture.lua +OvaleScore.lua +OvaleScripts.lua +OvaleSpellBook.lua +OvaleStance.lua +OvaleState.lua + +# Core modules with dependencies. OvaleIcone.lua OvaleIcone.xml +OvaleFrame.lua + +# Additional modules. +OvaleDamageTaken.lua +OvaleEclipse.lua +OvaleEnemies.lua +OvaleRecount.lua OvaleRunes.lua -# +OvaleSkada.lua +OvaleSpellDamage.lua +OvaleSwing.lua conditions\conditions.xml -OvaleBestAction.lua -# -OvaleFrame.lua +scripts\scripts.xml diff --git a/OvaleAura.lua b/OvaleAura.lua index 5cb6bc1..ae79fad 100644 --- a/OvaleAura.lua +++ b/OvaleAura.lua @@ -16,12 +16,14 @@ local OvaleAura = Ovale:NewModule("OvaleAura", "AceEvent-3.0") Ovale.OvaleAura = OvaleAura -- -local OvaleData = Ovale.OvaleData -local OvaleFuture = nil -- forward declaration -local OvaleGUID = Ovale.OvaleGUID -local OvalePaperDoll = Ovale.OvalePaperDoll local OvalePool = Ovale.OvalePool -local OvaleState = Ovale.OvaleState + +-- Forward declarations for module dependencies. +local OvaleData = nil +local OvaleFuture = nil +local OvaleGUID = nil +local OvalePaperDoll = nil +local OvaleState = nil local ipairs = ipairs local pairs = pairs @@ -62,7 +64,6 @@ local OVALE_DEBUFF_TYPES = { Magic = true, Poison = true, } -local OVALE_UNIT_AURA_UNITS = OvaleGUID.UNIT_AURA_UNITS -- CLEU events triggered by auras being applied, removed, refreshed, or changed in stack size. local OVALE_CLEU_AURA_EVENTS = { SPELL_AURA_APPLIED = true, @@ -329,8 +330,16 @@ end -- -- +function OvaleAura:OnInitialize() + -- Resolve module dependencies. + OvaleData = Ovale.OvaleData + OvaleFuture = Ovale.OvaleFuture + OvaleGUID = Ovale.OvaleGUID + OvalePaperDoll = Ovale.OvalePaperDoll + OvaleState = Ovale.OvaleState +end + function OvaleAura:OnEnable() - OvaleFuture = Ovale.OvaleFuture -- resolve forward declaration self_guid = OvaleGUID:GetGUID("player") self:RegisterEvent("COMBAT_LOG_EVENT_UNFILTERED") self:RegisterEvent("PLAYER_ENTERING_WORLD") @@ -357,7 +366,7 @@ function OvaleAura:COMBAT_LOG_EVENT_UNFILTERED(event, ...) RemoveAurasForGUID(destGUID) elseif OVALE_CLEU_AURA_EVENTS[event] then local unitId = OvaleGUID:GetUnitId(destGUID) - if unitId and not OVALE_UNIT_AURA_UNITS[unitId] then + if unitId and not OvaleGUID.UNIT_AURA_UNITS[unitId] then ScanUnitAuras(unitId, destGUID) end elseif mine and OVALE_CLEU_TICK_EVENTS[event] then @@ -370,7 +379,7 @@ end function OvaleAura:PLAYER_ENTERING_WORLD(event) Ovale:DebugPrint(OVALE_AURA_DEBUG, event) -- Update auras on all visible units. - for unitId in pairs(OVALE_UNIT_AURA_UNITS) do + for unitId in pairs(OvaleGUID.UNIT_AURA_UNITS) do ScanUnitAuras(unitId) end RemoveAurasForMissingUnits() diff --git a/OvaleBestAction.lua b/OvaleBestAction.lua index 185def4..b1ff5f6 100644 --- a/OvaleBestAction.lua +++ b/OvaleBestAction.lua @@ -13,20 +13,22 @@ local OvaleBestAction = Ovale:NewModule("OvaleBestAction") Ovale.OvaleBestAction = OvaleBestAction -- -local OvaleActionBar = Ovale.OvaleActionBar -local OvaleCondition = Ovale.OvaleCondition -local OvaleCooldown = Ovale.OvaleCooldown -local OvaleData = Ovale.OvaleData -local OvaleEquipement = Ovale.OvaleEquipement -local OvaleFuture = Ovale.OvaleFuture -local OvalePaperDoll = Ovale.OvalePaperDoll local OvalePool = Ovale.OvalePool -local OvalePower = Ovale.OvalePower -local OvaleSpellBook = Ovale.OvaleSpellBook -local OvaleStance = Ovale.OvaleStance -local OvaleState = Ovale.OvaleState local OvaleTimeSpan = Ovale.OvaleTimeSpan +-- Forward declarations for module dependencies. +local OvaleActionBar = nil +local OvaleCondition = nil +local OvaleCooldown = nil +local OvaleData = nil +local OvaleEquipement = nil +local OvaleFuture = nil +local OvalePaperDoll = nil +local OvalePower = nil +local OvaleSpellBook = nil +local OvaleStance = nil +local OvaleState = nil + local abs = math.abs local floor = math.floor local ipairs = ipairs @@ -702,6 +704,21 @@ local OVALE_COMPUTE_VISITOR = -- -- +function OvaleBestAction:OnInitialize() + -- Resolve module dependencies. + OvaleActionBar = Ovale.OvaleActionBar + OvaleCooldown = Ovale.OvaleCooldown + OvaleCondition = Ovale.OvaleCondition + OvaleData = Ovale.OvaleData + OvaleEquipement = Ovale.OvaleEquipement + OvaleFuture = Ovale.OvaleFuture + OvalePaperDoll = Ovale.OvalePaperDoll + OvalePower = Ovale.OvalePower + OvaleSpellBook = Ovale.OvaleSpellBook + OvaleStance = Ovale.OvaleStance + OvaleState = Ovale.OvaleState +end + function OvaleBestAction:StartNewAction() OvaleState:Reset() OvaleFuture:ApplyInFlightSpells() diff --git a/OvaleComboPoints.lua b/OvaleComboPoints.lua index 1076b5d..b5e3201 100644 --- a/OvaleComboPoints.lua +++ b/OvaleComboPoints.lua @@ -14,9 +14,10 @@ local OvaleComboPoints = Ovale:NewModule("OvaleComboPoints", "AceEvent-3.0") Ovale.OvaleComboPoints = OvaleComboPoints -- -local OvaleData = Ovale.OvaleData -local OvaleGUID = Ovale.OvaleGUID -local OvaleState = Ovale.OvaleState +-- Forward declarations for module dependencies. +local OvaleData = nil +local OvaleGUID = nil +local OvaleState = nil local API_GetComboPoints = GetComboPoints local API_UnitClass = UnitClass @@ -31,6 +32,13 @@ OvaleComboPoints.combo = 0 -- -- +function OvaleComboPoints:OnInitialize() + -- Resolve module dependencies. + OvaleData = Ovale.OvaleData + OvaleGUID = Ovale.OvaleGUID + OvaleState = Ovale.OvaleState +end + function OvaleComboPoints:OnEnable() if self_class == "ROGUE" or self_class == "DRUID" then self:RegisterEvent("COMBAT_LOG_EVENT_UNFILTERED") diff --git a/OvaleCompile.lua b/OvaleCompile.lua index f69160e..cec5287 100644 --- a/OvaleCompile.lua +++ b/OvaleCompile.lua @@ -14,18 +14,20 @@ Ovale.OvaleCompile = OvaleCompile -- local L = Ovale.L -local OvaleCondition = Ovale.OvaleCondition -local OvaleData = Ovale.OvaleData -local OvaleEquipement = Ovale.OvaleEquipement -local OvaleOptions = Ovale.OvaleOptions -local OvalePaperDoll = Ovale.OvalePaperDoll local OvalePool = Ovale.OvalePool -local OvaleScore = Ovale.OvaleScore -local OvaleScripts = Ovale.OvaleScripts -local OvaleSpellBook = Ovale.OvaleSpellBook -local OvaleStance = Ovale.OvaleStance local OvaleTimeSpan = Ovale.OvaleTimeSpan +-- Forward declarations for module dependencies. +local OvaleCondition = nil +local OvaleData = nil +local OvaleEquipement = nil +local OvaleOptions = nil +local OvalePaperDoll = nil +local OvaleScore = nil +local OvaleScripts = nil +local OvaleSpellBook = nil +local OvaleStance = nil + local ipairs = ipairs local pairs = pairs local tonumber = tonumber @@ -827,6 +829,19 @@ end -- -- +function OvaleCompile:OnInitialize() + -- Resolve module dependencies. + OvaleCondition = Ovale.OvaleCondition + OvaleData = Ovale.OvaleData + OvaleEquipement = Ovale.OvaleEquipement + OvaleOptions = Ovale.OvaleOptions + OvalePaperDoll = Ovale.OvalePaperDoll + OvaleScore = Ovale.OvaleScore + OvaleScripts = Ovale.OvaleScripts + OvaleSpellBook = Ovale.OvaleSpellBook + OvaleStance = Ovale.OvaleStance +end + function OvaleCompile:OnEnable() self:RegisterMessage("Ovale_CheckBoxValueChanged", "EventHandler") self:RegisterMessage("Ovale_EquipmentChanged") diff --git a/OvaleCooldown.lua b/OvaleCooldown.lua index f5167a6..51ecb18 100644 --- a/OvaleCooldown.lua +++ b/OvaleCooldown.lua @@ -13,11 +13,12 @@ local OvaleCooldown = Ovale:NewModule("OvaleCooldown") Ovale.OvaleCooldown = OvaleCooldown -- -local OvaleData = Ovale.OvaleData -local OvaleGUID = Ovale.OvaleGUID -local OvalePaperDoll = Ovale.OvalePaperDoll -local OvaleStance = Ovale.OvaleStance -local OvaleState = Ovale.OvaleState +-- Forward declarations for module dependencies. +local OvaleData = nil +local OvaleGUID = nil +local OvalePaperDoll = nil +local OvaleStance = nil +local OvaleState = nil local API_UnitHealth = UnitHealth local API_UnitHealthMax = UnitHealthMax @@ -28,6 +29,15 @@ local self_class = select(2, API_UnitClass("player")) -- -- +function OvaleCooldown:OnInitialize() + -- Resolve module dependencies. + OvaleData = Ovale.OvaleData + OvaleGUID = Ovale.OvaleGUID + OvalePaperDoll = Ovale.OvalePaperDoll + OvaleStance = Ovale.OvaleStance + OvaleState = Ovale.OvaleState +end + function OvaleCooldown:OnEnable() OvaleState:RegisterState(self, self.statePrototype) end diff --git a/OvaleDamageTaken.lua b/OvaleDamageTaken.lua index f4a4908..17e347d 100644 --- a/OvaleDamageTaken.lua +++ b/OvaleDamageTaken.lua @@ -14,11 +14,13 @@ local OvaleDamageTaken = Ovale:NewModule("OvaleDamageTaken", "AceEvent-3.0") Ovale.OvaleDamageTaken = OvaleDamageTaken -- -local OvaleGUID = Ovale.OvaleGUID -local OvaleLatency = Ovale.OvaleLatency local OvalePool = Ovale.OvalePool local OvaleQueue = Ovale.OvaleQueue +-- Forward declarations for module dependencies. +local OvaleGUID = nil +local OvaleLatency = nil + local select = select local API_GetTime = GetTime @@ -46,6 +48,12 @@ end -- -- +function OvaleDamageTaken:OnInitialize() + -- Resolve module dependencies. + OvaleGUID = Ovale.OvaleGUID + OvaleLatency = Ovale.OvaleLatency +end + function OvaleDamageTaken:OnEnable() self_guid = OvaleGUID:GetGUID("player") self:RegisterEvent("COMBAT_LOG_EVENT_UNFILTERED") diff --git a/OvaleEclipse.lua b/OvaleEclipse.lua index aefc983..7c0edc0 100644 --- a/OvaleEclipse.lua +++ b/OvaleEclipse.lua @@ -16,16 +16,17 @@ local OvaleEclipse = Ovale:NewModule("OvaleEclipse", "AceEvent-3.0") Ovale.OvaleEclipse = OvaleEclipse -- -local OvaleData = Ovale.OvaleData -local OvaleGUID = Ovale.OvaleGUID -local OvaleSpellBook = Ovale.OvaleSpellBook -local OvaleState = Ovale.OvaleState -local SPELL_POWER_ECLIPSE = SPELL_POWER_ECLIPSE +-- Forward declarations for module dependencies. +local OvaleData = nil +local OvaleGUID = nil +local OvaleSpellBook = nil +local OvaleState = nil local select = select local API_GetEclipseDirection = GetEclipseDirection local API_UnitClass = UnitClass local API_UnitPower = UnitPower +local SPELL_POWER_ECLIPSE = SPELL_POWER_ECLIPSE -- Player's GUID. local self_guid = nil @@ -46,6 +47,14 @@ OvaleEclipse.eclipseDirection = 0 -- -- +function OvaleEclipse:OnInitialize() + -- Resolve module dependencies. + OvaleData = Ovale.OvaleData + OvaleGUID = Ovale.OvaleGUID + OvaleSpellBook = Ovale.OvaleSpellBook + OvaleState = Ovale.OvaleState +end + function OvaleEclipse:OnEnable() if self_class == "DRUID" then self_guid = OvaleGUID:GetGUID("player") diff --git a/OvaleFuture.lua b/OvaleFuture.lua index 3d7249d..3a02fa4 100644 --- a/OvaleFuture.lua +++ b/OvaleFuture.lua @@ -15,16 +15,18 @@ local OvaleFuture = Ovale:NewModule("OvaleFuture", "AceEvent-3.0") Ovale.OvaleFuture = OvaleFuture -- -local OvaleAura = Ovale.OvaleAura -local OvaleComboPoints = Ovale.OvaleComboPoints -local OvaleData = Ovale.OvaleData -local OvaleGUID = Ovale.OvaleGUID -local OvalePaperDoll = Ovale.OvalePaperDoll local OvalePool = Ovale.OvalePool -local OvalePower = Ovale.OvalePower -local OvaleScore = Ovale.OvaleScore -local OvaleSpellBook = Ovale.OvaleSpellBook -local OvaleState = Ovale.OvaleState + +-- Forward declarations for module dependencies. +local OvaleAura = nil +local OvaleComboPoints = nil +local OvaleData = nil +local OvaleGUID = nil +local OvalePaperDoll = nil +local OvalePower = nil +local OvaleScore = nil +local OvaleSpellBook = nil +local OvaleState = nil local ipairs = ipairs local pairs = pairs @@ -255,6 +257,19 @@ end -- -- +function OvaleFuture:OnInitialize() + -- Resolve module dependencies. + OvaleAura = Ovale.OvaleAura + OvaleComboPoints = Ovale.OvaleComboPoints + OvaleData = Ovale.OvaleData + OvaleGUID = Ovale.OvaleGUID + OvalePaperDoll = Ovale.OvalePaperDoll + OvalePower = Ovale.OvalePower + OvaleScore = Ovale.OvaleScore + OvaleSpellBook = Ovale.OvaleSpellBook + OvaleState = Ovale.OvaleState +end + function OvaleFuture:OnEnable() self_guid = OvaleGUID:GetGUID("player") self:RegisterEvent("COMBAT_LOG_EVENT_UNFILTERED") diff --git a/OvaleOptions.lua b/OvaleOptions.lua index adfb8ea..fc1517d 100644 --- a/OvaleOptions.lua +++ b/OvaleOptions.lua @@ -16,9 +16,11 @@ Ovale.OvaleOptions = OvaleOptions -- local L = Ovale.L -local OvaleScripts = Ovale.OvaleScripts -local OvaleSpellBook = Ovale.OvaleSpellBook -local OvaleState = Ovale.OvaleState + +-- Forward declarations for module dependencies. +local OvaleScripts = nil +local OvaleSpellBook = nil +local OvaleState = nil local strgmatch = string.gmatch local strgsub = string.gsub @@ -664,6 +666,11 @@ local self_options = -- function OvaleOptions:OnInitialize() + -- Resolve module dependencies. + OvaleScripts = Ovale.OvaleScripts + OvaleSpellBook = Ovale.OvaleSpellBook + OvaleState = Ovale.OvaleState + self.db = LibStub("AceDB-3.0"):New("OvaleDB", { profile = diff --git a/OvalePaperDoll.lua b/OvalePaperDoll.lua index db8c5d7..00b5505 100644 --- a/OvalePaperDoll.lua +++ b/OvalePaperDoll.lua @@ -14,9 +14,11 @@ local OvalePaperDoll = Ovale:NewModule("OvalePaperDoll", "AceEvent-3.0") Ovale.OvalePaperDoll = OvalePaperDoll -- -local OvaleEquipement = Ovale.OvaleEquipement local OvalePoolRefCount = Ovale.OvalePoolRefCount -local OvaleStance = Ovale.OvaleStance + +-- Forward declarations for module dependencies. +local OvaleEquipement = nil +local OvaleStance = nil local select = select local tonumber = tonumber @@ -133,14 +135,23 @@ end -- -- -function OvalePaperDoll:OnEnable() +function OvalePaperDoll:OnInitialize() + -- Resolve module dependencies. + OvaleEquipement = Ovale.OvaleEquipement + OvaleStance = Ovale.OvaleStance + -- Initialize latest snapshot table. + if self.snapshot then + self.snapshot:Release() + end self.snapshot = self_pool:Get() for k, info in pairs(self.SNAPSHOT_STATS) do self.snapshot[k] = info.default end self.snapshot.snapshotTime = 0 +end +function OvalePaperDoll:OnEnable() self:RegisterEvent("ACTIVE_TALENT_GROUP_CHANGED", "UpdateStats") self:RegisterEvent("COMBAT_RATING_UPDATE") self:RegisterEvent("MASTERY_UPDATE") diff --git a/OvalePool.lua b/OvalePool.lua index e77b265..c33adda 100644 --- a/OvalePool.lua +++ b/OvalePool.lua @@ -9,7 +9,7 @@ -- Simple resource pool. local _, Ovale = ... -local OvalePool = Ovale:NewModule("OvalePool") +local OvalePool = {} Ovale.OvalePool = OvalePool -- diff --git a/OvalePoolGC.lua b/OvalePoolGC.lua index 90b86a5..7bb90aa 100644 --- a/OvalePoolGC.lua +++ b/OvalePoolGC.lua @@ -9,7 +9,7 @@ -- This module wraps the standard Lua garbage collector using the Pool interface. local _, Ovale = ... -local OvalePoolGC = Ovale:NewModule("OvalePoolGC") +local OvalePoolGC = {} Ovale.OvalePoolGC = OvalePoolGC -- diff --git a/OvalePoolRefCount.lua b/OvalePoolRefCount.lua index 1413f56..f9a7122 100644 --- a/OvalePoolRefCount.lua +++ b/OvalePoolRefCount.lua @@ -20,7 +20,7 @@ --]] local _, Ovale = ... -local OvalePoolRefCount = Ovale:NewModule("OvalePoolRefCount") +local OvalePoolRefCount = {} Ovale.OvalePoolRefCount = OvalePoolRefCount -- diff --git a/OvalePower.lua b/OvalePower.lua index 26bae13..7eb026a 100644 --- a/OvalePower.lua +++ b/OvalePower.lua @@ -13,8 +13,9 @@ local OvalePower = Ovale:NewModule("OvalePower", "AceEvent-3.0") Ovale.OvalePower = OvalePower -- -local OvaleData = Ovale.OvaleData -local OvaleState = Ovale.OvaleState +-- Forward declarations for module dependencies. +local OvaleData = nil +local OvaleState = nil local pairs = pairs local select = select @@ -85,6 +86,12 @@ end -- -- +function OvalePower:OnInitialize() + -- Resolve module dependencies. + OvaleData = Ovale.OvaleData + OvaleState = Ovale.OvaleState +end + function OvalePower:OnEnable() self:RegisterEvent("ACTIVE_TALENT_GROUP_CHANGED", "EventHandler") self:RegisterEvent("PLAYER_ALIVE", "EventHandler") diff --git a/OvaleQueue.lua b/OvaleQueue.lua index 8b3170f..3693a49 100644 --- a/OvaleQueue.lua +++ b/OvaleQueue.lua @@ -9,7 +9,7 @@ -- Double-ended queue. local _, Ovale = ... -local OvaleQueue = Ovale:NewModule("OvaleQueue") +local OvaleQueue = {} Ovale.OvaleQueue = OvaleQueue -- diff --git a/OvaleRecount.lua b/OvaleRecount.lua index d9ff529..01e2c20 100644 --- a/OvaleRecount.lua +++ b/OvaleRecount.lua @@ -14,7 +14,7 @@ Ovale.OvaleRecount = OvaleRecount -- local L = LibStub("AceLocale-3.0"):GetLocale("Recount", true) -local OvaleScore = Ovale.OvaleScore +local OvaleScore = nil local Recount = LibStub("AceAddon-3.0"):GetAddon("Recount", true) -- @@ -47,6 +47,7 @@ end -- function OvaleRecount:OnInitialize() + OvaleScore = Ovale.OvaleScore if Recount then if not L then L = setmetatable({}, { __index = function(t, k) t[k] = k; return k; end }) diff --git a/OvaleRunes.lua b/OvaleRunes.lua index 32feb8a..af69526 100644 --- a/OvaleRunes.lua +++ b/OvaleRunes.lua @@ -17,12 +17,13 @@ local OvaleRunes = Ovale:NewModule("OvaleRunes", "AceEvent-3.0") Ovale.OvaleRunes = OvaleRunes -- -local OvaleData = Ovale.OvaleData -local OvalePaperDoll = Ovale.OvalePaperDoll -local OvalePower = Ovale.OvalePower -local OvaleSpellBook = Ovale.OvaleSpellBook -local OvaleStance = Ovale.OvaleStance -local OvaleState = Ovale.OvaleState +-- Forward declarations for module dependencies. +local OvaleData = nil +local OvalePaperDoll = nil +local OvalePower = nil +local OvaleSpellBook = nil +local OvaleStance = nil +local OvaleState = nil local ipairs = ipairs local pairs = pairs @@ -82,6 +83,16 @@ OvaleRunes.RUNE_TYPE = RUNE_TYPE -- -- +function OvaleRunes:OnInitialize() + -- Resolve module dependencies. + OvaleData = Ovale.OvaleData + OvalePaperDoll = Ovale.OvalePaperDoll + OvalePower = Ovale.OvalePower + OvaleSpellBook = Ovale.OvaleSpellBook + OvaleStance = Ovale.OvaleStance + OvaleState = Ovale.OvaleState +end + function OvaleRunes:OnEnable() if self_class == "DEATHKNIGHT" then -- Initialize rune database. diff --git a/OvaleScore.lua b/OvaleScore.lua index c266472..2af313f 100644 --- a/OvaleScore.lua +++ b/OvaleScore.lua @@ -33,13 +33,16 @@ local OvaleScore = Ovale:NewModule("OvaleScore", "AceEvent-3.0") Ovale.OvaleScore = OvaleScore -- -local OvaleGUID = Ovale.OvaleGUID +-- Forward declarations for module dependencies. +local OvaleGUID = nil local pairs = pairs local strsplit = string.split local API_RegisterAddonMessagePrefix = RegisterAddonMessagePrefix local API_SendAddonMessage = SendAddonMessage +-- Player's GUID. +local self_guid = nil -- self_damageMeter[moduleName] = module local self_damageMeter = {} -- self_damageMeterMethod[moduleName] = methodName or function @@ -56,7 +59,13 @@ local self_scoredSpell = {} -- -- +function OvaleScore:OnInitialize() + -- Resolve module dependencies. + OvaleGUID = Ovale.OvaleGUID +end + function OvaleScore:OnEnable() + self_guid = OvaleGUID:GetGUID("player") API_RegisterAddonMessagePrefix("Ovale") self:RegisterEvent("CHAT_MSG_ADDON") self:RegisterEvent("PLAYER_REGEN_ENABLED") @@ -83,7 +92,7 @@ function OvaleScore:PLAYER_REGEN_ENABLED() -- Broadcast the player's own score for damage meters when combat ends. -- Broadcast message is "score;maxScore;playerGUID" if self_maxScore > 0 then - local message = self_score .. ";" .. self_maxScore .. ";" .. OvaleGUID:GetGUID("player") + local message = self_score .. ";" .. self_maxScore .. ";" .. self_guid API_SendAddonMessage("Ovale", message, "RAID") end end @@ -120,7 +129,7 @@ function OvaleScore:ScoreSpell(spellId) if scored then self_score = self_score + scored self_maxScore = self_maxScore + 1 - self:SendScore(self_playerName, OvaleGUID:GetGUID("player"), scored, 1) + self:SendScore(self_playerName, self_guid, scored, 1) end end end diff --git a/OvaleSkada.lua b/OvaleSkada.lua index 55ec55e..2f3edd8 100644 --- a/OvaleSkada.lua +++ b/OvaleSkada.lua @@ -14,7 +14,8 @@ local OvaleSkada = Skada and Skada:NewModule("Ovale Spell Priority") or Ovale:Ne Ovale.OvaleSkada = OvaleSkada -- -local OvaleScore = Ovale.OvaleScore +-- Forward declarations for module dependencies. +local OvaleScore = nil local ipairs = ipairs local floor = math.floor @@ -36,6 +37,11 @@ end -- -- +function OvaleSkada:OnInitialize() + -- Resolve module dependencies. + OvaleScore = Ovale.OvaleScore +end + function OvaleSkada:OnEnable() self.metadata = { showspots = true } if Skada then diff --git a/OvaleSpellDamage.lua b/OvaleSpellDamage.lua index 24f7a6f..a486c47 100644 --- a/OvaleSpellDamage.lua +++ b/OvaleSpellDamage.lua @@ -15,19 +15,27 @@ local OvaleSpellDamage = Ovale:NewModule("OvaleSpellDamage", "AceEvent-3.0") Ovale.OvaleSpellDamage = OvaleSpellDamage -- -local OvaleGUID = Ovale.OvaleGUID +-- Forward declarations for module dependencies. +local OvaleGUID = nil local select = select local strfind = string.find + +-- Player's GUID. +local self_guid = nil -- -- OvaleSpellDamage.value = {} -- --- Events -- +function OvaleSpellDamage:OnInitialize() + OvaleGUID = Ovale.OvaleGUID +end + function OvaleSpellDamage:OnEnable() + self_guid = OvaleGUID:GetGUID("player") self:RegisterEvent("COMBAT_LOG_EVENT_UNFILTERED") end @@ -38,7 +46,7 @@ end function OvaleSpellDamage:COMBAT_LOG_EVENT_UNFILTERED(event, ...) local time, event, hideCaster, sourceGUID, sourceName, sourceFlags, sourceRaidFlags, destGUID, destName, destFlags, destRaidFlags = select(1, ...) - if sourceGUID == OvaleGUID:GetGUID("player") then + if sourceGUID == self_guid then if strfind(event, "SPELL_PERIODIC_DAMAGE")==1 or strfind(event, "SPELL_DAMAGE")==1 then local spellId, spellName, spellSchool, amount = select(12, ...) self.value[spellId] = amount diff --git a/OvaleState.lua b/OvaleState.lua index 4f87ed2..a62fb8c 100644 --- a/OvaleState.lua +++ b/OvaleState.lua @@ -17,10 +17,12 @@ local OvaleState = Ovale:NewModule("OvaleState") Ovale.OvaleState = OvaleState -- -local OvaleData = Ovale.OvaleData -local OvaleFuture = nil -- forward declaration local OvaleQueue = Ovale.OvaleQueue +-- Forward declarations for module dependencies. +local OvaleData = nil +local OvaleFuture = nil + local pairs = pairs local API_GetTime = GetTime @@ -53,6 +55,7 @@ OvaleState.state = { -- function OvaleState:OnInitialize() -- Resolve module dependencies. + OvaleData = Ovale.OvaleData OvaleFuture = Ovale.OvaleFuture end diff --git a/OvaleSwing.lua b/OvaleSwing.lua index 46083c0..a125213 100644 --- a/OvaleSwing.lua +++ b/OvaleSwing.lua @@ -30,7 +30,8 @@ local OvaleSwing = Ovale:NewModule("OvaleSwing", "AceEvent-3.0") Ovale.OvaleSwing = OvaleSwing -- -local OvaleGUID = Ovale.OvaleGUID +-- Forward declarations for module dependencies. +local OvaleGUID = nil local math_abs = math.abs local unpack = unpack @@ -41,6 +42,9 @@ local API_UnitAttackSpeed = UnitAttackSpeed local API_UnitRangedDamage = UnitRangedDamage local BOOKTYPE_SPELL = BOOKTYPE_SPELL +-- Player's GUID. +local self_guid = nil + local OVALE_AUTOSHOT_NAME = API_GetSpellInfo(75) local OVALE_RESET_SPELLS = {} local OVALE_DELAY_SPELLS = { @@ -62,7 +66,14 @@ OvaleSwing.swingmode = nil -- -- +function OvaleSwing:OnInitialize() + -- Resolve module dependencies. + OvaleGUID = Ovale.OvaleGUID +end + function OvaleSwing:OnEnable() + self_guid = OvaleGUID:GetGUID("player") + self.ohNext = false -- fired when autoattack is enabled/disabled. self:RegisterEvent("PLAYER_ENTER_COMBAT") diff --git a/OvaleTimeSpan.lua b/OvaleTimeSpan.lua index 88d6b1b..30dcb3d 100644 --- a/OvaleTimeSpan.lua +++ b/OvaleTimeSpan.lua @@ -21,7 +21,7 @@ --]] local _, Ovale = ... -local OvaleTimeSpan = Ovale:NewModule("OvaleTimeSpan") +local OvaleTimeSpan = {} Ovale.OvaleTimeSpan = OvaleTimeSpan -- diff --git a/compiler.pl b/compiler.pl index bf8b2f5..e164ff0 100644 --- a/compiler.pl +++ b/compiler.pl @@ -94,7 +94,12 @@ $m{Skada}{get_player} = true; $p{Skada}{current} = true; $p{Skada}{total} = true; +$sp{Ovale}{OvalePool} = true; +$sp{Ovale}{OvalePoolGC} = true; +$sp{Ovale}{OvalePoolRefCount} = true; +$sp{Ovale}{OvaleQueue} = true; $sp{Ovale}{OvaleSkada} = true; +$sp{Ovale}{OvaleTimeSpan} = true; $sp{OvaleCondition}{Compare} = true; $sp{OvaleCondition}{ParseCondition} = true; -- 1.7.9.5