rlm@225: (ns com.aurellem.gb.rival-name rlm@225: (:use (com.aurellem.gb gb-driver util characters)) rlm@225: (:import [com.aurellem.gb.gb_driver SaveState])) rlm@225: rlm@225: rlm@225: (def rival-name-start-address 0xD349) rlm@225: rlm@225: (def rival-name-width 12) rlm@225: rlm@225: (defn read-rival-name rlm@225: ([^SaveState state] rlm@225: (read-name (subvec (vec (memory state)) rlm@225: rival-name-start-address rlm@225: (+ rival-name-start-address rlm@225: rival-name-width)))) rlm@225: ([] (read-rival-name @current-state))) rlm@225: rlm@225: (defn set-rival-name rlm@225: ([^SaveState state new-name] rlm@225: (assert (<= (count new-name) 10)) rlm@225: (let [codes (str->character-codes new-name)] rlm@225: (set-memory-range state rlm@225: rival-name-start-address rlm@225: (concat codes [end-of-name-sentinel])))) rlm@225: ([new-name] (set-rival-name @current-state new-name))) rlm@225: rlm@225: