mirror of
https://github.com/thornAvery/kep-hack.git
synced 2025-09-17 02:40:50 +12:00
Use macros for packed arrays of nybbles
This commit is contained in:
parent
82f31b05c1
commit
653b62139d
|
@ -1,29 +1,54 @@
|
||||||
TechnicalMachinePrices:
|
TechnicalMachinePrices:
|
||||||
; In thousands (nybbles).
|
; In thousands (nybbles).
|
||||||
table_width 1, TechnicalMachinePrices
|
nybble_array TechnicalMachinePrices
|
||||||
dn 3, 2 ; TM01, TM02
|
nybble 3 ; TM01
|
||||||
dn 2, 1 ; TM03, TM04
|
nybble 2 ; TM02
|
||||||
dn 3, 4 ; TM05, TM06
|
nybble 2 ; TM03
|
||||||
dn 2, 4 ; TM07, TM08
|
nybble 1 ; TM04
|
||||||
dn 3, 4 ; TM09, TM10
|
nybble 3 ; TM05
|
||||||
dn 2, 1 ; TM11, TM12
|
nybble 4 ; TM06
|
||||||
dn 4, 5 ; TM13, TM14
|
nybble 2 ; TM07
|
||||||
dn 5, 5 ; TM15, TM16
|
nybble 4 ; TM08
|
||||||
dn 3, 2 ; TM17, TM18
|
nybble 3 ; TM09
|
||||||
dn 3, 2 ; TM19, TM20
|
nybble 4 ; TM10
|
||||||
dn 5, 5 ; TM21, TM22
|
nybble 2 ; TM11
|
||||||
dn 5, 2 ; TM23, TM24
|
nybble 1 ; TM12
|
||||||
dn 5, 4 ; TM25, TM26
|
nybble 4 ; TM13
|
||||||
dn 5, 2 ; TM27, TM28
|
nybble 5 ; TM14
|
||||||
dn 4, 1 ; TM29, TM30
|
nybble 5 ; TM15
|
||||||
dn 2, 1 ; TM31, TM32
|
nybble 5 ; TM16
|
||||||
dn 1, 2 ; TM33, TM34
|
nybble 3 ; TM17
|
||||||
dn 4, 2 ; TM35, TM36
|
nybble 2 ; TM18
|
||||||
dn 2, 5 ; TM37, TM38
|
nybble 3 ; TM19
|
||||||
dn 2, 4 ; TM39, TM40
|
nybble 2 ; TM20
|
||||||
dn 2, 2 ; TM41, TM42
|
nybble 5 ; TM21
|
||||||
dn 5, 2 ; TM43, TM44
|
nybble 5 ; TM22
|
||||||
dn 2, 4 ; TM45, TM46
|
nybble 5 ; TM23
|
||||||
dn 3, 4 ; TM47, TM48
|
nybble 2 ; TM24
|
||||||
dn 4, 2 ; TM49, TM50
|
nybble 5 ; TM25
|
||||||
assert_table_length (NUM_TMS + 1) / 2
|
nybble 4 ; TM26
|
||||||
|
nybble 5 ; TM27
|
||||||
|
nybble 2 ; TM28
|
||||||
|
nybble 4 ; TM29
|
||||||
|
nybble 1 ; TM30
|
||||||
|
nybble 2 ; TM31
|
||||||
|
nybble 1 ; TM32
|
||||||
|
nybble 1 ; TM33
|
||||||
|
nybble 2 ; TM34
|
||||||
|
nybble 4 ; TM35
|
||||||
|
nybble 2 ; TM36
|
||||||
|
nybble 2 ; TM37
|
||||||
|
nybble 5 ; TM38
|
||||||
|
nybble 2 ; TM39
|
||||||
|
nybble 4 ; TM40
|
||||||
|
nybble 2 ; TM41
|
||||||
|
nybble 2 ; TM42
|
||||||
|
nybble 5 ; TM43
|
||||||
|
nybble 2 ; TM44
|
||||||
|
nybble 2 ; TM45
|
||||||
|
nybble 4 ; TM46
|
||||||
|
nybble 3 ; TM47
|
||||||
|
nybble 4 ; TM48
|
||||||
|
nybble 4 ; TM49
|
||||||
|
nybble 2 ; TM50
|
||||||
|
end_nybble_array NUM_TMS
|
||||||
|
|
|
@ -1,79 +1,154 @@
|
||||||
MonPartyData:
|
MonPartyData:
|
||||||
table_width 1, MonPartyData
|
nybble_array MonPartyData
|
||||||
dn ICON_GRASS, ICON_GRASS ; Bulbasaur / Ivysaur
|
nybble ICON_GRASS ; Bulbasaur
|
||||||
dn ICON_GRASS, ICON_MON ; Venusaur / Charmander
|
nybble ICON_GRASS ; Ivysaur
|
||||||
dn ICON_MON, ICON_MON ; Charmeleon / Charizard
|
nybble ICON_GRASS ; Venusaur
|
||||||
dn ICON_WATER, ICON_WATER ; Squirtle / Wartortle
|
nybble ICON_MON ; Charmander
|
||||||
dn ICON_WATER, ICON_BUG ; Blastoise / Caterpie
|
nybble ICON_MON ; Charmeleon
|
||||||
dn ICON_BUG, ICON_BUG ; Metapod / Butterfree
|
nybble ICON_MON ; Charizard
|
||||||
dn ICON_BUG, ICON_BUG ; Weedle / Kakuna
|
nybble ICON_WATER ; Squirtle
|
||||||
dn ICON_BUG, ICON_BIRD ; Beedrill / Pidgey
|
nybble ICON_WATER ; Wartortle
|
||||||
dn ICON_BIRD, ICON_BIRD ; Pidgeotto / Pidgeot
|
nybble ICON_WATER ; Blastoise
|
||||||
dn ICON_QUADRUPED, ICON_QUADRUPED ; Rattata / Raticate
|
nybble ICON_BUG ; Caterpie
|
||||||
dn ICON_BIRD, ICON_BIRD ; Spearow / Fearow
|
nybble ICON_BUG ; Metapod
|
||||||
dn ICON_SNAKE, ICON_SNAKE ; Ekans / Arbok
|
nybble ICON_BUG ; Butterfree
|
||||||
dn ICON_FAIRY, ICON_FAIRY ; Pikachu / Raichu
|
nybble ICON_BUG ; Weedle
|
||||||
dn ICON_MON, ICON_MON ; Sandshrew / Sandslash
|
nybble ICON_BUG ; Kakuna
|
||||||
dn ICON_MON, ICON_MON ; NidoranF / Nidorina
|
nybble ICON_BUG ; Beedrill
|
||||||
dn ICON_MON, ICON_MON ; Nidoqueen / NidoranM
|
nybble ICON_BIRD ; Pidgey
|
||||||
dn ICON_MON, ICON_MON ; Nidorino / Nidoking
|
nybble ICON_BIRD ; Pidgeotto
|
||||||
dn ICON_FAIRY, ICON_FAIRY ; Clefairy / Clefable
|
nybble ICON_BIRD ; Pidgeot
|
||||||
dn ICON_QUADRUPED, ICON_QUADRUPED ; Vulpix / Ninetales
|
nybble ICON_QUADRUPED ; Rattata
|
||||||
dn ICON_FAIRY, ICON_FAIRY ; Jigglypuff / Wigglytuff
|
nybble ICON_QUADRUPED ; Raticate
|
||||||
dn ICON_MON, ICON_MON ; Zubat / Golbat
|
nybble ICON_BIRD ; Spearow
|
||||||
dn ICON_GRASS, ICON_GRASS ; Oddish / Gloom
|
nybble ICON_BIRD ; Fearow
|
||||||
dn ICON_GRASS, ICON_BUG ; Vileplume / Paras
|
nybble ICON_SNAKE ; Ekans
|
||||||
dn ICON_BUG, ICON_BUG ; Parasect / Venonat
|
nybble ICON_SNAKE ; Arbok
|
||||||
dn ICON_BUG, ICON_MON ; Venomoth / Diglett
|
nybble ICON_FAIRY ; Pikachu
|
||||||
dn ICON_MON, ICON_MON ; Dugtrio / Meowth
|
nybble ICON_FAIRY ; Raichu
|
||||||
dn ICON_MON, ICON_MON ; Persian / Psyduck
|
nybble ICON_MON ; Sandshrew
|
||||||
dn ICON_MON, ICON_MON ; Golduck / Mankey
|
nybble ICON_MON ; Sandslash
|
||||||
dn ICON_MON, ICON_QUADRUPED ; Primeape / Growlithe
|
nybble ICON_MON ; NidoranF
|
||||||
dn ICON_QUADRUPED, ICON_MON ; Arcanine / Poliwag
|
nybble ICON_MON ; Nidorina
|
||||||
dn ICON_MON, ICON_MON ; Poliwhirl / Poliwrath
|
nybble ICON_MON ; Nidoqueen
|
||||||
dn ICON_MON, ICON_MON ; Abra / Kadabra
|
nybble ICON_MON ; NidoranM
|
||||||
dn ICON_MON, ICON_MON ; Alakazam / Machop
|
nybble ICON_MON ; Nidorino
|
||||||
dn ICON_MON, ICON_MON ; Machoke / Machamp
|
nybble ICON_MON ; Nidoking
|
||||||
dn ICON_GRASS, ICON_GRASS ; Bellsprout / Weepinbell
|
nybble ICON_FAIRY ; Clefairy
|
||||||
dn ICON_GRASS, ICON_WATER ; Victreebel / Tentacool
|
nybble ICON_FAIRY ; Clefable
|
||||||
dn ICON_WATER, ICON_MON ; Tentacruel / Geodude
|
nybble ICON_QUADRUPED ; Vulpix
|
||||||
dn ICON_MON, ICON_MON ; Graveler / Golem
|
nybble ICON_QUADRUPED ; Ninetales
|
||||||
dn ICON_QUADRUPED, ICON_QUADRUPED ; Ponyta / Rapidash
|
nybble ICON_FAIRY ; Jigglypuff
|
||||||
dn ICON_QUADRUPED, ICON_MON ; Slowpoke / Slowbro
|
nybble ICON_FAIRY ; Wigglytuff
|
||||||
dn ICON_BALL, ICON_BALL ; Magnemite / Magneton
|
nybble ICON_MON ; Zubat
|
||||||
dn ICON_BIRD, ICON_BIRD ; Farfetch'd / Doduo
|
nybble ICON_MON ; Golbat
|
||||||
dn ICON_BIRD, ICON_WATER ; Dodrio / Seel
|
nybble ICON_GRASS ; Oddish
|
||||||
dn ICON_WATER, ICON_MON ; Dewgong / Grimer
|
nybble ICON_GRASS ; Gloom
|
||||||
dn ICON_MON, ICON_HELIX ; Muk / Shellder
|
nybble ICON_GRASS ; Vileplume
|
||||||
dn ICON_HELIX, ICON_MON ; Cloyster / Gastly
|
nybble ICON_BUG ; Paras
|
||||||
dn ICON_MON, ICON_MON ; Haunter / Gengar
|
nybble ICON_BUG ; Parasect
|
||||||
dn ICON_SNAKE, ICON_MON ; Onix / Drowzee
|
nybble ICON_BUG ; Venonat
|
||||||
dn ICON_MON, ICON_WATER ; Hypno / Krabby
|
nybble ICON_BUG ; Venomoth
|
||||||
dn ICON_WATER, ICON_BALL ; Kingler / Voltorb
|
nybble ICON_MON ; Diglett
|
||||||
dn ICON_BALL, ICON_GRASS ; Electrode / Exeggcute
|
nybble ICON_MON ; Dugtrio
|
||||||
dn ICON_GRASS, ICON_MON ; Exeggutor / Cubone
|
nybble ICON_MON ; Meowth
|
||||||
dn ICON_MON, ICON_MON ; Marowak / Hitmonlee
|
nybble ICON_MON ; Persian
|
||||||
dn ICON_MON, ICON_MON ; Hitmonchan / Lickitung
|
nybble ICON_MON ; Psyduck
|
||||||
dn ICON_MON, ICON_MON ; Koffing / Weezing
|
nybble ICON_MON ; Golduck
|
||||||
dn ICON_QUADRUPED, ICON_MON ; Rhyhorn / Rhydon
|
nybble ICON_MON ; Mankey
|
||||||
dn ICON_FAIRY, ICON_GRASS ; Chansey / Tangela
|
nybble ICON_MON ; Primeape
|
||||||
dn ICON_MON, ICON_WATER ; Kangaskhan / Horsea
|
nybble ICON_QUADRUPED ; Growlithe
|
||||||
dn ICON_WATER, ICON_WATER ; Seadra / Goldeen
|
nybble ICON_QUADRUPED ; Arcanine
|
||||||
dn ICON_WATER, ICON_HELIX ; Seaking / Staryu
|
nybble ICON_MON ; Poliwag
|
||||||
dn ICON_HELIX, ICON_MON ; Starmie / Mr.Mime
|
nybble ICON_MON ; Poliwhirl
|
||||||
dn ICON_BUG, ICON_MON ; Scyther / Jynx
|
nybble ICON_MON ; Poliwrath
|
||||||
dn ICON_MON, ICON_MON ; Electabuzz / Magmar
|
nybble ICON_MON ; Abra
|
||||||
dn ICON_BUG, ICON_QUADRUPED ; Pinsir / Tauros
|
nybble ICON_MON ; Kadabra
|
||||||
dn ICON_WATER, ICON_SNAKE ; Magikarp / Gyarados
|
nybble ICON_MON ; Alakazam
|
||||||
dn ICON_WATER, ICON_MON ; Lapras / Ditto
|
nybble ICON_MON ; Machop
|
||||||
dn ICON_QUADRUPED, ICON_QUADRUPED ; Eevee / Vaporeon
|
nybble ICON_MON ; Machoke
|
||||||
dn ICON_QUADRUPED, ICON_QUADRUPED ; Jolteon / Flareon
|
nybble ICON_MON ; Machamp
|
||||||
dn ICON_MON, ICON_HELIX ; Porygon / Omanyte
|
nybble ICON_GRASS ; Bellsprout
|
||||||
dn ICON_HELIX, ICON_HELIX ; Omastar / Kabuto
|
nybble ICON_GRASS ; Weepinbell
|
||||||
dn ICON_HELIX, ICON_BIRD ; Kabutops / Aerodactyl
|
nybble ICON_GRASS ; Victreebel
|
||||||
dn ICON_MON, ICON_BIRD ; Snorlax / Articuno
|
nybble ICON_WATER ; Tentacool
|
||||||
dn ICON_BIRD, ICON_BIRD ; Zapdos / Moltres
|
nybble ICON_WATER ; Tentacruel
|
||||||
dn ICON_SNAKE, ICON_SNAKE ; Dratini / Dragonair
|
nybble ICON_MON ; Geodude
|
||||||
dn ICON_SNAKE, ICON_MON ; Dragonite / Mewtwo
|
nybble ICON_MON ; Graveler
|
||||||
dn ICON_MON, 0 ; Mew / padding
|
nybble ICON_MON ; Golem
|
||||||
assert_table_length (NUM_POKEMON + 1) / 2
|
nybble ICON_QUADRUPED ; Ponyta
|
||||||
|
nybble ICON_QUADRUPED ; Rapidash
|
||||||
|
nybble ICON_QUADRUPED ; Slowpoke
|
||||||
|
nybble ICON_MON ; Slowbro
|
||||||
|
nybble ICON_BALL ; Magnemite
|
||||||
|
nybble ICON_BALL ; Magneton
|
||||||
|
nybble ICON_BIRD ; Farfetch'd
|
||||||
|
nybble ICON_BIRD ; Doduo
|
||||||
|
nybble ICON_BIRD ; Dodrio
|
||||||
|
nybble ICON_WATER ; Seel
|
||||||
|
nybble ICON_WATER ; Dewgong
|
||||||
|
nybble ICON_MON ; Grimer
|
||||||
|
nybble ICON_MON ; Muk
|
||||||
|
nybble ICON_HELIX ; Shellder
|
||||||
|
nybble ICON_HELIX ; Cloyster
|
||||||
|
nybble ICON_MON ; Gastly
|
||||||
|
nybble ICON_MON ; Haunter
|
||||||
|
nybble ICON_MON ; Gengar
|
||||||
|
nybble ICON_SNAKE ; Onix
|
||||||
|
nybble ICON_MON ; Drowzee
|
||||||
|
nybble ICON_MON ; Hypno
|
||||||
|
nybble ICON_WATER ; Krabby
|
||||||
|
nybble ICON_WATER ; Kingler
|
||||||
|
nybble ICON_BALL ; Voltorb
|
||||||
|
nybble ICON_BALL ; Electrode
|
||||||
|
nybble ICON_GRASS ; Exeggcute
|
||||||
|
nybble ICON_GRASS ; Exeggutor
|
||||||
|
nybble ICON_MON ; Cubone
|
||||||
|
nybble ICON_MON ; Marowak
|
||||||
|
nybble ICON_MON ; Hitmonlee
|
||||||
|
nybble ICON_MON ; Hitmonchan
|
||||||
|
nybble ICON_MON ; Lickitung
|
||||||
|
nybble ICON_MON ; Koffing
|
||||||
|
nybble ICON_MON ; Weezing
|
||||||
|
nybble ICON_QUADRUPED ; Rhyhorn
|
||||||
|
nybble ICON_MON ; Rhydon
|
||||||
|
nybble ICON_FAIRY ; Chansey
|
||||||
|
nybble ICON_GRASS ; Tangela
|
||||||
|
nybble ICON_MON ; Kangaskhan
|
||||||
|
nybble ICON_WATER ; Horsea
|
||||||
|
nybble ICON_WATER ; Seadra
|
||||||
|
nybble ICON_WATER ; Goldeen
|
||||||
|
nybble ICON_WATER ; Seaking
|
||||||
|
nybble ICON_HELIX ; Staryu
|
||||||
|
nybble ICON_HELIX ; Starmie
|
||||||
|
nybble ICON_MON ; Mr.Mime
|
||||||
|
nybble ICON_BUG ; Scyther
|
||||||
|
nybble ICON_MON ; Jynx
|
||||||
|
nybble ICON_MON ; Electabuzz
|
||||||
|
nybble ICON_MON ; Magmar
|
||||||
|
nybble ICON_BUG ; Pinsir
|
||||||
|
nybble ICON_QUADRUPED ; Tauros
|
||||||
|
nybble ICON_WATER ; Magikarp
|
||||||
|
nybble ICON_SNAKE ; Gyarados
|
||||||
|
nybble ICON_WATER ; Lapras
|
||||||
|
nybble ICON_MON ; Ditto
|
||||||
|
nybble ICON_QUADRUPED ; Eevee
|
||||||
|
nybble ICON_QUADRUPED ; Vaporeon
|
||||||
|
nybble ICON_QUADRUPED ; Jolteon
|
||||||
|
nybble ICON_QUADRUPED ; Flareon
|
||||||
|
nybble ICON_MON ; Porygon
|
||||||
|
nybble ICON_HELIX ; Omanyte
|
||||||
|
nybble ICON_HELIX ; Omastar
|
||||||
|
nybble ICON_HELIX ; Kabuto
|
||||||
|
nybble ICON_HELIX ; Kabutops
|
||||||
|
nybble ICON_BIRD ; Aerodactyl
|
||||||
|
nybble ICON_MON ; Snorlax
|
||||||
|
nybble ICON_BIRD ; Articuno
|
||||||
|
nybble ICON_BIRD ; Zapdos
|
||||||
|
nybble ICON_BIRD ; Moltres
|
||||||
|
nybble ICON_SNAKE ; Dratini
|
||||||
|
nybble ICON_SNAKE ; Dragonair
|
||||||
|
nybble ICON_SNAKE ; Dragonite
|
||||||
|
nybble ICON_MON ; Mewtwo
|
||||||
|
nybble ICON_MON ; Mew
|
||||||
|
end_nybble_array NUM_POKEMON
|
||||||
|
|
|
@ -38,6 +38,41 @@ x = \1
|
||||||
"{CURRENT_LIST_START}: expected {d:x} entries, got {d:list_index}"
|
"{CURRENT_LIST_START}: expected {d:x} entries, got {d:list_index}"
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
|
nybble_array: MACRO
|
||||||
|
CURRENT_NYBBLE_ARRAY_VALUE = 0
|
||||||
|
CURRENT_NYBBLE_ARRAY_LENGTH = 0
|
||||||
|
IF _NARG == 1
|
||||||
|
REDEF CURRENT_NYBBLE_ARRAY_START EQUS "\1"
|
||||||
|
ELSE
|
||||||
|
REDEF CURRENT_NYBBLE_ARRAY_START EQUS "._nybble_array\@"
|
||||||
|
{CURRENT_NYBBLE_ARRAY_START}:
|
||||||
|
ENDC
|
||||||
|
ENDM
|
||||||
|
|
||||||
|
nybble: MACRO
|
||||||
|
ASSERT 0 <= (\1) && (\1) < $10, "nybbles must be 0-15"
|
||||||
|
CURRENT_NYBBLE_ARRAY_VALUE = (\1) | (CURRENT_NYBBLE_ARRAY_VALUE << 4)
|
||||||
|
CURRENT_NYBBLE_ARRAY_LENGTH = CURRENT_NYBBLE_ARRAY_LENGTH + 1
|
||||||
|
IF CURRENT_NYBBLE_ARRAY_LENGTH % 2 == 0
|
||||||
|
db CURRENT_NYBBLE_ARRAY_VALUE
|
||||||
|
CURRENT_NYBBLE_ARRAY_VALUE = 0
|
||||||
|
ENDC
|
||||||
|
ENDM
|
||||||
|
|
||||||
|
end_nybble_array: MACRO
|
||||||
|
IF CURRENT_NYBBLE_ARRAY_LENGTH % 2
|
||||||
|
db CURRENT_NYBBLE_ARRAY_VALUE
|
||||||
|
ENDC
|
||||||
|
IF _NARG == 1
|
||||||
|
x = \1
|
||||||
|
ASSERT x == CURRENT_NYBBLE_ARRAY_LENGTH, \
|
||||||
|
"{CURRENT_NYBBLE_ARRAY_START}: expected {d:x} nybbles, got {d:CURRENT_NYBBLE_ARRAY_LENGTH}"
|
||||||
|
x = (x + 1) / 2
|
||||||
|
ASSERT x == @ - {CURRENT_NYBBLE_ARRAY_START}, \
|
||||||
|
"{CURRENT_NYBBLE_ARRAY_START}: expected {d:x} bytes"
|
||||||
|
ENDC
|
||||||
|
ENDM
|
||||||
|
|
||||||
def_grass_wildmons: MACRO
|
def_grass_wildmons: MACRO
|
||||||
;\1: encounter rate
|
;\1: encounter rate
|
||||||
CURRENT_GRASS_WILDMONS_RATE = \1
|
CURRENT_GRASS_WILDMONS_RATE = \1
|
||||||
|
|
Loading…
Reference in a new issue