Verify data table and name list sizes with assertion macros

Fixes #312
This commit is contained in:
Rangi 2021-03-25 16:33:05 -04:00
parent e1f6bb5393
commit 95ec2cf039
139 changed files with 863 additions and 437 deletions

View file

@ -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

View file

@ -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

View file

@ -1,3 +1,4 @@
; see also FieldMoveDisplayData
FieldMoveNames:
db "CUT@"
db "FLY@"

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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