Mercurial > vba-clojure
annotate clojure/com/aurellem/gb/rival_name.clj @ 263:a44a2c459aeb
Corrected hxc-evolution so that pokemon with branched evolutions (i.e. eevee) will be fully included. As a result, altered hxc-evolution to return a list of hashes, one per evolution.
author | Dylan Holmes <ocsenave@gmail.com> |
---|---|
date | Mon, 26 Mar 2012 21:25:10 -0500 |
parents | 0587f266a735 |
children |
rev | line source |
---|---|
rlm@225 | 1 (ns com.aurellem.gb.rival-name |
rlm@225 | 2 (:use (com.aurellem.gb gb-driver util characters)) |
rlm@225 | 3 (:import [com.aurellem.gb.gb_driver SaveState])) |
rlm@225 | 4 |
rlm@225 | 5 |
rlm@225 | 6 (def rival-name-start-address 0xD349) |
rlm@225 | 7 |
rlm@225 | 8 (def rival-name-width 12) |
rlm@225 | 9 |
rlm@225 | 10 (defn read-rival-name |
rlm@225 | 11 ([^SaveState state] |
rlm@225 | 12 (read-name (subvec (vec (memory state)) |
rlm@225 | 13 rival-name-start-address |
rlm@225 | 14 (+ rival-name-start-address |
rlm@225 | 15 rival-name-width)))) |
rlm@225 | 16 ([] (read-rival-name @current-state))) |
rlm@225 | 17 |
rlm@225 | 18 (defn set-rival-name |
rlm@225 | 19 ([^SaveState state new-name] |
rlm@225 | 20 (assert (<= (count new-name) 10)) |
rlm@225 | 21 (let [codes (str->character-codes new-name)] |
rlm@225 | 22 (set-memory-range state |
rlm@225 | 23 rival-name-start-address |
rlm@225 | 24 (concat codes [end-of-name-sentinel])))) |
rlm@225 | 25 ([new-name] (set-rival-name @current-state new-name))) |
rlm@225 | 26 |
rlm@225 | 27 |