Verify data table sizes with table_width and assert_table_length macros

This was discussed in #706

It also uncovered some off-by-one issues with defining some constants.

A few structs now use rsreset/_RS to define their offset constants, as discussed in #739
This commit is contained in:
Rangi
2021-03-03 22:22:41 -05:00
parent 9c17fb14c8
commit 40902ffe24
148 changed files with 608 additions and 237 deletions

View File

@@ -1305,7 +1305,9 @@ MapObjectPals::
INCLUDE "gfx/overworld/npc_sprites.pal"
RoofPals:
table_width PAL_COLOR_SIZE * 2 * 2, RoofPals
INCLUDE "gfx/tilesets/roofs.pal"
assert_table_length NUM_MAP_GROUPS + 1
DiplomaPalettes:
INCLUDE "gfx/diploma/diploma.pal"

View File

@@ -311,7 +311,7 @@ GetTrainerPic:
ld a, [wTrainerClass]
and a
ret z
cp NUM_TRAINER_CLASSES
cp NUM_TRAINER_CLASSES + 1
ret nc
call WaitBGMap
xor a

View File

@@ -12,7 +12,8 @@ DoAnimFrame:
jp hl
.Jumptable:
; entries correspond to SPRITE_ANIM_SEQ_* constants
; entries correspond to SPRITE_ANIM_SEQ_* constants (see constants/sprite_anim_constants.asm)
table_width 2, DoAnimFrame.Jumptable
dw AnimSeq_Null
dw AnimSeq_PartyMon
dw AnimSeq_PartyMonSwitch
@@ -48,6 +49,7 @@ DoAnimFrame:
dw AnimSeq_IntroUnown
dw AnimSeq_IntroUnownF
dw AnimSeq_IntroSuicuneAway
assert_table_length NUM_SPRITE_ANIM_SEQS
AnimSeq_Null:
ret