--[[ Clean Minimap By joev (joev@jarhedz.com) This mod provides total control over your minimap including moving it where you want, hiding the Titlebar (and [X] button), the + and - zoom buttons and the Daytime/Clock button on the Minimap and adding the three other compass points. Westpointer functionality (Compass coordinates) is from "EastWest" by Silwyn $Id: CleanMinimap.lua 75 2005-08-30 06:30:20Z joev $ --]] local CMM_VERSION = "2.7"; local CMM_INFO = CMMSTRINGS.appName.." ".. CMM_VERSION.." ".. CMMSTRINGS.by.." ".. CMMSTRINGS.author.name; local CMM_DEBUG = 0; BINDING_HEADER_CLEANMINIMAP = CMMSTRINGS.bindings.title; BINDING_NAME_CLEANMINIMAPTOGGLE = CMMSTRINGS.bindings.toggleOnOff; BINDING_NAME_CLEANMINIMAPOPTIONS = CMMSTRINGS.bindings.toggleOptions; BINDING_NAME_CLEANMINIMAPINCREASEOPACITY = CMMSTRINGS.bindings.increaseOpacity; BINDING_NAME_CLEANMINIMAPDECREASEOPACITY = CMMSTRINGS.bindings.decreaseOpacity; BINDING_NAME_CLEANMINIMAPTOGGLESIZE = CMMSTRINGS.bindings.toggleSize; local DEFAULT_SIZE= 192; local RED = "|cffff0000"; local GREEN = "|cff00ff00"; local BLUE = "|cff0000ff"; local MAGENTA = "|cffff00ff"; local YELLOW = "|cffffff00"; local CYAN = "|cff00ffff"; local WHITE = "|cffffffff"; -- Print Debug info local function Print_Debug(s) if (CMM_DEBUG == 1) then DEFAULT_CHAT_FRAME:AddMessage(s, 1, 1, 0) end end -- Print to chat local function Print_Chat(s) DEFAULT_CHAT_FRAME:AddMessage(s) end function Print_Chat_Table(t) for key,value in t do Print_Chat(value) end end -- SavedVariables CleanMinimapConfig = {}; CleanMinimapConfig.perCharSettings=true; -- Global for unitname CleanMinimap_player = nil; -- Set up namespace. local CleanMinimap = {}; CleanMinimap.player = nil; CleanMinimap.variablesLoaded = false; CleanMinimap.configLoaded = false; CleanMinimap.reset = false; CleanMinimap.sizing = false; CleanMinimap.state = 2; CleanMinimap.iconsPosition = {}; CleanMinimap.iconsPosition["MinimapZoomIn"] = 209; CleanMinimap.iconsPosition["MinimapZoomOut"] = 235; CleanMinimap.iconsPosition["MiniMapMailFrame"] = 168; CleanMinimap.iconsPosition["MiniMapTrackingFrame"] = 37; CleanMinimap.iconsPosition["MiniMapBattlefieldFrame"] = 302; CleanMinimap.iconsPosition["MiniMapMeetingStoneFrame"] = 189; local CleanMinimap_OriginalOnClick; -- Show slash command usage function CleanMinimap.ShowUsage() Print_Chat(CMM_INFO); Print_Chat_Table(CMMSTRINGS.usage); end function CleanMinimap.ShowAuthor() Print_Chat(CMMSTRINGS.appName.." v"..CMM_VERSION.." - "..CMMSTRINGS.authorInfo); Print_Chat(CMMSTRINGS.author.name.." ("..CMMSTRINGS.author.email..")"); Print_Chat(CMMSTRINGS.playsAs); Print_Chat_Table(CMMSTRINGS.author.aliases); end function CleanMinimap.ShowCredits() Print_Chat(CMMSTRINGS.appName.." v"..CMM_VERSION.." - "..CMMSTRINGS.creditsInfo.."\n\n"); for key,value in CMMSTRINGS.credits do Print_Chat(CYAN..value.task); if (value.alias == "") then Print_Chat(YELLOW..value.name.."\n\n"); else Print_Chat(YELLOW..value.name..CMMSTRINGS.aka..value.alias.."\n\n"); end end end -- Setup config information function CleanMinimap.ConfigInit() if (not CleanMinimap.configLoaded) then if (not CleanMinimapConfig[CleanMinimap.player]) then CleanMinimapConfig[CleanMinimap.player] = {}; CleanMinimapConfig[CleanMinimap.player].on = true; CleanMinimapConfig[CleanMinimap.player].alpha = 1.0; CleanMinimapConfig[CleanMinimap.player].left = nil; CleanMinimapConfig[CleanMinimap.player].bottom = nil; CleanMinimapConfig[CleanMinimap.player].scale = nil; CleanMinimapConfig[CleanMinimap.player].origtop = nil; CleanMinimapConfig[CleanMinimap.player].origright = nil; CleanMinimapConfig[CleanMinimap.player].origleft = nil; CleanMinimapConfig[CleanMinimap.player].origbottom = nil; CleanMinimapConfig[CleanMinimap.player].origscale = nil; CleanMinimapConfig[CleanMinimap.player].clock = false; CleanMinimapConfig[CleanMinimap.player].title = false; CleanMinimapConfig[CleanMinimap.player].zoom = false; CleanMinimapConfig[CleanMinimap.player].nsew = false; CleanMinimapConfig[CleanMinimap.player].showButton = true; CleanMinimapConfig[CleanMinimap.player].buttonPos = 90; CleanMinimapConfig[CleanMinimap.player].smallScale = 0.50; CleanMinimapConfig[CleanMinimap.player].largeScale = 2.0; CleanMinimapConfig[CleanMinimap.player].modifierKey = "SHIFT"; CleanMinimapConfig[CleanMinimap.player].iconsPosition = {}; CleanMinimapConfig[CleanMinimap.player].iconsPosition["MinimapZoomIn"] = CleanMinimap.iconsPosition["MinimapZoomIn"]; CleanMinimapConfig[CleanMinimap.player].iconsPosition["MinimapZoomOut"] = CleanMinimap.iconsPosition["MinimapZoomOut"]; CleanMinimapConfig[CleanMinimap.player].iconsPosition["MiniMapMailFrame"] = CleanMinimap.iconsPosition["MiniMapMailFrame"]; CleanMinimapConfig[CleanMinimap.player].iconsPosition["MiniMapTrackingFrame"] = CleanMinimap.iconsPosition["MiniMapTrackingFrame"]; CleanMinimapConfig[CleanMinimap.player].iconsPosition["MiniMapBattlefieldFrame"] = CleanMinimap.iconsPosition["MiniMapBattlefieldFrame"]; CleanMinimapConfig[CleanMinimap.player].iconsPosition["MiniMapMeetingStoneFrame"] = CleanMinimap.iconsPosition["MiniMapMeetingStoneFrame"]; CleanMinimapConfig[CleanMinimap.player].version = tonumber(CMM_VERSION); else if (not CleanMinimapConfig[CleanMinimap.player].version) then CleanMinimapConfig[CleanMinimap.player].version = 1; end if (CleanMinimapConfig[CleanMinimap.player].version < tonumber(CMM_VERSION)) then -- From here on, we only need to add new things per version here. CleanMinimapConfig[CleanMinimap.player].version = tonumber(CMM_VERSION); end end CleanMinimap.configLoaded = true; Print_Debug("Finished Config Loading"); CleanMinimap.SetOn(CleanMinimapConfig[CleanMinimap.player].on); end end function CleanMinimap.Setup() if (CleanMinimap.player ~= nil and CleanMinimap.IsOn() and not CleanMinimap.reset) then Print_Debug("Setting CMM start position"); CleanMinimap.SetClock(CleanMinimapConfig[CleanMinimap.player].clock,CleanMinimapConfig[CleanMinimap.player].alpha); CleanMinimap.SetTitle(CleanMinimapConfig[CleanMinimap.player].title,CleanMinimapConfig[CleanMinimap.player].alpha); CleanMinimap.SetZoom(CleanMinimapConfig[CleanMinimap.player].zoom); CleanMinimap.SetNsew(CleanMinimapConfig[CleanMinimap.player].nsew); CleanMinimap.SetPosition(CleanMinimapConfig[CleanMinimap.player].top,CleanMinimapConfig[CleanMinimap.player].right); CleanMinimap.SetMapScale(CleanMinimapConfig[CleanMinimap.player].scale); if (CleanMinimapConfig[CleanMinimap.player].showButton) then CleanMinimapButton_UpdatePosition(); else CleanMinimapButtonFrame:Hide(); end CleanMinimap.InitIconPositions(true); else Print_Debug("Setting CMM default position"); CleanMinimap.SetClock(true,1.0); CleanMinimap.SetTitle(true,1.0); CleanMinimap.SetZoom(true); CleanMinimap.SetNsew(false); CleanMinimap.SetPosition(CleanMinimapConfig[CleanMinimap.player].origtop,CleanMinimapConfig[CleanMinimap.player].origright); CleanMinimap.SetMapScale(CleanMinimapConfig[CleanMinimap.player].origscale); CleanMinimap.InitIconPositions(false); end end function CleanMinimap.InitIconPositions(manage) if (manage) then CleanMinimap.UpdateIconPosition("MinimapZoomIn",CleanMinimapConfig[CleanMinimap.player].iconsPosition["MinimapZoomIn"]); CleanMinimap.UpdateIconPosition("MinimapZoomOut",CleanMinimapConfig[CleanMinimap.player].iconsPosition["MinimapZoomOut"]); CleanMinimap.UpdateIconPosition("MiniMapMailFrame",CleanMinimapConfig[CleanMinimap.player].iconsPosition["MiniMapMailFrame"]); CleanMinimap.UpdateIconPosition("MiniMapTrackingFrame",CleanMinimapConfig[CleanMinimap.player].iconsPosition["MiniMapTrackingFrame"]); CleanMinimap.UpdateIconPosition("MiniMapBattlefieldFrame",CleanMinimapConfig[CleanMinimap.player].iconsPosition["MiniMapBattlefieldFrame"]); CleanMinimap.UpdateIconPosition("MiniMapMeetingStoneFrame",CleanMinimapConfig[CleanMinimap.player].iconsPosition["MiniMapMeetingStoneFrame"]); else CleanMinimap.UpdateIconPosition("MinimapZoomIn",CleanMinimap.iconsPosition["MinimapZoomIn"]); CleanMinimap.UpdateIconPosition("MinimapZoomOut",CleanMinimap.iconsPosition["MinimapZoomOut"]); CleanMinimap.UpdateIconPosition("MiniMapMailFrame",CleanMinimap.iconsPosition["MiniMapMailFrame"]); CleanMinimap.UpdateIconPosition("MiniMapTrackingFrame",CleanMinimap.iconsPosition["MiniMapTrackingFrame"]); CleanMinimap.UpdateIconPosition("MiniMapBattlefieldFrame",CleanMinimap.iconsPosition["MiniMapBattlefieldFrame"]); CleanMinimap.UpdateIconPosition("MiniMapMeetingStoneFrame",CleanMinimap.iconsPosition["MiniMapMeetingStoneFrame"]); end end function CleanMinimap.UpdateIconPosition(frameName, position) getglobal(frameName):ClearAllPoints(); getglobal(frameName):SetPoint( "TOPLEFT", "Minimap", "TOPLEFT", 52 - (80 * cos(position)), (80 * sin(position)) - 52 ); end function CleanMinimap.doZoomIn() if (Minimap:GetZoom() == 5) then Minimap:SetZoom(5); else Minimap:SetZoom(Minimap:GetZoom() + 1); end end function CleanMinimap.doZoomOut() if (Minimap:GetZoom() == 0) then Minimap:SetZoom(0); else Minimap:SetZoom(Minimap:GetZoom() - 1); end end function CleanMinimap.doZoomAlphaIn() CleanMinimap.SetAlpha((CleanMinimapConfig[CleanMinimap.player].alpha*100) - 5); end function CleanMinimap.doZoomAlphaOut() CleanMinimap.SetAlpha((CleanMinimapConfig[CleanMinimap.player].alpha*100) + 5); end function CleanMinimap.IsOn() if (CleanMinimap.reset) then return true; -- Always return true on a reset. elseif (MinimapCluster:IsVisible()) then if (CleanMinimap.player) then return CleanMinimapConfig[CleanMinimap.player].on; else return false; end else return false; end end function CleanMinimap.SetOn(val) CleanMinimapConfig[CleanMinimap.player].on = val; if (not val) then CleanMinimap.reset = true; end; CleanMinimap.Setup(); CleanMinimap.reset = false; end function CleanMinimap.SetPosition(top,right) if (CleanMinimap.IsOn()) then if (not CleanMinimap.reset) then CleanMinimapConfig[CleanMinimap.player].top = top; CleanMinimapConfig[CleanMinimap.player].right= right; end if (top ~= nil and right ~= nil) then Print_Debug("Setting top="..CleanMinimapConfig[CleanMinimap.player].top..",right="..CleanMinimapConfig[CleanMinimap.player].right); MinimapCluster:ClearAllPoints(); MinimapCluster:SetPoint("TOPRIGHT", "UIParent", "TOPRIGHT",right,top); end end end function CleanMinimap.SetMapScale(scale) if (CleanMinimap.IsOn()) then if (not CleanMinimap.reset) then CleanMinimapConfig[CleanMinimap.player].scale = scale; end if (scale ~= nil) then Print_Debug("Setting scale to: "..scale); MinimapCluster:SetScale(scale); end end end function CleanMinimap.SetScale(scale) -- sets the scale without saving it if (CleanMinimap.IsOn()) then if (scale ~= nil) then Print_Debug("Setting scale to: "..scale); MinimapCluster:SetScale(scale*CleanMinimapConfig[CleanMinimap.player].scale); Minimap:SetScale(scale*CleanMinimapConfig[CleanMinimap.player].scale); end end end function CleanMinimap.SetClock(val,alpha) if (CleanMinimap.IsOn()) then if (alpha == nil) then alpha = CleanMinimapConfig[CleanMinimap.player].alpha; end if (not CleanMinimap.reset) then CleanMinimapConfig[CleanMinimap.player].clock = val; end; if (val) then GameTimeFrame:Show(); -- This needs alpha to be set because it's anchored to the cluster, not the minimap itself. GameTimeFrame:SetAlpha(alpha); else GameTimeFrame:Hide(); end end end function CleanMinimap.ToggleClock() if (CleanMinimapConfig[CleanMinimap.player].clock) then CleanMinimap.SetClock(false,nil); else CleanMinimap.SetClock(true,nil); end end function CleanMinimap.SetTitle(val,alpha) if (CleanMinimap.IsOn()) then if (alpha == nil) then alpha = CleanMinimapConfig[CleanMinimap.player].alpha; end if (not CleanMinimap.reset) then CleanMinimapConfig[CleanMinimap.player].title = val; end if (val) then MinimapCluster:SetAlpha(alpha); MinimapToggleButton:Enable(); MinimapZoneTextButton:Enable(); GameTimeFrame:SetAlpha(alpha); Minimap:SetAlpha(alpha); else MinimapCluster:SetAlpha(0.0); MinimapToggleButton:Disable(); MinimapZoneTextButton:Disable(); GameTimeFrame:SetAlpha(alpha); Minimap:SetAlpha(alpha); end end end function CleanMinimap.ToggleTitle() if (CleanMinimapConfig[CleanMinimap.player].title) then CleanMinimap.SetTitle(false,nil); else CleanMinimap.SetTitle(true,nil); end end function CleanMinimap.SetZoom(val) if (CleanMinimap.IsOn()) then if (not CleanMinimap.reset) then CleanMinimapConfig[CleanMinimap.player].zoom = val; end if (val) then MinimapZoomIn:Show(); MinimapZoomOut:Show(); else MinimapZoomIn:Hide(); MinimapZoomOut:Hide(); end end end function CleanMinimap.ToggleZoom() if (CleanMinimapConfig[CleanMinimap.player].zoom) then CleanMinimap.SetZoom(false); else CleanMinimap.SetZoom(true); end end function CleanMinimap.SetNsew(val) if (CleanMinimap.IsOn()) then if (not CleanMinimap.reset) then CleanMinimapConfig[CleanMinimap.player].nsew = val end if (val) then WestPointer:Show(); else WestPointer:Hide(); end end end function CleanMinimap.ToggleNsew() if (CleanMinimapConfig[CleanMinimap.player].nsew) then CleanMinimap.SetNsew(false); else CleanMinimap.SetNsew(true); end end function CleanMinimap.SetAlpha(val, silent) if (CleanMinimap.IsOn()) then if (val ~= nil) then if (val < 1) then val = 1; end if (val > 100) then val = 100; end CleanMinimapConfig[CleanMinimap.player].alpha = val/100; Minimap:SetAlpha(val/100); --CleanMinimap.Setup(); end end end function CleanMinimap.SetLargeSize(val, silent) if (CleanMinimap.IsOn()) then if (val ~= nil) then if (val < 100) then val = 100; end if (val > 300) then val = 300; end CleanMinimapConfig[CleanMinimap.player].largeScale = val/100; end end end function CleanMinimap.SetSmallSize(val, silent) if (CleanMinimap.IsOn()) then if (val ~= nil) then if (val < 50) then val = 50; end if (val > 100) then val = 100; end CleanMinimapConfig[CleanMinimap.player].smallScale = val/100; end end end function CleanMinimap.ResetAll() Print_Debug("Resetting"); Print_Debug(CleanMinimap.player); Print_Debug(CleanMinimapConfig[CleanMinimap.player].origscale); CleanMinimap.SetMapScale(CleanMinimapConfig[CleanMinimap.player].origscale); CleanMinimap.SetPosition(CleanMinimapConfig[CleanMinimap.player].origtop, CleanMinimapConfig[CleanMinimap.player].origright); end function CleanMinimap.ModifierKeyIsDown() local retval = false; if ((IsShiftKeyDown() and CleanMinimapConfig[CleanMinimap.player].modifierKey == "SHIFT") or (IsControlKeyDown() and CleanMinimapConfig[CleanMinimap.player].modifierKey == "CTRL") or (IsAltKeyDown() and CleanMinimapConfig[CleanMinimap.player].modifierKey == "ALT")) then retval = true; end return retval; end --[[ Event handlers These functions are global and are called by the UI --]] function CleanMinimap_OnLoad() this:RegisterEvent("VARIABLES_LOADED"); this:RegisterEvent("PLAYER_ENTERING_WORLD"); -- Slash Commands SlashCmdList["CMM"] = CleanMinimap_Slash; SLASH_CMM1 = "/cleanminimap"; SLASH_CMM2 = "/cmm"; end function CleanMinimap_OnEvent() if (event == "VARIABLES_LOADED") then -- Hook the Minimap_OnClick function CleanMinimap_OriginalOnClick = Minimap_OnClick; Minimap_OnClick = CleanMinimap_OnClick; -- Init Config CleanMinimap.variablesLoaded = true; Print_Debug("Variables Loaded"); if (CleanMinimap.player) then CleanMinimap.ConfigInit(); end -- Add myAddOns support if myAddOnsList then myAddOnsList.CleanMinimap = {name = "Clean Minimap", description = CMMSTRINGS.myAddonsDescription, version = CMM_VERSION, category = MYADDONS_CATEGORY_MAP, frame = "CleanMinimap", optionsframe = "CleanMinimapOptionsFrame"}; end if ButtonHole then ButtonHole.application.RegisterMod({id="CLEANMINIMAP", name="Clean Minimap", tooltip=CMMSTRINGS.myAddonsDescription, buttonFrame="CleanMinimapButtonFrame", updateFunction="CleanMinimapButton_UpdatePosition"}); end elseif( event == "PLAYER_ENTERING_WORLD" and not CleanMinimap.player) then local name = UnitName("player"); if (CleanMinimapConfig.perCharSettings == nil) then CleanMinimapConfig.perCharSettings = false; end if (CleanMinimapConfig.perCharSettings) then Print_Debug("Setting name to default"); name = "default"; end if( name and name ~= UNKNOWNOBJECT ) then CleanMinimap.player = name; CleanMinimap_player = name; Print_Debug("Unit Name: player = "..CleanMinimap.player); if (CleanMinimap.variablesLoaded) then CleanMinimap.ConfigInit(); end end end end function CleanMinimap_OnMouseWheel(value) if (CleanMinimap.IsOn()) then if (IsShiftKeyDown()) then if ( value > 0 ) then CleanMinimap.doZoomAlphaIn() elseif ( value < 0 ) then CleanMinimap.doZoomAlphaOut() end else if ( value > 0 ) then CleanMinimap.doZoomIn() elseif ( value < 0 ) then CleanMinimap.doZoomOut() end end end end function CleanMinimap_StartMoving() if (CleanMinimap.IsOn()) then if (CleanMinimapConfig[CleanMinimap.player].origright == nil) then -- This is the first move therefore record where we started from. local right = MinimapCluster:GetRight() - UIParent:GetRight(); local top = MinimapCluster:GetTop() - UIParent:GetTop(); if (right > 0 ) then right = 0; end if (top > 0 ) then top = 0; end CleanMinimapConfig[CleanMinimap.player].origright = right; CleanMinimapConfig[CleanMinimap.player].origtop = top; CleanMinimapConfig[CleanMinimap.player].origscale = MinimapCluster:GetScale(); end MinimapCluster:SetMovable(true); MinimapCluster:SetResizable(true); CleanMinimapMover_Attach(CleanMinimapMoverFrame,MinimapCluster); end end function CleanMinimap_StopMoving() if (CleanMinimap.IsOn()) then MinimapCluster:SetMovable(false); MinimapCluster:SetResizable(false); local right = MinimapCluster:GetRight() - UIParent:GetRight(); local top = MinimapCluster:GetTop() - UIParent:GetTop(); Print_Debug("top ="..top..", right="..right); if (right > 0 ) then right = 0; end if (top > 0 ) then top = 0; end CleanMinimap.SetPosition(top,right); CleanMinimap.SetMapScale(MinimapCluster:GetScale()); end end function CleanMinimap_OnClick(button) if (CleanMinimap.ModifierKeyIsDown()) then CleanMinimap_StartMoving(); else CleanMinimap_OriginalOnClick(button); end end ---------------------------------------------------------------------------------------------------------------------------------- --[[ External functions These functions are global and can be called by other mods --]] function CleanMinimap_GetAlpha() if (CleanMinimap.IsOn()) then return CleanMinimapConfig[CleanMinimap.player].alpha; else return MinimapCluster:GetAlpha(); end end function CleanMinimap_GetClock() if (CleanMinimap.IsOn()) then return CleanMinimapConfig[CleanMinimap.player].clock; else return GameTimeFrame:IsVisible(); end end function CleanMinimap_GetZoom() if (CleanMinimap.IsOn()) then return CleanMinimapConfig[CleanMinimap.player].zoom; else return MinimapZoomIn:IsVisible(); end end function CleanMinimap_GetTitle() if (CleanMinimap.IsOn()) then return CleanMinimapConfig[CleanMinimap.player].title; else return MinimapCluster:IsVisible(); end end function CleanMinimap_GetNsew() if (CleanMinimap.IsOn()) then return CleanMinimapConfig[CleanMinimap.player].nsew; else return WestPointer:IsVisible(); end end function CleanMinimap_IsOn() return CleanMinimap.IsOn(); end function CleanMinimap_Toggle() if (CleanMinimap.IsOn()) then CleanMinimap.SetOn(false); else CleanMinimap.SetOn(true); end end function CleanMinimap_ToggleClock() CleanMinimap.ToggleClock(); end function CleanMinimap_ToggleZoom() CleanMinimap.ToggleZoom(); end function CleanMinimap_ToggleNsew() CleanMinimap.ToggleNsew(); end function CleanMinimap_ToggleTitle() CleanMinimap.ToggleTitle(); end -- Handle slash commands function CleanMinimap_Slash(msg) if msg == nil or msg == "" then msg = "help"; end msg = strlower(msg); local args = {n=0} local function helper(word) table.insert(args, word) end string.gsub(msg, "[_\.%w]+", helper); if args[1] == 'on' then CleanMinimap.SetOn(true); elseif args[1] == 'off' then CleanMinimap.SetOn(false); elseif args[1] == 'reset' then CleanMinimap.ResetAll(); elseif args[1] == 'author' then CleanMinimap.ShowAuthor(); elseif args[1] == 'credits' then CleanMinimap.ShowCredits(); elseif args[1] == 'config' then CleanMinimapOptions_Toggle(); else CleanMinimap.ShowUsage(); end end function CleanMinimap_IncreaseOpacity() CleanMinimap.SetAlpha(CleanMinimapConfig[CleanMinimap.player].alpha*100 + 10) end function CleanMinimap_DecreaseOpacity() CleanMinimap.SetAlpha(CleanMinimapConfig[CleanMinimap.player].alpha*100 - 10) end function CleanMinimap_SilentSetAlpha(val) if (val ~= nil) then CleanMinimap.SetAlpha(val,true); end end function CleanMinimap_SilentSetLargeSize(val) if (val ~= nil) then CleanMinimap.SetLargeSize(val,true); end end function CleanMinimap_SilentSetSmallSize(val) if (val ~= nil) then CleanMinimap.SetSmallSize(val,true); end end function CleanMinimap_ToggleSize() CleanMinimap.state = CleanMinimap.state + 1; if (CleanMinimap.state > 3) then CleanMinimap.state = 1; end Print_Debug("Map state = "..CleanMinimap.state); if (CleanMinimap.state == 1) then CleanMinimap.SetScale(CleanMinimapConfig[CleanMinimap.player].smallScale); elseif (CleanMinimap.state == 3) then CleanMinimap.SetScale(CleanMinimapConfig[CleanMinimap.player].largeScale); else Print_Debug("Map state set to default"); CleanMinimap.SetScale(1); end -- reset position CleanMinimap.SetPosition(CleanMinimapConfig[CleanMinimap.player].top,CleanMinimapConfig[CleanMinimap.player].right); end function CleanMinimap_SetModifier(keyname) CleanMinimapConfig[CleanMinimap.player].modifierKey = keyname; end function CleanMinimap_SetOneConfig(toggle) if (toggle) then CleanMinimapConfig.perCharSettings = true; CleanMinimap.player = "default"; CleanMinimap_player = "default"; else CleanMinimapConfig.perCharSettings = false; CleanMinimap.player = UnitName("player"); CleanMinimap_player = UnitName("player"); end CleanMinimap.configLoaded = false; CleanMinimap.ConfigInit(); if (CleanMinimapOptionsFrame:IsVisible()) then CleanMinimapOptions_Refresh(); end if (CleanMinimapButtonFrame:IsVisible()) then CleanMinimapButton_UpdatePosition(); end end function CleanMinimap_SetIconPosition(frameName, position) CleanMinimapConfig[CleanMinimap.player].iconsPosition[frameName] = position; CleanMinimap.UpdateIconPosition(frameName, position); end