Mercurial > vba-clojure
diff clojure/com/aurellem/gb/species.clj @ 191:893c753f8088
added function to set ROM
author | Robert McIntyre <rlm@mit.edu> |
---|---|
date | Thu, 22 Mar 2012 20:10:09 -0500 |
parents | 9a7a46c4aa1b |
children | 85a2c2e2d318 |
line wrap: on
line diff
1.1 --- a/clojure/com/aurellem/gb/species.clj Thu Mar 22 16:34:10 2012 -0500 1.2 +++ b/clojure/com/aurellem/gb/species.clj Thu Mar 22 20:10:09 2012 -0500 1.3 @@ -1,5 +1,5 @@ 1.4 (ns com.aurellem.gb.species 1.5 - (:use (com.aurellem.gb gb-driver util)) 1.6 + (:use (com.aurellem.gb gb-driver util constants)) 1.7 (:import [com.aurellem.gb.gb_driver SaveState])) 1.8 1.9 (def species-code->species-name 1.10 @@ -186,3 +186,29 @@ 1.11 (set-species @current-state poke-num species-name))) 1.12 1.13 1.14 +(def pokemon-1-species2-address 0xD16A) 1.15 + 1.16 +(defn pokemon-species2-address [poke-num] 1.17 + (+ pokemon-1-species2-address 1.18 + (* pokemon-record-width poke-num))) 1.19 + 1.20 +(defn read-species2 1.21 + ([^SaveState state poke-num] 1.22 + (species-code->species-name 1.23 + (aget (memory state) 1.24 + (pokemon-species2-address poke-num)))) 1.25 + ([poke-num] 1.26 + (read-species2 @current-state poke-num))) 1.27 + 1.28 +(defn set-species2 1.29 + ([^SaveState state poke-num new-species] 1.30 + (let [species-code (species-name->species-code 1.31 + new-species 1.32 + new-species)] 1.33 + 1.34 + (set-memory state (pokemon-species2-address poke-num) 1.35 + species-code))) 1.36 + ([poke-num new-species] 1.37 + (set-species2 @current-state poke-num new-species))) 1.38 + 1.39 + 1.40 \ No newline at end of file