highlight

2016年8月30日火曜日

WoWJapanizer を Legion expansion で使えるようにする

昨日のエントリで、とりあえず WoWJapanizer がエラーを出さないようにしたが、もう少しまともな変更を施す事にする。

GlyphFrame がエラーを出していた件については現 version では Glyph 変更用のフレームが廃止されたそうなので、 バッサリとコードを除去する、という対応で問題なさそうだ。ただ minor glyph は残るそうなので、 この対応をどうすればいいのか、WoW 自体久々な私にはちょっと良くわからず、必要があれば又の機会に対応する事にしよう。

あとの二つは Interface Option の設定を取得する方法が変更された様なので、現行仕様に沿う(と思しき)方法に書き換える。多分 InterfaceOptions~ 変数が使えなくなったのだろう。 GetCVar() の引数に直接 CVar の名前を与えることにする。

  • InterfaceOptionsHelpPanelEnhancedTooltips を使っているところでは、"UberTooltips"
  • InterfaceOptionsDisplayPanelShowSpellPointsAvg を使っているところでは、"SpellTooltip_DisplayAvgValues"

これで Interface option の該当箇所のチェックを on/off したときに、その振る舞いが変わる様になると思う。 が、元のコードの意図をキチンと汲み取っているかどうかについては、ちょっと良くわからない。

以下、patch ファイルを掲示しておく。cygwin を使っている人なら、World of Warcraft/Interface/Addon/WoWJapanizer ディレクトリに mv して、

$ patch -p1 -u < 以下のパッチファイル

を実行すればいい。試してないけど多分パッチが当たる。 mac の人はよく知らないけど、中身が bsd だそうだから patch コマンドは普通に使えるんじゃないかな? cygwin とか patch が入ってないなら、以下の内容をみて、直接ファイルを書き換えると良いです。 ざっと見たら想像つくと思いますが、該当する .lua ファイルを見つけて、- の行を消して + の行で置き換えて行けばいいです。

diff -ur WoWJapanizer.orig/Data/Item/WoWJapanizer_Item.lua "../Blizzard/World of Warcraft/Interface/AddOns/WoWJapanizer/Data/Item/WoWJapanizer_Item.lua"
--- WoWJapanizer.orig/Data/Item/WoWJapanizer_Item.lua 2015-06-24 11:22:02.000000000 +0900
+++ "../Blizzard/World of Warcraft/Interface/AddOns/WoWJapanizer/Data/Item/WoWJapanizer_Item.lua" 2016-08-30 23:14:43.177488500 +0900
@@ -12,10 +12,7 @@
     local text = self.Data[id][1]
 
     if self.Data[id][2] then
-        local checkbox = InterfaceOptionsDisplayPanelShowSpellPointsAvg
-        checkbox.cvar = "SpellTooltip_DisplayAvgValues"
-
-        if tonumber(GetCVar(checkbox.cvar)) == 1 then
+        if tonumber(GetCVar("SpellTooltip_DisplayAvgValues")) == 1 then
             local n = {}
             for k, v in pairs(self.Data[id][2]) do
                 local i1, i2 = v:match('(%d+)-(%d+)')
diff -ur WoWJapanizer.orig/WoWJapanizer.toc "../Blizzard/World of Warcraft/Interface/AddOns/WoWJapanizer/WoWJapanizer.toc"
--- WoWJapanizer.orig/WoWJapanizer.toc 2015-06-24 11:22:02.000000000 +0900
+++ "../Blizzard/World of Warcraft/Interface/AddOns/WoWJapanizer/WoWJapanizer.toc" 2016-08-29 22:10:18.188131500 +0900
@@ -1,4 +1,4 @@
-## Interface: 60200
+## Interface: 70000
 ## Title: WoWJapanizer
 ## Notes: Translate Quest data, Item ToolTips and Spell ToolTips into Japanese text.
 ## Version: 3.0.0
diff -ur WoWJapanizer.orig/WoWJapanizerGlyphToolTip.lua "../Blizzard/World of Warcraft/Interface/AddOns/WoWJapanizer/WoWJapanizerGlyphToolTip.lua"
--- WoWJapanizer.orig/WoWJapanizerGlyphToolTip.lua 2015-06-24 11:22:02.000000000 +0900
+++ "../Blizzard/World of Warcraft/Interface/AddOns/WoWJapanizer/WoWJapanizerGlyphToolTip.lua" 2016-08-29 22:40:23.687407600 +0900
@@ -4,44 +4,6 @@
 WoWJapanizerGlyphToolTip.GlyphStore = nil
 
 function WoWJapanizerGlyphToolTip:OnEnable()
- hooksecurefunc("GlyphFrame_LoadUI", function()
-  for _, button in next, GlyphFrameScrollFrame.buttons do
-   button:HookScript("OnEnter", function(_button)
-    if _button.isHeader then
-     return
-    end
-
-    local name, glyphType, isKnown, icon, glyphID = GetGlyphInfo(_button.glyphIndex)
-
-    if not WoWJapanizer.db.profile.spell.tooltip then return end
-    if not WoWJapanizer:LoadAddOn("WoWJapanizer_Spell") then return end
-
-    local spell = WoWJapanizer_Spell:GetGlyphByName(name)
-
-    self:OnShow(spell, glyphID)
-   end)
-
-   button:HookScript("OnLeave", function(_button)
-    self:OnHide()
-   end)
-  end
-
-  hooksecurefunc("GlyphFrameGlyph_OnEnter", function(_button)
-   local enabled, glyphType, glyphTooltipIndex, glyphSpell, icon = GetGlyphSocketInfo(_button:GetID())
-
-   if not glyphSpell then return end
-   if not WoWJapanizer.db.profile.spell.tooltip then return end
-   if not WoWJapanizer:LoadAddOn("WoWJapanizer_Spell") then return end
-
-   local spell = WoWJapanizer_Spell:Get(glyphSpell)
-
-   self:OnShow(spell, nil)
-  end)
-
-  hooksecurefunc("GlyphFrameGlyph_OnLeave", function(_button)
-   self:OnHide()
-  end)
- end)
 end
 
 function WoWJapanizerGlyphToolTip:OnShow(spell, glyphID)
diff -ur WoWJapanizer.orig/WoWJapanizerToolTip.lua "../Blizzard/World of Warcraft/Interface/AddOns/WoWJapanizer/WoWJapanizerToolTip.lua"
--- WoWJapanizer.orig/WoWJapanizerToolTip.lua 2015-06-24 11:22:02.000000000 +0900
+++ "../Blizzard/World of Warcraft/Interface/AddOns/WoWJapanizer/WoWJapanizerToolTip.lua" 2016-08-30 23:12:59.041724400 +0900
@@ -170,9 +170,7 @@
 end
 
 function WoWJapanizerToolTip:CheckEnhancedTooltips()
-    local checkbox = InterfaceOptionsHelpPanelEnhancedTooltips
-    checkbox.cvar = "UberTooltips"
-    if tonumber(GetCVar(checkbox.cvar)) == 1 then
+    if tonumber(GetCVar("UberTooltips")) == 1 then
         return true
     else
         return false

0 件のコメント:

コメントを投稿