diff clojure/com/aurellem/gb/hxc.clj @ 283:516acb83410f

Added the hardcoded list of moves that the TMs and HMs teach.
author Dylan Holmes <ocsenave@gmail.com>
date Wed, 28 Mar 2012 04:52:09 -0500
parents 0c3fbb313e49
children 33c546273619
line wrap: on
line diff
     1.1 --- a/clojure/com/aurellem/gb/hxc.clj	Wed Mar 28 03:28:36 2012 -0500
     1.2 +++ b/clojure/com/aurellem/gb/hxc.clj	Wed Mar 28 04:52:09 2012 -0500
     1.3 @@ -20,9 +20,10 @@
     1.4    "Convert the string of alphabetic/space characters into a keyword by
     1.5    replacing spaces with hyphens and converting to lowercase."
     1.6    [s]
     1.7 +  (if (nil? s) nil
     1.8    (keyword (.toLowerCase
     1.9              (apply str
    1.10 -                   (map #(if (= % \space) "-" %) s)))))
    1.11 +                   (map #(if (= % \space) "-" %) s))))))
    1.12  
    1.13  
    1.14  ;; used to decode item prices
    1.15 @@ -304,8 +305,6 @@
    1.16       (hxc-dialog com.aurellem.gb.gb-driver/original-rom)))
    1.17  
    1.18  
    1.19 -
    1.20 -
    1.21  (def hxc-move-names
    1.22    "The hardcoded move names in memory. List begins at ROM@BC000"
    1.23    (hxc-thunk-words 0xBC000 1551))
    1.24 @@ -372,7 +371,25 @@
    1.25                                   (drop 0x38000 rom))))))))
    1.26    
    1.27  
    1.28 -
    1.29 +(defn hxc-machines
    1.30 +  "The hardcoded moves taught by TMs and HMs. List begins at ROM@0x1232D."
    1.31 +  ([] (hxc-machines
    1.32 +       com.aurellem.gb.gb-driver/original-rom))
    1.33 +  ([rom]
    1.34 +     (let [moves (hxc-move-names rom)]
    1.35 +       (zipmap
    1.36 +        (range)
    1.37 +        (take-while
    1.38 +            (comp not nil?)
    1.39 +            (map (comp
    1.40 +                  format-name
    1.41 +                  (zipmap
    1.42 +                   (range)
    1.43 +                   moves)
    1.44 +              dec)
    1.45 +                 (take 100
    1.46 +                       (drop 0x1232D rom))))))))
    1.47 +  
    1.48  (defn hxc-pokenames
    1.49    "The hardcoded names of the 190 species in memory. List begins at
    1.50  ROM@E8000. Although names in memory are padded with 0x50 to be 10 characters
    1.51 @@ -602,7 +619,7 @@
    1.52                type-2
    1.53                rarity
    1.54                rating-xp
    1.55 -              pic-dimensions
    1.56 +              pic-dimensions ;; tile_width|tile_height (8px/tile)
    1.57                ptr-pic-obverse-1
    1.58                ptr-pic-obverse-2
    1.59                ptr-pic-reverse-1
    1.60 @@ -769,6 +786,8 @@
    1.61  
    1.62  
    1.63  
    1.64 +;; note: 0x2f31 contains the names "TM" "HM"?
    1.65 +
    1.66  ;; note for later: credits start at F1290
    1.67  
    1.68