Mercurial > vba-clojure
diff clojure/com/aurellem/gb/badges.clj @ 228:edce489c3c21
fixed badge order, added HM-mew, mapped out some more memory
author | Robert McIntyre <rlm@mit.edu> |
---|---|
date | Sat, 24 Mar 2012 13:15:15 -0500 |
parents | d5dddf33543c |
children |
line wrap: on
line diff
1.1 --- a/clojure/com/aurellem/gb/badges.clj Sat Mar 24 05:45:06 2012 -0500 1.2 +++ b/clojure/com/aurellem/gb/badges.clj Sat Mar 24 13:15:15 2012 -0500 1.3 @@ -1,10 +1,10 @@ 1.4 (ns com.aurellem.gb.badges 1.5 (:use (com.aurellem.gb gb-driver util constants)) 1.6 - (:use (com.aurellem.world practice)) 1.7 (:import [com.aurellem.gb.gb_driver SaveState])) 1.8 1.9 -(def badges '(:boulder :cascade :thunder :marsh :rainbow :soul :volcano 1.10 - :earth)) 1.11 +(def badges 1.12 + '(:boulder :cascade :thunder :rainbow 1.13 + :soul :marsh :volcano :earth)) 1.14 1.15 (defn get-badges 1.16 "Returns a list of the current badges held by the player." 1.17 @@ -12,16 +12,16 @@ 1.18 ((fn this [coll n] 1.19 (cond (zero? n) '() 1.20 (zero? (rem n 2)) (recur (pop coll) (int (/ n 2))) 1.21 - :else (cons (peek coll) (this (pop coll) (int (/ n 1.22 - 2)))))) 1.23 + :else (cons 1.24 + (peek coll) 1.25 + (this (pop coll) (int (/ n 2)))))) 1.26 badges 1.27 - (aget (memory state) 0xD355) 1.28 - )) 1.29 + (aget (memory state) 0xD355))) 1.30 ([] (get-badges @current-state))) 1.31 1.32 (defn set-badges 1.33 - "Sets the badges held by the player. badge-list may contain :boulder 1.34 -:cascade :thunder :marsh :rainbow :soul :volcano." 1.35 + "Sets the badges held by the player. badge-list may contain 1.36 + :boulder :cascade :thunder :marsh :rainbow :soul :volcano." 1.37 ([state badge-list] 1.38 (let [has-badge (set badge-list)] 1.39 (->> 1.40 @@ -30,27 +30,13 @@ 1.41 (empty? coll) n 1.42 (has-badge (peek coll)) (recur (inc(* 2 n)) (pop coll)) 1.43 :else (recur (* 2 n) (pop coll)))) 1.44 - 1.45 0 1.46 (vec badges)) 1.47 (set-memory state 0xD355)))) 1.48 - 1.49 - 1.50 ([badge-list] (set-badges @current-state badge-list))) 1.51 1.52 - 1.53 - 1.54 - 1.55 - 1.56 - 1.57 - 1.58 - ;; (let [mem (aget (memory state) 0xD354)] 1.59 - ;; ((fn this [coll n] 1.60 - ;; (cond (zero? n) '() 1.61 - ;; (zero? (rem n 2)) (recur (pop coll) (int (/ n 2))) 1.62 - ;; :else (cons (peek coll) (this (pop coll) (int (/ n 1.63 - ;; 2)))))) 1.64 - ;; badges 1.65 - ;; (aget (memory state) 0xD354) 1.66 - ;; ))) 1.67 - 1.68 \ No newline at end of file 1.69 +(defn give-all-badges 1.70 + ([^SaveState state] 1.71 + (set-badges state badges)) 1.72 + ([] (give-all-badges @current-state))) 1.73 + 1.74 \ No newline at end of file