From 4f281a052216b36d65243947842aa36dc6502731 Mon Sep 17 00:00:00 2001 From: Bryce Covert Date: Mon, 26 Oct 2015 15:08:51 +0100 Subject: [PATCH] fixed sound problems. --- desktop/src-common/advent/actions.clj | 7 ++++--- .../advent/screens/rooms/inside_castle.clj | 21 ++++++++++++------- desktop/src-common/advent/utils.clj | 3 ++- 3 files changed, 19 insertions(+), 12 deletions(-) diff --git a/desktop/src-common/advent/actions.clj b/desktop/src-common/advent/actions.clj index 32c8c0ca..0d4aa266 100644 --- a/desktop/src-common/advent/actions.clj +++ b/desktop/src-common/advent/actions.clj @@ -589,7 +589,7 @@ music (time music))) -(defn transition-music [entities new-music & {:keys [duration]}] +(defn transition-music [entities new-music & {:keys [duration between]}] (let [current-volume (atom 1.0) duration (or duration 2.0)] (run-action entities @@ -608,8 +608,9 @@ :when m] (music! m :stop)) (let [entities (-> entities - (assoc-in [:music-override :value] new-music) - (assoc-in [:volume :value] 1.0))] + ((or between identity)) + (assoc-in [:music-override :value] new-music) + (assoc-in [:volume :value] 1.0))] (music! (utils/get-current-music entities) :set-volume (utils/current-music-volume)) (music! (utils/get-current-music entities) :play) entities)) diff --git a/desktop/src-common/advent/screens/rooms/inside_castle.clj b/desktop/src-common/advent/screens/rooms/inside_castle.clj index 2fa7ffa9..d5909b6a 100644 --- a/desktop/src-common/advent/screens/rooms/inside_castle.clj +++ b/desktop/src-common/advent/screens/rooms/inside_castle.clj @@ -249,13 +249,18 @@ (actions/transition-music entities nil :duration 0.15)) (defn pull-sword [entities] - (actions/play-animation entities :ego :reach) - + (actions/play-animation entities :ego :reach-start :stop? false) (actions/pause-camera entities) - (actions/transition-music entities :pull-sword) - (actions/add-entity entities :blackout (get-in @entities [:room :blackout])) - (actions/add-entity entities :pull-sword (get-in @entities [:room :pull-sword])) + (actions/transition-music entities :pull-sword + :between (fn [e] + (as-> e e + (assoc-in e [:room :entities :blackout] + (get-in e [:room :blackout])) + (assoc-in e [:room :entities :pull-sword] + (get-in e [:room :pull-sword]))))) + (actions/play-animation entities :pull-sword :pull-sword) + (actions/play-animation entities :ego :reach-stop) (actions/give entities :sword) (actions/remove-entity entities :sword) (actions/remove-entity entities :pull-sword) @@ -442,9 +447,9 @@ (assoc (utils/get-texture "inside-castle/way-back-tree.png") :x 0 :y 0 :baseline 97) (assoc (utils/get-texture "inside-castle/roof.png") :x (- 320 57) :y 0 :baseline 240 :parallax 1.5)]} :blackout (assoc (utils/get-texture "black.png") - :x 0 :y 0 - :width 320 - :height 240 :opacity 0.8 + :x -10 :y -10 + :width 340 + :height 260 :opacity 0.8 :baseline 239) :pull-sword (assoc (animation->texture screen pull-sword-anim) :x 10 diff --git a/desktop/src-common/advent/utils.clj b/desktop/src-common/advent/utils.clj index 6e0a32a1..20622603 100644 --- a/desktop/src-common/advent/utils.clj +++ b/desktop/src-common/advent/utils.clj @@ -418,7 +418,8 @@ (defn scale-vol-from-fade [entities vol] (* vol - (- 1.0 (get-in entities [:fade :opacity])))) + (- 1.0 (get-in entities [:fade :opacity])) + (get-in entities [:volume :value]))) (defn play-sound! ([screen entities snd volume-fn]