diff options
author | garak <garakmon@gmail.com> | 2019-07-18 21:57:19 -0400 |
---|---|---|
committer | garak <garakmon@gmail.com> | 2019-07-18 21:57:19 -0400 |
commit | dcac22cef97ff6b78e83f427d559d923e37c8029 (patch) | |
tree | 11f9ca34b10195a06711edc2eee24c0578ca23be /src | |
parent | a27c727e8bc00f449ab216486c6b9dd606963974 (diff) |
finish pokenav data decomp
Diffstat (limited to 'src')
-rw-r--r-- | src/data/region_map/city_map_entries.h | 19 | ||||
-rw-r--r-- | src/pokenav_before.c | 928 |
2 files changed, 947 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..949fc2b8d --- /dev/null +++ b/src/data/region_map/city_map_entries.h @@ -0,0 +1,19 @@ +const u8 *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/pokenav_before.c b/src/pokenav_before.c index 3a1fddca2..d339fbffc 100644 --- a/src/pokenav_before.c +++ b/src/pokenav_before.c @@ -166,25 +166,953 @@ const u8 gPokenavOutlineTilemap[] = INCBIN_U8("graphics/pokenav/outline_map.bin. #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[] = +{ + 0x408, + 0x408, + 0x507, + 0x507, + 0x606, + 0x606, + 0x805, + 0x805, + 0xA04, + 0xA04, + 0xC03, + 0xC03, + 0xE02, + 0xE02, + 0x1000, + 0x1000, +}; + +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[] = +{ + 0x43, + 0x32, + 0x33, + 0x34, + 0x35, + 0x36, + 0x44, + 0x45, + 0x46, + 0x47, + 0x48, + 0x49, + 0x4A, + 0x4B, + 0x4C, + 0x4D, + 0x4E, +}; void sub_80EBA5C() { |