# HG changeset patch # User Robert McIntyre # Date 1332578121 18000 # Node ID 3dfb9dd3db9d3b644af001b2bea697e0e85bb81d # Parent c9a855de1d070b96c219c50d54b4be03fee3b96c pokedex manipulation functions complete. diff -r c9a855de1d07 -r 3dfb9dd3db9d clojure/com/aurellem/gb/pokedex.clj --- a/clojure/com/aurellem/gb/pokedex.clj Sat Mar 24 03:10:56 2012 -0500 +++ b/clojure/com/aurellem/gb/pokedex.clj Sat Mar 24 03:35:21 2012 -0500 @@ -10,7 +10,7 @@ (+ (if capture? pokedex-captured-start-address pokedex-seen-start-address) - (int (/ species-num 8)))) + (int (/ (dec species-num) 8)))) (defn read-pokedex ([^SaveState state capture? species-num] @@ -25,7 +25,7 @@ current-bits (aget (memory state) (pokedex-offset capture? species-num)) - bit-offset (rem species-num 8)] + bit-offset (rem (dec species-num) 8)] (set-memory state target (if set? @@ -33,28 +33,36 @@ (bit-clear current-bits bit-offset)))))) (defn read-pokedex-seen - ([^SaveState state species-num] - (read-pokedex state false species-num)) - ([species-num] - (read-pokedex-seen @current-state species-num))) + ([^SaveState state species-or-num] + (read-pokedex state false + (species-name->pokedex-num + species-or-num species-or-num))) + ([species-or-num] + (read-pokedex-seen @current-state species-or-num))) (defn set-pokedex-seen - ([^SaveState state species-num] - (set-pokedex state false species-num)) - ([species-num] - (set-pokedex-seen @current-state species-num))) + ([^SaveState state species-or-num seen?] + (set-pokedex state false seen? + (species-name->pokedex-num + species-or-num species-or-num))) + ([species-or-num seen?] + (set-pokedex-seen @current-state species-or-num seen?))) (defn read-pokedex-captured - ([^SaveState state species-num] - (read-pokedex state true species-num)) - ([species-num] - (read-pokedex-captured @current-state species-num))) + ([^SaveState state species-or-num] + (read-pokedex state true + (species-name->pokedex-num + species-or-num species-or-num))) + ([species-or-num] + (read-pokedex-captured @current-state species-or-num))) (defn set-pokedex-captured - ([^SaveState state species-num] - (set-pokedex state true species-num)) - ([species-num] - (set-pokedex-captured @current-state species-num))) + ([^SaveState state species-or-num captured?] + (set-pokedex state true captured? + (species-name->pokedex-num + species-or-num species-or-num))) + ([species-or-num captured?] + (set-pokedex-captured @current-state species-or-num captured?))) (defn print-pokedex ([^SaveState state] @@ -71,6 +79,14 @@ (map #(if % " X " " ") (map read-pokedex-captured (range 152))))) (println "+-----------+-------+-------+")) + ([] (print-pokedex @current-state))) - ([] (print-pokedex @current-state))) - \ No newline at end of file +(defn give-full-pokedex + ([^SaveState state] + (reduce + (fn [state n] + (-> state + (set-pokedex-seen n true) + (set-pokedex-captured n true))) + state (range 1 152))) + ([] (give-full-pokedex @current-state))) diff -r c9a855de1d07 -r 3dfb9dd3db9d clojure/com/aurellem/gb/species.clj --- a/clojure/com/aurellem/gb/species.clj Sat Mar 24 03:10:56 2012 -0500 +++ b/clojure/com/aurellem/gb/species.clj Sat Mar 24 03:35:21 2012 -0500 @@ -368,159 +368,6 @@ 150 :mewtwo 151 :mew}) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file +(def species-name->pokedex-num + (zipmap (vals pokedex-num->species-name) + (keys pokedex-num->species-name)))