diff --git a/src/interaction/slaveInteract.js b/src/interaction/slaveInteract.js index 6808ad215d49614d0dc9b05c265415f804f6ffdd..0960e29f64c2bc081ac856f1c9a48c2689a49662 100644 --- a/src/interaction/slaveInteract.js +++ b/src/interaction/slaveInteract.js @@ -1443,15 +1443,23 @@ App.UI.SlaveInteract.useSlaveDisplay = function(slave) { Object.assign(V, sexOption.update); } - // Scene - if (sexOption.scene) { - App.UI.replace('#miniscene', `<<include "${sexOption.scene}">>`); - } else if (sexOption.goto) { - App.UI.replace('#miniscene', `<<goto "${sexOption.goto}">>`); + if (sexOption.goto) { + // just play the passage, no need to refresh anything here + Engine.play(sexOption.goto); + } else if (sexOption.scene) { + // Run scene and store render results temporarily + let frag = document.createDocumentFragment(); + $(frag).wiki(`<<include "${sexOption.scene}">>`); + + // Refresh (clears scene display) + App.UI.SlaveInteract.refreshAll(V.slaves[V.slaveIndices[V.activeSlave.ID]]); + + // Display scene render results + $("#miniscene").append(frag); + } else { + // just refresh + App.UI.SlaveInteract.refreshAll(V.slaves[V.slaveIndices[V.activeSlave.ID]]); } - - App.UI.SlaveInteract.refreshAll(V.slaves[V.slaveIndices[V.activeSlave.ID]]); - return; } } return el;