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