diff --git a/src/js/rulesAssistantOptions.tw b/src/js/rulesAssistantOptions.tw index 820d0ba0145a3c15378e22aef61d86b0b294bb72..bbb02903f18442a5f037688b1fd1dcd877f5b829 100644 --- a/src/js/rulesAssistantOptions.tw +++ b/src/js/rulesAssistantOptions.tw @@ -11,20 +11,14 @@ window.rulesAssistantOptions = (function() { let V let r = "" - function rulesAssistantOptions() { + function rulesAssistantOptions(element) { V = State.variables V.nextButton = "Back to Main" V.nextLink = "Main" V.returnTo = "Main" V.showEncyclopedia = 1 V.encyclopedia = "Personal Assistant" - - let tmp = document.createElement("div") - tmp.classList.add("passage") - tmp.classList.add("rules-assistant-options") - document.getElementById("passages").appendChild(tmp) - - const root = new Root(tmp) + const root = new Root(element) } function onreturn(e, cb) { diff --git a/src/js/utilJS.tw b/src/js/utilJS.tw index b1258a2583ea53121760cbb5020272693e930024..8ad5cdb542e76cc57e74d83742298852655686fc 100644 --- a/src/js/utilJS.tw +++ b/src/js/utilJS.tw @@ -518,8 +518,19 @@ window.generateNewID = function generateNewID() { return randint + timestamp.toString(36); }; -window.arraySwap(array, a, b) { +window.arraySwap = function arraySwap(array, a, b) { const tmp = array[a]; array[b] = array[a]; array[a] = tmp; }; + +// circumvents sugarcube, allowing a plain HTML5 UI within it +window.html5passage = function html5passage(passage_function) { + $(document).one(':passagedisplay', ev => { + const element = document.createElement("div"); + element.classList.add("passage"); + document.getElementById("passages").appendChild(element); + passage_function(element); + $(document).off(':passagedisplay'); + }); +}; diff --git a/src/uncategorized/rulesAssistant.tw b/src/uncategorized/rulesAssistant.tw index 6b645e211669646c1cea60007c62ea29aae18211..f4ca87d0eec9f8d23e1878cba647de002e7c1deb 100644 --- a/src/uncategorized/rulesAssistant.tw +++ b/src/uncategorized/rulesAssistant.tw @@ -1,6 +1,6 @@ :: Rules Assistant [nobr] -<<script>>$(document).one(':passagedisplay', ev => { rulesAssistantOptions(); $(document).off(':passagedisplay') })<</script>> +<<script>>html5passage(rulesAssistantOptions)<</script>> /* <<set $nextButton = "Back to Main", $nextLink = "Main", $returnTo = "Main">> <<set $showEncyclopedia = 1, $encyclopedia = "Personal Assistant">>