summaryrefslogtreecommitdiff
path: root/src/battle_controller_opponent.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/battle_controller_opponent.c')
-rw-r--r--src/battle_controller_opponent.c233
1 files changed, 119 insertions, 114 deletions
diff --git a/src/battle_controller_opponent.c b/src/battle_controller_opponent.c
index d241d335f..69f729ee0 100644
--- a/src/battle_controller_opponent.c
+++ b/src/battle_controller_opponent.c
@@ -56,7 +56,7 @@ static void OpponentHandleMoveAnimation(void);
static void OpponentHandlePrintString(void);
static void OpponentHandlePrintSelectionString(void);
static void OpponentHandleChooseAction(void);
-static void OpponentHandleUnknownYesNoBox(void);
+static void OpponentHandleYesNoBox(void);
static void OpponentHandleChooseMove(void);
static void OpponentHandleChooseItem(void);
static void OpponentHandleChoosePokemon(void);
@@ -92,20 +92,20 @@ static void OpponentHandleSpriteInvisibility(void);
static void OpponentHandleBattleAnimation(void);
static void OpponentHandleLinkStandbyMsg(void);
static void OpponentHandleResetActionMoveSelection(void);
-static void OpponentHandleCmd55(void);
+static void OpponentHandleEndLinkBattle(void);
static void OpponentCmdEnd(void);
static void OpponentBufferRunCommand(void);
static void OpponentBufferExecCompleted(void);
-static void sub_805FC80(void);
+static void SwitchIn_HandleSoundAndEnd(void);
static u32 GetOpponentMonData(u8 monId, u8 *dst);
static void SetOpponentMonData(u8 monId);
-static void sub_80613DC(u8 battlerId, bool8 dontClearSubstituteBit);
+static void StartSendOutAnim(u8 battlerId, bool8 dontClearSubstituteBit);
static void DoSwitchOutAnimation(void);
static void OpponentDoMoveAnimation(void);
-static void sub_806280C(struct Sprite *sprite);
-static void sub_8062828(u8 taskId);
-static void sub_8062A2C(void);
+static void SpriteCB_FreeOpponentSprite(struct Sprite *sprite);
+static void Task_StartSendOutAnim(u8 taskId);
+static void EndDrawPartyStatusSummary(void);
static void (*const sOpponentBufferCommands[CONTROLLER_CMDS_COUNT])(void) =
{
@@ -128,7 +128,7 @@ static void (*const sOpponentBufferCommands[CONTROLLER_CMDS_COUNT])(void) =
[CONTROLLER_PRINTSTRING] = OpponentHandlePrintString,
[CONTROLLER_PRINTSTRINGPLAYERONLY] = OpponentHandlePrintSelectionString,
[CONTROLLER_CHOOSEACTION] = OpponentHandleChooseAction,
- [CONTROLLER_UNKNOWNYESNOBOX] = OpponentHandleUnknownYesNoBox,
+ [CONTROLLER_YESNOBOX] = OpponentHandleYesNoBox,
[CONTROLLER_CHOOSEMOVE] = OpponentHandleChooseMove,
[CONTROLLER_OPENBAG] = OpponentHandleChooseItem,
[CONTROLLER_CHOOSEPOKEMON] = OpponentHandleChoosePokemon,
@@ -164,14 +164,14 @@ static void (*const sOpponentBufferCommands[CONTROLLER_CMDS_COUNT])(void) =
[CONTROLLER_BATTLEANIMATION] = OpponentHandleBattleAnimation,
[CONTROLLER_LINKSTANDBYMSG] = OpponentHandleLinkStandbyMsg,
[CONTROLLER_RESETACTIONMOVESELECTION] = OpponentHandleResetActionMoveSelection,
- [CONTROLLER_55] = OpponentHandleCmd55,
+ [CONTROLLER_ENDLINKBATTLE] = OpponentHandleEndLinkBattle,
[CONTROLLER_TERMINATOR_NOP] = OpponentCmdEnd
};
// unknown unused data
static const u8 sUnused[] = {0xB0, 0xB0, 0xC8, 0x98, 0x28, 0x28, 0x28, 0x20};
-static void nullsub_26(void)
+static void OpponentDummy(void)
{
}
@@ -203,7 +203,7 @@ static void CompleteOnBankSpriteCallbackDummy2(void)
OpponentBufferExecCompleted();
}
-static void sub_805F240(void)
+static void FreeTrainerSpriteAfterSlide(void)
{
if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy)
{
@@ -214,40 +214,40 @@ static void sub_805F240(void)
}
}
-static void sub_805F2A8(void)
+static void Intro_DelayAndEnd(void)
{
- if (--gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 == 0xFF)
+ if (--gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].introEndDelay == (u8)-1)
{
- gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 = 0;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].introEndDelay = 0;
OpponentBufferExecCompleted();
}
}
-static void sub_805F2F0(void)
+static void Intro_WaitForShinyAnimAndHealthbox(void)
{
- bool8 var = FALSE;
- bool8 var2;
+ bool8 healthboxAnimDone = FALSE;
+ bool8 twoMons;
if (!IsDoubleBattle() || ((IsDoubleBattle() && (gBattleTypeFlags & BATTLE_TYPE_MULTI)) || (gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS)))
{
if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy)
- var = TRUE;
- var2 = FALSE;
+ healthboxAnimDone = TRUE;
+ twoMons = FALSE;
}
else
{
if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy
&& gSprites[gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy)
- var = TRUE;
- var2 = TRUE;
+ healthboxAnimDone = TRUE;
+ twoMons = TRUE;
}
- gUnknown_020244D8 = &gBattleSpritesDataPtr->healthBoxesData[gActiveBattler];
- gUnknown_020244DC = &gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK];
+ gBattleControllerOpponentHealthboxData = &gBattleSpritesDataPtr->healthBoxesData[gActiveBattler];
+ gBattleControllerOpponentFlankHealthboxData = &gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK];
- if (var)
+ if (healthboxAnimDone)
{
- if (var2 == TRUE)
+ if (twoMons == TRUE)
{
if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim
&& gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].finishedShinyMonAnim)
@@ -256,8 +256,8 @@ static void sub_805F2F0(void)
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = FALSE;
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].triedShinyMonAnim = FALSE;
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].finishedShinyMonAnim = FALSE;
- FreeSpriteTilesByTag(0x27F9);
- FreeSpritePaletteByTag(0x27F9);
+ FreeSpriteTilesByTag(ANIM_TAG_GOLD_STARS);
+ FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS);
}
else
return;
@@ -269,8 +269,8 @@ static void sub_805F2F0(void)
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].triedShinyMonAnim
&& !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].finishedShinyMonAnim)
{
- FreeSpriteTilesByTag(0x27F9);
- FreeSpritePaletteByTag(0x27F9);
+ FreeSpriteTilesByTag(ANIM_TAG_GOLD_STARS);
+ FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS);
}
else
return;
@@ -281,15 +281,15 @@ static void sub_805F2F0(void)
else
return;
- gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 = 3;
- gBattlerControllerFuncs[gActiveBattler] = sub_805F2A8;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].introEndDelay = 3;
+ gBattlerControllerFuncs[gActiveBattler] = Intro_DelayAndEnd;
}
}
-static void sub_805F560(void)
+static void Intro_TryShinyAnimShowHealthbox(void)
{
- bool32 sp = FALSE;
- bool32 r10 = FALSE;
+ bool32 bgmRestored = FALSE;
+ bool32 battlerAnimsDone = FALSE;
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim
&& !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive
@@ -306,27 +306,27 @@ static void sub_805F560(void)
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive)
{
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x80)
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].healthboxSlideInStarted)
{
if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI))
{
UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK], &gEnemyParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]], HEALTHBOX_ALL);
- sub_8076918(gActiveBattler ^ BIT_FLANK);
+ StartHealthboxSlideIn(gActiveBattler ^ BIT_FLANK);
SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]);
}
UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_ALL);
- sub_8076918(gActiveBattler);
+ StartHealthboxSlideIn(gActiveBattler);
SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]);
}
- gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x80 = 1;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].healthboxSlideInStarted = TRUE;
}
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x40
- && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x80
- && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].field_1_x40
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].waitForCry
+ && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].healthboxSlideInStarted
+ && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].waitForCry
&& !IsCryPlayingOrClearCrySongs())
{
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x20)
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].bgmRestored)
{
if (gBattleTypeFlags & BATTLE_TYPE_MULTI && gBattleTypeFlags & BATTLE_TYPE_LINK)
{
@@ -336,48 +336,48 @@ static void sub_805F560(void)
else
m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 0x100);
}
- gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x20 = 1;
- sp = TRUE;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].bgmRestored = TRUE;
+ bgmRestored = TRUE;
}
if (!IsDoubleBattle() || (IsDoubleBattle() && (gBattleTypeFlags & BATTLE_TYPE_MULTI)))
{
- if (gSprites[gUnknown_03005D7C[gActiveBattler]].callback == SpriteCallbackDummy
+ if (gSprites[gBattleControllerData[gActiveBattler]].callback == SpriteCallbackDummy
&& gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy)
{
- r10 = TRUE;
+ battlerAnimsDone = TRUE;
}
}
else
{
- if (gSprites[gUnknown_03005D7C[gActiveBattler]].callback == SpriteCallbackDummy
+ if (gSprites[gBattleControllerData[gActiveBattler]].callback == SpriteCallbackDummy
&& gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy
- && gSprites[gUnknown_03005D7C[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy
+ && gSprites[gBattleControllerData[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy
&& gSprites[gBattlerSpriteIds[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy)
{
- r10 = TRUE;
+ battlerAnimsDone = TRUE;
}
}
- if (sp && r10)
+ if (bgmRestored && battlerAnimsDone)
{
if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI))
{
- DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBattler ^ BIT_FLANK]]);
+ DestroySprite(&gSprites[gBattleControllerData[gActiveBattler ^ BIT_FLANK]]);
SetBattlerShadowSpriteCallback(gActiveBattler ^ BIT_FLANK, GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]], MON_DATA_SPECIES));
}
- DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBattler]]);
+ DestroySprite(&gSprites[gBattleControllerData[gActiveBattler]]);
SetBattlerShadowSpriteCallback(gActiveBattler, GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES));
- gBattleSpritesDataPtr->animationData->field_9_x1 = 0;
- gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x20 = 0;
- gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x80 = 0;
+ gBattleSpritesDataPtr->animationData->introAnimActive = FALSE;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].bgmRestored = FALSE;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].healthboxSlideInStarted = FALSE;
- gBattlerControllerFuncs[gActiveBattler] = sub_805F2F0;
+ gBattlerControllerFuncs[gActiveBattler] = Intro_WaitForShinyAnimAndHealthbox;
}
}
-static void sub_805F994(void)
+static void TryShinyAnimAfterMonAnim(void)
{
if (gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x == 0
&& !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim
@@ -389,8 +389,8 @@ static void sub_805F994(void)
{
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = FALSE;
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = FALSE;
- FreeSpriteTilesByTag(0x27F9);
- FreeSpritePaletteByTag(0x27F9);
+ FreeSpriteTilesByTag(ANIM_TAG_GOLD_STARS);
+ FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS);
OpponentBufferExecCompleted();
}
}
@@ -407,7 +407,7 @@ static void CompleteOnHealthbarDone(void)
OpponentBufferExecCompleted();
}
-static void sub_805FAC4(void)
+static void HideHealthboxAfterMonFaint(void)
{
if (!gSprites[gBattlerSpriteIds[gActiveBattler]].inUse)
{
@@ -416,7 +416,7 @@ static void sub_805FAC4(void)
}
}
-static void sub_805FB08(void)
+static void FreeMonSpriteAfterSwitchOutAnim(void)
{
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive)
{
@@ -453,21 +453,22 @@ static void DoHitAnimBlinkSpriteEffect(void)
}
}
-static void sub_805FC10(void)
+static void SwitchIn_ShowSubstitute(void)
{
if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy)
{
if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute)
InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_MON_TO_SUBSTITUTE);
- gBattlerControllerFuncs[gActiveBattler] = sub_805FC80;
+ gBattlerControllerFuncs[gActiveBattler] = SwitchIn_HandleSoundAndEnd;
}
}
-static void sub_805FC80(void)
+static void SwitchIn_HandleSoundAndEnd(void)
{
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive && !IsCryPlayingOrClearCrySongs())
{
- if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy || gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy_2)
+ if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy
+ || gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy_2)
{
m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 0x100);
OpponentBufferExecCompleted();
@@ -475,36 +476,36 @@ static void sub_805FC80(void)
}
}
-static void sub_805FD00(void)
+static void SwitchIn_ShowHealthbox(void)
{
if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim
&& gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy)
{
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = FALSE;
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = FALSE;
- FreeSpriteTilesByTag(0x27F9);
- FreeSpritePaletteByTag(0x27F9);
+ FreeSpriteTilesByTag(ANIM_TAG_GOLD_STARS);
+ FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS);
StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], 0);
UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_ALL);
- sub_8076918(gActiveBattler);
+ StartHealthboxSlideIn(gActiveBattler);
SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]);
CopyBattleSpriteInvisibility(gActiveBattler);
- gBattlerControllerFuncs[gActiveBattler] = sub_805FC10;
+ gBattlerControllerFuncs[gActiveBattler] = SwitchIn_ShowSubstitute;
}
}
-static void sub_805FDF0(void)
+static void SwitchIn_TryShinyAnim(void)
{
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim
&& !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive)
TryShinyAnimation(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]);
- if (gSprites[gUnknown_03005D7C[gActiveBattler]].callback == SpriteCallbackDummy
+ if (gSprites[gBattleControllerData[gActiveBattler]].callback == SpriteCallbackDummy
&& !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive)
{
- DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBattler]]);
+ DestroySprite(&gSprites[gBattleControllerData[gActiveBattler]]);
SetBattlerShadowSpriteCallback(gActiveBattler, GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES));
- gBattlerControllerFuncs[gActiveBattler] = sub_805FD00;
+ gBattlerControllerFuncs[gActiveBattler] = SwitchIn_ShowHealthbox;
}
}
@@ -1150,25 +1151,25 @@ static void OpponentHandleLoadMonSprite(void)
SetBattlerShadowSpriteCallback(gActiveBattler, GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES));
- gBattlerControllerFuncs[gActiveBattler] = sub_805F994;
+ gBattlerControllerFuncs[gActiveBattler] = TryShinyAnimAfterMonAnim;
}
static void OpponentHandleSwitchInAnim(void)
{
*(gBattleStruct->monToSwitchIntoId + gActiveBattler) = 6;
gBattlerPartyIndexes[gActiveBattler] = gBattleBufferA[gActiveBattler][1];
- sub_80613DC(gActiveBattler, gBattleBufferA[gActiveBattler][2]);
- gBattlerControllerFuncs[gActiveBattler] = sub_805FDF0;
+ StartSendOutAnim(gActiveBattler, gBattleBufferA[gActiveBattler][2]);
+ gBattlerControllerFuncs[gActiveBattler] = SwitchIn_TryShinyAnim;
}
-static void sub_80613DC(u8 battlerId, bool8 dontClearSubstituteBit)
+static void StartSendOutAnim(u8 battlerId, bool8 dontClearSubstituteBit)
{
u16 species;
ClearTemporarySpeciesSpriteData(battlerId, dontClearSubstituteBit);
gBattlerPartyIndexes[battlerId] = gBattleBufferA[battlerId][1];
species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[battlerId]], MON_DATA_SPECIES);
- gUnknown_03005D7C[battlerId] = CreateInvisibleSpriteWithCallback(sub_805D714);
+ gBattleControllerData[battlerId] = CreateInvisibleSpriteWithCallback(SpriteCB_WaitForBattlerBallReleaseAnim);
BattleLoadOpponentMonSpriteGfx(&gEnemyParty[gBattlerPartyIndexes[battlerId]], battlerId);
SetMultiuseSpriteTemplateToPokemon(species, GetBattlerPosition(battlerId));
@@ -1180,8 +1181,8 @@ static void sub_80613DC(u8 battlerId, bool8 dontClearSubstituteBit)
gSprites[gBattlerSpriteIds[battlerId]].data[0] = battlerId;
gSprites[gBattlerSpriteIds[battlerId]].data[2] = species;
- gSprites[gUnknown_03005D7C[battlerId]].data[1] = gBattlerSpriteIds[battlerId];
- gSprites[gUnknown_03005D7C[battlerId]].data[2] = battlerId;
+ gSprites[gBattleControllerData[battlerId]].data[1] = gBattlerSpriteIds[battlerId];
+ gSprites[gBattleControllerData[battlerId]].data[2] = battlerId;
gSprites[gBattlerSpriteIds[battlerId]].oam.paletteNum = battlerId;
@@ -1190,7 +1191,7 @@ static void sub_80613DC(u8 battlerId, bool8 dontClearSubstituteBit)
gSprites[gBattlerSpriteIds[battlerId]].invisible = TRUE;
gSprites[gBattlerSpriteIds[battlerId]].callback = SpriteCallbackDummy;
- gSprites[gUnknown_03005D7C[battlerId]].data[0] = DoPokeballSendOutAnimation(0, POKEBALL_OPPONENT_SENDOUT);
+ gSprites[gBattleControllerData[battlerId]].data[0] = DoPokeballSendOutAnimation(0, POKEBALL_OPPONENT_SENDOUT);
}
static void OpponentHandleReturnMonToBall(void)
@@ -1225,12 +1226,14 @@ static void DoSwitchOutAnimation(void)
{
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0;
InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SWITCH_OUT_OPPONENT_MON);
- gBattlerControllerFuncs[gActiveBattler] = sub_805FB08;
+ gBattlerControllerFuncs[gActiveBattler] = FreeMonSpriteAfterSwitchOutAnim;
}
break;
}
}
+#define sSpeedX data[0]
+
static void OpponentHandleDrawTrainerPic(void)
{
u32 trainerPicId;
@@ -1308,10 +1311,10 @@ static void OpponentHandleDrawTrainerPic(void)
GetBattlerSpriteSubpriority(gActiveBattler));
gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = -240;
- gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 2;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].sSpeedX = 2;
gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicId].tag);
gSprites[gBattlerSpriteIds[gActiveBattler]].oam.affineParam = trainerPicId;
- gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_805D7AC;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].callback = SpriteCB_TrainerSlideIn;
gBattlerControllerFuncs[gActiveBattler] = CompleteOnBattlerSpriteCallbackDummy;
}
@@ -1378,14 +1381,16 @@ static void OpponentHandleTrainerSlide(void)
gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = 96;
gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.x += 32;
- gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = -2;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].sSpeedX = -2;
gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicId].tag);
gSprites[gBattlerSpriteIds[gActiveBattler]].oam.affineParam = trainerPicId;
- gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_805D7AC;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].callback = SpriteCB_TrainerSlideIn;
gBattlerControllerFuncs[gActiveBattler] = CompleteOnBankSpriteCallbackDummy2;
}
+#undef sSpeedX
+
static void OpponentHandleTrainerSlideBack(void)
{
SetSpritePrimaryCoordsFromSecondaryCoords(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
@@ -1394,7 +1399,7 @@ static void OpponentHandleTrainerSlideBack(void)
gSprites[gBattlerSpriteIds[gActiveBattler]].data[4] = gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.y;
gSprites[gBattlerSpriteIds[gActiveBattler]].callback = StartAnimLinearTranslation;
StoreSpriteCallbackInData6(&gSprites[gBattlerSpriteIds[gActiveBattler]], SpriteCallbackDummy);
- gBattlerControllerFuncs[gActiveBattler] = sub_805F240;
+ gBattlerControllerFuncs[gActiveBattler] = FreeTrainerSpriteAfterSlide;
}
static void OpponentHandleFaintAnimation(void)
@@ -1412,7 +1417,7 @@ static void OpponentHandleFaintAnimation(void)
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0;
PlaySE12WithPanning(SE_FAINT, SOUND_PAN_TARGET);
gSprites[gBattlerSpriteIds[gActiveBattler]].callback = SpriteCB_FaintOpponentMon;
- gBattlerControllerFuncs[gActiveBattler] = sub_805FAC4;
+ gBattlerControllerFuncs[gActiveBattler] = HideHealthboxAfterMonFaint;
}
}
}
@@ -1439,7 +1444,7 @@ static void OpponentHandlePause(void)
static void OpponentHandleMoveAnimation(void)
{
- if (!mplay_80342A4(gActiveBattler))
+ if (!IsBattleSEPlaying(gActiveBattler))
{
u16 move = gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8);
@@ -1481,7 +1486,7 @@ static void OpponentDoMoveAnimation(void)
case 1:
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive)
{
- sub_805EB9C(ST_OAM_AFFINE_OFF);
+ SetBattlerSpriteAffineMode(ST_OAM_AFFINE_OFF);
DoMoveAnim(move);
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 2;
}
@@ -1490,7 +1495,7 @@ static void OpponentDoMoveAnimation(void)
gAnimScriptCallback();
if (!gAnimScriptActive)
{
- sub_805EB9C(ST_OAM_AFFINE_NORMAL);
+ SetBattlerSpriteAffineMode(ST_OAM_AFFINE_NORMAL);
if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute && multihit < 2)
{
InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_MON_TO_SUBSTITUTE);
@@ -1535,7 +1540,7 @@ static void OpponentHandleChooseAction(void)
OpponentBufferExecCompleted();
}
-static void OpponentHandleUnknownYesNoBox(void)
+static void OpponentHandleYesNoBox(void)
{
OpponentBufferExecCompleted();
}
@@ -1703,7 +1708,7 @@ static void OpponentHandleExpUpdate(void)
static void OpponentHandleStatusIconUpdate(void)
{
- if (!mplay_80342A4(gActiveBattler))
+ if (!IsBattleSEPlaying(gActiveBattler))
{
u8 battlerId;
@@ -1716,7 +1721,7 @@ static void OpponentHandleStatusIconUpdate(void)
static void OpponentHandleStatusAnimation(void)
{
- if (!mplay_80342A4(gActiveBattler))
+ if (!IsBattleSEPlaying(gActiveBattler))
{
InitAndLaunchChosenStatusAnimation(gBattleBufferA[gActiveBattler][1],
gBattleBufferA[gActiveBattler][2] | (gBattleBufferA[gActiveBattler][3] << 8) | (gBattleBufferA[gActiveBattler][4] << 16) | (gBattleBufferA[gActiveBattler][5] << 24));
@@ -1867,26 +1872,26 @@ static void OpponentHandleIntroTrainerBallThrow(void)
gSprites[gBattlerSpriteIds[gActiveBattler]].data[4] = gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.y;
gSprites[gBattlerSpriteIds[gActiveBattler]].callback = StartAnimLinearTranslation;
- StoreSpriteCallbackInData6(&gSprites[gBattlerSpriteIds[gActiveBattler]], sub_806280C);
+ StoreSpriteCallbackInData6(&gSprites[gBattlerSpriteIds[gActiveBattler]], SpriteCB_FreeOpponentSprite);
- taskId = CreateTask(sub_8062828, 5);
+ taskId = CreateTask(Task_StartSendOutAnim, 5);
gTasks[taskId].data[0] = gActiveBattler;
if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusSummaryShown)
gTasks[gBattlerStatusSummaryTaskId[gActiveBattler]].func = Task_HidePartyStatusSummary;
- gBattleSpritesDataPtr->animationData->field_9_x1 = 1;
- gBattlerControllerFuncs[gActiveBattler] = nullsub_26;
+ gBattleSpritesDataPtr->animationData->introAnimActive = TRUE;
+ gBattlerControllerFuncs[gActiveBattler] = OpponentDummy;
}
-static void sub_806280C(struct Sprite *sprite)
+static void SpriteCB_FreeOpponentSprite(struct Sprite *sprite)
{
FreeTrainerFrontPicPalette(sprite->oam.affineParam);
FreeSpriteOamMatrix(sprite);
DestroySprite(sprite);
}
-static void sub_8062828(u8 taskId)
+static void Task_StartSendOutAnim(u8 taskId)
{
u8 savedActiveBank = gActiveBattler;
@@ -1894,23 +1899,23 @@ static void sub_8062828(u8 taskId)
if (!IsDoubleBattle() || (gBattleTypeFlags & BATTLE_TYPE_MULTI))
{
gBattleBufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler];
- sub_80613DC(gActiveBattler, FALSE);
+ StartSendOutAnim(gActiveBattler, FALSE);
}
else if ((gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS))
{
gBattleBufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler];
- sub_80613DC(gActiveBattler, FALSE);
+ StartSendOutAnim(gActiveBattler, FALSE);
}
else
{
gBattleBufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler];
- sub_80613DC(gActiveBattler, FALSE);
+ StartSendOutAnim(gActiveBattler, FALSE);
gActiveBattler ^= BIT_FLANK;
gBattleBufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler];
- sub_80613DC(gActiveBattler, FALSE);
+ StartSendOutAnim(gActiveBattler, FALSE);
gActiveBattler ^= BIT_FLANK;
}
- gBattlerControllerFuncs[gActiveBattler] = sub_805F560;
+ gBattlerControllerFuncs[gActiveBattler] = Intro_TryShinyAnimShowHealthbox;
gActiveBattler = savedActiveBank;
DestroyTask(taskId);
}
@@ -1939,20 +1944,20 @@ static void OpponentHandleDrawPartyStatusSummary(void)
}
gBattlerStatusSummaryTaskId[gActiveBattler] = CreatePartyStatusSummarySprites(gActiveBattler, (struct HpAndStatus *)&gBattleBufferA[gActiveBattler][4], gBattleBufferA[gActiveBattler][1], gBattleBufferA[gActiveBattler][2]);
- gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5 = 0;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusDelayTimer = 0;
if (gBattleBufferA[gActiveBattler][2] != 0)
- gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5 = 0x5D;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusDelayTimer = 93;
- gBattlerControllerFuncs[gActiveBattler] = sub_8062A2C;
+ gBattlerControllerFuncs[gActiveBattler] = EndDrawPartyStatusSummary;
}
}
-static void sub_8062A2C(void)
+static void EndDrawPartyStatusSummary(void)
{
- if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5++ > 0x5C)
+ if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusDelayTimer++ > 92)
{
- gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5 = 0;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusDelayTimer = 0;
OpponentBufferExecCompleted();
}
}
@@ -1981,7 +1986,7 @@ static void OpponentHandleSpriteInvisibility(void)
static void OpponentHandleBattleAnimation(void)
{
- if (!mplay_80342A4(gActiveBattler))
+ if (!IsBattleSEPlaying(gActiveBattler))
{
u8 animationId = gBattleBufferA[gActiveBattler][1];
u16 argument = gBattleBufferA[gActiveBattler][2] | (gBattleBufferA[gActiveBattler][3] << 8);
@@ -2003,7 +2008,7 @@ static void OpponentHandleResetActionMoveSelection(void)
OpponentBufferExecCompleted();
}
-static void OpponentHandleCmd55(void)
+static void OpponentHandleEndLinkBattle(void)
{
if (gBattleTypeFlags & BATTLE_TYPE_LINK && !(gBattleTypeFlags & BATTLE_TYPE_IS_MASTER))
{