diff --git a/desktop/gametodos.txt b/desktop/gametodos.txt index 7a00daa5..960e7d39 100644 --- a/desktop/gametodos.txt +++ b/desktop/gametodos.txt @@ -14,7 +14,6 @@ IOS + update-override slow on IOS AUDIO - + Walking + blink + scratch + peddler scratch diff --git a/desktop/resources/ego/step-1.aif b/desktop/resources/ego/step-1.aif new file mode 100644 index 00000000..999e3cad Binary files /dev/null and b/desktop/resources/ego/step-1.aif differ diff --git a/desktop/resources/ego/step-1.ogg b/desktop/resources/ego/step-1.ogg index be91eda4..d580aab1 100644 Binary files a/desktop/resources/ego/step-1.ogg and b/desktop/resources/ego/step-1.ogg differ diff --git a/desktop/resources/ego/step-1.wav b/desktop/resources/ego/step-1.wav new file mode 100644 index 00000000..36d1a00a Binary files /dev/null and b/desktop/resources/ego/step-1.wav differ diff --git a/desktop/resources/ego/step-2.ogg b/desktop/resources/ego/step-2.ogg index 4a3aa0f3..9c0aeedd 100644 Binary files a/desktop/resources/ego/step-2.ogg and b/desktop/resources/ego/step-2.ogg differ diff --git a/desktop/resources/ego/step-2.wav b/desktop/resources/ego/step-2.wav new file mode 100644 index 00000000..c5206685 Binary files /dev/null and b/desktop/resources/ego/step-2.wav differ diff --git a/desktop/resources/ego/step-3.ogg b/desktop/resources/ego/step-3.ogg new file mode 100644 index 00000000..8ce5d237 Binary files /dev/null and b/desktop/resources/ego/step-3.ogg differ diff --git a/desktop/resources/ego/step-3.wav b/desktop/resources/ego/step-3.wav new file mode 100644 index 00000000..9a1c235d Binary files /dev/null and b/desktop/resources/ego/step-3.wav differ diff --git a/desktop/resources/ego/step-4.ogg b/desktop/resources/ego/step-4.ogg new file mode 100644 index 00000000..375661c8 Binary files /dev/null and b/desktop/resources/ego/step-4.ogg differ diff --git a/desktop/resources/ego/step-4.wav b/desktop/resources/ego/step-4.wav new file mode 100644 index 00000000..42bb6c8b Binary files /dev/null and b/desktop/resources/ego/step-4.wav differ diff --git a/desktop/src-common/advent/screens/scene.clj b/desktop/src-common/advent/screens/scene.clj index 5af5ce8e..db349b0e 100644 --- a/desktop/src-common/advent/screens/scene.clj +++ b/desktop/src-common/advent/screens/scene.clj @@ -518,6 +518,13 @@ void main() crawl-stand (utils/make-anim "ego/crawl.png" [39 25] 0.2 [0]) crawl-hide (utils/make-anim "ego/crawl.png" [39 25] 0.1 (flatten [(repeat 10 3) (range 4 7) (repeat 50 6) (reverse (range 4 7) ) (repeat 20 3)])) standup (utils/make-anim "ego/standup.png" [45 55] 0.2 (range 5)) + choose-step-sound (fn [entities] + (if (#{:inside-house :inside-stash :inside-cafeteria :inside-antique :inside-jail} + (get-in entities [:state :last-room])) + :blink + (rand-nth [:step-sound-1 :step-sound-2 :step-sound-3 :step-sound-4]))) + + ego {:right {:walk walk-right :stand stand-anim @@ -625,6 +632,8 @@ void main() :milk-sound (utils/load-sound "outsidehouse/milk.ogg") :step-sound-1 (utils/load-sound "ego/step-1.ogg") :step-sound-2 (utils/load-sound "ego/step-2.ogg") + :step-sound-3 (utils/load-sound "ego/step-3.ogg") + :step-sound-4 (utils/load-sound "ego/step-4.ogg") :sigh-sound (utils/load-sound "ego/sigh.ogg") :breakglass-sound (utils/load-sound "ego/breakglass.ogg") :idea-sound (utils/load-sound "ego/idea.ogg") @@ -643,10 +652,10 @@ void main() :x (first start-pos) :y (last start-pos) :id "ego"} - ego (assoc ego :anim-sound-frames {(get-in ego [:left :walk]) {2 [:step-sound-1 1.0] - 6 [:step-sound-2 0.8]} - (get-in ego [:right :walk]) {2 [:step-sound-1 1.0] - 6 [:step-sound-2 0.8]} + ego (assoc ego :anim-sound-frames {(get-in ego [:left :walk]) {2 [choose-step-sound 0.6] + 6 [choose-step-sound 0.6]} + (get-in ego [:right :walk]) {2 [choose-step-sound 0.6] + 6 [choose-step-sound 0.6]} (get-in ego [:left :talk] ) {2 [:blink 0.15]} (get-in ego [:right :talk] ) {2 [:blink 0.15]} @@ -803,10 +812,13 @@ void main() (if (and (not= previous-frame-index current-frame-index) ((set (keys anim-sound-frames)) anim)) (if-let [[snd vol-scale] (get-in anim-sound-frames [anim current-frame-index])] - (utils/play-sound! screen entities - (or (snd e) (snd (:sounds entities))) - (utils/sourced-volume-fn target vol-scale [x y]) - (utils/get-sound-pan x)) + (let [snd (if (fn? snd) + (snd entities) + snd)] + (utils/play-sound! screen entities + (or (snd e) (snd (:sounds entities))) + (utils/sourced-volume-fn target vol-scale [x y]) + (utils/get-sound-pan x))) entities) entities))