view clojure/com/aurellem/gb/text_speed.clj @ 308:de172acc5a03

moved the memory manipulation functions out of world.practice and into a separate location, gb.mem-utils, to avoid cyclic load dependency. will adjust the dependent files shortly.
author Dylan Holmes <ocsenave@gmail.com>
date Sat, 31 Mar 2012 04:25:49 -0500
parents 0587f266a735
children
line wrap: on
line source
1 (ns com.aurellem.gb.text-speed
2 (:use (com.aurellem.gb gb-driver util characters))
3 (:import [com.aurellem.gb.gb_driver SaveState]))
5 (def text-speed-address 0xD354)
7 (def text-speed->code
8 {:slow 69
9 :mid 67
10 :fast 65
11 :ultra 64
12 })
14 (def code->text-speed
15 (zipmap (vals text-speed->code)
16 (keys text-speed->code)))
18 (defn read-text-speed
19 ([^SaveState state]
20 (code->text-speed (aget (memory state)
21 text-speed-address)))
22 ([] (read-text-speed @current-state)))
24 (defn set-text-speed
25 ([^SaveState state new-speed]
26 (set-memory
27 state
28 text-speed-address
29 (text-speed->code new-speed new-speed)))
30 ([new-speed] (set-text-speed @current-state new-speed)))