summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDizzyEggg <jajkodizzy@wp.pl>2018-02-26 14:29:17 +0100
committerDizzyEggg <jajkodizzy@wp.pl>2018-02-26 14:29:17 +0100
commit19723037928598ed688c3aa4aa862cd86a794813 (patch)
treef4e16ae8ac9d3c0128e911bb712d00fd95f394a9
parent919f80321442bcdaa39ecb02e72f4d71ee03511f (diff)
type and ability names to C
-rw-r--r--data/data2b.s18
-rw-r--r--data/text/ability_description_pointers.inc80
-rw-r--r--data/text/ability_descriptions.inc233
-rw-r--r--data/text/ability_names.inc79
-rw-r--r--data/text/type_names.inc19
-rw-r--r--data/trainer_money.inc59
-rw-r--r--data/type_effectiveness.inc119
-rw-r--r--include/battle.h15
-rw-r--r--include/battle_main.h30
-rw-r--r--include/data/text/abilities.h247
-rw-r--r--include/data2.h2
-rw-r--r--src/battle_controller_player.c1
-rw-r--r--src/battle_main.c208
-rw-r--r--src/battle_message.c2
-rw-r--r--src/battle_script_commands.c8
-rw-r--r--src/pokemon_summary_screen.c4
16 files changed, 486 insertions, 638 deletions
diff --git a/data/data2b.s b/data/data2b.s
index b65087d7a..8d759b0b2 100644
--- a/data/data2b.s
+++ b/data/data2b.s
@@ -4866,21 +4866,3 @@ gUnknown_0831ACDC:: @ 831ACDC
.align 2
gUnknown_0831ACE0:: @ 831ACE0
.byte 0xe0, 0xf0, 0xf0, 0xe0, 0xe0, 0x00, 0x00, 0x00
-
-@ 831ACE8
- .include "data/type_effectiveness.inc"
-
-@ 831AE38
- .include "data/text/type_names.inc"
-
-@ 831AEB8
- .include "data/trainer_money.inc"
-
-@ 831AF98
- .include "data/text/ability_descriptions.inc"
-
-@ 831B6DB
- .include "data/text/ability_names.inc"
-
-@ 831BAD4
- .include "data/text/ability_description_pointers.inc"
diff --git a/data/text/ability_description_pointers.inc b/data/text/ability_description_pointers.inc
deleted file mode 100644
index 41d3e84ef..000000000
--- a/data/text/ability_description_pointers.inc
+++ /dev/null
@@ -1,80 +0,0 @@
- .align 2
-gAbilityDescriptionPointers:: @ 831BAD4
- .4byte gNoneAbilityDescription
- .4byte gStenchAbilityDescription
- .4byte gDrizzleAbilityDescription
- .4byte gSpeedBoostAbilityDescription
- .4byte gBattleArmorAbilityDescription
- .4byte gSturdyAbilityDescription
- .4byte gDampAbilityDescription
- .4byte gLimberAbilityDescription
- .4byte gSandVeilAbilityDescription
- .4byte gStaticAbilityDescription
- .4byte gVoltAbsorbAbilityDescription
- .4byte gWaterAbsorbAbilityDescription
- .4byte gObliviousAbilityDescription
- .4byte gCloudNineAbilityDescription
- .4byte gCompoundEyesAbilityDescription
- .4byte gInsomniaAbilityDescription
- .4byte gColorChangeAbilityDescription
- .4byte gImmunityAbilityDescription
- .4byte gFlashFireAbilityDescription
- .4byte gShieldDustAbilityDescription
- .4byte gOwnTempoAbilityDescription
- .4byte gSuctionCupsAbilityDescription
- .4byte gIntimidateAbilityDescription
- .4byte gShadowTagAbilityDescription
- .4byte gRoughSkinAbilityDescription
- .4byte gWonderGuardAbilityDescription
- .4byte gLevitateAbilityDescription
- .4byte gEffectSporeAbilityDescription
- .4byte gSynchronizeAbilityDescription
- .4byte gClearBodyAbilityDescription
- .4byte gNaturalCureAbilityDescription
- .4byte gLightningRodAbilityDescription
- .4byte gSereneGraceAbilityDescription
- .4byte gSwiftSwimAbilityDescription
- .4byte gChlorophyllAbilityDescription
- .4byte gIlluminateAbilityDescription
- .4byte gTraceAbilityDescription
- .4byte gHugePowerAbilityDescription
- .4byte gPoisonPointAbilityDescription
- .4byte gInnerFocusAbilityDescription
- .4byte gMagmaArmorAbilityDescription
- .4byte gWaterVeilAbilityDescription
- .4byte gMagnetPullAbilityDescription
- .4byte gSoundproofAbilityDescription
- .4byte gRainDishAbilityDescription
- .4byte gSandStreamAbilityDescription
- .4byte gPressureAbilityDescription
- .4byte gThickFatAbilityDescription
- .4byte gEarlyBirdAbilityDescription
- .4byte gFlameBodyAbilityDescription
- .4byte gRunAwayAbilityDescription
- .4byte gKeenEyeAbilityDescription
- .4byte gHyperCutterAbilityDescription
- .4byte gPickupAbilityDescription
- .4byte gTruantAbilityDescription
- .4byte gHustleAbilityDescription
- .4byte gCuteCharmAbilityDescription
- .4byte gPlusAbilityDescription
- .4byte gMinusAbilityDescription
- .4byte gForecastAbilityDescription
- .4byte gStickyHoldAbilityDescription
- .4byte gShedSkinAbilityDescription
- .4byte gGutsAbilityDescription
- .4byte gMarvelScaleAbilityDescription
- .4byte gLiquidOozeAbilityDescription
- .4byte gOvergrowAbilityDescription
- .4byte gBlazeAbilityDescription
- .4byte gTorrentAbilityDescription
- .4byte gSwarmAbilityDescription
- .4byte gRockHeadAbilityDescription
- .4byte gDroughtAbilityDescription
- .4byte gArenaTrapAbilityDescription
- .4byte gVitalSpiritAbilityDescription
- .4byte gWhiteSmokeAbilityDescription
- .4byte gPurePowerAbilityDescription
- .4byte gShellArmorAbilityDescription
- .4byte gCacophonyAbilityDescription
- .4byte gAirLockAbilityDescription
diff --git a/data/text/ability_descriptions.inc b/data/text/ability_descriptions.inc
deleted file mode 100644
index fe8305542..000000000
--- a/data/text/ability_descriptions.inc
+++ /dev/null
@@ -1,233 +0,0 @@
-gNoneAbilityDescription:: @ 831AF98
- .string "No special ability.$"
-
-gStenchAbilityDescription:: @ 831AFAC
- .string "Helps repel wild POKéMON.$"
-
-gDrizzleAbilityDescription:: @ 831AFC6
- .string "Summons rain in battle.$"
-
-gSpeedBoostAbilityDescription:: @ 831AFDE
- .string "Gradually boosts SPEED.$"
-
-gBattleArmorAbilityDescription:: @ 831AFF6
- .string "Blocks critical hits.$"
-
-gSturdyAbilityDescription:: @ 831B00C
- .string "Negates 1-hit KO attacks.$"
-
-gDampAbilityDescription:: @ 831B026
- .string "Prevents self-destruction.$"
-
-gLimberAbilityDescription:: @ 831B041
- .string "Prevents paralysis.$"
-
-gSandVeilAbilityDescription:: @ 831B055
- .string "Ups evasion in a sandstorm.$"
-
-gStaticAbilityDescription:: @ 831B071
- .string "Paralyzes on contact.$"
-
-gVoltAbsorbAbilityDescription:: @ 831B087
- .string "Turns electricity into HP.$"
-
-gWaterAbsorbAbilityDescription:: @ 831B0A2
- .string "Changes water into HP.$"
-
-gObliviousAbilityDescription:: @ 831B0B9
- .string "Prevents attraction.$"
-
-gCloudNineAbilityDescription:: @ 831B0CE
- .string "Negates weather effects.$"
-
-gCompoundEyesAbilityDescription:: @ 831B0E7
- .string "Raises accuracy.$"
-
-gInsomniaAbilityDescription:: @ 831B0F8
- .string "Prevents sleep.$"
-
-gColorChangeAbilityDescription:: @ 831B108
- .string "Changes type to foe’s move.$"
-
-gImmunityAbilityDescription:: @ 831B124
- .string "Prevents poisoning.$"
-
-gFlashFireAbilityDescription:: @ 831B138
- .string "Powers up if hit by fire.$"
-
-gShieldDustAbilityDescription:: @ 831B152
- .string "Prevents added effects.$"
-
-gOwnTempoAbilityDescription:: @ 831B16A
- .string "Prevents confusion.$"
-
-gSuctionCupsAbilityDescription:: @ 831B17E
- .string "Firmly anchors the body.$"
-
-gIntimidateAbilityDescription:: @ 831B197
- .string "Lowers the foe’s ATTACK.$"
-
-gShadowTagAbilityDescription:: @ 831B1B0
- .string "Prevents the foe’s escape.$"
-
-gRoughSkinAbilityDescription:: @ 831B1CB
- .string "Hurts to touch.$"
-
-gWonderGuardAbilityDescription:: @ 831B1DB
- .string "“Super effective” hits.$"
-
-gLevitateAbilityDescription:: @ 831B1F3
- .string "Not hit by GROUND attacks.$"
-
-gEffectSporeAbilityDescription:: @ 831B20E
- .string "Leaves spores on contact.$"
-
-gSynchronizeAbilityDescription:: @ 831B228
- .string "Passes on status problems.$"
-
-gClearBodyAbilityDescription:: @ 831B243
- .string "Prevents ability reduction.$"
-
-gNaturalCureAbilityDescription:: @ 831B25F
- .string "Heals upon switching out.$"
-
-gLightningRodAbilityDescription:: @ 831B279
- .string "Draws electrical moves.$"
-
-gSereneGraceAbilityDescription:: @ 831B291
- .string "Promotes added effects.$"
-
-gSwiftSwimAbilityDescription:: @ 831B2A9
- .string "Raises SPEED in rain.$"
-
-gChlorophyllAbilityDescription:: @ 831B2BF
- .string "Raises SPEED in sunshine.$"
-
-gIlluminateAbilityDescription:: @ 831B2D9
- .string "Encounter rate increases.$"
-
-gTraceAbilityDescription:: @ 831B2F3
- .string "Copies special ability.$"
-
-gHugePowerAbilityDescription:: @ 831B30B
- .string "Raises ATTACK.$"
-
-gPoisonPointAbilityDescription:: @ 831B31A
- .string "Poisons foe on contact.$"
-
-gInnerFocusAbilityDescription:: @ 831B332
- .string "Prevents flinching.$"
-
-gMagmaArmorAbilityDescription:: @ 831B346
- .string "Prevents freezing.$"
-
-gWaterVeilAbilityDescription:: @ 831B359
- .string "Prevents burns.$"
-
-gMagnetPullAbilityDescription:: @ 831B369
- .string "Traps STEEL-type POKéMON.$"
-
-gSoundproofAbilityDescription:: @ 831B383
- .string "Avoids sound-based moves.$"
-
-gRainDishAbilityDescription:: @ 831B39D
- .string "Slight HP recovery in rain.$"
-
-gSandStreamAbilityDescription:: @ 831B3B9
- .string "Summons a sandstorm.$"
-
-gPressureAbilityDescription:: @ 831B3CE
- .string "Raises foe’s PP usage.$"
-
-gThickFatAbilityDescription:: @ 831B3E5
- .string "Heat-and-cold protection.$"
-
-gEarlyBirdAbilityDescription:: @ 831B3FF
- .string "Awakens quickly from sleep.$"
-
-gFlameBodyAbilityDescription:: @ 831B41B
- .string "Burns the foe on contact.$"
-
-gRunAwayAbilityDescription:: @ 831B435
- .string "Makes escaping easier.$"
-
-gKeenEyeAbilityDescription:: @ 831B44C
- .string "Prevents loss of accuracy.$"
-
-gHyperCutterAbilityDescription:: @ 831B467
- .string "Prevents ATTACK reduction.$"
-
-gPickupAbilityDescription:: @ 831B482
- .string "May pick up items.$"
-
-gTruantAbilityDescription:: @ 831B495
- .string "Moves only every two turns.$"
-
-gHustleAbilityDescription:: @ 831B4B1
- .string "Trades accuracy for power.$"
-
-gCuteCharmAbilityDescription:: @ 831B4CC
- .string "Infatuates on contact.$"
-
-gPlusAbilityDescription:: @ 831B4E3
- .string "Powers up with MINUS.$"
-
-gMinusAbilityDescription:: @ 831B4F9
- .string "Powers up with PLUS.$"
-
-gForecastAbilityDescription:: @ 831B50E
- .string "Changes with the weather.$"
-
-gStickyHoldAbilityDescription:: @ 831B528
- .string "Prevents item theft.$"
-
-gShedSkinAbilityDescription:: @ 831B53D
- .string "Heals the body by shedding.$"
-
-gGutsAbilityDescription:: @ 831B559
- .string "Ups ATTACK if suffering.$"
-
-gMarvelScaleAbilityDescription:: @ 831B572
- .string "Ups DEFENSE if suffering.$"
-
-gLiquidOozeAbilityDescription:: @ 831B58C
- .string "Draining causes injury.$"
-
-gOvergrowAbilityDescription:: @ 831B5A4
- .string "Ups GRASS moves in a pinch.$"
-
-gBlazeAbilityDescription:: @ 831B5C0
- .string "Ups FIRE moves in a pinch.$"
-
-gTorrentAbilityDescription:: @ 831B5DB
- .string "Ups WATER moves in a pinch.$"
-
-gSwarmAbilityDescription:: @ 831B5F7
- .string "Ups BUG moves in a pinch.$"
-
-gRockHeadAbilityDescription:: @ 831B611
- .string "Prevents recoil damage.$"
-
-gDroughtAbilityDescription:: @ 831B629
- .string "Summons sunlight in battle.$"
-
-gArenaTrapAbilityDescription:: @ 831B645
- .string "Prevents fleeing.$"
-
-gVitalSpiritAbilityDescription:: @ 831B657
- .string "Prevents sleep.$"
-
-gWhiteSmokeAbilityDescription:: @ 831B667
- .string "Prevents ability reduction.$"
-
-gPurePowerAbilityDescription:: @ 831B683
- .string "Raises ATTACK.$"
-
-gShellArmorAbilityDescription:: @ 831B692
- .string "Blocks critical hits.$"
-
-gCacophonyAbilityDescription:: @ 831B6A8
- .string "Avoids sound-based moves.$"
-
-gAirLockAbilityDescription:: @ 831B6C2
- .string "Negates weather effects.$"
diff --git a/data/text/ability_names.inc b/data/text/ability_names.inc
deleted file mode 100644
index a630b8080..000000000
--- a/data/text/ability_names.inc
+++ /dev/null
@@ -1,79 +0,0 @@
-gAbilityNames:: @ 831B6DB
- .string "-------$", 13
- .string "STENCH$", 13
- .string "DRIZZLE$", 13
- .string "SPEED BOOST$", 13
- .string "BATTLE ARMOR$", 13
- .string "STURDY$", 13
- .string "DAMP$", 13
- .string "LIMBER$", 13
- .string "SAND VEIL$", 13
- .string "STATIC$", 13
- .string "VOLT ABSORB$", 13
- .string "WATER ABSORB$", 13
- .string "OBLIVIOUS$", 13
- .string "CLOUD NINE$", 13
- .string "COMPOUNDEYES$", 13
- .string "INSOMNIA$", 13
- .string "COLOR CHANGE$", 13
- .string "IMMUNITY$", 13
- .string "FLASH FIRE$", 13
- .string "SHIELD DUST$", 13
- .string "OWN TEMPO$", 13
- .string "SUCTION CUPS$", 13
- .string "INTIMIDATE$", 13
- .string "SHADOW TAG$", 13
- .string "ROUGH SKIN$", 13
- .string "WONDER GUARD$", 13
- .string "LEVITATE$", 13
- .string "EFFECT SPORE$", 13
- .string "SYNCHRONIZE$", 13
- .string "CLEAR BODY$", 13
- .string "NATURAL CURE$", 13
- .string "LIGHTNINGROD$", 13
- .string "SERENE GRACE$", 13
- .string "SWIFT SWIM$", 13
- .string "CHLOROPHYLL$", 13
- .string "ILLUMINATE$", 13
- .string "TRACE$", 13
- .string "HUGE POWER$", 13
- .string "POISON POINT$", 13
- .string "INNER FOCUS$", 13
- .string "MAGMA ARMOR$", 13
- .string "WATER VEIL$", 13
- .string "MAGNET PULL$", 13
- .string "SOUNDPROOF$", 13
- .string "RAIN DISH$", 13
- .string "SAND STREAM$", 13
- .string "PRESSURE$", 13
- .string "THICK FAT$", 13
- .string "EARLY BIRD$", 13
- .string "FLAME BODY$", 13
- .string "RUN AWAY$", 13
- .string "KEEN EYE$", 13
- .string "HYPER CUTTER$", 13
- .string "PICKUP$", 13
- .string "TRUANT$", 13
- .string "HUSTLE$", 13
- .string "CUTE CHARM$", 13
- .string "PLUS$", 13
- .string "MINUS$", 13
- .string "FORECAST$", 13
- .string "STICKY HOLD$", 13
- .string "SHED SKIN$", 13
- .string "GUTS$", 13
- .string "MARVEL SCALE$", 13
- .string "LIQUID OOZE$", 13
- .string "OVERGROW$", 13
- .string "BLAZE$", 13
- .string "TORRENT$", 13
- .string "SWARM$", 13
- .string "ROCK HEAD$", 13
- .string "DROUGHT$", 13
- .string "ARENA TRAP$", 13
- .string "VITAL SPIRIT$", 13
- .string "WHITE SMOKE$", 13
- .string "PURE POWER$", 13
- .string "SHELL ARMOR$", 13
- .string "CACOPHONY$", 13
- .string "AIR LOCK$", 13
diff --git a/data/text/type_names.inc b/data/text/type_names.inc
deleted file mode 100644
index c79e705c2..000000000
--- a/data/text/type_names.inc
+++ /dev/null
@@ -1,19 +0,0 @@
-gTypeNames:: @ 831AE38
- .string "NORMAL$", 7
- .string "FIGHT$", 7
- .string "FLYING$", 7
- .string "POISON$", 7
- .string "GROUND$", 7
- .string "ROCK$", 7
- .string "BUG$", 7
- .string "GHOST$", 7
- .string "STEEL$", 7
- .string "???$", 7
- .string "FIRE$", 7
- .string "WATER$", 7
- .string "GRASS$", 7
- .string "ELECTR$", 7
- .string "PSYCHC$", 7
- .string "ICE$", 7
- .string "DRAGON$", 7
- .string "DARK$", 7
diff --git a/data/trainer_money.inc b/data/trainer_money.inc
deleted file mode 100644
index 5b8032d95..000000000
--- a/data/trainer_money.inc
+++ /dev/null
@@ -1,59 +0,0 @@
-@ This is a factor in how much money you get for beating a trainer.
- .align 2
-gTrainerMoneyTable:: @ 831AEB8
- .byte TRAINER_CLASS_TEAM_AQUA, 5, 0, 0
- .byte TRAINER_CLASS_AQUA_ADMIN, 10, 0, 0
- .byte TRAINER_CLASS_AQUA_LEADER, 20, 0, 0
- .byte TRAINER_CLASS_AROMA_LADY, 10, 0, 0
- .byte TRAINER_CLASS_RUIN_MANIAC, 15, 0, 0
- .byte TRAINER_CLASS_INTERVIEWER, 12, 0, 0
- .byte TRAINER_CLASS_TUBER_1, 1, 0, 0
- .byte TRAINER_CLASS_TUBER_2, 1, 0, 0
- .byte TRAINER_CLASS_SIS_AND_BRO, 3, 0, 0
- .byte TRAINER_CLASS_COOLTRAINER_1, 12, 0, 0
- .byte TRAINER_CLASS_HEX_MANIAC, 6, 0, 0
- .byte TRAINER_CLASS_LADY, 50, 0, 0
- .byte TRAINER_CLASS_BEAUTY, 20, 0, 0
- .byte TRAINER_CLASS_RICH_BOY, 50, 0, 0
- .byte TRAINER_CLASS_POKEMANIAC, 15, 0, 0
- .byte TRAINER_CLASS_SWIMMER_M, 2, 0, 0
- .byte TRAINER_CLASS_BLACK_BELT, 8, 0, 0
- .byte TRAINER_CLASS_GUITARIST, 8, 0, 0
- .byte TRAINER_CLASS_KINDLER, 8, 0, 0
- .byte TRAINER_CLASS_CAMPER, 4, 0, 0
- .byte TRAINER_CLASS_OLD_COUPLE, 10, 0, 0
- .byte TRAINER_CLASS_BUG_MANIAC, 15, 0, 0
- .byte TRAINER_CLASS_PSYCHIC, 6, 0, 0
- .byte TRAINER_CLASS_GENTLEMAN, 20, 0, 0
- .byte TRAINER_CLASS_ELITE_FOUR, 25, 0, 0
- .byte TRAINER_CLASS_LEADER, 25, 0, 0
- .byte TRAINER_CLASS_SCHOOL_KID, 5, 0, 0
- .byte TRAINER_CLASS_SR_AND_JR, 4, 0, 0
- .byte TRAINER_CLASS_POKEFAN, 20, 0, 0
- .byte TRAINER_CLASS_EXPERT, 10, 0, 0
- .byte TRAINER_CLASS_YOUNGSTER, 4, 0, 0
- .byte TRAINER_CLASS_CHAMPION, 50, 0, 0
- .byte TRAINER_CLASS_FISHERMAN, 10, 0, 0
- .byte TRAINER_CLASS_TRIATHLETE, 10, 0, 0
- .byte TRAINER_CLASS_DRAGON_TAMER, 12, 0, 0
- .byte TRAINER_CLASS_BIRD_KEEPER, 8, 0, 0
- .byte TRAINER_CLASS_NINJA_BOY, 3, 0, 0
- .byte TRAINER_CLASS_BATTLE_GIRL, 6, 0, 0
- .byte TRAINER_CLASS_PARASOL_LADY, 10, 0, 0
- .byte TRAINER_CLASS_SWIMMER_F, 2, 0, 0
- .byte TRAINER_CLASS_PICNICKER, 4, 0, 0
- .byte TRAINER_CLASS_TWINS, 3, 0, 0
- .byte TRAINER_CLASS_SAILOR, 8, 0, 0
- .byte TRAINER_CLASS_COLLECTOR, 15, 0, 0
- .byte TRAINER_CLASS_PKMN_TRAINER_3, 15, 0, 0
- .byte TRAINER_CLASS_PKMN_BREEDER, 10, 0, 0
- .byte TRAINER_CLASS_PKMN_RANGER, 12, 0, 0
- .byte TRAINER_CLASS_TEAM_MAGMA, 5, 0, 0
- .byte TRAINER_CLASS_MAGMA_ADMIN, 10, 0, 0
- .byte TRAINER_CLASS_MAGMA_LEADER, 20, 0, 0
- .byte TRAINER_CLASS_LASS, 4, 0, 0
- .byte TRAINER_CLASS_BUG_CATCHER, 4, 0, 0
- .byte TRAINER_CLASS_HIKER, 10, 0, 0
- .byte TRAINER_CLASS_YOUNG_COUPLE, 8, 0, 0
- .byte TRAINER_CLASS_WINSTRATE, 10, 0, 0
- .byte -1, 5, 0, 0
diff --git a/data/type_effectiveness.inc b/data/type_effectiveness.inc
deleted file mode 100644
index 0739199c2..000000000
--- a/data/type_effectiveness.inc
+++ /dev/null
@@ -1,119 +0,0 @@
-@ format: attacking type, defending type, damage multiplier
-@ the multiplier is a (decimal) fixed-point number:
-@ 20 is ×2.0
-@ 05 is ×0.5
-@ 00 is ×0
-
-gTypeEffectiveness:: @ 831ACE8
- .byte TYPE_NORMAL, TYPE_ROCK, 5
- .byte TYPE_NORMAL, TYPE_STEEL, 5
- .byte TYPE_FIRE, TYPE_FIRE, 5
- .byte TYPE_FIRE, TYPE_WATER, 5
- .byte TYPE_FIRE, TYPE_GRASS, 20
- .byte TYPE_FIRE, TYPE_ICE, 20
- .byte TYPE_FIRE, TYPE_BUG, 20
- .byte TYPE_FIRE, TYPE_ROCK, 5
- .byte TYPE_FIRE, TYPE_DRAGON, 5
- .byte TYPE_FIRE, TYPE_STEEL, 20
- .byte TYPE_WATER, TYPE_FIRE, 20
- .byte TYPE_WATER, TYPE_WATER, 5
- .byte TYPE_WATER, TYPE_GRASS, 5
- .byte TYPE_WATER, TYPE_GROUND, 20
- .byte TYPE_WATER, TYPE_ROCK, 20
- .byte TYPE_WATER, TYPE_DRAGON, 5
- .byte TYPE_ELECTRIC, TYPE_WATER, 20
- .byte TYPE_ELECTRIC, TYPE_ELECTRIC, 5
- .byte TYPE_ELECTRIC, TYPE_GRASS, 5
- .byte TYPE_ELECTRIC, TYPE_GROUND, 0
- .byte TYPE_ELECTRIC, TYPE_FLYING, 20
- .byte TYPE_ELECTRIC, TYPE_DRAGON, 5
- .byte TYPE_GRASS, TYPE_FIRE, 5
- .byte TYPE_GRASS, TYPE_WATER, 20
- .byte TYPE_GRASS, TYPE_GRASS, 5
- .byte TYPE_GRASS, TYPE_POISON, 5
- .byte TYPE_GRASS, TYPE_GROUND, 20
- .byte TYPE_GRASS, TYPE_FLYING, 5
- .byte TYPE_GRASS, TYPE_BUG, 5
- .byte TYPE_GRASS, TYPE_ROCK, 20
- .byte TYPE_GRASS, TYPE_DRAGON, 5
- .byte TYPE_GRASS, TYPE_STEEL, 5
- .byte TYPE_ICE, TYPE_WATER, 5
- .byte TYPE_ICE, TYPE_GRASS, 20
- .byte TYPE_ICE, TYPE_ICE, 5
- .byte TYPE_ICE, TYPE_GROUND, 20
- .byte TYPE_ICE, TYPE_FLYING, 20
- .byte TYPE_ICE, TYPE_DRAGON, 20
- .byte TYPE_ICE, TYPE_STEEL, 5
- .byte TYPE_ICE, TYPE_FIRE, 5
- .byte TYPE_FIGHTING, TYPE_NORMAL, 20
- .byte TYPE_FIGHTING, TYPE_ICE, 20
- .byte TYPE_FIGHTING, TYPE_POISON, 5
- .byte TYPE_FIGHTING, TYPE_FLYING, 5
- .byte TYPE_FIGHTING, TYPE_PSYCHIC, 5
- .byte TYPE_FIGHTING, TYPE_BUG, 5
- .byte TYPE_FIGHTING, TYPE_ROCK, 20
- .byte TYPE_FIGHTING, TYPE_DARK, 20
- .byte TYPE_FIGHTING, TYPE_STEEL, 20
- .byte TYPE_POISON, TYPE_GRASS, 20
- .byte TYPE_POISON, TYPE_POISON, 5
- .byte TYPE_POISON, TYPE_GROUND, 5
- .byte TYPE_POISON, TYPE_ROCK, 5
- .byte TYPE_POISON, TYPE_GHOST, 5
- .byte TYPE_POISON, TYPE_STEEL, 0
- .byte TYPE_GROUND, TYPE_FIRE, 20
- .byte TYPE_GROUND, TYPE_ELECTRIC, 20
- .byte TYPE_GROUND, TYPE_GRASS, 5
- .byte TYPE_GROUND, TYPE_POISON, 20
- .byte TYPE_GROUND, TYPE_FLYING, 0
- .byte TYPE_GROUND, TYPE_BUG, 5
- .byte TYPE_GROUND, TYPE_ROCK, 20
- .byte TYPE_GROUND, TYPE_STEEL, 20
- .byte TYPE_FLYING, TYPE_ELECTRIC, 5
- .byte TYPE_FLYING, TYPE_GRASS, 20
- .byte TYPE_FLYING, TYPE_FIGHTING, 20
- .byte TYPE_FLYING, TYPE_BUG, 20
- .byte TYPE_FLYING, TYPE_ROCK, 5
- .byte TYPE_FLYING, TYPE_STEEL, 5
- .byte TYPE_PSYCHIC, TYPE_FIGHTING, 20
- .byte TYPE_PSYCHIC, TYPE_POISON, 20
- .byte TYPE_PSYCHIC, TYPE_PSYCHIC, 5
- .byte TYPE_PSYCHIC, TYPE_DARK, 0
- .byte TYPE_PSYCHIC, TYPE_STEEL, 5
- .byte TYPE_BUG, TYPE_FIRE, 5
- .byte TYPE_BUG, TYPE_GRASS, 20
- .byte TYPE_BUG, TYPE_FIGHTING, 5
- .byte TYPE_BUG, TYPE_POISON, 5
- .byte TYPE_BUG, TYPE_FLYING, 5
- .byte TYPE_BUG, TYPE_PSYCHIC, 20
- .byte TYPE_BUG, TYPE_GHOST, 5
- .byte TYPE_BUG, TYPE_DARK, 20
- .byte TYPE_BUG, TYPE_STEEL, 5
- .byte TYPE_ROCK, TYPE_FIRE, 20
- .byte TYPE_ROCK, TYPE_ICE, 20
- .byte TYPE_ROCK, TYPE_FIGHTING, 5
- .byte TYPE_ROCK, TYPE_GROUND, 5
- .byte TYPE_ROCK, TYPE_FLYING, 20
- .byte TYPE_ROCK, TYPE_BUG, 20
- .byte TYPE_ROCK, TYPE_STEEL, 5
- .byte TYPE_GHOST, TYPE_NORMAL, 0
- .byte TYPE_GHOST, TYPE_PSYCHIC, 20
- .byte TYPE_GHOST, TYPE_DARK, 5
- .byte TYPE_GHOST, TYPE_STEEL, 5
- .byte TYPE_GHOST, TYPE_GHOST, 20
- .byte TYPE_DRAGON, TYPE_DRAGON, 20
- .byte TYPE_DRAGON, TYPE_STEEL, 5
- .byte TYPE_DARK, TYPE_FIGHTING, 5
- .byte TYPE_DARK, TYPE_PSYCHIC, 20
- .byte TYPE_DARK, TYPE_GHOST, 20
- .byte TYPE_DARK, TYPE_DARK, 5
- .byte TYPE_DARK, TYPE_STEEL, 5
- .byte TYPE_STEEL, TYPE_FIRE, 5
- .byte TYPE_STEEL, TYPE_WATER, 5
- .byte TYPE_STEEL, TYPE_ELECTRIC, 5
- .byte TYPE_STEEL, TYPE_ICE, 20
- .byte TYPE_STEEL, TYPE_ROCK, 20
- .byte TYPE_STEEL, TYPE_STEEL, 5
- .byte 0xFE, 0xFE, 0
- .byte TYPE_NORMAL, TYPE_GHOST, 0
- .byte TYPE_FIGHTING, TYPE_GHOST, 0
- .byte 0xFF, 0xFF, 0
diff --git a/include/battle.h b/include/battle.h
index 971b9e4f5..89a38254a 100644
--- a/include/battle.h
+++ b/include/battle.h
@@ -75,21 +75,6 @@
#define MOVE_TARGET_FOES_AND_ALLY 0x20
#define MOVE_TARGET_OPPONENTS_FIELD 0x40
-// defines for the u8 array gTypeEffectiveness
-#define TYPE_EFFECT_ATK_TYPE(i)((gTypeEffectiveness[i + 0]))
-#define TYPE_EFFECT_DEF_TYPE(i)((gTypeEffectiveness[i + 1]))
-#define TYPE_EFFECT_MULTIPLIER(i)((gTypeEffectiveness[i + 2]))
-
-// defines for the gTypeEffectiveness multipliers
-#define TYPE_MUL_NO_EFFECT 0
-#define TYPE_MUL_NOT_EFFECTIVE 5
-#define TYPE_MUL_NORMAL 10
-#define TYPE_MUL_SUPER_EFFECTIVE 20
-
-// special type table Ids
-#define TYPE_FORESIGHT 0xFE
-#define TYPE_ENDTABLE 0xFF
-
#define BATTLE_BUFFER_LINK_SIZE 0x1000
struct TrainerMonNoItemDefaultMoves
diff --git a/include/battle_main.h b/include/battle_main.h
index d7a522f17..a725b631f 100644
--- a/include/battle_main.h
+++ b/include/battle_main.h
@@ -1,6 +1,30 @@
#ifndef GUARD_BATTLE_MAIN_H
#define GUARD_BATTLE_MAIN_H
+struct TrainerMoney
+{
+ u8 classId;
+ u8 value;
+};
+
+#define TYPE_NAME_LENGTH 6
+#define ABILITY_NAME_LENGTH 12
+
+// defines for the u8 array gTypeEffectiveness
+#define TYPE_EFFECT_ATK_TYPE(i)((gTypeEffectiveness[i + 0]))
+#define TYPE_EFFECT_DEF_TYPE(i)((gTypeEffectiveness[i + 1]))
+#define TYPE_EFFECT_MULTIPLIER(i)((gTypeEffectiveness[i + 2]))
+
+// defines for the gTypeEffectiveness multipliers
+#define TYPE_MUL_NO_EFFECT 0
+#define TYPE_MUL_NOT_EFFECTIVE 5
+#define TYPE_MUL_NORMAL 10
+#define TYPE_MUL_SUPER_EFFECTIVE 20
+
+// special type table Ids
+#define TYPE_FORESIGHT 0xFE
+#define TYPE_ENDTABLE 0xFF
+
void CB2_InitBattle(void);
void BattleMainCB2(void);
void CB2_QuitRecordedBattle(void);
@@ -42,6 +66,12 @@ void RunBattleScriptCommands_PopCallbacksStack(void);
void RunBattleScriptCommands(void);
bool8 TryRunFromBattle(u8 battlerId);
+extern const u8 gTypeEffectiveness[336];
+extern const u8 gTypeNames[][TYPE_NAME_LENGTH + 1];
+extern const struct TrainerMoney gTrainerMoneyTable[];
+extern const u8 gAbilityNames[][ABILITY_NAME_LENGTH + 1];
+extern const u8 *const gAbilityDescriptionPointers[];
+
extern const u8 gStatusConditionString_PoisonJpn[8];
extern const u8 gStatusConditionString_SleepJpn[8];
extern const u8 gStatusConditionString_ParalysisJpn[8];
diff --git a/include/data/text/abilities.h b/include/data/text/abilities.h
new file mode 100644
index 000000000..2efd76afc
--- /dev/null
+++ b/include/data/text/abilities.h
@@ -0,0 +1,247 @@
+#ifndef POKEEMERALD_DATA_TEXT_ABILITIES_H
+#define POKEEMERALD_DATA_TEXT_ABILITIES_H
+
+static const u8 gNoneAbilityDescription[] = _("No special ability.");
+static const u8 gStenchAbilityDescription[] = _("Helps repel wild POKéMON.");
+static const u8 gDrizzleAbilityDescription[] = _("Summons rain in battle.");
+static const u8 gSpeedBoostAbilityDescription[] = _("Gradually boosts SPEED.");
+static const u8 gBattleArmorAbilityDescription[] = _("Blocks critical hits.");
+static const u8 gSturdyAbilityDescription[] = _("Negates 1-hit KO attacks.");
+static const u8 gDampAbilityDescription[] = _("Prevents self-destruction.");
+static const u8 gLimberAbilityDescription[] = _("Prevents paralysis.");
+static const u8 gSandVeilAbilityDescription[] = _("Ups evasion in a sandstorm.");
+static const u8 gStaticAbilityDescription[] = _("Paralyzes on contact.");
+static const u8 gVoltAbsorbAbilityDescription[] = _("Turns electricity into HP.");
+static const u8 gWaterAbsorbAbilityDescription[] = _("Changes water into HP.");
+static const u8 gObliviousAbilityDescription[] = _("Prevents attraction.");
+static const u8 gCloudNineAbilityDescription[] = _("Negates weather effects.");
+static const u8 gCompoundEyesAbilityDescription[] = _("Raises accuracy.");
+static const u8 gInsomniaAbilityDescription[] = _("Prevents sleep.");
+static const u8 gColorChangeAbilityDescription[] = _("Changes type to foe’s move.");
+static const u8 gImmunityAbilityDescription[] = _("Prevents poisoning.");
+static const u8 gFlashFireAbilityDescription[] = _("Powers up if hit by fire.");
+static const u8 gShieldDustAbilityDescription[] = _("Prevents added effects.");
+static const u8 gOwnTempoAbilityDescription[] = _("Prevents confusion.");
+static const u8 gSuctionCupsAbilityDescription[] = _("Firmly anchors the body.");
+static const u8 gIntimidateAbilityDescription[] = _("Lowers the foe’s ATTACK.");
+static const u8 gShadowTagAbilityDescription[] = _("Prevents the foe’s escape.");
+static const u8 gRoughSkinAbilityDescription[] = _("Hurts to touch.");
+static const u8 gWonderGuardAbilityDescription[] = _("“Super effective” hits.");
+static const u8 gLevitateAbilityDescription[] = _("Not hit by GROUND attacks.");
+static const u8 gEffectSporeAbilityDescription[] = _("Leaves spores on contact.");
+static const u8 gSynchronizeAbilityDescription[] = _("Passes on status problems.");
+static const u8 gClearBodyAbilityDescription[] = _("Prevents ability reduction.");
+static const u8 gNaturalCureAbilityDescription[] = _("Heals upon switching out.");
+static const u8 gLightningRodAbilityDescription[] = _("Draws electrical moves.");
+static const u8 gSereneGraceAbilityDescription[] = _("Promotes added effects.");
+static const u8 gSwiftSwimAbilityDescription[] = _("Raises SPEED in rain.");
+static const u8 gChlorophyllAbilityDescription[] = _("Raises SPEED in sunshine.");
+static const u8 gIlluminateAbilityDescription[] = _("Encounter rate increases.");
+static const u8 gTraceAbilityDescription[] = _("Copies special ability.");
+static const u8 gHugePowerAbilityDescription[] = _("Raises ATTACK.");
+static const u8 gPoisonPointAbilityDescription[] = _("Poisons foe on contact.");
+static const u8 gInnerFocusAbilityDescription[] = _("Prevents flinching.");
+static const u8 gMagmaArmorAbilityDescription[] = _("Prevents freezing.");
+static const u8 gWaterVeilAbilityDescription[] = _("Prevents burns.");
+static const u8 gMagnetPullAbilityDescription[] = _("Traps STEEL-type POKéMON.");
+static const u8 gSoundproofAbilityDescription[] = _("Avoids sound-based moves.");
+static const u8 gRainDishAbilityDescription[] = _("Slight HP recovery in rain.");
+static const u8 gSandStreamAbilityDescription[] = _("Summons a sandstorm.");
+static const u8 gPressureAbilityDescription[] = _("Raises foe’s PP usage.");
+static const u8 gThickFatAbilityDescription[] = _("Heat-and-cold protection.");
+static const u8 gEarlyBirdAbilityDescription[] = _("Awakens quickly from sleep.");
+static const u8 gFlameBodyAbilityDescription[] = _("Burns the foe on contact.");
+static const u8 gRunAwayAbilityDescription[] = _("Makes escaping easier.");
+static const u8 gKeenEyeAbilityDescription[] = _("Prevents loss of accuracy.");
+static const u8 gHyperCutterAbilityDescription[] = _("Prevents ATTACK reduction.");
+static const u8 gPickupAbilityDescription[] = _("May pick up items.");
+static const u8 gTruantAbilityDescription[] = _("Moves only every two turns.");
+static const u8 gHustleAbilityDescription[] = _("Trades accuracy for power.");
+static const u8 gCuteCharmAbilityDescription[] = _("Infatuates on contact.");
+static const u8 gPlusAbilityDescription[] = _("Powers up with MINUS.");
+static const u8 gMinusAbilityDescription[] = _("Powers up with PLUS.");
+static const u8 gForecastAbilityDescription[] = _("Changes with the weather.");
+static const u8 gStickyHoldAbilityDescription[] = _("Prevents item theft.");
+static const u8 gShedSkinAbilityDescription[] = _("Heals the body by shedding.");
+static const u8 gGutsAbilityDescription[] = _("Ups ATTACK if suffering.");
+static const u8 gMarvelScaleAbilityDescription[] = _("Ups DEFENSE if suffering.");
+static const u8 gLiquidOozeAbilityDescription[] = _("Draining causes injury.");
+static const u8 gOvergrowAbilityDescription[] = _("Ups GRASS moves in a pinch.");
+static const u8 gBlazeAbilityDescription[] = _("Ups FIRE moves in a pinch.");
+static const u8 gTorrentAbilityDescription[] = _("Ups WATER moves in a pinch.");
+static const u8 gSwarmAbilityDescription[] = _("Ups BUG moves in a pinch.");
+static const u8 gRockHeadAbilityDescription[] = _("Prevents recoil damage.");
+static const u8 gDroughtAbilityDescription[] = _("Summons sunlight in battle.");
+static const u8 gArenaTrapAbilityDescription[] = _("Prevents fleeing.");
+static const u8 gVitalSpiritAbilityDescription[] = _("Prevents sleep.");
+static const u8 gWhiteSmokeAbilityDescription[] = _("Prevents ability reduction.");
+static const u8 gPurePowerAbilityDescription[] = _("Raises ATTACK.");
+static const u8 gShellArmorAbilityDescription[] = _("Blocks critical hits.");
+static const u8 gCacophonyAbilityDescription[] = _("Avoids sound-based moves.");
+static const u8 gAirLockAbilityDescription[] = _("Negates weather effects.");
+
+const u8 gAbilityNames[][ABILITY_NAME_LENGTH + 1] =
+{
+ _("-------"),
+ _("STENCH"),
+ _("DRIZZLE"),
+ _("SPEED BOOST"),
+ _("BATTLE ARMOR"),
+ _("STURDY"),
+ _("DAMP"),
+ _("LIMBER"),
+ _("SAND VEIL"),
+ _("STATIC"),
+ _("VOLT ABSORB"),
+ _("WATER ABSORB"),
+ _("OBLIVIOUS"),
+ _("CLOUD NINE"),
+ _("COMPOUNDEYES"),
+ _("INSOMNIA"),
+ _("COLOR CHANGE"),
+ _("IMMUNITY"),
+ _("FLASH FIRE"),
+ _("SHIELD DUST"),
+ _("OWN TEMPO"),
+ _("SUCTION CUPS"),
+ _("INTIMIDATE"),
+ _("SHADOW TAG"),
+ _("ROUGH SKIN"),
+ _("WONDER GUARD"),
+ _("LEVITATE"),
+ _("EFFECT SPORE"),
+ _("SYNCHRONIZE"),
+ _("CLEAR BODY"),
+ _("NATURAL CURE"),
+ _("LIGHTNINGROD"),
+ _("SERENE GRACE"),
+ _("SWIFT SWIM"),
+ _("CHLOROPHYLL"),
+ _("ILLUMINATE"),
+ _("TRACE"),
+ _("HUGE POWER"),
+ _("POISON POINT"),
+ _("INNER FOCUS"),
+ _("MAGMA ARMOR"),
+ _("WATER VEIL"),
+ _("MAGNET PULL"),
+ _("SOUNDPROOF"),
+ _("RAIN DISH"),
+ _("SAND STREAM"),
+ _("PRESSURE"),
+ _("THICK FAT"),
+ _("EARLY BIRD"),
+ _("FLAME BODY"),
+ _("RUN AWAY"),
+ _("KEEN EYE"),
+ _("HYPER CUTTER"),
+ _("PICKUP"),
+ _("TRUANT"),
+ _("HUSTLE"),
+ _("CUTE CHARM"),
+ _("PLUS"),
+ _("MINUS"),
+ _("FORECAST"),
+ _("STICKY HOLD"),
+ _("SHED SKIN"),
+ _("GUTS"),
+ _("MARVEL SCALE"),
+ _("LIQUID OOZE"),
+ _("OVERGROW"),
+ _("BLAZE"),
+ _("TORRENT"),
+ _("SWARM"),
+ _("ROCK HEAD"),
+ _("DROUGHT"),
+ _("ARENA TRAP"),
+ _("VITAL SPIRIT"),
+ _("WHITE SMOKE"),
+ _("PURE POWER"),
+ _("SHELL ARMOR"),
+ _("CACOPHONY"),
+ _("AIR LOCK"),
+};
+
+const u8 *const gAbilityDescriptionPointers[] =
+{
+ gNoneAbilityDescription,
+ gStenchAbilityDescription,
+ gDrizzleAbilityDescription,
+ gSpeedBoostAbilityDescription,
+ gBattleArmorAbilityDescription,
+ gSturdyAbilityDescription,
+ gDampAbilityDescription,
+ gLimberAbilityDescription,
+ gSandVeilAbilityDescription,
+ gStaticAbilityDescription,
+ gVoltAbsorbAbilityDescription,
+ gWaterAbsorbAbilityDescription,
+ gObliviousAbilityDescription,
+ gCloudNineAbilityDescription,
+ gCompoundEyesAbilityDescription,
+ gInsomniaAbilityDescription,
+ gColorChangeAbilityDescription,
+ gImmunityAbilityDescription,
+ gFlashFireAbilityDescription,
+ gShieldDustAbilityDescription,
+ gOwnTempoAbilityDescription,
+ gSuctionCupsAbilityDescription,
+ gIntimidateAbilityDescription,
+ gShadowTagAbilityDescription,
+ gRoughSkinAbilityDescription,
+ gWonderGuardAbilityDescription,
+ gLevitateAbilityDescription,
+ gEffectSporeAbilityDescription,
+ gSynchronizeAbilityDescription,
+ gClearBodyAbilityDescription,
+ gNaturalCureAbilityDescription,
+ gLightningRodAbilityDescription,
+ gSereneGraceAbilityDescription,
+ gSwiftSwimAbilityDescription,
+ gChlorophyllAbilityDescription,
+ gIlluminateAbilityDescription,
+ gTraceAbilityDescription,
+ gHugePowerAbilityDescription,
+ gPoisonPointAbilityDescription,
+ gInnerFocusAbilityDescription,
+ gMagmaArmorAbilityDescription,
+ gWaterVeilAbilityDescription,
+ gMagnetPullAbilityDescription,
+ gSoundproofAbilityDescription,
+ gRainDishAbilityDescription,
+ gSandStreamAbilityDescription,
+ gPressureAbilityDescription,
+ gThickFatAbilityDescription,
+ gEarlyBirdAbilityDescription,
+ gFlameBodyAbilityDescription,
+ gRunAwayAbilityDescription,
+ gKeenEyeAbilityDescription,
+ gHyperCutterAbilityDescription,
+ gPickupAbilityDescription,
+ gTruantAbilityDescription,
+ gHustleAbilityDescription,
+ gCuteCharmAbilityDescription,
+ gPlusAbilityDescription,
+ gMinusAbilityDescription,
+ gForecastAbilityDescription,
+ gStickyHoldAbilityDescription,
+ gShedSkinAbilityDescription,
+ gGutsAbilityDescription,
+ gMarvelScaleAbilityDescription,
+ gLiquidOozeAbilityDescription,
+ gOvergrowAbilityDescription,
+ gBlazeAbilityDescription,
+ gTorrentAbilityDescription,
+ gSwarmAbilityDescription,
+ gRockHeadAbilityDescription,
+ gDroughtAbilityDescription,
+ gArenaTrapAbilityDescription,
+ gVitalSpiritAbilityDescription,
+ gWhiteSmokeAbilityDescription,
+ gPurePowerAbilityDescription,
+ gShellArmorAbilityDescription,
+ gCacophonyAbilityDescription,
+ gAirLockAbilityDescription,
+};
+
+#endif // POKEEMERALD_DATA_TEXT_ABILITIES_H
diff --git a/include/data2.h b/include/data2.h
index df71f6e88..d71958201 100644
--- a/include/data2.h
+++ b/include/data2.h
@@ -14,8 +14,6 @@ extern struct MonCoords gTrainerFrontPicCoords[];
extern const u8 gSpeciesNames[][POKEMON_NAME_LENGTH + 1];
extern const u8 gMoveNames[][13];
-extern const u8 gAbilityNames[][13];
-extern const u8 gTypeNames[][7];
extern struct CompressedSpriteSheet gUnknown_0831C620;
extern struct CompressedSpritePalette gUnknown_0831C628;
extern const struct SpriteTemplate gUnknown_0831C688;
diff --git a/src/battle_controller_player.c b/src/battle_controller_player.c
index 19017e12c..2a1c0feb6 100644
--- a/src/battle_controller_player.c
+++ b/src/battle_controller_player.c
@@ -42,7 +42,6 @@ extern struct SpriteTemplate gUnknown_0202499C;
extern const struct CompressedSpritePalette gTrainerFrontPicPaletteTable[];
extern const struct CompressedSpritePalette gTrainerBackPicPaletteTable[];
-extern const u8 gTypeNames[][7];
extern const u8 gText_BattleSwitchWhich[];
extern const u8 gText_MoveInterfacePP[];
diff --git a/src/battle_main.c b/src/battle_main.c
index 09a4268cd..9715221ba 100644
--- a/src/battle_main.c
+++ b/src/battle_main.c
@@ -300,6 +300,214 @@ u8 gNumberOfMovesToChoose;
u8 gUnknown_03005D7C[MAX_BATTLERS_COUNT];
// rom const data
+
+// format: attacking type, defending type, damage multiplier
+// the multiplier is a (decimal) fixed-point number:
+// 20 is ×2.0 TYPE_MUL_SUPER_EFFECTIVE
+// 10 is ×1.0 TYPE_MUL_NORMAL
+// 05 is ×0.5 TYPE_MUL_NOT_EFFECTIVE
+// 00 is ×0.0 TYPE_MUL_NO_EFFECT
+const u8 gTypeEffectiveness[336] =
+{
+ TYPE_NORMAL, TYPE_ROCK, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_NORMAL, TYPE_STEEL, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_FIRE, TYPE_FIRE, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_FIRE, TYPE_WATER, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_FIRE, TYPE_GRASS, TYPE_MUL_SUPER_EFFECTIVE,
+ TYPE_FIRE, TYPE_ICE, TYPE_MUL_SUPER_EFFECTIVE,
+ TYPE_FIRE, TYPE_BUG, TYPE_MUL_SUPER_EFFECTIVE,
+ TYPE_FIRE, TYPE_ROCK, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_FIRE, TYPE_DRAGON, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_FIRE, TYPE_STEEL, TYPE_MUL_SUPER_EFFECTIVE,
+ TYPE_WATER, TYPE_FIRE, TYPE_MUL_SUPER_EFFECTIVE,
+ TYPE_WATER, TYPE_WATER, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_WATER, TYPE_GRASS, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_WATER, TYPE_GROUND, TYPE_MUL_SUPER_EFFECTIVE,
+ TYPE_WATER, TYPE_ROCK, TYPE_MUL_SUPER_EFFECTIVE,
+ TYPE_WATER, TYPE_DRAGON, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_ELECTRIC, TYPE_WATER, TYPE_MUL_SUPER_EFFECTIVE,
+ TYPE_ELECTRIC, TYPE_ELECTRIC, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_ELECTRIC, TYPE_GRASS, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_ELECTRIC, TYPE_GROUND, TYPE_MUL_NO_EFFECT,
+ TYPE_ELECTRIC, TYPE_FLYING, TYPE_MUL_SUPER_EFFECTIVE,
+ TYPE_ELECTRIC, TYPE_DRAGON, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_GRASS, TYPE_FIRE, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_GRASS, TYPE_WATER, TYPE_MUL_SUPER_EFFECTIVE,
+ TYPE_GRASS, TYPE_GRASS, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_GRASS, TYPE_POISON, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_GRASS, TYPE_GROUND, TYPE_MUL_SUPER_EFFECTIVE,
+ TYPE_GRASS, TYPE_FLYING, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_GRASS, TYPE_BUG, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_GRASS, TYPE_ROCK, TYPE_MUL_SUPER_EFFECTIVE,
+ TYPE_GRASS, TYPE_DRAGON, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_GRASS, TYPE_STEEL, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_ICE, TYPE_WATER, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_ICE, TYPE_GRASS, TYPE_MUL_SUPER_EFFECTIVE,
+ TYPE_ICE, TYPE_ICE, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_ICE, TYPE_GROUND, TYPE_MUL_SUPER_EFFECTIVE,
+ TYPE_ICE, TYPE_FLYING, TYPE_MUL_SUPER_EFFECTIVE,
+ TYPE_ICE, TYPE_DRAGON, TYPE_MUL_SUPER_EFFECTIVE,
+ TYPE_ICE, TYPE_STEEL, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_ICE, TYPE_FIRE, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_FIGHTING, TYPE_NORMAL, TYPE_MUL_SUPER_EFFECTIVE,
+ TYPE_FIGHTING, TYPE_ICE, TYPE_MUL_SUPER_EFFECTIVE,
+ TYPE_FIGHTING, TYPE_POISON, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_FIGHTING, TYPE_FLYING, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_FIGHTING, TYPE_PSYCHIC, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_FIGHTING, TYPE_BUG, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_FIGHTING, TYPE_ROCK, TYPE_MUL_SUPER_EFFECTIVE,
+ TYPE_FIGHTING, TYPE_DARK, TYPE_MUL_SUPER_EFFECTIVE,
+ TYPE_FIGHTING, TYPE_STEEL, TYPE_MUL_SUPER_EFFECTIVE,
+ TYPE_POISON, TYPE_GRASS, TYPE_MUL_SUPER_EFFECTIVE,
+ TYPE_POISON, TYPE_POISON, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_POISON, TYPE_GROUND, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_POISON, TYPE_ROCK, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_POISON, TYPE_GHOST, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_POISON, TYPE_STEEL, TYPE_MUL_NO_EFFECT,
+ TYPE_GROUND, TYPE_FIRE, TYPE_MUL_SUPER_EFFECTIVE,
+ TYPE_GROUND, TYPE_ELECTRIC, TYPE_MUL_SUPER_EFFECTIVE,
+ TYPE_GROUND, TYPE_GRASS, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_GROUND, TYPE_POISON, TYPE_MUL_SUPER_EFFECTIVE,
+ TYPE_GROUND, TYPE_FLYING, TYPE_MUL_NO_EFFECT,
+ TYPE_GROUND, TYPE_BUG, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_GROUND, TYPE_ROCK, TYPE_MUL_SUPER_EFFECTIVE,
+ TYPE_GROUND, TYPE_STEEL, TYPE_MUL_SUPER_EFFECTIVE,
+ TYPE_FLYING, TYPE_ELECTRIC, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_FLYING, TYPE_GRASS, TYPE_MUL_SUPER_EFFECTIVE,
+ TYPE_FLYING, TYPE_FIGHTING, TYPE_MUL_SUPER_EFFECTIVE,
+ TYPE_FLYING, TYPE_BUG, TYPE_MUL_SUPER_EFFECTIVE,
+ TYPE_FLYING, TYPE_ROCK, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_FLYING, TYPE_STEEL, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_PSYCHIC, TYPE_FIGHTING, TYPE_MUL_SUPER_EFFECTIVE,
+ TYPE_PSYCHIC, TYPE_POISON, TYPE_MUL_SUPER_EFFECTIVE,
+ TYPE_PSYCHIC, TYPE_PSYCHIC, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_PSYCHIC, TYPE_DARK, TYPE_MUL_NO_EFFECT,
+ TYPE_PSYCHIC, TYPE_STEEL, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_BUG, TYPE_FIRE, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_BUG, TYPE_GRASS, TYPE_MUL_SUPER_EFFECTIVE,
+ TYPE_BUG, TYPE_FIGHTING, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_BUG, TYPE_POISON, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_BUG, TYPE_FLYING, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_BUG, TYPE_PSYCHIC, TYPE_MUL_SUPER_EFFECTIVE,
+ TYPE_BUG, TYPE_GHOST, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_BUG, TYPE_DARK, TYPE_MUL_SUPER_EFFECTIVE,
+ TYPE_BUG, TYPE_STEEL, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_ROCK, TYPE_FIRE, TYPE_MUL_SUPER_EFFECTIVE,
+ TYPE_ROCK, TYPE_ICE, TYPE_MUL_SUPER_EFFECTIVE,
+ TYPE_ROCK, TYPE_FIGHTING, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_ROCK, TYPE_GROUND, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_ROCK, TYPE_FLYING, TYPE_MUL_SUPER_EFFECTIVE,
+ TYPE_ROCK, TYPE_BUG, TYPE_MUL_SUPER_EFFECTIVE,
+ TYPE_ROCK, TYPE_STEEL, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_GHOST, TYPE_NORMAL, TYPE_MUL_NO_EFFECT,
+ TYPE_GHOST, TYPE_PSYCHIC, TYPE_MUL_SUPER_EFFECTIVE,
+ TYPE_GHOST, TYPE_DARK, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_GHOST, TYPE_STEEL, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_GHOST, TYPE_GHOST, TYPE_MUL_SUPER_EFFECTIVE,
+ TYPE_DRAGON, TYPE_DRAGON, TYPE_MUL_SUPER_EFFECTIVE,
+ TYPE_DRAGON, TYPE_STEEL, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_DARK, TYPE_FIGHTING, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_DARK, TYPE_PSYCHIC, TYPE_MUL_SUPER_EFFECTIVE,
+ TYPE_DARK, TYPE_GHOST, TYPE_MUL_SUPER_EFFECTIVE,
+ TYPE_DARK, TYPE_DARK, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_DARK, TYPE_STEEL, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_STEEL, TYPE_FIRE, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_STEEL, TYPE_WATER, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_STEEL, TYPE_ELECTRIC, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_STEEL, TYPE_ICE, TYPE_MUL_SUPER_EFFECTIVE,
+ TYPE_STEEL, TYPE_ROCK, TYPE_MUL_SUPER_EFFECTIVE,
+ TYPE_STEEL, TYPE_STEEL, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_FORESIGHT, TYPE_FORESIGHT, TYPE_MUL_NO_EFFECT,
+ TYPE_NORMAL, TYPE_GHOST, TYPE_MUL_NO_EFFECT,
+ TYPE_FIGHTING, TYPE_GHOST, TYPE_MUL_NO_EFFECT,
+ TYPE_ENDTABLE, TYPE_ENDTABLE, TYPE_MUL_NO_EFFECT
+};
+
+const u8 gTypeNames[][TYPE_NAME_LENGTH + 1] =
+{
+ _("NORMAL"),
+ _("FIGHT"),
+ _("FLYING"),
+ _("POISON"),
+ _("GROUND"),
+ _("ROCK"),
+ _("BUG"),
+ _("GHOST"),
+ _("STEEL"),
+ _("???"),
+ _("FIRE"),
+ _("WATER"),
+ _("GRASS"),
+ _("ELECTR"),
+ _("PSYCHC"),
+ _("ICE"),
+ _("DRAGON"),
+ _("DARK"),
+};
+
+// This is a factor in how much money you get for beating a trainer.
+const struct TrainerMoney gTrainerMoneyTable[] =
+{
+ {TRAINER_CLASS_TEAM_AQUA, 5},
+ {TRAINER_CLASS_AQUA_ADMIN, 10},
+ {TRAINER_CLASS_AQUA_LEADER, 20},
+ {TRAINER_CLASS_AROMA_LADY, 10},
+ {TRAINER_CLASS_RUIN_MANIAC, 15},
+ {TRAINER_CLASS_INTERVIEWER, 12},
+ {TRAINER_CLASS_TUBER_1, 1},
+ {TRAINER_CLASS_TUBER_2, 1},
+ {TRAINER_CLASS_SIS_AND_BRO, 3},
+ {TRAINER_CLASS_COOLTRAINER_1, 12},
+ {TRAINER_CLASS_HEX_MANIAC, 6},
+ {TRAINER_CLASS_LADY, 50},
+ {TRAINER_CLASS_BEAUTY, 20},
+ {TRAINER_CLASS_RICH_BOY, 50},
+ {TRAINER_CLASS_POKEMANIAC, 15},
+ {TRAINER_CLASS_SWIMMER_M, 2},
+ {TRAINER_CLASS_BLACK_BELT, 8},
+ {TRAINER_CLASS_GUITARIST, 8},
+ {TRAINER_CLASS_KINDLER, 8},
+ {TRAINER_CLASS_CAMPER, 4},
+ {TRAINER_CLASS_OLD_COUPLE, 10},
+ {TRAINER_CLASS_BUG_MANIAC, 15},
+ {TRAINER_CLASS_PSYCHIC, 6},
+ {TRAINER_CLASS_GENTLEMAN, 20},
+ {TRAINER_CLASS_ELITE_FOUR, 25},
+ {TRAINER_CLASS_LEADER, 25},
+ {TRAINER_CLASS_SCHOOL_KID, 5},
+ {TRAINER_CLASS_SR_AND_JR, 4},
+ {TRAINER_CLASS_POKEFAN, 20},
+ {TRAINER_CLASS_EXPERT, 10},
+ {TRAINER_CLASS_YOUNGSTER, 4},
+ {TRAINER_CLASS_CHAMPION, 50},
+ {TRAINER_CLASS_FISHERMAN, 10},
+ {TRAINER_CLASS_TRIATHLETE, 10},
+ {TRAINER_CLASS_DRAGON_TAMER, 12},
+ {TRAINER_CLASS_BIRD_KEEPER, 8},
+ {TRAINER_CLASS_NINJA_BOY, 3},
+ {TRAINER_CLASS_BATTLE_GIRL, 6},
+ {TRAINER_CLASS_PARASOL_LADY, 10},
+ {TRAINER_CLASS_SWIMMER_F, 2},
+ {TRAINER_CLASS_PICNICKER, 4},
+ {TRAINER_CLASS_TWINS, 3},
+ {TRAINER_CLASS_SAILOR, 8},
+ {TRAINER_CLASS_COLLECTOR, 15},
+ {TRAINER_CLASS_PKMN_TRAINER_3, 15},
+ {TRAINER_CLASS_PKMN_BREEDER, 10},
+ {TRAINER_CLASS_PKMN_RANGER, 12},
+ {TRAINER_CLASS_TEAM_MAGMA, 5},
+ {TRAINER_CLASS_MAGMA_ADMIN, 10},
+ {TRAINER_CLASS_MAGMA_LEADER, 20},
+ {TRAINER_CLASS_LASS, 4},
+ {TRAINER_CLASS_BUG_CATCHER, 4},
+ {TRAINER_CLASS_HIKER, 10},
+ {TRAINER_CLASS_YOUNG_COUPLE, 8},
+ {TRAINER_CLASS_WINSTRATE, 10},
+ {0xFF, 5},
+};
+
+#include "data/text/abilities.h"
+
static void (* const sTurnActionsFuncsTable[])(void) =
{
HandleAction_UseMove, // B_ACTION_USE_MOVE
diff --git a/src/battle_message.c b/src/battle_message.c
index 9a4a062ad..f19a5e00f 100644
--- a/src/battle_message.c
+++ b/src/battle_message.c
@@ -22,9 +22,7 @@ extern u8 gUnknown_0203C7B4;
extern struct StringInfoBattle *gStringInfo;
extern const u8 gMoveNames[LAST_MOVE_INDEX + 1][13];
-extern const u8 gAbilityNames[][13];
extern const u8 gTrainerClassNames[][13];
-extern const u8 gTypeNames[][7];
extern const u16 gUnknown_08D85620[];
// strings
diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c
index 6dbf5955b..f3f84ae06 100644
--- a/src/battle_script_commands.c
+++ b/src/battle_script_commands.c
@@ -48,14 +48,6 @@ extern u16 gBattle_BG2_Y;
extern u16 gBattle_BG3_X;
extern struct MusicPlayerInfo gMPlayInfo_BGM;
-struct TrainerMoney
-{
- u8 classId;
- u8 value;
-};
-
-extern const u8 gTypeEffectiveness[336];
-extern const struct TrainerMoney gTrainerMoneyTable[];
extern const u8* const gBattleScriptsForMoveEffects[];
// functions
diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c
index 7f5a983d2..3ebdc3d6d 100644
--- a/src/pokemon_summary_screen.c
+++ b/src/pokemon_summary_screen.c
@@ -115,8 +115,6 @@ extern u8 gText_Appeal[];
extern u8 gText_Jam[];
extern u8 gText_OTSlash[];
extern u8 gText_UnkCtrlF907F908[];
-extern u8 gAbilityNames[][13];
-extern u8 *gAbilityDescriptionPointers[];
extern u8 gText_XNature[];
extern u8 gText_XNatureHatchedAtYZ[];
extern u8 gText_XNatureHatchedSomewhereAt[];
@@ -2538,7 +2536,7 @@ void sub_81C2554()
gUnknown_0203CF1C->unk40CB[i] |= 0xFF;
}
-void sub_81C25A4(u8 a, u8 *b, u8 c, u8 d, u8 e, u8 f)
+void sub_81C25A4(u8 a, const u8 *b, u8 c, u8 d, u8 e, u8 f)
{
AddTextPrinterParameterized2(a, 1, c, d, 0, e, gUnknown_0861CD2C[f], 0, b);
}