summaryrefslogtreecommitdiff
path: root/src/pokenav_before.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/pokenav_before.c')
-rw-r--r--src/pokenav_before.c1011
1 files changed, 1011 insertions, 0 deletions
diff --git a/src/pokenav_before.c b/src/pokenav_before.c
index f017cf834..2ff282458 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)