summaryrefslogtreecommitdiff
path: root/data/sprites
diff options
context:
space:
mode:
authorRangi <remy.oukaour+rangi42@gmail.com>2021-03-03 22:22:41 -0500
committerRangi <remy.oukaour+rangi42@gmail.com>2021-03-05 16:10:25 -0500
commit5454e1e0deefc6b4fc8c4de0e63314052fceebc0 (patch)
tree565805b252fa596aab3f80b3128ebc91b1fae540 /data/sprites
parentb423e94be700cc6434465cf1dcccf0b677489192 (diff)
Verify data table sizes with table_width and assert_table_length macros
It also uncovered some off-by-one issues with defining some constants. A few structs now use rsreset/_RS to define their offset constants.
Diffstat (limited to 'data/sprites')
-rw-r--r--data/sprites/emotes.asm2
-rw-r--r--data/sprites/facings.asm9
-rw-r--r--data/sprites/map_objects.asm3
-rw-r--r--data/sprites/sprite_mons.asm2
-rw-r--r--data/sprites/sprites.asm2
5 files changed, 13 insertions, 5 deletions
diff --git a/data/sprites/emotes.asm b/data/sprites/emotes.asm
index 2371c462..32f4c259 100644
--- a/data/sprites/emotes.asm
+++ b/data/sprites/emotes.asm
@@ -7,6 +7,7 @@ ENDM
Emotes:
; entries correspond to EMOTE_* constants
+ table_width EMOTE_LENGTH, Emotes
emote ShockEmote, 4, $f8
emote QuestionEmote, 4, $f8
emote HappyEmote, 4, $f8
@@ -19,3 +20,4 @@ Emotes:
emote FishingRodGFX, 2, $fc
emote BoulderDustGFX, 2, $fe
emote GrassRustleGFX, 1, $fe
+ assert_table_length NUM_EMOTES
diff --git a/data/sprites/facings.asm b/data/sprites/facings.asm
index ccf91082..405194f6 100644
--- a/data/sprites/facings.asm
+++ b/data/sprites/facings.asm
@@ -1,5 +1,6 @@
Facings:
-; entries correspond to FACING_* constants
+; entries correspond to FACING_* constants (see constants/map_object_constants.asm)
+ table_width 2, Facings
dw FacingStepDown0
dw FacingStepDown1
dw FacingStepDown2
@@ -32,10 +33,8 @@ Facings:
dw FacingBoulderDust2
dw FacingGrass1
dw FacingGrass2
-.End
- dw 0
-
-NUM_FACINGS EQU (Facings.End - Facings) / 2
+ assert_table_length NUM_FACINGS
+ dw 0 ; end
; Tables used as a reference to transform OAM data.
diff --git a/data/sprites/map_objects.asm b/data/sprites/map_objects.asm
index 05b2e084..60a71813 100644
--- a/data/sprites/map_objects.asm
+++ b/data/sprites/map_objects.asm
@@ -1,5 +1,6 @@
SpriteMovementData::
; entries correspond to SPRITEMOVEDATA_* constants
+ table_width NUM_SPRITEMOVEDATA_FIELDS, SpriteMovementData
; SPRITEMOVEDATA_00
db SPRITEMOVEFN_00 ; movement function
@@ -304,3 +305,5 @@ SpriteMovementData::
db 0 ; flags1
db 0 ; flags2
db 0 ; palette flags
+
+ assert_table_length NUM_SPRITEMOVEDATA + 1
diff --git a/data/sprites/sprite_mons.asm b/data/sprites/sprite_mons.asm
index 3d53804d..9d3e62ac 100644
--- a/data/sprites/sprite_mons.asm
+++ b/data/sprites/sprite_mons.asm
@@ -1,5 +1,6 @@
SpriteMons:
; entries correspond to SPRITE_* constants past SPRITE_POKEMON
+ table_width 1, SpriteMons
db UNOWN
db GEODUDE
db GROWLITHE
@@ -35,3 +36,4 @@ SpriteMons:
db GYARADOS
db LUGIA
db HO_OH
+ assert_table_length NUM_POKEMON_SPRITES
diff --git a/data/sprites/sprites.asm b/data/sprites/sprites.asm
index b3035fe2..c0b5a3a1 100644
--- a/data/sprites/sprites.asm
+++ b/data/sprites/sprites.asm
@@ -6,6 +6,7 @@ ENDM
OverworldSprites:
; entries correspond to SPRITE_* constants
+ table_width NUM_SPRITEDATA_FIELDS, OverworldSprites
overworld_sprite ChrisSpriteGFX, 12, WALKING_SPRITE, PAL_OW_RED
overworld_sprite ChrisBikeSpriteGFX, 12, WALKING_SPRITE, PAL_OW_RED
overworld_sprite GameboyKidSpriteGFX, 12, STANDING_SPRITE, PAL_OW_GREEN
@@ -101,3 +102,4 @@ OverworldSprites:
overworld_sprite FruitTreeSpriteGFX, 4, STILL_SPRITE, PAL_OW_TREE
overworld_sprite GoldTrophySpriteGFX, 4, STILL_SPRITE, PAL_OW_BROWN
overworld_sprite SilverTrophySpriteGFX, 4, STILL_SPRITE, PAL_OW_SILVER
+ assert_table_length NUM_OVERWORLD_SPRITES