From e085fae3c435bbd048f2f03130752a90e9ad4417 Mon Sep 17 00:00:00 2001
From: Svornost <11434-svornost@users.noreply.gitgud.io>
Date: Fri, 8 May 2020 11:10:22 -0700
Subject: [PATCH] Display miniscenes after the refresh instead of before.

---
 src/interaction/slaveInteract.js | 24 ++++++++++++++++--------
 1 file changed, 16 insertions(+), 8 deletions(-)

diff --git a/src/interaction/slaveInteract.js b/src/interaction/slaveInteract.js
index 6808ad215d4..0960e29f64c 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;
-- 
GitLab