summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPikalaxALT <PikalaxALT@users.noreply.github.com>2019-09-08 12:41:48 -0400
committerGitHub <noreply@github.com>2019-09-08 12:41:48 -0400
commit00fef26c523fcebd068483e793e9df95a76e1d4e (patch)
tree32617c90c893aa811de4418c3264891f1877ef2f /src
parent1d9088d2a8590694f3ddc0370873664c8e1612ca (diff)
parente1854c665dab1234ef272fedc1b61a926f7bcdc0 (diff)
Merge pull request #744 from garakmon/pokenav-data
Pokenav Data Decomp (take 2)
Diffstat (limited to 'src')
-rw-r--r--src/data/region_map/city_map_entries.h19
-rw-r--r--src/data/region_map/city_map_tilemaps.h22
-rw-r--r--src/data/text/gift_ribbon_descriptions_de.h208
-rw-r--r--src/data/text/gift_ribbon_descriptions_en.h208
-rw-r--r--src/data/text/ribbon_descriptions_de.h67
-rw-r--r--src/data/text/ribbon_descriptions_en.h85
-rw-r--r--src/data/text/trainer_eye_descriptions_de.h486
-rw-r--r--src/data/text/trainer_eye_descriptions_en.h486
-rw-r--r--src/pokenav_before.c1011
9 files changed, 2592 insertions, 0 deletions
diff --git a/src/data/region_map/city_map_entries.h b/src/data/region_map/city_map_entries.h
new file mode 100644
index 000000000..b49ffe4ea
--- /dev/null
+++ b/src/data/region_map/city_map_entries.h
@@ -0,0 +1,19 @@
+const u32 *const gPokenavCityMaps[][2] =
+{
+ {gPokenavCityMap_Littleroot_0, NULL},
+ {gPokenavCityMap_Oldale_0, NULL},
+ {gPokenavCityMap_Dewford_0, NULL},
+ {gPokenavCityMap_Lavaridge_0, NULL},
+ {gPokenavCityMap_Fallarbor_0, NULL},
+ {gPokenavCityMap_Verdanturf_0, NULL},
+ {gPokenavCityMap_Pacifidlog_0, NULL},
+ {gPokenavCityMap_Petalburg_0, NULL},
+ {gPokenavCityMap_Slateport_0, gPokenavCityMap_Slateport_1},
+ {gPokenavCityMap_Mauville_0, gPokenavCityMap_Mauville_1},
+ {gPokenavCityMap_Rustboro_0, gPokenavCityMap_Rustboro_1},
+ {gPokenavCityMap_Fortree_0, NULL},
+ {gPokenavCityMap_Lilycove_0, gPokenavCityMap_Lilycove_1},
+ {gPokenavCityMap_Mossdeep_0, gPokenavCityMap_Mossdeep_1},
+ {gPokenavCityMap_Sootopolis_0, NULL},
+ {gPokenavCityMap_EverGrande_0, gPokenavCityMap_EverGrande_1},
+};
diff --git a/src/data/region_map/city_map_tilemaps.h b/src/data/region_map/city_map_tilemaps.h
new file mode 100644
index 000000000..fed158935
--- /dev/null
+++ b/src/data/region_map/city_map_tilemaps.h
@@ -0,0 +1,22 @@
+const u32 gPokenavCityMap_Lavaridge_0[] = INCBIN_U32("graphics/pokenav/city_maps/lavaridge_0.bin.lz");
+const u32 gPokenavCityMap_Fallarbor_0[] = INCBIN_U32("graphics/pokenav/city_maps/fallarbor_0.bin.lz");
+const u32 gPokenavCityMap_Fortree_0[] = INCBIN_U32("graphics/pokenav/city_maps/fortree_0.bin.lz");
+const u32 gPokenavCityMap_Slateport_0[] = INCBIN_U32("graphics/pokenav/city_maps/slateport_0.bin.lz");
+const u32 gPokenavCityMap_Slateport_1[] = INCBIN_U32("graphics/pokenav/city_maps/slateport_1.bin.lz");
+const u32 gPokenavCityMap_Rustboro_0[] = INCBIN_U32("graphics/pokenav/city_maps/rustboro_0.bin.lz");
+const u32 gPokenavCityMap_Rustboro_1[] = INCBIN_U32("graphics/pokenav/city_maps/rustboro_1.bin.lz");
+const u32 gPokenavCityMap_Pacifidlog_0[] = INCBIN_U32("graphics/pokenav/city_maps/pacifidlog_0.bin.lz");
+const u32 gPokenavCityMap_Mauville_1[] = INCBIN_U32("graphics/pokenav/city_maps/mauville_1.bin.lz");
+const u32 gPokenavCityMap_Mauville_0[] = INCBIN_U32("graphics/pokenav/city_maps/mauville_0.bin.lz");
+const u32 gPokenavCityMap_Oldale_0[] = INCBIN_U32("graphics/pokenav/city_maps/oldale_0.bin.lz");
+const u32 gPokenavCityMap_Lilycove_1[] = INCBIN_U32("graphics/pokenav/city_maps/lilycove_1.bin.lz");
+const u32 gPokenavCityMap_Lilycove_0[] = INCBIN_U32("graphics/pokenav/city_maps/lilycove_0.bin.lz");
+const u32 gPokenavCityMap_Littleroot_0[] = INCBIN_U32("graphics/pokenav/city_maps/littleroot_0.bin.lz");
+const u32 gPokenavCityMap_Dewford_0[] = INCBIN_U32("graphics/pokenav/city_maps/dewford_0.bin.lz");
+const u32 gPokenavCityMap_Sootopolis_0[] = INCBIN_U32("graphics/pokenav/city_maps/sootopolis_0.bin.lz");
+const u32 gPokenavCityMap_EverGrande_0[] = INCBIN_U32("graphics/pokenav/city_maps/ever_grande_0.bin.lz");
+const u32 gPokenavCityMap_EverGrande_1[] = INCBIN_U32("graphics/pokenav/city_maps/ever_grande_1.bin.lz");
+const u32 gPokenavCityMap_Verdanturf_0[] = INCBIN_U32("graphics/pokenav/city_maps/verdanturf_0.bin.lz");
+const u32 gPokenavCityMap_Mossdeep_1[] = INCBIN_U32("graphics/pokenav/city_maps/mossdeep_1.bin.lz");
+const u32 gPokenavCityMap_Mossdeep_0[] = INCBIN_U32("graphics/pokenav/city_maps/mossdeep_0.bin.lz");
+const u32 gPokenavCityMap_Petalburg_0[] = INCBIN_U32("graphics/pokenav/city_maps/petalburg_0.bin.lz");
diff --git a/src/data/text/gift_ribbon_descriptions_de.h b/src/data/text/gift_ribbon_descriptions_de.h
new file mode 100644
index 000000000..6bc57fb2e
--- /dev/null
+++ b/src/data/text/gift_ribbon_descriptions_de.h
@@ -0,0 +1,208 @@
+const u8 gGiftRibbonDescriptionPart1_2003RegionalTourney[] = _(
+ "REGIONALTURNIER 2003");
+
+const u8 gGiftRibbonDescriptionPart2_Champion[] = _(
+ "BAND des CHAMPS");
+
+const u8 gGiftRibbonDescriptionPart1_2003NationalTourney[] = _(
+ "NATIONALTURNIER 2003");
+
+const u8 gGiftRibbonDescriptionPart1_2003GlobalCup[] = _(
+ "WELTPOKAL 2003");
+
+const u8 gGiftRibbonDescriptionPart2_RunnerUp[] = _(
+ "BAND für Platzierungen");
+
+const u8 gGiftRibbonDescriptionPart2_Semifinalist[] = _(
+ "BAND für Halbfinalisten");
+
+const u8 gGiftRibbonDescriptionPart1_2004RegionalTourney[] = _(
+ "REGIONALTURNIER 2004");
+
+const u8 gGiftRibbonDescriptionPart1_2004NationalTourney[] = _(
+ "NATIONALTURNIER 2004");
+
+const u8 gGiftRibbonDescriptionPart1_2004GlobalCup[] = _(
+ "WELTPOKAL 2004");
+
+const u8 gGiftRibbonDescriptionPart1_2005RegionalTourney[] = _(
+ "REGIONALTURNIER 2005");
+
+const u8 gGiftRibbonDescriptionPart1_2005NationalTourney[] = _(
+ "NATIONALTURNIER 2005");
+
+const u8 gGiftRibbonDescriptionPart1_2005GlobalCup[] = _(
+ "WELTPOKAL 2005");
+
+const u8 gGiftRibbonDescriptionPart1_PokemonBattleCup[] = _(
+ "POKéMON-KAMPF-POKAL");
+
+const u8 gGiftRibbonDescriptionPart2_Participation[] = _(
+ "Teilnehmer-BAND");
+
+const u8 gGiftRibbonDescriptionPart1_PokemonLeague[] = _(
+ "POKéMON LIGA");
+
+const u8 gGiftRibbonDescriptionPart1_AdvanceCup[] = _(
+ "TALENTPOKAL");
+
+const u8 gGiftRibbonDescriptionPart1_PokemonTournament[] = _(
+ "POKéMON-Turnier");
+
+const u8 gGiftRibbonDescriptionPart2_Participation2[] = _(
+ "Teilnehmer-BAND");
+
+const u8 gGiftRibbonDescriptionPart1_PokemonEvent[] = _(
+ "POKéMON-Wettkampf");
+
+const u8 gGiftRibbonDescriptionPart1_PokemonFestival[] = _(
+ "POKéMON-Festival");
+
+const u8 gGiftRibbonDescriptionPart1_DifficultyClearing[] = _(
+ "Schw.-Grad-Abschl.");
+
+const u8 gGiftRibbonDescriptionPart2_Commemorative[] = _(
+ "Gedenk-BAND");
+
+const u8 gGiftRibbonDescriptionPart1_ClearingAllDifficulties[] = _(
+ "BAND für erf. Abschluss");
+
+const u8 gGiftRibbonDescriptionPart2_ClearingAllDifficulties[] = _(
+ "aller Schwierigk.-Grade.");
+
+const u8 gGiftRibbonDescriptionPart1_100StraightWin[] = _(
+ "100. Sieg in Folge");
+
+const u8 gGiftRibbonDescriptionPart1_DarknessTower[] = _(
+ "APOKELIPSE-TURM fertig");
+
+const u8 gGiftRibbonDescriptionPart1_RedTower[] = _(
+ "ROTER TURM fertig");
+
+const u8 gGiftRibbonDescriptionPart1_BlackironTower[] = _(
+ "EISERNER TURM fertig");
+
+const u8 gGiftRibbonDescriptionPart1_FinalTower[] = _(
+ "FINAL-TURM-Abschluss");
+
+const u8 gGiftRibbonDescriptionPart1_LegendMaking[] = _(
+ "Legendäres");
+
+const u8 gGiftRibbonDescriptionPart1_PokemonCenterTokyo[] = _(
+ "POKéMON-CENTER TOKIO");
+
+const u8 gGiftRibbonDescriptionPart1_PokemonCenterOsaka[] = _(
+ "POKéMON-CENTER OSAKA");
+
+const u8 gGiftRibbonDescriptionPart1_PokemonCenterNagoya[] = _(
+ "POKéMON-CENTER NAGOYA");
+
+const u8 gGiftRibbonDescriptionPart1_PokemonCenterNY[] = _(
+ "POKéMON-CENTER N. Y.");
+
+const u8 gGiftRibbonDescriptionPart1_SummerHolidays[] = _(
+ "Sommerferien-BAND");
+
+const u8 gGiftRibbonDescriptionPart2_EmptyString[] = _(
+ "");
+
+const u8 gGiftRibbonDescriptionPart1_WinterHolidays[] = _(
+ "Weihnachtsferien-BAND");
+
+const u8 gGiftRibbonDescriptionPart1_SpringHolidays[] = _(
+ "Osterferien-BAND");
+
+const u8 gGiftRibbonDescriptionPart1_Evergreen[] = _(
+ "Evergreen-BAND");
+
+const u8 gGiftRibbonDescriptionPart1_SpecialHoliday[] = _(
+ "Sonderurlaubs-BAND");
+
+const u8 gGiftRibbonDescriptionPart1_HardWorker[] = _(
+ "Fleiß-BAND");
+
+const u8 gGiftRibbonDescriptionPart1_LotsOfFriends[] = _(
+ "Beliebtheits-BAND");
+
+const u8 gGiftRibbonDescriptionPart1_FullOfEnergy[] = _(
+ "Energie-BAND");
+
+const u8 gGiftRibbonDescriptionPart1_LovedPokemon[] = _(
+ "Ein Gedenk-BAND für ein");
+
+const u8 gGiftRibbonDescriptionPart2_LovedPokemon[] = _(
+ "beliebtes POKéMON.");
+
+const u8 gGiftRibbonDescriptionPart1_LoveForPokemon[] = _(
+ "Ein BAND für POKéMON-");
+
+const u8 gGiftRibbonDescriptionPart2_LoveForPokemon[] = _(
+ "Freunde.");
+
+const u8 *const gGiftRibbonDescriptions[][2] =
+{
+ {gGiftRibbonDescriptionPart1_2003RegionalTourney, gGiftRibbonDescriptionPart2_Champion},
+ {gGiftRibbonDescriptionPart1_2003NationalTourney, gGiftRibbonDescriptionPart2_Champion},
+ {gGiftRibbonDescriptionPart1_2003GlobalCup, gGiftRibbonDescriptionPart2_Champion},
+ {gGiftRibbonDescriptionPart1_2003RegionalTourney, gGiftRibbonDescriptionPart2_RunnerUp},
+ {gGiftRibbonDescriptionPart1_2003NationalTourney, gGiftRibbonDescriptionPart2_RunnerUp},
+ {gGiftRibbonDescriptionPart1_2003GlobalCup, gGiftRibbonDescriptionPart2_RunnerUp},
+ {gGiftRibbonDescriptionPart1_2003RegionalTourney, gGiftRibbonDescriptionPart2_Semifinalist},
+ {gGiftRibbonDescriptionPart1_2003NationalTourney, gGiftRibbonDescriptionPart2_Semifinalist},
+ {gGiftRibbonDescriptionPart1_2003GlobalCup, gGiftRibbonDescriptionPart2_Semifinalist},
+ {gGiftRibbonDescriptionPart1_2004RegionalTourney, gGiftRibbonDescriptionPart2_Champion},
+ {gGiftRibbonDescriptionPart1_2004NationalTourney, gGiftRibbonDescriptionPart2_Champion},
+ {gGiftRibbonDescriptionPart1_2004GlobalCup, gGiftRibbonDescriptionPart2_Champion},
+ {gGiftRibbonDescriptionPart1_2004RegionalTourney, gGiftRibbonDescriptionPart2_RunnerUp},
+ {gGiftRibbonDescriptionPart1_2004NationalTourney, gGiftRibbonDescriptionPart2_RunnerUp},
+ {gGiftRibbonDescriptionPart1_2004GlobalCup, gGiftRibbonDescriptionPart2_RunnerUp},
+ {gGiftRibbonDescriptionPart1_2004RegionalTourney, gGiftRibbonDescriptionPart2_Semifinalist},
+ {gGiftRibbonDescriptionPart1_2004NationalTourney, gGiftRibbonDescriptionPart2_Semifinalist},
+ {gGiftRibbonDescriptionPart1_2004GlobalCup, gGiftRibbonDescriptionPart2_Semifinalist},
+ {gGiftRibbonDescriptionPart1_2005RegionalTourney, gGiftRibbonDescriptionPart2_Champion},
+ {gGiftRibbonDescriptionPart1_2005NationalTourney, gGiftRibbonDescriptionPart2_Champion},
+ {gGiftRibbonDescriptionPart1_2005GlobalCup, gGiftRibbonDescriptionPart2_Champion},
+ {gGiftRibbonDescriptionPart1_2005RegionalTourney, gGiftRibbonDescriptionPart2_RunnerUp},
+ {gGiftRibbonDescriptionPart1_2005NationalTourney, gGiftRibbonDescriptionPart2_RunnerUp},
+ {gGiftRibbonDescriptionPart1_2005GlobalCup, gGiftRibbonDescriptionPart2_RunnerUp},
+ {gGiftRibbonDescriptionPart1_2005RegionalTourney, gGiftRibbonDescriptionPart2_Semifinalist},
+ {gGiftRibbonDescriptionPart1_2005NationalTourney, gGiftRibbonDescriptionPart2_Semifinalist},
+ {gGiftRibbonDescriptionPart1_2005GlobalCup, gGiftRibbonDescriptionPart2_Semifinalist},
+ {gGiftRibbonDescriptionPart1_PokemonBattleCup, gGiftRibbonDescriptionPart2_Champion},
+ {gGiftRibbonDescriptionPart1_PokemonBattleCup, gGiftRibbonDescriptionPart2_RunnerUp},
+ {gGiftRibbonDescriptionPart1_PokemonBattleCup, gGiftRibbonDescriptionPart2_Semifinalist},
+ {gGiftRibbonDescriptionPart1_PokemonBattleCup, gGiftRibbonDescriptionPart2_Participation},
+ {gGiftRibbonDescriptionPart1_PokemonLeague, gGiftRibbonDescriptionPart2_Champion},
+ {gGiftRibbonDescriptionPart1_PokemonLeague, gGiftRibbonDescriptionPart2_RunnerUp},
+ {gGiftRibbonDescriptionPart1_PokemonLeague, gGiftRibbonDescriptionPart2_Semifinalist},
+ {gGiftRibbonDescriptionPart1_PokemonLeague, gGiftRibbonDescriptionPart2_Participation},
+ {gGiftRibbonDescriptionPart1_AdvanceCup, gGiftRibbonDescriptionPart2_Champion},
+ {gGiftRibbonDescriptionPart1_AdvanceCup, gGiftRibbonDescriptionPart2_RunnerUp},
+ {gGiftRibbonDescriptionPart1_AdvanceCup, gGiftRibbonDescriptionPart2_Semifinalist},
+ {gGiftRibbonDescriptionPart1_AdvanceCup, gGiftRibbonDescriptionPart2_Participation},
+ {gGiftRibbonDescriptionPart1_PokemonTournament, gGiftRibbonDescriptionPart2_Participation2},
+ {gGiftRibbonDescriptionPart1_PokemonEvent, gGiftRibbonDescriptionPart2_Participation2},
+ {gGiftRibbonDescriptionPart1_PokemonFestival, gGiftRibbonDescriptionPart2_Participation2},
+ {gGiftRibbonDescriptionPart1_DifficultyClearing, gGiftRibbonDescriptionPart2_Commemorative},
+ {gGiftRibbonDescriptionPart1_ClearingAllDifficulties, gGiftRibbonDescriptionPart2_ClearingAllDifficulties},
+ {gGiftRibbonDescriptionPart1_100StraightWin, gGiftRibbonDescriptionPart2_Commemorative},
+ {gGiftRibbonDescriptionPart1_DarknessTower, gGiftRibbonDescriptionPart2_Commemorative},
+ {gGiftRibbonDescriptionPart1_RedTower, gGiftRibbonDescriptionPart2_Commemorative},
+ {gGiftRibbonDescriptionPart1_BlackironTower, gGiftRibbonDescriptionPart2_Commemorative},
+ {gGiftRibbonDescriptionPart1_FinalTower, gGiftRibbonDescriptionPart2_Commemorative},
+ {gGiftRibbonDescriptionPart1_LegendMaking, gGiftRibbonDescriptionPart2_Commemorative},
+ {gGiftRibbonDescriptionPart1_PokemonCenterTokyo, gGiftRibbonDescriptionPart2_Commemorative},
+ {gGiftRibbonDescriptionPart1_PokemonCenterOsaka, gGiftRibbonDescriptionPart2_Commemorative},
+ {gGiftRibbonDescriptionPart1_PokemonCenterNagoya, gGiftRibbonDescriptionPart2_Commemorative},
+ {gGiftRibbonDescriptionPart1_PokemonCenterNY, gGiftRibbonDescriptionPart2_Commemorative},
+ {gGiftRibbonDescriptionPart1_SummerHolidays, gGiftRibbonDescriptionPart2_EmptyString},
+ {gGiftRibbonDescriptionPart1_WinterHolidays, gGiftRibbonDescriptionPart2_EmptyString},
+ {gGiftRibbonDescriptionPart1_SpringHolidays, gGiftRibbonDescriptionPart2_EmptyString},
+ {gGiftRibbonDescriptionPart1_Evergreen, gGiftRibbonDescriptionPart2_EmptyString},
+ {gGiftRibbonDescriptionPart1_SpecialHoliday, gGiftRibbonDescriptionPart2_EmptyString},
+ {gGiftRibbonDescriptionPart1_HardWorker, gGiftRibbonDescriptionPart2_EmptyString},
+ {gGiftRibbonDescriptionPart1_LotsOfFriends, gGiftRibbonDescriptionPart2_EmptyString},
+ {gGiftRibbonDescriptionPart1_FullOfEnergy, gGiftRibbonDescriptionPart2_EmptyString},
+ {gGiftRibbonDescriptionPart1_LovedPokemon, gGiftRibbonDescriptionPart2_LovedPokemon},
+ {gGiftRibbonDescriptionPart1_LoveForPokemon, gGiftRibbonDescriptionPart2_LoveForPokemon},
+};
diff --git a/src/data/text/gift_ribbon_descriptions_en.h b/src/data/text/gift_ribbon_descriptions_en.h
new file mode 100644
index 000000000..14229a22a
--- /dev/null
+++ b/src/data/text/gift_ribbon_descriptions_en.h
@@ -0,0 +1,208 @@
+const u8 gGiftRibbonDescriptionPart1_2003RegionalTourney[] = _(
+ "2003 REGIONAL TOURNEY");
+
+const u8 gGiftRibbonDescriptionPart2_Champion[] = _(
+ "CHAMPION RIBBON");
+
+const u8 gGiftRibbonDescriptionPart1_2003NationalTourney[] = _(
+ "2003 NATIONAL TOURNEY");
+
+const u8 gGiftRibbonDescriptionPart1_2003GlobalCup[] = _(
+ "2003 GLOBAL CUP");
+
+const u8 gGiftRibbonDescriptionPart2_RunnerUp[] = _(
+ "Runner-up RIBBON");
+
+const u8 gGiftRibbonDescriptionPart2_Semifinalist[] = _(
+ "Semifinalist RIBBON");
+
+const u8 gGiftRibbonDescriptionPart1_2004RegionalTourney[] = _(
+ "2004 REGIONAL TOURNEY");
+
+const u8 gGiftRibbonDescriptionPart1_2004NationalTourney[] = _(
+ "2004 NATIONAL TOURNEY");
+
+const u8 gGiftRibbonDescriptionPart1_2004GlobalCup[] = _(
+ "2004 GLOBAL CUP");
+
+const u8 gGiftRibbonDescriptionPart1_2005RegionalTourney[] = _(
+ "2005 REGIONAL TOURNEY");
+
+const u8 gGiftRibbonDescriptionPart1_2005NationalTourney[] = _(
+ "2005 NATIONAL TOURNEY");
+
+const u8 gGiftRibbonDescriptionPart1_2005GlobalCup[] = _(
+ "2005 GLOBAL CUP");
+
+const u8 gGiftRibbonDescriptionPart1_PokemonBattleCup[] = _(
+ "POKéMON BATTLE CUP");
+
+const u8 gGiftRibbonDescriptionPart2_Participation[] = _(
+ "Participation RIBBON");
+
+const u8 gGiftRibbonDescriptionPart1_PokemonLeague[] = _(
+ "POKéMON LEAGUE");
+
+const u8 gGiftRibbonDescriptionPart1_AdvanceCup[] = _(
+ "ADVANCE CUP");
+
+const u8 gGiftRibbonDescriptionPart1_PokemonTournament[] = _(
+ "POKéMON Tournament");
+
+const u8 gGiftRibbonDescriptionPart2_Participation2[] = _(
+ "Participation RIBBON");
+
+const u8 gGiftRibbonDescriptionPart1_PokemonEvent[] = _(
+ "POKéMON Event");
+
+const u8 gGiftRibbonDescriptionPart1_PokemonFestival[] = _(
+ "POKéMON Festival");
+
+const u8 gGiftRibbonDescriptionPart1_DifficultyClearing[] = _(
+ "Difficulty-clearing");
+
+const u8 gGiftRibbonDescriptionPart2_Commemorative[] = _(
+ "Commemorative RIBBON");
+
+const u8 gGiftRibbonDescriptionPart1_ClearingAllDifficulties[] = _(
+ "RIBBON awarded for");
+
+const u8 gGiftRibbonDescriptionPart2_ClearingAllDifficulties[] = _(
+ "clearing all difficulties.");
+
+const u8 gGiftRibbonDescriptionPart1_100StraightWin[] = _(
+ "100-straight Win");
+
+const u8 gGiftRibbonDescriptionPart1_DarknessTower[] = _(
+ "DARKNESS TOWER Clear");
+
+const u8 gGiftRibbonDescriptionPart1_RedTower[] = _(
+ "RED TOWER Clear");
+
+const u8 gGiftRibbonDescriptionPart1_BlackironTower[] = _(
+ "BLACKIRON TOWER Clear");
+
+const u8 gGiftRibbonDescriptionPart1_FinalTower[] = _(
+ "FINAL TOWER Clear");
+
+const u8 gGiftRibbonDescriptionPart1_LegendMaking[] = _(
+ "Legend-making");
+
+const u8 gGiftRibbonDescriptionPart1_PokemonCenterTokyo[] = _(
+ "POKéMON CENTER TOKYO");
+
+const u8 gGiftRibbonDescriptionPart1_PokemonCenterOsaka[] = _(
+ "POKéMON CENTER OSAKA");
+
+const u8 gGiftRibbonDescriptionPart1_PokemonCenterNagoya[] = _(
+ "POKéMON CENTER NAGOYA");
+
+const u8 gGiftRibbonDescriptionPart1_PokemonCenterNY[] = _(
+ "POKéMON CENTER NY");
+
+const u8 gGiftRibbonDescriptionPart1_SummerHolidays[] = _(
+ "Summer Holidays RIBBON");
+
+const u8 gGiftRibbonDescriptionPart2_EmptyString[] = _(
+ "");
+
+const u8 gGiftRibbonDescriptionPart1_WinterHolidays[] = _(
+ "Winter Holidays RIBBON");
+
+const u8 gGiftRibbonDescriptionPart1_SpringHolidays[] = _(
+ "Spring Holidays RIBBON");
+
+const u8 gGiftRibbonDescriptionPart1_Evergreen[] = _(
+ "Evergreen RIBBON");
+
+const u8 gGiftRibbonDescriptionPart1_SpecialHoliday[] = _(
+ "Special Holiday RIBBON");
+
+const u8 gGiftRibbonDescriptionPart1_HardWorker[] = _(
+ "Hard Worker RIBBON");
+
+const u8 gGiftRibbonDescriptionPart1_LotsOfFriends[] = _(
+ "Lots of Friends RIBBON");
+
+const u8 gGiftRibbonDescriptionPart1_FullOfEnergy[] = _(
+ "Full of Energy RIBBON");
+
+const u8 gGiftRibbonDescriptionPart1_LovedPokemon[] = _(
+ "A commemorative RIBBON");
+
+const u8 gGiftRibbonDescriptionPart2_LovedPokemon[] = _(
+ "for a loved POKéMON.");
+
+const u8 gGiftRibbonDescriptionPart1_LoveForPokemon[] = _(
+ "RIBBON that shows");
+
+const u8 gGiftRibbonDescriptionPart2_LoveForPokemon[] = _(
+ "love for POKéMON.");
+
+const u8 *const gGiftRibbonDescriptions[][2] =
+{
+ {gGiftRibbonDescriptionPart1_2003RegionalTourney, gGiftRibbonDescriptionPart2_Champion},
+ {gGiftRibbonDescriptionPart1_2003NationalTourney, gGiftRibbonDescriptionPart2_Champion},
+ {gGiftRibbonDescriptionPart1_2003GlobalCup, gGiftRibbonDescriptionPart2_Champion},
+ {gGiftRibbonDescriptionPart1_2003RegionalTourney, gGiftRibbonDescriptionPart2_RunnerUp},
+ {gGiftRibbonDescriptionPart1_2003NationalTourney, gGiftRibbonDescriptionPart2_RunnerUp},
+ {gGiftRibbonDescriptionPart1_2003GlobalCup, gGiftRibbonDescriptionPart2_RunnerUp},
+ {gGiftRibbonDescriptionPart1_2003RegionalTourney, gGiftRibbonDescriptionPart2_Semifinalist},
+ {gGiftRibbonDescriptionPart1_2003NationalTourney, gGiftRibbonDescriptionPart2_Semifinalist},
+ {gGiftRibbonDescriptionPart1_2003GlobalCup, gGiftRibbonDescriptionPart2_Semifinalist},
+ {gGiftRibbonDescriptionPart1_2004RegionalTourney, gGiftRibbonDescriptionPart2_Champion},
+ {gGiftRibbonDescriptionPart1_2004NationalTourney, gGiftRibbonDescriptionPart2_Champion},
+ {gGiftRibbonDescriptionPart1_2004GlobalCup, gGiftRibbonDescriptionPart2_Champion},
+ {gGiftRibbonDescriptionPart1_2004RegionalTourney, gGiftRibbonDescriptionPart2_RunnerUp},
+ {gGiftRibbonDescriptionPart1_2004NationalTourney, gGiftRibbonDescriptionPart2_RunnerUp},
+ {gGiftRibbonDescriptionPart1_2004GlobalCup, gGiftRibbonDescriptionPart2_RunnerUp},
+ {gGiftRibbonDescriptionPart1_2004RegionalTourney, gGiftRibbonDescriptionPart2_Semifinalist},
+ {gGiftRibbonDescriptionPart1_2004NationalTourney, gGiftRibbonDescriptionPart2_Semifinalist},
+ {gGiftRibbonDescriptionPart1_2004GlobalCup, gGiftRibbonDescriptionPart2_Semifinalist},
+ {gGiftRibbonDescriptionPart1_2005RegionalTourney, gGiftRibbonDescriptionPart2_Champion},
+ {gGiftRibbonDescriptionPart1_2005NationalTourney, gGiftRibbonDescriptionPart2_Champion},
+ {gGiftRibbonDescriptionPart1_2005GlobalCup, gGiftRibbonDescriptionPart2_Champion},
+ {gGiftRibbonDescriptionPart1_2005RegionalTourney, gGiftRibbonDescriptionPart2_RunnerUp},
+ {gGiftRibbonDescriptionPart1_2005NationalTourney, gGiftRibbonDescriptionPart2_RunnerUp},
+ {gGiftRibbonDescriptionPart1_2005GlobalCup, gGiftRibbonDescriptionPart2_RunnerUp},
+ {gGiftRibbonDescriptionPart1_2005RegionalTourney, gGiftRibbonDescriptionPart2_Semifinalist},
+ {gGiftRibbonDescriptionPart1_2005NationalTourney, gGiftRibbonDescriptionPart2_Semifinalist},
+ {gGiftRibbonDescriptionPart1_2005GlobalCup, gGiftRibbonDescriptionPart2_Semifinalist},
+ {gGiftRibbonDescriptionPart1_PokemonBattleCup, gGiftRibbonDescriptionPart2_Champion},
+ {gGiftRibbonDescriptionPart1_PokemonBattleCup, gGiftRibbonDescriptionPart2_RunnerUp},
+ {gGiftRibbonDescriptionPart1_PokemonBattleCup, gGiftRibbonDescriptionPart2_Semifinalist},
+ {gGiftRibbonDescriptionPart1_PokemonBattleCup, gGiftRibbonDescriptionPart2_Participation},
+ {gGiftRibbonDescriptionPart1_PokemonLeague, gGiftRibbonDescriptionPart2_Champion},
+ {gGiftRibbonDescriptionPart1_PokemonLeague, gGiftRibbonDescriptionPart2_RunnerUp},
+ {gGiftRibbonDescriptionPart1_PokemonLeague, gGiftRibbonDescriptionPart2_Semifinalist},
+ {gGiftRibbonDescriptionPart1_PokemonLeague, gGiftRibbonDescriptionPart2_Participation},
+ {gGiftRibbonDescriptionPart1_AdvanceCup, gGiftRibbonDescriptionPart2_Champion},
+ {gGiftRibbonDescriptionPart1_AdvanceCup, gGiftRibbonDescriptionPart2_RunnerUp},
+ {gGiftRibbonDescriptionPart1_AdvanceCup, gGiftRibbonDescriptionPart2_Semifinalist},
+ {gGiftRibbonDescriptionPart1_AdvanceCup, gGiftRibbonDescriptionPart2_Participation},
+ {gGiftRibbonDescriptionPart1_PokemonTournament, gGiftRibbonDescriptionPart2_Participation2},
+ {gGiftRibbonDescriptionPart1_PokemonEvent, gGiftRibbonDescriptionPart2_Participation2},
+ {gGiftRibbonDescriptionPart1_PokemonFestival, gGiftRibbonDescriptionPart2_Participation2},
+ {gGiftRibbonDescriptionPart1_DifficultyClearing, gGiftRibbonDescriptionPart2_Commemorative},
+ {gGiftRibbonDescriptionPart1_ClearingAllDifficulties, gGiftRibbonDescriptionPart2_ClearingAllDifficulties},
+ {gGiftRibbonDescriptionPart1_100StraightWin, gGiftRibbonDescriptionPart2_Commemorative},
+ {gGiftRibbonDescriptionPart1_DarknessTower, gGiftRibbonDescriptionPart2_Commemorative},
+ {gGiftRibbonDescriptionPart1_RedTower, gGiftRibbonDescriptionPart2_Commemorative},
+ {gGiftRibbonDescriptionPart1_BlackironTower, gGiftRibbonDescriptionPart2_Commemorative},
+ {gGiftRibbonDescriptionPart1_FinalTower, gGiftRibbonDescriptionPart2_Commemorative},
+ {gGiftRibbonDescriptionPart1_LegendMaking, gGiftRibbonDescriptionPart2_Commemorative},
+ {gGiftRibbonDescriptionPart1_PokemonCenterTokyo, gGiftRibbonDescriptionPart2_Commemorative},
+ {gGiftRibbonDescriptionPart1_PokemonCenterOsaka, gGiftRibbonDescriptionPart2_Commemorative},
+ {gGiftRibbonDescriptionPart1_PokemonCenterNagoya, gGiftRibbonDescriptionPart2_Commemorative},
+ {gGiftRibbonDescriptionPart1_PokemonCenterNY, gGiftRibbonDescriptionPart2_Commemorative},
+ {gGiftRibbonDescriptionPart1_SummerHolidays, gGiftRibbonDescriptionPart2_EmptyString},
+ {gGiftRibbonDescriptionPart1_WinterHolidays, gGiftRibbonDescriptionPart2_EmptyString},
+ {gGiftRibbonDescriptionPart1_SpringHolidays, gGiftRibbonDescriptionPart2_EmptyString},
+ {gGiftRibbonDescriptionPart1_Evergreen, gGiftRibbonDescriptionPart2_EmptyString},
+ {gGiftRibbonDescriptionPart1_SpecialHoliday, gGiftRibbonDescriptionPart2_EmptyString},
+ {gGiftRibbonDescriptionPart1_HardWorker, gGiftRibbonDescriptionPart2_EmptyString},
+ {gGiftRibbonDescriptionPart1_LotsOfFriends, gGiftRibbonDescriptionPart2_EmptyString},
+ {gGiftRibbonDescriptionPart1_FullOfEnergy, gGiftRibbonDescriptionPart2_EmptyString},
+ {gGiftRibbonDescriptionPart1_LovedPokemon, gGiftRibbonDescriptionPart2_LovedPokemon},
+ {gGiftRibbonDescriptionPart1_LoveForPokemon, gGiftRibbonDescriptionPart2_LoveForPokemon},
+};
diff --git a/src/data/text/ribbon_descriptions_de.h b/src/data/text/ribbon_descriptions_de.h
new file mode 100644
index 000000000..2fef7fb7b
--- /dev/null
+++ b/src/data/text/ribbon_descriptions_de.h
@@ -0,0 +1,67 @@
+const u8 gRibbonDescriptionPart1_Champion[] = _(
+ "BAND für unschlagbare");
+const u8 gRibbonDescriptionPart2_Champion[] = _(
+ "RUHMESHALLE-Mitglieder");
+const u8 gRibbonDescriptionPart1_CoolContest[] = _(
+ "COOLNESS-WETTBEWERB");
+const u8 gRibbonDescriptionPart1_BeautyContest[] = _(
+ "SCHÖNHEITSWETTBEWERB");
+const u8 gRibbonDescriptionPart1_CuteContest[] = _(
+ "ANMUT-WETTBEWERB");
+const u8 gRibbonDescriptionPart1_SmartContest[] = _(
+ "KLUGHEITSWETTBEWERB");
+const u8 gRibbonDescriptionPart1_ToughContest[] = _(
+ "STÄRKE-WETTBEWERB");
+const u8 gRibbonDescriptionPart2_NormalRank[] = _(
+ "Sieger in Normal-Klasse!");
+const u8 gRibbonDescriptionPart2_SuperRank[] = _(
+ "Sieger in Super-Klasse!");
+const u8 gRibbonDescriptionPart2_HyperRank[] = _(
+ "Sieger in Hyper-Klasse!");
+const u8 gRibbonDescriptionPart2_MasterRank[] = _(
+ "Sieger in Master-Klasse!");
+const u8 gRibbonDescriptionPart1_Winning[] = _(
+ "BAND für Lv. 50-Erfolg");
+const u8 gRibbonDescriptionPart2_Winning[] = _(
+ "im DUELLTURM.");
+const u8 gRibbonDescriptionPart1_Victory[] = _(
+ "Für Erfolg in Lv. 100");
+const u8 gRibbonDescriptionPart2_Victory[] = _(
+ "im DUELLTURM.");
+const u8 gRibbonDescriptionPart1_Artist[] = _(
+ "Band für auserwählte");
+const u8 gRibbonDescriptionPart2_Artist[] = _(
+ "Porträt-Modelle.");
+const u8 gRibbonDescriptionPart1_Effort[] = _(
+ "BAND für");
+const u8 gRibbonDescriptionPart2_Effort[] = _(
+ "fleißige Arbeiter.");
+
+const u8 *const gRibbonDescriptions[][2] =
+{
+ {gRibbonDescriptionPart1_Champion, gRibbonDescriptionPart2_Champion},
+ {gRibbonDescriptionPart1_CoolContest, gRibbonDescriptionPart2_NormalRank},
+ {gRibbonDescriptionPart1_CoolContest, gRibbonDescriptionPart2_SuperRank},
+ {gRibbonDescriptionPart1_CoolContest, gRibbonDescriptionPart2_HyperRank},
+ {gRibbonDescriptionPart1_CoolContest, gRibbonDescriptionPart2_MasterRank},
+ {gRibbonDescriptionPart1_BeautyContest, gRibbonDescriptionPart2_NormalRank},
+ {gRibbonDescriptionPart1_BeautyContest, gRibbonDescriptionPart2_SuperRank},
+ {gRibbonDescriptionPart1_BeautyContest, gRibbonDescriptionPart2_HyperRank},
+ {gRibbonDescriptionPart1_BeautyContest, gRibbonDescriptionPart2_MasterRank},
+ {gRibbonDescriptionPart1_CuteContest, gRibbonDescriptionPart2_NormalRank},
+ {gRibbonDescriptionPart1_CuteContest, gRibbonDescriptionPart2_SuperRank},
+ {gRibbonDescriptionPart1_CuteContest, gRibbonDescriptionPart2_HyperRank},
+ {gRibbonDescriptionPart1_CuteContest, gRibbonDescriptionPart2_MasterRank},
+ {gRibbonDescriptionPart1_SmartContest, gRibbonDescriptionPart2_NormalRank},
+ {gRibbonDescriptionPart1_SmartContest, gRibbonDescriptionPart2_SuperRank},
+ {gRibbonDescriptionPart1_SmartContest, gRibbonDescriptionPart2_HyperRank},
+ {gRibbonDescriptionPart1_SmartContest, gRibbonDescriptionPart2_MasterRank},
+ {gRibbonDescriptionPart1_ToughContest, gRibbonDescriptionPart2_NormalRank},
+ {gRibbonDescriptionPart1_ToughContest, gRibbonDescriptionPart2_SuperRank},
+ {gRibbonDescriptionPart1_ToughContest, gRibbonDescriptionPart2_HyperRank},
+ {gRibbonDescriptionPart1_ToughContest, gRibbonDescriptionPart2_MasterRank},
+ {gRibbonDescriptionPart1_Winning, gRibbonDescriptionPart2_Winning},
+ {gRibbonDescriptionPart1_Victory, gRibbonDescriptionPart2_Victory},
+ {gRibbonDescriptionPart1_Artist, gRibbonDescriptionPart2_Artist},
+ {gRibbonDescriptionPart1_Effort, gRibbonDescriptionPart2_Effort},
+};
diff --git a/src/data/text/ribbon_descriptions_en.h b/src/data/text/ribbon_descriptions_en.h
new file mode 100644
index 000000000..5a314d2a6
--- /dev/null
+++ b/src/data/text/ribbon_descriptions_en.h
@@ -0,0 +1,85 @@
+const u8 gRibbonDescriptionPart1_Champion[] = _(
+ "CHAMPION-beating, HALL");
+
+const u8 gRibbonDescriptionPart2_Champion[] = _(
+ "OF FAME Member RIBBON");
+
+const u8 gRibbonDescriptionPart1_CoolContest[] = _(
+ "COOL CONTEST");
+
+const u8 gRibbonDescriptionPart1_BeautyContest[] = _(
+ "BEAUTY CONTEST");
+
+const u8 gRibbonDescriptionPart1_CuteContest[] = _(
+ "CUTE CONTEST");
+
+const u8 gRibbonDescriptionPart1_SmartContest[] = _(
+ "SMART CONTEST");
+
+const u8 gRibbonDescriptionPart1_ToughContest[] = _(
+ "TOUGH CONTEST");
+
+const u8 gRibbonDescriptionPart2_NormalRank[] = _(
+ "Normal Rank winner!");
+
+const u8 gRibbonDescriptionPart2_SuperRank[] = _(
+ "Super Rank winner!");
+
+const u8 gRibbonDescriptionPart2_HyperRank[] = _(
+ "Hyper Rank winner!");
+
+const u8 gRibbonDescriptionPart2_MasterRank[] = _(
+ "Master Rank winner!");
+
+const u8 gRibbonDescriptionPart1_Winning[] = _(
+ "RIBBON for clearing LV50");
+
+const u8 gRibbonDescriptionPart2_Winning[] = _(
+ "at the BATTLE TOWER.");
+
+const u8 gRibbonDescriptionPart1_Victory[] = _(
+ "Won for clearing LV100");
+
+const u8 gRibbonDescriptionPart2_Victory[] = _(
+ "at the BATTLE TOWER.");
+
+const u8 gRibbonDescriptionPart1_Artist[] = _(
+ "RIBBON for being chosen");
+
+const u8 gRibbonDescriptionPart2_Artist[] = _(
+ "as a super sketch model.");
+
+const u8 gRibbonDescriptionPart1_Effort[] = _(
+ "RIBBON awarded for");
+
+const u8 gRibbonDescriptionPart2_Effort[] = _(
+ "being a hard worker.");
+
+const u8 *const gRibbonDescriptions[][2] =
+{
+ {gRibbonDescriptionPart1_Champion, gRibbonDescriptionPart2_Champion},
+ {gRibbonDescriptionPart1_CoolContest, gRibbonDescriptionPart2_NormalRank},
+ {gRibbonDescriptionPart1_CoolContest, gRibbonDescriptionPart2_SuperRank},
+ {gRibbonDescriptionPart1_CoolContest, gRibbonDescriptionPart2_HyperRank},
+ {gRibbonDescriptionPart1_CoolContest, gRibbonDescriptionPart2_MasterRank},
+ {gRibbonDescriptionPart1_BeautyContest, gRibbonDescriptionPart2_NormalRank},
+ {gRibbonDescriptionPart1_BeautyContest, gRibbonDescriptionPart2_SuperRank},
+ {gRibbonDescriptionPart1_BeautyContest, gRibbonDescriptionPart2_HyperRank},
+ {gRibbonDescriptionPart1_BeautyContest, gRibbonDescriptionPart2_MasterRank},
+ {gRibbonDescriptionPart1_CuteContest, gRibbonDescriptionPart2_NormalRank},
+ {gRibbonDescriptionPart1_CuteContest, gRibbonDescriptionPart2_SuperRank},
+ {gRibbonDescriptionPart1_CuteContest, gRibbonDescriptionPart2_HyperRank},
+ {gRibbonDescriptionPart1_CuteContest, gRibbonDescriptionPart2_MasterRank},
+ {gRibbonDescriptionPart1_SmartContest, gRibbonDescriptionPart2_NormalRank},
+ {gRibbonDescriptionPart1_SmartContest, gRibbonDescriptionPart2_SuperRank},
+ {gRibbonDescriptionPart1_SmartContest, gRibbonDescriptionPart2_HyperRank},
+ {gRibbonDescriptionPart1_SmartContest, gRibbonDescriptionPart2_MasterRank},
+ {gRibbonDescriptionPart1_ToughContest, gRibbonDescriptionPart2_NormalRank},
+ {gRibbonDescriptionPart1_ToughContest, gRibbonDescriptionPart2_SuperRank},
+ {gRibbonDescriptionPart1_ToughContest, gRibbonDescriptionPart2_HyperRank},
+ {gRibbonDescriptionPart1_ToughContest, gRibbonDescriptionPart2_MasterRank},
+ {gRibbonDescriptionPart1_Winning, gRibbonDescriptionPart2_Winning},
+ {gRibbonDescriptionPart1_Victory, gRibbonDescriptionPart2_Victory},
+ {gRibbonDescriptionPart1_Artist, gRibbonDescriptionPart2_Artist},
+ {gRibbonDescriptionPart1_Effort, gRibbonDescriptionPart2_Effort},
+};
diff --git a/src/data/text/trainer_eye_descriptions_de.h b/src/data/text/trainer_eye_descriptions_de.h
new file mode 100644
index 000000000..4f3be5fe4
--- /dev/null
+++ b/src/data/text/trainer_eye_descriptions_de.h
@@ -0,0 +1,486 @@
+static const u8 TrainerEyeDescription_AromaLady_Rose[] = _(
+ "Emotionen beruhigen.$"
+ "Duftende PFLANZEN-PKMN.$"
+ "Beruhigende Aromen reini-$"
+ "gen Körper und Geist.");
+
+static const u8 TrainerEyeDescription_RuinManiac_Dusty[] = _(
+ "Durch Stärke überzeugen!$"
+ "Felsige GESTEINS-PKMN.$"
+ "Während des Studiums der$"
+ "Antike sehe ich die Welt.");
+
+static const u8 TrainerEyeDescription_Tuber_Lola[] = _(
+ "Ich strenge mich stets an!$"
+ "PKMN, die gut schwimmen.$"
+ "Ich würde gerne ohne den$"
+ "Reifen schwimmen können.");
+
+static const u8 TrainerEyeDescription_Tuber_Ricky[] = _(
+ "Ich versuche einfach alles.$"
+ "WASSER-PKMN sind Kumpel.$"
+ "Ich kann schwimmen! Ich$"
+ "mag halt den Schwimmreifen!");
+
+static const u8 TrainerEyeDescription_SisAndBro_RitaAndSam[] = _(
+ "Wir teilen die Arbeit auf.$"
+ "Wir lieben freundliche PKMN.$"
+ "Wir teilen die Liebe zu den$"
+ "PKMN. Wir sind Geschwister!");
+
+static const u8 TrainerEyeDescription_Cooltrainer_Brooke[] = _(
+ "Schwächen erkennen.$"
+ "Gleichgewicht ist wichtig.$"
+ "Mein Ziel ist es, der$"
+ "PKMN-CHAMP zu werden.");
+
+static const u8 TrainerEyeDescription_Cooltrainer_Wilton[] = _(
+ "Den Gegner umwerfen.$"
+ "Der PKMN-Typ ist unwichtig.$"
+ "Ich bin der beste Schüler$"
+ "der PKMN TRAINERSCHULE.");
+
+static const u8 TrainerEyeDescription_HexManiac_Valerie[] = _(
+ "Langsames Niederringen.$"
+ "Nachts Furcht einflößend.$"
+ "Ich sehe Dinge, die den$"
+ "anderen verborgen sind...");
+
+static const u8 TrainerEyeDescription_Lady_Cindy[] = _(
+ "Alles, was zum Sieg führt.$"
+ "Hinreißende Wesen!$"
+ "Ich habe zu Hause einen$"
+ "Pool für meine PKMN.");
+
+static const u8 TrainerEyeDescription_Beauty_Jessica[] = _(
+ "Ich bringe dich vom Weg ab.$"
+ "Niedlich, natürlich!$"
+ "Ich liebe die SAFARI-ZONE,$"
+ "dort werde ich bleiben.");
+
+static const u8 TrainerEyeDescription_RichBoy_Winston[] = _(
+ "Wer braucht Strategie?!?$"
+ "Alle, die gut und teuer sind.$"
+ "Ich bin reich. Und daher$"
+ "besitze ich ein PKMN-Bett.");
+
+static const u8 TrainerEyeDescription_PokeManiac_Steve[] = _(
+ "Durch Stärke gewinnen!$"
+ "Habe sie nachts gefangen...$"
+ "Große, kräftige und zähe$"
+ "POKéMON sind die besten...");
+
+static const u8 TrainerEyeDescription_Swimmer_Tony[] = _(
+ "Volle Pulle zuschlagen!$"
+ "Funky WASSER-PKMN!$"
+ "Wenn ich nicht schwimme,$"
+ "stemme ich Gewichte!");
+
+static const u8 TrainerEyeDescription_BlackBelt_Nob[] = _(
+ "Immer gewinnen!$"
+ "KAMPF-PKMN!$"
+ "Ohne zu prahlen: Ich kann$"
+ "10 Ziegel zerschmettern!");
+
+static const u8 TrainerEyeDescription_Guitarist_Dalton[] = _(
+ "Ich elektrisiere dich!$"
+ "Es sind ELEKTRO-PKMN.$"
+ "Ich bringe die Menschen mit$"
+ "meinen Liedern zum Weinen.");
+
+static const u8 TrainerEyeDescription_Kindler_Bernie[] = _(
+ "Alles niederbrennen!$"
+ "Feuergefährliche POKéMON!$"
+ "Neben einem Lagerfeuer$"
+ "sollte stets Wasser stehen!");
+
+static const u8 TrainerEyeDescription_Camper_Ethan[] = _(
+ "Man muss hartnäckig sein.$"
+ "Jede Art von POKéMON.$"
+ "PKMN, die in der Wildnis auf-$"
+ "wachsen, werden stark!");
+
+static const u8 TrainerEyeDescription_OldCouple_JohnAndJay[] = _(
+ "Unsere Liebe schlägt alles.$"
+ "Wir haben sie seit Jahren.$"
+ "In 50 Jahren Ehe waren$"
+ "wir den PKMN immer treu.");
+
+static const u8 TrainerEyeDescription_BugManiac_Brandon[] = _(
+ "Wellenförmiger Angriff!$"
+ "KÄFER-PKMN sind cool!$"
+ "Ich gehe jeden Tag in den$"
+ "Wald, KÄFER-PKMN fangen.");
+
+static const u8 TrainerEyeDescription_Psychic_Cameron[] = _(
+ "Schwächen und verwirren!$"
+ "Solche mit irren Kräften.$"
+ "Ich kann deine Gedanken$"
+ "klar und deutlich lesen.");
+
+static const u8 TrainerEyeDescription_Psychic_Jacki[] = _(
+ "Mit vollem Einsatz kämpfen.$"
+ "Geheimnisvolle POKéMON.$"
+ "Wenn ich spreche,$"
+ "setze ich Telepathie ein.");
+
+static const u8 TrainerEyeDescription_Gentleman_Walter[] = _(
+ "Ruhig, gesammelt vorgehen.$"
+ "Ganz verschiedene PKMN.$"
+ "Wir genießen die tägliche$"
+ "Tasse Tee.");
+
+static const u8 TrainerEyeDescription_SchoolKid_Karen[] = _(
+ "Ich kämpfe mit Köpfchen.$"
+ "Ich liebe jedes PKMN.$"
+ "Schreibe ich gute Noten,$"
+ "gibt Papi mir Geld.");
+
+static const u8 TrainerEyeDescription_SchoolKid_Jerry[] = _(
+ "Mein Wissen ist Macht!$"
+ "Jedes clevere PKMN.$"
+ "Ich will später ein großer$"
+ "PKMN-Forscher werden.");
+
+static const u8 TrainerEyeDescription_SrAndJr_AnnaAndMeg[] = _(
+ "Wir sprechen uns ab.$"
+ "PKMN, die wir beide mögen.$"
+ "Wir sind Senior und Junior$"
+ "im Studium der PKMN.");
+
+static const u8 TrainerEyeDescription_Pokefan_Isabel[] = _(
+ "Los geht's, meine Lieben!$"
+ "Ich mag sie alle!$"
+ "Auch beim Einkaufen lasse$"
+ "ich keinen Kampf aus!");
+
+static const u8 TrainerEyeDescription_Pokefan_Miguel[] = _(
+ "Ich kämpfe mit dem Herzen.$"
+ "PKMN, die Liebe erfahren!$"
+ "PKMN und Menschen müssen$"
+ "Vertrauen aufbauen!");
+
+static const u8 TrainerEyeDescription_Expert_Timothy[] = _(
+ "Ich durchschaue Gegner!$"
+ "Die Basis des Kampfes.$"
+ "Ich bin noch nicht bereit,$"
+ "Jüngeren Platz zu machen.");
+
+static const u8 TrainerEyeDescription_Expert_Shelby[] = _(
+ "Angriff als Verteidigung!$"
+ "KAMPF-PKMN!$"
+ "Ich bin alt und habe daher$"
+ "meinen eigenen Stil.");
+
+static const u8 TrainerEyeDescription_Youngster_Calvin[] = _(
+ "Ich tue, was ich kann.$"
+ "Verschiedene Arten.$"
+ "Ich will irgendwann einen$"
+ "ARENALEITER besiegen!");
+
+static const u8 TrainerEyeDescription_Fisherman_Elliot[] = _(
+ "Geduld und Spucke.$"
+ "WASSER-PKMN!$"
+ "Niemand vor mir hat je$"
+ "etwas Größeres gefangen!");
+
+static const u8 TrainerEyeDescription_Triathlete_Abigail[] = _(
+ "Verteidigung ist die Basis.$"
+ "Kraftvolle PKMN!$"
+ "Dies war als Diät gedacht,$"
+ "jetzt ist es mein Hobby.");
+
+static const u8 TrainerEyeDescription_Triathlete_Benjamin[] = _(
+ "Weiter, immer weiter!$"
+ "Die Stärke von STAHL...$"
+ "Wenn du schwitzt, musst du$"
+ "regelmäßig etwas trinken!");
+
+static const u8 TrainerEyeDescription_Triathlete_Isaiah[] = _(
+ "Die Umgebung erforschen.$"
+ "WASSER-PKMN!$"
+ "Ich lasse mich nicht von$"
+ "Strandhäschen besiegen.");
+
+static const u8 TrainerEyeDescription_Triathlete_Katelyn[] = _(
+ "Stets Offensive zeigen!$"
+ "Nur WASSER-PKMN...$"
+ "Ich muss jeden Tag$"
+ "10 Kilometer schwimmen.");
+
+static const u8 TrainerEyeDescription_Triathlete_Maria[] = _(
+ "Geschwindigkeit ist alles!$"
+ "Ich liebe schnelle PKMN.$"
+ "Beim Marathon forderst du$"
+ "dich selbst heraus.");
+
+static const u8 TrainerEyeDescription_Triathlete_Dylan[] = _(
+ "Schneller als andere sein.$"
+ "Ein rasend schnelles PKMN!$"
+ "Rennt man rasend schnell,$"
+ "wird man eins mit dem Wind.");
+
+static const u8 TrainerEyeDescription_DragonTamer_Nicolas[] = _(
+ "Die Stärke der PKMN nutzen.$"
+ "Sieh die Macht der DRACHEN!$"
+ "Eines Tages werde ich zur$"
+ "Legende!!!");
+
+static const u8 TrainerEyeDescription_BirdKeeper_Robert[] = _(
+ "Ich zeige dir die Technik!$"
+ "Elegant kreisende VÖGEL.$"
+ "Meine VOGEL-PKMN bringen$"
+ "dem Mädchen meine Liebe!");
+
+static const u8 TrainerEyeDescription_NinjaBoy_Lao[] = _(
+ "Du wirst Gift schmecken!$"
+ "Giftige PKMN.$"
+ "Ich trainiere hart, um ein$"
+ "Ninja zu werden.");
+
+static const u8 TrainerEyeDescription_BattleGirl_Cyndy[] = _(
+ "Der Erstschlag siegt!$"
+ "Schnelle KAMPF-PKMN.$"
+ "Wenn mein PKMN verliert,$"
+ "kämpfe ich doch weiter.");
+
+static const u8 TrainerEyeDescription_ParasolLady_Madeline[] = _(
+ "Los, los, meine PKMN!$"
+ "Ich mag alle PKMN.$"
+ "UV-Strahlen sind die Feinde$"
+ "der Haut. Creme dich ein!");
+
+static const u8 TrainerEyeDescription_Swimmer_Jenny[] = _(
+ "Keine Gnade!$"
+ "Niedliche WASSER-PKMN.$"
+ "Ich habe zu viele Fans, ich$"
+ "war nämlich im Fernsehen.");
+
+static const u8 TrainerEyeDescription_Picnicker_Diana[] = _(
+ "Ich probiere dies und das.$"
+ "Ich liebe alle PKMN.$"
+ "Was liegt hinter diesem$"
+ "hohen Berg dort?");
+
+static const u8 TrainerEyeDescription_Twins_AmyAndLiv[] = _(
+ "Wir kämpfen zusammen!$"
+ "Wir trainieren zusammen!$"
+ "Wir lieben die gleichen PKMN$"
+ "und verschiedene Desserts.");
+
+static const u8 TrainerEyeDescription_Sailor_Ernest[] = _(
+ "Ich setze Stärke ein.$"
+ "WASSER- und KAMPF-PKMN.$"
+ "Matrosen sind raue Typen!$"
+ "Irgendwelche Einwände?");
+
+static const u8 TrainerEyeDescription_Collector_Edwin[] = _(
+ "PKMN vor Schaden bewahren.$"
+ "Ich liebe seltene PKMN.$"
+ "Ich möchte seltene PKMN$"
+ "aus aller Welt sammeln.");
+
+static const u8 TrainerEyeDescription_PkmnBreeder_Lydia[] = _(
+ "Meine Stärke...$"
+ "PKMN sind meine Kinder.$"
+ "Man benötigt Wissen und$"
+ "Liebe im Umgang mit PKMN.");
+
+static const u8 TrainerEyeDescription_PkmnBreeder_Isaac[] = _(
+ "Angriff aus vollen Rohren!$"
+ "Jedes PKMN kommt in Frage.$"
+ "Ich gebe ihnen {POKEBLOCK}, um$"
+ "in WETTBEWERBEN zu siegen.");
+
+static const u8 TrainerEyeDescription_PkmnRanger_Catherine[] = _(
+ "Ich glaube an meine PKMN.$"
+ "Ich liebe starke PKMN.$"
+ "Ich bilde meine PKMN zu$"
+ "einem Rettungsteam aus.");
+
+static const u8 TrainerEyeDescription_PkmnRanger_Jackson[] = _(
+ "Ich greife in Etappen an.$"
+ "Verschiedene Arten.$"
+ "Umweltverschmutzern darf$"
+ "man niemals vergeben!");
+
+static const u8 TrainerEyeDescription_Lass_Haley[] = _(
+ "Ich zeige meinen Mut.$"
+ "Ich liebe niedliche PKMN!$"
+ "Nach einem Kampf gehe ich$"
+ "mit meinen PKMN schwimmen.");
+
+static const u8 TrainerEyeDescription_BugCatcher_James[] = _(
+ "Blitzschnelle Attacken.$"
+ "KÄFER-PKMN sind das Beste!$"
+ "Um KÄFER-PKMN zu fangen,$"
+ "musst du früh aufstehen.");
+
+static const u8 TrainerEyeDescription_Hiker_Trent[] = _(
+ "Ich kämpfe mit Stärke.$"
+ "PKMN mit hartem Körper.$"
+ "Ich habe diese Wanderung$"
+ "einen Monat vorbereitet.");
+
+static const u8 TrainerEyeDescription_YoungCouple_LoisAndHal[] = _(
+ "Liebevolle Strategie!$"
+ "Liebevolle PKMN!$"
+ "Wir sind liebevoll!$"
+ "Immer liebevoll!");
+
+static const u8 TrainerEyeDescription_PkmnTrainer_Wally[] = _(
+ "Wir lassen alles raus.$"
+ "Das 1. PKMN, das ich fing.$"
+ "Die PKMN und ich sind$"
+ "zusammen gewachsen.");
+
+static const u8 TrainerEyeDescription_Leader_Roxanne[] = _(
+ "Steinharte Attacken.$"
+ "Steinharte PKMN...$"
+ "Ich möchte durch Kämpfe$"
+ "alles über PKMN lernen.");
+
+static const u8 TrainerEyeDescription_Leader_Brawly[] = _(
+ "Direkte physische Attacke.$"
+ "Ich baue auf KAMPF-PKMN.$"
+ "Die Welt erwartet mich, als$"
+ "neuen, starken Kämpfer.");
+
+static const u8 TrainerEyeDescription_Leader_Wattson[] = _(
+ "Elektrisieren... Britzel...$"
+ "Elektrizität bestimmt alles.$"
+ "Hahahahaha! Lachen hält$"
+ "gesund und jung!");
+
+static const u8 TrainerEyeDescription_Leader_Flannery[] = _(
+ "Aggressiv kämpfen.$"
+ "Brennen vor Leidenschaft!$"
+ "Spül die tägliche Müdigkeit$"
+ "in den Heißen Quellen ab.");
+
+static const u8 TrainerEyeDescription_Leader_Norman[] = _(
+ "Mein Stil ist flexibel.$"
+ "Gleichmäßig gewachsen.$"
+ "PKMN sind mein Leben. Mein$"
+ "Weg des Lebens ist steinig.");
+
+static const u8 TrainerEyeDescription_Leader_Winona[] = _(
+ "Ich nutze die Initiative.$"
+ "Anmutige Himmelstänzer.$"
+ "Ich sehe das Auf und Ab$"
+ "der Winde.");
+
+static const u8 TrainerEyeDescription_Leader_TateAndLiza[] = _(
+ "Wir kämpfen zusammen.$"
+ "Immer freundliche PKMN.$"
+ "Wir verstehen uns.$"
+ "Und wir verstehen andere.");
+
+static const u8 TrainerEyeDescription_Leader_Wallace[] = _(
+ "Würde und Respekt.$"
+ "Ich liebe anmutige PKMN.$"
+ "Wasserillusionen unter-$"
+ "streichen meinen Stil.");
+
+static const u8 TrainerEyeDescription_EliteFour_Sidney[] = _(
+ "Offensive vor Defensive.$"
+ "Das Schöne des UNLICHTS.$"
+ "Du kannst sagen, was du$"
+ "willst, Macht ist alles!");
+
+static const u8 TrainerEyeDescription_EliteFour_Phoebe[] = _(
+ "Verwirrend verwirren.$"
+ "Keine besondere Vorliebe.$"
+ "Wie es wohl meiner Oma am$"
+ "PYROBERG geht?");
+
+static const u8 TrainerEyeDescription_EliteFour_Glacia[] = _(
+ "Ich setze Items ein.$"
+ "Flammendes Inferno in Eis.$"
+ "Der EIS-Typ entwickelt$"
+ "sich gut an warmen Orten.");
+
+static const u8 TrainerEyeDescription_EliteFour_Drake[] = _(
+ "Starke Fähigkeiten nutzen.$"
+ "Die rohe Kraft der DRACHEN.$"
+ "Beim täglichen Kampf lerne$"
+ "ich alles über PKMN.");
+
+static const u8 TrainerEyeDescription_Champion_Steven[] = _(
+ "Die gegn. Schwäche nutzen.$"
+ "Das ultimative STAHL-PKMN.$"
+ "Wenn es drauf ankommt,$"
+ "bin ich am stärksten!");
+
+const u8 *const gTrainerEyeDescriptions[] =
+{
+ TrainerEyeDescription_AromaLady_Rose,
+ TrainerEyeDescription_RuinManiac_Dusty,
+ TrainerEyeDescription_Tuber_Lola,
+ TrainerEyeDescription_Tuber_Ricky,
+ TrainerEyeDescription_SisAndBro_RitaAndSam,
+ TrainerEyeDescription_Cooltrainer_Brooke,
+ TrainerEyeDescription_Cooltrainer_Wilton,
+ TrainerEyeDescription_HexManiac_Valerie,
+ TrainerEyeDescription_Lady_Cindy,
+ TrainerEyeDescription_Beauty_Jessica,
+ TrainerEyeDescription_RichBoy_Winston,
+ TrainerEyeDescription_PokeManiac_Steve,
+ TrainerEyeDescription_Swimmer_Tony,
+ TrainerEyeDescription_BlackBelt_Nob,
+ TrainerEyeDescription_Guitarist_Dalton,
+ TrainerEyeDescription_Kindler_Bernie,
+ TrainerEyeDescription_Camper_Ethan,
+ TrainerEyeDescription_OldCouple_JohnAndJay,
+ TrainerEyeDescription_BugManiac_Brandon,
+ TrainerEyeDescription_Psychic_Cameron,
+ TrainerEyeDescription_Psychic_Jacki,
+ TrainerEyeDescription_Gentleman_Walter,
+ TrainerEyeDescription_SchoolKid_Karen,
+ TrainerEyeDescription_SchoolKid_Jerry,
+ TrainerEyeDescription_SrAndJr_AnnaAndMeg,
+ TrainerEyeDescription_Pokefan_Isabel,
+ TrainerEyeDescription_Pokefan_Miguel,
+ TrainerEyeDescription_Expert_Timothy,
+ TrainerEyeDescription_Expert_Shelby,
+ TrainerEyeDescription_Youngster_Calvin,
+ TrainerEyeDescription_Fisherman_Elliot,
+ TrainerEyeDescription_Triathlete_Abigail,
+ TrainerEyeDescription_Triathlete_Benjamin,
+ TrainerEyeDescription_Triathlete_Isaiah,
+ TrainerEyeDescription_Triathlete_Katelyn,
+ TrainerEyeDescription_Triathlete_Maria,
+ TrainerEyeDescription_Triathlete_Dylan,
+ TrainerEyeDescription_DragonTamer_Nicolas,
+ TrainerEyeDescription_BirdKeeper_Robert,
+ TrainerEyeDescription_NinjaBoy_Lao,
+ TrainerEyeDescription_BattleGirl_Cyndy,
+ TrainerEyeDescription_ParasolLady_Madeline,
+ TrainerEyeDescription_Swimmer_Jenny,
+ TrainerEyeDescription_Picnicker_Diana,
+ TrainerEyeDescription_Twins_AmyAndLiv,
+ TrainerEyeDescription_Sailor_Ernest,
+ TrainerEyeDescription_Collector_Edwin,
+ TrainerEyeDescription_PkmnBreeder_Lydia,
+ TrainerEyeDescription_PkmnBreeder_Isaac,
+ TrainerEyeDescription_PkmnRanger_Catherine,
+ TrainerEyeDescription_PkmnRanger_Jackson,
+ TrainerEyeDescription_Lass_Haley,
+ TrainerEyeDescription_BugCatcher_James,
+ TrainerEyeDescription_Hiker_Trent,
+ TrainerEyeDescription_YoungCouple_LoisAndHal,
+ TrainerEyeDescription_PkmnTrainer_Wally,
+ TrainerEyeDescription_Leader_Roxanne,
+ TrainerEyeDescription_Leader_Brawly,
+ TrainerEyeDescription_Leader_Wattson,
+ TrainerEyeDescription_Leader_Flannery,
+ TrainerEyeDescription_Leader_Norman,
+ TrainerEyeDescription_Leader_Winona,
+ TrainerEyeDescription_Leader_TateAndLiza,
+ TrainerEyeDescription_Leader_Wallace,
+ TrainerEyeDescription_EliteFour_Sidney,
+ TrainerEyeDescription_EliteFour_Phoebe,
+ TrainerEyeDescription_EliteFour_Glacia,
+ TrainerEyeDescription_EliteFour_Drake,
+ TrainerEyeDescription_Champion_Steven
+};
diff --git a/src/data/text/trainer_eye_descriptions_en.h b/src/data/text/trainer_eye_descriptions_en.h
new file mode 100644
index 000000000..bc07c3f5b
--- /dev/null
+++ b/src/data/text/trainer_eye_descriptions_en.h
@@ -0,0 +1,486 @@
+static const u8 TrainerEyeDescription_AromaLady_Rose[] = _(
+ "Becalm fighting emotions.$"
+ "Fragrant GRASS POKéMON$"
+ "Soothing aromas make the$"
+ "body and mind healthy.");
+
+static const u8 TrainerEyeDescription_RuinManiac_Dusty[] = _(
+ "Overwhelm with power!$"
+ "Craggy ROCK POKéMON$"
+ "In search of ancient lore,$"
+ "I travel the world.");
+
+static const u8 TrainerEyeDescription_Tuber_Lola[] = _(
+ "I'm going to try hard!$"
+ "Good swimmer POKéMON$"
+ "I wish I could swim without$"
+ "using an inner tube.");
+
+static const u8 TrainerEyeDescription_Tuber_Ricky[] = _(
+ "I don't know. I'll try hard.$"
+ "WATER POKéMON are buddies.$"
+ "It's not like I can't swim.$"
+ "I just like my inner tube.");
+
+static const u8 TrainerEyeDescription_SisAndBro_RitaAndSam[] = _(
+ "We split our duties.$"
+ "We like friendly POKéMON.$"
+ "We enjoy POKéMON together$"
+ "as sister and brother.");
+
+static const u8 TrainerEyeDescription_Cooltrainer_Brooke[] = _(
+ "Exploit the foe's weakness.$"
+ "Balance is crucial.$"
+ "My goal is to become the$"
+ "POKéMON CHAMPION.");
+
+static const u8 TrainerEyeDescription_Cooltrainer_Wilton[] = _(
+ "Upset the opponent.$"
+ "Type doesn't matter.$"
+ "I'm a top student at the$"
+ "TRAINER'S SCHOOL.");
+
+static const u8 TrainerEyeDescription_HexManiac_Valerie[] = _(
+ "Slow, steady suffering$"
+ "Scary to meet at night.$"
+ "I see things that others$"
+ "can't see...");
+
+static const u8 TrainerEyeDescription_Lady_Cindy[] = _(
+ "Anything to win.$"
+ "Gorgeous type!$"
+ "I have a pool specially for$"
+ "my POKéMON at home.");
+
+static const u8 TrainerEyeDescription_Beauty_Jessica[] = _(
+ "I'll lead you astray.$"
+ "Cute, of course.$"
+ "I love the SAFARI ZONE.$"
+ "I seem to end up there.");
+
+static const u8 TrainerEyeDescription_RichBoy_Winston[] = _(
+ "Strategy? Who needs it?$"
+ "I spent big money on it!$"
+ "I, being rich, sleep in a$"
+ "custom POKéMON bed.");
+
+static const u8 TrainerEyeDescription_PokeManiac_Steve[] = _(
+ "Wrestle down with power.$"
+ "Took all night to catch...$"
+ "Big, burly, and buff$"
+ "POKéMON are the best...");
+
+static const u8 TrainerEyeDescription_Swimmer_Tony[] = _(
+ "Ram at full speed!$"
+ "Funky WATER type!$"
+ "If I can't be out swimming,$"
+ "I'll be pumping weights.");
+
+static const u8 TrainerEyeDescription_BlackBelt_Nob[] = _(
+ "Grand slam pummeling!$"
+ "FIGHTING type$"
+ "Not to brag, but I can bust$"
+ "ten roof tiles!");
+
+static const u8 TrainerEyeDescription_Guitarist_Dalton[] = _(
+ "I'll electrify you!$"
+ "They're ELECTRIC!$"
+ "I want to make people cry$"
+ "with songs from my heart.");
+
+static const u8 TrainerEyeDescription_Kindler_Bernie[] = _(
+ "Burn it all down!$"
+ "Burn-inducing POKéMON$"
+ "When you light a campfire,$"
+ "be sure there's some water.");
+
+static const u8 TrainerEyeDescription_Camper_Ethan[] = _(
+ "Hang in and be tenacious!$"
+ "I'll raise any POKéMON.$"
+ "POKéMON raised in the wild$"
+ "grow strong!");
+
+static const u8 TrainerEyeDescription_OldCouple_JohnAndJay[] = _(
+ "Our love lets us prevail.$"
+ "We've had them for years.$"
+ "Married 50 years, we've$"
+ "devotedly raised POKéMON.");
+
+static const u8 TrainerEyeDescription_BugManiac_Brandon[] = _(
+ "Attack in waves!$"
+ "BUG POKéMON are cool.$"
+ "I go into the forest every$"
+ "day to catch BUG POKéMON.");
+
+static const u8 TrainerEyeDescription_Psychic_Cameron[] = _(
+ "Daze and confuse!$"
+ "Ones with weird powers.$"
+ "I can see through exactly$"
+ "what you're thinking!");
+
+static const u8 TrainerEyeDescription_Psychic_Jacki[] = _(
+ "Battle at full power.$"
+ "POKéMON of many mysteries$"
+ "When we spoke, I was really$"
+ "using telepathy.");
+
+static const u8 TrainerEyeDescription_Gentleman_Walter[] = _(
+ "Calm and collected.$"
+ "POKéMON of distinction$"
+ "We enjoy a spot of tea$"
+ "every day. It's imported.");
+
+static const u8 TrainerEyeDescription_SchoolKid_Karen[] = _(
+ "I use my head to battle.$"
+ "I love any kind of POKéMON!$"
+ "My daddy gives me spending$"
+ "money if I ace a test.");
+
+static const u8 TrainerEyeDescription_SchoolKid_Jerry[] = _(
+ "My knowledge rules!$"
+ "Any smart POKéMON!$"
+ "I want to be a POKéMON$"
+ "researcher in the future.");
+
+static const u8 TrainerEyeDescription_SrAndJr_AnnaAndMeg[] = _(
+ "We talk it over first.$"
+ "POKéMON that we both like.$"
+ "We're senior and junior$"
+ "students into POKéMON!");
+
+static const u8 TrainerEyeDescription_Pokefan_Isabel[] = _(
+ "Go for it, my dears!$"
+ "I have no likes or dislikes.$"
+ "While out shopping for$"
+ "supper, I battle too.");
+
+static const u8 TrainerEyeDescription_Pokefan_Miguel[] = _(
+ "I battle with love!$"
+ "A POKéMON raised with love!$"
+ "It's important to build$"
+ "trust with your POKéMON.");
+
+static const u8 TrainerEyeDescription_Expert_Timothy[] = _(
+ "I see through your moves!$"
+ "The essence of FIGHTING.$"
+ "I'm not ready to give way$"
+ "to the young yet!");
+
+static const u8 TrainerEyeDescription_Expert_Shelby[] = _(
+ "Attack while defending$"
+ "The FIGHTING type$"
+ "Being old, I have my own$"
+ "style of battling.");
+
+static const u8 TrainerEyeDescription_Youngster_Calvin[] = _(
+ "I do what I can.$"
+ "I use different types.$"
+ "I'm going to keep working$"
+ "until I beat a GYM LEADER.");
+
+static const u8 TrainerEyeDescription_Fisherman_Elliot[] = _(
+ "I battle patiently.$"
+ "WATER POKéMON to battle!$"
+ "I'm the world's only guy to$"
+ "catch a huge POKéMON!");
+
+static const u8 TrainerEyeDescription_Triathlete_Abigail[] = _(
+ "Defense is crucial.$"
+ "My POKéMON is solid.$"
+ "I started this for dieting,$"
+ "but I got right into it.");
+
+static const u8 TrainerEyeDescription_Triathlete_Benjamin[] = _(
+ "Push and push again!$"
+ "The strength of STEEL$"
+ "If you're sweating, get$"
+ "fluids into you regularly.");
+
+static const u8 TrainerEyeDescription_Triathlete_Isaiah[] = _(
+ "Exploit the environment!$"
+ "All hail the WATER type!$"
+ "I won't be beaten by some$"
+ "beach bum SWIMMER!");
+
+static const u8 TrainerEyeDescription_Triathlete_Katelyn[] = _(
+ "All-out offensive!$"
+ "WATER POKéMON rule!$"
+ "I must swim over 6 miles$"
+ "every day.");
+
+static const u8 TrainerEyeDescription_Triathlete_Maria[] = _(
+ "Speed above all!$"
+ "I use a speedy POKéMON.$"
+ "A marathon is a challenge$"
+ "against your own self.");
+
+static const u8 TrainerEyeDescription_Triathlete_Dylan[] = _(
+ "Strike before stricken!$"
+ "A fast-running POKéMON!$"
+ "If you ran and ran, you'd$"
+ "become one with the wind.");
+
+static const u8 TrainerEyeDescription_DragonTamer_Nicolas[] = _(
+ "It's about POKéMON power!$"
+ "See the power of DRAGONS!$"
+ "I'll become legendary as the$"
+ "strongest one day!");
+
+static const u8 TrainerEyeDescription_BirdKeeper_Robert[] = _(
+ "I'll show you my technique!$"
+ "Elegantly wheeling BIRDS$"
+ "My BIRD POKéMON, deliver my$"
+ "love to that girl!");
+
+static const u8 TrainerEyeDescription_NinjaBoy_Lao[] = _(
+ "You'll suffer from poison!$"
+ "Poisonous POKéMON$"
+ "I undertake training so$"
+ "that I may become a ninja.");
+
+static const u8 TrainerEyeDescription_BattleGirl_Cyndy[] = _(
+ "The first strike wins!$"
+ "Speedy FIGHTING type$"
+ "If my POKéMON lose,$"
+ "I'll carry on the fight!");
+
+static const u8 TrainerEyeDescription_ParasolLady_Madeline[] = _(
+ "Go, go, my POKéMON!$"
+ "I'll raise anything.$"
+ "UV rays are your skin's$"
+ "enemy. Get protected.");
+
+static const u8 TrainerEyeDescription_Swimmer_Jenny[] = _(
+ "No mercy!$"
+ "Cute WATER POKéMON$"
+ "I have too many fans.$"
+ "I was interviewed on TV.");
+
+static const u8 TrainerEyeDescription_Picnicker_Diana[] = _(
+ "I think about this & that.$"
+ "I like all POKéMON.$"
+ "What lies beyond that$"
+ "yonder hill?");
+
+static const u8 TrainerEyeDescription_Twins_AmyAndLiv[] = _(
+ "We battle together!$"
+ "We train together!$"
+ "We like the same POKéMON,$"
+ "but different desserts.");
+
+static const u8 TrainerEyeDescription_Sailor_Ernest[] = _(
+ "I force things with power!$"
+ "WATER and FIGHTING types$"
+ "Seamen are rough spirits!$"
+ "Any complaints?");
+
+static const u8 TrainerEyeDescription_Collector_Edwin[] = _(
+ "Protect POKéMON from harm.$"
+ "I love rare POKéMON.$"
+ "I want to collect all the$"
+ "world's rare POKéMON.");
+
+static const u8 TrainerEyeDescription_PkmnBreeder_Lydia[] = _(
+ "I count on power.$"
+ "POKéMON are my children.$"
+ "It takes knowledge and$"
+ "love to raise POKéMON.");
+
+static const u8 TrainerEyeDescription_PkmnBreeder_Isaac[] = _(
+ "Full-on attack!$"
+ "Anything. I'll raise it.$"
+ "I give them {POKEBLOCK}S for$"
+ "going after CONTEST titles.");
+
+static const u8 TrainerEyeDescription_PkmnRanger_Catherine[] = _(
+ "I believe in my POKéMON.$"
+ "I like strong POKéMON.$"
+ "I'm training for rescue$"
+ "work with my POKéMON.");
+
+static const u8 TrainerEyeDescription_PkmnRanger_Jackson[] = _(
+ "I attack in waves.$"
+ "Different types$"
+ "Those who destroy nature$"
+ "must never be forgiven!");
+
+static const u8 TrainerEyeDescription_Lass_Haley[] = _(
+ "I'll show you some guts!$"
+ "Cute POKéMON are my faves!$"
+ "After a battle, I always$"
+ "bathe with my POKéMON.");
+
+static const u8 TrainerEyeDescription_BugCatcher_James[] = _(
+ "Lightning-fast attack!$"
+ "BUG POKéMON are number 1!$"
+ "If you want to catch BUG$"
+ "POKéMON, wake up early.");
+
+static const u8 TrainerEyeDescription_Hiker_Trent[] = _(
+ "I battle with power.$"
+ "Hard-bodied POKéMON$"
+ "I've been planning a month$"
+ "for today's hike.");
+
+static const u8 TrainerEyeDescription_YoungCouple_LoisAndHal[] = _(
+ "Lovey-dovey strategy!$"
+ "Lovey-dovey POKéMON!$"
+ "We're lovey-dovey!$"
+ "Forever lovey-dovey!");
+
+static const u8 TrainerEyeDescription_PkmnTrainer_Wally[] = _(
+ "We let it all hang out.$"
+ "The 1st POKéMON I caught.$"
+ "POKéMON and I have grown$"
+ "stronger together.");
+
+static const u8 TrainerEyeDescription_Leader_Roxanne[] = _(
+ "ROCK-type power attack$"
+ "Rock-solid types are good.$"
+ "Through battling, I want to$"
+ "learn all about POKéMON.");
+
+static const u8 TrainerEyeDescription_Leader_Brawly[] = _(
+ "Direct physical action!$"
+ "FIGHTING POKéMON rule!$"
+ "The world awaits me as the$"
+ "next big wave!");
+
+static const u8 TrainerEyeDescription_Leader_Wattson[] = _(
+ "I choose to electrify.$"
+ "Get shocked by electricity!$"
+ "Wahahahaha! The secret to$"
+ "health is laughter!");
+
+static const u8 TrainerEyeDescription_Leader_Flannery[] = _(
+ "Battle aggressively.$"
+ "Burn with passion!$"
+ "Wash away daily fatigue in$"
+ "hot springs completely!");
+
+static const u8 TrainerEyeDescription_Leader_Norman[] = _(
+ "I flexibly adapt my style.$"
+ "Grown in a balanced manner.$"
+ "POKéMON are my life.$"
+ "My chosen path is harsh...");
+
+static const u8 TrainerEyeDescription_Leader_Winona[] = _(
+ "I take advantage of speed.$"
+ "Graceful sky dancers$"
+ "I can see the ebb and flow$"
+ "of the winds.");
+
+static const u8 TrainerEyeDescription_Leader_TateAndLiza[] = _(
+ "We battle in cooperation.$"
+ "Always friendly POKéMON.$"
+ "We understand each other,$"
+ "and we understand others.");
+
+static const u8 TrainerEyeDescription_Leader_Wallace[] = _(
+ "Dignity and respect$"
+ "I prefer POKéMON of grace.$"
+ "Aquatic illusions best suit$"
+ "my distinctive elegance.");
+
+static const u8 TrainerEyeDescription_EliteFour_Sidney[] = _(
+ "Offense over defense$"
+ "The DARK side's beauties$"
+ "You can talk all you want -$"
+ "might is right!");
+
+static const u8 TrainerEyeDescription_EliteFour_Phoebe[] = _(
+ "Confuse and confound$"
+ "There's nothing definite.$"
+ "I wonder how my grandma at$"
+ "MT. PYRE is doing?");
+
+static const u8 TrainerEyeDescription_EliteFour_Glacia[] = _(
+ "I use items for help.$"
+ "Flaming passion in icy cold!$"
+ "The ICE type can be better$"
+ "trained in this hot land.");
+
+static const u8 TrainerEyeDescription_EliteFour_Drake[] = _(
+ "Harness strong abilities.$"
+ "The raw power of DRAGONS!$"
+ "I live to battle every day$"
+ "to learn about POKéMON.");
+
+static const u8 TrainerEyeDescription_Champion_Steven[] = _(
+ "Pick on the foe's weakness.$"
+ "The ultimate STEEL POKéMON$"
+ "When it comes down to it,$"
+ "I'm still the strongest!");
+
+const u8 *const gTrainerEyeDescriptions[] =
+{
+ TrainerEyeDescription_AromaLady_Rose,
+ TrainerEyeDescription_RuinManiac_Dusty,
+ TrainerEyeDescription_Tuber_Lola,
+ TrainerEyeDescription_Tuber_Ricky,
+ TrainerEyeDescription_SisAndBro_RitaAndSam,
+ TrainerEyeDescription_Cooltrainer_Brooke,
+ TrainerEyeDescription_Cooltrainer_Wilton,
+ TrainerEyeDescription_HexManiac_Valerie,
+ TrainerEyeDescription_Lady_Cindy,
+ TrainerEyeDescription_Beauty_Jessica,
+ TrainerEyeDescription_RichBoy_Winston,
+ TrainerEyeDescription_PokeManiac_Steve,
+ TrainerEyeDescription_Swimmer_Tony,
+ TrainerEyeDescription_BlackBelt_Nob,
+ TrainerEyeDescription_Guitarist_Dalton,
+ TrainerEyeDescription_Kindler_Bernie,
+ TrainerEyeDescription_Camper_Ethan,
+ TrainerEyeDescription_OldCouple_JohnAndJay,
+ TrainerEyeDescription_BugManiac_Brandon,
+ TrainerEyeDescription_Psychic_Cameron,
+ TrainerEyeDescription_Psychic_Jacki,
+ TrainerEyeDescription_Gentleman_Walter,
+ TrainerEyeDescription_SchoolKid_Karen,
+ TrainerEyeDescription_SchoolKid_Jerry,
+ TrainerEyeDescription_SrAndJr_AnnaAndMeg,
+ TrainerEyeDescription_Pokefan_Isabel,
+ TrainerEyeDescription_Pokefan_Miguel,
+ TrainerEyeDescription_Expert_Timothy,
+ TrainerEyeDescription_Expert_Shelby,
+ TrainerEyeDescription_Youngster_Calvin,
+ TrainerEyeDescription_Fisherman_Elliot,
+ TrainerEyeDescription_Triathlete_Abigail,
+ TrainerEyeDescription_Triathlete_Benjamin,
+ TrainerEyeDescription_Triathlete_Isaiah,
+ TrainerEyeDescription_Triathlete_Katelyn,
+ TrainerEyeDescription_Triathlete_Maria,
+ TrainerEyeDescription_Triathlete_Dylan,
+ TrainerEyeDescription_DragonTamer_Nicolas,
+ TrainerEyeDescription_BirdKeeper_Robert,
+ TrainerEyeDescription_NinjaBoy_Lao,
+ TrainerEyeDescription_BattleGirl_Cyndy,
+ TrainerEyeDescription_ParasolLady_Madeline,
+ TrainerEyeDescription_Swimmer_Jenny,
+ TrainerEyeDescription_Picnicker_Diana,
+ TrainerEyeDescription_Twins_AmyAndLiv,
+ TrainerEyeDescription_Sailor_Ernest,
+ TrainerEyeDescription_Collector_Edwin,
+ TrainerEyeDescription_PkmnBreeder_Lydia,
+ TrainerEyeDescription_PkmnBreeder_Isaac,
+ TrainerEyeDescription_PkmnRanger_Catherine,
+ TrainerEyeDescription_PkmnRanger_Jackson,
+ TrainerEyeDescription_Lass_Haley,
+ TrainerEyeDescription_BugCatcher_James,
+ TrainerEyeDescription_Hiker_Trent,
+ TrainerEyeDescription_YoungCouple_LoisAndHal,
+ TrainerEyeDescription_PkmnTrainer_Wally,
+ TrainerEyeDescription_Leader_Roxanne,
+ TrainerEyeDescription_Leader_Brawly,
+ TrainerEyeDescription_Leader_Wattson,
+ TrainerEyeDescription_Leader_Flannery,
+ TrainerEyeDescription_Leader_Norman,
+ TrainerEyeDescription_Leader_Winona,
+ TrainerEyeDescription_Leader_TateAndLiza,
+ TrainerEyeDescription_Leader_Wallace,
+ TrainerEyeDescription_EliteFour_Sidney,
+ TrainerEyeDescription_EliteFour_Phoebe,
+ TrainerEyeDescription_EliteFour_Glacia,
+ TrainerEyeDescription_EliteFour_Drake,
+ TrainerEyeDescription_Champion_Steven,
+};
diff --git a/src/pokenav_before.c b/src/pokenav_before.c
index 3150629b7..c9390a070 100644
--- a/src/pokenav_before.c
+++ b/src/pokenav_before.c
@@ -26,6 +26,7 @@
#include "pokemon_summary_screen.h"
#include "use_pokeblock.h"
#include "constants/game_stat.h"
+#include "pokemon.h"
struct UnknownPokenav0
{
@@ -104,6 +105,1016 @@ struct UnkPokenavStruct *const gPokenavStructPtr = (struct UnkPokenavStruct *)gS
extern u16 gKeyRepeatStartDelay;
+// rodata?
+const u8 *const gUnknown_083DFEC8 = gTileBuffer;
+
+const u8 gUnknown_083DFECC[] = INCBIN_U8("graphics/pokenav/83DFECC.gbapal");
+
+const u8 gUnknown_083DFEEC[] = INCBIN_U8("graphics/pokenav/83DFEEC.4bpp");
+const u8 gUnknown_083DFF8C[] = INCBIN_U8("graphics/pokenav/83DFF8C.bin.lz");
+const u16 gUnknown_083E003C[] = INCBIN_U16("graphics/pokenav/83E003C.gbapal");
+
+const u8 gUnknown_083E005C[] = INCBIN_U8("graphics/pokenav/83E005C.4bpp");
+const u8 gUnknown_083E007C[] = INCBIN_U8("graphics/pokenav/83E007C.bin.lz");
+const u16 gUnknown_083E0124[] = INCBIN_U16("graphics/pokenav/83E0124_pal.bin");
+
+const u16 gUnknown_083E0144[] = INCBIN_U16("graphics/pokenav/83E0144_pal.bin");
+
+const u16 gUnknown_083E0164[] = INCBIN_U16("graphics/pokenav/83E0164.bin");//?
+
+const u8 gUnknown_083E01AC[] = INCBIN_U8("graphics/pokenav/83E01AC.bin");
+const u8 gUnknown_083E01F4[] = INCBIN_U8("graphics/pokenav/83E01F4.bin");
+const u8 gUnknown_083E0254[] = INCBIN_U8("graphics/pokenav/83E0254.gbapal");
+const u16 gUnknown_083E0274[] = INCBIN_U16("graphics/pokenav/83E0274.gbapal");
+
+const u16 gPokenavConditionSearch2_Pal[] = INCBIN_U16("graphics/pokenav/condition_search2.gbapal");
+
+const u16 gUnknown_083E02B4[] = INCBIN_U16("graphics/pokenav/83E02B4.gbapal");
+
+const u16 gUnknown_083E02D4[] = INCBIN_U16("graphics/pokenav/83E02D4.bin");//?
+
+const u8 gUnknown_083E0314[] = INCBIN_U8("graphics/pokenav/83E0314.gbapal");
+const u8 gUnknown_083E0334[] = INCBIN_U8("graphics/pokenav/trainereyes_misc_pal.bin");
+
+const u8 gUnknown_083E0354[] = INCBIN_U8("graphics/pokenav/trainereyes_misc.4bpp.lz");
+
+const u8 gUnknown_083E039C[][4] =
+{
+ {0x80, 0x42, 0x82, 0x42},
+};
+
+const u8 gUnknown_083E03A0[][8] =
+{
+ {0x00, 0x40, 0x00, 0x40, 0x81, 0x42, 0x83, 0x42},
+};
+
+const u16 gUnknown_083E03A8[] = INCBIN_U16("graphics/pokenav/83E03A8.gbapal");
+const u16 gUnknown_083E03C8[] = INCBIN_U16("graphics/pokenav/83E03C8.bin");
+const u8 gUnknown_083E040C[] = INCBIN_U8("graphics/misc/ribbons_half.4bpp.lz");
+const u8 gPokenavOutlinePalette[] = INCBIN_U8("graphics/pokenav/outline.gbapal");
+const u8 gPokenavOutlineTiles[] = INCBIN_U8("graphics/pokenav/outline.4bpp.lz");
+const u8 gPokenavOutlineTilemap[] = INCBIN_U8("graphics/pokenav/outline_map.bin.lz");
+
+#include "data/region_map/city_map_tilemaps.h"
+
+#ifdef ENGLISH
+#include "data/text/ribbon_descriptions_en.h"
+#include "data/text/gift_ribbon_descriptions_en.h"
+#include "data/text/trainer_eye_descriptions_en.h"
+#elif GERMAN
+#include "data/text/ribbon_descriptions_de.h"
+#include "data/text/gift_ribbon_descriptions_de.h"
+#include "data/text/trainer_eye_descriptions_de.h"
+#endif
+
+const u8 *const gUnknown_083E31B0[] =
+{
+ PCText_CheckMap,
+ PCText_CheckPoke,
+ PCText_CheckTrainer,
+ PCText_CheckRibbons,
+ PCText_PutAwayNav,
+ PCText_NoRibbonWin,
+ PCText_NoTrainers,
+};
+
+const u8 *const gUnknown_083E31CC[] =
+{
+ PCText_CheckParty,
+ PCText_CheckPokeAll,
+ PCText_ReturnToNav,
+};
+
+const u8 *const gUnknown_083E31D8[] =
+{
+ PCText_FindCool,
+ PCText_FindBeauty,
+ PCText_FindCute,
+ PCText_FindSmart,
+ PCText_FindTough,
+ PCText_ReturnToCondition,
+};
+
+#include "data/region_map/city_map_entries.h"
+
+void sub_80F0A24(u16, u16);
+void sub_80F0A74(u16, u16);
+
+void (*const gUnknown_083E3270[])(u16, u16) =
+{
+ sub_80F0A24,
+ sub_80F0A24,
+ sub_80F0A74,
+};
+
+const u16 gPokenavIconPalette[] = INCBIN_U16("graphics/pokenav/icon.gbapal");
+const u8 gUnknown_083E329C[] = INCBIN_U8("graphics/pokenav/icon.4bpp.lz");
+const u8 gPokenavPokeballTiles[] = INCBIN_U8("graphics/pokenav/pokeball.4bpp");
+const u8 gUnknown_083E3780[] = INCBIN_U8("graphics/pokenav/83E3780.4bpp");
+const u16 gPokenavSparkle_Pal[] = INCBIN_U16("graphics/pokenav/sparkle.gbapal");
+const u8 gPokenavSparkle_Gfx[] = INCBIN_U8("graphics/pokenav/sparkle.4bpp");
+const u8 gPokenavUpDownArrows_Gfx[] = INCBIN_U8("graphics/pokenav/arrows.4bpp");
+const u8 gUnknown_083E3BC0[] = INCBIN_U8("graphics/pokenav/83E3BC0.bin");
+const u8 gTiles_083E3BE0[] = INCBIN_U8("graphics/unknown/unknown_3E3BE0.4bpp");
+
+const u16 gUnknown_083E3C60[][16] =
+{
+ INCBIN_U16("graphics/misc/ribbons_cool.gbapal"),
+ INCBIN_U16("graphics/misc/ribbons_beauty.gbapal"),
+ INCBIN_U16("graphics/misc/ribbons_cute.gbapal"),
+ INCBIN_U16("graphics/misc/ribbons_smart.gbapal"),
+ INCBIN_U16("graphics/misc/ribbons_tough.gbapal"),
+};
+
+const u8 gUnknown_083E3D00[] = INCBIN_U8("graphics/misc/ribbons_full.4bpp.lz");
+const u16 PokenavBlueLightPalette[] = INCBIN_U16("graphics/pokenav/blue_light.gbapal");
+const u8 PokenavBlueLightTiles[] = INCBIN_U8("graphics/pokenav/blue_light.4bpp");
+const u16 Palette_3E42D8[] = INCBIN_U16("graphics/pokenav/83E42D8.gbapal");
+
+const u16 gUnknown_083E42F8[] =
+{
+ BLDALPHA_BLEND(8, 4),
+ BLDALPHA_BLEND(8, 4),
+ BLDALPHA_BLEND(7, 5),
+ BLDALPHA_BLEND(7, 5),
+ BLDALPHA_BLEND(6, 6),
+ BLDALPHA_BLEND(6, 6),
+ BLDALPHA_BLEND(5, 8),
+ BLDALPHA_BLEND(5, 8),
+ BLDALPHA_BLEND(4, 10),
+ BLDALPHA_BLEND(4, 10),
+ BLDALPHA_BLEND(3, 12),
+ BLDALPHA_BLEND(3, 12),
+ BLDALPHA_BLEND(2, 14),
+ BLDALPHA_BLEND(2, 14),
+ BLDALPHA_BLEND(0, 16),
+ BLDALPHA_BLEND(0, 16),
+};
+
+const struct OamData gOamData_83E4318 =
+{
+ .y = 0,
+ .affineMode = ST_OAM_AFFINE_OFF,
+ .objMode = 0,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = 1,
+ .x = 0,
+ .matrixNum = 0,
+ .size = 2,
+ .tileNum = 0,
+ .priority = 1,
+ .paletteNum = 0,
+ .affineParam = 0,
+};
+
+static const union AnimCmd sSpriteAnim_83E4320[] =
+{
+ ANIMCMD_FRAME(0, 5),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd sSpriteAnim_83E4328[] =
+{
+ ANIMCMD_FRAME(8, 5),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd sSpriteAnim_83E4330[] =
+{
+ ANIMCMD_FRAME(16, 5),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd sSpriteAnim_83E4338[] =
+{
+ ANIMCMD_FRAME(24, 5),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd sSpriteAnim_83E4340[] =
+{
+ ANIMCMD_FRAME(32, 5),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd sSpriteAnim_83E4348[] =
+{
+ ANIMCMD_FRAME(40, 5),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd sSpriteAnim_83E4350[] =
+{
+ ANIMCMD_FRAME(48, 5),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd sSpriteAnim_83E4358[] =
+{
+ ANIMCMD_FRAME(56, 5),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd sSpriteAnim_83E4360[] =
+{
+ ANIMCMD_FRAME(64, 5),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd sSpriteAnim_83E4368[] =
+{
+ ANIMCMD_FRAME(72, 5),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd sSpriteAnim_83E4370[] =
+{
+ ANIMCMD_FRAME(80, 5),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd sSpriteAnim_83E4378[] =
+{
+ ANIMCMD_FRAME(88, 5),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd sSpriteAnim_83E4380[] =
+{
+ ANIMCMD_FRAME(96, 5),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd sSpriteAnim_83E4388[] =
+{
+ ANIMCMD_FRAME(104, 5),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd sSpriteAnim_83E4390[] =
+{
+ ANIMCMD_FRAME(112, 5),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd sSpriteAnim_83E4398[] =
+{
+ ANIMCMD_FRAME(120, 5),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd sSpriteAnim_83E43A0[] =
+{
+ ANIMCMD_FRAME(128, 5),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd sSpriteAnim_83E43A8[] =
+{
+ ANIMCMD_FRAME(136, 5),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd sSpriteAnim_83E43B0[] =
+{
+ ANIMCMD_FRAME(144, 5),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd sSpriteAnim_83E43B8[] =
+{
+ ANIMCMD_FRAME(152, 5),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd sSpriteAnim_83E43C0[] =
+{
+ ANIMCMD_FRAME(160, 5),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd sSpriteAnim_83E43C8[] =
+{
+ ANIMCMD_FRAME(168, 5),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd sSpriteAnim_83E43D0[] =
+{
+ ANIMCMD_FRAME(176, 5),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd sSpriteAnim_83E43D8[] =
+{
+ ANIMCMD_FRAME(184, 5),
+ ANIMCMD_END,
+};
+
+const union AnimCmd *const gSpriteAnimTable_83E43E0[] =
+{
+ sSpriteAnim_83E4320,
+ sSpriteAnim_83E4328,
+ sSpriteAnim_83E4330,
+ sSpriteAnim_83E4338,
+ sSpriteAnim_83E4340,
+ sSpriteAnim_83E4348,
+ sSpriteAnim_83E4350,
+ sSpriteAnim_83E4358,
+ sSpriteAnim_83E4360,
+ sSpriteAnim_83E4368,
+ sSpriteAnim_83E4370,
+ sSpriteAnim_83E4378,
+ sSpriteAnim_83E4380,
+ sSpriteAnim_83E4388,
+ sSpriteAnim_83E4390,
+ sSpriteAnim_83E4398,
+ sSpriteAnim_83E43A0,
+ sSpriteAnim_83E43A8,
+ sSpriteAnim_83E43B0,
+ sSpriteAnim_83E43B8,
+ sSpriteAnim_83E43C0,
+ sSpriteAnim_83E43C8,
+ sSpriteAnim_83E43D0,
+ sSpriteAnim_83E43D8,
+};
+
+const union AffineAnimCmd gSpriteAffineAnim_83E4440[] =
+{
+ AFFINEANIMCMD_FRAME(0x10, 0x10, 0, 16),
+ AFFINEANIMCMD_END,
+};
+
+const union AffineAnimCmd *const gSpriteAffineAnimTable_83E4450[] =
+{
+ gSpriteAffineAnim_83E4440,
+};
+
+const struct SpriteTemplate gSpriteTemplate_83E4454 =
+{
+ .tileTag = 0,
+ .paletteTag = 0,
+ .oam = &gOamData_83E4318,
+ .anims = gSpriteAnimTable_83E43E0,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCallbackDummy,
+};
+
+// sizeof(PokenavBlueLightTiles) ?
+const struct SpriteSheet gSpriteSheet_PokenavBlueLight = {PokenavBlueLightTiles, 0x100, 25};
+
+const struct SpritePalette gSpritePalette_PokenavBlueLight = {PokenavBlueLightPalette, 17};
+
+const struct OamData gOamData_83E447C =
+{
+ .y = 0,
+ .affineMode = ST_OAM_AFFINE_OFF,
+ .objMode = 0,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = 1,
+ .x = 0,
+ .matrixNum = 0,
+ .size = 2,
+ .tileNum = 0,
+ .priority = 1,
+ .paletteNum = 0,
+ .affineParam = 0,
+};
+
+void sub_80F2654(struct Sprite *);
+
+const struct SpriteTemplate gSpriteTemplate_83E4484 =
+{
+ .tileTag = 25,
+ .paletteTag = 17,
+ .oam = &gOamData_83E447C,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_80F2654,
+};
+
+extern const u16 gPokenavMenuOptions3_Pal[];
+extern const u16 gPokenavCondition5_Pal[];
+
+const struct SpritePalette gUnknown_083E449C[] =
+{
+ {gPokenavMenuOptions3_Pal, 2},
+ {gPokenavCondition5_Pal, 3},
+ {0x0, 0},
+};
+
+const struct OamData gOamData_83E44B4 =
+{
+ .y = 0,
+ .affineMode = ST_OAM_AFFINE_OFF,
+ .objMode = 0,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = ST_OAM_H_RECTANGLE,
+ .x = 0,
+ .matrixNum = 0,
+ .size = 3,
+ .tileNum = 0,
+ .priority = 1,
+ .paletteNum = 0,
+ .affineParam = 0,
+};
+
+const union AnimCmd gSpriteAnim_83E44BC[] =
+{
+ ANIMCMD_FRAME(0, 5),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gSpriteAnim_83E44C4[] =
+{
+ ANIMCMD_FRAME(32, 5),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gSpriteAnim_83E44CC[] =
+{
+ ANIMCMD_FRAME(64, 5),
+ ANIMCMD_END,
+};
+
+const union AnimCmd *const gSpriteAnimTable_83E44D4[] =
+{
+ gSpriteAnim_83E44BC,
+ gSpriteAnim_83E44C4,
+ gSpriteAnim_83E44CC,
+};
+
+void sub_80F2BBC(struct Sprite *);
+
+const struct SpriteTemplate gSpriteTemplate_83E44E0 =
+{
+ .tileTag = 1,
+ .paletteTag = 2,
+ .oam = &gOamData_83E44B4,
+ .anims = gSpriteAnimTable_83E44D4,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_80F2BBC,
+};
+
+const struct SpriteTemplate gSpriteTemplate_83E44F8 =
+{
+ .tileTag = 1,
+ .paletteTag = 3,
+ .oam = &gOamData_83E44B4,
+ .anims = gSpriteAnimTable_83E44D4,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_80F2BBC,
+};
+
+const struct OamData gOamData_83E4510 =
+{
+ .y = 0,
+ .affineMode = ST_OAM_AFFINE_OFF,
+ .objMode = 0,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = ST_OAM_H_RECTANGLE,
+ .x = 0,
+ .matrixNum = 0,
+ .size = 2,
+ .tileNum = 0,
+ .priority = 1,
+ .paletteNum = 0,
+ .affineParam = 0,
+};
+
+const union AnimCmd gSpriteAnim_83E4518[] =
+{
+ ANIMCMD_FRAME(0, 5),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gSpriteAnim_83E4520[] =
+{
+ ANIMCMD_FRAME(8, 5),
+ ANIMCMD_END,
+};
+
+const union AnimCmd *const gSpriteAnimTable_83E4528[] =
+{
+ gSpriteAnim_83E4518,
+ gSpriteAnim_83E4520,
+};
+
+const struct SpriteTemplate gSpriteTemplate_83E4530 =
+{
+ .tileTag = 2,
+ .paletteTag = 2,
+ .oam = &gOamData_83E4510,
+ .anims = gSpriteAnimTable_83E4528,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_80F2BBC,
+};
+
+const struct SpriteTemplate gSpriteTemplate_83E4548 =
+{
+ .tileTag = 2,
+ .paletteTag = 3,
+ .oam = &gOamData_83E4510,
+ .anims = gSpriteAnimTable_83E4528,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_80F2BBC,
+};
+
+const struct OamData gOamData_83E4560 =
+{
+ .y = 0,
+ .affineMode = ST_OAM_AFFINE_OFF,
+ .objMode = 0,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = ST_OAM_SQUARE,
+ .x = 0,
+ .matrixNum = 0,
+ .size = 3,
+ .tileNum = 0,
+ .priority = 1,
+ .paletteNum = 0,
+ .affineParam = 0,
+};
+
+const struct SpriteSheet gUnknown_083E4568 = {NULL, 0x800, 6};
+
+void sub_80F2E00(struct Sprite *);
+
+const struct SpriteTemplate gSpriteTemplate_83E4570 =
+{
+ .tileTag = 6,
+ .paletteTag = 6,
+ .oam = &gOamData_83E4560,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_80F2E00,
+};
+
+const struct SpritePalette gUnknown_083E4588 = {NULL, 6};
+extern const u8 gPokenavArrow_Gfx[];
+
+const struct SpriteSheet gUnknown_083E4590[] =
+{
+ {gPokenavArrow_Gfx, 0x40, 9},
+ {gPokenavUpDownArrows_Gfx, 0x80, 10},
+ {},
+};
+
+extern const u16 gPokenavArrowsPalette[];
+
+const struct SpritePalette gUnknown_083E45A8 = {gPokenavArrowsPalette, 9};
+
+const struct OamData gOamData_83E45B0 =
+{
+ .y = 0,
+ .affineMode = ST_OAM_AFFINE_OFF,
+ .objMode = 0,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = ST_OAM_V_RECTANGLE,
+ .x = 0,
+ .matrixNum = 0,
+ .size = 0,
+ .tileNum = 0,
+ .priority = 2,
+ .paletteNum = 0,
+ .affineParam = 0,
+};
+
+void sub_80F3190(struct Sprite *);
+
+const struct SpriteTemplate gSpriteTemplate_83E45B8 =
+{
+ .tileTag = 9,
+ .paletteTag = 9,
+ .oam = &gOamData_83E45B0,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_80F3190,
+};
+
+const union AnimCmd gSpriteAnim_83E45D0[] =
+{
+ ANIMCMD_FRAME(0, 3),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gSpriteAnim_83E45D8[] =
+{
+ ANIMCMD_FRAME(2, 3),
+ ANIMCMD_END,
+};
+
+const union AnimCmd *const gSpriteAnimTable_83E45E0[] =
+{
+ gSpriteAnim_83E45D0,
+ gSpriteAnim_83E45D8,
+};
+
+const struct OamData gOamData_83E45E8 =
+{
+ .y = 0,
+ .affineMode = ST_OAM_AFFINE_OFF,
+ .objMode = 0,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = ST_OAM_H_RECTANGLE,
+ .x = 0,
+ .matrixNum = 0,
+ .size = 0,
+ .tileNum = 0,
+ .priority = 2,
+ .paletteNum = 0,
+ .affineParam = 0,
+};
+
+void sub_80F31AC(struct Sprite *);
+
+const struct SpriteTemplate gSpriteTemplate_83E45F0 =
+{
+ .tileTag = 10,
+ .paletteTag = 9,
+ .oam = &gOamData_83E45E8,
+ .anims = gSpriteAnimTable_83E45E0,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_80F31AC,
+};
+
+const struct OamData gOamData_83E4608 =
+{
+ .y = 0,
+ .affineMode = ST_OAM_AFFINE_OFF,
+ .objMode = 0,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = ST_OAM_SQUARE,
+ .x = 0,
+ .matrixNum = 0,
+ .size = 1,
+ .tileNum = 0,
+ .priority = 2,
+ .paletteNum = 0,
+ .affineParam = 0,
+};
+
+const union AnimCmd gSpriteAnim_83E4610[] =
+{
+ ANIMCMD_FRAME(0, 5),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gSpriteAnim_83E4618[] =
+{
+ ANIMCMD_FRAME(4, 5),
+ ANIMCMD_END,
+};
+
+const union AnimCmd *const gSpriteAnimTable_83E4620[] =
+{
+ gSpriteAnim_83E4610,
+ gSpriteAnim_83E4618,
+};
+
+extern const u8 gPokenavConditionMenuCancel_Gfx[];
+
+const struct SpriteSheet gUnknown_083E4628[] =
+{
+ {gPokenavPokeballTiles, 0x100, 3},
+ {gUnknown_083E3780, 0x20, 4},
+ {gPokenavConditionMenuCancel_Gfx, 0x100, 5},
+ {},
+};
+
+extern const u16 gPokenavConditionPokeball_Pal[];
+extern const u16 gPokenavCondition4_Pal[];
+
+const struct SpritePalette gUnknown_083E4648[] =
+{
+ {gPokenavConditionPokeball_Pal, 4},
+ {gPokenavCondition4_Pal, 5},
+ {NULL, 0},
+};
+
+void sub_80F3328(struct Sprite *);
+
+const struct SpriteTemplate gSpriteTemplate_83E4660 =
+{
+ .tileTag = 3,
+ .paletteTag = 4,
+ .oam = &gOamData_83E4608,
+ .anims = gSpriteAnimTable_83E4620,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_80F3328,
+};
+
+const u16 gUnknown_083E4678[] = INCBIN_U16("graphics/pokenav/83E4678.gbapal");
+
+const u16 gPokenavRibbonsIconGfx[][2] =
+{
+ {0, 0},
+ {1, 0},
+ {2, 0},
+ {3, 0},
+ {4, 0},
+ {1, 1},
+ {2, 1},
+ {3, 1},
+ {4, 1},
+ {1, 2},
+ {2, 2},
+ {3, 2},
+ {4, 2},
+ {1, 3},
+ {2, 3},
+ {3, 3},
+ {4, 3},
+ {1, 4},
+ {2, 4},
+ {3, 4},
+ {4, 4},
+ {5, 0},
+ {6, 0},
+ {7, 1},
+ {8, 2},
+ {9, 1},
+ {9, 3},
+ {9, 4},
+ {10, 3},
+ {10, 4},
+ {11, 0},
+ {11, 1},
+};
+
+const struct OamData gOamData_83E4718 =
+{
+ .y = 0,
+ .affineMode = ST_OAM_AFFINE_NORMAL,
+ .objMode = 0,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = ST_OAM_SQUARE,
+ .x = 0,
+ .matrixNum = 0,
+ .size = 2,
+ .tileNum = 0,
+ .priority = 0,
+ .paletteNum = 0,
+ .affineParam = 0,
+};
+
+const union AffineAnimCmd gSpriteAffineAnim_83E4720[] =
+{
+ AFFINEANIMCMD_FRAME(0x80, 0x80, 0, 0),
+ AFFINEANIMCMD_END,
+};
+
+const union AffineAnimCmd gSpriteAffineAnim_83E4730[] =
+{
+ AFFINEANIMCMD_FRAME(0x80, 0x80, 0, 0),
+ AFFINEANIMCMD_FRAME(0x20, 0x20, 0, 4),
+ AFFINEANIMCMD_END,
+};
+
+const union AffineAnimCmd gSpriteAffineAnim_83E4748[] =
+{
+ AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0),
+ AFFINEANIMCMD_FRAME(0xFFE0, 0xFFE0, 0, 4),
+ AFFINEANIMCMD_END,
+};
+
+const union AffineAnimCmd *const gSpriteAffineAnimTable_83E4760[] =
+{
+ gSpriteAffineAnim_83E4720,
+ gSpriteAffineAnim_83E4730,
+ gSpriteAffineAnim_83E4748,
+};
+
+const struct SpriteTemplate gSpriteTemplate_83E476C =
+{
+ .tileTag = 11,
+ .paletteTag = 10,
+ .oam = &gOamData_83E4718,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gSpriteAffineAnimTable_83E4760,
+ .callback = SpriteCallbackDummy,
+};
+
+const struct SpriteSheet gUnknown_083E4784 = {gPokenavSparkle_Gfx, sizeof(gPokenavSparkle_Gfx), 0x0017};
+const struct SpritePalette gUnknown_083E478C = {gPokenavSparkle_Pal, 0x000f};
+
+const s16 gUnknown_083E4794[][2] =
+{
+ { 0 , -35},
+ { 20, -28},
+ { 33, -10},
+ { 33, 10},
+ { 20, 28},
+ { 0 , 35},
+ {-20, 28},
+ {-33, 10},
+ {-33, -10},
+ {-20, -28},
+};
+
+const struct OamData gOamData_83E47BC =
+{
+ .y = 0,
+ .affineMode = ST_OAM_AFFINE_OFF,
+ .objMode = 0,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = ST_OAM_SQUARE,
+ .x = 0,
+ .matrixNum = 0,
+ .size = 1,
+ .tileNum = 0,
+ .priority = 0,
+ .paletteNum = 0,
+ .affineParam = 0,
+};
+
+const union AnimCmd gSpriteAnim_83E47C4[] =
+{
+ ANIMCMD_FRAME(0, 5),
+ ANIMCMD_FRAME(4, 5),
+ ANIMCMD_FRAME(8, 5),
+ ANIMCMD_FRAME(12, 5),
+ ANIMCMD_FRAME(16, 5),
+ ANIMCMD_FRAME(20, 5),
+ ANIMCMD_FRAME(24, 5),
+ ANIMCMD_END,
+};
+
+// sparkles around pokemon on condition page of pokenav
+const union AnimCmd *const gSpriteAnimTable_83E47E4[] =
+{
+ &gSpriteAnim_83E47C4[0],
+ &gSpriteAnim_83E47C4[2],
+ &gSpriteAnim_83E47C4[4],
+ &gSpriteAnim_83E47C4[6],
+ &gSpriteAnim_83E47C4[8],
+ &gSpriteAnim_83E47C4[10],
+ &gSpriteAnim_83E47C4[12],
+};
+
+void sub_80F3E9C(struct Sprite *sprite);
+
+const struct SpriteTemplate gSpriteTemplate_83E4800 =
+{
+ .tileTag = 23,
+ .paletteTag = 15,
+ .oam = &gOamData_83E47BC,
+ .anims = gSpriteAnimTable_83E47E4,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_80F3E9C,
+};
+
+const struct SpritePalette gUnknown_083E4818 = {gPokenavIconPalette, 16};
+
+const union AnimCmd gSpriteAnim_83E4820[] =
+{
+ ANIMCMD_FRAME(0, 12),
+ ANIMCMD_FRAME(16, 12),
+ ANIMCMD_FRAME(32, 12),
+ ANIMCMD_FRAME(48, 12),
+ ANIMCMD_FRAME(64, 12),
+ ANIMCMD_FRAME(80, 12),
+ ANIMCMD_FRAME(96, 12),
+ ANIMCMD_FRAME(112, 12),
+ ANIMCMD_JUMP(0),
+};
+
+const union AnimCmd *const gSpriteAnimTable_83E4844[] =
+{
+ gSpriteAnim_83E4820,
+};
+
+const struct OamData gOamData_83E4848 =
+{
+ .y = 0,
+ .affineMode = ST_OAM_AFFINE_OFF,
+ .objMode = 0,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = ST_OAM_SQUARE,
+ .x = 0,
+ .matrixNum = 0,
+ .size = 2,
+ .tileNum = 0,
+ .priority = 0,
+ .paletteNum = 0,
+ .affineParam = 0,
+};
+
+void sub_80F4138(struct Sprite *);
+
+const struct SpriteTemplate gSpriteTemplate_83E4850 =
+{
+ .tileTag = 24,
+ .paletteTag = 16,
+ .oam = &gOamData_83E4848,
+ .anims = gSpriteAnimTable_83E4844,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_80F4138,
+};
+
+const struct SpritePalette gUnknown_083E4868 = {Palette_3E42D8, 18};
+
+const struct OamData gOamData_83E4870 =
+{
+ .y = 0,
+ .affineMode = ST_OAM_AFFINE_OFF,
+ .objMode = 0,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = ST_OAM_H_RECTANGLE,
+ .x = 0,
+ .matrixNum = 0,
+ .size = 2,
+ .tileNum = 0,
+ .priority = 3,
+ .paletteNum = 0,
+ .affineParam = 0,
+};
+
+const struct SpriteTemplate gSpriteTemplate_83E4878 =
+{
+ .tileTag = 26,
+ .paletteTag = 18,
+ .oam = &gOamData_83E4870,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCallbackDummy,
+};
+
+const u8 gUnknown_083E4890[] =
+{
+ 4, 5, 6, 7, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 13,
+ 13, 14, 14, 14, 14, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 17,
+ 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, 19,
+ 19, 19, 19, 20, 20, 20, 20, 20, 20, 20, 20, 21, 21, 21, 21, 21,
+ 21, 21, 21, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23,
+ 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 27, 27, 27, 27, 27, 27, 27,
+ 27, 27, 27, 27, 27, 27, 27, 28, 28, 28, 28, 28, 28, 28, 28, 28,
+ 28, 28, 28, 28, 28, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ 30, 30, 30, 30, 30, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
+ 31, 31, 31, 31, 31, 31, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32, 33, 33, 33, 33, 33, 33, 33, 33,
+ 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 34, 34, 34, 34, 34,
+ 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 35,
+};
+
+const struct ScanlineEffectParams gUnknown_083E4990 =
+{
+ (void *)REG_ADDR_WIN0H,
+ ((DMA_ENABLE | DMA_START_HBLANK | DMA_32BIT | DMA_REPEAT | DMA_DEST_RELOAD) << 16) | 1,
+ 1,
+ 0,
+};
+
+const u16 gUnknown_083E499C[] =
+{
+ MON_DATA_CHAMPION_RIBBON,
+ MON_DATA_COOL_RIBBON,
+ MON_DATA_BEAUTY_RIBBON,
+ MON_DATA_CUTE_RIBBON,
+ MON_DATA_SMART_RIBBON,
+ MON_DATA_TOUGH_RIBBON,
+ MON_DATA_WINNING_RIBBON,
+ MON_DATA_VICTORY_RIBBON,
+ MON_DATA_ARTIST_RIBBON,
+ MON_DATA_EFFORT_RIBBON,
+ MON_DATA_GIFT_RIBBON_1,
+ MON_DATA_GIFT_RIBBON_2,
+ MON_DATA_GIFT_RIBBON_3,
+ MON_DATA_GIFT_RIBBON_4,
+ MON_DATA_GIFT_RIBBON_5,
+ MON_DATA_GIFT_RIBBON_6,
+ MON_DATA_GIFT_RIBBON_7,
+};
+
void sub_80EBA5C()
{
switch (gMain.state)