diff options
author | Rangi <remy.oukaour+rangi42@gmail.com> | 2021-03-03 22:22:41 -0500 |
---|---|---|
committer | Rangi <remy.oukaour+rangi42@gmail.com> | 2021-03-04 00:15:03 -0500 |
commit | 40902ffe244544d638567642e4e01b9c5801db23 (patch) | |
tree | 4abf9ac20786fdf66bb298b3ec7935cef2c71d07 /engine/items/item_effects.asm | |
parent | 9c17fb14c8068d6662b9ca1cb048ed206b6770ee (diff) |
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
Diffstat (limited to 'engine/items/item_effects.asm')
-rw-r--r-- | engine/items/item_effects.asm | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/engine/items/item_effects.asm b/engine/items/item_effects.asm index d4a969c24..b7d979fd9 100644 --- a/engine/items/item_effects.asm +++ b/engine/items/item_effects.asm @@ -12,7 +12,8 @@ _DoItemEffect:: ret ItemEffects: -; entries correspond to item ids +; entries correspond to item ids (see constants/item_constants.asm) + table_width 2, ItemEffects dw PokeBallEffect ; MASTER_BALL dw PokeBallEffect ; ULTRA_BALL dw NoEffect ; BRIGHTPOWDER @@ -192,6 +193,21 @@ ItemEffects: dw PokeBallEffect ; PARK_BALL dw NoEffect ; RAINBOW_WING dw NoEffect ; ITEM_B3 + assert_table_length ITEM_B3 +; The items past ITEM_B3 do not have effect entries: +; BRICK_PIECE +; SURF_MAIL +; LITEBLUEMAIL +; PORTRAITMAIL +; LOVELY_MAIL +; EON_MAIL +; MORPH_MAIL +; BLUESKY_MAIL +; MUSIC_MAIL +; MIRAGE_MAIL +; ITEM_BE +; They all have the ITEMMENU_NOUSE attribute so they can't be used anyway. +; NoEffect would be appropriate, with the table then being NUM_ITEMS long. PokeBallEffect: ld a, [wBattleMode] |