Mercurial > vba-clojure
diff clojure/com/aurellem/gb/pokedex.clj @ 223:3dfb9dd3db9d
pokedex manipulation functions complete.
author | Robert McIntyre <rlm@mit.edu> |
---|---|
date | Sat, 24 Mar 2012 03:35:21 -0500 |
parents | c9a855de1d07 |
children | 5becef6312b9 |
line wrap: on
line diff
1.1 --- a/clojure/com/aurellem/gb/pokedex.clj Sat Mar 24 03:10:56 2012 -0500 1.2 +++ b/clojure/com/aurellem/gb/pokedex.clj Sat Mar 24 03:35:21 2012 -0500 1.3 @@ -10,7 +10,7 @@ 1.4 (+ (if capture? 1.5 pokedex-captured-start-address 1.6 pokedex-seen-start-address) 1.7 - (int (/ species-num 8)))) 1.8 + (int (/ (dec species-num) 8)))) 1.9 1.10 (defn read-pokedex 1.11 ([^SaveState state capture? species-num] 1.12 @@ -25,7 +25,7 @@ 1.13 current-bits 1.14 (aget (memory state) 1.15 (pokedex-offset capture? species-num)) 1.16 - bit-offset (rem species-num 8)] 1.17 + bit-offset (rem (dec species-num) 8)] 1.18 (set-memory 1.19 state target 1.20 (if set? 1.21 @@ -33,28 +33,36 @@ 1.22 (bit-clear current-bits bit-offset)))))) 1.23 1.24 (defn read-pokedex-seen 1.25 - ([^SaveState state species-num] 1.26 - (read-pokedex state false species-num)) 1.27 - ([species-num] 1.28 - (read-pokedex-seen @current-state species-num))) 1.29 + ([^SaveState state species-or-num] 1.30 + (read-pokedex state false 1.31 + (species-name->pokedex-num 1.32 + species-or-num species-or-num))) 1.33 + ([species-or-num] 1.34 + (read-pokedex-seen @current-state species-or-num))) 1.35 1.36 (defn set-pokedex-seen 1.37 - ([^SaveState state species-num] 1.38 - (set-pokedex state false species-num)) 1.39 - ([species-num] 1.40 - (set-pokedex-seen @current-state species-num))) 1.41 + ([^SaveState state species-or-num seen?] 1.42 + (set-pokedex state false seen? 1.43 + (species-name->pokedex-num 1.44 + species-or-num species-or-num))) 1.45 + ([species-or-num seen?] 1.46 + (set-pokedex-seen @current-state species-or-num seen?))) 1.47 1.48 (defn read-pokedex-captured 1.49 - ([^SaveState state species-num] 1.50 - (read-pokedex state true species-num)) 1.51 - ([species-num] 1.52 - (read-pokedex-captured @current-state species-num))) 1.53 + ([^SaveState state species-or-num] 1.54 + (read-pokedex state true 1.55 + (species-name->pokedex-num 1.56 + species-or-num species-or-num))) 1.57 + ([species-or-num] 1.58 + (read-pokedex-captured @current-state species-or-num))) 1.59 1.60 (defn set-pokedex-captured 1.61 - ([^SaveState state species-num] 1.62 - (set-pokedex state true species-num)) 1.63 - ([species-num] 1.64 - (set-pokedex-captured @current-state species-num))) 1.65 + ([^SaveState state species-or-num captured?] 1.66 + (set-pokedex state true captured? 1.67 + (species-name->pokedex-num 1.68 + species-or-num species-or-num))) 1.69 + ([species-or-num captured?] 1.70 + (set-pokedex-captured @current-state species-or-num captured?))) 1.71 1.72 (defn print-pokedex 1.73 ([^SaveState state] 1.74 @@ -71,6 +79,14 @@ 1.75 (map #(if % " X " " ") 1.76 (map read-pokedex-captured (range 152))))) 1.77 (println "+-----------+-------+-------+")) 1.78 + ([] (print-pokedex @current-state))) 1.79 1.80 - ([] (print-pokedex @current-state))) 1.81 - 1.82 \ No newline at end of file 1.83 +(defn give-full-pokedex 1.84 + ([^SaveState state] 1.85 + (reduce 1.86 + (fn [state n] 1.87 + (-> state 1.88 + (set-pokedex-seen n true) 1.89 + (set-pokedex-captured n true))) 1.90 + state (range 1 152))) 1.91 + ([] (give-full-pokedex @current-state)))