From b1ffe6efd7b2f5ca04d8cf3cdd20f3134ba207b9 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sun, 31 May 2020 12:41:27 +0200 Subject: Battle transition arrays easier to edit --- src/battle_transition.c | 130 ++++++++++++++++++++++++------------------------ 1 file changed, 65 insertions(+), 65 deletions(-) diff --git a/src/battle_transition.c b/src/battle_transition.c index 23182e976..206ea09e5 100644 --- a/src/battle_transition.c +++ b/src/battle_transition.c @@ -319,48 +319,48 @@ static const TaskFunc sPhase1_Tasks[B_TRANSITION_COUNT] = static const TaskFunc sPhase2_Tasks[B_TRANSITION_COUNT] = { - Phase2Task_Blur, // 0 - Phase2Task_Swirl, // 1 - Phase2Task_Shuffle, // 2 - Phase2Task_BigPokeball, // 3 - Phase2Task_PokeballsTrail, // 4 - Phase2Task_Clockwise_BlackFade, // 5 - Phase2Task_Ripple, // 6 - Phase2Task_Wave, // 7 - Phase2Task_Slice, // 8 - Phase2Task_WhiteFade, // 9 - Phase2Task_GridSquares, // 10 - Phase2Task_Shards, // 11 - Phase2Task_Sidney, // 12 - Phase2Task_Phoebe, // 13 - Phase2Task_Glacia, // 14 - Phase2Task_Drake, // 15 - Phase2Task_Champion, // 16 - Phase2Task_Aqua, // 17 - Phase2Task_Magma, // 18 - Phase2Task_Regice, // 19 - Phase2Task_Registeel, // 20 - Phase2Task_Regirock, // 21 - Phase2Task_Kyogre, // 22 - Phase2Task_Groudon, // 23 - Phase2Task_Rayquaza, // 24 - Phase2Task_ShredSplit, // 25 - Phase2Task_Blackhole1, // 26 - Phase2Task_Blackhole2, // 27 - Phase2Task_RectangularSpiral, // 28 - Phase2Task_29, // 29 - Phase2Task_30, // 30 - Phase2Task_31, // 31 - Phase2Task_32, // 32 - Phase2Task_33, // 33 - Phase2Task_34, // 34 - Phase2Task_35, // 35 - Phase2Task_36, // 36 - Phase2Task_37, // 37 - Phase2Task_38, // 38 - Phase2Task_39, // 39 - Phase2Task_40, // 40 - Phase2Task_41, // 41 + [B_TRANSITION_BLUR] = Phase2Task_Blur, + [B_TRANSITION_SWIRL] = Phase2Task_Swirl, + [B_TRANSITION_SHUFFLE] = Phase2Task_Shuffle, + [B_TRANSITION_BIG_POKEBALL] = Phase2Task_BigPokeball, + [B_TRANSITION_POKEBALLS_TRAIL] = Phase2Task_PokeballsTrail, + [B_TRANSITION_CLOCKWISE_BLACKFADE] = Phase2Task_Clockwise_BlackFade, + [B_TRANSITION_RIPPLE] = Phase2Task_Ripple, + [B_TRANSITION_WAVE] = Phase2Task_Wave, + [B_TRANSITION_SLICE] = Phase2Task_Slice, + [B_TRANSITION_WHITEFADE] = Phase2Task_WhiteFade, + [B_TRANSITION_GRID_SQUARES] = Phase2Task_GridSquares, + [B_TRANSITION_SHARDS] = Phase2Task_Shards, + [B_TRANSITION_SIDNEY] = Phase2Task_Sidney, + [B_TRANSITION_PHOEBE] = Phase2Task_Phoebe, + [B_TRANSITION_GLACIA] = Phase2Task_Glacia, + [B_TRANSITION_DRAKE] = Phase2Task_Drake, + [B_TRANSITION_CHAMPION] = Phase2Task_Champion, + [B_TRANSITION_AQUA] = Phase2Task_Aqua, + [B_TRANSITION_MAGMA] = Phase2Task_Magma, + [B_TRANSITION_REGICE] = Phase2Task_Regice, + [B_TRANSITION_REGISTEEL] = Phase2Task_Registeel, + [B_TRANSITION_REGIROCK] = Phase2Task_Regirock, + [B_TRANSITION_KYOGRE] = Phase2Task_Kyogre, + [B_TRANSITION_GROUDON] = Phase2Task_Groudon, + [B_TRANSITION_RAYQUAZA] = Phase2Task_Rayquaza, + [B_TRANSITION_SHRED_SPLIT] = Phase2Task_ShredSplit, + [B_TRANSITION_BLACKHOLE1] = Phase2Task_Blackhole1, + [B_TRANSITION_BLACKHOLE2] = Phase2Task_Blackhole2, + [B_TRANSITION_RECTANGULAR_SPIRAL] = Phase2Task_RectangularSpiral, + [B_TRANSITION_29] = Phase2Task_29, + [B_TRANSITION_30] = Phase2Task_30, + [B_TRANSITION_31] = Phase2Task_31, + [B_TRANSITION_32] = Phase2Task_32, + [B_TRANSITION_33] = Phase2Task_33, + [B_TRANSITION_34] = Phase2Task_34, + [B_TRANSITION_35] = Phase2Task_35, + [B_TRANSITION_36] = Phase2Task_36, + [B_TRANSITION_37] = Phase2Task_37, + [B_TRANSITION_38] = Phase2Task_38, + [B_TRANSITION_39] = Phase2Task_39, + [B_TRANSITION_40] = Phase2Task_40, + [B_TRANSITION_41] = Phase2Task_41, }; static const TransitionStateFunc sMainTransitionPhases[] = @@ -515,27 +515,27 @@ static const TransitionStateFunc sPhase2_Mugshot_Funcs[] = static const u8 sMugshotsTrainerPicIDsTable[MUGSHOTS_COUNT] = { - TRAINER_PIC_ELITE_FOUR_SIDNEY, - TRAINER_PIC_ELITE_FOUR_PHOEBE, - TRAINER_PIC_ELITE_FOUR_GLACIA, - TRAINER_PIC_ELITE_FOUR_DRAKE, - TRAINER_PIC_CHAMPION_WALLACE + [MUGSHOT_SIDNEY] = TRAINER_PIC_ELITE_FOUR_SIDNEY, + [MUGSHOT_PHOEBE] = TRAINER_PIC_ELITE_FOUR_PHOEBE, + [MUGSHOT_GLACIA] = TRAINER_PIC_ELITE_FOUR_GLACIA, + [MUGSHOT_DRAKE] = TRAINER_PIC_ELITE_FOUR_DRAKE, + [MUGSHOT_CHAMPION] = TRAINER_PIC_CHAMPION_WALLACE, }; static const s16 sMugshotsOpponentRotationScales[MUGSHOTS_COUNT][2] = { - {0x200, 0x200}, - {0x200, 0x200}, - {0x1B0, 0x1B0}, - {0x1A0, 0x1A0}, - {0x188, 0x188}, + [MUGSHOT_SIDNEY] = {0x200, 0x200}, + [MUGSHOT_PHOEBE] = {0x200, 0x200}, + [MUGSHOT_GLACIA] = {0x1B0, 0x1B0}, + [MUGSHOT_DRAKE] = {0x1A0, 0x1A0}, + [MUGSHOT_CHAMPION] = {0x188, 0x188}, }; static const s16 sMugshotsOpponentCoords[MUGSHOTS_COUNT][2] = { - {0, 0}, - {0, 0}, - {-4, 4}, - {0, 5}, - {-8, 7}, + [MUGSHOT_SIDNEY] = {0, 0}, + [MUGSHOT_PHOEBE] = {0, 0}, + [MUGSHOT_GLACIA] = {-4, 4}, + [MUGSHOT_DRAKE] = {0, 5}, + [MUGSHOT_CHAMPION] = {-8, 7}, }; static const TransitionSpriteCallback sUnknown_085C8C24[] = @@ -834,17 +834,17 @@ static const u16 sMugshotPal_May[] = INCBIN_U16("graphics/battle_transitions/may static const u16 *const sOpponentMugshotsPals[MUGSHOTS_COUNT] = { - sMugshotPal_Sidney, - sMugshotPal_Phoebe, - sMugshotPal_Glacia, - sMugshotPal_Drake, - sMugshotPal_Champion + [MUGSHOT_SIDNEY] = sMugshotPal_Sidney, + [MUGSHOT_PHOEBE] = sMugshotPal_Phoebe, + [MUGSHOT_GLACIA] = sMugshotPal_Glacia, + [MUGSHOT_DRAKE] = sMugshotPal_Drake, + [MUGSHOT_CHAMPION] = sMugshotPal_Champion }; -static const u16 *const sPlayerMugshotsPals[2] = +static const u16 *const sPlayerMugshotsPals[GENDER_COUNT] = { - sMugshotPal_Brendan, - sMugshotPal_May + [MALE] = sMugshotPal_Brendan, + [FEMALE] = sMugshotPal_May }; static const u16 sUnusedTrainerPalette[] = INCBIN_U16("graphics/battle_transitions/unused_trainer.gbapal"); -- cgit v1.2.3 From ab3eb6065b5d9942520bbd844bd51991ae225f7f Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Mon, 1 Jun 2020 16:17:25 +0200 Subject: More transitions documentation --- graphics/battle_transitions/85BBC14.png | Bin 231 -> 0 bytes graphics/battle_transitions/85BC2B4.pal | 19 - graphics/battle_transitions/85BC2D4.pal | 19 - graphics/battle_transitions/85BC2F4.pal | 19 - graphics/battle_transitions/85BC314.bin | Bin 2048 -> 0 bytes graphics/battle_transitions/85BCB14.bin | Bin 2048 -> 0 bytes graphics/battle_transitions/85BD314.bin | Bin 2048 -> 0 bytes graphics/battle_transitions/regice.bin | Bin 0 -> 2048 bytes graphics/battle_transitions/regice.pal | 19 + graphics/battle_transitions/regirock.bin | Bin 0 -> 2048 bytes graphics/battle_transitions/regirock.pal | 19 + graphics/battle_transitions/regis.png | Bin 0 -> 231 bytes graphics/battle_transitions/registeel.bin | Bin 0 -> 2048 bytes graphics/battle_transitions/registeel.pal | 19 + include/battle_transition.h | 2 +- src/battle_transition.c | 587 +++++++++++++++--------------- src/unk_transition.c | 8 +- 17 files changed, 359 insertions(+), 352 deletions(-) delete mode 100644 graphics/battle_transitions/85BBC14.png delete mode 100644 graphics/battle_transitions/85BC2B4.pal delete mode 100644 graphics/battle_transitions/85BC2D4.pal delete mode 100644 graphics/battle_transitions/85BC2F4.pal delete mode 100644 graphics/battle_transitions/85BC314.bin delete mode 100644 graphics/battle_transitions/85BCB14.bin delete mode 100644 graphics/battle_transitions/85BD314.bin create mode 100644 graphics/battle_transitions/regice.bin create mode 100644 graphics/battle_transitions/regice.pal create mode 100644 graphics/battle_transitions/regirock.bin create mode 100644 graphics/battle_transitions/regirock.pal create mode 100644 graphics/battle_transitions/regis.png create mode 100644 graphics/battle_transitions/registeel.bin create mode 100644 graphics/battle_transitions/registeel.pal diff --git a/graphics/battle_transitions/85BBC14.png b/graphics/battle_transitions/85BBC14.png deleted file mode 100644 index a08310737..000000000 Binary files a/graphics/battle_transitions/85BBC14.png and /dev/null differ diff --git a/graphics/battle_transitions/85BC2B4.pal b/graphics/battle_transitions/85BC2B4.pal deleted file mode 100644 index f508de938..000000000 --- a/graphics/battle_transitions/85BC2B4.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -222 213 0 -57 57 0 -123 123 0 -189 189 0 -255 255 0 -255 255 82 -255 255 172 -255 255 255 diff --git a/graphics/battle_transitions/85BC2D4.pal b/graphics/battle_transitions/85BC2D4.pal deleted file mode 100644 index 6a46ddacf..000000000 --- a/graphics/battle_transitions/85BC2D4.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -255 0 0 -0 0 0 -139 0 0 -197 0 0 -255 0 0 -255 65 65 -255 139 139 -255 255 255 diff --git a/graphics/battle_transitions/85BC2F4.pal b/graphics/battle_transitions/85BC2F4.pal deleted file mode 100644 index 2a65c3a9e..000000000 --- a/graphics/battle_transitions/85BC2F4.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -213 148 0 -0 0 0 -74 49 0 -156 98 0 -230 156 0 -238 189 82 -246 222 172 -255 255 255 diff --git a/graphics/battle_transitions/85BC314.bin b/graphics/battle_transitions/85BC314.bin deleted file mode 100644 index 37149e37b..000000000 Binary files a/graphics/battle_transitions/85BC314.bin and /dev/null differ diff --git a/graphics/battle_transitions/85BCB14.bin b/graphics/battle_transitions/85BCB14.bin deleted file mode 100644 index 29fde971c..000000000 Binary files a/graphics/battle_transitions/85BCB14.bin and /dev/null differ diff --git a/graphics/battle_transitions/85BD314.bin b/graphics/battle_transitions/85BD314.bin deleted file mode 100644 index cd1a672b5..000000000 Binary files a/graphics/battle_transitions/85BD314.bin and /dev/null differ diff --git a/graphics/battle_transitions/regice.bin b/graphics/battle_transitions/regice.bin new file mode 100644 index 000000000..37149e37b Binary files /dev/null and b/graphics/battle_transitions/regice.bin differ diff --git a/graphics/battle_transitions/regice.pal b/graphics/battle_transitions/regice.pal new file mode 100644 index 000000000..f508de938 --- /dev/null +++ b/graphics/battle_transitions/regice.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +222 213 0 +57 57 0 +123 123 0 +189 189 0 +255 255 0 +255 255 82 +255 255 172 +255 255 255 diff --git a/graphics/battle_transitions/regirock.bin b/graphics/battle_transitions/regirock.bin new file mode 100644 index 000000000..cd1a672b5 Binary files /dev/null and b/graphics/battle_transitions/regirock.bin differ diff --git a/graphics/battle_transitions/regirock.pal b/graphics/battle_transitions/regirock.pal new file mode 100644 index 000000000..2a65c3a9e --- /dev/null +++ b/graphics/battle_transitions/regirock.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +213 148 0 +0 0 0 +74 49 0 +156 98 0 +230 156 0 +238 189 82 +246 222 172 +255 255 255 diff --git a/graphics/battle_transitions/regis.png b/graphics/battle_transitions/regis.png new file mode 100644 index 000000000..a08310737 Binary files /dev/null and b/graphics/battle_transitions/regis.png differ diff --git a/graphics/battle_transitions/registeel.bin b/graphics/battle_transitions/registeel.bin new file mode 100644 index 000000000..29fde971c Binary files /dev/null and b/graphics/battle_transitions/registeel.bin differ diff --git a/graphics/battle_transitions/registeel.pal b/graphics/battle_transitions/registeel.pal new file mode 100644 index 000000000..6a46ddacf --- /dev/null +++ b/graphics/battle_transitions/registeel.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +255 0 0 +0 0 0 +139 0 0 +197 0 0 +255 0 0 +255 65 65 +255 139 139 +255 255 255 diff --git a/include/battle_transition.h b/include/battle_transition.h index db06a5638..0f583b101 100644 --- a/include/battle_transition.h +++ b/include/battle_transition.h @@ -7,7 +7,7 @@ void BattleTransition_Start(u8 transitionId); bool8 IsBattleTransitionDone(void); bool8 FldEff_Pokeball(void); void TransitionPhase1_Task_RunFuncs(u8 taskId); -void sub_8149F58(u16 **a0, u16 **a1); +void GetBg0TilesDst(u16 **tilemap, u16 **tileset); extern const struct SpritePalette gFieldEffectObjectPaletteInfo10; diff --git a/src/battle_transition.c b/src/battle_transition.c index 206ea09e5..ea9ac1e89 100644 --- a/src/battle_transition.c +++ b/src/battle_transition.c @@ -237,29 +237,29 @@ static bool8 Transition_Phase1(struct Task *task); static bool8 Transition_WaitForPhase1(struct Task *task); static bool8 Transition_Phase2(struct Task *task); static bool8 Transition_WaitForPhase2(struct Task *task); -static void sub_8149F08(void); -static void sub_8149F84(void); +static void InitTransitionStructVars(void); +static void FadeScreenBlack(void); static void CreatePhase1Task(s16 a0, s16 a1, s16 a2, s16 a3, s16 a4); static void sub_814A014(u16 *a0, s16 a1, s16 a2, s16 a3); static void sub_8149F98(s16 *array, s16 sinAdd, s16 index, s16 indexIncrementer, s16 amplitude, s16 arrSize); -static void sub_8149F40(u16 **a0); +static void GetBg0TilemapDst(u16 **tileset); static void sub_814A1AC(s16 *a0, s16 a1, s16 a2, s16 a3, s16 a4, s16 a5, s16 a6); static bool8 sub_814A228(s16 *a0, bool8 a1, bool8 a2); -static void sub_8148484(s16 spriteId, s16 value); -static void sub_814849C(s16 spriteId); -static s16 sub_81484B8(s16 spriteId); +static void SetTrainerPicSlideTable(s16 spriteId, s16 arrId); +static void IncrementTrainerPicState(s16 spriteId); +static s16 IsTrainerPicSlideDone(s16 spriteId); static bool8 Phase1_TransitionAll_Func1(struct Task *task); static bool8 Phase1_TransitionAll_Func2(struct Task *task); static bool8 IsPhase1Done(void); static bool16 sub_8149048(const s16 * const *arg0, struct StructRectangularSpiral *arg1); static void sub_814713C(struct Sprite *sprite); -static void sub_8148380(struct Sprite *sprite); +static void SpriteCb_TrainerPic(struct Sprite *sprite); static void sub_8149864(struct Sprite *sprite); -static bool8 sub_81483A8(struct Sprite *sprite); -static bool8 sub_81483AC(struct Sprite *sprite); -static bool8 sub_81483F8(struct Sprite *sprite); -static bool8 sub_814842C(struct Sprite *sprite); -static bool8 sub_8148458(struct Sprite *sprite); +static bool8 TrainerPicCb_Nothing(struct Sprite *sprite); +static bool8 TrainerPicCb_SetSlideOffsets(struct Sprite *sprite); +static bool8 TrainerPicCb_Slide1(struct Sprite *sprite); +static bool8 TrainerPicCb_Slide2(struct Sprite *sprite); +static bool8 TrainerPicCb_Slide3(struct Sprite *sprite); // iwram bss vars static s16 sUnusedRectangularSpiralVar; @@ -273,35 +273,35 @@ EWRAM_DATA static struct TransitionData *sTransitionStructPtr = NULL; // const rom data static const u32 sBigPokeball_Tileset[] = INCBIN_U32("graphics/battle_transitions/big_pokeball.4bpp"); static const u32 sPokeballTrail_Tileset[] = INCBIN_U32("graphics/battle_transitions/pokeball_trail.4bpp"); -static const u8 sSpriteImage_85B98F0[] = INCBIN_U8("graphics/battle_transitions/pokeball.4bpp"); -static const u32 sUnknown_085B9AF0[] = INCBIN_U32("graphics/battle_transitions/elite_four_bg.4bpp"); -static const u8 sSpriteImage_85B9CD0[] = INCBIN_U8("graphics/battle_transitions/unused_brendan.4bpp"); -static const u8 sSpriteImage_85BA4D0[] = INCBIN_U8("graphics/battle_transitions/unused_lass.4bpp"); +static const u8 sPokeball_Gfx[] = INCBIN_U8("graphics/battle_transitions/pokeball.4bpp"); +static const u32 sEliteFour_Tileset[] = INCBIN_U32("graphics/battle_transitions/elite_four_bg.4bpp"); +static const u8 sUnusedBrendan_Gfx[] = INCBIN_U8("graphics/battle_transitions/unused_brendan.4bpp"); +static const u8 sUnusedLass_Gfx[] = INCBIN_U8("graphics/battle_transitions/unused_lass.4bpp"); static const u32 sShrinkingBoxTileset[] = INCBIN_U32("graphics/battle_transitions/shrinking_box.4bpp"); static const u32 sEvilTeam_Palette[] = INCBIN_U32("graphics/battle_transitions/evil_team.gbapal"); static const u32 sTeamAqua_Tileset[] = INCBIN_U32("graphics/battle_transitions/team_aqua.4bpp.lz"); static const u32 sTeamAqua_Tilemap[] = INCBIN_U32("graphics/battle_transitions/team_aqua.bin.lz"); static const u32 sTeamMagma_Tileset[] = INCBIN_U32("graphics/battle_transitions/team_magma.4bpp.lz"); static const u32 sTeamMagma_Tilemap[] = INCBIN_U32("graphics/battle_transitions/team_magma.bin.lz"); -static const u32 gUnknown_085BBC14[] = INCBIN_U32("graphics/battle_transitions/85BBC14.4bpp"); -static const u32 gUnknown_085BC2B4[] = INCBIN_U32("graphics/battle_transitions/85BC2B4.gbapal"); -static const u32 gUnknown_085BC2D4[] = INCBIN_U32("graphics/battle_transitions/85BC2D4.gbapal"); -static const u32 gUnknown_085BC2F4[] = INCBIN_U32("graphics/battle_transitions/85BC2F4.gbapal"); -static const u32 gUnknown_085BC314[] = INCBIN_U32("graphics/battle_transitions/85BC314.bin"); -static const u32 gUnknown_085BCB14[] = INCBIN_U32("graphics/battle_transitions/85BCB14.bin"); -static const u32 gUnknown_085BD314[] = INCBIN_U32("graphics/battle_transitions/85BD314.bin"); +static const u32 sRegis_Tileset[] = INCBIN_U32("graphics/battle_transitions/regis.4bpp"); +static const u32 sRegice_Palette[] = INCBIN_U32("graphics/battle_transitions/regice.gbapal"); +static const u32 sRegisteel_Palette[] = INCBIN_U32("graphics/battle_transitions/registeel.gbapal"); +static const u32 sRegirock_Palette[] = INCBIN_U32("graphics/battle_transitions/regirock.gbapal"); +static const u32 sRegice_Tilemap[] = INCBIN_U32("graphics/battle_transitions/regice.bin"); +static const u32 sRegisteel_Tilemap[] = INCBIN_U32("graphics/battle_transitions/registeel.bin"); +static const u32 sRegirock_Tilemap[] = INCBIN_U32("graphics/battle_transitions/regirock.bin"); static const u16 gUnknown_085BDB14[] = INCBIN_U16("graphics/battle_transitions/85BDB14.gbapal"); -static const u32 gUnknown_085BDB34[] = INCBIN_U32("graphics/battle_transitions/kyogre.4bpp.lz"); -static const u32 gUnknown_085BE1E8[] = INCBIN_U32("graphics/battle_transitions/kyogre.bin.lz"); -static const u32 gUnknown_085BE51C[] = INCBIN_U32("graphics/battle_transitions/groudon.4bpp.lz"); -static const u32 gUnknown_085BEA88[] = INCBIN_U32("graphics/battle_transitions/groudon.bin.lz"); -static const u16 gUnknown_085BEDA0[] = INCBIN_U16("graphics/battle_transitions/kyogre_pt1.gbapal"); -static const u16 gUnknown_085BEEE0[] = INCBIN_U16("graphics/battle_transitions/kyogre_pt2.gbapal"); -static const u16 gUnknown_085BF0A0[] = INCBIN_U16("graphics/battle_transitions/groudon_pt1.gbapal"); -static const u16 gUnknown_085BF2A0[] = INCBIN_U16("graphics/battle_transitions/groudon_pt2.gbapal"); -static const u16 gUnknown_085BF4A0[] = INCBIN_U16("graphics/battle_transitions/rayquaza.gbapal"); -static const u32 gUnknown_085BF6A0[] = INCBIN_U32("graphics/battle_transitions/rayquaza.4bpp"); -static const u32 gUnknown_085C6BE0[] = INCBIN_U32("graphics/battle_transitions/rayquaza.bin"); +static const u32 sKyogre_Tileset[] = INCBIN_U32("graphics/battle_transitions/kyogre.4bpp.lz"); +static const u32 sKyogre_Tilemap[] = INCBIN_U32("graphics/battle_transitions/kyogre.bin.lz"); +static const u32 sGroudon_Tileset[] = INCBIN_U32("graphics/battle_transitions/groudon.4bpp.lz"); +static const u32 sGroudon_Tilemap[] = INCBIN_U32("graphics/battle_transitions/groudon.bin.lz"); +static const u16 sKyogre1_Palette[] = INCBIN_U16("graphics/battle_transitions/kyogre_pt1.gbapal"); +static const u16 sKyogre2_Palette[] = INCBIN_U16("graphics/battle_transitions/kyogre_pt2.gbapal"); +static const u16 sGroudon1_Palette[] = INCBIN_U16("graphics/battle_transitions/groudon_pt1.gbapal"); +static const u16 sGroudon2_Palette[] = INCBIN_U16("graphics/battle_transitions/groudon_pt2.gbapal"); +static const u16 sRayquaza_Palette[] = INCBIN_U16("graphics/battle_transitions/rayquaza.gbapal"); +static const u32 sRayquaza_Tileset[] = INCBIN_U32("graphics/battle_transitions/rayquaza.4bpp"); +static const u32 sRayquaza_Tilemap[] = INCBIN_U32("graphics/battle_transitions/rayquaza.bin"); static const u32 gUnknown_085C7BE0[] = INCBIN_U32("graphics/battle_transitions/frontier_brain.gbapal"); static const u32 gUnknown_085C7C00[] = INCBIN_U32("graphics/battle_transitions/frontier_brain.4bpp.lz"); static const u32 gUnknown_085C828C[] = INCBIN_U32("graphics/battle_transitions/frontier_brain.bin.lz"); @@ -538,19 +538,19 @@ static const s16 sMugshotsOpponentCoords[MUGSHOTS_COUNT][2] = [MUGSHOT_CHAMPION] = {-8, 7}, }; -static const TransitionSpriteCallback sUnknown_085C8C24[] = +static const TransitionSpriteCallback sTrainerPicSpriteCbs[] = { - sub_81483A8, - sub_81483AC, - sub_81483F8, - sub_814842C, - sub_81483A8, - sub_8148458, - sub_81483A8 + TrainerPicCb_Nothing, + TrainerPicCb_SetSlideOffsets, + TrainerPicCb_Slide1, + TrainerPicCb_Slide2, + TrainerPicCb_Nothing, + TrainerPicCb_Slide3, + TrainerPicCb_Nothing }; -static const s16 sUnknown_085C8C40[2] = {12, -12}; -static const s16 sUnknown_085C8C44[2] = {-1, 1}; +static const s16 sTrainerPicSlideOffsets1[2] = {12, -12}; +static const s16 sTrainerPicSlideOffsets2[2] = {-1, 1}; static const TransitionStateFunc sPhase2_Slice_Funcs[] = { @@ -712,52 +712,52 @@ static const TransitionStateFunc sPhase1_TransitionAll_Funcs[] = Phase1_TransitionAll_Func2 }; -static const struct SpriteFrameImage sSpriteImageTable_85C8E2C[] = +static const struct SpriteFrameImage sSpriteImage_Pokeball[] = { - sSpriteImage_85B98F0, 0x200 + sPokeball_Gfx, sizeof(sPokeball_Gfx) }; -static const union AnimCmd sSpriteAnim_85C8E34[] = +static const union AnimCmd sSpriteAnim_Pokeball[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END }; -static const union AnimCmd *const sSpriteAnimTable_85C8E3C[] = +static const union AnimCmd *const sSpriteAnimTable_Pokeball[] = { - sSpriteAnim_85C8E34 + sSpriteAnim_Pokeball }; -static const union AffineAnimCmd sSpriteAffineAnim_85C8E40[] = +static const union AffineAnimCmd sSpriteAffineAnim_Pokeball1[] = { AFFINEANIMCMD_FRAME(0, 0, -4, 1), AFFINEANIMCMD_JUMP(0) }; -static const union AffineAnimCmd sSpriteAffineAnim_85C8E50[] = +static const union AffineAnimCmd sSpriteAffineAnim_Pokeball2[] = { AFFINEANIMCMD_FRAME(0, 0, 4, 1), AFFINEANIMCMD_JUMP(0) }; -static const union AffineAnimCmd *const sSpriteAffineAnimTable_85C8E60[] = +static const union AffineAnimCmd *const sSpriteAffineAnimTable_Pokeball[] = { - sSpriteAffineAnim_85C8E40, - sSpriteAffineAnim_85C8E50 + sSpriteAffineAnim_Pokeball1, + sSpriteAffineAnim_Pokeball2 }; -static const struct SpriteTemplate gUnknown_085C8E68 = +static const struct SpriteTemplate sSpriteTemplate_Pokeball = { .tileTag = 0xFFFF, .paletteTag = 4105, .oam = &gObjectEventBaseOam_32x32, - .anims = sSpriteAnimTable_85C8E3C, - .images = sSpriteImageTable_85C8E2C, - .affineAnims = sSpriteAffineAnimTable_85C8E60, + .anims = sSpriteAnimTable_Pokeball, + .images = sSpriteImage_Pokeball, + .affineAnims = sSpriteAffineAnimTable_Pokeball, .callback = sub_814713C }; -static const struct OamData gOamData_85C8E80 = +static const struct OamData sOam_UnusedBrendanLass = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -774,47 +774,47 @@ static const struct OamData gOamData_85C8E80 = .affineParam = 0, }; -static const struct SpriteFrameImage sSpriteImageTable_85C8E88[] = +static const struct SpriteFrameImage sImageTable_UnusedBrendan[] = { - sSpriteImage_85B9CD0, 0x800 + sUnusedBrendan_Gfx, sizeof(sUnusedBrendan_Gfx) }; -static const struct SpriteFrameImage sSpriteImageTable_85C8E90[] = +static const struct SpriteFrameImage sImageTable_UnusedLass[] = { - sSpriteImage_85BA4D0, 0x800 + sUnusedLass_Gfx, sizeof(sUnusedLass_Gfx) }; -static const union AnimCmd sSpriteAnim_85C8E98[] = +static const union AnimCmd sSpriteAnim_UnusedBrendanLass[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END }; -static const union AnimCmd *const sSpriteAnimTable_85C8EA0[] = +static const union AnimCmd *const sSpriteAnimTable_UnusedBrendanLass[] = { - sSpriteAnim_85C8E98 + sSpriteAnim_UnusedBrendanLass }; -static const struct SpriteTemplate sSpriteTemplate_85C8EA4 = +static const struct SpriteTemplate sSpriteTemplate_UnusedBrendan = { .tileTag = 0xFFFF, .paletteTag = 4106, - .oam = &gOamData_85C8E80, - .anims = sSpriteAnimTable_85C8EA0, - .images = sSpriteImageTable_85C8E88, + .oam = &sOam_UnusedBrendanLass, + .anims = sSpriteAnimTable_UnusedBrendanLass, + .images = sImageTable_UnusedBrendan, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8148380 + .callback = SpriteCb_TrainerPic }; -static const struct SpriteTemplate sSpriteTemplate_85C8EBC = +static const struct SpriteTemplate sSpriteTemplate_UnusedLass = { .tileTag = 0xFFFF, .paletteTag = 4106, - .oam = &gOamData_85C8E80, - .anims = sSpriteAnimTable_85C8EA0, - .images = sSpriteImageTable_85C8E90, + .oam = &sOam_UnusedBrendanLass, + .anims = sSpriteAnimTable_UnusedBrendanLass, + .images = sImageTable_UnusedLass, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8148380 + .callback = SpriteCb_TrainerPic }; static const u16 gFieldEffectObjectPalette10[] = INCBIN_U16("graphics/field_effects/palettes/10.gbapal"); @@ -1102,7 +1102,7 @@ static void Phase2Task_Swirl(u8 taskId) static bool8 Phase2_Swirl_Func1(struct Task *task) { - sub_8149F08(); + InitTransitionStructVars(); ScanlineEffect_Clear(); BeginNormalPaletteFade(0xFFFFFFFF, 4, 0, 0x10, RGB_BLACK); sub_8149F98(gScanlineEffectRegBuffers[1], sTransitionStructPtr->field_14, 0, 2, 0, 160); @@ -1156,7 +1156,7 @@ static void Phase2Task_Shuffle(u8 taskId) static bool8 Phase2_Shuffle_Func1(struct Task *task) { - sub_8149F08(); + InitTransitionStructVars(); ScanlineEffect_Clear(); BeginNormalPaletteFade(0xFFFFFFFF, 4, 0, 0x10, RGB_BLACK); @@ -1249,7 +1249,7 @@ static void sub_814669C(struct Task *task) { s32 i; - sub_8149F08(); + InitTransitionStructVars(); ScanlineEffect_Clear(); task->tData1 = 16; @@ -1273,13 +1273,13 @@ static void sub_814669C(struct Task *task) static bool8 Phase2_Aqua_Func1(struct Task *task) { - u16 *dst1, *dst2; + u16 *tilemap, *tileset; task->tFrames = 60; sub_814669C(task); - sub_8149F58(&dst1, &dst2); - CpuFill16(0, dst1, 0x800); - LZ77UnCompVram(sTeamAqua_Tileset, dst2); + GetBg0TilesDst(&tilemap, &tileset); + CpuFill16(0, tilemap, 0x800); + LZ77UnCompVram(sTeamAqua_Tileset, tileset); LoadPalette(sEvilTeam_Palette, 0xF0, 0x20); task->tState++; @@ -1288,13 +1288,13 @@ static bool8 Phase2_Aqua_Func1(struct Task *task) static bool8 Phase2_Magma_Func1(struct Task *task) { - u16 *dst1, *dst2; + u16 *tilemap, *tileset; task->tFrames = 60; sub_814669C(task); - sub_8149F58(&dst1, &dst2); - CpuFill16(0, dst1, 0x800); - LZ77UnCompVram(sTeamMagma_Tileset, dst2); + GetBg0TilesDst(&tilemap, &tileset); + CpuFill16(0, tilemap, 0x800); + LZ77UnCompVram(sTeamMagma_Tileset, tileset); LoadPalette(sEvilTeam_Palette, 0xF0, 0x20); task->tState++; @@ -1303,13 +1303,13 @@ static bool8 Phase2_Magma_Func1(struct Task *task) static bool8 Phase2_Regi_Func1(struct Task *task) { - u16 *dst1, *dst2; + u16 *tilemap, *tileset; task->tFrames = 60; sub_814669C(task); - sub_8149F58(&dst1, &dst2); - CpuFill16(0, dst1, 0x800); - CpuCopy16(gUnknown_085BBC14, dst2, 0x2000); + GetBg0TilesDst(&tilemap, &tileset); + CpuFill16(0, tilemap, 0x800); + CpuCopy16(sRegis_Tileset, tileset, 0x2000); task->tState++; return FALSE; @@ -1317,12 +1317,12 @@ static bool8 Phase2_Regi_Func1(struct Task *task) static bool8 Phase2_BigPokeball_Func1(struct Task *task) { - u16 *dst1, *dst2; + u16 *tilemap, *tileset; sub_814669C(task); - sub_8149F58(&dst1, &dst2); - CpuFill16(0, dst1, 0x800); - CpuCopy16(sBigPokeball_Tileset, dst2, 0x580); + GetBg0TilesDst(&tilemap, &tileset); + CpuFill16(0, tilemap, 0x800); + CpuCopy16(sBigPokeball_Tileset, tileset, 0x580); LoadPalette(gFieldEffectObjectPalette10, 0xF0, 0x20); task->tState++; @@ -1332,16 +1332,16 @@ static bool8 Phase2_BigPokeball_Func1(struct Task *task) static bool8 Phase2_BigPokeball_Func2(struct Task *task) { s16 i, j; - u16 *dst1, *dst2; + u16 *tilemap, *tileset; const u16 *BigPokeballMap; - sub_8149F58(&dst1, &dst2); + GetBg0TilesDst(&tilemap, &tileset); BigPokeballMap = sBigPokeball_Tilemap; for (i = 0; i < 20; i++) { for (j = 0; j < 30; j++, BigPokeballMap++) { - dst1[i * 32 + j] = *BigPokeballMap | 0xF000; + tilemap[i * 32 + j] = *BigPokeballMap | 0xF000; } } sub_8149F98(gScanlineEffectRegBuffers[0], 0, task->tData4, 132, task->tData5, 160); @@ -1352,10 +1352,10 @@ static bool8 Phase2_BigPokeball_Func2(struct Task *task) static bool8 Phase2_Aqua_Func2(struct Task *task) { - u16 *dst1, *dst2; + u16 *tilemap, *tileset; - sub_8149F58(&dst1, &dst2); - LZ77UnCompVram(sTeamAqua_Tilemap, dst1); + GetBg0TilesDst(&tilemap, &tileset); + LZ77UnCompVram(sTeamAqua_Tilemap, tilemap); sub_8149F98(gScanlineEffectRegBuffers[0], 0, task->tData4, 132, task->tData5, 160); task->tState++; @@ -1364,10 +1364,10 @@ static bool8 Phase2_Aqua_Func2(struct Task *task) static bool8 Phase2_Magma_Func2(struct Task *task) { - u16 *dst1, *dst2; + u16 *tilemap, *tileset; - sub_8149F58(&dst1, &dst2); - LZ77UnCompVram(sTeamMagma_Tilemap, dst1); + GetBg0TilesDst(&tilemap, &tileset); + LZ77UnCompVram(sTeamMagma_Tilemap, tilemap); sub_8149F98(gScanlineEffectRegBuffers[0], 0, task->tData4, 132, task->tData5, 160); task->tState++; @@ -1376,11 +1376,11 @@ static bool8 Phase2_Magma_Func2(struct Task *task) static bool8 Phase2_Regice_Func2(struct Task *task) { - u16 *dst1, *dst2; + u16 *tilemap, *tileset; - sub_8149F58(&dst1, &dst2); - LoadPalette(gUnknown_085BC2B4, 0xF0, 0x20); - CpuCopy16(gUnknown_085BC314, dst1, 0x500); + GetBg0TilesDst(&tilemap, &tileset); + LoadPalette(sRegice_Palette, 0xF0, 0x20); + CpuCopy16(sRegice_Tilemap, tilemap, 0x500); sub_8149F98(gScanlineEffectRegBuffers[0], 0, task->tData4, 132, task->tData5, 160); task->tState++; @@ -1389,11 +1389,11 @@ static bool8 Phase2_Regice_Func2(struct Task *task) static bool8 Phase2_Registeel_Func2(struct Task *task) { - u16 *dst1, *dst2; + u16 *tilemap, *tileset; - sub_8149F58(&dst1, &dst2); - LoadPalette(gUnknown_085BC2D4, 0xF0, 0x20); - CpuCopy16(gUnknown_085BCB14, dst1, 0x500); + GetBg0TilesDst(&tilemap, &tileset); + LoadPalette(sRegisteel_Palette, 0xF0, 0x20); + CpuCopy16(sRegisteel_Tilemap, tilemap, 0x500); sub_8149F98(gScanlineEffectRegBuffers[0], 0, task->tData4, 132, task->tData5, 160); task->tState++; @@ -1402,11 +1402,11 @@ static bool8 Phase2_Registeel_Func2(struct Task *task) static bool8 Phase2_Regirock_Func2(struct Task *task) { - u16 *dst1, *dst2; + u16 *tilemap, *tileset; - sub_8149F58(&dst1, &dst2); - LoadPalette(gUnknown_085BC2F4, 0xF0, 0x20); - CpuCopy16(gUnknown_085BD314, dst1, 0x500); + GetBg0TilesDst(&tilemap, &tileset); + LoadPalette(sRegirock_Palette, 0xF0, 0x20); + CpuCopy16(sRegirock_Tilemap, tilemap, 0x500); sub_8149F98(gScanlineEffectRegBuffers[0], 0, task->tData4, 132, task->tData5, 160); task->tState++; @@ -1415,12 +1415,12 @@ static bool8 Phase2_Regirock_Func2(struct Task *task) static bool8 Phase2_Kyogre_Func3(struct Task *task) { - u16 *dst1, *dst2; + u16 *tilemap, *tileset; - sub_8149F58(&dst1, &dst2); - CpuFill16(0, dst1, 0x800); - LZ77UnCompVram(gUnknown_085BDB34, dst2); - LZ77UnCompVram(gUnknown_085BE1E8, dst1); + GetBg0TilesDst(&tilemap, &tileset); + CpuFill16(0, tilemap, 0x800); + LZ77UnCompVram(sKyogre_Tileset, tileset); + LZ77UnCompVram(sKyogre_Tilemap, tilemap); task->tState++; return FALSE; @@ -1432,7 +1432,7 @@ static bool8 Phase2_Kyogre_Func4(struct Task *task) { u16 var = task->tData1 % 30; var /= 3; - LoadPalette(gUnknown_085BEDA0 + (var * 16), 0xF0, 0x20); + LoadPalette(sKyogre1_Palette + (var * 16), 0xF0, 0x20); } if (++task->tData1 > 58) { @@ -1448,7 +1448,7 @@ static bool8 Phase2_Kyogre_Func5(struct Task *task) if (task->tData1 % 5 == 0) { s16 var = task->tData1 / 5; - LoadPalette(gUnknown_085BEEE0 + (var * 16), 0xF0, 0x20); + LoadPalette(sKyogre2_Palette + (var * 16), 0xF0, 0x20); } if (++task->tData1 > 68) { @@ -1472,7 +1472,7 @@ static bool8 Phase2_WeatherDuo_Func7(struct Task *task) if (!gPaletteFade.active) { DmaStop(0); - sub_8149F84(); + FadeScreenBlack(); DestroyTask(FindTaskIdByFunc(task->func)); } return FALSE; @@ -1575,7 +1575,7 @@ static bool8 Phase2_BigPokeball_Func6(struct Task *task) { SetVBlankCallback(NULL); DmaStop(0); - sub_8149F84(); + FadeScreenBlack(); DestroyTask(FindTaskIdByFunc(task->func)); } else @@ -1624,11 +1624,11 @@ static void Phase2Task_PokeballsTrail(u8 taskId) static bool8 Phase2_PokeballsTrail_Func1(struct Task *task) { - u16 *dst1, *dst2; + u16 *tilemap, *tileset; - sub_8149F58(&dst1, &dst2); - CpuSet(sPokeballTrail_Tileset, dst2, 0x20); - CpuFill32(0, dst1, 0x800); + GetBg0TilesDst(&tilemap, &tileset); + CpuSet(sPokeballTrail_Tileset, tileset, 0x20); + CpuFill32(0, tilemap, 0x800); LoadPalette(gFieldEffectObjectPalette10, 0xF0, 0x20); task->tState++; @@ -1662,7 +1662,7 @@ static bool8 Phase2_PokeballsTrail_Func3(struct Task *task) { if (!FieldEffectActiveListContains(FLDEFF_POKEBALL)) { - sub_8149F84(); + FadeScreenBlack(); DestroyTask(FindTaskIdByFunc(Phase2Task_PokeballsTrail)); } return FALSE; @@ -1670,7 +1670,7 @@ static bool8 Phase2_PokeballsTrail_Func3(struct Task *task) bool8 FldEff_Pokeball(void) { - u8 spriteId = CreateSpriteAtEnd(&gUnknown_085C8E68, gFieldEffectArguments[0], gFieldEffectArguments[1], 0); + u8 spriteId = CreateSpriteAtEnd(&sSpriteTemplate_Pokeball, gFieldEffectArguments[0], gFieldEffectArguments[1], 0); gSprites[spriteId].oam.priority = 0; gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL; gSprites[spriteId].data[0] = gFieldEffectArguments[2]; @@ -1709,7 +1709,7 @@ static void sub_814713C(struct Sprite *sprite) u16 *ptr; sprite->data[2] = posX; - var = (((REG_BG0CNT >> 8) & 0x1F) << 11); // r2 + var = (((REG_BG0CNT >> 8) & 0x1F) << 11); ptr = (u16 *)(VRAM + var); SOME_VRAM_STORE(ptr, posY - 2, posX, 0xF001); @@ -1733,7 +1733,7 @@ static bool8 Phase2_Clockwise_BlackFade_Func1(struct Task *task) { u16 i; - sub_8149F08(); + InitTransitionStructVars(); ScanlineEffect_Clear(); sTransitionStructPtr->WININ = 0; @@ -1900,7 +1900,7 @@ static bool8 Phase2_Clockwise_BlackFade_Func6(struct Task *task) static bool8 Phase2_Clockwise_BlackFade_Func7(struct Task *task) { DmaStop(0); - sub_8149F84(); + FadeScreenBlack(); DestroyTask(FindTaskIdByFunc(Phase2Task_Clockwise_BlackFade)); return FALSE; } @@ -1927,7 +1927,7 @@ static bool8 Phase2_Ripple_Func1(struct Task *task) { u8 i; - sub_8149F08(); + InitTransitionStructVars(); ScanlineEffect_Clear(); for (i = 0; i < 160; i++) @@ -1962,7 +1962,7 @@ static bool8 Phase2_Ripple_Func2(struct Task *task) for (i = 0; i < 160; i++, r4 += r8) { s16 var = r4 >> 8; - + var++; var--; gScanlineEffectRegBuffers[0][i] = sTransitionStructPtr->field_16 + Sin(var, r3); @@ -2005,7 +2005,7 @@ static bool8 Phase2_Wave_Func1(struct Task *task) { u8 i; - sub_8149F08(); + InitTransitionStructVars(); ScanlineEffect_Clear(); sTransitionStructPtr->WININ = 63; @@ -2057,7 +2057,7 @@ static bool8 Phase2_Wave_Func2(struct Task *task) static bool8 Phase2_Wave_Func3(struct Task *task) { DmaStop(0); - sub_8149F84(); + FadeScreenBlack(); DestroyTask(FindTaskIdByFunc(Phase2Task_Wave)); return FALSE; } @@ -2113,7 +2113,7 @@ static bool8 Phase2_Mugshot_Func1(struct Task *task) { u8 i; - sub_8149F08(); + InitTransitionStructVars(); ScanlineEffect_Clear(); Mugshots_CreateOpponentPlayerSprites(task); @@ -2138,20 +2138,20 @@ static bool8 Phase2_Mugshot_Func1(struct Task *task) static bool8 Phase2_Mugshot_Func2(struct Task *task) { s16 i, j; - u16 *dst1, *dst2; - const u16 *MugshotsMap; + u16 *tilemap, *tileset; + const u16 *mugshotsMap; - MugshotsMap = sMugshotsTilemap; - sub_8149F58(&dst1, &dst2); - CpuSet(sUnknown_085B9AF0, dst2, 0xF0); + mugshotsMap = sMugshotsTilemap; + GetBg0TilesDst(&tilemap, &tileset); + CpuSet(sEliteFour_Tileset, tileset, 0xF0); LoadPalette(sOpponentMugshotsPals[task->tMugshotId], 0xF0, 0x20); LoadPalette(sPlayerMugshotsPals[gSaveBlock2Ptr->playerGender], 0xFA, 0xC); for (i = 0; i < 20; i++) { - for (j = 0; j < 32; j++, MugshotsMap++) + for (j = 0; j < 32; j++, mugshotsMap++) { - dst1[i * 32 + j] = *MugshotsMap | 0xF000; + tilemap[i * 32 + j] = *mugshotsMap | 0xF000; } } @@ -2229,9 +2229,9 @@ static bool8 Phase2_Mugshot_Func4(struct Task *task) sTransitionStructPtr->BG0HOFS_1 -= 8; sTransitionStructPtr->BG0HOFS_2 += 8; - sub_8148484(task->tOpponentSpriteId, 0); - sub_8148484(task->tPlayerSpriteId, 1); - sub_814849C(task->tOpponentSpriteId); + SetTrainerPicSlideTable(task->tOpponentSpriteId, 0); + SetTrainerPicSlideTable(task->tPlayerSpriteId, 1); + IncrementTrainerPicState(task->tOpponentSpriteId); PlaySE(SE_BT_START); @@ -2243,10 +2243,10 @@ static bool8 Phase2_Mugshot_Func5(struct Task *task) { sTransitionStructPtr->BG0HOFS_1 -= 8; sTransitionStructPtr->BG0HOFS_2 += 8; - if (sub_81484B8(task->tOpponentSpriteId)) + if (IsTrainerPicSlideDone(task->tOpponentSpriteId)) { task->tState++; - sub_814849C(task->tPlayerSpriteId); + IncrementTrainerPicState(task->tPlayerSpriteId); } return FALSE; } @@ -2255,7 +2255,7 @@ static bool8 Phase2_Mugshot_Func6(struct Task *task) { sTransitionStructPtr->BG0HOFS_1 -= 8; sTransitionStructPtr->BG0HOFS_2 += 8; - if (sub_81484B8(task->tPlayerSpriteId)) + if (IsTrainerPicSlideDone(task->tPlayerSpriteId)) { sTransitionStructPtr->VBlank_DMA = FALSE; SetVBlankCallback(NULL); @@ -2317,7 +2317,7 @@ static bool8 Phase2_Mugshot_Func7(struct Task *task) static bool8 Phase2_Mugshot_Func8(struct Task *task) { sTransitionStructPtr->VBlank_DMA = FALSE; - BlendPalettes(-1, 0x10, 0x7FFF); + BlendPalettes(0xFFFFFFFF, 0x10, RGB_WHITE); sTransitionStructPtr->BLDCNT = 0xFF; task->tData3 = 0; @@ -2341,7 +2341,7 @@ static bool8 Phase2_Mugshot_Func9(struct Task *task) static bool8 Phase2_Mugshot_Func10(struct Task *task) { DmaStop(0); - sub_8149F84(); + FadeScreenBlack(); DestroyTask(FindTaskIdByFunc(task->func)); return FALSE; } @@ -2377,6 +2377,13 @@ static void HBlankCB_Phase2_Mugshots(void) REG_BG0HOFS = sTransitionStructPtr->BG0HOFS_2; } +// data fields for player/opponent sprites in mugshots +#define sState data[0] +#define sOffsetX data[1] +#define sOffsetX2 data[2] +#define sDone data[6] +#define sSlideTableId data[7] + static void Mugshots_CreateOpponentPlayerSprites(struct Task *task) { struct Sprite *opponentSprite, *playerSprite; @@ -2391,8 +2398,8 @@ static void Mugshots_CreateOpponentPlayerSprites(struct Task *task) opponentSprite = &gSprites[task->tOpponentSpriteId]; playerSprite = &gSprites[task->tPlayerSpriteId]; - opponentSprite->callback = sub_8148380; - playerSprite->callback = sub_8148380; + opponentSprite->callback = SpriteCb_TrainerPic; + playerSprite->callback = SpriteCb_TrainerPic; opponentSprite->oam.affineMode = ST_OAM_AFFINE_DOUBLE; playerSprite->oam.affineMode = ST_OAM_AFFINE_DOUBLE; @@ -2413,77 +2420,86 @@ static void Mugshots_CreateOpponentPlayerSprites(struct Task *task) SetOamMatrixRotationScaling(playerSprite->oam.matrixNum, -512, 512, 0); } -static void sub_8148380(struct Sprite *sprite) +static void SpriteCb_TrainerPic(struct Sprite *sprite) { - while (sUnknown_085C8C24[sprite->data[0]](sprite)); + while (sTrainerPicSpriteCbs[sprite->sState](sprite)); } -static bool8 sub_81483A8(struct Sprite *sprite) +static bool8 TrainerPicCb_Nothing(struct Sprite *sprite) { return FALSE; } -static bool8 sub_81483AC(struct Sprite *sprite) +static bool8 TrainerPicCb_SetSlideOffsets(struct Sprite *sprite) { - s16 arr0[2]; - s16 arr1[2]; + s16 offfsets1[ARRAY_COUNT(sTrainerPicSlideOffsets1)]; + s16 offfsets2[ARRAY_COUNT(sTrainerPicSlideOffsets2)]; - memcpy(arr0, sUnknown_085C8C40, sizeof(sUnknown_085C8C40)); - memcpy(arr1, sUnknown_085C8C44, sizeof(sUnknown_085C8C44)); + memcpy(offfsets1, sTrainerPicSlideOffsets1, sizeof(sTrainerPicSlideOffsets1)); + memcpy(offfsets2, sTrainerPicSlideOffsets2, sizeof(sTrainerPicSlideOffsets2)); - sprite->data[0]++; - sprite->data[1] = arr0[sprite->data[7]]; - sprite->data[2] = arr1[sprite->data[7]]; + sprite->sState++; + sprite->sOffsetX = offfsets1[sprite->sSlideTableId]; + sprite->sOffsetX2 = offfsets2[sprite->sSlideTableId]; return TRUE; } -static bool8 sub_81483F8(struct Sprite *sprite) +// fast slide to around middle screen +static bool8 TrainerPicCb_Slide1(struct Sprite *sprite) { - sprite->pos1.x += sprite->data[1]; - if (sprite->data[7] && sprite->pos1.x < 133) - sprite->data[0]++; - else if (!sprite->data[7] && sprite->pos1.x > 103) - sprite->data[0]++; + sprite->pos1.x += sprite->sOffsetX; + if (sprite->sSlideTableId && sprite->pos1.x < 133) + sprite->sState++; + else if (!sprite->sSlideTableId && sprite->pos1.x > 103) + sprite->sState++; return FALSE; } -static bool8 sub_814842C(struct Sprite *sprite) +// slower but accelerating slide +static bool8 TrainerPicCb_Slide2(struct Sprite *sprite) { - sprite->data[1] += sprite->data[2]; - sprite->pos1.x += sprite->data[1]; - if (sprite->data[1] == 0) + sprite->sOffsetX += sprite->sOffsetX2; + sprite->pos1.x += sprite->sOffsetX; + if (sprite->sOffsetX == 0) { - sprite->data[0]++; - sprite->data[2] = -sprite->data[2]; - sprite->data[6] = 1; + sprite->sState++; + sprite->sOffsetX2 = -sprite->sOffsetX2; + sprite->sDone = TRUE; } return FALSE; } -static bool8 sub_8148458(struct Sprite *sprite) +// Has no practical effect +static bool8 TrainerPicCb_Slide3(struct Sprite *sprite) { - sprite->data[1] += sprite->data[2]; - sprite->pos1.x += sprite->data[1]; + sprite->sOffsetX += sprite->sOffsetX2; + sprite->pos1.x += sprite->sOffsetX; if (sprite->pos1.x < -31 || sprite->pos1.x > 271) - sprite->data[0]++; + sprite->sState++; return FALSE; } -static void sub_8148484(s16 spriteId, s16 value) +static void SetTrainerPicSlideTable(s16 spriteId, s16 arrId) { - gSprites[spriteId].data[7] = value; + gSprites[spriteId].sSlideTableId = arrId; } -static void sub_814849C(s16 spriteId) +static void IncrementTrainerPicState(s16 spriteId) { - gSprites[spriteId].data[0]++; + gSprites[spriteId].sState++; } -static s16 sub_81484B8(s16 spriteId) +static s16 IsTrainerPicSlideDone(s16 spriteId) { - return gSprites[spriteId].data[6]; + return gSprites[spriteId].sDone; } +#undef sState +#undef sOffsetX +#undef sOffsetX2 +#undef sDone +#undef sSlideTableId + static void Phase2Task_Slice(u8 taskId) { while (sPhase2_Slice_Funcs[gTasks[taskId].tState](&gTasks[taskId])); @@ -2493,7 +2509,7 @@ static bool8 Phase2_Slice_Func1(struct Task *task) { u16 i; - sub_8149F08(); + InitTransitionStructVars(); ScanlineEffect_Clear(); task->tData2 = 256; @@ -2559,7 +2575,7 @@ static bool8 Phase2_Slice_Func2(struct Task *task) static bool8 Phase2_Slice_Func3(struct Task *task) { DmaStop(0); - sub_8149F84(); + FadeScreenBlack(); DestroyTask(FindTaskIdByFunc(Phase2Task_Slice)); return FALSE; } @@ -2596,7 +2612,7 @@ static bool8 Phase2_ShredSplit_Func1(struct Task *task) { u16 i; - sub_8149F08(); + InitTransitionStructVars(); ScanlineEffect_Clear(); sTransitionStructPtr->WININ = 63; @@ -2749,7 +2765,7 @@ static bool8 Phase2_ShredSplit_Func3(struct Task *task) static bool8 Phase2_ShredSplit_Func4(struct Task *task) { DmaStop(0); - sub_8149F84(); + FadeScreenBlack(); DestroyTask(FindTaskIdByFunc(Phase2Task_ShredSplit)); return FALSE; } @@ -2768,7 +2784,7 @@ static bool8 Phase2_Blackhole_Func1(struct Task *task) { s32 i; - sub_8149F08(); + InitTransitionStructVars(); ScanlineEffect_Clear(); sTransitionStructPtr->WININ = 0; @@ -2812,7 +2828,7 @@ static bool8 Phase2_Blackhole1_Func3(struct Task *task) if (task->tData1 == 0xA0) { task->tFuncState = 1; - sub_8149F84(); + FadeScreenBlack(); } else { @@ -2864,7 +2880,7 @@ static bool8 Phase2_Blackhole2_Func2(struct Task *task) if (task->tData1 == 0xA0) { DmaStop(0); - sub_8149F84(); + FadeScreenBlack(); DestroyTask(FindTaskIdByFunc(task->func)); } @@ -2897,12 +2913,12 @@ static void Phase2Task_RectangularSpiral(u8 taskId) static bool8 Phase2_RectangularSpiral_Func1(struct Task *task) { - u16 *dst1, *dst2; + u16 *tilemap, *tileset; - sub_8149F58(&dst1, &dst2); - CpuCopy16(sShrinkingBoxTileset, dst2, 0x20); - CpuCopy16(sShrinkingBoxTileset + 0x70, dst2 + 0x20, 0x20); - CpuFill16(0xF000, dst1, 0x800); + GetBg0TilesDst(&tilemap, &tileset); + CpuCopy16(sShrinkingBoxTileset, tileset, 0x20); + CpuCopy16(sShrinkingBoxTileset + 0x70, tileset + 0x20, 0x20); + CpuFill16(0xF000, tilemap, 0x800); LoadPalette(gFieldEffectObjectPalette10, 0xF0, 0x20); task->tData3 = 1; @@ -2937,12 +2953,12 @@ static bool8 Phase2_RectangularSpiral_Func1(struct Task *task) static bool8 Phase2_RectangularSpiral_Func2(struct Task *task) { - u16 *dst1, *dst2; + u16 *tilemap, *tileset; u8 i; u16 j; bool32 done = TRUE; - sub_8149F58(&dst1, &dst2); + GetBg0TilesDst(&tilemap, &tileset); for (i = 0; i < 2; i++) { @@ -2963,7 +2979,7 @@ static bool8 Phase2_RectangularSpiral_Func2(struct Task *task) var2 = var % 32; var3 = var / 32 * 32; - dst1[var3 + var2] = 0xF002; + tilemap[var3 + var2] = 0xF002; } } } @@ -2976,7 +2992,7 @@ static bool8 Phase2_RectangularSpiral_Func2(struct Task *task) static bool8 Phase2_RectangularSpiral_Func3(struct Task *task) { DmaStop(0); - sub_8149F84(); + FadeScreenBlack(); DestroyTask(FindTaskIdByFunc(task->func)); return FALSE; } @@ -3051,12 +3067,12 @@ static void Phase2Task_Groudon(u8 taskId) static bool8 Phase2_Groudon_Func3(struct Task *task) { - u16 *dst1, *dst2; + u16 *tilemap, *tileset; - sub_8149F58(&dst1, &dst2); - CpuFill16(0, dst1, 0x800); - LZ77UnCompVram(gUnknown_085BE51C, dst2); - LZ77UnCompVram(gUnknown_085BEA88, dst1); + GetBg0TilesDst(&tilemap, &tileset); + CpuFill16(0, tilemap, 0x800); + LZ77UnCompVram(sGroudon_Tileset, tileset); + LZ77UnCompVram(sGroudon_Tilemap, tilemap); task->tState++; task->tData1 = 0; @@ -3068,7 +3084,7 @@ static bool8 Phase2_Groudon_Func4(struct Task *task) if (task->tData1 % 3 == 0) { u16 var = (task->tData1 % 30) / 3; - LoadPalette(gUnknown_085BF0A0 + (var * 16), 0xF0, 0x20); + LoadPalette(sGroudon1_Palette + (var * 16), 0xF0, 0x20); } if (++task->tData1 > 58) { @@ -3084,7 +3100,7 @@ static bool8 Phase2_Groudon_Func5(struct Task *task) if (task->tData1 % 5 == 0) { s16 var = task->tData1 / 5; - LoadPalette(gUnknown_085BF2A0 + (var * 16), 0xF0, 0x20); + LoadPalette(sGroudon2_Palette + (var * 16), 0xF0, 0x20); } if (++task->tData1 > 68) { @@ -3103,20 +3119,20 @@ static void Phase2Task_Rayquaza(u8 taskId) static bool8 Phase2_Rayquaza_Func3(struct Task *task) { - u16 *dst1, *dst2; + u16 *tilemap, *tileset; u16 i; - sub_8149F08(); + InitTransitionStructVars(); ScanlineEffect_Clear(); SetGpuReg(REG_OFFSET_BG0CNT, 0x9A08); - sub_8149F58(&dst1, &dst2); - CpuFill16(0, dst1, 0x800); - CpuCopy16(gUnknown_085BF6A0, dst2, 0x2000); + GetBg0TilesDst(&tilemap, &tileset); + CpuFill16(0, tilemap, 0x800); + CpuCopy16(sRayquaza_Tileset, tileset, 0x2000); sTransitionStructPtr->field_20 = 0; task->tState++; - LoadPalette(gUnknown_085BF4A0 + 0x50, 0xF0, 0x20); + LoadPalette(sRayquaza_Palette + 0x50, 0xF0, 0x20); for (i = 0; i < 160; i++) { @@ -3130,10 +3146,10 @@ static bool8 Phase2_Rayquaza_Func3(struct Task *task) static bool8 Phase2_Rayquaza_Func4(struct Task *task) { - u16 *dst1, *dst2; + u16 *tilemap, *tileset; - sub_8149F58(&dst1, &dst2); - CpuCopy16(gUnknown_085C6BE0, dst1, 0x1000); + GetBg0TilesDst(&tilemap, &tileset); + CpuCopy16(sRayquaza_Tilemap, tilemap, 0x1000); task->tState++; return FALSE; } @@ -3143,7 +3159,7 @@ static bool8 Phase2_Rayquaza_Func5(struct Task *task) if ((task->tData1 % 4) == 0) { u16 value = task->tData1 / 4; - const u16 *palPtr = &gUnknown_085BF4A0[(value + 5) * 16]; + const u16 *palPtr = &sRayquaza_Palette[(value + 5) * 16]; LoadPalette(palPtr, 0xF0, 0x20); } if (++task->tData1 > 40) @@ -3192,7 +3208,7 @@ static bool8 Phase2_Rayquaza_Func9(struct Task *task) if ((task->tData1 % 3) == 0) { u16 value = task->tData1 / 3; - const u16 *palPtr = &gUnknown_085BF4A0[(value + 0) * 16]; + const u16 *palPtr = &sRayquaza_Palette[(value + 0) * 16]; LoadPalette(palPtr, 0xF0, 0x20); } if (++task->tData1 >= 40) @@ -3245,7 +3261,7 @@ static bool8 Phase2_WhiteFade_Func1(struct Task *task) { u16 i; - sub_8149F08(); + InitTransitionStructVars(); ScanlineEffect_Clear(); sTransitionStructPtr->BLDCNT = 0xBF; @@ -3322,7 +3338,7 @@ static bool8 Phase2_WhiteFade_Func5(struct Task *task) { if (++sTransitionStructPtr->BLDY > 16) { - sub_8149F84(); + FadeScreenBlack(); DestroyTask(FindTaskIdByFunc(Phase2Task_WhiteFade)); } return FALSE; @@ -3407,11 +3423,11 @@ static void Phase2Task_GridSquares(u8 taskId) static bool8 Phase2_GridSquares_Func1(struct Task *task) { - u16 *dst1, *dst2; + u16 *tilemap, *tileset; - sub_8149F58(&dst1, &dst2); - CpuSet(sShrinkingBoxTileset, dst2, 0x10); - CpuFill16(0xF000, dst1, 0x800); + GetBg0TilesDst(&tilemap, &tileset); + CpuSet(sShrinkingBoxTileset, tileset, 0x10); + CpuFill16(0xF000, tilemap, 0x800); LoadPalette(gFieldEffectObjectPalette10, 0xF0, 0x20); task->tState++; @@ -3420,14 +3436,14 @@ static bool8 Phase2_GridSquares_Func1(struct Task *task) static bool8 Phase2_GridSquares_Func2(struct Task *task) { - u16* dst1; + u16* tileset; if (task->tData1 == 0) { - sub_8149F40(&dst1); + GetBg0TilemapDst(&tileset); task->tData1 = 3; task->tData2++; - CpuSet(sShrinkingBoxTileset + (task->tData2 * 8), dst1, 0x10); + CpuSet(sShrinkingBoxTileset + (task->tData2 * 8), tileset, 0x10); if (task->tData2 > 0xD) { task->tState++; @@ -3443,7 +3459,7 @@ static bool8 Phase2_GridSquares_Func3(struct Task *task) { if (--task->tData1 == 0) { - sub_8149F84(); + FadeScreenBlack(); DestroyTask(FindTaskIdByFunc(Phase2Task_GridSquares)); } return FALSE; @@ -3458,7 +3474,7 @@ static bool8 Phase2_Shards_Func1(struct Task *task) { u16 i; - sub_8149F08(); + InitTransitionStructVars(); ScanlineEffect_Clear(); sTransitionStructPtr->WININ = 0x3F; @@ -3540,7 +3556,7 @@ static bool8 Phase2_Shards_Func4(struct Task *task) else { DmaStop(0); - sub_8149F84(); + FadeScreenBlack(); DestroyTask(FindTaskIdByFunc(Phase2Task_Shards)); return FALSE; } @@ -3553,8 +3569,8 @@ static bool8 Phase2_Shards_Func5(struct Task *task) task->tState = 1; return TRUE; } - else - return FALSE; + + return FALSE; } static void VBlankCB_Phase2_Shards(void) @@ -3665,7 +3681,7 @@ static bool8 Phase1_TransitionAll_Func2(struct Task *task) #undef tData6 #undef tData7 -static void sub_8149F08(void) +static void InitTransitionStructVars(void) { memset(sTransitionStructPtr, 0, sizeof(*sTransitionStructPtr)); sub_8089C08(&sTransitionStructPtr->field_14, &sTransitionStructPtr->field_16); @@ -3678,37 +3694,28 @@ static void VBlankCB_BattleTransition(void) TransferPlttBuffer(); } -static void sub_8149F40(u16 **a0) +static void GetBg0TilemapDst(u16 **tileset) { - u16 reg, *vram; - - reg = REG_BG0CNT >> 2; - reg <<= 0xE; - vram = (u16*)(VRAM + reg); - - *a0 = vram; + u16 charBase = REG_BG0CNT >> 2; + charBase <<= 0xE; + *tileset = (u16*)(VRAM + charBase); } -void sub_8149F58(u16 **a0, u16 **a1) +void GetBg0TilesDst(u16 **tilemap, u16 **tileset) { - u16 reg0, reg1, *vram0, *vram1; - - reg0 = REG_BG0CNT >> 8; - reg1 = REG_BG0CNT >> 2; - - reg0 <<= 0xB; - reg1 <<= 0xE; + u16 screenBase = REG_BG0CNT >> 8; + u16 charBase = REG_BG0CNT >> 2; - vram0 = (u16*)(VRAM + reg0); - *a0 = vram0; + screenBase <<= 0xB; + charBase <<= 0xE; - vram1 = (u16*)(VRAM + reg1); - *a1 = vram1; + *tilemap = (u16*)(VRAM + screenBase); + *tileset = (u16*)(VRAM + charBase); } -static void sub_8149F84(void) +static void FadeScreenBlack(void) { - BlendPalettes(-1, 0x10, 0); + BlendPalettes(0xFFFFFFFF, 16, RGB_BLACK); } static void sub_8149F98(s16 *array, s16 sinAdd, s16 index, s16 indexIncrementer, s16 amplitude, s16 arrSize) @@ -3851,12 +3858,12 @@ static bool8 sub_814A228(s16 *data, bool8 a1, bool8 a2) static bool8 Phase2_29_Func1(struct Task *task) { - u16 *dst1, *dst2; + u16 *tilemap, *tileset; sub_814669C(task); - sub_8149F58(&dst1, &dst2); - CpuFill16(0, dst1, 0x800); - LZ77UnCompVram(gUnknown_085C7C00, dst2); + GetBg0TilesDst(&tilemap, &tileset); + CpuFill16(0, tilemap, 0x800); + LZ77UnCompVram(gUnknown_085C7C00, tileset); LoadPalette(gUnknown_085C7BE0, 0xF0, 0x20); task->tState++; @@ -3865,10 +3872,10 @@ static bool8 Phase2_29_Func1(struct Task *task) static bool8 Phase2_29_Func2(struct Task *task) { - u16 *dst1, *dst2; + u16 *tilemap, *tileset; - sub_8149F58(&dst1, &dst2); - LZ77UnCompVram(gUnknown_085C828C, dst1); + GetBg0TilesDst(&tilemap, &tileset); + LZ77UnCompVram(gUnknown_085C828C, tilemap); sub_8149F98(gScanlineEffectRegBuffers[0], 0, task->tData4, 0x84, task->tData5, 160); task->tState++; @@ -3887,9 +3894,9 @@ static void Phase2Task_30(u8 taskId) static bool8 Phase2_30_Func1(struct Task *task) { - u16 *dst1, *dst2; + u16 *tilemap, *tileset; - sub_8149F08(); + InitTransitionStructVars(); ScanlineEffect_Clear(); ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON | DISPCNT_WIN1_ON); task->tData2 = 0x2000; @@ -3901,9 +3908,9 @@ static bool8 Phase2_30_Func1(struct Task *task) sTransitionStructPtr->BLDALPHA = (task->tData6 << 8) | (task->tData5); REG_BLDCNT = sTransitionStructPtr->BLDCNT; REG_BLDALPHA = sTransitionStructPtr->BLDALPHA; - sub_8149F58(&dst1, &dst2); - CpuFill16(0, dst1, 0x800); - LZ77UnCompVram(gUnknown_085C7C00, dst2); + GetBg0TilesDst(&tilemap, &tileset); + CpuFill16(0, tilemap, 0x800); + LZ77UnCompVram(gUnknown_085C7C00, tileset); LoadPalette(gUnknown_085C7BE0, 0xF0, 0x20); sTransitionStructPtr->field_16 = 0; @@ -3913,10 +3920,10 @@ static bool8 Phase2_30_Func1(struct Task *task) static bool8 Phase2_30_Func2(struct Task *task) { - u16 *dst1, *dst2; + u16 *tilemap, *tileset; - sub_8149F58(&dst1, &dst2); - LZ77UnCompVram(gUnknown_085C828C, dst1); + GetBg0TilesDst(&tilemap, &tileset); + LZ77UnCompVram(gUnknown_085C828C, tilemap); task->tState++; return TRUE; @@ -4024,10 +4031,10 @@ static void Phase2Task_32(u8 taskId) static bool8 Phase2_31_Func1(struct Task *task) { - u16 *dst1, *dst2; + u16 *tilemap, *tileset; - sub_8149F58(&dst1, &dst2); - LZ77UnCompVram(gUnknown_085C8598, dst2); + GetBg0TilesDst(&tilemap, &tileset); + LZ77UnCompVram(gUnknown_085C8598, tileset); FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 0x20, 0x20); FillBgTilemapBufferRect(0, 1, 0, 0, 1, 0x20, 0xF); @@ -4065,9 +4072,9 @@ static bool8 Phase2_31_Func2(struct Task *task) static bool8 Phase2_31_Func3(struct Task *task) { u8 i; - u16 *dst1, *dst2; + u16 *tilemap, *tileset; - sub_8149F58(&dst1, &dst2); + GetBg0TilesDst(&tilemap, &tileset); if (task->tData6++ >= task->tData7) { switch (task->tData5) @@ -4081,13 +4088,13 @@ static bool8 Phase2_31_Func3(struct Task *task) break; case 1: BlendPalettes(0xFFFF7FFF, 0x10, 0); - LZ77UnCompVram(gUnknown_085C86F4, dst2); + LZ77UnCompVram(gUnknown_085C86F4, tileset); break; case 2: - LZ77UnCompVram(gUnknown_085C87F4, dst2); + LZ77UnCompVram(gUnknown_085C87F4, tileset); break; case 3: - LZ77UnCompVram(gUnknown_085C88A4, dst2); + LZ77UnCompVram(gUnknown_085C88A4, tileset); break; default: FillBgTilemapBufferRect_Palette0(0, 1, 0, 0, 0x20, 0x20); @@ -4105,10 +4112,10 @@ static bool8 Phase2_31_Func3(struct Task *task) static bool8 Phase2_33_Func1(struct Task *task) { - u16 *dst1, *dst2; + u16 *tilemap, *tileset; - sub_8149F58(&dst1, &dst2); - LZ77UnCompVram(gUnknown_085C8598, dst2); + GetBg0TilesDst(&tilemap, &tileset); + LZ77UnCompVram(gUnknown_085C8598, tileset); FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 0x20, 0x20); FillBgTilemapBufferRect(0, 1, 0, 0, 1, 0x20, 0xF); @@ -4221,10 +4228,10 @@ static void sub_814ABE4(u8 taskId) static bool8 Phase2_32_Func1(struct Task *task) { u8 taskId = 0; - u16 *dst1, *dst2; + u16 *tilemap, *tileset; - sub_8149F58(&dst1, &dst2); - LZ77UnCompVram(gUnknown_085C8598, dst2); + GetBg0TilesDst(&tilemap, &tileset); + LZ77UnCompVram(gUnknown_085C8598, tileset); FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 0x20, 0x20); CopyBgTilemapBufferToVram(0); LoadPalette(gUnknown_085C8578, 0xF0, 0x20); diff --git a/src/unk_transition.c b/src/unk_transition.c index 09e194be3..b485ef350 100644 --- a/src/unk_transition.c +++ b/src/unk_transition.c @@ -185,11 +185,11 @@ static const TransitionStateFunc sPhase2_41_Funcs[] = // code static void sub_81DA700(void) { - u16 *dst1, *dst2; + u16 *tilemap, *tileset; - sub_8149F58(&dst1, &dst2); - LZ77UnCompVram(gUnknown_0862AD54, dst2); - LZ77UnCompVram(gUnknown_0862AF30, dst1); + GetBg0TilesDst(&tilemap, &tileset); + LZ77UnCompVram(gUnknown_0862AD54, tileset); + LZ77UnCompVram(gUnknown_0862AF30, tilemap); LoadPalette(gUnknown_0862B53C, 0xF0, 0x20); LoadCompressedSpriteSheet(&sUnknown_0862B724); LoadSpritePalette(&sUnknown_0862B72C); -- cgit v1.2.3 From 72b332d5516d3d45e448819a5bc2355d0f813388 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 1 Jun 2020 18:05:31 -0400 Subject: Revert "More transitions documentation" --- graphics/battle_transitions/85BBC14.png | Bin 0 -> 231 bytes graphics/battle_transitions/85BC2B4.pal | 19 + graphics/battle_transitions/85BC2D4.pal | 19 + graphics/battle_transitions/85BC2F4.pal | 19 + graphics/battle_transitions/85BC314.bin | Bin 0 -> 2048 bytes graphics/battle_transitions/85BCB14.bin | Bin 0 -> 2048 bytes graphics/battle_transitions/85BD314.bin | Bin 0 -> 2048 bytes graphics/battle_transitions/regice.bin | Bin 2048 -> 0 bytes graphics/battle_transitions/regice.pal | 19 - graphics/battle_transitions/regirock.bin | Bin 2048 -> 0 bytes graphics/battle_transitions/regirock.pal | 19 - graphics/battle_transitions/regis.png | Bin 231 -> 0 bytes graphics/battle_transitions/registeel.bin | Bin 2048 -> 0 bytes graphics/battle_transitions/registeel.pal | 19 - include/battle_transition.h | 2 +- src/battle_transition.c | 587 +++++++++++++++--------------- src/unk_transition.c | 8 +- 17 files changed, 352 insertions(+), 359 deletions(-) create mode 100644 graphics/battle_transitions/85BBC14.png create mode 100644 graphics/battle_transitions/85BC2B4.pal create mode 100644 graphics/battle_transitions/85BC2D4.pal create mode 100644 graphics/battle_transitions/85BC2F4.pal create mode 100644 graphics/battle_transitions/85BC314.bin create mode 100644 graphics/battle_transitions/85BCB14.bin create mode 100644 graphics/battle_transitions/85BD314.bin delete mode 100644 graphics/battle_transitions/regice.bin delete mode 100644 graphics/battle_transitions/regice.pal delete mode 100644 graphics/battle_transitions/regirock.bin delete mode 100644 graphics/battle_transitions/regirock.pal delete mode 100644 graphics/battle_transitions/regis.png delete mode 100644 graphics/battle_transitions/registeel.bin delete mode 100644 graphics/battle_transitions/registeel.pal diff --git a/graphics/battle_transitions/85BBC14.png b/graphics/battle_transitions/85BBC14.png new file mode 100644 index 000000000..a08310737 Binary files /dev/null and b/graphics/battle_transitions/85BBC14.png differ diff --git a/graphics/battle_transitions/85BC2B4.pal b/graphics/battle_transitions/85BC2B4.pal new file mode 100644 index 000000000..f508de938 --- /dev/null +++ b/graphics/battle_transitions/85BC2B4.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +222 213 0 +57 57 0 +123 123 0 +189 189 0 +255 255 0 +255 255 82 +255 255 172 +255 255 255 diff --git a/graphics/battle_transitions/85BC2D4.pal b/graphics/battle_transitions/85BC2D4.pal new file mode 100644 index 000000000..6a46ddacf --- /dev/null +++ b/graphics/battle_transitions/85BC2D4.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +255 0 0 +0 0 0 +139 0 0 +197 0 0 +255 0 0 +255 65 65 +255 139 139 +255 255 255 diff --git a/graphics/battle_transitions/85BC2F4.pal b/graphics/battle_transitions/85BC2F4.pal new file mode 100644 index 000000000..2a65c3a9e --- /dev/null +++ b/graphics/battle_transitions/85BC2F4.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +213 148 0 +0 0 0 +74 49 0 +156 98 0 +230 156 0 +238 189 82 +246 222 172 +255 255 255 diff --git a/graphics/battle_transitions/85BC314.bin b/graphics/battle_transitions/85BC314.bin new file mode 100644 index 000000000..37149e37b Binary files /dev/null and b/graphics/battle_transitions/85BC314.bin differ diff --git a/graphics/battle_transitions/85BCB14.bin b/graphics/battle_transitions/85BCB14.bin new file mode 100644 index 000000000..29fde971c Binary files /dev/null and b/graphics/battle_transitions/85BCB14.bin differ diff --git a/graphics/battle_transitions/85BD314.bin b/graphics/battle_transitions/85BD314.bin new file mode 100644 index 000000000..cd1a672b5 Binary files /dev/null and b/graphics/battle_transitions/85BD314.bin differ diff --git a/graphics/battle_transitions/regice.bin b/graphics/battle_transitions/regice.bin deleted file mode 100644 index 37149e37b..000000000 Binary files a/graphics/battle_transitions/regice.bin and /dev/null differ diff --git a/graphics/battle_transitions/regice.pal b/graphics/battle_transitions/regice.pal deleted file mode 100644 index f508de938..000000000 --- a/graphics/battle_transitions/regice.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -222 213 0 -57 57 0 -123 123 0 -189 189 0 -255 255 0 -255 255 82 -255 255 172 -255 255 255 diff --git a/graphics/battle_transitions/regirock.bin b/graphics/battle_transitions/regirock.bin deleted file mode 100644 index cd1a672b5..000000000 Binary files a/graphics/battle_transitions/regirock.bin and /dev/null differ diff --git a/graphics/battle_transitions/regirock.pal b/graphics/battle_transitions/regirock.pal deleted file mode 100644 index 2a65c3a9e..000000000 --- a/graphics/battle_transitions/regirock.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -213 148 0 -0 0 0 -74 49 0 -156 98 0 -230 156 0 -238 189 82 -246 222 172 -255 255 255 diff --git a/graphics/battle_transitions/regis.png b/graphics/battle_transitions/regis.png deleted file mode 100644 index a08310737..000000000 Binary files a/graphics/battle_transitions/regis.png and /dev/null differ diff --git a/graphics/battle_transitions/registeel.bin b/graphics/battle_transitions/registeel.bin deleted file mode 100644 index 29fde971c..000000000 Binary files a/graphics/battle_transitions/registeel.bin and /dev/null differ diff --git a/graphics/battle_transitions/registeel.pal b/graphics/battle_transitions/registeel.pal deleted file mode 100644 index 6a46ddacf..000000000 --- a/graphics/battle_transitions/registeel.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -255 0 0 -0 0 0 -139 0 0 -197 0 0 -255 0 0 -255 65 65 -255 139 139 -255 255 255 diff --git a/include/battle_transition.h b/include/battle_transition.h index 0f583b101..db06a5638 100644 --- a/include/battle_transition.h +++ b/include/battle_transition.h @@ -7,7 +7,7 @@ void BattleTransition_Start(u8 transitionId); bool8 IsBattleTransitionDone(void); bool8 FldEff_Pokeball(void); void TransitionPhase1_Task_RunFuncs(u8 taskId); -void GetBg0TilesDst(u16 **tilemap, u16 **tileset); +void sub_8149F58(u16 **a0, u16 **a1); extern const struct SpritePalette gFieldEffectObjectPaletteInfo10; diff --git a/src/battle_transition.c b/src/battle_transition.c index ea9ac1e89..206ea09e5 100644 --- a/src/battle_transition.c +++ b/src/battle_transition.c @@ -237,29 +237,29 @@ static bool8 Transition_Phase1(struct Task *task); static bool8 Transition_WaitForPhase1(struct Task *task); static bool8 Transition_Phase2(struct Task *task); static bool8 Transition_WaitForPhase2(struct Task *task); -static void InitTransitionStructVars(void); -static void FadeScreenBlack(void); +static void sub_8149F08(void); +static void sub_8149F84(void); static void CreatePhase1Task(s16 a0, s16 a1, s16 a2, s16 a3, s16 a4); static void sub_814A014(u16 *a0, s16 a1, s16 a2, s16 a3); static void sub_8149F98(s16 *array, s16 sinAdd, s16 index, s16 indexIncrementer, s16 amplitude, s16 arrSize); -static void GetBg0TilemapDst(u16 **tileset); +static void sub_8149F40(u16 **a0); static void sub_814A1AC(s16 *a0, s16 a1, s16 a2, s16 a3, s16 a4, s16 a5, s16 a6); static bool8 sub_814A228(s16 *a0, bool8 a1, bool8 a2); -static void SetTrainerPicSlideTable(s16 spriteId, s16 arrId); -static void IncrementTrainerPicState(s16 spriteId); -static s16 IsTrainerPicSlideDone(s16 spriteId); +static void sub_8148484(s16 spriteId, s16 value); +static void sub_814849C(s16 spriteId); +static s16 sub_81484B8(s16 spriteId); static bool8 Phase1_TransitionAll_Func1(struct Task *task); static bool8 Phase1_TransitionAll_Func2(struct Task *task); static bool8 IsPhase1Done(void); static bool16 sub_8149048(const s16 * const *arg0, struct StructRectangularSpiral *arg1); static void sub_814713C(struct Sprite *sprite); -static void SpriteCb_TrainerPic(struct Sprite *sprite); +static void sub_8148380(struct Sprite *sprite); static void sub_8149864(struct Sprite *sprite); -static bool8 TrainerPicCb_Nothing(struct Sprite *sprite); -static bool8 TrainerPicCb_SetSlideOffsets(struct Sprite *sprite); -static bool8 TrainerPicCb_Slide1(struct Sprite *sprite); -static bool8 TrainerPicCb_Slide2(struct Sprite *sprite); -static bool8 TrainerPicCb_Slide3(struct Sprite *sprite); +static bool8 sub_81483A8(struct Sprite *sprite); +static bool8 sub_81483AC(struct Sprite *sprite); +static bool8 sub_81483F8(struct Sprite *sprite); +static bool8 sub_814842C(struct Sprite *sprite); +static bool8 sub_8148458(struct Sprite *sprite); // iwram bss vars static s16 sUnusedRectangularSpiralVar; @@ -273,35 +273,35 @@ EWRAM_DATA static struct TransitionData *sTransitionStructPtr = NULL; // const rom data static const u32 sBigPokeball_Tileset[] = INCBIN_U32("graphics/battle_transitions/big_pokeball.4bpp"); static const u32 sPokeballTrail_Tileset[] = INCBIN_U32("graphics/battle_transitions/pokeball_trail.4bpp"); -static const u8 sPokeball_Gfx[] = INCBIN_U8("graphics/battle_transitions/pokeball.4bpp"); -static const u32 sEliteFour_Tileset[] = INCBIN_U32("graphics/battle_transitions/elite_four_bg.4bpp"); -static const u8 sUnusedBrendan_Gfx[] = INCBIN_U8("graphics/battle_transitions/unused_brendan.4bpp"); -static const u8 sUnusedLass_Gfx[] = INCBIN_U8("graphics/battle_transitions/unused_lass.4bpp"); +static const u8 sSpriteImage_85B98F0[] = INCBIN_U8("graphics/battle_transitions/pokeball.4bpp"); +static const u32 sUnknown_085B9AF0[] = INCBIN_U32("graphics/battle_transitions/elite_four_bg.4bpp"); +static const u8 sSpriteImage_85B9CD0[] = INCBIN_U8("graphics/battle_transitions/unused_brendan.4bpp"); +static const u8 sSpriteImage_85BA4D0[] = INCBIN_U8("graphics/battle_transitions/unused_lass.4bpp"); static const u32 sShrinkingBoxTileset[] = INCBIN_U32("graphics/battle_transitions/shrinking_box.4bpp"); static const u32 sEvilTeam_Palette[] = INCBIN_U32("graphics/battle_transitions/evil_team.gbapal"); static const u32 sTeamAqua_Tileset[] = INCBIN_U32("graphics/battle_transitions/team_aqua.4bpp.lz"); static const u32 sTeamAqua_Tilemap[] = INCBIN_U32("graphics/battle_transitions/team_aqua.bin.lz"); static const u32 sTeamMagma_Tileset[] = INCBIN_U32("graphics/battle_transitions/team_magma.4bpp.lz"); static const u32 sTeamMagma_Tilemap[] = INCBIN_U32("graphics/battle_transitions/team_magma.bin.lz"); -static const u32 sRegis_Tileset[] = INCBIN_U32("graphics/battle_transitions/regis.4bpp"); -static const u32 sRegice_Palette[] = INCBIN_U32("graphics/battle_transitions/regice.gbapal"); -static const u32 sRegisteel_Palette[] = INCBIN_U32("graphics/battle_transitions/registeel.gbapal"); -static const u32 sRegirock_Palette[] = INCBIN_U32("graphics/battle_transitions/regirock.gbapal"); -static const u32 sRegice_Tilemap[] = INCBIN_U32("graphics/battle_transitions/regice.bin"); -static const u32 sRegisteel_Tilemap[] = INCBIN_U32("graphics/battle_transitions/registeel.bin"); -static const u32 sRegirock_Tilemap[] = INCBIN_U32("graphics/battle_transitions/regirock.bin"); +static const u32 gUnknown_085BBC14[] = INCBIN_U32("graphics/battle_transitions/85BBC14.4bpp"); +static const u32 gUnknown_085BC2B4[] = INCBIN_U32("graphics/battle_transitions/85BC2B4.gbapal"); +static const u32 gUnknown_085BC2D4[] = INCBIN_U32("graphics/battle_transitions/85BC2D4.gbapal"); +static const u32 gUnknown_085BC2F4[] = INCBIN_U32("graphics/battle_transitions/85BC2F4.gbapal"); +static const u32 gUnknown_085BC314[] = INCBIN_U32("graphics/battle_transitions/85BC314.bin"); +static const u32 gUnknown_085BCB14[] = INCBIN_U32("graphics/battle_transitions/85BCB14.bin"); +static const u32 gUnknown_085BD314[] = INCBIN_U32("graphics/battle_transitions/85BD314.bin"); static const u16 gUnknown_085BDB14[] = INCBIN_U16("graphics/battle_transitions/85BDB14.gbapal"); -static const u32 sKyogre_Tileset[] = INCBIN_U32("graphics/battle_transitions/kyogre.4bpp.lz"); -static const u32 sKyogre_Tilemap[] = INCBIN_U32("graphics/battle_transitions/kyogre.bin.lz"); -static const u32 sGroudon_Tileset[] = INCBIN_U32("graphics/battle_transitions/groudon.4bpp.lz"); -static const u32 sGroudon_Tilemap[] = INCBIN_U32("graphics/battle_transitions/groudon.bin.lz"); -static const u16 sKyogre1_Palette[] = INCBIN_U16("graphics/battle_transitions/kyogre_pt1.gbapal"); -static const u16 sKyogre2_Palette[] = INCBIN_U16("graphics/battle_transitions/kyogre_pt2.gbapal"); -static const u16 sGroudon1_Palette[] = INCBIN_U16("graphics/battle_transitions/groudon_pt1.gbapal"); -static const u16 sGroudon2_Palette[] = INCBIN_U16("graphics/battle_transitions/groudon_pt2.gbapal"); -static const u16 sRayquaza_Palette[] = INCBIN_U16("graphics/battle_transitions/rayquaza.gbapal"); -static const u32 sRayquaza_Tileset[] = INCBIN_U32("graphics/battle_transitions/rayquaza.4bpp"); -static const u32 sRayquaza_Tilemap[] = INCBIN_U32("graphics/battle_transitions/rayquaza.bin"); +static const u32 gUnknown_085BDB34[] = INCBIN_U32("graphics/battle_transitions/kyogre.4bpp.lz"); +static const u32 gUnknown_085BE1E8[] = INCBIN_U32("graphics/battle_transitions/kyogre.bin.lz"); +static const u32 gUnknown_085BE51C[] = INCBIN_U32("graphics/battle_transitions/groudon.4bpp.lz"); +static const u32 gUnknown_085BEA88[] = INCBIN_U32("graphics/battle_transitions/groudon.bin.lz"); +static const u16 gUnknown_085BEDA0[] = INCBIN_U16("graphics/battle_transitions/kyogre_pt1.gbapal"); +static const u16 gUnknown_085BEEE0[] = INCBIN_U16("graphics/battle_transitions/kyogre_pt2.gbapal"); +static const u16 gUnknown_085BF0A0[] = INCBIN_U16("graphics/battle_transitions/groudon_pt1.gbapal"); +static const u16 gUnknown_085BF2A0[] = INCBIN_U16("graphics/battle_transitions/groudon_pt2.gbapal"); +static const u16 gUnknown_085BF4A0[] = INCBIN_U16("graphics/battle_transitions/rayquaza.gbapal"); +static const u32 gUnknown_085BF6A0[] = INCBIN_U32("graphics/battle_transitions/rayquaza.4bpp"); +static const u32 gUnknown_085C6BE0[] = INCBIN_U32("graphics/battle_transitions/rayquaza.bin"); static const u32 gUnknown_085C7BE0[] = INCBIN_U32("graphics/battle_transitions/frontier_brain.gbapal"); static const u32 gUnknown_085C7C00[] = INCBIN_U32("graphics/battle_transitions/frontier_brain.4bpp.lz"); static const u32 gUnknown_085C828C[] = INCBIN_U32("graphics/battle_transitions/frontier_brain.bin.lz"); @@ -538,19 +538,19 @@ static const s16 sMugshotsOpponentCoords[MUGSHOTS_COUNT][2] = [MUGSHOT_CHAMPION] = {-8, 7}, }; -static const TransitionSpriteCallback sTrainerPicSpriteCbs[] = +static const TransitionSpriteCallback sUnknown_085C8C24[] = { - TrainerPicCb_Nothing, - TrainerPicCb_SetSlideOffsets, - TrainerPicCb_Slide1, - TrainerPicCb_Slide2, - TrainerPicCb_Nothing, - TrainerPicCb_Slide3, - TrainerPicCb_Nothing + sub_81483A8, + sub_81483AC, + sub_81483F8, + sub_814842C, + sub_81483A8, + sub_8148458, + sub_81483A8 }; -static const s16 sTrainerPicSlideOffsets1[2] = {12, -12}; -static const s16 sTrainerPicSlideOffsets2[2] = {-1, 1}; +static const s16 sUnknown_085C8C40[2] = {12, -12}; +static const s16 sUnknown_085C8C44[2] = {-1, 1}; static const TransitionStateFunc sPhase2_Slice_Funcs[] = { @@ -712,52 +712,52 @@ static const TransitionStateFunc sPhase1_TransitionAll_Funcs[] = Phase1_TransitionAll_Func2 }; -static const struct SpriteFrameImage sSpriteImage_Pokeball[] = +static const struct SpriteFrameImage sSpriteImageTable_85C8E2C[] = { - sPokeball_Gfx, sizeof(sPokeball_Gfx) + sSpriteImage_85B98F0, 0x200 }; -static const union AnimCmd sSpriteAnim_Pokeball[] = +static const union AnimCmd sSpriteAnim_85C8E34[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END }; -static const union AnimCmd *const sSpriteAnimTable_Pokeball[] = +static const union AnimCmd *const sSpriteAnimTable_85C8E3C[] = { - sSpriteAnim_Pokeball + sSpriteAnim_85C8E34 }; -static const union AffineAnimCmd sSpriteAffineAnim_Pokeball1[] = +static const union AffineAnimCmd sSpriteAffineAnim_85C8E40[] = { AFFINEANIMCMD_FRAME(0, 0, -4, 1), AFFINEANIMCMD_JUMP(0) }; -static const union AffineAnimCmd sSpriteAffineAnim_Pokeball2[] = +static const union AffineAnimCmd sSpriteAffineAnim_85C8E50[] = { AFFINEANIMCMD_FRAME(0, 0, 4, 1), AFFINEANIMCMD_JUMP(0) }; -static const union AffineAnimCmd *const sSpriteAffineAnimTable_Pokeball[] = +static const union AffineAnimCmd *const sSpriteAffineAnimTable_85C8E60[] = { - sSpriteAffineAnim_Pokeball1, - sSpriteAffineAnim_Pokeball2 + sSpriteAffineAnim_85C8E40, + sSpriteAffineAnim_85C8E50 }; -static const struct SpriteTemplate sSpriteTemplate_Pokeball = +static const struct SpriteTemplate gUnknown_085C8E68 = { .tileTag = 0xFFFF, .paletteTag = 4105, .oam = &gObjectEventBaseOam_32x32, - .anims = sSpriteAnimTable_Pokeball, - .images = sSpriteImage_Pokeball, - .affineAnims = sSpriteAffineAnimTable_Pokeball, + .anims = sSpriteAnimTable_85C8E3C, + .images = sSpriteImageTable_85C8E2C, + .affineAnims = sSpriteAffineAnimTable_85C8E60, .callback = sub_814713C }; -static const struct OamData sOam_UnusedBrendanLass = +static const struct OamData gOamData_85C8E80 = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -774,47 +774,47 @@ static const struct OamData sOam_UnusedBrendanLass = .affineParam = 0, }; -static const struct SpriteFrameImage sImageTable_UnusedBrendan[] = +static const struct SpriteFrameImage sSpriteImageTable_85C8E88[] = { - sUnusedBrendan_Gfx, sizeof(sUnusedBrendan_Gfx) + sSpriteImage_85B9CD0, 0x800 }; -static const struct SpriteFrameImage sImageTable_UnusedLass[] = +static const struct SpriteFrameImage sSpriteImageTable_85C8E90[] = { - sUnusedLass_Gfx, sizeof(sUnusedLass_Gfx) + sSpriteImage_85BA4D0, 0x800 }; -static const union AnimCmd sSpriteAnim_UnusedBrendanLass[] = +static const union AnimCmd sSpriteAnim_85C8E98[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END }; -static const union AnimCmd *const sSpriteAnimTable_UnusedBrendanLass[] = +static const union AnimCmd *const sSpriteAnimTable_85C8EA0[] = { - sSpriteAnim_UnusedBrendanLass + sSpriteAnim_85C8E98 }; -static const struct SpriteTemplate sSpriteTemplate_UnusedBrendan = +static const struct SpriteTemplate sSpriteTemplate_85C8EA4 = { .tileTag = 0xFFFF, .paletteTag = 4106, - .oam = &sOam_UnusedBrendanLass, - .anims = sSpriteAnimTable_UnusedBrendanLass, - .images = sImageTable_UnusedBrendan, + .oam = &gOamData_85C8E80, + .anims = sSpriteAnimTable_85C8EA0, + .images = sSpriteImageTable_85C8E88, .affineAnims = gDummySpriteAffineAnimTable, - .callback = SpriteCb_TrainerPic + .callback = sub_8148380 }; -static const struct SpriteTemplate sSpriteTemplate_UnusedLass = +static const struct SpriteTemplate sSpriteTemplate_85C8EBC = { .tileTag = 0xFFFF, .paletteTag = 4106, - .oam = &sOam_UnusedBrendanLass, - .anims = sSpriteAnimTable_UnusedBrendanLass, - .images = sImageTable_UnusedLass, + .oam = &gOamData_85C8E80, + .anims = sSpriteAnimTable_85C8EA0, + .images = sSpriteImageTable_85C8E90, .affineAnims = gDummySpriteAffineAnimTable, - .callback = SpriteCb_TrainerPic + .callback = sub_8148380 }; static const u16 gFieldEffectObjectPalette10[] = INCBIN_U16("graphics/field_effects/palettes/10.gbapal"); @@ -1102,7 +1102,7 @@ static void Phase2Task_Swirl(u8 taskId) static bool8 Phase2_Swirl_Func1(struct Task *task) { - InitTransitionStructVars(); + sub_8149F08(); ScanlineEffect_Clear(); BeginNormalPaletteFade(0xFFFFFFFF, 4, 0, 0x10, RGB_BLACK); sub_8149F98(gScanlineEffectRegBuffers[1], sTransitionStructPtr->field_14, 0, 2, 0, 160); @@ -1156,7 +1156,7 @@ static void Phase2Task_Shuffle(u8 taskId) static bool8 Phase2_Shuffle_Func1(struct Task *task) { - InitTransitionStructVars(); + sub_8149F08(); ScanlineEffect_Clear(); BeginNormalPaletteFade(0xFFFFFFFF, 4, 0, 0x10, RGB_BLACK); @@ -1249,7 +1249,7 @@ static void sub_814669C(struct Task *task) { s32 i; - InitTransitionStructVars(); + sub_8149F08(); ScanlineEffect_Clear(); task->tData1 = 16; @@ -1273,13 +1273,13 @@ static void sub_814669C(struct Task *task) static bool8 Phase2_Aqua_Func1(struct Task *task) { - u16 *tilemap, *tileset; + u16 *dst1, *dst2; task->tFrames = 60; sub_814669C(task); - GetBg0TilesDst(&tilemap, &tileset); - CpuFill16(0, tilemap, 0x800); - LZ77UnCompVram(sTeamAqua_Tileset, tileset); + sub_8149F58(&dst1, &dst2); + CpuFill16(0, dst1, 0x800); + LZ77UnCompVram(sTeamAqua_Tileset, dst2); LoadPalette(sEvilTeam_Palette, 0xF0, 0x20); task->tState++; @@ -1288,13 +1288,13 @@ static bool8 Phase2_Aqua_Func1(struct Task *task) static bool8 Phase2_Magma_Func1(struct Task *task) { - u16 *tilemap, *tileset; + u16 *dst1, *dst2; task->tFrames = 60; sub_814669C(task); - GetBg0TilesDst(&tilemap, &tileset); - CpuFill16(0, tilemap, 0x800); - LZ77UnCompVram(sTeamMagma_Tileset, tileset); + sub_8149F58(&dst1, &dst2); + CpuFill16(0, dst1, 0x800); + LZ77UnCompVram(sTeamMagma_Tileset, dst2); LoadPalette(sEvilTeam_Palette, 0xF0, 0x20); task->tState++; @@ -1303,13 +1303,13 @@ static bool8 Phase2_Magma_Func1(struct Task *task) static bool8 Phase2_Regi_Func1(struct Task *task) { - u16 *tilemap, *tileset; + u16 *dst1, *dst2; task->tFrames = 60; sub_814669C(task); - GetBg0TilesDst(&tilemap, &tileset); - CpuFill16(0, tilemap, 0x800); - CpuCopy16(sRegis_Tileset, tileset, 0x2000); + sub_8149F58(&dst1, &dst2); + CpuFill16(0, dst1, 0x800); + CpuCopy16(gUnknown_085BBC14, dst2, 0x2000); task->tState++; return FALSE; @@ -1317,12 +1317,12 @@ static bool8 Phase2_Regi_Func1(struct Task *task) static bool8 Phase2_BigPokeball_Func1(struct Task *task) { - u16 *tilemap, *tileset; + u16 *dst1, *dst2; sub_814669C(task); - GetBg0TilesDst(&tilemap, &tileset); - CpuFill16(0, tilemap, 0x800); - CpuCopy16(sBigPokeball_Tileset, tileset, 0x580); + sub_8149F58(&dst1, &dst2); + CpuFill16(0, dst1, 0x800); + CpuCopy16(sBigPokeball_Tileset, dst2, 0x580); LoadPalette(gFieldEffectObjectPalette10, 0xF0, 0x20); task->tState++; @@ -1332,16 +1332,16 @@ static bool8 Phase2_BigPokeball_Func1(struct Task *task) static bool8 Phase2_BigPokeball_Func2(struct Task *task) { s16 i, j; - u16 *tilemap, *tileset; + u16 *dst1, *dst2; const u16 *BigPokeballMap; - GetBg0TilesDst(&tilemap, &tileset); + sub_8149F58(&dst1, &dst2); BigPokeballMap = sBigPokeball_Tilemap; for (i = 0; i < 20; i++) { for (j = 0; j < 30; j++, BigPokeballMap++) { - tilemap[i * 32 + j] = *BigPokeballMap | 0xF000; + dst1[i * 32 + j] = *BigPokeballMap | 0xF000; } } sub_8149F98(gScanlineEffectRegBuffers[0], 0, task->tData4, 132, task->tData5, 160); @@ -1352,10 +1352,10 @@ static bool8 Phase2_BigPokeball_Func2(struct Task *task) static bool8 Phase2_Aqua_Func2(struct Task *task) { - u16 *tilemap, *tileset; + u16 *dst1, *dst2; - GetBg0TilesDst(&tilemap, &tileset); - LZ77UnCompVram(sTeamAqua_Tilemap, tilemap); + sub_8149F58(&dst1, &dst2); + LZ77UnCompVram(sTeamAqua_Tilemap, dst1); sub_8149F98(gScanlineEffectRegBuffers[0], 0, task->tData4, 132, task->tData5, 160); task->tState++; @@ -1364,10 +1364,10 @@ static bool8 Phase2_Aqua_Func2(struct Task *task) static bool8 Phase2_Magma_Func2(struct Task *task) { - u16 *tilemap, *tileset; + u16 *dst1, *dst2; - GetBg0TilesDst(&tilemap, &tileset); - LZ77UnCompVram(sTeamMagma_Tilemap, tilemap); + sub_8149F58(&dst1, &dst2); + LZ77UnCompVram(sTeamMagma_Tilemap, dst1); sub_8149F98(gScanlineEffectRegBuffers[0], 0, task->tData4, 132, task->tData5, 160); task->tState++; @@ -1376,11 +1376,11 @@ static bool8 Phase2_Magma_Func2(struct Task *task) static bool8 Phase2_Regice_Func2(struct Task *task) { - u16 *tilemap, *tileset; + u16 *dst1, *dst2; - GetBg0TilesDst(&tilemap, &tileset); - LoadPalette(sRegice_Palette, 0xF0, 0x20); - CpuCopy16(sRegice_Tilemap, tilemap, 0x500); + sub_8149F58(&dst1, &dst2); + LoadPalette(gUnknown_085BC2B4, 0xF0, 0x20); + CpuCopy16(gUnknown_085BC314, dst1, 0x500); sub_8149F98(gScanlineEffectRegBuffers[0], 0, task->tData4, 132, task->tData5, 160); task->tState++; @@ -1389,11 +1389,11 @@ static bool8 Phase2_Regice_Func2(struct Task *task) static bool8 Phase2_Registeel_Func2(struct Task *task) { - u16 *tilemap, *tileset; + u16 *dst1, *dst2; - GetBg0TilesDst(&tilemap, &tileset); - LoadPalette(sRegisteel_Palette, 0xF0, 0x20); - CpuCopy16(sRegisteel_Tilemap, tilemap, 0x500); + sub_8149F58(&dst1, &dst2); + LoadPalette(gUnknown_085BC2D4, 0xF0, 0x20); + CpuCopy16(gUnknown_085BCB14, dst1, 0x500); sub_8149F98(gScanlineEffectRegBuffers[0], 0, task->tData4, 132, task->tData5, 160); task->tState++; @@ -1402,11 +1402,11 @@ static bool8 Phase2_Registeel_Func2(struct Task *task) static bool8 Phase2_Regirock_Func2(struct Task *task) { - u16 *tilemap, *tileset; + u16 *dst1, *dst2; - GetBg0TilesDst(&tilemap, &tileset); - LoadPalette(sRegirock_Palette, 0xF0, 0x20); - CpuCopy16(sRegirock_Tilemap, tilemap, 0x500); + sub_8149F58(&dst1, &dst2); + LoadPalette(gUnknown_085BC2F4, 0xF0, 0x20); + CpuCopy16(gUnknown_085BD314, dst1, 0x500); sub_8149F98(gScanlineEffectRegBuffers[0], 0, task->tData4, 132, task->tData5, 160); task->tState++; @@ -1415,12 +1415,12 @@ static bool8 Phase2_Regirock_Func2(struct Task *task) static bool8 Phase2_Kyogre_Func3(struct Task *task) { - u16 *tilemap, *tileset; + u16 *dst1, *dst2; - GetBg0TilesDst(&tilemap, &tileset); - CpuFill16(0, tilemap, 0x800); - LZ77UnCompVram(sKyogre_Tileset, tileset); - LZ77UnCompVram(sKyogre_Tilemap, tilemap); + sub_8149F58(&dst1, &dst2); + CpuFill16(0, dst1, 0x800); + LZ77UnCompVram(gUnknown_085BDB34, dst2); + LZ77UnCompVram(gUnknown_085BE1E8, dst1); task->tState++; return FALSE; @@ -1432,7 +1432,7 @@ static bool8 Phase2_Kyogre_Func4(struct Task *task) { u16 var = task->tData1 % 30; var /= 3; - LoadPalette(sKyogre1_Palette + (var * 16), 0xF0, 0x20); + LoadPalette(gUnknown_085BEDA0 + (var * 16), 0xF0, 0x20); } if (++task->tData1 > 58) { @@ -1448,7 +1448,7 @@ static bool8 Phase2_Kyogre_Func5(struct Task *task) if (task->tData1 % 5 == 0) { s16 var = task->tData1 / 5; - LoadPalette(sKyogre2_Palette + (var * 16), 0xF0, 0x20); + LoadPalette(gUnknown_085BEEE0 + (var * 16), 0xF0, 0x20); } if (++task->tData1 > 68) { @@ -1472,7 +1472,7 @@ static bool8 Phase2_WeatherDuo_Func7(struct Task *task) if (!gPaletteFade.active) { DmaStop(0); - FadeScreenBlack(); + sub_8149F84(); DestroyTask(FindTaskIdByFunc(task->func)); } return FALSE; @@ -1575,7 +1575,7 @@ static bool8 Phase2_BigPokeball_Func6(struct Task *task) { SetVBlankCallback(NULL); DmaStop(0); - FadeScreenBlack(); + sub_8149F84(); DestroyTask(FindTaskIdByFunc(task->func)); } else @@ -1624,11 +1624,11 @@ static void Phase2Task_PokeballsTrail(u8 taskId) static bool8 Phase2_PokeballsTrail_Func1(struct Task *task) { - u16 *tilemap, *tileset; + u16 *dst1, *dst2; - GetBg0TilesDst(&tilemap, &tileset); - CpuSet(sPokeballTrail_Tileset, tileset, 0x20); - CpuFill32(0, tilemap, 0x800); + sub_8149F58(&dst1, &dst2); + CpuSet(sPokeballTrail_Tileset, dst2, 0x20); + CpuFill32(0, dst1, 0x800); LoadPalette(gFieldEffectObjectPalette10, 0xF0, 0x20); task->tState++; @@ -1662,7 +1662,7 @@ static bool8 Phase2_PokeballsTrail_Func3(struct Task *task) { if (!FieldEffectActiveListContains(FLDEFF_POKEBALL)) { - FadeScreenBlack(); + sub_8149F84(); DestroyTask(FindTaskIdByFunc(Phase2Task_PokeballsTrail)); } return FALSE; @@ -1670,7 +1670,7 @@ static bool8 Phase2_PokeballsTrail_Func3(struct Task *task) bool8 FldEff_Pokeball(void) { - u8 spriteId = CreateSpriteAtEnd(&sSpriteTemplate_Pokeball, gFieldEffectArguments[0], gFieldEffectArguments[1], 0); + u8 spriteId = CreateSpriteAtEnd(&gUnknown_085C8E68, gFieldEffectArguments[0], gFieldEffectArguments[1], 0); gSprites[spriteId].oam.priority = 0; gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL; gSprites[spriteId].data[0] = gFieldEffectArguments[2]; @@ -1709,7 +1709,7 @@ static void sub_814713C(struct Sprite *sprite) u16 *ptr; sprite->data[2] = posX; - var = (((REG_BG0CNT >> 8) & 0x1F) << 11); + var = (((REG_BG0CNT >> 8) & 0x1F) << 11); // r2 ptr = (u16 *)(VRAM + var); SOME_VRAM_STORE(ptr, posY - 2, posX, 0xF001); @@ -1733,7 +1733,7 @@ static bool8 Phase2_Clockwise_BlackFade_Func1(struct Task *task) { u16 i; - InitTransitionStructVars(); + sub_8149F08(); ScanlineEffect_Clear(); sTransitionStructPtr->WININ = 0; @@ -1900,7 +1900,7 @@ static bool8 Phase2_Clockwise_BlackFade_Func6(struct Task *task) static bool8 Phase2_Clockwise_BlackFade_Func7(struct Task *task) { DmaStop(0); - FadeScreenBlack(); + sub_8149F84(); DestroyTask(FindTaskIdByFunc(Phase2Task_Clockwise_BlackFade)); return FALSE; } @@ -1927,7 +1927,7 @@ static bool8 Phase2_Ripple_Func1(struct Task *task) { u8 i; - InitTransitionStructVars(); + sub_8149F08(); ScanlineEffect_Clear(); for (i = 0; i < 160; i++) @@ -1962,7 +1962,7 @@ static bool8 Phase2_Ripple_Func2(struct Task *task) for (i = 0; i < 160; i++, r4 += r8) { s16 var = r4 >> 8; - + var++; var--; gScanlineEffectRegBuffers[0][i] = sTransitionStructPtr->field_16 + Sin(var, r3); @@ -2005,7 +2005,7 @@ static bool8 Phase2_Wave_Func1(struct Task *task) { u8 i; - InitTransitionStructVars(); + sub_8149F08(); ScanlineEffect_Clear(); sTransitionStructPtr->WININ = 63; @@ -2057,7 +2057,7 @@ static bool8 Phase2_Wave_Func2(struct Task *task) static bool8 Phase2_Wave_Func3(struct Task *task) { DmaStop(0); - FadeScreenBlack(); + sub_8149F84(); DestroyTask(FindTaskIdByFunc(Phase2Task_Wave)); return FALSE; } @@ -2113,7 +2113,7 @@ static bool8 Phase2_Mugshot_Func1(struct Task *task) { u8 i; - InitTransitionStructVars(); + sub_8149F08(); ScanlineEffect_Clear(); Mugshots_CreateOpponentPlayerSprites(task); @@ -2138,20 +2138,20 @@ static bool8 Phase2_Mugshot_Func1(struct Task *task) static bool8 Phase2_Mugshot_Func2(struct Task *task) { s16 i, j; - u16 *tilemap, *tileset; - const u16 *mugshotsMap; + u16 *dst1, *dst2; + const u16 *MugshotsMap; - mugshotsMap = sMugshotsTilemap; - GetBg0TilesDst(&tilemap, &tileset); - CpuSet(sEliteFour_Tileset, tileset, 0xF0); + MugshotsMap = sMugshotsTilemap; + sub_8149F58(&dst1, &dst2); + CpuSet(sUnknown_085B9AF0, dst2, 0xF0); LoadPalette(sOpponentMugshotsPals[task->tMugshotId], 0xF0, 0x20); LoadPalette(sPlayerMugshotsPals[gSaveBlock2Ptr->playerGender], 0xFA, 0xC); for (i = 0; i < 20; i++) { - for (j = 0; j < 32; j++, mugshotsMap++) + for (j = 0; j < 32; j++, MugshotsMap++) { - tilemap[i * 32 + j] = *mugshotsMap | 0xF000; + dst1[i * 32 + j] = *MugshotsMap | 0xF000; } } @@ -2229,9 +2229,9 @@ static bool8 Phase2_Mugshot_Func4(struct Task *task) sTransitionStructPtr->BG0HOFS_1 -= 8; sTransitionStructPtr->BG0HOFS_2 += 8; - SetTrainerPicSlideTable(task->tOpponentSpriteId, 0); - SetTrainerPicSlideTable(task->tPlayerSpriteId, 1); - IncrementTrainerPicState(task->tOpponentSpriteId); + sub_8148484(task->tOpponentSpriteId, 0); + sub_8148484(task->tPlayerSpriteId, 1); + sub_814849C(task->tOpponentSpriteId); PlaySE(SE_BT_START); @@ -2243,10 +2243,10 @@ static bool8 Phase2_Mugshot_Func5(struct Task *task) { sTransitionStructPtr->BG0HOFS_1 -= 8; sTransitionStructPtr->BG0HOFS_2 += 8; - if (IsTrainerPicSlideDone(task->tOpponentSpriteId)) + if (sub_81484B8(task->tOpponentSpriteId)) { task->tState++; - IncrementTrainerPicState(task->tPlayerSpriteId); + sub_814849C(task->tPlayerSpriteId); } return FALSE; } @@ -2255,7 +2255,7 @@ static bool8 Phase2_Mugshot_Func6(struct Task *task) { sTransitionStructPtr->BG0HOFS_1 -= 8; sTransitionStructPtr->BG0HOFS_2 += 8; - if (IsTrainerPicSlideDone(task->tPlayerSpriteId)) + if (sub_81484B8(task->tPlayerSpriteId)) { sTransitionStructPtr->VBlank_DMA = FALSE; SetVBlankCallback(NULL); @@ -2317,7 +2317,7 @@ static bool8 Phase2_Mugshot_Func7(struct Task *task) static bool8 Phase2_Mugshot_Func8(struct Task *task) { sTransitionStructPtr->VBlank_DMA = FALSE; - BlendPalettes(0xFFFFFFFF, 0x10, RGB_WHITE); + BlendPalettes(-1, 0x10, 0x7FFF); sTransitionStructPtr->BLDCNT = 0xFF; task->tData3 = 0; @@ -2341,7 +2341,7 @@ static bool8 Phase2_Mugshot_Func9(struct Task *task) static bool8 Phase2_Mugshot_Func10(struct Task *task) { DmaStop(0); - FadeScreenBlack(); + sub_8149F84(); DestroyTask(FindTaskIdByFunc(task->func)); return FALSE; } @@ -2377,13 +2377,6 @@ static void HBlankCB_Phase2_Mugshots(void) REG_BG0HOFS = sTransitionStructPtr->BG0HOFS_2; } -// data fields for player/opponent sprites in mugshots -#define sState data[0] -#define sOffsetX data[1] -#define sOffsetX2 data[2] -#define sDone data[6] -#define sSlideTableId data[7] - static void Mugshots_CreateOpponentPlayerSprites(struct Task *task) { struct Sprite *opponentSprite, *playerSprite; @@ -2398,8 +2391,8 @@ static void Mugshots_CreateOpponentPlayerSprites(struct Task *task) opponentSprite = &gSprites[task->tOpponentSpriteId]; playerSprite = &gSprites[task->tPlayerSpriteId]; - opponentSprite->callback = SpriteCb_TrainerPic; - playerSprite->callback = SpriteCb_TrainerPic; + opponentSprite->callback = sub_8148380; + playerSprite->callback = sub_8148380; opponentSprite->oam.affineMode = ST_OAM_AFFINE_DOUBLE; playerSprite->oam.affineMode = ST_OAM_AFFINE_DOUBLE; @@ -2420,86 +2413,77 @@ static void Mugshots_CreateOpponentPlayerSprites(struct Task *task) SetOamMatrixRotationScaling(playerSprite->oam.matrixNum, -512, 512, 0); } -static void SpriteCb_TrainerPic(struct Sprite *sprite) +static void sub_8148380(struct Sprite *sprite) { - while (sTrainerPicSpriteCbs[sprite->sState](sprite)); + while (sUnknown_085C8C24[sprite->data[0]](sprite)); } -static bool8 TrainerPicCb_Nothing(struct Sprite *sprite) +static bool8 sub_81483A8(struct Sprite *sprite) { return FALSE; } -static bool8 TrainerPicCb_SetSlideOffsets(struct Sprite *sprite) +static bool8 sub_81483AC(struct Sprite *sprite) { - s16 offfsets1[ARRAY_COUNT(sTrainerPicSlideOffsets1)]; - s16 offfsets2[ARRAY_COUNT(sTrainerPicSlideOffsets2)]; + s16 arr0[2]; + s16 arr1[2]; - memcpy(offfsets1, sTrainerPicSlideOffsets1, sizeof(sTrainerPicSlideOffsets1)); - memcpy(offfsets2, sTrainerPicSlideOffsets2, sizeof(sTrainerPicSlideOffsets2)); + memcpy(arr0, sUnknown_085C8C40, sizeof(sUnknown_085C8C40)); + memcpy(arr1, sUnknown_085C8C44, sizeof(sUnknown_085C8C44)); - sprite->sState++; - sprite->sOffsetX = offfsets1[sprite->sSlideTableId]; - sprite->sOffsetX2 = offfsets2[sprite->sSlideTableId]; + sprite->data[0]++; + sprite->data[1] = arr0[sprite->data[7]]; + sprite->data[2] = arr1[sprite->data[7]]; return TRUE; } -// fast slide to around middle screen -static bool8 TrainerPicCb_Slide1(struct Sprite *sprite) +static bool8 sub_81483F8(struct Sprite *sprite) { - sprite->pos1.x += sprite->sOffsetX; - if (sprite->sSlideTableId && sprite->pos1.x < 133) - sprite->sState++; - else if (!sprite->sSlideTableId && sprite->pos1.x > 103) - sprite->sState++; + sprite->pos1.x += sprite->data[1]; + if (sprite->data[7] && sprite->pos1.x < 133) + sprite->data[0]++; + else if (!sprite->data[7] && sprite->pos1.x > 103) + sprite->data[0]++; return FALSE; } -// slower but accelerating slide -static bool8 TrainerPicCb_Slide2(struct Sprite *sprite) +static bool8 sub_814842C(struct Sprite *sprite) { - sprite->sOffsetX += sprite->sOffsetX2; - sprite->pos1.x += sprite->sOffsetX; - if (sprite->sOffsetX == 0) + sprite->data[1] += sprite->data[2]; + sprite->pos1.x += sprite->data[1]; + if (sprite->data[1] == 0) { - sprite->sState++; - sprite->sOffsetX2 = -sprite->sOffsetX2; - sprite->sDone = TRUE; + sprite->data[0]++; + sprite->data[2] = -sprite->data[2]; + sprite->data[6] = 1; } return FALSE; } -// Has no practical effect -static bool8 TrainerPicCb_Slide3(struct Sprite *sprite) +static bool8 sub_8148458(struct Sprite *sprite) { - sprite->sOffsetX += sprite->sOffsetX2; - sprite->pos1.x += sprite->sOffsetX; + sprite->data[1] += sprite->data[2]; + sprite->pos1.x += sprite->data[1]; if (sprite->pos1.x < -31 || sprite->pos1.x > 271) - sprite->sState++; + sprite->data[0]++; return FALSE; } -static void SetTrainerPicSlideTable(s16 spriteId, s16 arrId) +static void sub_8148484(s16 spriteId, s16 value) { - gSprites[spriteId].sSlideTableId = arrId; + gSprites[spriteId].data[7] = value; } -static void IncrementTrainerPicState(s16 spriteId) +static void sub_814849C(s16 spriteId) { - gSprites[spriteId].sState++; + gSprites[spriteId].data[0]++; } -static s16 IsTrainerPicSlideDone(s16 spriteId) +static s16 sub_81484B8(s16 spriteId) { - return gSprites[spriteId].sDone; + return gSprites[spriteId].data[6]; } -#undef sState -#undef sOffsetX -#undef sOffsetX2 -#undef sDone -#undef sSlideTableId - static void Phase2Task_Slice(u8 taskId) { while (sPhase2_Slice_Funcs[gTasks[taskId].tState](&gTasks[taskId])); @@ -2509,7 +2493,7 @@ static bool8 Phase2_Slice_Func1(struct Task *task) { u16 i; - InitTransitionStructVars(); + sub_8149F08(); ScanlineEffect_Clear(); task->tData2 = 256; @@ -2575,7 +2559,7 @@ static bool8 Phase2_Slice_Func2(struct Task *task) static bool8 Phase2_Slice_Func3(struct Task *task) { DmaStop(0); - FadeScreenBlack(); + sub_8149F84(); DestroyTask(FindTaskIdByFunc(Phase2Task_Slice)); return FALSE; } @@ -2612,7 +2596,7 @@ static bool8 Phase2_ShredSplit_Func1(struct Task *task) { u16 i; - InitTransitionStructVars(); + sub_8149F08(); ScanlineEffect_Clear(); sTransitionStructPtr->WININ = 63; @@ -2765,7 +2749,7 @@ static bool8 Phase2_ShredSplit_Func3(struct Task *task) static bool8 Phase2_ShredSplit_Func4(struct Task *task) { DmaStop(0); - FadeScreenBlack(); + sub_8149F84(); DestroyTask(FindTaskIdByFunc(Phase2Task_ShredSplit)); return FALSE; } @@ -2784,7 +2768,7 @@ static bool8 Phase2_Blackhole_Func1(struct Task *task) { s32 i; - InitTransitionStructVars(); + sub_8149F08(); ScanlineEffect_Clear(); sTransitionStructPtr->WININ = 0; @@ -2828,7 +2812,7 @@ static bool8 Phase2_Blackhole1_Func3(struct Task *task) if (task->tData1 == 0xA0) { task->tFuncState = 1; - FadeScreenBlack(); + sub_8149F84(); } else { @@ -2880,7 +2864,7 @@ static bool8 Phase2_Blackhole2_Func2(struct Task *task) if (task->tData1 == 0xA0) { DmaStop(0); - FadeScreenBlack(); + sub_8149F84(); DestroyTask(FindTaskIdByFunc(task->func)); } @@ -2913,12 +2897,12 @@ static void Phase2Task_RectangularSpiral(u8 taskId) static bool8 Phase2_RectangularSpiral_Func1(struct Task *task) { - u16 *tilemap, *tileset; + u16 *dst1, *dst2; - GetBg0TilesDst(&tilemap, &tileset); - CpuCopy16(sShrinkingBoxTileset, tileset, 0x20); - CpuCopy16(sShrinkingBoxTileset + 0x70, tileset + 0x20, 0x20); - CpuFill16(0xF000, tilemap, 0x800); + sub_8149F58(&dst1, &dst2); + CpuCopy16(sShrinkingBoxTileset, dst2, 0x20); + CpuCopy16(sShrinkingBoxTileset + 0x70, dst2 + 0x20, 0x20); + CpuFill16(0xF000, dst1, 0x800); LoadPalette(gFieldEffectObjectPalette10, 0xF0, 0x20); task->tData3 = 1; @@ -2953,12 +2937,12 @@ static bool8 Phase2_RectangularSpiral_Func1(struct Task *task) static bool8 Phase2_RectangularSpiral_Func2(struct Task *task) { - u16 *tilemap, *tileset; + u16 *dst1, *dst2; u8 i; u16 j; bool32 done = TRUE; - GetBg0TilesDst(&tilemap, &tileset); + sub_8149F58(&dst1, &dst2); for (i = 0; i < 2; i++) { @@ -2979,7 +2963,7 @@ static bool8 Phase2_RectangularSpiral_Func2(struct Task *task) var2 = var % 32; var3 = var / 32 * 32; - tilemap[var3 + var2] = 0xF002; + dst1[var3 + var2] = 0xF002; } } } @@ -2992,7 +2976,7 @@ static bool8 Phase2_RectangularSpiral_Func2(struct Task *task) static bool8 Phase2_RectangularSpiral_Func3(struct Task *task) { DmaStop(0); - FadeScreenBlack(); + sub_8149F84(); DestroyTask(FindTaskIdByFunc(task->func)); return FALSE; } @@ -3067,12 +3051,12 @@ static void Phase2Task_Groudon(u8 taskId) static bool8 Phase2_Groudon_Func3(struct Task *task) { - u16 *tilemap, *tileset; + u16 *dst1, *dst2; - GetBg0TilesDst(&tilemap, &tileset); - CpuFill16(0, tilemap, 0x800); - LZ77UnCompVram(sGroudon_Tileset, tileset); - LZ77UnCompVram(sGroudon_Tilemap, tilemap); + sub_8149F58(&dst1, &dst2); + CpuFill16(0, dst1, 0x800); + LZ77UnCompVram(gUnknown_085BE51C, dst2); + LZ77UnCompVram(gUnknown_085BEA88, dst1); task->tState++; task->tData1 = 0; @@ -3084,7 +3068,7 @@ static bool8 Phase2_Groudon_Func4(struct Task *task) if (task->tData1 % 3 == 0) { u16 var = (task->tData1 % 30) / 3; - LoadPalette(sGroudon1_Palette + (var * 16), 0xF0, 0x20); + LoadPalette(gUnknown_085BF0A0 + (var * 16), 0xF0, 0x20); } if (++task->tData1 > 58) { @@ -3100,7 +3084,7 @@ static bool8 Phase2_Groudon_Func5(struct Task *task) if (task->tData1 % 5 == 0) { s16 var = task->tData1 / 5; - LoadPalette(sGroudon2_Palette + (var * 16), 0xF0, 0x20); + LoadPalette(gUnknown_085BF2A0 + (var * 16), 0xF0, 0x20); } if (++task->tData1 > 68) { @@ -3119,20 +3103,20 @@ static void Phase2Task_Rayquaza(u8 taskId) static bool8 Phase2_Rayquaza_Func3(struct Task *task) { - u16 *tilemap, *tileset; + u16 *dst1, *dst2; u16 i; - InitTransitionStructVars(); + sub_8149F08(); ScanlineEffect_Clear(); SetGpuReg(REG_OFFSET_BG0CNT, 0x9A08); - GetBg0TilesDst(&tilemap, &tileset); - CpuFill16(0, tilemap, 0x800); - CpuCopy16(sRayquaza_Tileset, tileset, 0x2000); + sub_8149F58(&dst1, &dst2); + CpuFill16(0, dst1, 0x800); + CpuCopy16(gUnknown_085BF6A0, dst2, 0x2000); sTransitionStructPtr->field_20 = 0; task->tState++; - LoadPalette(sRayquaza_Palette + 0x50, 0xF0, 0x20); + LoadPalette(gUnknown_085BF4A0 + 0x50, 0xF0, 0x20); for (i = 0; i < 160; i++) { @@ -3146,10 +3130,10 @@ static bool8 Phase2_Rayquaza_Func3(struct Task *task) static bool8 Phase2_Rayquaza_Func4(struct Task *task) { - u16 *tilemap, *tileset; + u16 *dst1, *dst2; - GetBg0TilesDst(&tilemap, &tileset); - CpuCopy16(sRayquaza_Tilemap, tilemap, 0x1000); + sub_8149F58(&dst1, &dst2); + CpuCopy16(gUnknown_085C6BE0, dst1, 0x1000); task->tState++; return FALSE; } @@ -3159,7 +3143,7 @@ static bool8 Phase2_Rayquaza_Func5(struct Task *task) if ((task->tData1 % 4) == 0) { u16 value = task->tData1 / 4; - const u16 *palPtr = &sRayquaza_Palette[(value + 5) * 16]; + const u16 *palPtr = &gUnknown_085BF4A0[(value + 5) * 16]; LoadPalette(palPtr, 0xF0, 0x20); } if (++task->tData1 > 40) @@ -3208,7 +3192,7 @@ static bool8 Phase2_Rayquaza_Func9(struct Task *task) if ((task->tData1 % 3) == 0) { u16 value = task->tData1 / 3; - const u16 *palPtr = &sRayquaza_Palette[(value + 0) * 16]; + const u16 *palPtr = &gUnknown_085BF4A0[(value + 0) * 16]; LoadPalette(palPtr, 0xF0, 0x20); } if (++task->tData1 >= 40) @@ -3261,7 +3245,7 @@ static bool8 Phase2_WhiteFade_Func1(struct Task *task) { u16 i; - InitTransitionStructVars(); + sub_8149F08(); ScanlineEffect_Clear(); sTransitionStructPtr->BLDCNT = 0xBF; @@ -3338,7 +3322,7 @@ static bool8 Phase2_WhiteFade_Func5(struct Task *task) { if (++sTransitionStructPtr->BLDY > 16) { - FadeScreenBlack(); + sub_8149F84(); DestroyTask(FindTaskIdByFunc(Phase2Task_WhiteFade)); } return FALSE; @@ -3423,11 +3407,11 @@ static void Phase2Task_GridSquares(u8 taskId) static bool8 Phase2_GridSquares_Func1(struct Task *task) { - u16 *tilemap, *tileset; + u16 *dst1, *dst2; - GetBg0TilesDst(&tilemap, &tileset); - CpuSet(sShrinkingBoxTileset, tileset, 0x10); - CpuFill16(0xF000, tilemap, 0x800); + sub_8149F58(&dst1, &dst2); + CpuSet(sShrinkingBoxTileset, dst2, 0x10); + CpuFill16(0xF000, dst1, 0x800); LoadPalette(gFieldEffectObjectPalette10, 0xF0, 0x20); task->tState++; @@ -3436,14 +3420,14 @@ static bool8 Phase2_GridSquares_Func1(struct Task *task) static bool8 Phase2_GridSquares_Func2(struct Task *task) { - u16* tileset; + u16* dst1; if (task->tData1 == 0) { - GetBg0TilemapDst(&tileset); + sub_8149F40(&dst1); task->tData1 = 3; task->tData2++; - CpuSet(sShrinkingBoxTileset + (task->tData2 * 8), tileset, 0x10); + CpuSet(sShrinkingBoxTileset + (task->tData2 * 8), dst1, 0x10); if (task->tData2 > 0xD) { task->tState++; @@ -3459,7 +3443,7 @@ static bool8 Phase2_GridSquares_Func3(struct Task *task) { if (--task->tData1 == 0) { - FadeScreenBlack(); + sub_8149F84(); DestroyTask(FindTaskIdByFunc(Phase2Task_GridSquares)); } return FALSE; @@ -3474,7 +3458,7 @@ static bool8 Phase2_Shards_Func1(struct Task *task) { u16 i; - InitTransitionStructVars(); + sub_8149F08(); ScanlineEffect_Clear(); sTransitionStructPtr->WININ = 0x3F; @@ -3556,7 +3540,7 @@ static bool8 Phase2_Shards_Func4(struct Task *task) else { DmaStop(0); - FadeScreenBlack(); + sub_8149F84(); DestroyTask(FindTaskIdByFunc(Phase2Task_Shards)); return FALSE; } @@ -3569,8 +3553,8 @@ static bool8 Phase2_Shards_Func5(struct Task *task) task->tState = 1; return TRUE; } - - return FALSE; + else + return FALSE; } static void VBlankCB_Phase2_Shards(void) @@ -3681,7 +3665,7 @@ static bool8 Phase1_TransitionAll_Func2(struct Task *task) #undef tData6 #undef tData7 -static void InitTransitionStructVars(void) +static void sub_8149F08(void) { memset(sTransitionStructPtr, 0, sizeof(*sTransitionStructPtr)); sub_8089C08(&sTransitionStructPtr->field_14, &sTransitionStructPtr->field_16); @@ -3694,28 +3678,37 @@ static void VBlankCB_BattleTransition(void) TransferPlttBuffer(); } -static void GetBg0TilemapDst(u16 **tileset) +static void sub_8149F40(u16 **a0) { - u16 charBase = REG_BG0CNT >> 2; - charBase <<= 0xE; - *tileset = (u16*)(VRAM + charBase); + u16 reg, *vram; + + reg = REG_BG0CNT >> 2; + reg <<= 0xE; + vram = (u16*)(VRAM + reg); + + *a0 = vram; } -void GetBg0TilesDst(u16 **tilemap, u16 **tileset) +void sub_8149F58(u16 **a0, u16 **a1) { - u16 screenBase = REG_BG0CNT >> 8; - u16 charBase = REG_BG0CNT >> 2; + u16 reg0, reg1, *vram0, *vram1; + + reg0 = REG_BG0CNT >> 8; + reg1 = REG_BG0CNT >> 2; + + reg0 <<= 0xB; + reg1 <<= 0xE; - screenBase <<= 0xB; - charBase <<= 0xE; + vram0 = (u16*)(VRAM + reg0); + *a0 = vram0; - *tilemap = (u16*)(VRAM + screenBase); - *tileset = (u16*)(VRAM + charBase); + vram1 = (u16*)(VRAM + reg1); + *a1 = vram1; } -static void FadeScreenBlack(void) +static void sub_8149F84(void) { - BlendPalettes(0xFFFFFFFF, 16, RGB_BLACK); + BlendPalettes(-1, 0x10, 0); } static void sub_8149F98(s16 *array, s16 sinAdd, s16 index, s16 indexIncrementer, s16 amplitude, s16 arrSize) @@ -3858,12 +3851,12 @@ static bool8 sub_814A228(s16 *data, bool8 a1, bool8 a2) static bool8 Phase2_29_Func1(struct Task *task) { - u16 *tilemap, *tileset; + u16 *dst1, *dst2; sub_814669C(task); - GetBg0TilesDst(&tilemap, &tileset); - CpuFill16(0, tilemap, 0x800); - LZ77UnCompVram(gUnknown_085C7C00, tileset); + sub_8149F58(&dst1, &dst2); + CpuFill16(0, dst1, 0x800); + LZ77UnCompVram(gUnknown_085C7C00, dst2); LoadPalette(gUnknown_085C7BE0, 0xF0, 0x20); task->tState++; @@ -3872,10 +3865,10 @@ static bool8 Phase2_29_Func1(struct Task *task) static bool8 Phase2_29_Func2(struct Task *task) { - u16 *tilemap, *tileset; + u16 *dst1, *dst2; - GetBg0TilesDst(&tilemap, &tileset); - LZ77UnCompVram(gUnknown_085C828C, tilemap); + sub_8149F58(&dst1, &dst2); + LZ77UnCompVram(gUnknown_085C828C, dst1); sub_8149F98(gScanlineEffectRegBuffers[0], 0, task->tData4, 0x84, task->tData5, 160); task->tState++; @@ -3894,9 +3887,9 @@ static void Phase2Task_30(u8 taskId) static bool8 Phase2_30_Func1(struct Task *task) { - u16 *tilemap, *tileset; + u16 *dst1, *dst2; - InitTransitionStructVars(); + sub_8149F08(); ScanlineEffect_Clear(); ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON | DISPCNT_WIN1_ON); task->tData2 = 0x2000; @@ -3908,9 +3901,9 @@ static bool8 Phase2_30_Func1(struct Task *task) sTransitionStructPtr->BLDALPHA = (task->tData6 << 8) | (task->tData5); REG_BLDCNT = sTransitionStructPtr->BLDCNT; REG_BLDALPHA = sTransitionStructPtr->BLDALPHA; - GetBg0TilesDst(&tilemap, &tileset); - CpuFill16(0, tilemap, 0x800); - LZ77UnCompVram(gUnknown_085C7C00, tileset); + sub_8149F58(&dst1, &dst2); + CpuFill16(0, dst1, 0x800); + LZ77UnCompVram(gUnknown_085C7C00, dst2); LoadPalette(gUnknown_085C7BE0, 0xF0, 0x20); sTransitionStructPtr->field_16 = 0; @@ -3920,10 +3913,10 @@ static bool8 Phase2_30_Func1(struct Task *task) static bool8 Phase2_30_Func2(struct Task *task) { - u16 *tilemap, *tileset; + u16 *dst1, *dst2; - GetBg0TilesDst(&tilemap, &tileset); - LZ77UnCompVram(gUnknown_085C828C, tilemap); + sub_8149F58(&dst1, &dst2); + LZ77UnCompVram(gUnknown_085C828C, dst1); task->tState++; return TRUE; @@ -4031,10 +4024,10 @@ static void Phase2Task_32(u8 taskId) static bool8 Phase2_31_Func1(struct Task *task) { - u16 *tilemap, *tileset; + u16 *dst1, *dst2; - GetBg0TilesDst(&tilemap, &tileset); - LZ77UnCompVram(gUnknown_085C8598, tileset); + sub_8149F58(&dst1, &dst2); + LZ77UnCompVram(gUnknown_085C8598, dst2); FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 0x20, 0x20); FillBgTilemapBufferRect(0, 1, 0, 0, 1, 0x20, 0xF); @@ -4072,9 +4065,9 @@ static bool8 Phase2_31_Func2(struct Task *task) static bool8 Phase2_31_Func3(struct Task *task) { u8 i; - u16 *tilemap, *tileset; + u16 *dst1, *dst2; - GetBg0TilesDst(&tilemap, &tileset); + sub_8149F58(&dst1, &dst2); if (task->tData6++ >= task->tData7) { switch (task->tData5) @@ -4088,13 +4081,13 @@ static bool8 Phase2_31_Func3(struct Task *task) break; case 1: BlendPalettes(0xFFFF7FFF, 0x10, 0); - LZ77UnCompVram(gUnknown_085C86F4, tileset); + LZ77UnCompVram(gUnknown_085C86F4, dst2); break; case 2: - LZ77UnCompVram(gUnknown_085C87F4, tileset); + LZ77UnCompVram(gUnknown_085C87F4, dst2); break; case 3: - LZ77UnCompVram(gUnknown_085C88A4, tileset); + LZ77UnCompVram(gUnknown_085C88A4, dst2); break; default: FillBgTilemapBufferRect_Palette0(0, 1, 0, 0, 0x20, 0x20); @@ -4112,10 +4105,10 @@ static bool8 Phase2_31_Func3(struct Task *task) static bool8 Phase2_33_Func1(struct Task *task) { - u16 *tilemap, *tileset; + u16 *dst1, *dst2; - GetBg0TilesDst(&tilemap, &tileset); - LZ77UnCompVram(gUnknown_085C8598, tileset); + sub_8149F58(&dst1, &dst2); + LZ77UnCompVram(gUnknown_085C8598, dst2); FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 0x20, 0x20); FillBgTilemapBufferRect(0, 1, 0, 0, 1, 0x20, 0xF); @@ -4228,10 +4221,10 @@ static void sub_814ABE4(u8 taskId) static bool8 Phase2_32_Func1(struct Task *task) { u8 taskId = 0; - u16 *tilemap, *tileset; + u16 *dst1, *dst2; - GetBg0TilesDst(&tilemap, &tileset); - LZ77UnCompVram(gUnknown_085C8598, tileset); + sub_8149F58(&dst1, &dst2); + LZ77UnCompVram(gUnknown_085C8598, dst2); FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 0x20, 0x20); CopyBgTilemapBufferToVram(0); LoadPalette(gUnknown_085C8578, 0xF0, 0x20); diff --git a/src/unk_transition.c b/src/unk_transition.c index b485ef350..09e194be3 100644 --- a/src/unk_transition.c +++ b/src/unk_transition.c @@ -185,11 +185,11 @@ static const TransitionStateFunc sPhase2_41_Funcs[] = // code static void sub_81DA700(void) { - u16 *tilemap, *tileset; + u16 *dst1, *dst2; - GetBg0TilesDst(&tilemap, &tileset); - LZ77UnCompVram(gUnknown_0862AD54, tileset); - LZ77UnCompVram(gUnknown_0862AF30, tilemap); + sub_8149F58(&dst1, &dst2); + LZ77UnCompVram(gUnknown_0862AD54, dst2); + LZ77UnCompVram(gUnknown_0862AF30, dst1); LoadPalette(gUnknown_0862B53C, 0xF0, 0x20); LoadCompressedSpriteSheet(&sUnknown_0862B724); LoadSpritePalette(&sUnknown_0862B72C); -- cgit v1.2.3 From f608ae9f7014d734d6c9bf955218ab82763fbda1 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Tue, 2 Jun 2020 13:30:05 +0200 Subject: make battle transition OK ok Ok oK --- graphics_file_rules.mk | 2 +- src/battle_transition.c | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/graphics_file_rules.mk b/graphics_file_rules.mk index c53033f4c..d56dec32c 100644 --- a/graphics_file_rules.mk +++ b/graphics_file_rules.mk @@ -489,7 +489,7 @@ $(ROULETTEGFXDIR)/poke_icons2.4bpp: $(ROULETTEGFXDIR)/wynaut.4bpp \ $(ROULETTEGFXDIR)/makuhita.4bpp @cat $^ >$@ -$(BATTRANSGFXDIR)/85BBC14.4bpp: %.4bpp: %.png +$(BATTRANSGFXDIR)/regis.4bpp: %.4bpp: %.png $(GFX) $< $@ -num_tiles 53 $(BATTRANSGFXDIR)/rayquaza.4bpp: %.4bpp: %.png diff --git a/src/battle_transition.c b/src/battle_transition.c index ea9ac1e89..e76a3a34c 100644 --- a/src/battle_transition.c +++ b/src/battle_transition.c @@ -278,15 +278,15 @@ static const u32 sEliteFour_Tileset[] = INCBIN_U32("graphics/battle_transitions/ static const u8 sUnusedBrendan_Gfx[] = INCBIN_U8("graphics/battle_transitions/unused_brendan.4bpp"); static const u8 sUnusedLass_Gfx[] = INCBIN_U8("graphics/battle_transitions/unused_lass.4bpp"); static const u32 sShrinkingBoxTileset[] = INCBIN_U32("graphics/battle_transitions/shrinking_box.4bpp"); -static const u32 sEvilTeam_Palette[] = INCBIN_U32("graphics/battle_transitions/evil_team.gbapal"); +static const u16 sEvilTeam_Palette[] = INCBIN_U16("graphics/battle_transitions/evil_team.gbapal"); static const u32 sTeamAqua_Tileset[] = INCBIN_U32("graphics/battle_transitions/team_aqua.4bpp.lz"); static const u32 sTeamAqua_Tilemap[] = INCBIN_U32("graphics/battle_transitions/team_aqua.bin.lz"); static const u32 sTeamMagma_Tileset[] = INCBIN_U32("graphics/battle_transitions/team_magma.4bpp.lz"); static const u32 sTeamMagma_Tilemap[] = INCBIN_U32("graphics/battle_transitions/team_magma.bin.lz"); static const u32 sRegis_Tileset[] = INCBIN_U32("graphics/battle_transitions/regis.4bpp"); -static const u32 sRegice_Palette[] = INCBIN_U32("graphics/battle_transitions/regice.gbapal"); -static const u32 sRegisteel_Palette[] = INCBIN_U32("graphics/battle_transitions/registeel.gbapal"); -static const u32 sRegirock_Palette[] = INCBIN_U32("graphics/battle_transitions/regirock.gbapal"); +static const u16 sRegice_Palette[] = INCBIN_U16("graphics/battle_transitions/regice.gbapal"); +static const u16 sRegisteel_Palette[] = INCBIN_U16("graphics/battle_transitions/registeel.gbapal"); +static const u16 sRegirock_Palette[] = INCBIN_U16("graphics/battle_transitions/regirock.gbapal"); static const u32 sRegice_Tilemap[] = INCBIN_U32("graphics/battle_transitions/regice.bin"); static const u32 sRegisteel_Tilemap[] = INCBIN_U32("graphics/battle_transitions/registeel.bin"); static const u32 sRegirock_Tilemap[] = INCBIN_U32("graphics/battle_transitions/regirock.bin"); @@ -302,10 +302,10 @@ static const u16 sGroudon2_Palette[] = INCBIN_U16("graphics/battle_transitions/g static const u16 sRayquaza_Palette[] = INCBIN_U16("graphics/battle_transitions/rayquaza.gbapal"); static const u32 sRayquaza_Tileset[] = INCBIN_U32("graphics/battle_transitions/rayquaza.4bpp"); static const u32 sRayquaza_Tilemap[] = INCBIN_U32("graphics/battle_transitions/rayquaza.bin"); -static const u32 gUnknown_085C7BE0[] = INCBIN_U32("graphics/battle_transitions/frontier_brain.gbapal"); +static const u16 gUnknown_085C7BE0[] = INCBIN_U16("graphics/battle_transitions/frontier_brain.gbapal"); static const u32 gUnknown_085C7C00[] = INCBIN_U32("graphics/battle_transitions/frontier_brain.4bpp.lz"); static const u32 gUnknown_085C828C[] = INCBIN_U32("graphics/battle_transitions/frontier_brain.bin.lz"); -static const u32 gUnknown_085C8578[] = INCBIN_U32("graphics/battle_transitions/frontier_squares_blanktiles.gbapal"); +static const u16 gUnknown_085C8578[] = INCBIN_U16("graphics/battle_transitions/frontier_squares_blanktiles.gbapal"); static const u32 gUnknown_085C8598[] = INCBIN_U32("graphics/battle_transitions/frontier_square_1.4bpp.lz"); static const u32 gUnknown_085C86F4[] = INCBIN_U32("graphics/battle_transitions/frontier_square_2.4bpp.lz"); static const u32 gUnknown_085C87F4[] = INCBIN_U32("graphics/battle_transitions/frontier_square_3.4bpp.lz"); -- cgit v1.2.3 From 0690abd5a4325811937d88019d728a4fcbe71b50 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Tue, 2 Jun 2020 17:28:47 +0200 Subject: its time to ddddddduel --- include/battle_transition.h | 2 +- src/unk_transition.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/include/battle_transition.h b/include/battle_transition.h index db06a5638..0f583b101 100644 --- a/include/battle_transition.h +++ b/include/battle_transition.h @@ -7,7 +7,7 @@ void BattleTransition_Start(u8 transitionId); bool8 IsBattleTransitionDone(void); bool8 FldEff_Pokeball(void); void TransitionPhase1_Task_RunFuncs(u8 taskId); -void sub_8149F58(u16 **a0, u16 **a1); +void GetBg0TilesDst(u16 **tilemap, u16 **tileset); extern const struct SpritePalette gFieldEffectObjectPaletteInfo10; diff --git a/src/unk_transition.c b/src/unk_transition.c index 09e194be3..dff165bc9 100644 --- a/src/unk_transition.c +++ b/src/unk_transition.c @@ -187,7 +187,7 @@ static void sub_81DA700(void) { u16 *dst1, *dst2; - sub_8149F58(&dst1, &dst2); + GetBg0TilesDst(&dst1, &dst2); LZ77UnCompVram(gUnknown_0862AD54, dst2); LZ77UnCompVram(gUnknown_0862AF30, dst1); LoadPalette(gUnknown_0862B53C, 0xF0, 0x20); -- cgit v1.2.3 From aaf5d91c18727f9a542f90ec0e7ca5a5f6247815 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Wed, 3 Jun 2020 18:25:16 -0400 Subject: Document field_message_box.c --- include/field_message_box.h | 6 +-- include/match_call.h | 2 +- src/battle_setup.c | 4 +- src/cable_club.c | 2 +- src/field_message_box.c | 109 ++++++++++++++++++++++++-------------------- src/match_call.c | 2 +- src/scrcmd.c | 2 +- src/trainer_hill.c | 2 +- 8 files changed, 69 insertions(+), 60 deletions(-) diff --git a/include/field_message_box.h b/include/field_message_box.h index 58f782d9c..34b3324e7 100644 --- a/include/field_message_box.h +++ b/include/field_message_box.h @@ -10,13 +10,13 @@ enum }; bool8 ShowFieldMessage(const u8 *message); -bool8 sub_8098238(const u8 *message); -bool8 sub_80982B8(void); +bool8 ShowPokenavFieldMessage(const u8 *message); +bool8 ShowFieldMessageFromBuffer(void); bool8 ShowFieldAutoScrollMessage(const u8 *message); void HideFieldMessageBox(void); bool8 IsFieldMessageBoxHidden(void); u8 GetFieldMessageBoxMode(void); -void sub_8098374(void); +void StopFieldMessage(void); void InitFieldMessageBox(void); #endif // GUARD_FIELD_MESSAGE_BOX_H diff --git a/include/match_call.h b/include/match_call.h index 8214e03b7..bc5f374bd 100644 --- a/include/match_call.h +++ b/include/match_call.h @@ -14,7 +14,7 @@ s32 GetRematchIdxByTrainerIdx(s32 trainerIdx); void InitMatchCallCounters(void); bool32 TryStartMatchCall(void); bool32 IsMatchCallTaskActive(void); -void StartMatchCallFromScript(u8 *message); +void StartMatchCallFromScript(const u8 *message); void BufferPokedexRatingForMatchCall(u8 *destStr); bool32 SelectMatchCallMessage(int, u8 *); void sub_8197184(u32 windowId, u32 destOffset, u32 paletteId); diff --git a/src/battle_setup.c b/src/battle_setup.c index b44c7b9ec..40e36d302 100644 --- a/src/battle_setup.c +++ b/src/battle_setup.c @@ -1360,7 +1360,7 @@ void ShowTrainerIntroSpeech(void) else CopyPyramidTrainerSpeechBefore(LocalIdToPyramidTrainerId(gObjectEvents[gApproachingTrainers[gApproachingTrainerId].objectEventId].localId)); - sub_80982B8(); + ShowFieldMessageFromBuffer(); } else if (InTrainerHillChallenge()) { @@ -1369,7 +1369,7 @@ void ShowTrainerIntroSpeech(void) else CopyTrainerHillTrainerText(TRAINER_HILL_TEXT_INTRO, LocalIdToHillTrainerId(gObjectEvents[gApproachingTrainers[gApproachingTrainerId].objectEventId].localId)); - sub_80982B8(); + ShowFieldMessageFromBuffer(); } else { diff --git a/src/cable_club.c b/src/cable_club.c index c2ac72883..b9c948a9c 100644 --- a/src/cable_club.c +++ b/src/cable_club.c @@ -524,7 +524,7 @@ static void sub_80B2CEC(u8 taskId) { gSpecialVar_Result = 5; sub_80B241C(gTasks[taskId].data[5]); - sub_8098374(); + StopFieldMessage(); RemoveWindow(gTasks[taskId].data[5]); EnableBothScriptContexts(); DestroyTask(taskId); diff --git a/src/field_message_box.c b/src/field_message_box.c index be76b0c19..1b760c7df 100755 --- a/src/field_message_box.c +++ b/src/field_message_box.c @@ -5,128 +5,136 @@ #include "task.h" #include "text.h" #include "match_call.h" +#include "field_message_box.h" static EWRAM_DATA u8 sFieldMessageBoxMode = 0; -static void textbox_fdecode_auto_and_task_add(u8*, bool32); -static void textbox_auto_and_task_add(void); +static void ExpandStringAndStartDrawFieldMessage(const u8*, bool32); +static void StartDrawFieldMessage(void); void InitFieldMessageBox(void) { - sFieldMessageBoxMode = 0; - gTextFlags.canABSpeedUpPrint = 0; - gTextFlags.useAlternateDownArrow = 0; - gTextFlags.autoScroll = 0; - gTextFlags.forceMidTextSpeed = 0; + sFieldMessageBoxMode = FIELD_MESSAGE_BOX_HIDDEN; + gTextFlags.canABSpeedUpPrint = FALSE; + gTextFlags.useAlternateDownArrow = FALSE; + gTextFlags.autoScroll = FALSE; + gTextFlags.forceMidTextSpeed = FALSE; } -static void sub_8098154(u8 taskId) +#define tState data[0] + +static void Task_DrawFieldMessage(u8 taskId) { struct Task *task = &gTasks[taskId]; - switch (task->data[0]) + switch (task->tState) { case 0: LoadMessageBoxAndBorderGfx(); - task->data[0]++; + task->tState++; break; case 1: DrawDialogueFrame(0, 1); - task->data[0]++; + task->tState++; break; case 2: - if (RunTextPrintersAndIsPrinter0Active() != 1) + if (RunTextPrintersAndIsPrinter0Active() != TRUE) { - sFieldMessageBoxMode = 0; + sFieldMessageBoxMode = FIELD_MESSAGE_BOX_HIDDEN; DestroyTask(taskId); } } } -static void task_add_textbox(void) +#undef tState + +static void CreateTask_DrawFieldMessage(void) { - CreateTask(sub_8098154, 0x50); + CreateTask(Task_DrawFieldMessage, 0x50); } -static void task_del_textbox(void) +static void DestroyTask_DrawFieldMessage(void) { - u8 taskId = FindTaskIdByFunc(sub_8098154); + u8 taskId = FindTaskIdByFunc(Task_DrawFieldMessage); if (taskId != 0xFF) DestroyTask(taskId); } -bool8 ShowFieldMessage(u8 *str) +bool8 ShowFieldMessage(const u8 *str) { - if (sFieldMessageBoxMode != 0) + if (sFieldMessageBoxMode != FIELD_MESSAGE_BOX_HIDDEN) return FALSE; - textbox_fdecode_auto_and_task_add(str, 1); - sFieldMessageBoxMode = 2; + ExpandStringAndStartDrawFieldMessage(str, TRUE); + sFieldMessageBoxMode = FIELD_MESSAGE_BOX_NORMAL; return TRUE; } -void sub_8098214(u8 taskId) +static void Task_HidePokenavMessageWhenDone(u8 taskId) { if (!IsMatchCallTaskActive()) { - sFieldMessageBoxMode = 0; + sFieldMessageBoxMode = FIELD_MESSAGE_BOX_HIDDEN; DestroyTask(taskId); } } -bool8 sub_8098238(u8 *str) +bool8 ShowPokenavFieldMessage(const u8 *str) { - if (sFieldMessageBoxMode != 0) + if (sFieldMessageBoxMode != FIELD_MESSAGE_BOX_HIDDEN) return FALSE; StringExpandPlaceholders(gStringVar4, str); - CreateTask(sub_8098214, 0); + CreateTask(Task_HidePokenavMessageWhenDone, 0); StartMatchCallFromScript(str); sFieldMessageBoxMode = 2; return TRUE; } -bool8 ShowFieldAutoScrollMessage(u8 *str) +bool8 ShowFieldAutoScrollMessage(const u8 *str) { - if (sFieldMessageBoxMode != 0) + if (sFieldMessageBoxMode != FIELD_MESSAGE_BOX_HIDDEN) return FALSE; - sFieldMessageBoxMode = 3; - textbox_fdecode_auto_and_task_add(str, 0); + sFieldMessageBoxMode = FIELD_MESSAGE_BOX_AUTO_SCROLL; + ExpandStringAndStartDrawFieldMessage(str, FALSE); return TRUE; } -bool8 sub_80982A0(u8 *str) +// Unused +static bool8 ForceShowFieldAutoScrollMessage(const u8 *str) { - sFieldMessageBoxMode = 3; - textbox_fdecode_auto_and_task_add(str, 1); + sFieldMessageBoxMode = FIELD_MESSAGE_BOX_AUTO_SCROLL; + ExpandStringAndStartDrawFieldMessage(str, TRUE); return TRUE; } -bool8 sub_80982B8(void) +// Same as ShowFieldMessage, but instead of accepting a +// string arg it just prints whats already in gStringVar4 +bool8 ShowFieldMessageFromBuffer(void) { - if (sFieldMessageBoxMode != 0) + if (sFieldMessageBoxMode != FIELD_MESSAGE_BOX_HIDDEN) return FALSE; - sFieldMessageBoxMode = 2; - textbox_auto_and_task_add(); + sFieldMessageBoxMode = FIELD_MESSAGE_BOX_NORMAL; + StartDrawFieldMessage(); return TRUE; } -static void textbox_fdecode_auto_and_task_add(u8* str, bool32 allowSkippingDelayWithButtonPress) +static void ExpandStringAndStartDrawFieldMessage(const u8* str, bool32 allowSkippingDelayWithButtonPress) { StringExpandPlaceholders(gStringVar4, str); AddTextPrinterForMessage(allowSkippingDelayWithButtonPress); - task_add_textbox(); + CreateTask_DrawFieldMessage(); } -static void textbox_auto_and_task_add(void) +static void StartDrawFieldMessage(void) { AddTextPrinterForMessage(TRUE); - task_add_textbox(); + CreateTask_DrawFieldMessage(); } void HideFieldMessageBox(void) { - task_del_textbox(); + DestroyTask_DrawFieldMessage(); ClearDialogWindowAndFrame(0, 1); - sFieldMessageBoxMode = 0; + sFieldMessageBoxMode = FIELD_MESSAGE_BOX_HIDDEN; } u8 GetFieldMessageBoxMode(void) @@ -136,20 +144,21 @@ u8 GetFieldMessageBoxMode(void) bool8 IsFieldMessageBoxHidden(void) { - if (sFieldMessageBoxMode == 0) + if (sFieldMessageBoxMode == FIELD_MESSAGE_BOX_HIDDEN) return TRUE; return FALSE; } -void sub_8098358(void) +// Unused +static void ReplaceFieldMessageWithFrame(void) { - task_del_textbox(); + DestroyTask_DrawFieldMessage(); DrawStdWindowFrame(0, 1); - sFieldMessageBoxMode = 0; + sFieldMessageBoxMode = FIELD_MESSAGE_BOX_HIDDEN; } -void sub_8098374(void) +void StopFieldMessage(void) { - task_del_textbox(); - sFieldMessageBoxMode = 0; + DestroyTask_DrawFieldMessage(); + sFieldMessageBoxMode = FIELD_MESSAGE_BOX_HIDDEN; } diff --git a/src/match_call.c b/src/match_call.c index 9d8523576..033276684 100644 --- a/src/match_call.c +++ b/src/match_call.c @@ -1098,7 +1098,7 @@ bool32 TryStartMatchCall(void) return FALSE; } -void StartMatchCallFromScript(u8 *message) +void StartMatchCallFromScript(const u8 *message) { gMatchCallState.triggeredFromScript = 1; StartMatchCall(); diff --git a/src/scrcmd.c b/src/scrcmd.c index ad01791a9..9e62c45c5 100644 --- a/src/scrcmd.c +++ b/src/scrcmd.c @@ -1282,7 +1282,7 @@ bool8 ScrCmd_pokenavcall(struct ScriptContext *ctx) if (msg == NULL) msg = (const u8 *)ctx->data[0]; - sub_8098238(msg); + ShowPokenavFieldMessage(msg); return FALSE; } diff --git a/src/trainer_hill.c b/src/trainer_hill.c index 87866b02e..d6cb49837 100644 --- a/src/trainer_hill.c +++ b/src/trainer_hill.c @@ -904,7 +904,7 @@ const u8 *GetTrainerHillTrainerScript(void) static void ShowTrainerHillPostBattleText(void) { CopyTrainerHillTrainerText(TRAINER_HILL_TEXT_AFTER, gSpecialVar_LastTalked); - sub_80982B8(); + ShowFieldMessageFromBuffer(); } static void CreateNPCTrainerHillParty(u16 trainerId, u8 firstMonId) -- cgit v1.2.3 From 5d752bbe49f5d559932fdfbb2247fb72199e0c2a Mon Sep 17 00:00:00 2001 From: SBird Date: Wed, 3 Jun 2020 14:26:22 +0200 Subject: shop: document some constants s.t. object events don't break --- include/shop.h | 2 +- src/shop.c | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/include/shop.h b/include/shop.h index 164d6f3c2..c338103b4 100644 --- a/include/shop.h +++ b/include/shop.h @@ -41,7 +41,7 @@ struct ShopData /*0x200B*/ u8 scrollIndicatorsTaskId; /*0x200C*/ u8 iconSlot; /*0x200D*/ u8 itemSpriteIds[2]; - /*0x2010*/ s16 viewportObjects[16][5]; + /*0x2010*/ s16 viewportObjects[OBJECT_EVENTS_COUNT][5]; }; void CreatePokemartMenu(const u16 *); diff --git a/src/shop.c b/src/shop.c index a4d1939cb..849beeabc 100755 --- a/src/shop.c +++ b/src/shop.c @@ -796,15 +796,15 @@ static void BuyMenuCollectObjectEventData(void) u8 r8 = 0; GetXYCoordsOneStepInFrontOfPlayer(&facingX, &facingY); - for (y = 0; y < 16; y++) - gShopDataPtr->viewportObjects[y][OBJ_EVENT_ID] = 16; + for (y = 0; y < OBJECT_EVENTS_COUNT; y++) + gShopDataPtr->viewportObjects[y][OBJ_EVENT_ID] = OBJECT_EVENTS_COUNT; for (y = 0; y < 5; y++) { for (x = 0; x < 7; x++) { u8 objEventId = GetObjectEventIdByXY(facingX - 4 + x, facingY - 2 + y); - if (objEventId != 16) + if (objEventId != OBJECT_EVENTS_COUNT) { gShopDataPtr->viewportObjects[r8][OBJ_EVENT_ID] = objEventId; gShopDataPtr->viewportObjects[r8][X_COORD] = x; @@ -839,9 +839,9 @@ static void BuyMenuDrawObjectEvents(void) u8 spriteId; const struct ObjectEventGraphicsInfo *graphicsInfo; - for (i = 0; i < 16; i++) // max objects? + for (i = 0; i < OBJECT_EVENTS_COUNT; i++) // max objects? { - if (gShopDataPtr->viewportObjects[i][OBJ_EVENT_ID] == 16) + if (gShopDataPtr->viewportObjects[i][OBJ_EVENT_ID] == OBJECT_EVENTS_COUNT) continue; graphicsInfo = GetObjectEventGraphicsInfo(gObjectEvents[gShopDataPtr->viewportObjects[i][OBJ_EVENT_ID]].graphicsId); -- cgit v1.2.3 From 675f5ac03e97cb788feb178674a424246ef26bc6 Mon Sep 17 00:00:00 2001 From: huderlem Date: Wed, 3 Jun 2020 19:49:05 -0500 Subject: Remove unnecessary comment --- src/shop.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/shop.c b/src/shop.c index 849beeabc..73b1cd4e2 100755 --- a/src/shop.c +++ b/src/shop.c @@ -839,7 +839,7 @@ static void BuyMenuDrawObjectEvents(void) u8 spriteId; const struct ObjectEventGraphicsInfo *graphicsInfo; - for (i = 0; i < OBJECT_EVENTS_COUNT; i++) // max objects? + for (i = 0; i < OBJECT_EVENTS_COUNT; i++) { if (gShopDataPtr->viewportObjects[i][OBJ_EVENT_ID] == OBJECT_EVENTS_COUNT) continue; -- cgit v1.2.3 From 760baec098f831dbefff9f6d2b86767a802e0394 Mon Sep 17 00:00:00 2001 From: PokeCF <65613390+PokeCF@users.noreply.github.com> Date: Mon, 8 Jun 2020 17:09:54 -0400 Subject: Unnest if statements Overall, it is generally considered bad style to continually nest loops. However, if this is what the decompiler outputted, then why bother touching it? However, this can be rewritten as returning early if the playtime is less than 60. The reason for this is not because of the original code, but because it looks better, has the same output, and is easier to understand. --- src/play_time.c | 50 +++++++++++++++++++++++++------------------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/src/play_time.c b/src/play_time.c index 27a57f28b..97f4ac22f 100644 --- a/src/play_time.c +++ b/src/play_time.c @@ -35,31 +35,31 @@ void PlayTimeCounter_Stop(void) void PlayTimeCounter_Update(void) { - if (sPlayTimeCounterState == RUNNING) - { - gSaveBlock2Ptr->playTimeVBlanks++; - - if (gSaveBlock2Ptr->playTimeVBlanks > 59) - { - gSaveBlock2Ptr->playTimeVBlanks = 0; - gSaveBlock2Ptr->playTimeSeconds++; - - if (gSaveBlock2Ptr->playTimeSeconds > 59) - { - gSaveBlock2Ptr->playTimeSeconds = 0; - gSaveBlock2Ptr->playTimeMinutes++; - - if (gSaveBlock2Ptr->playTimeMinutes > 59) - { - gSaveBlock2Ptr->playTimeMinutes = 0; - gSaveBlock2Ptr->playTimeHours++; - - if (gSaveBlock2Ptr->playTimeHours > 999) - PlayTimeCounter_SetToMax(); - } - } - } - } + if (sPlayTimeCounterState != RUNNING) + return; + + gSaveBlock2Ptr->playTimeVBlanks++; + + if (gSaveBlock2Ptr->playTimeVBlanks < 60) + return; + + gSaveBlock2Ptr->playTimeVBlanks = 0; + gSaveBlock2Ptr->playTimeSeconds++; + + if (gSaveBlock2Ptr->playTimeSeconds < 60) + return; + + gSaveBlock2Ptr->playTimeSeconds = 0; + gSaveBlock2Ptr->playTimeMinutes++; + + if (gSaveBlock2Ptr->playTimeMinutes < 60) + return; + + gSaveBlock2Ptr->playTimeMinutes = 0; + gSaveBlock2Ptr->playTimeHours++; + + if (gSaveBlock2Ptr->playTimeHours > 999) + PlayTimeCounter_SetToMax(); } void PlayTimeCounter_SetToMax(void) -- cgit v1.2.3 From 838182857176894c50934eda29d591d5c2aa16df Mon Sep 17 00:00:00 2001 From: nullableVoidPtr <30564701+nullableVoidPtr@users.noreply.github.com> Date: Wed, 10 Jun 2020 21:13:58 +0800 Subject: Match sub_80F0708 Special thanks to @kazblox --- src/tv.c | 528 +++++++-------------------------------------------------------- 1 file changed, 59 insertions(+), 469 deletions(-) diff --git a/src/tv.c b/src/tv.c index 386fdb0c8..eaf30f82b 100644 --- a/src/tv.c +++ b/src/tv.c @@ -3800,25 +3800,28 @@ static s8 sub_80F06D0(TVShow *tvShows) return -1; } -#ifdef NONMATCHING static void sub_80F0708(void) // FIXME: register allocation shenanigans { u16 i; - TVShow *show; + u16 j; for (i = 0; i < LAST_TVSHOW_IDX; i ++) { switch (gSaveBlock1Ptr->tvShows[i].common.kind) { case TVSHOW_CONTEST_LIVE_UPDATES: - sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->contestLiveUpdates.species, i); - sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->contestLiveUpdates.winningSpecies, i); + j = (&gSaveBlock1Ptr->tvShows[i])->contestLiveUpdates.species; + sub_80F0B24(j, i); + j = (&gSaveBlock1Ptr->tvShows[i])->contestLiveUpdates.winningSpecies; + sub_80F0B24(j, i); break; case TVSHOW_3_CHEERS_FOR_POKEBLOCKS: break; case TVSHOW_BATTLE_UPDATE: - sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->battleUpdate.speciesPlayer, i); - sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->battleUpdate.speciesOpponent, i); + j = (&gSaveBlock1Ptr->tvShows[i])->battleUpdate.speciesPlayer; + sub_80F0B24(j, i); + j = (&gSaveBlock1Ptr->tvShows[i])->battleUpdate.speciesOpponent; + sub_80F0B24(j, i); break; case TVSHOW_FAN_CLUB_SPECIAL: break; @@ -3828,43 +3831,57 @@ static void sub_80F0708(void) // FIXME: register allocation shenanigans case TVSHOW_OFF_AIR: break; case TVSHOW_FAN_CLUB_LETTER: - sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->fanclubLetter.species, i); + j = (&gSaveBlock1Ptr->tvShows[i])->fanclubLetter.species; + sub_80F0B24(j, i); break; case TVSHOW_RECENT_HAPPENINGS: break; case TVSHOW_PKMN_FAN_CLUB_OPINIONS: - sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->fanclubOpinions.species, i); + j = (&gSaveBlock1Ptr->tvShows[i])->fanclubOpinions.species; + sub_80F0B24(j, i); break; case TVSHOW_UNKN_SHOWTYPE_04: - sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->unkShow04.var06, i); + j = (&gSaveBlock1Ptr->tvShows[i])->unkShow04.var06; + sub_80F0B24(j, i); break; case TVSHOW_NAME_RATER_SHOW: - sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->nameRaterShow.species, i); - sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->nameRaterShow.randomSpecies, i); + j = (&gSaveBlock1Ptr->tvShows[i])->nameRaterShow.species; + sub_80F0B24(j, i); + j = (&gSaveBlock1Ptr->tvShows[i])->nameRaterShow.randomSpecies; + sub_80F0B24(j, i); break; case TVSHOW_BRAVO_TRAINER_POKEMON_PROFILE: - sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->bravoTrainer.species, i); + j = (&gSaveBlock1Ptr->tvShows[i])->bravoTrainer.species; + sub_80F0B24(j, i); break; case TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE: - sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->bravoTrainerTower.species, i); - sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->bravoTrainerTower.defeatedSpecies, i); + j = (&gSaveBlock1Ptr->tvShows[i])->bravoTrainerTower.species; + sub_80F0B24(j, i); + j = (&gSaveBlock1Ptr->tvShows[i])->bravoTrainerTower.defeatedSpecies; + sub_80F0B24(j, i); break; case TVSHOW_POKEMON_TODAY_CAUGHT: - sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->pokemonToday.species, i); + j = (&gSaveBlock1Ptr->tvShows[i])->pokemonToday.species; + sub_80F0B24(j, i); break; case TVSHOW_SMART_SHOPPER: break; case TVSHOW_POKEMON_TODAY_FAILED: - sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->pokemonTodayFailed.species, i); - sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->pokemonTodayFailed.species2, i); + j = (&gSaveBlock1Ptr->tvShows[i])->pokemonTodayFailed.species; + sub_80F0B24(j, i); + j = (&gSaveBlock1Ptr->tvShows[i])->pokemonTodayFailed.species2; + sub_80F0B24(j, i); break; case TVSHOW_FISHING_ADVICE: - sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->pokemonAngler.species, i); + j = (&gSaveBlock1Ptr->tvShows[i])->pokemonAngler.species; + sub_80F0B24(j, i); break; case TVSHOW_WORLD_OF_MASTERS: - sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->worldOfMasters.species, i); - sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->worldOfMasters.caughtPoke, i); + j = (&gSaveBlock1Ptr->tvShows[i])->worldOfMasters.species; + sub_80F0B24(j, i); + j = (&gSaveBlock1Ptr->tvShows[i])->worldOfMasters.caughtPoke; + sub_80F0B24(j, i); break; case TVSHOW_TODAYS_RIVAL_TRAINER: @@ -3876,37 +3893,48 @@ static void sub_80F0708(void) // FIXME: register allocation shenanigans case TVSHOW_FIND_THAT_GAMER: break; case TVSHOW_BREAKING_NEWS: - sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->breakingNews.lastOpponentSpecies, i); - sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->breakingNews.poke1Species, i); + j = (&gSaveBlock1Ptr->tvShows[i])->breakingNews.lastOpponentSpecies; + sub_80F0B24(j, i); + j = (&gSaveBlock1Ptr->tvShows[i])->breakingNews.poke1Species; + sub_80F0B24(j, i); break; case TVSHOW_SECRET_BASE_VISIT: - sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->secretBaseVisit.species, i); + j = (&gSaveBlock1Ptr->tvShows[i])->secretBaseVisit.species; + sub_80F0B24(j, i); break; case TVSHOW_LOTTO_WINNER: break; case TVSHOW_BATTLE_SEMINAR: - sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->battleSeminar.species, i); - sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->battleSeminar.foeSpecies, i); + j = (&gSaveBlock1Ptr->tvShows[i])->battleSeminar.species; + sub_80F0B24(j, i); + j = (&gSaveBlock1Ptr->tvShows[i])->battleSeminar.foeSpecies; + sub_80F0B24(j, i); break; case TVSHOW_TRAINER_FAN_CLUB: break; case TVSHOW_CUTIES: break; case TVSHOW_FRONTIER: - sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->frontier.species1, i); - sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->frontier.species2, i); - switch ((&gSaveBlock1Ptr->tvShows[i])->frontier.facility) + j = (&gSaveBlock1Ptr->tvShows[i])->frontier.species1; + sub_80F0B24(j, i); + j = (&gSaveBlock1Ptr->tvShows[i])->frontier.species2; + sub_80F0B24(j, i); + j = (&gSaveBlock1Ptr->tvShows[i])->frontier.facility; + switch (j) { case 3: case 4: break; case 1: case 5 ... 13: - sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->frontier.species3, i); + j = (&gSaveBlock1Ptr->tvShows[i])->frontier.species3; + sub_80F0B24(j, i); break; case 2: - sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->frontier.species3, i); - sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->frontier.species4, i); + j = (&gSaveBlock1Ptr->tvShows[i])->frontier.species3; + sub_80F0B24(j, i); + j = (&gSaveBlock1Ptr->tvShows[i])->frontier.species4; + sub_80F0B24(j, i); break; } break; @@ -3926,444 +3954,6 @@ static void sub_80F0708(void) // FIXME: register allocation shenanigans } } } -#else -NAKED static void sub_80F0708(void) -{ - asm_unified("\tpush {r4-r7,lr}\n" - "\tmov r7, r9\n" - "\tmov r6, r8\n" - "\tpush {r6,r7}\n" - "\tsub sp, 0x8\n" - "\tmovs r0, 0\n" - "\tmov r9, r0\n" - "_080F0716:\n" - "\tldr r3, =gSaveBlock1Ptr\n" - "\tldr r1, [r3]\n" - "\tmov r4, r9\n" - "\tlsls r2, r4, 3\n" - "\tadds r0, r2, r4\n" - "\tlsls r0, 2\n" - "\tadds r1, r0\n" - "\tldr r0, =0x000027cc\n" - "\tadds r1, r0\n" - "\tldrb r0, [r1]\n" - "\tadds r7, r2, 0\n" - "\tcmp r0, 0x29\n" - "\tbls _080F0732\n" - "\tb _080F0AD8\n" - "_080F0732:\n" - "\tlsls r0, 2\n" - "\tldr r1, =_080F0748\n" - "\tadds r0, r1\n" - "\tldr r0, [r0]\n" - "\tmov pc, r0\n" - "\t.pool\n" - "\t.align 2, 0\n" - "_080F0748:\n" - "\t.4byte _080F0AE2_break @ TVSHOW_OFF_AIR\n" - "\t.4byte _080F0848 @ TVSHOW_FAN_CLUB_LETTER\n" - "\t.4byte _080F0AE2_break @ TVSHOW_RECENT_HAPPENINGS\n" - "\t.4byte _080F0860 @ TVSHOW_PKMN_FAN_CLUB_OPINIONS\n" - "\t.4byte _080F0878 @ TVSHOW_UNKN_SHOWTYPE_04\n" - "\t.4byte _080F0890 @ TVSHOW_NAME_RATER_SHOW\n" - "\t.4byte _080F08BC @ TVSHOW_BRAVO_TRAINER_POKEMON_PROFILE\n" - "\t.4byte _080F08D4 @ TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE\n" - "\t.4byte _080F07F0 @ TVSHOW_CONTEST_LIVE_UPDATES\n" - "\t.4byte _080F0AE2_break @ TVSHOW_3_CHEERS_FOR_POKEBLOCKS\n" - "\t.4byte _080F081C @ TVSHOW_BATTLE_UPDATE\n" - "\t.4byte _080F0AE2_break @ TVSHOW_FAN_CLUB_SPECIAL\n" - "\t.4byte _080F0AE2_break @ TVSHOW_CONTEST_LIVE_UPDATES_2\n" - "\t.4byte _080F0AD8 @ \n" - "\t.4byte _080F0AD8 @ \n" - "\t.4byte _080F0AD8 @ \n" - "\t.4byte _080F0AD8 @ \n" - "\t.4byte _080F0AD8 @ \n" - "\t.4byte _080F0AD8 @ \n" - "\t.4byte _080F0AD8 @ \n" - "\t.4byte _080F0AD8 @ \n" - "\t.4byte _080F0900 @ TVSHOW_POKEMON_TODAY_CAUGHT\n" - "\t.4byte _080F0AE2_break @ TVSHOW_SMART_SHOPPER\n" - "\t.4byte _080F0918 @ TVSHOW_POKEMON_TODAY_FAILED\n" - "\t.4byte _080F0944 @ TVSHOW_FISHING_ADVICE\n" - "\t.4byte _080F095C @ TVSHOW_WORLD_OF_MASTERS\n" - "\t.4byte _080F0AE2_break @ TVSHOW_TODAYS_RIVAL_TRAINER\n" - "\t.4byte _080F0AE2_break @ TVSHOW_TREND_WATCHER\n" - "\t.4byte _080F0AE2_break @ TVSHOW_TREASURE_INVESTIGATORS\n" - "\t.4byte _080F0AE2_break @ TVSHOW_FIND_THAT_GAMER\n" - "\t.4byte _080F0974 @ TVSHOW_BREAKING_NEWS\n" - "\t.4byte _080F09A0 @ TVSHOW_SECRET_BASE_VISIT\n" - "\t.4byte _080F0AE2_break @ TVSHOW_LOTTO_WINNER\n" - "\t.4byte _080F09C0 @ TVSHOW_BATTLE_SEMINAR\n" - "\t.4byte _080F0AE2_break @ TVSHOW_TRAINER_FAN_CLUB\n" - "\t.4byte _080F0AE2_break @ TVSHOW_CUTIES\n" - "\t.4byte _080F09F4 @ TVSHOW_FRONTIER\n" - "\t.4byte _080F0AE2_break @ TVSHOW_NUMBER_ONE\n" - "\t.4byte _080F0AE2_break @ TVSHOW_SECRET_BASE_SECRETS\n" - "\t.4byte _080F0AE2_break @ TVSHOW_SAFARI_FAN_CLUB\n" - "\t.4byte _080F0AD8 @ \n" - "\t.4byte _080F0AE2_break @ TVSHOW_MASS_OUTBREAK\n" - "_080F07F0:\n" - "\tldr r0, [r3]\n" - "\tmov r1, r9\n" - "\tadds r4, r7, r1\n" - "\tlsls r4, 2\n" - "\tadds r0, r4, r0\n" - "\tldr r6, =0x000027cc\n" - "\tadds r0, r6\n" - "\tldrh r0, [r0, 0x12]\n" - "\tlsls r5, r1, 24\n" - "\tlsrs r5, 24\n" - "\tadds r1, r5, 0\n" - "\tstr r3, [sp, 0x4]\n" - "\tbl sub_80F0B24\n" - "\tldr r3, [sp, 0x4]\n" - "\tldr r0, [r3]\n" - "\tadds r4, r0\n" - "\tadds r4, r6\n" - "\tldrh r0, [r4, 0x2]\n" - "\tb _080F09E6\n" - "\t.pool\n" - "_080F081C:\n" - "\tldr r0, [r3]\n" - "\tmov r2, r9\n" - "\tadds r4, r7, r2\n" - "\tlsls r4, 2\n" - "\tadds r0, r4, r0\n" - "\tldr r6, =0x000027cc\n" - "\tadds r0, r6\n" - "\tldrh r0, [r0, 0x16]\n" - "\tlsls r5, r2, 24\n" - "\tlsrs r5, 24\n" - "\tadds r1, r5, 0\n" - "\tstr r3, [sp, 0x4]\n" - "\tbl sub_80F0B24\n" - "\tldr r3, [sp, 0x4]\n" - "\tldr r0, [r3]\n" - "\tadds r4, r0\n" - "\tadds r4, r6\n" - "\tldrh r0, [r4, 0x2]\n" - "\tb _080F09E6\n" - "\t.pool\n" - "_080F0848:\n" - "\tldr r0, [r3]\n" - "\tmov r4, r9\n" - "\tadds r1, r7, r4\n" - "\tlsls r1, 2\n" - "\tadds r1, r0\n" - "\tldr r0, =0x000027cc\n" - "\tadds r1, r0\n" - "\tldrh r0, [r1, 0x2]\n" - "\tb _080F09B0\n" - "\t.pool\n" - "_080F0860:\n" - "\tldr r0, [r3]\n" - "\tmov r2, r9\n" - "\tadds r1, r7, r2\n" - "\tlsls r1, 2\n" - "\tadds r1, r0\n" - "\tldr r4, =0x000027cc\n" - "\tadds r1, r4\n" - "\tldrh r0, [r1, 0x2]\n" - "\tlsls r1, r2, 24\n" - "\tb _080F09B2\n" - "\t.pool\n" - "_080F0878:\n" - "\tldr r0, [r3]\n" - "\tmov r2, r9\n" - "\tadds r1, r7, r2\n" - "\tlsls r1, 2\n" - "\tadds r1, r0\n" - "\tldr r4, =0x000027cc\n" - "\tadds r1, r4\n" - "\tldrh r0, [r1, 0x6]\n" - "\tlsls r1, r2, 24\n" - "\tb _080F09B2\n" - "\t.pool\n" - "_080F0890:\n" - "\tldr r0, [r3]\n" - "\tmov r1, r9\n" - "\tadds r4, r7, r1\n" - "\tlsls r4, 2\n" - "\tadds r0, r4, r0\n" - "\tldr r6, =0x000027cc\n" - "\tadds r0, r6\n" - "\tldrh r0, [r0, 0x2]\n" - "\tlsls r5, r1, 24\n" - "\tlsrs r5, 24\n" - "\tadds r1, r5, 0\n" - "\tstr r3, [sp, 0x4]\n" - "\tbl sub_80F0B24\n" - "\tldr r3, [sp, 0x4]\n" - "\tldr r0, [r3]\n" - "\tadds r4, r0\n" - "\tadds r4, r6\n" - "\tldrh r0, [r4, 0x1C]\n" - "\tb _080F09E6\n" - "\t.pool\n" - "_080F08BC:\n" - "\tldr r0, [r3]\n" - "\tmov r2, r9\n" - "\tadds r1, r7, r2\n" - "\tlsls r1, 2\n" - "\tadds r1, r0\n" - "\tldr r4, =0x000027cc\n" - "\tadds r1, r4\n" - "\tldrh r0, [r1, 0x2]\n" - "\tlsls r1, r2, 24\n" - "\tb _080F09B2\n" - "\t.pool\n" - "_080F08D4:\n" - "\tldr r0, [r3]\n" - "\tmov r1, r9\n" - "\tadds r4, r7, r1\n" - "\tlsls r4, 2\n" - "\tadds r0, r4, r0\n" - "\tldr r6, =0x000027cc\n" - "\tadds r0, r6\n" - "\tldrh r0, [r0, 0xA]\n" - "\tlsls r5, r1, 24\n" - "\tlsrs r5, 24\n" - "\tadds r1, r5, 0\n" - "\tstr r3, [sp, 0x4]\n" - "\tbl sub_80F0B24\n" - "\tldr r3, [sp, 0x4]\n" - "\tldr r0, [r3]\n" - "\tadds r4, r0\n" - "\tadds r4, r6\n" - "\tldrh r0, [r4, 0x14]\n" - "\tb _080F09E6\n" - "\t.pool\n" - "_080F0900:\n" - "\tldr r0, [r3]\n" - "\tmov r2, r9\n" - "\tadds r1, r7, r2\n" - "\tlsls r1, 2\n" - "\tadds r1, r0\n" - "\tldr r4, =0x000027cc\n" - "\tadds r1, r4\n" - "\tldrh r0, [r1, 0x10]\n" - "\tlsls r1, r2, 24\n" - "\tb _080F09B2\n" - "\t.pool\n" - "_080F0918:\n" - "\tldr r0, [r3]\n" - "\tmov r1, r9\n" - "\tadds r4, r7, r1\n" - "\tlsls r4, 2\n" - "\tadds r0, r4, r0\n" - "\tldr r6, =0x000027cc\n" - "\tadds r0, r6\n" - "\tldrh r0, [r0, 0xC]\n" - "\tlsls r5, r1, 24\n" - "\tlsrs r5, 24\n" - "\tadds r1, r5, 0\n" - "\tstr r3, [sp, 0x4]\n" - "\tbl sub_80F0B24\n" - "\tldr r3, [sp, 0x4]\n" - "\tldr r0, [r3]\n" - "\tadds r4, r0\n" - "\tadds r4, r6\n" - "\tldrh r0, [r4, 0xE]\n" - "\tb _080F09E6\n" - "\t.pool\n" - "_080F0944:\n" - "\tldr r0, [r3]\n" - "\tmov r2, r9\n" - "\tadds r1, r7, r2\n" - "\tlsls r1, 2\n" - "\tadds r1, r0\n" - "\tldr r4, =0x000027cc\n" - "\tadds r1, r4\n" - "\tldrh r0, [r1, 0x4]\n" - "\tlsls r1, r2, 24\n" - "\tb _080F09B2\n" - "\t.pool\n" - "_080F095C:\n" - "\tldr r0, [r3]\n" - "\tmov r1, r9\n" - "\tadds r4, r7, r1\n" - "\tlsls r4, 2\n" - "\tadds r0, r4, r0\n" - "\tldr r6, =0x000027cc\n" - "\tadds r0, r6\n" - "\tldrh r0, [r0, 0x8]\n" - "\tb _080F09D0\n" - "\t.pool\n" - "_080F0974:\n" - "\tldr r0, [r3]\n" - "\tmov r2, r9\n" - "\tadds r4, r7, r2\n" - "\tlsls r4, 2\n" - "\tadds r0, r4, r0\n" - "\tldr r6, =0x000027cc\n" - "\tadds r0, r6\n" - "\tldrh r0, [r0, 0x2]\n" - "\tlsls r5, r2, 24\n" - "\tlsrs r5, 24\n" - "\tadds r1, r5, 0\n" - "\tstr r3, [sp, 0x4]\n" - "\tbl sub_80F0B24\n" - "\tldr r3, [sp, 0x4]\n" - "\tldr r0, [r3]\n" - "\tadds r4, r0\n" - "\tadds r4, r6\n" - "\tldrh r0, [r4, 0xA]\n" - "\tb _080F09E6\n" - "\t.pool\n" - "_080F09A0:\n" - "\tldr r0, [r3]\n" - "\tmov r4, r9\n" - "\tadds r1, r7, r4\n" - "\tlsls r1, 2\n" - "\tadds r1, r0\n" - "\tldr r0, =0x000027cc\n" - "\tadds r1, r0\n" - "\tldrh r0, [r1, 0x8]\n" - "_080F09B0:\n" - "\tlsls r1, r4, 24\n" - "_080F09B2:\n" - "\tlsrs r1, 24\n" - "\tbl sub_80F0B24\n" - "\tb _080F0AE2_break\n" - "\t.pool\n" - "_080F09C0:\n" - "\tldr r0, [r3]\n" - "\tmov r1, r9\n" - "\tadds r4, r7, r1\n" - "\tlsls r4, 2\n" - "\tadds r0, r4, r0\n" - "\tldr r6, =0x000027cc\n" - "\tadds r0, r6\n" - "\tldrh r0, [r0, 0x6]\n" - "_080F09D0:\n" - "\tlsls r5, r1, 24\n" - "\tlsrs r5, 24\n" - "\tadds r1, r5, 0\n" - "\tstr r3, [sp, 0x4]\n" - "\tbl sub_80F0B24\n" - "\tldr r3, [sp, 0x4]\n" - "\tldr r0, [r3]\n" - "\tadds r4, r0\n" - "\tadds r4, r6\n" - "\tldrh r0, [r4, 0x4]\n" - "_080F09E6:\n" - "\tadds r1, r5, 0\n" - "\tbl sub_80F0B24\n" - "\tb _080F0AE2_break\n" - "\t.pool\n" - "_080F09F4:\n" - "\tldr r0, [r3]\n" - "\tmov r2, r9\n" - "\tadds r4, r7, r2\n" - "\tlsls r4, 2\n" - "\tadds r0, r4, r0\n" - "\tldr r5, =0x000027cc\n" - "\tadds r0, r5\n" - "\tldrh r0, [r0, 0x4]\n" - "\tlsls r2, 24\n" - "\tmov r8, r2\n" - "\tlsrs r6, r2, 24\n" - "\tadds r1, r6, 0\n" - "\tstr r3, [sp, 0x4]\n" - "\tbl sub_80F0B24\n" - "\tldr r3, [sp, 0x4]\n" - "\tldr r0, [r3]\n" - "\tadds r0, r4, r0\n" - "\tadds r0, r5\n" - "\tldrh r0, [r0, 0x6]\n" - "\tadds r1, r6, 0\n" - "\tbl sub_80F0B24\n" - "\tldr r3, [sp, 0x4]\n" - "\tldr r0, [r3]\n" - "\tadds r4, r0\n" - "\tadds r4, r5\n" - "\tldrb r0, [r4, 0xD]\n" - "\tsubs r0, 0x1\n" - "\tmov r6, r8\n" - "\tcmp r0, 0xC\n" - "\tbhi _080F0AE2_break\n" - "\tlsls r0, 2\n" - "\tldr r1, =_080F0A48\n" - "\tadds r0, r1\n" - "\tldr r0, [r0]\n" - "\tmov pc, r0\n" - "\t.pool\n" - "\t.align 2, 0\n" - "_080F0A48:\n" - "\t.4byte _080F0A7C\n" - "\t.4byte _080F0AA0\n" - "\t.4byte _080F0AE2_break\n" - "\t.4byte _080F0AE2_break\n" - "\t.4byte _080F0A7C\n" - "\t.4byte _080F0A7C\n" - "\t.4byte _080F0A7C\n" - "\t.4byte _080F0A7C\n" - "\t.4byte _080F0A7C\n" - "\t.4byte _080F0A7C\n" - "\t.4byte _080F0A7C\n" - "\t.4byte _080F0A7C\n" - "\t.4byte _080F0A7C\n" - "_080F0A7C:\n" - "\tldr r0, =gSaveBlock1Ptr\n" - "\tldr r1, [r0]\n" - "\tmov r4, r9\n" - "\tadds r0, r7, r4\n" - "\tlsls r0, 2\n" - "\tadds r0, r1\n" - "\tldr r1, =0x000027cc\n" - "\tadds r0, r1\n" - "\tldrh r0, [r0, 0x8]\n" - "\tlsrs r1, r6, 24\n" - "\tbl sub_80F0B24\n" - "\tb _080F0AE2_break\n" - "\t.pool\n" - "_080F0AA0:\n" - "\tldr r2, =gSaveBlock1Ptr\n" - "\tldr r0, [r2]\n" - "\tmov r1, r9\n" - "\tadds r4, r7, r1\n" - "\tlsls r4, 2\n" - "\tadds r0, r4, r0\n" - "\tldr r5, =0x000027cc\n" - "\tadds r0, r5\n" - "\tldrh r0, [r0, 0x8]\n" - "\tlsrs r6, 24\n" - "\tadds r1, r6, 0\n" - "\tstr r2, [sp]\n" - "\tbl sub_80F0B24\n" - "\tldr r2, [sp]\n" - "\tldr r0, [r2]\n" - "\tadds r4, r0\n" - "\tadds r4, r5\n" - "\tldrh r0, [r4, 0xA]\n" - "\tadds r1, r6, 0\n" - "\tbl sub_80F0B24\n" - "\tb _080F0AE2_break\n" - "\t.pool\n" - "_080F0AD8:\n" - "\tmov r2, r9\n" - "\tlsls r0, r2, 24\n" - "\tlsrs r0, 24\n" - "\tbl SetTvShowInactive\n" - "_080F0AE2_break:\n" - "\tmov r0, r9\n" - "\tadds r0, 0x1\n" - "\tlsls r0, 16\n" - "\tlsrs r0, 16\n" - "\tmov r9, r0\n" - "\tcmp r0, 0x17\n" - "\tbhi _080F0AF2\n" - "\tb _080F0716\n" - "_080F0AF2:\n" - "\tadd sp, 0x8\n" - "\tpop {r3,r4}\n" - "\tmov r8, r3\n" - "\tmov r9, r4\n" - "\tpop {r4-r7}\n" - "\tpop {r0}\n" - "\tbx r0"); -} -#endif void SetTvShowInactive(u8 showIdx) { -- cgit v1.2.3