diff --git a/desktop/src-common/advent/screens/title.clj b/desktop/src-common/advent/screens/title.clj index 57c2dbdf..dd8146f0 100644 --- a/desktop/src-common/advent/screens/title.clj +++ b/desktop/src-common/advent/screens/title.clj @@ -245,6 +245,7 @@ (.addActor (:object (doto (image (texture screenshot)) (image! :set-size (- cell-w 16) (- cell-h 16))))) (.addActor (:object (make-label (str " " (or blurb name))))) + )) save-object)] @@ -418,15 +419,28 @@ (= :continue actor-key) (start-playing screen entities (:selected-save entities)) + (:save-to-remove e) + (do + (utils/remove-save (:save-to-remove e)) + (as-> entities entities + (dissoc entities :save-menu) + (assoc entities :saves-list (doto (utils/snapshot-screenshots) + println)) + (assoc entities :save-menu (saves-menu entities (:renderer screen))))) + (:save e) (do (if (text-button! e :is-checked) (do (label! (-> entities :save-menu :save-label) :set-text (:name (:save e))) (text-button! (-> entities :save-menu :continue-button) :set-disabled false) + (.addActor (:object e) (:object (doto (make-button "X" :save-to-remove (:id (:save e))) + (text-button! :set-x 180) + (text-button! :set-y 120)))) (assoc entities :selected-save (:save e))) (do (label! (-> entities :save-menu :save-label) :set-text "") + (.removeActor (:object e) (last (.getChildren (:object e)))) (text-button! (-> entities :save-menu :continue-button) :set-disabled true)))) (:chapter e) diff --git a/desktop/src-common/advent/utils.clj b/desktop/src-common/advent/utils.clj index a5f7d9ac..72c192de 100644 --- a/desktop/src-common/advent/utils.clj +++ b/desktop/src-common/advent/utils.clj @@ -121,6 +121,17 @@ (.write png f resized) (.dispose png))))) +(defn remove-save [id] + (let [prefs (.getPreferences (Gdx/app) "ticks-tales-saves") + saves (if (.contains prefs "saves") + (edn/read-string (.getString prefs "saves")) + []) + saves (filter (comp (complement #{id}) :id) saves)] + (.putString prefs "saves" (pr-str saves)) + (.flush prefs) + (on-gl (let [f (FileHandle. (save-screenshot-file-name id))] + (.delete f))))) + (defn save-settings! [] (doto (.getPreferences (Gdx/app) "ticks-tales-saves") (.putString "settings" (pr-str @settings))