diff --git a/api/config.lua b/api/config.lua
index 3b823d00..39e8c6dc 100644
--- a/api/config.lua
+++ b/api/config.lua
@@ -768,7 +768,6 @@ function pfUI:LoadConfig()
pfUI:UpdateConfig("thirdparty", "twt", "dock", "0")
pfUI:UpdateConfig("thirdparty", "wim", "enable", "1")
pfUI:UpdateConfig("thirdparty", "healcomm", "enable", "1")
- pfUI:UpdateConfig("thirdparty", "superwow", "enable", "1")
pfUI:UpdateConfig("thirdparty", "sortbags", "enable", "1")
pfUI:UpdateConfig("thirdparty", "bag_sort", "enable", "1")
pfUI:UpdateConfig("thirdparty", "mrplow", "enable", "1")
diff --git a/init/modules.xml b/init/modules.xml
index 887cd80b..20a6f053 100644
--- a/init/modules.xml
+++ b/init/modules.xml
@@ -70,4 +70,5 @@
+
diff --git a/modules/gui.lua b/modules/gui.lua
index 6bfb3356..f3b49419 100644
--- a/modules/gui.lua
+++ b/modules/gui.lua
@@ -2271,7 +2271,6 @@ pfUI:RegisterModule("gui", "vanilla:tbc", function ()
CreateConfig(nil, "TW Threatmeter (" .. T["Dock"] .. ")", C.thirdparty.twt, "dock", "checkbox", nil, nil, nil, nil, "vanilla")
CreateConfig(nil, "WIM", C.thirdparty.wim, "enable", "checkbox", nil, nil, nil, nil, "vanilla")
CreateConfig(nil, "HealComm", C.thirdparty.healcomm, "enable", "checkbox", nil, nil, nil, nil, "vanilla")
- CreateConfig(nil, "SuperWoW", C.thirdparty.superwow, "enable", "checkbox", nil, nil, nil, nil, "vanilla")
CreateConfig(nil, "SortBags", C.thirdparty.sortbags, "enable", "checkbox", nil, nil, nil, nil, "vanilla")
CreateConfig(nil, "Bag_Sort", C.thirdparty.bag_sort, "enable", "checkbox", nil, nil, nil, nil, "tbc")
CreateConfig(nil, "MrPlow", C.thirdparty.mrplow, "enable", "checkbox")
diff --git a/modules/superwow.lua b/modules/superwow.lua
new file mode 100644
index 00000000..94a4637f
--- /dev/null
+++ b/modules/superwow.lua
@@ -0,0 +1,49 @@
+-- Compatibility layer to use castbars provided by SuperWoW:
+-- https://github.com/balakethelock/SuperWoW
+pfUI:RegisterModule("superwow", "vanilla", function ()
+ local unitcast = CreateFrame("Frame")
+ unitcast:RegisterEvent("UNIT_CASTEVENT")
+ unitcast:SetScript("OnEvent", function()
+ if arg3 == "START" or arg3 == "CAST" or arg3 == "CHANNEL" then
+ -- human readable argument list
+ local guid = arg1
+ local target = arg2
+ local event_type = arg3
+ local spell_id = arg4
+ local timer = arg5
+ local start = GetTime()
+
+ -- get spell info from spell id
+ local spell, icon, _
+ if SpellInfo and SpellInfo(spell_id) then
+ spell, _, icon = SpellInfo(spell_id)
+ end
+
+ -- set fallback values
+ spell = spell or UNKNOWN
+ icon = icon or "Interface\\Icons\\INV_Misc_QuestionMark"
+
+ -- add cast action to the database
+ if not libcast.db[guid] then libcast.db[guid] = {} end
+ libcast.db[guid].cast = spell
+ libcast.db[guid].rank = nil
+ libcast.db[guid].start = GetTime()
+ libcast.db[guid].casttime = timer
+ libcast.db[guid].icon = icon
+ libcast.db[guid].channel = event_type == "CHANNEL" or false
+
+ -- write state variable
+ superwow_active = true
+ elseif arg3 == "FAIL" then
+ local guid = arg1
+
+ -- delete all cast entries of guid
+ libcast.db[guid].cast = nil
+ libcast.db[guid].rank = nil
+ libcast.db[guid].start = nil
+ libcast.db[guid].casttime = nil
+ libcast.db[guid].icon = nil
+ libcast.db[guid].channel = nil
+ end
+ end)
+end)
\ No newline at end of file
diff --git a/modules/thirdparty-vanilla.lua b/modules/thirdparty-vanilla.lua
index 1449e28b..ace1460d 100644
--- a/modules/thirdparty-vanilla.lua
+++ b/modules/thirdparty-vanilla.lua
@@ -796,59 +796,6 @@ pfUI:RegisterModule("thirdparty-vanilla", "vanilla", function()
end)
end)
- -- SuperWoW
- -- Vanilla: https://github.com/balakethelock/SuperWoW
- HookAddonOrVariable("SpellInfo", function()
- if C.thirdparty.superwow.enable == "0" then return end
-
- -- add UnitGUID based casting info to libcast
- local unitcast = CreateFrame("Frame")
- unitcast:RegisterEvent("UNIT_CASTEVENT")
- unitcast:SetScript("OnEvent", function()
- if arg3 == "START" or arg3 == "CAST" or arg3 == "CHANNEL" then
- -- human readable argument list
- local guid = arg1
- local target = arg2
- local event_type = arg3
- local spell_id = arg4
- local timer = arg5
- local start = GetTime()
-
- -- get spell info from spell id
- local spell, icon, _
- if SpellInfo and SpellInfo(spell_id) then
- spell, _, icon = SpellInfo(spell_id)
- end
-
- -- set fallback values
- spell = spell or UNKNOWN
- icon = icon or "Interface\\Icons\\INV_Misc_QuestionMark"
-
- -- add cast action to the database
- if not libcast.db[guid] then libcast.db[guid] = {} end
- libcast.db[guid].cast = spell
- libcast.db[guid].rank = nil
- libcast.db[guid].start = GetTime()
- libcast.db[guid].casttime = timer
- libcast.db[guid].icon = icon
- libcast.db[guid].channel = event_type == "CHANNEL" or false
-
- -- write state variable
- superwow_active = true
- elseif arg3 == "FAIL" then
- local guid = arg1
-
- -- delete all cast entries of guid
- libcast.db[guid].cast = nil
- libcast.db[guid].rank = nil
- libcast.db[guid].start = nil
- libcast.db[guid].casttime = nil
- libcast.db[guid].icon = nil
- libcast.db[guid].channel = nil
- end
- end)
- end)
-
-- SortBags
-- Vanilla: https://github.com/shirsig/SortBags-vanilla
HookAddonOrVariable("SortBags", function()