- Add explict flag to check for addon conflicts (CTMod)
urnati [01-15-24 - 13:49]
- Add explict flag to check for addon conflicts (CTMod)
diff --git a/TitanLocation/TitanLocation.lua b/TitanLocation/TitanLocation.lua
index c5201da..536fa3a 100755
--- a/TitanLocation/TitanLocation.lua
+++ b/TitanLocation/TitanLocation.lua
@@ -13,8 +13,9 @@
local _G = getfenv(0);
local TITAN_LOCATION_ID = "Location";
local TITAN_BUTTON = "TitanPanel"..TITAN_LOCATION_ID.."Button"
-local OFFSET_X = 0.0022 -- 0.0022;
-local OFFSET_Y = -0.0262 -- -0.0262;
+local TITAN_MAP_FRAME = "TitanMapFrame"
+
+local addon_conflict = false -- used for addon conflicts
local cachedX = 0;
local cachedY = 0;
local updateTable = {TITAN_LOCATION_ID, TITAN_PANEL_UPDATE_BUTTON};
@@ -250,40 +251,44 @@ end
-- Used on update to refresh and on hide to clear the text
--]]
local function CoordFrames(action)
- local frame = _G["TitanMapFrame"]
- local show_on_map = (TitanGetVar(TITAN_LOCATION_ID, "ShowCoordsOnMap") and true or false)
- if show_on_map then
- if action == "start" then
- local function updateFunc()
- TitanMapFrame_OnUpdate(frame, 0.07); -- simulating an OnUpdate call
- end
- frame:SetScript("OnShow", function()
- frame.updateTicker = frame.updateTicker or C_Timer.NewTicker(0.07, updateFunc);
- if WorldMapFrame:IsMaximized() then
- WorldMapFrame.TitanSize = "large"
- WorldMapFrame.TitanSizePrev = "none"
- else
- WorldMapFrame.TitanSize = "small"
- WorldMapFrame.TitanSizePrev = "none"
- end
- end);
- frame:SetScript("OnHide", function()
- if (frame.updateTicker) then
- frame.updateTicker:Cancel();
- frame.updateTicker = nil;
+ if addon_conflict then
+ -- do not attempt coords
+ else
+ local frame = _G[TITAN_MAP_FRAME]
+ local show_on_map = (TitanGetVar(TITAN_LOCATION_ID, "ShowCoordsOnMap") and true or false)
+ if show_on_map then
+ if action == "start" then
+ local function updateFunc()
+ TitanMapFrame_OnUpdate(frame, 0.07); -- simulating an OnUpdate call
end
- end);
- elseif action == "stop" then
- -- stop timer, hooks are not needed
- frame:SetScript("OnShow", nil)
- frame:SetScript("OnHide", nil)
- SetCoordText("", "") -- cleanup
+ frame:SetScript("OnShow", function()
+ frame.updateTicker = frame.updateTicker or C_Timer.NewTicker(0.07, updateFunc);
+ if WorldMapFrame:IsMaximized() then
+ WorldMapFrame.TitanSize = "large"
+ WorldMapFrame.TitanSizePrev = "none"
+ else
+ WorldMapFrame.TitanSize = "small"
+ WorldMapFrame.TitanSizePrev = "none"
+ end
+ end);
+ frame:SetScript("OnHide", function()
+ if (frame.updateTicker) then
+ frame.updateTicker:Cancel();
+ frame.updateTicker = nil;
+ end
+ end);
+ elseif action == "stop" then
+ -- stop timer, hooks are not needed
+ frame:SetScript("OnShow", nil)
+ frame:SetScript("OnHide", nil)
+ SetCoordText("", "") -- cleanup
+ else
+ -- action unknown ???
+ end
else
- -- action unknown ???
+ -- user did not request so save a few cycles
end
- else
- -- user did not request so save a few cycles
end
if debug_flow then
@@ -291,6 +296,7 @@ local function CoordFrames(action)
"CoordFrames"
.." "..tostring(action)..""
.." "..tostring(show_on_map)..""
+ .." "..tostring(addon_conflict)..""
debug_msg(msg)
else
-- not requested
@@ -305,12 +311,13 @@ end
-- **************************************************************************
--]]
local function CreateMapFrames()
- if _G[TitanMapFrame] then
+ if _G[TITAN_MAP_FRAME] then
return -- if already created
end
-- avoid an addon conflict
if (_G["CT_MapMod"]) then
+ addon_conflict = true
return;
end
@@ -324,7 +331,7 @@ local function CreateMapFrames()
end
-- create the frame to hold the font strings, and simulate an "OnUpdate" script handler using C_Timer for efficiency
- local frame = CreateFrame("FRAME", "TitanMapFrame", WorldMapFrame)
+ local frame = CreateFrame("FRAME", TITAN_MAP_FRAME, WorldMapFrame)
frame:SetFrameStrata("DIALOG") -- DF need to raise the strata to be seen
-- create the font strings and update their position based in minimizing/maximizing the main map
@@ -699,9 +706,6 @@ end
-- **************************************************************************
--]]
function TitanMapFrame_OnUpdate(self, elapsed)
- -- using :Hide / :Show prevents coords from running
- -- TitanMapFrame:Hide() -- hide parent
-
-- Determine the text to show for player coords
local cursorLocationText = ""