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