diff --git a/crates/benilla-app/assets/ui/CompatTemplates.xml b/crates/benilla-app/assets/ui/CompatTemplates.xml new file mode 100644 index 00000000..49406a70 --- /dev/null +++ b/crates/benilla-app/assets/ui/CompatTemplates.xml @@ -0,0 +1,93 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/crates/benilla-app/assets/ui/benilla.toc b/crates/benilla-app/assets/ui/benilla.toc index 78dadbe8..6c060dd7 100644 --- a/crates/benilla-app/assets/ui/benilla.toc +++ b/crates/benilla-app/assets/ui/benilla.toc @@ -86,6 +86,10 @@ Interface\FrameXML\ComboFrame.xml # Ours: the scroll parts of our options window and script log. ScrollTemplates.xml +# The ClassicAPI-era templates addons inherit by name (Ace3 names two of them unguarded). +# Templates only, so anywhere above the addon load is correct; here, beside our other one. +CompatTemplates.xml + Interface\FrameXML\UIPanelTemplates.lua Interface\FrameXML\UIPanelTemplates.xml diff --git a/crates/benilla-app/src/ui_script/shipped_xml_tests.rs b/crates/benilla-app/src/ui_script/shipped_xml_tests.rs index 0ba149c8..f2324b7d 100644 --- a/crates/benilla-app/src/ui_script/shipped_xml_tests.rs +++ b/crates/benilla-app/src/ui_script/shipped_xml_tests.rs @@ -1974,6 +1974,13 @@ fn assets_ui_does_not_grow() { // falls through into `attempt to call local 'handledata'`. There is no stock file to // migrate — AIO is the realm's, not Blizzard's. The file's own header has the trace. "AIOHandlers.lua", + // Not a window either: the ClassicAPI-era FrameXML templates addons inherit by name, + // which have no stock 1.12 file to migrate from because 1.12 has no such templates. They + // live in XML rather than `script/compat/` only because `inherits=` is resolved by the + // loader and cannot be answered from Lua. Ace3 names two of them **unguarded**, so a + // missing one raises inside the library: `CreateFrame(): Couldn't find inherited node + // "DialogBorderOpaqueTemplate"` is where OpenMapClassic stopped, on its first file. + "CompatTemplates.xml", "ContainerFrameAdapters.xml", "GameMenuFrame.xml", "KeyBindingsPage.xml",