From c91f98ad9a702f9696d7e0634b72492fcf880df3 Mon Sep 17 00:00:00 2001 From: Ahmil Jilani Date: Wed, 30 Nov 2011 05:12:00 -0500 Subject: [PATCH] 2.4.1 --- SuperDuperMacro/SuperDuperMacro.toc | 4 +- SuperDuperMacro/SuperDuperMacro_Core.lua | 49 ++++++++++--------- SuperDuperMacro/SuperDuperMacro_Frames.lua | 4 +- SuperDuperMacro/SuperDuperMacro_Interface.lua | 47 ++++++++++-------- SuperDuperMacro/SuperDuperMacro_Sharing.lua | 3 +- SuperDuperMacro/sdm Readme.txt | 5 +- 6 files changed, 62 insertions(+), 50 deletions(-) diff --git a/SuperDuperMacro/SuperDuperMacro.toc b/SuperDuperMacro/SuperDuperMacro.toc index 8326c84..060e36f 100644 --- a/SuperDuperMacro/SuperDuperMacro.toc +++ b/SuperDuperMacro/SuperDuperMacro.toc @@ -1,8 +1,8 @@ -## Interface: 40200 +## Interface: 40300 ## Title : Super Duper Macro ## Notes: Enables creation of incredibly long macros. ## Author: hypehuman -## Version: 2.4 +## Version: 2.4.1 ## SavedVariables: sdm_version, sdm_listFilters, sdm_iconSize, sdm_mainContents, sdm_macros SuperDuperMacro_Core.lua SuperDuperMacro_Interface.lua diff --git a/SuperDuperMacro/SuperDuperMacro_Core.lua b/SuperDuperMacro/SuperDuperMacro_Core.lua index 2196322..d6bd8e5 100644 --- a/SuperDuperMacro/SuperDuperMacro_Core.lua +++ b/SuperDuperMacro/SuperDuperMacro_Core.lua @@ -1,4 +1,5 @@ -sdm_printPrefix = "|cffff7700Super Duper Macro|r - " +sdm_printPrefix = "|cffff7700Super Duper Macro|r - " +sdm_defaultIcon = "INV_MISC_QUESTIONMARK" sdm_countUpdateMacrosEvents=0 sdm_validChars = {1,2,3,4,5,6,7,8,11,12,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255} sdm_thisChar = {name=UnitName("player"), realm=GetRealmName()} @@ -30,26 +31,35 @@ sdm_eventFrame:SetScript("OnEvent", function (self, event, ...) sdm_mainFrameTitle:SetText("Super Duper Macro "..sdm_version) sdm_eventFrame:UnregisterEvent(event) if (not sdm_macros) then - sdm_macros={} --type tokens: "b": button macro. "f": floating macro. "s": scripts. "c": containers (folders) - elseif sdm_CompareVersions(oldVersion,"2.2")==2 then + sdm_macros={} --type tokens: "b": button macro. "f": floating macro. "s": scripts. "c": containers (folders) + end + -- when updating versions, make sure that the saved data are appropriately updated. + if sdm_CompareVersions(oldVersion, sdm_version) == 2 then + if sdm_CompareVersions(oldVersion,"1.6")==2 then -- Hopefully nobody is upgrading from a version this old. If they are, they should download 2.1 and run that once before upgrading to 2.2. + sdm_macros={} + end if sdm_CompareVersions(oldVersion,"1.6.1")==2 then - if sdm_CompareVersions(oldVersion,"1.6")==2 then -- Hopefully nobody is upgrading from a version this old. If they are, they should download 2.1 and run that once before upgrading to 2.2. - sdm_macros={} - end - --when updating from before 1.6.1: for i,v in pairs(sdm_macros) do if v.buttonName=="" then v.buttonName=" " end end end - --when updating from before 2.2: - for i,v in pairs(sdm_macros) do - if v.character then - v.characters = {v.character} - v.character = nil + if sdm_CompareVersions(oldVersion,"2.2")==2 then + for i,v in pairs(sdm_macros) do + if v.character then + v.characters = {v.character} + v.character = nil + end end end + if sdm_CompareVersions(oldVersion,"2.4.1")==2 then + for _,v in pairs(sdm_macros) do + if v.icon then + v.icon = sdm_defaultIcon + end + end + end end --Saving strips away numeric keys. Now we have to put the macros back into their proper indices. local savedMacros = sdm_macros @@ -349,7 +359,7 @@ function sdm_CreateNew(type, name, character) --returns the mTab of the new macr mTab.open = true mTab.contents = {} else - mTab.icon=1 + mTab.icon = sdm_defaultIcon if sdm_receiving and sdm_receiving.text then mTab.text=sdm_receiving.text mTab.icon=sdm_receiving.icon @@ -394,16 +404,11 @@ function sdm_UpgradeMacro(index) -- Upgrades the given standard macro to a Super end local body = GetMacroBody(index) EditMacro(index, nil, nil, "#sdm"..sdm_numToChars(sdm_GetEmptySlot()).."\n#placeholder") -- let SDM know that this is the macro to edit - local _, texture = GetMacroInfo(index) -- This must be done AFTER the macro body is edited, or the question mark could show up as something else. - local iconIndex = 1 - for iii = 1,GetNumMacroIcons() do - if GetMacroIconInfo(iii) == texture then - iconIndex = iii - break - end - end + local _, texture = GetMacroInfo(index) -- This must be done AFTER the macro body is edited, or the question mark could show up as something else. + texture = texture:sub(17) -- remove the "INTERFACE\\ICONS\\" + print(texture) local newMacro = sdm_CreateNew("b", name, character) - newMacro.icon = iconIndex + newMacro.icon = texture sdm_Edit(newMacro, body) return newMacro end diff --git a/SuperDuperMacro/SuperDuperMacro_Frames.lua b/SuperDuperMacro/SuperDuperMacro_Frames.lua index 5a70d81..f4b84e9 100644 --- a/SuperDuperMacro/SuperDuperMacro_Frames.lua +++ b/SuperDuperMacro/SuperDuperMacro_Frames.lua @@ -12,7 +12,7 @@ f:ClearAllPoints() f:SetPoint("TOPLEFT", 0, -104) sdm_MakeDraggable(f) f:SetScript("OnShow", function(self) - PlaySound "igCharacterInfoOpen" + PlaySound "igCharacterInfoOpen" sdm_UpdateList() end) f:SetScript("OnHide", function(self) @@ -346,7 +346,7 @@ f:SetBackdrop({ } }) f:SetScript("OnShow", function(self) - sdm_OnShow_changeIconFrame(self, sdm_macros[sdm_currentEdit]) + sdm_OnShow_changeIconFrame(self) end) f:SetScript("OnHide", function(self) sdm_OnHide_changeIconFrame(self) diff --git a/SuperDuperMacro/SuperDuperMacro_Interface.lua b/SuperDuperMacro/SuperDuperMacro_Interface.lua index 7a7ae5b..0f04972 100644 --- a/SuperDuperMacro/SuperDuperMacro_Interface.lua +++ b/SuperDuperMacro/SuperDuperMacro_Interface.lua @@ -427,18 +427,16 @@ function sdm_UpdateList() end sdm_SetTooltip(listItem, "Alt-click for folder options and instructions") else - if mTab.icon==1 then - if mTab.type=="b" and sdm_UsedByThisChar(mTab) then - _,texture = GetMacroInfo(sdm_GetMacroIndex(mTab.ID)) - else - texture = nil - end + if mTab.icon:upper() == sdm_defaultIcon and mTab.type=="b" and (sdm_UsedByThisChar(mTab)) then + _,texture = GetMacroInfo(sdm_GetMacroIndex(mTab.ID)) else - texture = GetMacroIconInfo(mTab.icon) + texture = "INTERFACE\\ICONS\\"..mTab.icon + end + if texture then + listItem.icon:SetTexture(texture) + listItem.icon:SetWidth(sdm_iconSize) + listItem.icon:SetHeight(sdm_iconSize) end - listItem.icon:SetTexture(texture) - listItem.icon:SetWidth(sdm_iconSize) - listItem.icon:SetHeight(sdm_iconSize) listItem.slotIcon:SetWidth(sdm_iconSize*64/36) listItem.slotIcon:SetHeight(sdm_iconSize*64/36) if mTab.type=="b" and sdm_UsedByThisChar(mTab) then @@ -602,12 +600,15 @@ function sdm_GetColor(type, plainString)--if inputString is passed, it will retu end end -function sdm_OnShow_changeIconFrame(f) - local mTab = sdm_macros[sdm_currentEdit] - if not sdm_macroUILoaded then - MacroFrame_LoadUI() +function sdm_OnShow_changeIconFrame(f) + if not sdm_macroUILoaded then + MacroFrame_LoadUI() + MacroPopupFrame:Show() + else + RefreshPlayerSpellIconInfo() -- You gotta do this, or there will be lots of errors! end - MacroPopupFrame.selectedIcon=mTab.icon + local mTab = sdm_macros[sdm_currentEdit] + -- NYI: here would be a good place to select the current icon and scroll to that place in the list f.prevonshow=MacroPopupFrame:GetScript("OnShow") MacroPopupFrame:SetScript("OnShow", MacroPopupFrame_Update) f.prevonenter=MacroPopupEditBox:GetScript("OnEnterPressed") @@ -621,10 +622,10 @@ function sdm_OnShow_changeIconFrame(f) f.prevpoints={} for i=1,MacroPopupFrame:GetNumPoints() do f.prevpoints[i]={MacroPopupFrame:GetPoint(i)} - end + end MacroPopupFrame:ClearAllPoints() - MacroPopupFrame:SetParent(f) - MacroPopupFrame:SetPoint("BOTTOM") + --MacroPopupFrame:SetParent(f) + MacroPopupFrame:SetPoint("BOTTOM", f) MacroPopupFrame:Show() _,_,_,_,f.fontstring = MacroPopupFrame:GetRegions() f.fontstring:SetText(" Different name on button:") @@ -656,7 +657,7 @@ function sdm_OnHide_changeIconFrame(f) MacroPopupEditBox:SetAutoFocus(true) MacroPopupFrame.mode=f.prevmode MacroPopupFrame:ClearAllPoints() - MacroPopupFrame:SetParent(UIParent) + --MacroPopupFrame:SetParent(UIParent) for _,point in ipairs(f.prevpoints) do MacroPopupFrame:SetPoint(point[1], point[2], point[3], point[4], point[5]) end @@ -670,11 +671,15 @@ function sdm_OnHide_changeIconFrame(f) MacroPopupFrame:Hide() MacroPopupFrame_buttonTextCheckBox:Hide() end + +function sdm_GetSelectedIcon() + return GetSpellorMacroIconInfo(MacroPopupFrame.selectedIcon) +end function sdm_ChangeIconOkayed() local mTab = sdm_macros[sdm_currentEdit] local nameInputted = sdm_changeNameInput:GetText() - local iconInputted = MacroPopupFrame.selectedIcon + local iconInputted = sdm_GetSelectedIcon() if (not nameInputted) or nameInputted=="" or (mTab.type~="c" and not iconInputted) then return end @@ -696,7 +701,7 @@ function sdm_ChangeIconOkayed() mTab.buttonName=nil end if mTab.type~="c" then - mTab.icon = iconInputted + mTab.icon = iconInputted end sdm_changeIconFrame:Hide() if sdm_UsedByThisChar(mTab) and (mTab.type=="b" or mTab.type=="f") then diff --git a/SuperDuperMacro/SuperDuperMacro_Sharing.lua b/SuperDuperMacro/SuperDuperMacro_Sharing.lua index d9b6977..c8f7043 100644 --- a/SuperDuperMacro/SuperDuperMacro_Sharing.lua +++ b/SuperDuperMacro/SuperDuperMacro_Sharing.lua @@ -167,13 +167,12 @@ end function sdm_ReceiveLine(line, send1) --print("debug: in recline") if sdm_receiving.first and send1 then --this is the first line - --print("debug: is firstline") sdm_receiving.nameAndText, sdm_receiving.textLen, sdm_receiving.playerNameLen, sdm_receiving.perCharacter, sdm_receiving.icon, sdm_receiving.type, sdm_receiving.minVersion, sdm_receiving.sendersVersion = sdm_SplitString(line, ",", 7) sdm_receiving.perCharacter = (sdm_receiving.perCharacter~="nil") if sdm_receiving.icon=="nil" then sdm_receiving.icon = nil else - sdm_receiving.icon = 0 + sdm_receiving.icon + sdm_receiving.icon = sdm_receiving.icon end sdm_receiving.textLen = 0 + sdm_receiving.textLen sdm_receiving.playerNameLen = 0 + sdm_receiving.playerNameLen diff --git a/SuperDuperMacro/sdm Readme.txt b/SuperDuperMacro/sdm Readme.txt index 104aec7..d39269b 100644 --- a/SuperDuperMacro/sdm Readme.txt +++ b/SuperDuperMacro/sdm Readme.txt @@ -1,5 +1,5 @@ Super Duper Macro -version 2.4 +version 2.4.1 by hypehuman Check for updates at http://www.wowinterface.com/downloads/info10496 @@ -25,6 +25,9 @@ Special thanks to: Change Log +2.4.1 (11/30/11) +¥ÊUpdated for version 4.0 - you will lose any custom icons for your macros. Sorry! + 2.4 (11/20/11) ¥ÊFixed the Send/Receive feature; now you can share macros with your friends again, as long as you are both using the latest version. ¥ Fixed a bug where buttons on the SDM frame would sometimes stretch away