From 32b8ec6458f7f18b14bb3f439ae7ffcb6cc0eeee Mon Sep 17 00:00:00 2001 From: Alar of Daggerspine Date: Mon, 6 Jul 2015 00:17:18 +0200 Subject: [PATCH] Moved override function to common space Signed-off-by: Alar of Daggerspine --- GarrisonCommander.lua | 39 ++++++++++----------------------------- Init.lua | 22 ++++++++++++++++++++-- 2 files changed, 30 insertions(+), 31 deletions(-) diff --git a/GarrisonCommander.lua b/GarrisonCommander.lua index 7f3e58d..b148f58 100644 --- a/GarrisonCommander.lua +++ b/GarrisonCommander.lua @@ -24,8 +24,8 @@ local minHeight local addon=addon --#self ns.bigscreen=true -- Blizzard functions override support -local orig={} --#originals -local over={} --#overridden +local orig=orig --#originals +local over=over --#overridden local backdrop = { --bgFile="Interface\\TutorialFrame\\TutorialFrameBackground", bgFile="Interface\\DialogFrame\\UI-DialogBox-Background-Dark", @@ -1643,14 +1643,13 @@ function addon:SetUp(...) bt:SetText(L["Garrison Comander Quick Mission Completion"]) bt:SetPoint("CENTER",0,-50) addon:ActivateButton(bt,"MissionComplete",L["Complete all missions without confirmation"]) - - + bt.missionType=LE_FOLLOWER_TYPE_GARRISON_6_0 return self:StartUp() --collectgarbage("step",10) --/Interface/FriendsFrame/UI-Toast-FriendOnlineIcon end -function addon:MissionComplete() - return self:GetModule("MissionCompletion"):MissionComplete() +function addon:MissionComplete(...) + return self:GetModule("MissionCompletion"):MissionComplete(...) end function addon:AddMenu() local menu,size=self:CreateOptionsLayer(MP and 'CKMP' or nil,'BIGSCREEN','IGM','IGP','NOFILL','MSORT','MAXRES','USEFUL') @@ -2099,7 +2098,10 @@ function addon:RenderFollowerButton(frame,followerID,missionID,b,t) frame.PortraitFrame.LevelBorder:SetWidth(58); showItemLevel = false; end - GarrisonMissionFrame_SetFollowerPortrait(frame.PortraitFrame, info, false); + local rc,message= pcall(GarrisonMissionFrame_SetFollowerPortrait,frame.PortraitFrame, info, false); +--@debug@ + if not rc then print(message) end +--@end-debug@ -- Counters icon if (frame.Name and frame.Threats) then if (missionID and not GMFMissions.showInProgress) then @@ -2371,19 +2373,6 @@ end addon.SetUp=addon.ExperimentalSetUp --]] - --- Blizzard functions override -local function override(blizfunc,...) - local overrider=blizfunc - if select('#',...) > 0 then - blizfunc=strjoin('.',blizfunc,...) - overrider=strjoin('_',overrider,...) - end - assert(type(over[overrider])=="function",overrider) - if (orig[overrider]) then return end - local code="local orig,over,overrider=... orig[overrider]=_G."..blizfunc.." _G."..blizfunc.."=over[overrider]" - assert(loadstring(code, "Executing " ..code))(orig,over,overrider) -end function over.StolenGarrisonMissionPageFollowerFrame_OnEnter(self) if not self.info then return; @@ -2457,11 +2446,7 @@ function over.GarrisonMissionFrame_SetFollowerPortrait(portraitFrame, followerIn end function over.GarrisonMissionPage_Close(self) - if ns.toc < 60200 then - GarrisonMissionPage_ClearParty() - else - GMF:ClearParty() - end + GMF:ClearParty() GarrisonMissionFrame.MissionTab.MissionPage:Hide(); GarrisonMissionFrame.followerCounters = nil; GarrisonMissionFrame.MissionTab.MissionPage.missionInfo = nil; @@ -3028,10 +3013,6 @@ override("GarrisonMissionPageFollowerFrame_OnEnter") override("GarrisonMissionList_SetTab") override("GarrisonMissionButton_OnClick") override("GarrisonMissionFrame","SelectTab") -if (ns.toc < 60200) then - override("GarrisonMissionFrame_SelectTab") -end - GMF.MissionTab.MissionPage.CloseButton:SetScript("OnClick",over.GarrisonMissionPage_Close) for i=1,#GMFMissionListButtons do local b=GMFMissionListButtons[i] diff --git a/Init.lua b/Init.lua index a72bd99..52141e3 100644 --- a/Init.lua +++ b/Init.lua @@ -39,7 +39,8 @@ if not ns.GMF then end if not ns.GMF then error("GarrisonCommander is being loaded before Blizzard_GarrisonUI is available") end ns.GMFMissions=_G.GarrisonMissionFrameMissions -ns.GSF=_G.GarrisonShipFrame +ns.GSF=_G.GarrisonShipyardFrame +ns.GSFMissions=_G.GarrisonShipyardFrame.MissionTab.MissionList _G.GARRISON_FOLLOWER_MAX_ITEM_LEVEL = _G.GARRISON_FOLLOWER_MAX_ITEM_LEVEL or 675 do --@debug@ @@ -61,7 +62,7 @@ do return {} end end - function ns.copy(t) + function ns.tCopy(t) local c = ns.new() for k, v in pairs(t) do c[k] = v @@ -105,6 +106,23 @@ function ns.type(value) else return type(value) end end +ns.orig={} +ns.over={} +local orig=ns.orig +local over=ns.over +-- Blizzard functions override +function ns.override(blizfunc,...) + local overrider=blizfunc + if select('#',...) > 0 then + blizfunc=strjoin('.',blizfunc,...) + overrider=strjoin('_',overrider,...) + end + assert(type(over[overrider])=="function",overrider) + if (orig[overrider]) then return end + local code="local orig,over,overrider=... orig[overrider]=_G."..blizfunc.." _G."..blizfunc.."=over[overrider]" + assert(loadstring(code, "Executing " ..code))(orig,over,overrider) +end + local stacklevel=0 local frames function ns.holdEvents() -- 1.7.9.5