Battle controller opponent sync labels from emerald
This commit is contained in:
@@ -83,11 +83,11 @@ static u32 GetOpponentMonData(u8 monId, u8 *dst);
|
||||
static void SetOpponentMonData(u8 monId);
|
||||
static void DoSwitchOutAnimation(void);
|
||||
static void OpponentDoMoveAnimation(void);
|
||||
static void sub_80362E8(void);
|
||||
static void sub_8037A28(u8 battlerId, bool8 dontClearSubstituteBit);
|
||||
static void sub_8038DC4(u8 taskId);
|
||||
static void sub_8038D90(struct Sprite *sprite);
|
||||
static void sub_8038FBC(void);
|
||||
static void SwitchIn_HandleSoundAndEnd(void);
|
||||
static void StartSendOutAnim(u8 battlerId, bool8 dontClearSubstituteBit);
|
||||
static void Task_StartSendOutAnim(u8 taskId);
|
||||
static void SpriteCB_FreeOpponentSprite(struct Sprite *sprite);
|
||||
static void EndDrawPartyStatusSummary(void);
|
||||
|
||||
static void (*const sOpponentBufferCommands[CONTROLLER_CMDS_COUNT])(void) =
|
||||
{
|
||||
@@ -185,7 +185,7 @@ static void CompleteOnBattlerSpriteCallbackDummy2(void)
|
||||
OpponentBufferExecCompleted();
|
||||
}
|
||||
|
||||
static void sub_8035B58(void)
|
||||
static void FreeTrainerSpriteAfterSlide(void)
|
||||
{
|
||||
if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy)
|
||||
{
|
||||
@@ -197,7 +197,7 @@ static void sub_8035B58(void)
|
||||
}
|
||||
}
|
||||
|
||||
static void sub_8035BE8(void)
|
||||
static void Intro_DelayAndEnd(void)
|
||||
{
|
||||
if (--gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].introEndDelay == 0xFF)
|
||||
{
|
||||
@@ -206,7 +206,7 @@ static void sub_8035BE8(void)
|
||||
}
|
||||
}
|
||||
|
||||
static void sub_8035C30(void)
|
||||
static void Intro_WaitForShinyAnimAndHealthbox(void)
|
||||
{
|
||||
bool8 var = FALSE;
|
||||
|
||||
@@ -235,11 +235,11 @@ static void sub_8035C30(void)
|
||||
else
|
||||
m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 256);
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].introEndDelay = 3;
|
||||
gBattlerControllerFuncs[gActiveBattler] = sub_8035BE8;
|
||||
gBattlerControllerFuncs[gActiveBattler] = Intro_DelayAndEnd;
|
||||
}
|
||||
}
|
||||
|
||||
static void sub_8035DF0(void)
|
||||
static void Intro_TryShinyAnimShowHealthbox(void)
|
||||
{
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive)
|
||||
TryShinyAnimation(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]);
|
||||
@@ -264,12 +264,12 @@ static void sub_8035DF0(void)
|
||||
StartHealthboxSlideIn(gActiveBattler);
|
||||
SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]);
|
||||
SetBattlerShadowSpriteCallback(gActiveBattler, GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES));
|
||||
gBattleSpritesDataPtr->animationData->healthboxSlideInStarted = 0;
|
||||
gBattlerControllerFuncs[gActiveBattler] = sub_8035C30;
|
||||
gBattleSpritesDataPtr->animationData->healthboxSlideInStarted = FALSE;
|
||||
gBattlerControllerFuncs[gActiveBattler] = Intro_WaitForShinyAnimAndHealthbox;
|
||||
}
|
||||
}
|
||||
|
||||
static void sub_8035FE8(void)
|
||||
static void TryShinyAnimAfterMonAnim(void)
|
||||
{
|
||||
if (gSprites[gBattlerSpriteIds[gActiveBattler]].animEnded == TRUE
|
||||
&& gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x == 0)
|
||||
@@ -312,7 +312,7 @@ static void CompleteOnHealthbarDone(void)
|
||||
}
|
||||
}
|
||||
|
||||
static void sub_803612C(void)
|
||||
static void HideHealthboxAfterMonFaint(void)
|
||||
{
|
||||
if (!gSprites[gBattlerSpriteIds[gActiveBattler]].inUse)
|
||||
{
|
||||
@@ -321,7 +321,7 @@ static void sub_803612C(void)
|
||||
}
|
||||
}
|
||||
|
||||
static void sub_8036170(void)
|
||||
static void FreeMonSpriteAfterSwitchOutAnim(void)
|
||||
{
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive)
|
||||
{
|
||||
@@ -358,17 +358,17 @@ static void DoHitAnimBlinkSpriteEffect(void)
|
||||
}
|
||||
}
|
||||
|
||||
static void sub_8036278(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_80362E8;
|
||||
gBattlerControllerFuncs[gActiveBattler] = SwitchIn_HandleSoundAndEnd;
|
||||
}
|
||||
}
|
||||
|
||||
static void sub_80362E8(void)
|
||||
static void SwitchIn_HandleSoundAndEnd(void)
|
||||
{
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive && !IsCryPlayingOrClearCrySongs())
|
||||
{
|
||||
@@ -377,7 +377,7 @@ static void sub_80362E8(void)
|
||||
}
|
||||
}
|
||||
|
||||
static void sub_8036334(void)
|
||||
static void SwitchIn_ShowHealthbox(void)
|
||||
{
|
||||
if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim)
|
||||
{
|
||||
@@ -390,11 +390,11 @@ static void sub_8036334(void)
|
||||
StartHealthboxSlideIn(gActiveBattler);
|
||||
SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]);
|
||||
CopyBattleSpriteInvisibility(gActiveBattler);
|
||||
gBattlerControllerFuncs[gActiveBattler] = sub_8036278;
|
||||
gBattlerControllerFuncs[gActiveBattler] = SwitchIn_ShowSubstitute;
|
||||
}
|
||||
}
|
||||
|
||||
static void sub_8036408(void)
|
||||
static void SwitchIn_TryShinyAnim(void)
|
||||
{
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive)
|
||||
TryShinyAnimation(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]);
|
||||
@@ -403,7 +403,7 @@ static void sub_8036408(void)
|
||||
{
|
||||
DestroySprite(&gSprites[gBattleControllerData[gActiveBattler]]);
|
||||
SetBattlerShadowSpriteCallback(gActiveBattler, GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES));
|
||||
gBattlerControllerFuncs[gActiveBattler] = sub_8036334;
|
||||
gBattlerControllerFuncs[gActiveBattler] = SwitchIn_ShowHealthbox;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1045,18 +1045,18 @@ static void OpponentHandleLoadMonSprite(void)
|
||||
StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], gBattleMonForms[gActiveBattler]);
|
||||
if (!(gBattleTypeFlags & BATTLE_TYPE_GHOST))
|
||||
SetBattlerShadowSpriteCallback(gActiveBattler, GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES));
|
||||
gBattlerControllerFuncs[gActiveBattler] = sub_8035FE8;
|
||||
gBattlerControllerFuncs[gActiveBattler] = TryShinyAnimAfterMonAnim;
|
||||
}
|
||||
|
||||
static void OpponentHandleSwitchInAnim(void)
|
||||
{
|
||||
*(gBattleStruct->monToSwitchIntoId + gActiveBattler) = 6;
|
||||
gBattlerPartyIndexes[gActiveBattler] = gBattleBufferA[gActiveBattler][1];
|
||||
sub_8037A28(gActiveBattler, gBattleBufferA[gActiveBattler][2]);
|
||||
gBattlerControllerFuncs[gActiveBattler] = sub_8036408;
|
||||
StartSendOutAnim(gActiveBattler, gBattleBufferA[gActiveBattler][2]);
|
||||
gBattlerControllerFuncs[gActiveBattler] = SwitchIn_TryShinyAnim;
|
||||
}
|
||||
|
||||
static void sub_8037A28(u8 battlerId, bool8 dontClearSubstituteBit)
|
||||
static void StartSendOutAnim(u8 battlerId, bool8 dontClearSubstituteBit)
|
||||
{
|
||||
u16 species;
|
||||
|
||||
@@ -1111,7 +1111,7 @@ static void DoSwitchOutAnimation(void)
|
||||
{
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0;
|
||||
InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SWITCH_OUT_OPPONENT_MON);
|
||||
gBattlerControllerFuncs[gActiveBattler] = sub_8036170;
|
||||
gBattlerControllerFuncs[gActiveBattler] = FreeMonSpriteAfterSwitchOutAnim;
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -1186,7 +1186,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_8035B58;
|
||||
gBattlerControllerFuncs[gActiveBattler] = FreeTrainerSpriteAfterSlide;
|
||||
}
|
||||
|
||||
static void OpponentHandleFaintAnimation(void)
|
||||
@@ -1204,7 +1204,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_803612C;
|
||||
gBattlerControllerFuncs[gActiveBattler] = HideHealthboxAfterMonFaint;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1632,16 +1632,16 @@ static void OpponentHandleIntroTrainerBallThrow(void)
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = 280;
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].data[4] = gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.y;
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].callback = StartAnimLinearTranslation;
|
||||
StoreSpriteCallbackInData6(&gSprites[gBattlerSpriteIds[gActiveBattler]], sub_8038D90);
|
||||
taskId = CreateTask(sub_8038DC4, 5);
|
||||
StoreSpriteCallbackInData6(&gSprites[gBattlerSpriteIds[gActiveBattler]], SpriteCB_FreeOpponentSprite);
|
||||
taskId = CreateTask(Task_StartSendOutAnim, 5);
|
||||
gTasks[taskId].data[0] = gActiveBattler;
|
||||
if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusSummaryShown)
|
||||
gTasks[gBattlerStatusSummaryTaskId[gActiveBattler]].func = Task_HidePartyStatusSummary;
|
||||
gBattleSpritesDataPtr->animationData->healthboxSlideInStarted = 1;
|
||||
gBattleSpritesDataPtr->animationData->healthboxSlideInStarted = TRUE;
|
||||
gBattlerControllerFuncs[gActiveBattler] = nullsub_17;
|
||||
}
|
||||
|
||||
static void sub_8038D90(struct Sprite *sprite)
|
||||
static void SpriteCB_FreeOpponentSprite(struct Sprite *sprite)
|
||||
{
|
||||
FreeTrainerFrontPicPaletteAndTile(sprite->oam.affineParam);
|
||||
sprite->oam.tileNum = sprite->data[5];
|
||||
@@ -1649,7 +1649,7 @@ static void sub_8038D90(struct Sprite *sprite)
|
||||
DestroySprite(sprite);
|
||||
}
|
||||
|
||||
static void sub_8038DC4(u8 taskId)
|
||||
static void Task_StartSendOutAnim(u8 taskId)
|
||||
{
|
||||
u8 savedActiveBattler = gActiveBattler;
|
||||
|
||||
@@ -1657,18 +1657,18 @@ static void sub_8038DC4(u8 taskId)
|
||||
if (!IsDoubleBattle() || (gBattleTypeFlags & BATTLE_TYPE_MULTI))
|
||||
{
|
||||
gBattleBufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler];
|
||||
sub_8037A28(gActiveBattler, FALSE);
|
||||
StartSendOutAnim(gActiveBattler, FALSE);
|
||||
}
|
||||
else
|
||||
{
|
||||
gBattleBufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler];
|
||||
sub_8037A28(gActiveBattler, FALSE);
|
||||
StartSendOutAnim(gActiveBattler, FALSE);
|
||||
gActiveBattler ^= BIT_FLANK;
|
||||
gBattleBufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler];
|
||||
sub_8037A28(gActiveBattler, FALSE);
|
||||
StartSendOutAnim(gActiveBattler, FALSE);
|
||||
gActiveBattler ^= BIT_FLANK;
|
||||
}
|
||||
gBattlerControllerFuncs[gActiveBattler] = sub_8035DF0;
|
||||
gBattlerControllerFuncs[gActiveBattler] = Intro_TryShinyAnimShowHealthbox;
|
||||
gActiveBattler = savedActiveBattler;
|
||||
DestroyTask(taskId);
|
||||
}
|
||||
@@ -1701,11 +1701,11 @@ static void OpponentHandleDrawPartyStatusSummary(void)
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusDelayTimer = 0;
|
||||
if (gBattleBufferA[gActiveBattler][2])
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusDelayTimer = 0x5D;
|
||||
gBattlerControllerFuncs[gActiveBattler] = sub_8038FBC;
|
||||
gBattlerControllerFuncs[gActiveBattler] = EndDrawPartyStatusSummary;
|
||||
}
|
||||
}
|
||||
|
||||
static void sub_8038FBC(void)
|
||||
static void EndDrawPartyStatusSummary(void)
|
||||
{
|
||||
if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusDelayTimer++ > 0x5C)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user