summaryrefslogtreecommitdiff
path: root/data/moves
diff options
context:
space:
mode:
authorRangi <remy.oukaour+rangi42@gmail.com>2021-03-25 16:33:05 -0400
committerRangi <remy.oukaour+rangi42@gmail.com>2021-03-25 16:44:41 -0400
commit95ec2cf039f0efdc6dadfb6fe766ace231a1b6b1 (patch)
tree5a7b79846bd7f07e40310da46b21873774a08ef7 /data/moves
parente1f6bb53939be34f55e05cbbd19cd758936b3422 (diff)
Verify data table and name list sizes with assertion macros
Fixes #312
Diffstat (limited to 'data/moves')
-rw-r--r--data/moves/animations.asm3
-rw-r--r--data/moves/effects_pointers.asm2
-rw-r--r--data/moves/field_move_names.asm1
-rw-r--r--data/moves/moves.asm8
-rw-r--r--data/moves/names.asm332
-rw-r--r--data/moves/sfx.asm2
-rw-r--r--data/moves/tmhm_moves.asm3
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