Mercurial > vba-clojure
comparison clojure/com/aurellem/gb/rival_name.clj @ 225:0587f266a735
added functions for setting rival's name and text speed
author | Robert McIntyre <rlm@mit.edu> |
---|---|
date | Sat, 24 Mar 2012 05:26:33 -0500 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
224:10e26e7ceedb | 225:0587f266a735 |
---|---|
1 (ns com.aurellem.gb.rival-name | |
2 (:use (com.aurellem.gb gb-driver util characters)) | |
3 (:import [com.aurellem.gb.gb_driver SaveState])) | |
4 | |
5 | |
6 (def rival-name-start-address 0xD349) | |
7 | |
8 (def rival-name-width 12) | |
9 | |
10 (defn read-rival-name | |
11 ([^SaveState state] | |
12 (read-name (subvec (vec (memory state)) | |
13 rival-name-start-address | |
14 (+ rival-name-start-address | |
15 rival-name-width)))) | |
16 ([] (read-rival-name @current-state))) | |
17 | |
18 (defn set-rival-name | |
19 ([^SaveState state new-name] | |
20 (assert (<= (count new-name) 10)) | |
21 (let [codes (str->character-codes new-name)] | |
22 (set-memory-range state | |
23 rival-name-start-address | |
24 (concat codes [end-of-name-sentinel])))) | |
25 ([new-name] (set-rival-name @current-state new-name))) | |
26 | |
27 |