diff --git a/desktop/src-common/advent/actions.clj b/desktop/src-common/advent/actions.clj index a6dea3a8..b03e80b7 100644 --- a/desktop/src-common/advent/actions.clj +++ b/desktop/src-common/advent/actions.clj @@ -152,7 +152,7 @@ (run-action entities (begin [this screen entities] (run! dialogue/choice-screen :on-present-choices :pairs pairs) - (run! @(resolve 'advent.screens.scene/scene) :on-pause) + (run! @(resolve 'advent.screens.scene/scene) :on-deactivate) entities) (continue [this screen entities] entities) diff --git a/desktop/src-common/advent/screens/dialogue.clj b/desktop/src-common/advent/screens/dialogue.clj index 9e486d43..42491218 100644 --- a/desktop/src-common/advent/screens/dialogue.clj +++ b/desktop/src-common/advent/screens/dialogue.clj @@ -81,9 +81,18 @@ (let [{:keys [x y]} (input->screen screen {:x (:input-x screen) :y (:input-y screen)})] (when (seq entities) (when (< y (* 30 (count entities))) - (run! @(resolve 'advent.screens.scene/scene) :on-resume) + (run! @(resolve 'advent.screens.scene/scene) :on-reactivate) (run! @(resolve 'advent.screens.scene/scene) :on-start-script :script (:result-script (entities (int (/ y 30))))) {})))) + + :on-mouse-moved (fn [screen [entities]] + (let [{:keys [x y]} (input->screen screen {:x (:input-x screen) :y (:input-y screen)}) + font (bitmap-font "ego/font.fnt" )] + (when (seq entities) + (doseq [index (range (count entities))] + (if (< (* index 30) y (* (inc index) 30)) + (label! (entities index) :set-style (style :label font (color :yellow))) + (label! (entities index) :set-style (style :label font (color :white)))))))) :on-resize (fn [screen entities] (size! screen 1280 960))) diff --git a/desktop/src-common/advent/screens/scene.clj b/desktop/src-common/advent/screens/scene.clj index d5bc87c5..6abacfd1 100644 --- a/desktop/src-common/advent/screens/scene.clj +++ b/desktop/src-common/advent/screens/scene.clj @@ -154,7 +154,8 @@ (if (string? t-line) (actions/talk entities target-id t-line) (t-line)) - (apply actions/present-choices entities option-scripts))) + (when options + (apply actions/present-choices entities option-scripts)))) (defn backgrounds [screen] (let [sheep-sheet (texture! (texture "outsidehouse/sheep-anim.png") :split 33 21) @@ -401,11 +402,11 @@ (assoc-in entities [:cursor :current] :main) (left-click screen entities)))) - :on-pause (fn [screen [entities]] - (assoc-in entities [:state :active?] false)) + :on-deactivate (fn [screen [entities]] + (assoc-in entities [:state :active?] false)) - :on-resume (fn [screen [entities]] - (assoc-in entities [:state :active?] true)) + :on-reactivate (fn [screen [entities]] + (assoc-in entities [:state :active?] true)) :on-start-script (fn [{:keys [script]} [entities]] (script entities)