diff --git a/desktop/src-common/advent/core.clj b/desktop/src-common/advent/core.clj index fa766662..d42b1065 100644 --- a/desktop/src-common/advent/core.clj +++ b/desktop/src-common/advent/core.clj @@ -18,3 +18,7 @@ :on-create (fn [this] (set-screen! this scene/scene dialogue/talking-screen dialogue/choice-screen inventory/inventory-screen safe/safe-screen))) + + +(defn reload [] + (on-gl (set-screen! advent scene/scene dialogue/talking-screen dialogue/choice-screen inventory/inventory-screen safe/safe-screen))) diff --git a/desktop/src-common/advent/screens/scene.clj b/desktop/src-common/advent/screens/scene.clj index 05dbc37d..6f16f486 100644 --- a/desktop/src-common/advent/screens/scene.clj +++ b/desktop/src-common/advent/screens/scene.clj @@ -202,6 +202,9 @@ (defn play-sound [snd] (music! snd :play)) +(defn stop-sound [snd] + (music! snd :stop)) + (defn make-music [r] (doto (music r) (music! :set-looping true))) @@ -269,6 +272,13 @@ :on-resize (fn [screen entities] (size! screen 320 240)) + :on-hide (fn [screen entities] + (doall (->> (get-in entities [:room :entities :musics]) + vals + (map identity) + (map stop-sound) + ))) + :on-mouse-moved (fn [screen [entities]] (when (get-in entities [:state :active?])