Sync battle transitions

This commit is contained in:
GriffinR
2022-11-18 14:26:03 -05:00
parent 783e8e72cf
commit 519443e214
14 changed files with 1728 additions and 1565 deletions
+2 -2
View File
@@ -252,8 +252,8 @@ gFldEffScript_UseDive::
end end
gFldEffScript_Pokeball:: gFldEffScript_Pokeball::
loadpal sSpritePalette_SlidingPokeball loadpal gSpritePalette_Pokeball
callnative FldEff_Pokeball callnative FldEff_PokeballTrail
end end
gFldEffScript_XIcon:: gFldEffScript_XIcon::
+25 -22
View File
@@ -13,29 +13,32 @@ enum
MUGSHOTS_COUNT MUGSHOTS_COUNT
}; };
#define B_TRANSITION_BLUR 0 enum {
#define B_TRANSITION_DISTORTED_WAVE 1 B_TRANSITION_BLUR,
#define B_TRANSITION_HORIZONTAL_CORRUGATE 2 B_TRANSITION_SWIRL,
#define B_TRANSITION_BIG_POKEBALL 3 B_TRANSITION_SHUFFLE,
#define B_TRANSITION_SLIDING_POKEBALLS 4 B_TRANSITION_BIG_POKEBALL,
#define B_TRANSITION_CLOCKWISE_BLACKFADE 5 B_TRANSITION_POKEBALLS_TRAIL,
#define B_TRANSITION_FULLSCREEN_WAVE 6 B_TRANSITION_CLOCKWISE_WIPE,
#define B_TRANSITION_BLACK_WAVE_TO_RIGHT 7 B_TRANSITION_RIPPLE,
#define B_TRANSITION_SLICED_SCREEN 8 B_TRANSITION_WAVE,
#define B_TRANSITION_WHITEFADE_IN_STRIPES 9 B_TRANSITION_SLICE,
#define B_TRANSITION_GRID_SQUARES 10 B_TRANSITION_WHITE_BARS_FADE,
#define B_TRANSITION_BLACK_DOODLES 11 B_TRANSITION_GRID_SQUARES,
#define B_TRANSITION_LORELEI 12 B_TRANSITION_ANGLED_WIPES,
#define B_TRANSITION_BRUNO 13 B_TRANSITION_LORELEI,
#define B_TRANSITION_AGATHA 14 B_TRANSITION_BRUNO,
#define B_TRANSITION_LANCE 15 B_TRANSITION_AGATHA,
#define B_TRANSITION_BLUE 16 B_TRANSITION_LANCE,
#define B_TRANSITION_ANTI_CLOCKWISE_SPIRAL 17 B_TRANSITION_BLUE,
B_TRANSITION_SPIRAL,
B_TRANSITION_COUNT
};
extern const struct SpritePalette sSpritePalette_SlidingPokeball; extern const struct SpritePalette gSpritePalette_Pokeball;
bool8 BT_IsDone(void); bool8 IsBattleTransitionDone(void);
void BT_StartOnField(u8 transitionId); void BattleTransition_StartOnField(u8 transitionId);
bool8 FldEff_Pokeball(void); bool8 FldEff_PokeballTrail(void);
#endif // GUARD_BATTLE_TRANSITION_H #endif // GUARD_BATTLE_TRANSITION_H
+1
View File
@@ -74,6 +74,7 @@
#define FLDEFF_PAL_TAG_GENERAL_0 0x1004 #define FLDEFF_PAL_TAG_GENERAL_0 0x1004
#define FLDEFF_PAL_TAG_GENERAL_1 0x1005 #define FLDEFF_PAL_TAG_GENERAL_1 0x1005
#define FLDEFF_PAL_TAG_POKEBALL_TRAIL 0x1009
#define FLDEFF_PAL_TAG_ASH 0x100D #define FLDEFF_PAL_TAG_ASH 0x100D
#define FLDEFF_PAL_TAG_SMALL_SPARKLE 0x100F #define FLDEFF_PAL_TAG_SMALL_SPARKLE 0x100F
+1 -1
View File
@@ -8,7 +8,7 @@ bool16 ResetAllPicSprites(void);
u16 CreateTrainerPicSprite(u16 species, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag); u16 CreateTrainerPicSprite(u16 species, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag);
u16 FreeAndDestroyMonPicSprite(u16); u16 FreeAndDestroyMonPicSprite(u16);
u16 FreeAndDestroyTrainerPicSprite(u16); u16 FreeAndDestroyTrainerPicSprite(u16);
u16 PlayerGenderToFrontTrainerPicId_Debug(u8 gender, bool8 getClass); u16 PlayerGenderToFrontTrainerPicId(u8 gender, bool8 getClass);
u16 CreateMonPicSprite_HandleDeoxys(u16 species, u32 otId, u32 personality, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag); u16 CreateMonPicSprite_HandleDeoxys(u16 species, u32 otId, u32 personality, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag);
u16 LoadMonPicInWindow(u16 species, u32 otId, u32 personality, bool8 isFrontPic, u8 paletteSlot, u8 windowId); u16 LoadMonPicInWindow(u16 species, u32 otId, u32 personality, bool8 isFrontPic, u8 paletteSlot, u8 windowId);
u16 CreateMonPicSprite(u16 species, u32 otId, u32 personality, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag, bool8 ignoreDeoxys); u16 CreateMonPicSprite(u16 species, u32 otId, u32 personality, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag, bool8 ignoreDeoxys);
+6 -10
View File
@@ -278,31 +278,27 @@ const struct OamData gOamData_BattlerPlayer =
.affineParam = 0, .affineParam = 0,
}; };
// not used static const union AnimCmd sAnim_Unused[] =
static const union AnimCmd gUnknown_824F020[] =
{ {
ANIMCMD_FRAME(0, 5), ANIMCMD_FRAME(0, 5),
ANIMCMD_JUMP(0), ANIMCMD_JUMP(0),
}; };
// not used static const union AnimCmd *const sAnims_Unused[] =
static const union AnimCmd *const gUnknown_824F028[] =
{ {
gUnknown_824F020, sAnim_Unused,
}; };
// not used static const union AffineAnimCmd sAffineAnim_Unused[] =
static const union AffineAnimCmd gUnknown_824F02C[] =
{ {
AFFINEANIMCMD_FRAME(-0x10, 0x0, 0, 4), AFFINEANIMCMD_FRAME(-0x10, 0x0, 0, 4),
AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 0x3C), AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 0x3C),
AFFINEANIMCMD_JUMP(1), AFFINEANIMCMD_JUMP(1),
}; };
// not used static const union AffineAnimCmd *const sAffineAnims_Unused[] =
static const union AffineAnimCmd *const gUnknown_824F044[] =
{ {
gUnknown_824F02C, sAffineAnim_Unused,
}; };
static const s8 sPlayerThrowXTranslation[] = { -32, -16, -16, -32, -32, 0, 0, 0 }; static const s8 sPlayerThrowXTranslation[] = { -32, -16, -16, -32, -32, 0, 0, 0 };
+38 -28
View File
@@ -33,6 +33,13 @@
#include "constants/pokemon.h" #include "constants/pokemon.h"
#include "constants/trainers.h" #include "constants/trainers.h"
enum {
TRANSITION_TYPE_NORMAL,
TRANSITION_TYPE_CAVE,
TRANSITION_TYPE_FLASH,
TRANSITION_TYPE_WATER,
};
enum enum
{ {
TRAINER_PARAM_LOAD_VAL_8BIT, TRAINER_PARAM_LOAD_VAL_8BIT,
@@ -74,20 +81,22 @@ static EWRAM_DATA u8 *sTrainerBattleEndScript = NULL;
static EWRAM_DATA u8 *sTrainerABattleScriptRetAddr = NULL; static EWRAM_DATA u8 *sTrainerABattleScriptRetAddr = NULL;
static EWRAM_DATA u16 sRivalBattleFlags = 0; static EWRAM_DATA u16 sRivalBattleFlags = 0;
// The first transition is used if the enemy pokemon are lower level than our pokemon.
// Otherwise, the second transition is used.
static const u8 sBattleTransitionTable_Wild[][2] = static const u8 sBattleTransitionTable_Wild[][2] =
{ {
{ B_TRANSITION_SLICED_SCREEN, B_TRANSITION_WHITEFADE_IN_STRIPES }, [TRANSITION_TYPE_NORMAL] = {B_TRANSITION_SLICE, B_TRANSITION_WHITE_BARS_FADE},
{ B_TRANSITION_CLOCKWISE_BLACKFADE, B_TRANSITION_GRID_SQUARES }, [TRANSITION_TYPE_CAVE] = {B_TRANSITION_CLOCKWISE_WIPE, B_TRANSITION_GRID_SQUARES},
{ B_TRANSITION_BLUR, B_TRANSITION_GRID_SQUARES }, [TRANSITION_TYPE_FLASH] = {B_TRANSITION_BLUR, B_TRANSITION_GRID_SQUARES},
{ B_TRANSITION_BLACK_WAVE_TO_RIGHT, B_TRANSITION_FULLSCREEN_WAVE }, [TRANSITION_TYPE_WATER] = {B_TRANSITION_WAVE, B_TRANSITION_RIPPLE},
}; };
static const u8 sBattleTransitionTable_Trainer[][2] = static const u8 sBattleTransitionTable_Trainer[][2] =
{ {
{ B_TRANSITION_SLIDING_POKEBALLS, B_TRANSITION_BLACK_DOODLES }, [TRANSITION_TYPE_NORMAL] = {B_TRANSITION_POKEBALLS_TRAIL, B_TRANSITION_ANGLED_WIPES},
{ B_TRANSITION_HORIZONTAL_CORRUGATE, B_TRANSITION_BIG_POKEBALL }, [TRANSITION_TYPE_CAVE] = {B_TRANSITION_SHUFFLE, B_TRANSITION_BIG_POKEBALL},
{ B_TRANSITION_BLUR, B_TRANSITION_GRID_SQUARES }, [TRANSITION_TYPE_FLASH] = {B_TRANSITION_BLUR, B_TRANSITION_GRID_SQUARES},
{ B_TRANSITION_DISTORTED_WAVE, B_TRANSITION_FULLSCREEN_WAVE }, [TRANSITION_TYPE_WATER] = {B_TRANSITION_SWIRL, B_TRANSITION_RIPPLE},
}; };
static const struct TrainerBattleParameter sOrdinaryBattleParams[] = static const struct TrainerBattleParameter sOrdinaryBattleParams[] =
@@ -182,12 +191,12 @@ static void Task_BattleStart(u8 taskId)
if (!FldEffPoison_IsActive()) if (!FldEffPoison_IsActive())
{ {
HelpSystem_Disable(); HelpSystem_Disable();
BT_StartOnField(tTransition); BattleTransition_StartOnField(tTransition);
++tState; ++tState;
} }
break; break;
case 1: case 1:
if (BT_IsDone() == TRUE) if (IsBattleTransitionDone() == TRUE)
{ {
HelpSystem_Enable(); HelpSystem_Enable();
CleanupOverworldWindowsAndTilemaps(); CleanupOverworldWindowsAndTilemaps();
@@ -294,7 +303,7 @@ void StartOldManTutorialBattle(void)
LockPlayerFieldControls(); LockPlayerFieldControls();
gMain.savedCallback = CB2_ReturnToFieldContinueScriptPlayMapMusic; gMain.savedCallback = CB2_ReturnToFieldContinueScriptPlayMapMusic;
gBattleTypeFlags = BATTLE_TYPE_OLD_MAN_TUTORIAL; gBattleTypeFlags = BATTLE_TYPE_OLD_MAN_TUTORIAL;
CreateBattleStartTask(B_TRANSITION_SLICED_SCREEN, 0); CreateBattleStartTask(B_TRANSITION_SLICE, 0);
} }
void StartScriptedWildBattle(void) void StartScriptedWildBattle(void)
@@ -373,9 +382,9 @@ void StartGroudonKyogreBattle(void)
gMain.savedCallback = CB2_EndScriptedWildBattle; gMain.savedCallback = CB2_EndScriptedWildBattle;
gBattleTypeFlags = BATTLE_TYPE_LEGENDARY | BATTLE_TYPE_KYOGRE_GROUDON; gBattleTypeFlags = BATTLE_TYPE_LEGENDARY | BATTLE_TYPE_KYOGRE_GROUDON;
if (gGameVersion == VERSION_FIRE_RED) if (gGameVersion == VERSION_FIRE_RED)
CreateBattleStartTask(B_TRANSITION_BLACK_DOODLES, MUS_RS_VS_TRAINER); CreateBattleStartTask(B_TRANSITION_ANGLED_WIPES, MUS_RS_VS_TRAINER);
else // pointless, exactly the same else // pointless, exactly the same
CreateBattleStartTask(B_TRANSITION_BLACK_DOODLES, MUS_RS_VS_TRAINER); CreateBattleStartTask(B_TRANSITION_ANGLED_WIPES, MUS_RS_VS_TRAINER);
IncrementGameStat(GAME_STAT_TOTAL_BATTLES); IncrementGameStat(GAME_STAT_TOTAL_BATTLES);
IncrementGameStat(GAME_STAT_WILD_BATTLES); IncrementGameStat(GAME_STAT_WILD_BATTLES);
} }
@@ -506,26 +515,27 @@ u8 BattleSetup_GetTerrainId(void)
static u8 GetBattleTransitionTypeByMap(void) static u8 GetBattleTransitionTypeByMap(void)
{ {
u16 tileBehavior; u16 behavior;
s16 x, y; s16 x, y;
PlayerGetDestCoords(&x, &y); PlayerGetDestCoords(&x, &y);
tileBehavior = MapGridGetMetatileBehaviorAt(x, y); behavior = MapGridGetMetatileBehaviorAt(x, y);
if (Overworld_GetFlashLevel()) if (Overworld_GetFlashLevel())
return B_TRANSITION_HORIZONTAL_CORRUGATE; return TRANSITION_TYPE_FLASH;
if (!MetatileBehavior_IsSurfable(tileBehavior))
if (MetatileBehavior_IsSurfable(behavior))
return TRANSITION_TYPE_WATER;
switch (gMapHeader.mapType)
{ {
switch (gMapHeader.mapType) case MAP_TYPE_UNDERGROUND:
{ return TRANSITION_TYPE_CAVE;
case MAP_TYPE_UNDERGROUND: case MAP_TYPE_UNDERWATER:
return B_TRANSITION_DISTORTED_WAVE; return TRANSITION_TYPE_WATER;
case MAP_TYPE_UNDERWATER: default:
return B_TRANSITION_BIG_POKEBALL; return TRANSITION_TYPE_NORMAL;
default:
return B_TRANSITION_BLUR;
}
} }
return B_TRANSITION_BIG_POKEBALL;
} }
static u16 GetSumOfPlayerPartyLevel(u8 numMons) static u16 GetSumOfPlayerPartyLevel(u8 numMons)
@@ -652,7 +662,7 @@ u8 BattleSetup_GetBattleTowerBattleTransition(void)
u8 playerLevel = GetSumOfPlayerPartyLevel(1); u8 playerLevel = GetSumOfPlayerPartyLevel(1);
if (enemyLevel < playerLevel) if (enemyLevel < playerLevel)
return B_TRANSITION_SLIDING_POKEBALLS; return B_TRANSITION_POKEBALLS_TRAIL;
else else
return B_TRANSITION_BIG_POKEBALL; return B_TRANSITION_BIG_POKEBALL;
} }
+4 -4
View File
@@ -882,7 +882,7 @@ static void CB2_FinishEReaderBattle(void)
static void Task_WaitBT(u8 taskId) static void Task_WaitBT(u8 taskId)
{ {
if (BT_IsDone() == TRUE) if (IsBattleTransitionDone() == TRUE)
{ {
gMain.savedCallback = CB2_FinishEReaderBattle; gMain.savedCallback = CB2_FinishEReaderBattle;
CleanupOverworldWindowsAndTilemaps(); CleanupOverworldWindowsAndTilemaps();
@@ -910,7 +910,7 @@ void StartSpecialBattle(void)
CreateTask(Task_WaitBT, 1); CreateTask(Task_WaitBT, 1);
PlayMapChosenOrBattleBGM(0); PlayMapChosenOrBattleBGM(0);
transition = BattleSetup_GetBattleTowerBattleTransition(); transition = BattleSetup_GetBattleTowerBattleTransition();
BT_StartOnField(transition); BattleTransition_StartOnField(transition);
break; break;
case 1: // secret base battle case 1: // secret base battle
for (i = 0; i < PARTY_SIZE; i++) for (i = 0; i < PARTY_SIZE; i++)
@@ -922,7 +922,7 @@ void StartSpecialBattle(void)
CreateTask(Task_WaitBT, 1); CreateTask(Task_WaitBT, 1);
PlayMapChosenOrBattleBGM(0); PlayMapChosenOrBattleBGM(0);
transition = BattleSetup_GetBattleTowerBattleTransition(); transition = BattleSetup_GetBattleTowerBattleTransition();
BT_StartOnField(transition); BattleTransition_StartOnField(transition);
break; break;
case 2: // e-reader trainer battle case 2: // e-reader trainer battle
ZeroEnemyPartyMons(); ZeroEnemyPartyMons();
@@ -936,7 +936,7 @@ void StartSpecialBattle(void)
CreateTask(Task_WaitBT, 1); CreateTask(Task_WaitBT, 1);
PlayMapChosenOrBattleBGM(0); PlayMapChosenOrBattleBGM(0);
transition = BattleSetup_GetBattleTowerBattleTransition(); transition = BattleSetup_GetBattleTowerBattleTransition();
BT_StartOnField(transition); BattleTransition_StartOnField(transition);
break; break;
} }
} }
+1641 -1488
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -618,7 +618,7 @@ static void Task_Hof_SpawnPlayerPic(u8 taskId)
ShowBg(0); ShowBg(0);
ShowBg(1); ShowBg(1);
ShowBg(3); ShowBg(3);
gTasks[taskId].data[4] = CreateTrainerPicSprite(PlayerGenderToFrontTrainerPicId_Debug(gSaveBlock2Ptr->playerGender, TRUE), TRUE, 0x78, 0x48, 6, 0xFFFF); gTasks[taskId].data[4] = CreateTrainerPicSprite(PlayerGenderToFrontTrainerPicId(gSaveBlock2Ptr->playerGender, TRUE), TRUE, 0x78, 0x48, 6, 0xFFFF);
AddWindow(&sWindowTemplate); AddWindow(&sWindowTemplate);
LoadStdWindowGfx(1, 0x21D, 0xD0); LoadStdWindowGfx(1, 0x21D, 0xD0);
gTasks[taskId].data[3] = 120; gTasks[taskId].data[3] = 120;
+1 -1
View File
@@ -3108,7 +3108,7 @@ u8 DexScreen_DrawMonAreaPage(void)
gSprites[sPokedexScreenData->windowIds[14]].oam.priority = 1; gSprites[sPokedexScreenData->windowIds[14]].oam.priority = 1;
gSprites[sPokedexScreenData->windowIds[14]].y2 = gPokedexEntries[speciesId].pokemonOffset; gSprites[sPokedexScreenData->windowIds[14]].y2 = gPokedexEntries[speciesId].pokemonOffset;
SetOamMatrix(2, gPokedexEntries[speciesId].pokemonScale, 0, 0, gPokedexEntries[speciesId].pokemonScale); SetOamMatrix(2, gPokedexEntries[speciesId].pokemonScale, 0, 0, gPokedexEntries[speciesId].pokemonScale);
sPokedexScreenData->windowIds[15] = CreateTrainerPicSprite(PlayerGenderToFrontTrainerPicId_Debug(gSaveBlock2Ptr->playerGender, TRUE), 1, 80, 104, 0, 0xFFFF); sPokedexScreenData->windowIds[15] = CreateTrainerPicSprite(PlayerGenderToFrontTrainerPicId(gSaveBlock2Ptr->playerGender, TRUE), 1, 80, 104, 0, 0xFFFF);
gSprites[sPokedexScreenData->windowIds[15]].oam.paletteNum = 2; gSprites[sPokedexScreenData->windowIds[15]].oam.paletteNum = 2;
gSprites[sPokedexScreenData->windowIds[15]].oam.affineMode = ST_OAM_AFFINE_NORMAL; gSprites[sPokedexScreenData->windowIds[15]].oam.affineMode = ST_OAM_AFFINE_NORMAL;
gSprites[sPokedexScreenData->windowIds[15]].oam.matrixNum = 1; gSprites[sPokedexScreenData->windowIds[15]].oam.matrixNum = 1;
+4 -4
View File
@@ -1179,9 +1179,9 @@ static void TeachyTvPrepBattle(u8 taskId)
InitPokedudePartyAndOpponent(); InitPokedudePartyAndOpponent();
PlayMapChosenOrBattleBGM(MUS_DUMMY); PlayMapChosenOrBattleBGM(MUS_DUMMY);
if (sStaticResources.whichScript == TTVSCR_BATTLE) if (sStaticResources.whichScript == TTVSCR_BATTLE)
data[6] = B_TRANSITION_WHITEFADE_IN_STRIPES; data[6] = B_TRANSITION_WHITE_BARS_FADE;
else else
data[6] = B_TRANSITION_SLICED_SCREEN; data[6] = B_TRANSITION_SLICE;
data[7] = 0; data[7] = 0;
gTasks[taskId].func = TeachyTvPreBattleAnimAndSetBattleCallback; gTasks[taskId].func = TeachyTvPreBattleAnimAndSetBattleCallback;
} }
@@ -1192,11 +1192,11 @@ static void TeachyTvPreBattleAnimAndSetBattleCallback(u8 taskId)
switch (data[7]) switch (data[7])
{ {
case 0: case 0:
BT_StartOnField(data[6]); BattleTransition_StartOnField(data[6]);
++data[7]; ++data[7];
break; break;
case 1: case 1:
if (BT_IsDone()) if (IsBattleTransitionDone())
{ {
SetMainCallback2(CB2_InitBattle); SetMainCallback2(CB2_InitBattle);
DestroyTask(taskId); DestroyTask(taskId);
+1 -1
View File
@@ -1927,7 +1927,7 @@ static void CreateTrainerCardTrainerPic(void)
} }
else else
{ {
CreateTrainerCardTrainerPicSprite(PlayerGenderToFrontTrainerPicId_Debug(sTrainerCardDataPtr->trainerCard.rse.gender, TRUE), TRUE, CreateTrainerCardTrainerPicSprite(PlayerGenderToFrontTrainerPicId(sTrainerCardDataPtr->trainerCard.rse.gender, TRUE), TRUE,
sTrainerPicOffsets[sTrainerCardDataPtr->cardType][sTrainerCardDataPtr->trainerCard.rse.gender][0], sTrainerPicOffsets[sTrainerCardDataPtr->cardType][sTrainerCardDataPtr->trainerCard.rse.gender][0],
sTrainerPicOffsets[sTrainerCardDataPtr->cardType][sTrainerCardDataPtr->trainerCard.rse.gender][1], sTrainerPicOffsets[sTrainerCardDataPtr->cardType][sTrainerCardDataPtr->trainerCard.rse.gender][1],
8, 2); 8, 2);
+1 -1
View File
@@ -273,7 +273,7 @@ u16 CreateTrainerCardTrainerPicSprite(u16 species, bool8 isFrontPic, u16 destX,
return CreateTrainerCardSprite(species, 0, 0, isFrontPic, destX, destY, paletteSlot, windowId, TRUE); return CreateTrainerCardSprite(species, 0, 0, isFrontPic, destX, destY, paletteSlot, windowId, TRUE);
} }
u16 PlayerGenderToFrontTrainerPicId_Debug(u8 gender, bool8 getClass) u16 PlayerGenderToFrontTrainerPicId(u8 gender, bool8 getClass)
{ {
if (getClass == TRUE) if (getClass == TRUE)
{ {
+2 -2
View File
@@ -721,7 +721,7 @@ static void CB2_EndTrainerTowerBattle(void)
static void Task_DoTrainerTowerBattle(u8 taskId) static void Task_DoTrainerTowerBattle(u8 taskId)
{ {
if (BT_IsDone() == TRUE) if (IsBattleTransitionDone() == TRUE)
{ {
gMain.savedCallback = CB2_EndTrainerTowerBattle; gMain.savedCallback = CB2_EndTrainerTowerBattle;
CleanupOverworldWindowsAndTilemaps(); CleanupOverworldWindowsAndTilemaps();
@@ -741,7 +741,7 @@ static void DoTrainerTowerBattle(void)
BuildEnemyParty(); BuildEnemyParty();
CreateTask(Task_DoTrainerTowerBattle, 1); CreateTask(Task_DoTrainerTowerBattle, 1);
PlayMapChosenOrBattleBGM(0); PlayMapChosenOrBattleBGM(0);
BT_StartOnField(BattleSetup_GetBattleTowerBattleTransition()); BattleTransition_StartOnField(BattleSetup_GetBattleTowerBattleTransition());
} }
static void TrainerTowerGetChallengeType(void) static void TrainerTowerGetChallengeType(void)