Mercurial > vba-clojure
annotate clojure/com/aurellem/gb/species.clj @ 182:f0c1e5574e81
finished mapping out pokemon memory region.
author | Robert McIntyre <rlm@mit.edu> |
---|---|
date | Thu, 22 Mar 2012 06:07:31 -0500 |
parents | 76b031d2f586 |
children | 9a7a46c4aa1b |
rev | line source |
---|---|
rlm@165 | 1 (ns com.aurellem.gb.species |
rlm@165 | 2 (:use (com.aurellem.gb gb-driver util)) |
rlm@165 | 3 (:import [com.aurellem.gb.gb_driver SaveState])) |
rlm@165 | 4 |
rlm@165 | 5 (def species-code->species-name |
rlm@165 | 6 {0x01 :rhydon |
rlm@165 | 7 0x02 :kangaskhan |
rlm@165 | 8 0x03 :nidoran-male |
rlm@165 | 9 0x04 :clefairy |
rlm@165 | 10 0x05 :spearow |
rlm@165 | 11 0x06 :voltorb |
rlm@165 | 12 0x07 :nidoking |
rlm@165 | 13 0x08 :slowbro |
rlm@165 | 14 0x09 :ivysaur |
rlm@165 | 15 0x0A :exeggutor |
rlm@165 | 16 0x0B :lickitung |
rlm@165 | 17 0x0C :exeggcute |
rlm@165 | 18 0x0D :grimer |
rlm@165 | 19 0x0E :gengar |
rlm@165 | 20 0x0F :nidoran-female |
rlm@165 | 21 0x10 :nidoqueen |
rlm@165 | 22 0x11 :cubone |
rlm@165 | 23 0x12 :rhyhorn |
rlm@165 | 24 0x13 :lapras |
rlm@165 | 25 0x14 :arcanine |
rlm@165 | 26 0x15 :mew |
rlm@165 | 27 0x16 :gyarados |
rlm@165 | 28 0x17 :shellder |
rlm@165 | 29 0x18 :tentacool |
rlm@165 | 30 0x19 :gastly |
rlm@165 | 31 0x1A :scyther |
rlm@165 | 32 0x1B :staryu |
rlm@165 | 33 0x1C :blastoise |
rlm@165 | 34 0x1D :pinsir |
rlm@165 | 35 0x1E :tangela |
rlm@165 | 36 0x21 :growlithe |
rlm@165 | 37 0x22 :onix |
rlm@165 | 38 0x23 :fearow |
rlm@165 | 39 0x24 :pidgey |
rlm@165 | 40 0x25 :slowpoke |
rlm@165 | 41 0x26 :kadabra |
rlm@165 | 42 0x27 :graveler |
rlm@165 | 43 0x28 :chansey |
rlm@165 | 44 0x29 :machoke |
rlm@165 | 45 0x2A :mr-mime |
rlm@165 | 46 0x2B :hitmonlee |
rlm@165 | 47 0x2C :hitmonchan |
rlm@165 | 48 0x2D :arbok |
rlm@165 | 49 0x2E :parasect |
rlm@165 | 50 0x2F :psyduck |
rlm@165 | 51 0x30 :drowzee |
rlm@165 | 52 0x31 :golem |
rlm@165 | 53 0x33 :magmar |
rlm@165 | 54 0x35 :electabuzz |
rlm@165 | 55 0x36 :magneton |
rlm@165 | 56 0x37 :koffing |
rlm@165 | 57 0x39 :mankey |
rlm@165 | 58 0x3A :seel |
rlm@165 | 59 0x3B :diglett |
rlm@165 | 60 0x3C :tauros |
rlm@165 | 61 0x40 :farfetch'd |
rlm@165 | 62 0x41 :venonat |
rlm@165 | 63 0x42 :dragonite |
rlm@165 | 64 0x46 :doduo |
rlm@165 | 65 0x47 :poliwag |
rlm@165 | 66 0x48 :jynx |
rlm@165 | 67 0x49 :moltres |
rlm@165 | 68 0x4A :articuno |
rlm@165 | 69 0x4B :zapdos |
rlm@165 | 70 0x4C :ditto |
rlm@165 | 71 0x4D :meowth |
rlm@165 | 72 0x4E :krabby |
rlm@165 | 73 0x52 :vulpix |
rlm@165 | 74 0x53 :ninetails |
rlm@165 | 75 0x54 :pikachu |
rlm@165 | 76 0x55 :riachu |
rlm@165 | 77 0x58 :dratini |
rlm@165 | 78 0x59 :dragonair |
rlm@165 | 79 0x5A :kabuto |
rlm@165 | 80 0x5B :kabutops |
rlm@165 | 81 0x5C :horsea |
rlm@165 | 82 0x5D :sedra |
rlm@165 | 83 0x60 :sandshrew |
rlm@165 | 84 0x61 :sandslash |
rlm@165 | 85 0x62 :omanyte |
rlm@165 | 86 0x63 :omastar |
rlm@165 | 87 0x64 :jigglypuff |
rlm@165 | 88 0x65 :wigglytuff |
rlm@165 | 89 0x66 :eevee |
rlm@165 | 90 0x67 :flareon |
rlm@165 | 91 0x68 :jolteon |
rlm@165 | 92 0x69 :vaporeon |
rlm@165 | 93 0x6A :machop |
rlm@165 | 94 0x6B :zubat |
rlm@165 | 95 0x6C :ekans |
rlm@165 | 96 0x6D :paras |
rlm@165 | 97 0x6E :poliwhirl |
rlm@165 | 98 0x6F :poliwrath |
rlm@165 | 99 0x70 :weedle |
rlm@165 | 100 0x71 :kakuna |
rlm@165 | 101 0x72 :beedrill |
rlm@165 | 102 0x74 :dodrio |
rlm@165 | 103 0x75 :primeape |
rlm@165 | 104 0x76 :dugtrio |
rlm@165 | 105 0x77 :venomoth |
rlm@165 | 106 0x78 :dewgong |
rlm@165 | 107 0x7B :caterpie |
rlm@165 | 108 0x7C :metapod |
rlm@165 | 109 0x7D :butterfree |
rlm@165 | 110 0x7E :machamp |
rlm@165 | 111 0x80 :golduck |
rlm@165 | 112 0x81 :hypno |
rlm@165 | 113 0x82 :golbat |
rlm@165 | 114 0x83 :mewtwo |
rlm@165 | 115 0x84 :snorlax |
rlm@165 | 116 0x85 :magikarp |
rlm@165 | 117 0x88 :muk |
rlm@165 | 118 0x8A :kingler |
rlm@165 | 119 0x8B :cloyster |
rlm@165 | 120 0x8D :electrode |
rlm@165 | 121 0x8E :clefable |
rlm@165 | 122 0x8F :wheezing |
rlm@165 | 123 0x90 :persian |
rlm@165 | 124 0x91 :marowak |
rlm@165 | 125 0x93 :haunter |
rlm@165 | 126 0x94 :abra |
rlm@165 | 127 0x95 :alakazam |
rlm@165 | 128 0x96 :pidgeotto |
rlm@165 | 129 0x97 :pidgeot |
rlm@165 | 130 0x98 :starmie |
rlm@165 | 131 0x99 :bulbasaur |
rlm@165 | 132 0x9A :venusaur |
rlm@165 | 133 0x9B :tentacruel |
rlm@165 | 134 0x9D :goldeen |
rlm@165 | 135 0x9E :seaking |
rlm@165 | 136 0xA3 :ponyta |
rlm@165 | 137 0xA4 :rapidash |
rlm@165 | 138 0xA5 :rattata |
rlm@165 | 139 0xA6 :raticate |
rlm@165 | 140 0xA7 :nidorino |
rlm@165 | 141 0xA8 :nidorina |
rlm@165 | 142 0xA9 :geodude |
rlm@165 | 143 0xAA :porygon |
rlm@165 | 144 0xAB :aerodactyl |
rlm@165 | 145 0xAD :magnemite |
rlm@165 | 146 0xB0 :charmander |
rlm@165 | 147 0xB1 :squirtle |
rlm@165 | 148 0xB2 :charmeleon |
rlm@165 | 149 0xB3 :wartortle |
rlm@165 | 150 0xB4 :charizard |
rlm@165 | 151 0xB9 :oddish |
rlm@165 | 152 0xBA :gloom |
rlm@165 | 153 0xBB :vileplume |
rlm@165 | 154 0xBC :bellsprout |
rlm@165 | 155 0xBD :weepenbell |
rlm@165 | 156 0xBE :victreebel}) |
rlm@165 | 157 |
rlm@165 | 158 (def species-ID-1 0xD163) |
rlm@165 | 159 |
rlm@165 | 160 (def species-name->species-code |
rlm@165 | 161 (zipmap (vals species-code->species-name) |
rlm@165 | 162 (keys species-code->species-name))) |
rlm@165 | 163 |
rlm@165 | 164 (defn set-species |
rlm@165 | 165 ([^SaveState state pokemon-num species-name] |
rlm@165 | 166 (assert (<= 0 pokemon-num 5)) |
rlm@165 | 167 (let [species-code (species-name->species-code |
rlm@165 | 168 species-name |
rlm@165 | 169 species-name)] |
rlm@165 | 170 |
rlm@165 | 171 (set-memory state (+ species-ID-1 pokemon-num) |
rlm@165 | 172 species-code))) |
rlm@165 | 173 ([pokemon-num species-name] |
rlm@166 | 174 (set-species @current-state pokemon-num species-name))) |
rlm@166 | 175 |
rlm@166 | 176 |