Verify data table and name list sizes with assertion macros

Fixes #312
This commit is contained in:
Rangi 2021-03-25 16:33:05 -04:00
parent e1f6bb5393
commit 95ec2cf039
139 changed files with 863 additions and 437 deletions

View file

@ -17,6 +17,7 @@ ENDC
ENDM
KeyItemBitfield:
table_width 1, KeyItemBitfield
key_item_bits \
FALSE, \ ; MASTER_BALL
FALSE, \ ; ULTRA_BALL
@ -101,3 +102,4 @@ KeyItemBitfield:
FALSE, \ ; MAX_ETHER
FALSE, \ ; ELIXER
FALSE ; MAX_ELIXER
assert_table_length (NUM_ITEMS + 7) / 8

View file

@ -1,98 +1,101 @@
ItemNames::
db "MASTER BALL@"
db "ULTRA BALL@"
db "GREAT BALL@"
db "POKé BALL@"
db "TOWN MAP@"
db "BICYCLE@"
db "?????@"
db "SAFARI BALL@"
db "POKéDEX@"
db "MOON STONE@"
db "ANTIDOTE@"
db "BURN HEAL@"
db "ICE HEAL@"
db "AWAKENING@"
db "PARLYZ HEAL@"
db "FULL RESTORE@"
db "MAX POTION@"
db "HYPER POTION@"
db "SUPER POTION@"
db "POTION@"
db "BOULDERBADGE@"
db "CASCADEBADGE@"
db "THUNDERBADGE@"
db "RAINBOWBADGE@"
db "SOULBADGE@"
db "MARSHBADGE@"
db "VOLCANOBADGE@"
db "EARTHBADGE@"
db "ESCAPE ROPE@"
db "REPEL@"
db "OLD AMBER@"
db "FIRE STONE@"
db "THUNDERSTONE@"
db "WATER STONE@"
db "HP UP@"
db "PROTEIN@"
db "IRON@"
db "CARBOS@"
db "CALCIUM@"
db "RARE CANDY@"
db "DOME FOSSIL@"
db "HELIX FOSSIL@"
db "SECRET KEY@"
db "?????@"
db "BIKE VOUCHER@"
db "X ACCURACY@"
db "LEAF STONE@"
db "CARD KEY@"
db "NUGGET@"
db "PP UP@"
db "POKé DOLL@"
db "FULL HEAL@"
db "REVIVE@"
db "MAX REVIVE@"
db "GUARD SPEC.@"
db "SUPER REPEL@"
db "MAX REPEL@"
db "DIRE HIT@"
db "COIN@"
db "FRESH WATER@"
db "SODA POP@"
db "LEMONADE@"
db "S.S.TICKET@"
db "GOLD TEETH@"
db "X ATTACK@"
db "X DEFEND@"
db "X SPEED@"
db "X SPECIAL@"
db "COIN CASE@"
db "OAK's PARCEL@"
db "ITEMFINDER@"
db "SILPH SCOPE@"
db "POKé FLUTE@"
db "LIFT KEY@"
db "EXP.ALL@"
db "OLD ROD@"
db "GOOD ROD@"
db "SUPER ROD@"
db "PP UP@"
db "ETHER@"
db "MAX ETHER@"
db "ELIXER@"
db "MAX ELIXER@"
db "B2F@"
db "B1F@"
db "1F@"
db "2F@"
db "3F@"
db "4F@"
db "5F@"
db "6F@"
db "7F@"
db "8F@"
db "9F@"
db "10F@"
db "11F@"
db "B4F@"
list_start ItemNames
li "MASTER BALL"
li "ULTRA BALL"
li "GREAT BALL"
li "POKé BALL"
li "TOWN MAP"
li "BICYCLE"
li "?????"
li "SAFARI BALL"
li "POKéDEX"
li "MOON STONE"
li "ANTIDOTE"
li "BURN HEAL"
li "ICE HEAL"
li "AWAKENING"
li "PARLYZ HEAL"
li "FULL RESTORE"
li "MAX POTION"
li "HYPER POTION"
li "SUPER POTION"
li "POTION"
li "BOULDERBADGE"
li "CASCADEBADGE"
li "THUNDERBADGE"
li "RAINBOWBADGE"
li "SOULBADGE"
li "MARSHBADGE"
li "VOLCANOBADGE"
li "EARTHBADGE"
li "ESCAPE ROPE"
li "REPEL"
li "OLD AMBER"
li "FIRE STONE"
li "THUNDERSTONE"
li "WATER STONE"
li "HP UP"
li "PROTEIN"
li "IRON"
li "CARBOS"
li "CALCIUM"
li "RARE CANDY"
li "DOME FOSSIL"
li "HELIX FOSSIL"
li "SECRET KEY"
li "?????"
li "BIKE VOUCHER"
li "X ACCURACY"
li "LEAF STONE"
li "CARD KEY"
li "NUGGET"
li "PP UP"
li "POKé DOLL"
li "FULL HEAL"
li "REVIVE"
li "MAX REVIVE"
li "GUARD SPEC."
li "SUPER REPEL"
li "MAX REPEL"
li "DIRE HIT"
li "COIN"
li "FRESH WATER"
li "SODA POP"
li "LEMONADE"
li "S.S.TICKET"
li "GOLD TEETH"
li "X ATTACK"
li "X DEFEND"
li "X SPEED"
li "X SPECIAL"
li "COIN CASE"
li "OAK's PARCEL"
li "ITEMFINDER"
li "SILPH SCOPE"
li "POKé FLUTE"
li "LIFT KEY"
li "EXP.ALL"
li "OLD ROD"
li "GOOD ROD"
li "SUPER ROD"
li "PP UP"
li "ETHER"
li "MAX ETHER"
li "ELIXER"
li "MAX ELIXER"
assert_list_length NUM_ITEMS
li "B2F"
li "B1F"
li "1F"
li "2F"
li "3F"
li "4F"
li "5F"
li "6F"
li "7F"
li "8F"
li "9F"
li "10F"
li "11F"
li "B4F"
assert_list_length NUM_ITEMS + NUM_FLOORS

View file

@ -1,4 +1,5 @@
ItemPrices::
table_width 3, ItemPrices
money 0 ; MASTER_BALL
money 1200 ; ULTRA_BALL
money 600 ; GREAT_BALL
@ -82,6 +83,7 @@ ItemPrices::
money 0 ; MAX_ETHER
money 0 ; ELIXER
money 0 ; MAX_ELIXER
assert_table_length NUM_ITEMS
money 0 ; FLOOR_B2F
money 0 ; FLOOR_B1F
money 0 ; FLOOR_1F
@ -96,3 +98,4 @@ ItemPrices::
money 0 ; FLOOR_10F
money 0 ; FLOOR_11F
money 0 ; FLOOR_B4F
assert_table_length NUM_ITEMS + NUM_FLOORS

View file

@ -1,5 +1,6 @@
TechnicalMachinePrices:
; In thousands (nybbles).
table_width 1, TechnicalMachinePrices
dn 3, 2 ; TM01, TM02
dn 2, 1 ; TM03, TM04
dn 3, 4 ; TM05, TM06
@ -25,3 +26,4 @@ TechnicalMachinePrices:
dn 2, 4 ; TM45, TM46
dn 3, 4 ; TM47, TM48
dn 4, 2 ; TM49, TM50
assert_table_length (NUM_TMS + 1) / 2