From 3d69fc0b657a83f0d27b431a1c4c2dcb0958150f Mon Sep 17 00:00:00 2001 From: Bryce Covert Date: Wed, 3 Aug 2016 20:32:03 -0700 Subject: [PATCH] a lot of stuff to get rid of reflection. --- desktop/src-common/advent/actions.clj | 6 +- desktop/src-common/advent/pathfind.clj | 7 ++- desktop/src-common/advent/screens/credits.clj | 2 +- .../src-common/advent/screens/dialogue.clj | 18 ++---- desktop/src-common/advent/screens/fade.clj | 7 ++- .../src-common/advent/screens/inventory.clj | 4 +- .../advent/screens/rooms/outside_house.clj | 6 +- desktop/src-common/advent/screens/safe.clj | 2 +- desktop/src-common/advent/screens/scene.clj | 2 +- desktop/src-common/advent/screens/splash.clj | 2 +- desktop/src-common/advent/screens/title.clj | 30 ++++----- desktop/src-common/advent/steam.clj | 63 +++++++++++-------- desktop/src-common/advent/utils.clj | 25 ++++---- 13 files changed, 86 insertions(+), 88 deletions(-) diff --git a/desktop/src-common/advent/actions.clj b/desktop/src-common/advent/actions.clj index bdc13ed8..0950e4c1 100644 --- a/desktop/src-common/advent/actions.clj +++ b/desktop/src-common/advent/actions.clj @@ -136,7 +136,7 @@ current-zoom (get-in entities [:cam :zoom] 1.0) ;; don't zoom if it's a subtle difference - target-zoom (if (< (Math/abs (- target-zoom current-zoom)) + target-zoom (if (< (Math/abs (double (- target-zoom current-zoom))) 0.07) current-zoom target-zoom) @@ -402,11 +402,11 @@ target-y (get-in entities [:room :entities target-id :y]) target-x (get-in entities [:room :entities target-id :x]) width (or (get-in entities [:room :entities target-id :width]) - (.getRegionWidth (get-in entities [:room :entities target-id :object]))) + (texture! (get-in entities [:room :entities target-id]) :get-region-width)) origin-x (get-in entities [:room :entities target-id :origin-x]) target-x (if (nil? origin-x) (+ target-x (/ width 2)) target-x ) height (or (get-in entities [:room :entities target-id :height]) - (.getRegionHeight (get-in entities [:room :entities target-id :object]))) + (texture! (get-in entities [:room :entities target-id]) :get-region-height)) scaled (get-in entities [:room :entities target-id :scaled]) scale-fn (get-in entities [:room :scale-fn]) scale (get-in entities [:room :entities target-id :scale-y] 1) diff --git a/desktop/src-common/advent/pathfind.clj b/desktop/src-common/advent/pathfind.clj index ab212617..d4af555f 100644 --- a/desktop/src-common/advent/pathfind.clj +++ b/desktop/src-common/advent/pathfind.clj @@ -77,9 +77,10 @@ ty (long ty)] (if (= 0 (nth (nth my-map tx) ty)) nil - (let [cost-so-far ^java.util.HashMap (java.util.HashMap. {play-loc 0}) - came-from ^java.util.HashMap (java.util.HashMap.) - fronteir ^java.util.PriorityQueue (java.util.PriorityQueue. (/ (* 320 240) scale) cost-comparator)] + (let [^java.util.HashMap cost-so-far (java.util.HashMap.) + _ (.put cost-so-far play-loc 0) + ^java.util.HashMap came-from (java.util.HashMap.) + ^java.util.PriorityQueue fronteir (java.util.PriorityQueue. (/ (* 320 240) scale) cost-comparator)] (.offer fronteir [0 play-loc]) (loop [current-loc (.poll fronteir)] (if (or (nil? current-loc) diff --git a/desktop/src-common/advent/screens/credits.clj b/desktop/src-common/advent/screens/credits.clj index 5dcd970e..952549b0 100644 --- a/desktop/src-common/advent/screens/credits.clj +++ b/desktop/src-common/advent/screens/credits.clj @@ -203,6 +203,6 @@ :on-touch-up (fn [screen [entities]] (set-screen! @(resolve 'advent.core/advent) @(resolve 'advent.screens.title/title-screen))) - :on-resize (fn [{:keys [width height viewport]} entities] + :on-resize (fn [{:keys [width height ^FitViewport viewport]} entities] (.update viewport width height))) diff --git a/desktop/src-common/advent/screens/dialogue.clj b/desktop/src-common/advent/screens/dialogue.clj index fb47c077..48b227bc 100644 --- a/desktop/src-common/advent/screens/dialogue.clj +++ b/desktop/src-common/advent/screens/dialogue.clj @@ -57,14 +57,11 @@ p (NinePatchEntity. (skin! (skin "ui/ui.json") :get-patch "ui-bg")) _ (nine-patch! p :set-padding 25 25 5 15) - bg (drawable :nine-patch (:object p)) tr (bitmap-font! font :get-region) scale (/ scale 2) scale (or (min (max scale 0.2) 0.25) 0.25) - tx (.getTexture tr) - _ (texture! tx :set-filter Texture$TextureFilter/Linear Texture$TextureFilter/Linear) + _ (.setFilter (.getTexture tr) Texture$TextureFilter/Linear Texture$TextureFilter/Linear) style (style :label font color) - #_#__ (set! (.background style) bg) [source-x source-y] [x y] [x y] (scene-world->talk-world scene-viewport [source-x @@ -100,7 +97,7 @@ (dissoc entities (or id :fg-actions))) - :on-resize (fn [{:keys [viewport width height]} entities] + :on-resize (fn [{:keys [^FitViewport viewport width height]} entities] (.update viewport width height))) (def choice-height 40) @@ -125,10 +122,9 @@ (let [font (bitmap-font "ego/font.fnt" ) tr (bitmap-font! font :get-region) scale 1 - tx (.getTexture tr) p (NinePatchEntity. (skin! (skin "ui/ui.json") :get-patch "ui-bg")) _ (nine-patch! p :set-padding 25 25 5 15) - _ (texture! tx :set-filter Texture$TextureFilter/Linear Texture$TextureFilter/Linear)] + _ (.setFilter (.getTexture tr) Texture$TextureFilter/Linear Texture$TextureFilter/Linear)] {:state {:object nil :callback nil :choices [] @@ -182,7 +178,7 @@ (style-label e (get-in entities [:state :font]) [x y])) entities)) - :on-resize (fn [{:keys [width height viewport]} entities] + :on-resize (fn [{:keys [width height ^FitViewport viewport]} entities] (.update viewport width height))) (defscreen toast-screen @@ -206,11 +202,9 @@ p (nine-patch {:region (:object (utils/get-texture "talk-bg-2.png")) :left 9 :top 9 :right 9 :bottom 9}) _ (nine-patch! p :set-padding 25 25 5 15) - bg (drawable :nine-patch (:object p)) tr (bitmap-font! font :get-region) - tx (.getTexture tr) - _ (texture! tx :set-filter Texture$TextureFilter/Linear Texture$TextureFilter/Linear) + _ (.setFilter (.getTexture tr) Texture$TextureFilter/Linear Texture$TextureFilter/Linear) style (style :label font (color :red)) [x y] [(/ 1280 2) (/ 960 2)] @@ -230,5 +224,5 @@ (dissoc entities :dialogue)) - :on-resize (fn [{:keys [viewport width height]} entities] + :on-resize (fn [{:keys [^FitViewport viewport width height]} entities] (.update viewport width height))) diff --git a/desktop/src-common/advent/screens/fade.clj b/desktop/src-common/advent/screens/fade.clj index 299f9ec3..991fb84a 100644 --- a/desktop/src-common/advent/screens/fade.clj +++ b/desktop/src-common/advent/screens/fade.clj @@ -11,7 +11,8 @@ [com.badlogic.gdx.graphics.g2d TextureRegion] [com.badlogic.gdx.utils Align] [com.badlogic.gdx Application Audio Files Game Gdx Graphics Input - InputMultiplexer InputProcessor Net Preferences Screen])) + InputMultiplexer InputProcessor Net Preferences Screen] + [com.badlogic.gdx.utils.viewport FitViewport])) (defscreen fade-screen @@ -37,6 +38,6 @@ :update-fade (fn [{:keys [opacity]} [entities]] (assoc-in entities [:fade :opacity] opacity)) - :on-resize (fn [{:keys [width height viewport]} entities] - (.update viewport width height))) + :on-resize (fn [{:keys [width height ^FitViewport viewport]} entities] + (.update ^FitViewport viewport width height))) diff --git a/desktop/src-common/advent/screens/inventory.clj b/desktop/src-common/advent/screens/inventory.clj index 59807486..0d06569a 100644 --- a/desktop/src-common/advent/screens/inventory.clj +++ b/desktop/src-common/advent/screens/inventory.clj @@ -194,5 +194,5 @@ (left-click screen entities) (right-click screen entities)))) - :on-resize (fn [screen entities] - (.update (:viewport screen) (:width screen) (:height screen) true))) + :on-resize (fn [{:keys [width height ^FitViewport viewport] :as screen} entities] + (.update viewport width height true))) diff --git a/desktop/src-common/advent/screens/rooms/outside_house.clj b/desktop/src-common/advent/screens/rooms/outside_house.clj index b7835543..bf21f803 100644 --- a/desktop/src-common/advent/screens/rooms/outside_house.clj +++ b/desktop/src-common/advent/screens/rooms/outside_house.clj @@ -550,10 +550,10 @@ (/ (:delta-time screen) (/ 1.0 60.0))) speed (if (< delta-x 0) (- speed) speed) - moved-x (if (< (Math/abs delta-x) speed) + moved-x (if (< (Math/abs (int delta-x)) speed) target-x (* speed (/ delta-x delta-x) ))] - (if (< (Math/abs delta-x) speed) + (if (< (Math/abs (int delta-x)) speed) (actions/start-animation screen (dissoc e :target-x) :stand) @@ -820,7 +820,7 @@ (let [speed 0.009 pos-f (- (* (:total-time screen) speed) (int (* (:total-time screen) speed))) v (vector-2 0 0) - a (catmull-rom-spline! (:path entity) :value-at v pos-f)] + a (catmull-rom-spline! ^CatmullRomSpline (:path entity) :value-at v pos-f)] (assoc entity :x (vector-2! v :x) :y (vector-2! v :y)))))} :cauldron (rooms/make-entity :cauldron (assoc (animation->texture screen cauldron) :x 139 :y 73 :baseline 167 diff --git a/desktop/src-common/advent/screens/safe.clj b/desktop/src-common/advent/screens/safe.clj index 7c51c2f1..13afbe92 100644 --- a/desktop/src-common/advent/screens/safe.clj +++ b/desktop/src-common/advent/screens/safe.clj @@ -107,6 +107,6 @@ (sound! (utils/load-sound "inside-house/close-safe.ogg") :play (utils/current-sound-volume 0.3)) (close entities))))))) - :on-resize (fn [{:keys [width height viewport]} entities] + :on-resize (fn [{:keys [width height ^FitViewport viewport]} entities] (.update viewport width height))) diff --git a/desktop/src-common/advent/screens/scene.clj b/desktop/src-common/advent/screens/scene.clj index 3c6810e9..22f75df1 100644 --- a/desktop/src-common/advent/screens/scene.clj +++ b/desktop/src-common/advent/screens/scene.clj @@ -1398,7 +1398,7 @@ void main () (tween/tween :fade-out screen [:fade :opacity] 0.0 1.0 1.0 :finish #(do (utils/stop-all-sounds! %) - (.clear @(resolve 'advent.core/am)) + (asset-manager! @(resolve 'advent.core/am) :clear) (set-screen! @(resolve 'advent.core/advent) @(resolve 'advent.screens.title/title-screen)) %)))))) diff --git a/desktop/src-common/advent/screens/splash.clj b/desktop/src-common/advent/screens/splash.clj index a6976082..96280323 100644 --- a/desktop/src-common/advent/screens/splash.clj +++ b/desktop/src-common/advent/screens/splash.clj @@ -151,6 +151,6 @@ (utils/toggle-fullscreen!)) nil) - :on-resize (fn [{:keys [viewport width height]} [entities]] + :on-resize (fn [{:keys [^FitViewport viewport width height]} [entities]] (.update viewport width height false) nil)) diff --git a/desktop/src-common/advent/screens/title.clj b/desktop/src-common/advent/screens/title.clj index 91f5a56f..ffac4801 100644 --- a/desktop/src-common/advent/screens/title.clj +++ b/desktop/src-common/advent/screens/title.clj @@ -20,11 +20,11 @@ [advent.version] ) (:import [com.badlogic.gdx.graphics Pixmap Pixmap$Filter Texture Texture$TextureFilter Color] - [com.badlogic.gdx.graphics.g2d TextureRegion] + [com.badlogic.gdx.graphics.g2d TextureRegion NinePatch] [play_clj.entities NinePatchEntity] [com.badlogic.gdx.utils.viewport FitViewport] - [com.badlogic.gdx.scenes.scene2d.ui Slider$SliderStyle Widget ButtonGroup TextButton$TextButtonStyle CheckBox$CheckBoxStyle CheckBox Button] - [com.badlogic.gdx.scenes.scene2d Group Actor] + [com.badlogic.gdx.scenes.scene2d.ui Slider$SliderStyle Widget ButtonGroup TextButton$TextButtonStyle CheckBox$CheckBoxStyle CheckBox Button ImageButton ScrollPane] + [com.badlogic.gdx.scenes.scene2d Group Actor Stage] [play_clj.entities ActorEntity] [com.badlogic.gdx.utils Align] [com.badlogic.gdx.scenes.scene2d.utils NinePatchDrawable TextureRegionDrawable BaseDrawable] @@ -54,12 +54,12 @@ (defn style-slider [s mouse-pos] (if (utils/intersects? s mouse-pos) - (slider! s :set-style (:hover s)) - (slider! s :set-style (:default s))) + (slider! s :set-style ^Slider$SliderStyle (:hover s)) + (slider! s :set-style ^Slider$SliderStyle (:default s))) s) (defn center [e] - (assoc e :x (- (/ 1280 2) (/ (or (:width e) (.getWidth (:object e))) 2)))) + (assoc e :x (- (/ 1280 2) (/ (or (:width e) (.getWidth ^Actor (:object e))) 2)))) (defn get-dir [old-x new-x] @@ -132,7 +132,7 @@ (tween/tween :fade-out-music screen [:volume] 1.0 0.0 1.0))))) (defn button-style [] - (let [style (skin! (skin "ui/ui.json") :get TextButton$TextButtonStyle) + (let [^TextButton$TextButtonStyle style (skin! (skin "ui/ui.json") :get TextButton$TextButtonStyle) tx (-> style .font .getRegion .getTexture)] (call! ^Texture tx :set-filter Texture$TextureFilter/Linear Texture$TextureFilter/Linear) @@ -160,10 +160,6 @@ (defn make-checkbox ([msg checked & rest] (let [s (skin! (skin "ui/ui.json") :get CheckBox$CheckBoxStyle)] - (-> s - .font - ) - (doto (merge (check-box msg s) (apply hash-map rest)) (set-checkbox-state checked) @@ -177,7 +173,7 @@ p (NinePatchEntity. (skin! (skin "ui/ui.json") :get-patch "ui-bg")) _ (nine-patch! p :set-padding 0 0 0 0) - bg (drawable :nine-patch (:object p)) + bg (drawable :nine-patch ^NinePatch (:object p)) style (style :label font (or col (color 1.0 0.3 0.3 1.0))) #_#__ (set! (.background style) bg)] (-> msg @@ -277,7 +273,7 @@ (every-pred :save #(utils/intersects? % [x y])) (vals entities)))) -(defn saves-table [entities stage] +(defn saves-table [entities ^Stage stage] (let [group (doto (ButtonGroup.) (.setMaxCheckCount 1) (.setMinCheckCount 0) @@ -299,7 +295,7 @@ )) save-object)] - (.add group (:object btn)) + (.add group ^ImageButton (:object btn)) (ActorEntity. (:object btn)))) save-screenshots (map make-save-screenshot (:saves-list entities)) grouped-screenshots (->> (partition-all 2 save-screenshots) @@ -308,7 +304,7 @@ scroll-pane (doto (scroll-pane (table grouped-screenshots) (skin "ui/ui.json")) (scroll-pane! :set-fade-scroll-bars false))] - (.setScrollFocus stage (:object scroll-pane)) + (.setScrollFocus stage ^ScrollPane (:object scroll-pane)) [scroll-pane :colspan 3 :height 190 :pad-bottom 4 :width 472])) @@ -444,7 +440,7 @@ :on-ui-changed - (fn [{:keys [actor] :as screen} [entities]] + (fn [{:keys [^Actor actor] :as screen} [entities]] (when-not (get-in entities [:tweens :fade-out]) (let [e (-> actor .getUserObject) actor-key (:key e)] @@ -554,6 +550,6 @@ :else entities)))) - :on-resize (fn [{:keys [viewport width height]} [entities]] + :on-resize (fn [{:keys [^FitViewport viewport width height]} [entities]] (.update viewport width height false) nil)) diff --git a/desktop/src-common/advent/steam.clj b/desktop/src-common/advent/steam.clj index 45542ed1..c2d6d21c 100644 --- a/desktop/src-common/advent/steam.clj +++ b/desktop/src-common/advent/steam.clj @@ -5,7 +5,8 @@ ) (:import [java.nio ByteBuffer CharBuffer] [java.io ByteArrayOutputStream] - [com.badlogic.gdx.graphics PixmapIO$PNG] + [com.badlogic.gdx.graphics Pixmap PixmapIO$PNG] + [com.badlogic.gdx.files FileHandle] )) (def has-steam? @@ -37,31 +38,39 @@ (when (SteamAPI/isSteamRunning) (SteamAPI/runCallbacks)))) -(defn achievement-fn [f achievement] - (steamify - (let [stats (atom nil)] - (log/info "Getting stats...") - (reset! stats (SteamUserStats. (reify SteamUserStatsCallback - (onUserStatsReceived [_ _ _ _] - (f @stats achievement) - ) - (onUserStatsStored [_ _ _]) - (onUserAchievementStored [_ _ _ _ _ _])))) - (.requestCurrentStats @stats)))) +(if has-steam? + (eval + '(do + (defn achievement-fn [f achievement] + (steamify + (let [stats (atom nil)] + (log/info "Getting stats...") + (reset! stats (SteamUserStats. (reify SteamUserStatsCallback + (onUserStatsReceived [_ _ _ _] + (f @stats achievement) + ) + (onUserStatsStored [_ _ _]) + (onUserAchievementStored [_ _ _ _ _ _])))) + (.requestCurrentStats @stats)))) -(def set-achievement (partial achievement-fn - (fn [stats achievement] - (log/info "Setting achievement" achievement) - (.setAchievement stats achievement) - (.storeStats stats) - (log/info "Done setting achievement" achievement)))) + (def set-achievement (partial achievement-fn + (fn [^SteamUserStats stats ^String achievement] + (log/info "Setting achievement" achievement) + (.setAchievement stats achievement) + (.storeStats stats) + (log/info "Done setting achievement" achievement)))) -(def clear-achievement (partial achievement-fn - (fn [stats achievement] - (log/info "Clearing achievement" achievement) - (.clearAchievement stats achievement) - (.storeStats stats) - (log/info "Done clearing achievement" achievement)))) + (def clear-achievement (partial achievement-fn + (fn [^SteamUserStats stats ^String achievement] + (log/info "Clearing achievement" achievement) + (.clearAchievement stats achievement) + (.storeStats stats) + (log/info "Done clearing achievement" achievement))))) + + ) + (do + (defn set-achievement [achievement]) + (defn clear-achievement [achievement]))) (def all-achievements ["PARDON" "EX_CON" "PRO_WRESTLER" "SHEEP_HORDER" "SAFE_AND_SOUND" "DESTINY" "WISE_UP" "BLOODCLOT" "KITTY_KISS"]) @@ -101,11 +110,11 @@ n)) (if is-app-store? (for [save-file (.list (files! :external "saves/") ".edn")] - (str "saves/" (.name save-file))) + (str "saves/" (.name ^FileHandle save-file))) (for [save-file (.list (files! :local "saves/") ".edn")] - (str "saves/" (.name save-file)))))) + (str "saves/" (.name ^FileHandle save-file)))))) -(defn save-screenshot [pm filename] +(defn save-screenshot [^Pixmap pm ^String filename] (steamify (let [rs (SteamRemoteStorage. nil) png (PixmapIO$PNG. (* (.getWidth pm) (.getHeight pm) 1.5)) diff --git a/desktop/src-common/advent/utils.clj b/desktop/src-common/advent/utils.clj index 6f55943c..dceff039 100644 --- a/desktop/src-common/advent/utils.clj +++ b/desktop/src-common/advent/utils.clj @@ -27,7 +27,7 @@ (let [{:keys [x y]} (input->screen screen {:x (:input-x screen) :y (:input-y screen)})] (log/info (:input-x screen) (:input-y screen) "->" x y))) -(def +all-cursors+ [:main :wool :mushrooms :carrot :right :down :left :up :flask :flask-with-contents :trophy :ladder :stick :cat-toy :balloon :frog-legs :teddy :portrait :recipe :glass-eye :motivational-tapes :used-earplugs :grass :slobber :flask-with-strength :medal :kiss :sword :hourglass :mandrake :ball-n-chain :key :rope :crowbar :note-1 :ash :sack-lunch :flies :spear :monocle :feather :spell-component :money :charcoal :broken-clock :slingshot :camera :walkie-talkies :alarm-clock :walkie-talkie :flask-water :flask-water-stuff :flask-water-stuff-2 :note-2 :magic-slingshot :active-main :shovel :broom :tune]) +(def ^:const +all-cursors+ [:main :wool :mushrooms :carrot :right :down :left :up :flask :flask-with-contents :trophy :ladder :stick :cat-toy :balloon :frog-legs :teddy :portrait :recipe :glass-eye :motivational-tapes :used-earplugs :grass :slobber :flask-with-strength :medal :kiss :sword :hourglass :mandrake :ball-n-chain :key :rope :crowbar :note-1 :ash :sack-lunch :flies :spear :monocle :feather :spell-component :money :charcoal :broken-clock :slingshot :camera :walkie-talkies :alarm-clock :walkie-talkie :flask-water :flask-water-stuff :flask-water-stuff-2 :note-2 :magic-slingshot :active-main :shovel :broom :tune]) (def settings (atom {:music-volume 50.0 :sound-volume 75.0 @@ -67,7 +67,7 @@ (defn snapshot-list [] (->> (for [filename (steam/list-edn-files)] (try - (edn/read-string (String. (steam/get-bytes filename) "UTF-8")) + (edn/read-string (String. ^bytes (steam/get-bytes filename) "UTF-8")) (catch Exception _ nil))) (filter (every-pred identity :name :id)) (sort-by (fn [s] @@ -79,7 +79,7 @@ (doall (for [snapshot (snapshot-list)] (assoc-in snapshot [:screenshot] (try (let [bytes (steam/get-bytes (:screenshot snapshot))] - (Pixmap. bytes 0 (count bytes))) + (Pixmap. ^bytes bytes 0 (count bytes))) (catch Exception e (Pixmap. 160 120 Pixmap$Format/RGB888))))))) @@ -122,8 +122,8 @@ (steam/write-bytes (steam/save-file-name id) (.getBytes (pr-str save) "UTF-8")) (on-gl (let [gl-func (fn [] (let [_ (Pixmap/setFilter Pixmap$Filter/BiLinear) - viewport (-> @ (resolve 'advent.screens.scene/scene) :screen deref :viewport) - [x y w h g-l g-r] [(.getScreenX viewport) (.getScreenY viewport) (.getScreenWidth viewport) (.getScreenHeight viewport)] + viewport (-> @ (resolve 'advent.screens.scene/scene) :screen deref :viewport) + [x y w h g-l g-r] [(.getScreenX ^FitViewport viewport) (.getScreenY ^FitViewport viewport) (.getScreenWidth ^FitViewport viewport) (.getScreenHeight ^FitViewport viewport)] pm (ScreenUtils/getFrameBufferPixmap x y w h) resized (Pixmap. 160 120 Pixmap$Format/RGB888) _ (.drawPixmap resized pm 0 0 w h 0 0 160 120)] @@ -212,7 +212,7 @@ (texture! frame :flip true false) frame)))) -(defn split-texture [file [tile-width tile-height] frames] +(defn split-texture [file [^int tile-width ^int tile-height] frames] (let [sheet (get-texture file) sheet-obj ^TextureRegion (:object sheet) width ^int (int (.getRegionWidth sheet-obj)) @@ -222,12 +222,11 @@ :let [new-tex ^TextureRegion (TextureRegion. sheet-obj)]] (do (.setRegion new-tex - (unchecked-add x (unchecked-multiply tile-width frame)) + ^int (unchecked-add x (unchecked-multiply tile-width frame)) y tile-width tile-height) - (->TextureEntity new-tex)))) - ) + (->TextureEntity new-tex))))) (defn make-anim [file [w h] speed frames] (animation speed (split-texture file [w h] frames))) @@ -361,7 +360,7 @@ (let [current-action (get-in entities [:fg-actions :current]) is-script-running (get-in entities [:fg-actions :script-running?])] (and is-script-running - (not ( #{nil :end :none-but-arrow} (get-in entities [:fg-actions :last-skip-type])))))) + (not (#{:end :none-but-arrow} (or (get-in entities [:fg-actions :last-skip-type]) :end)))))) (defn update-override [{:keys [^FitViewport viewport] :as screen} entities] (let [raw-pos (get-in entities [:cursor :last-pos]) @@ -451,16 +450,14 @@ (do (log/info "Making windowed 800x600 decorated window") (System/setProperty "org.lwjgl.opengl.Window.undecorated", "false") - (.setFullscreenMode Gdx/graphics 800 600))) + (.setFullscreenMode Gdx/graphics (.getDisplayMode Gdx/graphics)))) (defmethod make-fullscreen :linux [] (let [width (-> Gdx/graphics .getDisplayMode .width) height (-> Gdx/graphics .getDisplayMode .height)] (log/info "Making fullscreen " width "x" height " as undecorated window") (System/setProperty "org.lwjgl.opengl.Window.undecorated", "true") - (.setFullscreenMode Gdx/graphics - width - height))) + (.setFullscreenMode Gdx/graphics (.getDisplayMode Gdx/graphics)))) (defmethod is-fullscreen? :linux [] (= "true" (System/getProperty "org.lwjgl.opengl.Window.undecorated")))