diff options
author | Rangi <remy.oukaour+rangi42@gmail.com> | 2021-03-25 16:33:05 -0400 |
---|---|---|
committer | Rangi <remy.oukaour+rangi42@gmail.com> | 2021-03-25 16:44:41 -0400 |
commit | 95ec2cf039f0efdc6dadfb6fe766ace231a1b6b1 (patch) | |
tree | 5a7b79846bd7f07e40310da46b21873774a08ef7 /data/moves | |
parent | e1f6bb53939be34f55e05cbbd19cd758936b3422 (diff) |
Verify data table and name list sizes with assertion macros
Fixes #312
Diffstat (limited to 'data/moves')
-rw-r--r-- | data/moves/animations.asm | 3 | ||||
-rw-r--r-- | data/moves/effects_pointers.asm | 2 | ||||
-rw-r--r-- | data/moves/field_move_names.asm | 1 | ||||
-rw-r--r-- | data/moves/moves.asm | 8 | ||||
-rw-r--r-- | data/moves/names.asm | 332 | ||||
-rw-r--r-- | data/moves/sfx.asm | 2 | ||||
-rw-r--r-- | data/moves/tmhm_moves.asm | 3 |
7 files changed, 182 insertions, 169 deletions
diff --git a/data/moves/animations.asm b/data/moves/animations.asm index 8249c50d..0d8a2bd4 100644 --- a/data/moves/animations.asm +++ b/data/moves/animations.asm @@ -1,4 +1,5 @@ AttackAnimationPointers: + table_width 2, AttackAnimationPointers dw PoundAnim dw KarateChopAnim dw DoubleSlapAnim @@ -164,6 +165,7 @@ AttackAnimationPointers: dw SlashAnim dw SubstituteAnim dw StruggleAnim + assert_table_length NUM_ATTACKS dw ShowPicAnim dw EnemyFlashAnim dw PlayerFlashAnim @@ -201,6 +203,7 @@ AttackAnimationPointers: dw HidePicAnim dw ThrowRockAnim dw ThrowBaitAnim + assert_table_length NUM_ATTACK_ANIMS dw ZigZagScreenAnim ; each animation is a list of subanimations diff --git a/data/moves/effects_pointers.asm b/data/moves/effects_pointers.asm index a5e3d852..c33a5fd6 100644 --- a/data/moves/effects_pointers.asm +++ b/data/moves/effects_pointers.asm @@ -1,5 +1,6 @@ MoveEffectPointerTable: ; entries correspond to *_EFFECT constants + table_width 2, MoveEffectPointerTable dw SleepEffect ; EFFECT_01 dw PoisonEffect ; POISON_SIDE_EFFECT1 dw DrainHPEffect ; DRAIN_HP_EFFECT @@ -86,3 +87,4 @@ MoveEffectPointerTable: dw LeechSeedEffect ; LEECH_SEED_EFFECT dw SplashEffect ; SPLASH_EFFECT dw DisableEffect ; DISABLE_EFFECT + assert_table_length NUM_MOVE_EFFECTS diff --git a/data/moves/field_move_names.asm b/data/moves/field_move_names.asm index b68ed828..f8966733 100644 --- a/data/moves/field_move_names.asm +++ b/data/moves/field_move_names.asm @@ -1,3 +1,4 @@ +; see also FieldMoveDisplayData FieldMoveNames: db "CUT@" db "FLY@" diff --git a/data/moves/moves.asm b/data/moves/moves.asm index 85b6dcfc..0e52e01c 100644 --- a/data/moves/moves.asm +++ b/data/moves/moves.asm @@ -1,6 +1,3 @@ -Moves: -; Characteristics of each move. - move: MACRO db \1 ; animation (interchangeable with move id) db \2 ; effect @@ -10,8 +7,10 @@ move: MACRO db \6 ; pp ENDM +Moves: +; Characteristics of each move. + table_width MOVE_LENGTH, Moves move POUND, NO_ADDITIONAL_EFFECT, 40, NORMAL, 100, 35 -MoveEnd: move KARATE_CHOP, NO_ADDITIONAL_EFFECT, 50, NORMAL, 100, 25 move DOUBLESLAP, TWO_TO_FIVE_ATTACKS_EFFECT, 15, NORMAL, 85, 10 move COMET_PUNCH, TWO_TO_FIVE_ATTACKS_EFFECT, 18, NORMAL, 85, 15 @@ -176,3 +175,4 @@ MoveEnd: move SLASH, NO_ADDITIONAL_EFFECT, 70, NORMAL, 100, 20 move SUBSTITUTE, SUBSTITUTE_EFFECT, 0, NORMAL, 100, 10 move STRUGGLE, RECOIL_EFFECT, 50, NORMAL, 100, 10 + assert_table_length NUM_ATTACKS diff --git a/data/moves/names.asm b/data/moves/names.asm index cbb1a322..e9591619 100644 --- a/data/moves/names.asm +++ b/data/moves/names.asm @@ -1,166 +1,168 @@ MoveNames:: - db "POUND@" - db "KARATE CHOP@" - db "DOUBLESLAP@" - db "COMET PUNCH@" - db "MEGA PUNCH@" - db "PAY DAY@" - db "FIRE PUNCH@" - db "ICE PUNCH@" - db "THUNDERPUNCH@" - db "SCRATCH@" - db "VICEGRIP@" - db "GUILLOTINE@" - db "RAZOR WIND@" - db "SWORDS DANCE@" - db "CUT@" - db "GUST@" - db "WING ATTACK@" - db "WHIRLWIND@" - db "FLY@" - db "BIND@" - db "SLAM@" - db "VINE WHIP@" - db "STOMP@" - db "DOUBLE KICK@" - db "MEGA KICK@" - db "JUMP KICK@" - db "ROLLING KICK@" - db "SAND-ATTACK@" - db "HEADBUTT@" - db "HORN ATTACK@" - db "FURY ATTACK@" - db "HORN DRILL@" - db "TACKLE@" - db "BODY SLAM@" - db "WRAP@" - db "TAKE DOWN@" - db "THRASH@" - db "DOUBLE-EDGE@" - db "TAIL WHIP@" - db "POISON STING@" - db "TWINEEDLE@" - db "PIN MISSILE@" - db "LEER@" - db "BITE@" - db "GROWL@" - db "ROAR@" - db "SING@" - db "SUPERSONIC@" - db "SONICBOOM@" - db "DISABLE@" - db "ACID@" - db "EMBER@" - db "FLAMETHROWER@" - db "MIST@" - db "WATER GUN@" - db "HYDRO PUMP@" - db "SURF@" - db "ICE BEAM@" - db "BLIZZARD@" - db "PSYBEAM@" - db "BUBBLEBEAM@" - db "AURORA BEAM@" - db "HYPER BEAM@" - db "PECK@" - db "DRILL PECK@" - db "SUBMISSION@" - db "LOW KICK@" - db "COUNTER@" - db "SEISMIC TOSS@" - db "STRENGTH@" - db "ABSORB@" - db "MEGA DRAIN@" - db "LEECH SEED@" - db "GROWTH@" - db "RAZOR LEAF@" - db "SOLARBEAM@" - db "POISONPOWDER@" - db "STUN SPORE@" - db "SLEEP POWDER@" - db "PETAL DANCE@" - db "STRING SHOT@" - db "DRAGON RAGE@" - db "FIRE SPIN@" - db "THUNDERSHOCK@" - db "THUNDERBOLT@" - db "THUNDER WAVE@" - db "THUNDER@" - db "ROCK THROW@" - db "EARTHQUAKE@" - db "FISSURE@" - db "DIG@" - db "TOXIC@" - db "CONFUSION@" - db "PSYCHIC@" - db "HYPNOSIS@" - db "MEDITATE@" - db "AGILITY@" - db "QUICK ATTACK@" - db "RAGE@" - db "TELEPORT@" - db "NIGHT SHADE@" - db "MIMIC@" - db "SCREECH@" - db "DOUBLE TEAM@" - db "RECOVER@" - db "HARDEN@" - db "MINIMIZE@" - db "SMOKESCREEN@" - db "CONFUSE RAY@" - db "WITHDRAW@" - db "DEFENSE CURL@" - db "BARRIER@" - db "LIGHT SCREEN@" - db "HAZE@" - db "REFLECT@" - db "FOCUS ENERGY@" - db "BIDE@" - db "METRONOME@" - db "MIRROR MOVE@" - db "SELFDESTRUCT@" - db "EGG BOMB@" - db "LICK@" - db "SMOG@" - db "SLUDGE@" - db "BONE CLUB@" - db "FIRE BLAST@" - db "WATERFALL@" - db "CLAMP@" - db "SWIFT@" - db "SKULL BASH@" - db "SPIKE CANNON@" - db "CONSTRICT@" - db "AMNESIA@" - db "KINESIS@" - db "SOFTBOILED@" - db "HI JUMP KICK@" - db "GLARE@" - db "DREAM EATER@" - db "POISON GAS@" - db "BARRAGE@" - db "LEECH LIFE@" - db "LOVELY KISS@" - db "SKY ATTACK@" - db "TRANSFORM@" - db "BUBBLE@" - db "DIZZY PUNCH@" - db "SPORE@" - db "FLASH@" - db "PSYWAVE@" - db "SPLASH@" - db "ACID ARMOR@" - db "CRABHAMMER@" - db "EXPLOSION@" - db "FURY SWIPES@" - db "BONEMERANG@" - db "REST@" - db "ROCK SLIDE@" - db "HYPER FANG@" - db "SHARPEN@" - db "CONVERSION@" - db "TRI ATTACK@" - db "SUPER FANG@" - db "SLASH@" - db "SUBSTITUTE@" - db "STRUGGLE@" + list_start MoveNames + li "POUND" + li "KARATE CHOP" + li "DOUBLESLAP" + li "COMET PUNCH" + li "MEGA PUNCH" + li "PAY DAY" + li "FIRE PUNCH" + li "ICE PUNCH" + li "THUNDERPUNCH" + li "SCRATCH" + li "VICEGRIP" + li "GUILLOTINE" + li "RAZOR WIND" + li "SWORDS DANCE" + li "CUT" + li "GUST" + li "WING ATTACK" + li "WHIRLWIND" + li "FLY" + li "BIND" + li "SLAM" + li "VINE WHIP" + li "STOMP" + li "DOUBLE KICK" + li "MEGA KICK" + li "JUMP KICK" + li "ROLLING KICK" + li "SAND-ATTACK" + li "HEADBUTT" + li "HORN ATTACK" + li "FURY ATTACK" + li "HORN DRILL" + li "TACKLE" + li "BODY SLAM" + li "WRAP" + li "TAKE DOWN" + li "THRASH" + li "DOUBLE-EDGE" + li "TAIL WHIP" + li "POISON STING" + li "TWINEEDLE" + li "PIN MISSILE" + li "LEER" + li "BITE" + li "GROWL" + li "ROAR" + li "SING" + li "SUPERSONIC" + li "SONICBOOM" + li "DISABLE" + li "ACID" + li "EMBER" + li "FLAMETHROWER" + li "MIST" + li "WATER GUN" + li "HYDRO PUMP" + li "SURF" + li "ICE BEAM" + li "BLIZZARD" + li "PSYBEAM" + li "BUBBLEBEAM" + li "AURORA BEAM" + li "HYPER BEAM" + li "PECK" + li "DRILL PECK" + li "SUBMISSION" + li "LOW KICK" + li "COUNTER" + li "SEISMIC TOSS" + li "STRENGTH" + li "ABSORB" + li "MEGA DRAIN" + li "LEECH SEED" + li "GROWTH" + li "RAZOR LEAF" + li "SOLARBEAM" + li "POISONPOWDER" + li "STUN SPORE" + li "SLEEP POWDER" + li "PETAL DANCE" + li "STRING SHOT" + li "DRAGON RAGE" + li "FIRE SPIN" + li "THUNDERSHOCK" + li "THUNDERBOLT" + li "THUNDER WAVE" + li "THUNDER" + li "ROCK THROW" + li "EARTHQUAKE" + li "FISSURE" + li "DIG" + li "TOXIC" + li "CONFUSION" + li "PSYCHIC" + li "HYPNOSIS" + li "MEDITATE" + li "AGILITY" + li "QUICK ATTACK" + li "RAGE" + li "TELEPORT" + li "NIGHT SHADE" + li "MIMIC" + li "SCREECH" + li "DOUBLE TEAM" + li "RECOVER" + li "HARDEN" + li "MINIMIZE" + li "SMOKESCREEN" + li "CONFUSE RAY" + li "WITHDRAW" + li "DEFENSE CURL" + li "BARRIER" + li "LIGHT SCREEN" + li "HAZE" + li "REFLECT" + li "FOCUS ENERGY" + li "BIDE" + li "METRONOME" + li "MIRROR MOVE" + li "SELFDESTRUCT" + li "EGG BOMB" + li "LICK" + li "SMOG" + li "SLUDGE" + li "BONE CLUB" + li "FIRE BLAST" + li "WATERFALL" + li "CLAMP" + li "SWIFT" + li "SKULL BASH" + li "SPIKE CANNON" + li "CONSTRICT" + li "AMNESIA" + li "KINESIS" + li "SOFTBOILED" + li "HI JUMP KICK" + li "GLARE" + li "DREAM EATER" + li "POISON GAS" + li "BARRAGE" + li "LEECH LIFE" + li "LOVELY KISS" + li "SKY ATTACK" + li "TRANSFORM" + li "BUBBLE" + li "DIZZY PUNCH" + li "SPORE" + li "FLASH" + li "PSYWAVE" + li "SPLASH" + li "ACID ARMOR" + li "CRABHAMMER" + li "EXPLOSION" + li "FURY SWIPES" + li "BONEMERANG" + li "REST" + li "ROCK SLIDE" + li "HYPER FANG" + li "SHARPEN" + li "CONVERSION" + li "TRI ATTACK" + li "SUPER FANG" + li "SLASH" + li "SUBSTITUTE" + li "STRUGGLE" + assert_list_length NUM_ATTACKS diff --git a/data/moves/sfx.asm b/data/moves/sfx.asm index c1f12084..c3f01f4e 100644 --- a/data/moves/sfx.asm +++ b/data/moves/sfx.asm @@ -1,4 +1,5 @@ MoveSoundTable: + table_width 3, MoveSoundTable ; ID, pitch mod, tempo mod db SFX_POUND, $00, $80 ; POUND db SFX_BATTLE_0C, $10, $80 ; KARATE_CHOP @@ -165,4 +166,5 @@ MoveSoundTable: db SFX_NOT_VERY_EFFECTIVE, $01, $ff ; SLASH db SFX_BATTLE_2C, $d8, $04 ; SUBSTITUTE db SFX_BATTLE_0B, $00, $80 ; STRUGGLE + assert_table_length NUM_ATTACKS db SFX_BATTLE_0B, $00, $80 diff --git a/data/moves/tmhm_moves.asm b/data/moves/tmhm_moves.asm index a5b0bfec..123df8c6 100644 --- a/data/moves/tmhm_moves.asm +++ b/data/moves/tmhm_moves.asm @@ -2,6 +2,7 @@ ; define constants for the item IDs and for the corresponding move values. TechnicalMachines: + table_width 1, TechnicalMachines n = 1 REPT NUM_TMS @@ -14,6 +15,7 @@ ENDC PURGE MOVE_FOR_TM n = n + 1 ENDR + assert_table_length NUM_TMS n = 1 REPT NUM_HMS @@ -26,3 +28,4 @@ ENDC PURGE MOVE_FOR_HM n = n + 1 ENDR + assert_table_length NUM_TM_HM |