From 9acd36bf9981cf9cb8e82785508d6eb7f010cc77 Mon Sep 17 00:00:00 2001 From: SmallJoker Date: Tue, 10 Sep 2019 21:18:42 +0200 Subject: Formspecs: Introduce formspec_version to mods --- src/gui/guiFormSpecMenu.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'src/gui/guiFormSpecMenu.cpp') diff --git a/src/gui/guiFormSpecMenu.cpp b/src/gui/guiFormSpecMenu.cpp index e02abf018..f291b4e87 100644 --- a/src/gui/guiFormSpecMenu.cpp +++ b/src/gui/guiFormSpecMenu.cpp @@ -2167,6 +2167,9 @@ void GUIFormSpecMenu::parseElement(parserData* data, const std::string &element) if (element.empty()) return; + if (parseVersionDirect(element)) + return; + std::vector parts = split(element,'['); // ugly workaround to keep compatibility @@ -2503,7 +2506,7 @@ void GUIFormSpecMenu::regenerateGui(v2u32 screensize) } /* Copy of the "real_coordinates" element for after the form size. */ - mydata.real_coordinates = false; + mydata.real_coordinates = m_formspec_version >= 2; for (; i < elements.size(); i++) { std::vector parts = split(elements[i], '['); std::string name = trim(parts[0]); @@ -2648,10 +2651,14 @@ void GUIFormSpecMenu::regenerateGui(v2u32 screensize) if (enable_prepends) { // Backup the coordinates so that prepends can use the coordinates of choice. bool rc_backup = mydata.real_coordinates; + bool version_backup = m_formspec_version; mydata.real_coordinates = false; // Old coordinates by default. + std::vector prepend_elements = split(m_formspec_prepend, ']'); for (const auto &element : prepend_elements) parseElement(&mydata, element); + + m_formspec_version = version_backup; mydata.real_coordinates = rc_backup; // Restore coordinates } -- cgit v1.2.3