summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGriffinR <griffin.g.richards@gmail.com>2020-06-10 17:36:43 -0400
committerGitHub <noreply@github.com>2020-06-10 17:36:43 -0400
commita9a427c6f268e04468c8e30242f3ed4f96036848 (patch)
tree6bab63e3bd983d393f7182bcc271c3e0ab2d3b93 /src
parent2859900ea9aa6f381006976fa94b95e6a4cad0b7 (diff)
parenta7815857ad8af1a35e69692e6eee3e854421b790 (diff)
Merge branch 'master' into doc-link
Diffstat (limited to 'src')
-rw-r--r--src/battle_setup.c4
-rw-r--r--src/battle_transition.c723
-rwxr-xr-xsrc/field_message_box.c107
-rw-r--r--src/match_call.c2
-rw-r--r--src/play_time.c50
-rw-r--r--src/scrcmd.c2
-rwxr-xr-xsrc/shop.c10
-rw-r--r--src/trainer_hill.c2
-rw-r--r--src/tv.c528
-rw-r--r--src/unk_transition.c2
10 files changed, 518 insertions, 912 deletions
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/battle_transition.c b/src/battle_transition.c
index 23182e976..e76a3a34c 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,39 +273,39 @@ 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 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 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 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");
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 gUnknown_085C7BE0[] = INCBIN_U32("graphics/battle_transitions/frontier_brain.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 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");
@@ -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,42 +515,42 @@ 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[] =
+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");
@@ -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");
@@ -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/field_message_box.c b/src/field_message_box.c
index da5042221..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 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/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)
diff --git a/src/scrcmd.c b/src/scrcmd.c
index d7d52b349..d7c18fb38 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/shop.c b/src/shop.c
index a4d1939cb..73b1cd4e2 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++)
{
- 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);
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)
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)
{
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);