From 273f1acfa2a357814ce20b833a855d7fe7da1788 Mon Sep 17 00:00:00 2001 From: Nat Quayle Nelson Date: Mon, 14 Oct 2024 12:15:05 -0500 Subject: [PATCH] allow LOOPSOUND to have volume decay --- src/hollywoo/Movie.kiss | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/hollywoo/Movie.kiss b/src/hollywoo/Movie.kiss index a41f204..4564caf 100644 --- a/src/hollywoo/Movie.kiss +++ b/src/hollywoo/Movie.kiss @@ -1364,7 +1364,9 @@ (director.stopSound (dictGet sounds name)))) (cc)) -(hollywooMethod loopSound [:Bool skipping :String name :Continuation cc &opt :Float volumeMod] +(hollywooMethod loopSound [:Bool skipping :String name :Continuation cc &opt :Float volumeMod :Float decay] + (unless decay (set decay 0)) + (localVar &mut vm (+ volumeMod decay)) // Even when skipping, create a lambda that plays an iteration of the sound, // so if skipping ends and the sound is still supposed to be looping, // we can start it! @@ -1372,11 +1374,15 @@ (withFunctions [ (:Void playAgain [] + (-= vm decay) + (when (and (> decay 0) (< vm 0)) + (loopingSoundPlays.remove name) + (return)) (playSound false name (makeCC null (when (loopingSoundPlays.exists name) (playAgain))) - volumeMod + vm true)) ] (handleCaption skipping name)