From 6e311d0ecd79b96ead54b3c25c609d3fb50ee548 Mon Sep 17 00:00:00 2001 From: GT Date: Mon, 19 Jan 2026 11:43:02 +0800 Subject: [PATCH 1/3] fix #1118, clear 'CanMove' sound seeds in rigid loop --- src/js/engine.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/js/engine.js b/src/js/engine.js index 1419e592..629a166c 100644 --- a/src/js/engine.js +++ b/src/js/engine.js @@ -2741,6 +2741,7 @@ function processInput(dir, dontDoWin, dontModify) { level.commandQueueSourceRules = startState.commandQueueSourceRules.concat([]); sfxCreateMask.setZero(); sfxDestroyMask.setZero(); + seedsToPlay_CanMove = []; if (verbose_logging && rigidloop && i > 0) { consolePrint('Relooping through rules because of rigid.'); From 1acc7032ebb8d790483ec904470493681f573a4f Mon Sep 17 00:00:00 2001 From: GT Date: Mon, 19 Jan 2026 12:08:43 +0800 Subject: [PATCH 2/3] to #1118, use length=0 to clear seedsToPlay_CanMove array --- src/js/engine.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/js/engine.js b/src/js/engine.js index 629a166c..38a700b7 100644 --- a/src/js/engine.js +++ b/src/js/engine.js @@ -2741,7 +2741,7 @@ function processInput(dir, dontDoWin, dontModify) { level.commandQueueSourceRules = startState.commandQueueSourceRules.concat([]); sfxCreateMask.setZero(); sfxDestroyMask.setZero(); - seedsToPlay_CanMove = []; + seedsToPlay_CanMove.length = 0; if (verbose_logging && rigidloop && i > 0) { consolePrint('Relooping through rules because of rigid.'); From f01cf24f63d341fab60df6c325949b3c77519403 Mon Sep 17 00:00:00 2001 From: increpare Date: Sat, 7 Mar 2026 18:44:49 +0100 Subject: [PATCH 3/3] undo syntax tweak, and document absence of seedsToPlay_CantMove keeping seedsToPlay_CanMove = []; to be consistent with the general code usage --- src/js/engine.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/js/engine.js b/src/js/engine.js index 38a700b7..c577213a 100644 --- a/src/js/engine.js +++ b/src/js/engine.js @@ -2741,7 +2741,11 @@ function processInput(dir, dontDoWin, dontModify) { level.commandQueueSourceRules = startState.commandQueueSourceRules.concat([]); sfxCreateMask.setZero(); sfxDestroyMask.setZero(); - seedsToPlay_CanMove.length = 0; + seedsToPlay_CanMove = []; + //seedsToPlay_CantMove = []; + // CAN'T MOVE SHOULD BE KEPT - it's not perfect, but more often than not, + // the thing that can't move is the rigid body, and we want to keep that information, + // not clear it. if (verbose_logging && rigidloop && i > 0) { consolePrint('Relooping through rules because of rigid.');