Index: ps/trunk/binaries/data/config/default.cfg =================================================================== --- ps/trunk/binaries/data/config/default.cfg +++ ps/trunk/binaries/data/config/default.cfg @@ -476,7 +476,8 @@ debug = false ; Print error messages each time a translation for an English string is not found. [userreport] ; Opt-in online user reporting system -url = "http://feedback.wildfiregames.com/report/upload/v1/" +url_upload = "http://feedback.wildfiregames.com/report/upload/v1/" ; URL where UserReports are uploaded to +url_publication = "http://feedback.wildfiregames.com/" ; URL where UserReports were analyzed and published terms = "0" ; Version (hash) of the UserReporter Terms that the user has accepted [view] ; Camera control settings Index: ps/trunk/binaries/data/mods/mod/gui/common/terms.js =================================================================== --- ps/trunk/binaries/data/mods/mod/gui/common/terms.js +++ ps/trunk/binaries/data/mods/mod/gui/common/terms.js @@ -10,7 +10,7 @@ Engine.PushGuiPage("page_termsdialog.xml", { "file": g_Terms[page].file, "title": g_Terms[page].title, - "buttons": g_Terms[page].buttons || [], + "urlButtons": g_Terms[page].urlButtons || [], "page": page, "callback": "acceptTerms" }); Index: ps/trunk/binaries/data/mods/mod/gui/modmod/modmodio.js =================================================================== --- ps/trunk/binaries/data/mods/mod/gui/modmod/modmodio.js +++ ps/trunk/binaries/data/mods/mod/gui/modmod/modmodio.js @@ -6,7 +6,17 @@ "file": translate("You are about to connect to the mod.io online service. This provides easy access to community-made mods, but is not under the control of Wildfire Games.\n\nWhile we have taken care to make this secure, we cannot guarantee with absolute certainty that this is not a security risk.\n\nDo you really want to connect?"), "config": "modio.disclaimer", "accepted": false, - "callback": openModIo + "callback": openModIo, + "urlButtons": [ + { + "caption": translate("mod.io Terms"), + "url": "https://mod.io/terms" + }, + { + "caption": translate("mod.io Privacy Policy"), + "url": "https://mod.io/privacy" + } + ] } }); Index: ps/trunk/binaries/data/mods/mod/gui/termsdialog/termsdialog.js =================================================================== --- ps/trunk/binaries/data/mods/mod/gui/termsdialog/termsdialog.js +++ ps/trunk/binaries/data/mods/mod/gui/termsdialog/termsdialog.js @@ -1,4 +1,4 @@ -var g_TermsPage = ""; +var g_TermsPage; function init(data) { @@ -10,6 +10,24 @@ Engine.FileExists(data.file) ? Engine.TranslateLines(Engine.ReadFile(data.file)) : data.file; + + initURLButtons(data.urlButtons); +} + +function initURLButtons(urlButtons) +{ + urlButtons.forEach((urlButton, i) => { + + let button = Engine.GetGUIObjectByName("button[" + i + "]"); + button.caption = urlButton.caption; + button.hidden = false; + button.tooltip = sprintf(translate("Open %(url)s in the browser."), { + "url": urlButton.url + }); + button.onPress = () => { + openURL(urlButton.url); + }; + }); } function closeTerms(accepted) Index: ps/trunk/binaries/data/mods/mod/gui/termsdialog/termsdialog.xml =================================================================== --- ps/trunk/binaries/data/mods/mod/gui/termsdialog/termsdialog.xml +++ ps/trunk/binaries/data/mods/mod/gui/termsdialog/termsdialog.xml @@ -11,20 +11,26 @@ - + - - - Cancel - closeTerms(false); - + + +