Merge branch 'master' into battle4_fixes
This commit is contained in:
@@ -4767,7 +4767,7 @@ static void HandleEndTurn_BattleWon(void)
|
||||
else if (gBattleTypeFlags & BATTLE_TYPE_TRAINER
|
||||
&& gBattleTypeFlags & (BATTLE_TYPE_FRONTIER | BATTLE_TYPE_x4000000 | BATTLE_TYPE_EREADER_TRAINER))
|
||||
{
|
||||
BattleMusicStop();
|
||||
BattleStopLowHpSound();
|
||||
gBattlescriptCurrInstr = BattleScript_FrontierTrainerBattleWon;
|
||||
|
||||
if (gTrainerBattleOpponent_A == TRAINER_OPPONENT_3FE)
|
||||
@@ -4777,7 +4777,7 @@ static void HandleEndTurn_BattleWon(void)
|
||||
}
|
||||
else if (gBattleTypeFlags & BATTLE_TYPE_TRAINER && !(gBattleTypeFlags & BATTLE_TYPE_LINK))
|
||||
{
|
||||
BattleMusicStop();
|
||||
BattleStopLowHpSound();
|
||||
gBattlescriptCurrInstr = BattleScript_LocalTrainerBattleWon;
|
||||
|
||||
switch (gTrainers[gTrainerBattleOpponent_A].trainerClass)
|
||||
|
||||
@@ -449,7 +449,7 @@ static void sub_8064C58(void)
|
||||
{
|
||||
FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBank]]);
|
||||
DestroySprite(&gSprites[gBankSpriteIds[gActiveBank]]);
|
||||
sub_805EEE0(gActiveBank);
|
||||
EnemyShadowCallbackToSetInvisible(gActiveBank);
|
||||
SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBank]);
|
||||
LinkOpponentBufferExecCompleted();
|
||||
}
|
||||
@@ -485,7 +485,7 @@ static void sub_8064D60(void)
|
||||
if (gSprites[gHealthBoxesIds[gActiveBank]].callback == SpriteCallbackDummy)
|
||||
{
|
||||
if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute)
|
||||
DoSpecialBattleAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_MON_TO_SUBSTITUTE);
|
||||
InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_MON_TO_SUBSTITUTE);
|
||||
|
||||
gBattleBankFunc[gActiveBank] = sub_8064DD0;
|
||||
}
|
||||
@@ -1164,7 +1164,7 @@ static void LinkOpponentHandleLoadMonSprite(void)
|
||||
|
||||
gBankSpriteIds[gActiveBank] = CreateSprite(&gUnknown_0202499C,
|
||||
sub_80A5C6C(gActiveBank, 2),
|
||||
sub_80A6138(gActiveBank),
|
||||
GetBankSpriteDefault_Y(gActiveBank),
|
||||
sub_80A82E4(gActiveBank));
|
||||
|
||||
gSprites[gBankSpriteIds[gActiveBank]].pos2.x = -240;
|
||||
@@ -1198,7 +1198,7 @@ static void sub_8066494(u8 bank, bool8 dontClearSubstituteBit)
|
||||
gBankSpriteIds[bank] = CreateSprite(
|
||||
&gUnknown_0202499C,
|
||||
sub_80A5C6C(bank, 2),
|
||||
sub_80A6138(bank),
|
||||
GetBankSpriteDefault_Y(bank),
|
||||
sub_80A82E4(bank));
|
||||
|
||||
gSprites[gUnknown_03005D7C[bank]].data1 = gBankSpriteIds[bank];
|
||||
@@ -1227,7 +1227,7 @@ static void LinkOpponentHandleReturnMonToBall(void)
|
||||
{
|
||||
FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBank]]);
|
||||
DestroySprite(&gSprites[gBankSpriteIds[gActiveBank]]);
|
||||
sub_805EEE0(gActiveBank);
|
||||
EnemyShadowCallbackToSetInvisible(gActiveBank);
|
||||
SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBank]);
|
||||
LinkOpponentBufferExecCompleted();
|
||||
}
|
||||
@@ -1239,7 +1239,7 @@ static void DoSwitchOutAnimation(void)
|
||||
{
|
||||
case 0:
|
||||
if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute)
|
||||
DoSpecialBattleAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SUBSTITUTE_TO_MON);
|
||||
InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SUBSTITUTE_TO_MON);
|
||||
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 1;
|
||||
break;
|
||||
@@ -1247,7 +1247,7 @@ static void DoSwitchOutAnimation(void)
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive)
|
||||
{
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0;
|
||||
DoSpecialBattleAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SWITCH_OUT_OPPONENT_MON);
|
||||
InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SWITCH_OUT_OPPONENT_MON);
|
||||
gBattleBankFunc[gActiveBank] = sub_8064C58;
|
||||
}
|
||||
break;
|
||||
@@ -1382,7 +1382,7 @@ static void LinkOpponentHandleFaintAnimation(void)
|
||||
if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState == 0)
|
||||
{
|
||||
if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute)
|
||||
DoSpecialBattleAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SUBSTITUTE_TO_MON);
|
||||
InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SUBSTITUTE_TO_MON);
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState++;
|
||||
}
|
||||
else
|
||||
@@ -1455,7 +1455,7 @@ static void LinkOpponentDoMoveAnimation(void)
|
||||
&& !gBattleSpritesDataPtr->bankData[gActiveBank].flag_x8)
|
||||
{
|
||||
gBattleSpritesDataPtr->bankData[gActiveBank].flag_x8 = 1;
|
||||
DoSpecialBattleAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SUBSTITUTE_TO_MON);
|
||||
InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SUBSTITUTE_TO_MON);
|
||||
}
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 1;
|
||||
break;
|
||||
@@ -1474,7 +1474,7 @@ static void LinkOpponentDoMoveAnimation(void)
|
||||
sub_805EB9C(1);
|
||||
if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute && multihit < 2)
|
||||
{
|
||||
DoSpecialBattleAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_MON_TO_SUBSTITUTE);
|
||||
InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_MON_TO_SUBSTITUTE);
|
||||
gBattleSpritesDataPtr->bankData[gActiveBank].flag_x8 = 0;
|
||||
}
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 3;
|
||||
@@ -1483,7 +1483,7 @@ static void LinkOpponentDoMoveAnimation(void)
|
||||
case 3:
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive)
|
||||
{
|
||||
sub_805E394();
|
||||
CopyAllBattleSpritesInvisibilities();
|
||||
TrySetBehindSubstituteSpriteBit(gActiveBank, gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8));
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0;
|
||||
LinkOpponentBufferExecCompleted();
|
||||
@@ -1586,7 +1586,7 @@ static void LinkOpponentHandleStatusAnimation(void)
|
||||
{
|
||||
if (!mplay_80342A4(gActiveBank))
|
||||
{
|
||||
DoStatusAnimation(gBattleBufferA[gActiveBank][1],
|
||||
InitAndLaunchChosenStatusAnimation(gBattleBufferA[gActiveBank][1],
|
||||
gBattleBufferA[gActiveBank][2] | (gBattleBufferA[gActiveBank][3] << 8) | (gBattleBufferA[gActiveBank][4] << 16) | (gBattleBufferA[gActiveBank][5] << 24));
|
||||
gBattleBankFunc[gActiveBank] = CompleteOnFinishedStatusAnimation;
|
||||
}
|
||||
@@ -1698,7 +1698,7 @@ static void LinkOpponentHandlePlayFanfareOrBGM(void)
|
||||
{
|
||||
if (gBattleBufferA[gActiveBank][3])
|
||||
{
|
||||
BattleMusicStop();
|
||||
BattleStopLowHpSound();
|
||||
PlayBGM(gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8));
|
||||
}
|
||||
else
|
||||
@@ -1850,7 +1850,7 @@ static void LinkOpponentHandleBattleAnimation(void)
|
||||
u8 animationId = gBattleBufferA[gActiveBank][1];
|
||||
u16 argument = gBattleBufferA[gActiveBank][2] | (gBattleBufferA[gActiveBank][3] << 8);
|
||||
|
||||
if (DoBattleAnimationFromTable(gActiveBank, gActiveBank, gActiveBank, animationId, argument))
|
||||
if (TryHandleLaunchBattleTableAnimation(gActiveBank, gActiveBank, gActiveBank, animationId, argument))
|
||||
LinkOpponentBufferExecCompleted();
|
||||
else
|
||||
gBattleBankFunc[gActiveBank] = CompleteOnFinishedBattleAnimation;
|
||||
|
||||
@@ -312,7 +312,7 @@ static void CompleteOnHealthbarDone(void)
|
||||
}
|
||||
else
|
||||
{
|
||||
sub_805E990(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
|
||||
HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
|
||||
LinkPartnerBufferExecCompleted();
|
||||
}
|
||||
}
|
||||
@@ -373,7 +373,7 @@ static void sub_814B4E0(void)
|
||||
{
|
||||
CopyBattleSpriteInvisibility(gActiveBank);
|
||||
if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute)
|
||||
DoSpecialBattleAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_MON_TO_SUBSTITUTE);
|
||||
InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_MON_TO_SUBSTITUTE);
|
||||
|
||||
gBattleBankFunc[gActiveBank] = sub_814B554;
|
||||
}
|
||||
@@ -399,7 +399,7 @@ static void sub_814B5A8(void)
|
||||
FreeSpritePaletteByTag(0x27F9);
|
||||
|
||||
CreateTask(c3_0802FDF4, 10);
|
||||
sub_805E990(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
|
||||
HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
|
||||
StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBank]], 0);
|
||||
UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBank], &gPlayerParty[gBattlePartyID[gActiveBank]], HEALTHBOX_ALL);
|
||||
sub_8076918(gActiveBank);
|
||||
@@ -1026,7 +1026,7 @@ static void SetLinkPartnerMonData(u8 monId)
|
||||
break;
|
||||
}
|
||||
|
||||
sub_805E990(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
|
||||
HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
|
||||
}
|
||||
|
||||
static void LinkPartnerHandleSetRawMonData(void)
|
||||
@@ -1050,7 +1050,7 @@ static void LinkPartnerHandleLoadMonSprite(void)
|
||||
|
||||
gBankSpriteIds[gActiveBank] = CreateSprite(&gUnknown_0202499C,
|
||||
sub_80A5C6C(gActiveBank, 2),
|
||||
sub_80A6138(gActiveBank),
|
||||
GetBankSpriteDefault_Y(gActiveBank),
|
||||
sub_80A82E4(gActiveBank));
|
||||
gSprites[gBankSpriteIds[gActiveBank]].pos2.x = -240;
|
||||
gSprites[gBankSpriteIds[gActiveBank]].data0 = gActiveBank;
|
||||
@@ -1081,7 +1081,7 @@ static void sub_814CC98(u8 bank, bool8 dontClearSubstituteBit)
|
||||
gBankSpriteIds[bank] = CreateSprite(
|
||||
&gUnknown_0202499C,
|
||||
sub_80A5C6C(bank, 2),
|
||||
sub_80A6138(bank),
|
||||
GetBankSpriteDefault_Y(bank),
|
||||
sub_80A82E4(bank));
|
||||
|
||||
gSprites[gUnknown_03005D7C[bank]].data1 = gBankSpriteIds[bank];
|
||||
@@ -1121,7 +1121,7 @@ static void DoSwitchOutAnimation(void)
|
||||
{
|
||||
case 0:
|
||||
if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute)
|
||||
DoSpecialBattleAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SUBSTITUTE_TO_MON);
|
||||
InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SUBSTITUTE_TO_MON);
|
||||
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 1;
|
||||
break;
|
||||
@@ -1129,7 +1129,7 @@ static void DoSwitchOutAnimation(void)
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive)
|
||||
{
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0;
|
||||
DoSpecialBattleAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SWITCH_OUT_PLAYER_MON);
|
||||
InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SWITCH_OUT_PLAYER_MON);
|
||||
gBattleBankFunc[gActiveBank] = sub_814B3DC;
|
||||
}
|
||||
break;
|
||||
@@ -1201,7 +1201,7 @@ static void LinkPartnerHandleFaintAnimation(void)
|
||||
if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState == 0)
|
||||
{
|
||||
if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute)
|
||||
DoSpecialBattleAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SUBSTITUTE_TO_MON);
|
||||
InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SUBSTITUTE_TO_MON);
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState++;
|
||||
}
|
||||
else
|
||||
@@ -1209,7 +1209,7 @@ static void LinkPartnerHandleFaintAnimation(void)
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive)
|
||||
{
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0;
|
||||
sub_805E990(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
|
||||
HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
|
||||
PlaySE12WithPanning(SE_POKE_DEAD, PAN_SIDE_PLAYER);
|
||||
gSprites[gBankSpriteIds[gActiveBank]].data1 = 0;
|
||||
gSprites[gBankSpriteIds[gActiveBank]].data2 = 5;
|
||||
@@ -1277,7 +1277,7 @@ static void LinkPartnerDoMoveAnimation(void)
|
||||
&& !gBattleSpritesDataPtr->bankData[gActiveBank].flag_x8)
|
||||
{
|
||||
gBattleSpritesDataPtr->bankData[gActiveBank].flag_x8 = 1;
|
||||
DoSpecialBattleAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SUBSTITUTE_TO_MON);
|
||||
InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SUBSTITUTE_TO_MON);
|
||||
}
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 1;
|
||||
break;
|
||||
@@ -1296,7 +1296,7 @@ static void LinkPartnerDoMoveAnimation(void)
|
||||
sub_805EB9C(1);
|
||||
if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute && multihit < 2)
|
||||
{
|
||||
DoSpecialBattleAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_MON_TO_SUBSTITUTE);
|
||||
InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_MON_TO_SUBSTITUTE);
|
||||
gBattleSpritesDataPtr->bankData[gActiveBank].flag_x8 = 0;
|
||||
}
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 3;
|
||||
@@ -1305,7 +1305,7 @@ static void LinkPartnerDoMoveAnimation(void)
|
||||
case 3:
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive)
|
||||
{
|
||||
sub_805E394();
|
||||
CopyAllBattleSpritesInvisibilities();
|
||||
TrySetBehindSubstituteSpriteBit(gActiveBank, gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8));
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0;
|
||||
LinkPartnerBufferExecCompleted();
|
||||
@@ -1408,7 +1408,7 @@ static void LinkPartnerHandleStatusAnimation(void)
|
||||
{
|
||||
if (!mplay_80342A4(gActiveBank))
|
||||
{
|
||||
DoStatusAnimation(gBattleBufferA[gActiveBank][1],
|
||||
InitAndLaunchChosenStatusAnimation(gBattleBufferA[gActiveBank][1],
|
||||
gBattleBufferA[gActiveBank][2] | (gBattleBufferA[gActiveBank][3] << 8) | (gBattleBufferA[gActiveBank][4] << 16) | (gBattleBufferA[gActiveBank][5] << 24));
|
||||
gBattleBankFunc[gActiveBank] = CompleteOnFinishedStatusAnimation;
|
||||
}
|
||||
@@ -1520,7 +1520,7 @@ static void LinkPartnerHandlePlayFanfareOrBGM(void)
|
||||
{
|
||||
if (gBattleBufferA[gActiveBank][3])
|
||||
{
|
||||
BattleMusicStop();
|
||||
BattleStopLowHpSound();
|
||||
PlayBGM(gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8));
|
||||
}
|
||||
else
|
||||
@@ -1683,7 +1683,7 @@ static void LinkPartnerHandleBattleAnimation(void)
|
||||
u8 animationId = gBattleBufferA[gActiveBank][1];
|
||||
u16 argument = gBattleBufferA[gActiveBank][2] | (gBattleBufferA[gActiveBank][3] << 8);
|
||||
|
||||
if (DoBattleAnimationFromTable(gActiveBank, gActiveBank, gActiveBank, animationId, argument))
|
||||
if (TryHandleLaunchBattleTableAnimation(gActiveBank, gActiveBank, gActiveBank, animationId, argument))
|
||||
LinkPartnerBufferExecCompleted();
|
||||
else
|
||||
gBattleBankFunc[gActiveBank] = CompleteOnFinishedBattleAnimation;
|
||||
|
||||
@@ -437,7 +437,7 @@ static void sub_805FB08(void)
|
||||
{
|
||||
FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBank]]);
|
||||
DestroySprite(&gSprites[gBankSpriteIds[gActiveBank]]);
|
||||
sub_805EEE0(gActiveBank);
|
||||
EnemyShadowCallbackToSetInvisible(gActiveBank);
|
||||
SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBank]);
|
||||
OpponentBufferExecCompleted();
|
||||
}
|
||||
@@ -473,7 +473,7 @@ static void sub_805FC10(void)
|
||||
if (gSprites[gHealthBoxesIds[gActiveBank]].callback == SpriteCallbackDummy)
|
||||
{
|
||||
if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute)
|
||||
DoSpecialBattleAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_MON_TO_SUBSTITUTE);
|
||||
InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_MON_TO_SUBSTITUTE);
|
||||
gBattleBankFunc[gActiveBank] = sub_805FC80;
|
||||
}
|
||||
}
|
||||
@@ -1152,7 +1152,7 @@ static void OpponentHandleLoadMonSprite(void)
|
||||
|
||||
gBankSpriteIds[gActiveBank] = CreateSprite(&gUnknown_0202499C,
|
||||
sub_80A5C6C(gActiveBank, 2),
|
||||
sub_80A6138(gActiveBank),
|
||||
GetBankSpriteDefault_Y(gActiveBank),
|
||||
sub_80A82E4(gActiveBank));
|
||||
|
||||
gSprites[gBankSpriteIds[gActiveBank]].pos2.x = -240;
|
||||
@@ -1187,7 +1187,7 @@ static void sub_80613DC(u8 bank, bool8 dontClearSubstituteBit)
|
||||
|
||||
gBankSpriteIds[bank] = CreateSprite(&gUnknown_0202499C,
|
||||
sub_80A5C6C(bank, 2),
|
||||
sub_80A6138(bank),
|
||||
GetBankSpriteDefault_Y(bank),
|
||||
sub_80A82E4(bank));
|
||||
|
||||
gSprites[gBankSpriteIds[bank]].data0 = bank;
|
||||
@@ -1217,7 +1217,7 @@ static void OpponentHandleReturnMonToBall(void)
|
||||
{
|
||||
FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBank]]);
|
||||
DestroySprite(&gSprites[gBankSpriteIds[gActiveBank]]);
|
||||
sub_805EEE0(gActiveBank);
|
||||
EnemyShadowCallbackToSetInvisible(gActiveBank);
|
||||
SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBank]);
|
||||
OpponentBufferExecCompleted();
|
||||
}
|
||||
@@ -1229,7 +1229,7 @@ static void DoSwitchOutAnimation(void)
|
||||
{
|
||||
case 0:
|
||||
if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute)
|
||||
DoSpecialBattleAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SUBSTITUTE_TO_MON);
|
||||
InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SUBSTITUTE_TO_MON);
|
||||
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 1;
|
||||
break;
|
||||
@@ -1237,7 +1237,7 @@ static void DoSwitchOutAnimation(void)
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive)
|
||||
{
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0;
|
||||
DoSpecialBattleAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SWITCH_OUT_OPPONENT_MON);
|
||||
InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SWITCH_OUT_OPPONENT_MON);
|
||||
gBattleBankFunc[gActiveBank] = sub_805FB08;
|
||||
}
|
||||
break;
|
||||
@@ -1415,7 +1415,7 @@ static void OpponentHandleFaintAnimation(void)
|
||||
if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState == 0)
|
||||
{
|
||||
if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute)
|
||||
DoSpecialBattleAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SUBSTITUTE_TO_MON);
|
||||
InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SUBSTITUTE_TO_MON);
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState++;
|
||||
}
|
||||
else
|
||||
@@ -1487,7 +1487,7 @@ static void OpponentDoMoveAnimation(void)
|
||||
&& !gBattleSpritesDataPtr->bankData[gActiveBank].flag_x8)
|
||||
{
|
||||
gBattleSpritesDataPtr->bankData[gActiveBank].flag_x8 = 1;
|
||||
DoSpecialBattleAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SUBSTITUTE_TO_MON);
|
||||
InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SUBSTITUTE_TO_MON);
|
||||
}
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 1;
|
||||
break;
|
||||
@@ -1506,7 +1506,7 @@ static void OpponentDoMoveAnimation(void)
|
||||
sub_805EB9C(1);
|
||||
if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute && multihit < 2)
|
||||
{
|
||||
DoSpecialBattleAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_MON_TO_SUBSTITUTE);
|
||||
InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_MON_TO_SUBSTITUTE);
|
||||
gBattleSpritesDataPtr->bankData[gActiveBank].flag_x8 = 0;
|
||||
}
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 3;
|
||||
@@ -1515,7 +1515,7 @@ static void OpponentDoMoveAnimation(void)
|
||||
case 3:
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive)
|
||||
{
|
||||
sub_805E394();
|
||||
CopyAllBattleSpritesInvisibilities();
|
||||
TrySetBehindSubstituteSpriteBit(gActiveBank, gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8));
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0;
|
||||
OpponentBufferExecCompleted();
|
||||
@@ -1731,7 +1731,7 @@ static void OpponentHandleStatusAnimation(void)
|
||||
{
|
||||
if (!mplay_80342A4(gActiveBank))
|
||||
{
|
||||
DoStatusAnimation(gBattleBufferA[gActiveBank][1],
|
||||
InitAndLaunchChosenStatusAnimation(gBattleBufferA[gActiveBank][1],
|
||||
gBattleBufferA[gActiveBank][2] | (gBattleBufferA[gActiveBank][3] << 8) | (gBattleBufferA[gActiveBank][4] << 16) | (gBattleBufferA[gActiveBank][5] << 24));
|
||||
gBattleBankFunc[gActiveBank] = CompleteOnFinishedStatusAnimation;
|
||||
}
|
||||
@@ -1843,7 +1843,7 @@ static void OpponentHandlePlayFanfareOrBGM(void)
|
||||
{
|
||||
if (gBattleBufferA[gActiveBank][3])
|
||||
{
|
||||
BattleMusicStop();
|
||||
BattleStopLowHpSound();
|
||||
PlayBGM(gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8));
|
||||
}
|
||||
else
|
||||
@@ -2000,7 +2000,7 @@ static void OpponentHandleBattleAnimation(void)
|
||||
u8 animationId = gBattleBufferA[gActiveBank][1];
|
||||
u16 argument = gBattleBufferA[gActiveBank][2] | (gBattleBufferA[gActiveBank][3] << 8);
|
||||
|
||||
if (DoBattleAnimationFromTable(gActiveBank, gActiveBank, gActiveBank, animationId, argument))
|
||||
if (TryHandleLaunchBattleTableAnimation(gActiveBank, gActiveBank, gActiveBank, animationId, argument))
|
||||
OpponentBufferExecCompleted();
|
||||
else
|
||||
gBattleBankFunc[gActiveBank] = CompleteOnFinishedBattleAnimation;
|
||||
|
||||
@@ -1008,10 +1008,10 @@ static void sub_805896C(void)
|
||||
FreeSpriteTilesByTag(0x27F9);
|
||||
FreeSpritePaletteByTag(0x27F9);
|
||||
|
||||
sub_805E990(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
|
||||
HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
|
||||
|
||||
if (IsDoubleBattle())
|
||||
sub_805E990(&gPlayerParty[gBattlePartyID[gActiveBank ^ BIT_MON]], gActiveBank ^ BIT_MON);
|
||||
HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank ^ BIT_MON]], gActiveBank ^ BIT_MON);
|
||||
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_9 = 3;
|
||||
gBattleBankFunc[gActiveBank] = sub_8058924;
|
||||
@@ -1107,7 +1107,7 @@ static void sub_8058EDC(void)
|
||||
FreeSpritePaletteByTag(0x27F9);
|
||||
|
||||
if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute)
|
||||
DoSpecialBattleAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_MON_TO_SUBSTITUTE);
|
||||
InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_MON_TO_SUBSTITUTE);
|
||||
|
||||
gBattleBankFunc[gActiveBank] = sub_8058FC0;
|
||||
}
|
||||
@@ -1119,7 +1119,7 @@ static void sub_8058FC0(void)
|
||||
&& !IsCryPlayingOrClearCrySongs())
|
||||
{
|
||||
m4aMPlayVolumeControl(&gMPlay_BGM, 0xFFFF, 0x100);
|
||||
sub_805E990(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
|
||||
HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
|
||||
PlayerBufferExecCompleted();
|
||||
}
|
||||
}
|
||||
@@ -1164,7 +1164,7 @@ static void CompleteOnHealthbarDone(void)
|
||||
}
|
||||
else
|
||||
{
|
||||
sub_805E990(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
|
||||
HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
|
||||
PlayerBufferExecCompleted();
|
||||
}
|
||||
}
|
||||
@@ -1305,7 +1305,7 @@ static void sub_8059544(u8 taskId)
|
||||
if (IsDoubleBattle() == TRUE && monIndex == gBattlePartyID[bank ^ BIT_MON])
|
||||
bank ^= BIT_MON;
|
||||
|
||||
DoSpecialBattleAnimation(bank, bank, bank, B_ANIM_LVL_UP);
|
||||
InitAndLaunchSpecialAnimation(bank, bank, bank, B_ANIM_LVL_UP);
|
||||
gTasks[taskId].func = sub_80595A4;
|
||||
}
|
||||
|
||||
@@ -2193,7 +2193,7 @@ static void SetPlayerMonData(u8 monId)
|
||||
break;
|
||||
}
|
||||
|
||||
sub_805E990(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
|
||||
HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
|
||||
}
|
||||
|
||||
static void PlayerHandleSetRawMonData(void)
|
||||
@@ -2238,7 +2238,7 @@ static void sub_805B258(u8 bank, bool8 dontClearSubstituteBit)
|
||||
gBankSpriteIds[bank] = CreateSprite(
|
||||
&gUnknown_0202499C,
|
||||
sub_80A5C6C(bank, 2),
|
||||
sub_80A6138(bank),
|
||||
GetBankSpriteDefault_Y(bank),
|
||||
sub_80A82E4(bank));
|
||||
|
||||
gSprites[gUnknown_03005D7C[bank]].data1 = gBankSpriteIds[bank];
|
||||
@@ -2278,7 +2278,7 @@ static void DoSwitchOutAnimation(void)
|
||||
{
|
||||
case 0:
|
||||
if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute)
|
||||
DoSpecialBattleAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SUBSTITUTE_TO_MON);
|
||||
InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SUBSTITUTE_TO_MON);
|
||||
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 1;
|
||||
break;
|
||||
@@ -2286,7 +2286,7 @@ static void DoSwitchOutAnimation(void)
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive)
|
||||
{
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0;
|
||||
DoSpecialBattleAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SWITCH_OUT_PLAYER_MON);
|
||||
InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SWITCH_OUT_PLAYER_MON);
|
||||
gBattleBankFunc[gActiveBank] = sub_8059744;
|
||||
}
|
||||
break;
|
||||
@@ -2434,7 +2434,7 @@ static void PlayerHandleFaintAnimation(void)
|
||||
if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState == 0)
|
||||
{
|
||||
if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute)
|
||||
DoSpecialBattleAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SUBSTITUTE_TO_MON);
|
||||
InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SUBSTITUTE_TO_MON);
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState++;
|
||||
}
|
||||
else
|
||||
@@ -2442,7 +2442,7 @@ static void PlayerHandleFaintAnimation(void)
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive)
|
||||
{
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0;
|
||||
sub_805E990(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
|
||||
HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
|
||||
PlaySE12WithPanning(SE_POKE_DEAD, PAN_SIDE_PLAYER);
|
||||
gSprites[gBankSpriteIds[gActiveBank]].data1 = 0;
|
||||
gSprites[gBankSpriteIds[gActiveBank]].data2 = 5;
|
||||
@@ -2462,7 +2462,7 @@ static void PlayerHandleSuccessBallThrowAnim(void)
|
||||
{
|
||||
gBattleSpritesDataPtr->animationData->ballThrowCaseId = BALL_3_SHAKES_SUCCESS;
|
||||
gDoingBattleAnim = TRUE;
|
||||
DoSpecialBattleAnimation(gActiveBank, gActiveBank, GetBankByIdentity(IDENTITY_OPPONENT_MON1), B_ANIM_BALL_THROW);
|
||||
InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, GetBankByIdentity(IDENTITY_OPPONENT_MON1), B_ANIM_BALL_THROW);
|
||||
gBattleBankFunc[gActiveBank] = CompleteOnSpecialAnimDone;
|
||||
}
|
||||
|
||||
@@ -2472,7 +2472,7 @@ static void PlayerHandleBallThrowAnim(void)
|
||||
|
||||
gBattleSpritesDataPtr->animationData->ballThrowCaseId = ballThrowCaseId;
|
||||
gDoingBattleAnim = TRUE;
|
||||
DoSpecialBattleAnimation(gActiveBank, gActiveBank, GetBankByIdentity(IDENTITY_OPPONENT_MON1), B_ANIM_BALL_THROW);
|
||||
InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, GetBankByIdentity(IDENTITY_OPPONENT_MON1), B_ANIM_BALL_THROW);
|
||||
gBattleBankFunc[gActiveBank] = CompleteOnSpecialAnimDone;
|
||||
}
|
||||
|
||||
@@ -2525,7 +2525,7 @@ static void PlayerDoMoveAnimation(void)
|
||||
&& !gBattleSpritesDataPtr->bankData[gActiveBank].flag_x8)
|
||||
{
|
||||
gBattleSpritesDataPtr->bankData[gActiveBank].flag_x8 = 1;
|
||||
DoSpecialBattleAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SUBSTITUTE_TO_MON);
|
||||
InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SUBSTITUTE_TO_MON);
|
||||
}
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 1;
|
||||
break;
|
||||
@@ -2544,7 +2544,7 @@ static void PlayerDoMoveAnimation(void)
|
||||
sub_805EB9C(1);
|
||||
if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute && multihit < 2)
|
||||
{
|
||||
DoSpecialBattleAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_MON_TO_SUBSTITUTE);
|
||||
InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_MON_TO_SUBSTITUTE);
|
||||
gBattleSpritesDataPtr->bankData[gActiveBank].flag_x8 = 0;
|
||||
}
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 3;
|
||||
@@ -2553,7 +2553,7 @@ static void PlayerDoMoveAnimation(void)
|
||||
case 3:
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive)
|
||||
{
|
||||
sub_805E394();
|
||||
CopyAllBattleSpritesInvisibilities();
|
||||
TrySetBehindSubstituteSpriteBit(gActiveBank, gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8));
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0;
|
||||
PlayerBufferExecCompleted();
|
||||
@@ -2709,7 +2709,7 @@ static void PlayerHandleChoosePokemon(void)
|
||||
|
||||
static void PlayerHandleCmd23(void)
|
||||
{
|
||||
BattleMusicStop();
|
||||
BattleStopLowHpSound();
|
||||
BeginNormalPaletteFade(-1, 2, 0, 16, 0);
|
||||
PlayerBufferExecCompleted();
|
||||
}
|
||||
@@ -2788,7 +2788,7 @@ static void PlayerHandleStatusAnimation(void)
|
||||
{
|
||||
if (!mplay_80342A4(gActiveBank))
|
||||
{
|
||||
DoStatusAnimation(gBattleBufferA[gActiveBank][1],
|
||||
InitAndLaunchChosenStatusAnimation(gBattleBufferA[gActiveBank][1],
|
||||
gBattleBufferA[gActiveBank][2] | (gBattleBufferA[gActiveBank][3] << 8) | (gBattleBufferA[gActiveBank][4] << 16) | (gBattleBufferA[gActiveBank][5] << 24));
|
||||
gBattleBankFunc[gActiveBank] = CompleteOnFinishedStatusAnimation;
|
||||
}
|
||||
@@ -2930,7 +2930,7 @@ static void PlayerHandlePlayFanfareOrBGM(void)
|
||||
{
|
||||
if (gBattleBufferA[gActiveBank][3])
|
||||
{
|
||||
BattleMusicStop();
|
||||
BattleStopLowHpSound();
|
||||
PlayBGM(gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8));
|
||||
}
|
||||
else
|
||||
@@ -3088,7 +3088,7 @@ static void PlayerHandleBattleAnimation(void)
|
||||
u8 animationId = gBattleBufferA[gActiveBank][1];
|
||||
u16 argument = gBattleBufferA[gActiveBank][2] | (gBattleBufferA[gActiveBank][3] << 8);
|
||||
|
||||
if (DoBattleAnimationFromTable(gActiveBank, gActiveBank, gActiveBank, animationId, argument))
|
||||
if (TryHandleLaunchBattleTableAnimation(gActiveBank, gActiveBank, gActiveBank, animationId, argument))
|
||||
PlayerBufferExecCompleted();
|
||||
else
|
||||
gBattleBankFunc[gActiveBank] = CompleteOnFinishedBattleAnimation;
|
||||
|
||||
@@ -327,7 +327,7 @@ static void CompleteOnHealthbarDone(void)
|
||||
}
|
||||
else
|
||||
{
|
||||
sub_805E990(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
|
||||
HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
|
||||
PlayerPartnerBufferExecCompleted();
|
||||
}
|
||||
}
|
||||
@@ -469,7 +469,7 @@ static void sub_81BB628(u8 taskId)
|
||||
if (IsDoubleBattle() == TRUE && monIndex == gBattlePartyID[bank ^ BIT_MON])
|
||||
bank ^= BIT_MON;
|
||||
|
||||
DoSpecialBattleAnimation(bank, bank, bank, B_ANIM_LVL_UP);
|
||||
InitAndLaunchSpecialAnimation(bank, bank, bank, B_ANIM_LVL_UP);
|
||||
gTasks[taskId].func = sub_81BB688;
|
||||
}
|
||||
|
||||
@@ -560,7 +560,7 @@ static void sub_81BB92C(void)
|
||||
{
|
||||
CopyBattleSpriteInvisibility(gActiveBank);
|
||||
if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute)
|
||||
DoSpecialBattleAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_MON_TO_SUBSTITUTE);
|
||||
InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_MON_TO_SUBSTITUTE);
|
||||
|
||||
gBattleBankFunc[gActiveBank] = sub_81BB9A0;
|
||||
}
|
||||
@@ -586,7 +586,7 @@ static void sub_81BB9F4(void)
|
||||
FreeSpritePaletteByTag(0x27F9);
|
||||
|
||||
CreateTask(c3_0802FDF4, 10);
|
||||
sub_805E990(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
|
||||
HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
|
||||
StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBank]], 0);
|
||||
UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBank], &gPlayerParty[gBattlePartyID[gActiveBank]], HEALTHBOX_ALL);
|
||||
sub_8076918(gActiveBank);
|
||||
@@ -1213,7 +1213,7 @@ static void SetPlayerPartnerMonData(u8 monId)
|
||||
break;
|
||||
}
|
||||
|
||||
sub_805E990(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
|
||||
HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
|
||||
}
|
||||
|
||||
static void PlayerPartnerHandleSetRawMonData(void)
|
||||
@@ -1237,7 +1237,7 @@ static void PlayerPartnerHandleLoadMonSprite(void)
|
||||
|
||||
gBankSpriteIds[gActiveBank] = CreateSprite(&gUnknown_0202499C,
|
||||
sub_80A5C6C(gActiveBank, 2),
|
||||
sub_80A6138(gActiveBank),
|
||||
GetBankSpriteDefault_Y(gActiveBank),
|
||||
sub_80A82E4(gActiveBank));
|
||||
gSprites[gBankSpriteIds[gActiveBank]].pos2.x = -240;
|
||||
gSprites[gBankSpriteIds[gActiveBank]].data0 = gActiveBank;
|
||||
@@ -1268,7 +1268,7 @@ static void sub_81BD0E4(u8 bank, bool8 dontClearSubstituteBit)
|
||||
gBankSpriteIds[bank] = CreateSprite(
|
||||
&gUnknown_0202499C,
|
||||
sub_80A5C6C(bank, 2),
|
||||
sub_80A6138(bank),
|
||||
GetBankSpriteDefault_Y(bank),
|
||||
sub_80A82E4(bank));
|
||||
|
||||
gSprites[gUnknown_03005D7C[bank]].data1 = gBankSpriteIds[bank];
|
||||
@@ -1308,7 +1308,7 @@ static void DoSwitchOutAnimation(void)
|
||||
{
|
||||
case 0:
|
||||
if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute)
|
||||
DoSpecialBattleAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SUBSTITUTE_TO_MON);
|
||||
InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SUBSTITUTE_TO_MON);
|
||||
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 1;
|
||||
break;
|
||||
@@ -1316,7 +1316,7 @@ static void DoSwitchOutAnimation(void)
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive)
|
||||
{
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0;
|
||||
DoSpecialBattleAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SWITCH_OUT_PLAYER_MON);
|
||||
InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SWITCH_OUT_PLAYER_MON);
|
||||
gBattleBankFunc[gActiveBank] = sub_81BB828;
|
||||
}
|
||||
break;
|
||||
@@ -1395,7 +1395,7 @@ static void PlayerPartnerHandleFaintAnimation(void)
|
||||
if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState == 0)
|
||||
{
|
||||
if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute)
|
||||
DoSpecialBattleAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SUBSTITUTE_TO_MON);
|
||||
InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SUBSTITUTE_TO_MON);
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState++;
|
||||
}
|
||||
else
|
||||
@@ -1403,7 +1403,7 @@ static void PlayerPartnerHandleFaintAnimation(void)
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive)
|
||||
{
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0;
|
||||
sub_805E990(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
|
||||
HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
|
||||
PlaySE12WithPanning(SE_POKE_DEAD, PAN_SIDE_PLAYER);
|
||||
gSprites[gBankSpriteIds[gActiveBank]].data1 = 0;
|
||||
gSprites[gBankSpriteIds[gActiveBank]].data2 = 5;
|
||||
@@ -1470,7 +1470,7 @@ static void PlayerPartnerDoMoveAnimation(void)
|
||||
&& !gBattleSpritesDataPtr->bankData[gActiveBank].flag_x8)
|
||||
{
|
||||
gBattleSpritesDataPtr->bankData[gActiveBank].flag_x8 = 1;
|
||||
DoSpecialBattleAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SUBSTITUTE_TO_MON);
|
||||
InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SUBSTITUTE_TO_MON);
|
||||
}
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 1;
|
||||
break;
|
||||
@@ -1489,7 +1489,7 @@ static void PlayerPartnerDoMoveAnimation(void)
|
||||
sub_805EB9C(1);
|
||||
if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute && multihit < 2)
|
||||
{
|
||||
DoSpecialBattleAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_MON_TO_SUBSTITUTE);
|
||||
InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_MON_TO_SUBSTITUTE);
|
||||
gBattleSpritesDataPtr->bankData[gActiveBank].flag_x8 = 0;
|
||||
}
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 3;
|
||||
@@ -1498,7 +1498,7 @@ static void PlayerPartnerDoMoveAnimation(void)
|
||||
case 3:
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive)
|
||||
{
|
||||
sub_805E394();
|
||||
CopyAllBattleSpritesInvisibilities();
|
||||
TrySetBehindSubstituteSpriteBit(gActiveBank, gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8));
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0;
|
||||
PlayerPartnerBufferExecCompleted();
|
||||
@@ -1661,7 +1661,7 @@ static void PlayerPartnerHandleStatusAnimation(void)
|
||||
{
|
||||
if (!mplay_80342A4(gActiveBank))
|
||||
{
|
||||
DoStatusAnimation(gBattleBufferA[gActiveBank][1],
|
||||
InitAndLaunchChosenStatusAnimation(gBattleBufferA[gActiveBank][1],
|
||||
gBattleBufferA[gActiveBank][2] | (gBattleBufferA[gActiveBank][3] << 8) | (gBattleBufferA[gActiveBank][4] << 16) | (gBattleBufferA[gActiveBank][5] << 24));
|
||||
gBattleBankFunc[gActiveBank] = CompleteOnFinishedStatusAnimation;
|
||||
}
|
||||
@@ -1773,7 +1773,7 @@ static void PlayerPartnerHandlePlayFanfareOrBGM(void)
|
||||
{
|
||||
if (gBattleBufferA[gActiveBank][3])
|
||||
{
|
||||
BattleMusicStop();
|
||||
BattleStopLowHpSound();
|
||||
PlayBGM(gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8));
|
||||
}
|
||||
else
|
||||
@@ -1929,7 +1929,7 @@ static void PlayerPartnerHandleBattleAnimation(void)
|
||||
u8 animationId = gBattleBufferA[gActiveBank][1];
|
||||
u16 argument = gBattleBufferA[gActiveBank][2] | (gBattleBufferA[gActiveBank][3] << 8);
|
||||
|
||||
if (DoBattleAnimationFromTable(gActiveBank, gActiveBank, gActiveBank, animationId, argument))
|
||||
if (TryHandleLaunchBattleTableAnimation(gActiveBank, gActiveBank, gActiveBank, animationId, argument))
|
||||
PlayerPartnerBufferExecCompleted();
|
||||
else
|
||||
gBattleBankFunc[gActiveBank] = CompleteOnFinishedBattleAnimation;
|
||||
|
||||
@@ -433,7 +433,7 @@ static void sub_8186D9C(void)
|
||||
{
|
||||
FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBank]]);
|
||||
DestroySprite(&gSprites[gBankSpriteIds[gActiveBank]]);
|
||||
sub_805EEE0(gActiveBank);
|
||||
EnemyShadowCallbackToSetInvisible(gActiveBank);
|
||||
SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBank]);
|
||||
RecordedOpponentBufferExecCompleted();
|
||||
}
|
||||
@@ -469,7 +469,7 @@ static void sub_8186EA4(void)
|
||||
if (gSprites[gHealthBoxesIds[gActiveBank]].callback == SpriteCallbackDummy)
|
||||
{
|
||||
if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute)
|
||||
DoSpecialBattleAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_MON_TO_SUBSTITUTE);
|
||||
InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_MON_TO_SUBSTITUTE);
|
||||
|
||||
gBattleBankFunc[gActiveBank] = sub_8186F14;
|
||||
}
|
||||
@@ -1149,7 +1149,7 @@ static void RecordedOpponentHandleLoadMonSprite(void)
|
||||
|
||||
gBankSpriteIds[gActiveBank] = CreateSprite(&gUnknown_0202499C,
|
||||
sub_80A5C6C(gActiveBank, 2),
|
||||
sub_80A6138(gActiveBank),
|
||||
GetBankSpriteDefault_Y(gActiveBank),
|
||||
sub_80A82E4(gActiveBank));
|
||||
|
||||
|
||||
@@ -1184,7 +1184,7 @@ static void sub_81885D8(u8 bank, bool8 dontClearSubstituteBit)
|
||||
|
||||
gBankSpriteIds[bank] = CreateSprite(&gUnknown_0202499C,
|
||||
sub_80A5C6C(bank, 2),
|
||||
sub_80A6138(bank),
|
||||
GetBankSpriteDefault_Y(bank),
|
||||
sub_80A82E4(bank));
|
||||
|
||||
gSprites[gUnknown_03005D7C[bank]].data1 = gBankSpriteIds[bank];
|
||||
@@ -1213,7 +1213,7 @@ static void RecordedOpponentHandleReturnMonToBall(void)
|
||||
{
|
||||
FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBank]]);
|
||||
DestroySprite(&gSprites[gBankSpriteIds[gActiveBank]]);
|
||||
sub_805EEE0(gActiveBank);
|
||||
EnemyShadowCallbackToSetInvisible(gActiveBank);
|
||||
SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBank]);
|
||||
RecordedOpponentBufferExecCompleted();
|
||||
}
|
||||
@@ -1225,7 +1225,7 @@ static void DoSwitchOutAnimation(void)
|
||||
{
|
||||
case 0:
|
||||
if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute)
|
||||
DoSpecialBattleAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SUBSTITUTE_TO_MON);
|
||||
InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SUBSTITUTE_TO_MON);
|
||||
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 1;
|
||||
break;
|
||||
@@ -1233,7 +1233,7 @@ static void DoSwitchOutAnimation(void)
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive)
|
||||
{
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0;
|
||||
DoSpecialBattleAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SWITCH_OUT_OPPONENT_MON);
|
||||
InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SWITCH_OUT_OPPONENT_MON);
|
||||
gBattleBankFunc[gActiveBank] = sub_8186D9C;
|
||||
}
|
||||
break;
|
||||
@@ -1314,7 +1314,7 @@ static void RecordedOpponentHandleFaintAnimation(void)
|
||||
if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState == 0)
|
||||
{
|
||||
if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute)
|
||||
DoSpecialBattleAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SUBSTITUTE_TO_MON);
|
||||
InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SUBSTITUTE_TO_MON);
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState++;
|
||||
}
|
||||
else
|
||||
@@ -1386,7 +1386,7 @@ static void RecordedOpponentDoMoveAnimation(void)
|
||||
&& !gBattleSpritesDataPtr->bankData[gActiveBank].flag_x8)
|
||||
{
|
||||
gBattleSpritesDataPtr->bankData[gActiveBank].flag_x8 = 1;
|
||||
DoSpecialBattleAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SUBSTITUTE_TO_MON);
|
||||
InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SUBSTITUTE_TO_MON);
|
||||
}
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 1;
|
||||
break;
|
||||
@@ -1405,7 +1405,7 @@ static void RecordedOpponentDoMoveAnimation(void)
|
||||
sub_805EB9C(1);
|
||||
if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute && multihit < 2)
|
||||
{
|
||||
DoSpecialBattleAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_MON_TO_SUBSTITUTE);
|
||||
InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_MON_TO_SUBSTITUTE);
|
||||
gBattleSpritesDataPtr->bankData[gActiveBank].flag_x8 = 0;
|
||||
}
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 3;
|
||||
@@ -1414,7 +1414,7 @@ static void RecordedOpponentDoMoveAnimation(void)
|
||||
case 3:
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive)
|
||||
{
|
||||
sub_805E394();
|
||||
CopyAllBattleSpritesInvisibilities();
|
||||
TrySetBehindSubstituteSpriteBit(gActiveBank, gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8));
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0;
|
||||
RecordedOpponentBufferExecCompleted();
|
||||
@@ -1530,7 +1530,7 @@ static void RecordedOpponentHandleStatusAnimation(void)
|
||||
{
|
||||
if (!mplay_80342A4(gActiveBank))
|
||||
{
|
||||
DoStatusAnimation(gBattleBufferA[gActiveBank][1],
|
||||
InitAndLaunchChosenStatusAnimation(gBattleBufferA[gActiveBank][1],
|
||||
gBattleBufferA[gActiveBank][2] | (gBattleBufferA[gActiveBank][3] << 8) | (gBattleBufferA[gActiveBank][4] << 16) | (gBattleBufferA[gActiveBank][5] << 24));
|
||||
gBattleBankFunc[gActiveBank] = CompleteOnFinishedStatusAnimation;
|
||||
}
|
||||
@@ -1642,7 +1642,7 @@ static void RecordedOpponentHandlePlayFanfareOrBGM(void)
|
||||
{
|
||||
if (gBattleBufferA[gActiveBank][3])
|
||||
{
|
||||
BattleMusicStop();
|
||||
BattleStopLowHpSound();
|
||||
PlayBGM(gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8));
|
||||
}
|
||||
else
|
||||
@@ -1794,7 +1794,7 @@ static void RecordedOpponentHandleBattleAnimation(void)
|
||||
u8 animationId = gBattleBufferA[gActiveBank][1];
|
||||
u16 argument = gBattleBufferA[gActiveBank][2] | (gBattleBufferA[gActiveBank][3] << 8);
|
||||
|
||||
if (DoBattleAnimationFromTable(gActiveBank, gActiveBank, gActiveBank, animationId, argument))
|
||||
if (TryHandleLaunchBattleTableAnimation(gActiveBank, gActiveBank, gActiveBank, animationId, argument))
|
||||
RecordedOpponentBufferExecCompleted();
|
||||
else
|
||||
gBattleBankFunc[gActiveBank] = CompleteOnFinishedBattleAnimation;
|
||||
|
||||
@@ -272,9 +272,9 @@ static void sub_8189AA0(void)
|
||||
FreeSpriteTilesByTag(0x27F9);
|
||||
FreeSpritePaletteByTag(0x27F9);
|
||||
|
||||
sub_805E990(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
|
||||
HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
|
||||
if (IsDoubleBattle())
|
||||
sub_805E990(&gPlayerParty[gBattlePartyID[gActiveBank ^ BIT_MON]], gActiveBank ^ BIT_MON);
|
||||
HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank ^ BIT_MON]], gActiveBank ^ BIT_MON);
|
||||
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_9 = 3;
|
||||
gBattleBankFunc[gActiveBank] = sub_8189A58;
|
||||
@@ -397,7 +397,7 @@ static void CompleteOnHealthbarDone(void)
|
||||
}
|
||||
else
|
||||
{
|
||||
sub_805E990(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
|
||||
HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
|
||||
RecordedPlayerBufferExecCompleted();
|
||||
}
|
||||
}
|
||||
@@ -458,7 +458,7 @@ static void sub_818A2B4(void)
|
||||
{
|
||||
CopyBattleSpriteInvisibility(gActiveBank);
|
||||
if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute)
|
||||
DoSpecialBattleAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_MON_TO_SUBSTITUTE);
|
||||
InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_MON_TO_SUBSTITUTE);
|
||||
|
||||
gBattleBankFunc[gActiveBank] = sub_818A328;
|
||||
}
|
||||
@@ -484,7 +484,7 @@ static void sub_818A37C(void)
|
||||
FreeSpritePaletteByTag(0x27F9);
|
||||
|
||||
CreateTask(c3_0802FDF4, 10);
|
||||
sub_805E990(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
|
||||
HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
|
||||
StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBank]], 0);
|
||||
UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBank], &gPlayerParty[gBattlePartyID[gActiveBank]], HEALTHBOX_ALL);
|
||||
sub_8076918(gActiveBank);
|
||||
@@ -1111,7 +1111,7 @@ static void SetRecordedPlayerMonData(u8 monId)
|
||||
break;
|
||||
}
|
||||
|
||||
sub_805E990(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
|
||||
HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
|
||||
}
|
||||
|
||||
static void RecordedPlayerHandleSetRawMonData(void)
|
||||
@@ -1135,7 +1135,7 @@ static void RecordedPlayerHandleLoadMonSprite(void)
|
||||
|
||||
gBankSpriteIds[gActiveBank] = CreateSprite(&gUnknown_0202499C,
|
||||
sub_80A5C6C(gActiveBank, 2),
|
||||
sub_80A6138(gActiveBank),
|
||||
GetBankSpriteDefault_Y(gActiveBank),
|
||||
sub_80A82E4(gActiveBank));
|
||||
gSprites[gBankSpriteIds[gActiveBank]].pos2.x = -240;
|
||||
gSprites[gBankSpriteIds[gActiveBank]].data0 = gActiveBank;
|
||||
@@ -1166,7 +1166,7 @@ static void sub_818BA6C(u8 bank, bool8 dontClearSubstituteBit)
|
||||
gBankSpriteIds[bank] = CreateSprite(
|
||||
&gUnknown_0202499C,
|
||||
sub_80A5C6C(bank, 2),
|
||||
sub_80A6138(bank),
|
||||
GetBankSpriteDefault_Y(bank),
|
||||
sub_80A82E4(bank));
|
||||
|
||||
gSprites[gUnknown_03005D7C[bank]].data1 = gBankSpriteIds[bank];
|
||||
@@ -1206,7 +1206,7 @@ static void DoSwitchOutAnimation(void)
|
||||
{
|
||||
case 0:
|
||||
if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute)
|
||||
DoSpecialBattleAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SUBSTITUTE_TO_MON);
|
||||
InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SUBSTITUTE_TO_MON);
|
||||
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 1;
|
||||
break;
|
||||
@@ -1214,7 +1214,7 @@ static void DoSwitchOutAnimation(void)
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive)
|
||||
{
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0;
|
||||
DoSpecialBattleAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SWITCH_OUT_PLAYER_MON);
|
||||
InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SWITCH_OUT_PLAYER_MON);
|
||||
gBattleBankFunc[gActiveBank] = sub_818A1B0;
|
||||
}
|
||||
break;
|
||||
@@ -1313,7 +1313,7 @@ static void RecordedPlayerHandleFaintAnimation(void)
|
||||
if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState == 0)
|
||||
{
|
||||
if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute)
|
||||
DoSpecialBattleAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SUBSTITUTE_TO_MON);
|
||||
InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SUBSTITUTE_TO_MON);
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState++;
|
||||
}
|
||||
else
|
||||
@@ -1321,7 +1321,7 @@ static void RecordedPlayerHandleFaintAnimation(void)
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive)
|
||||
{
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0;
|
||||
sub_805E990(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
|
||||
HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
|
||||
PlaySE12WithPanning(SE_POKE_DEAD, -64);
|
||||
gSprites[gBankSpriteIds[gActiveBank]].data1 = 0;
|
||||
gSprites[gBankSpriteIds[gActiveBank]].data2 = 5;
|
||||
@@ -1388,7 +1388,7 @@ static void RecordedPlayerDoMoveAnimation(void)
|
||||
&& !gBattleSpritesDataPtr->bankData[gActiveBank].flag_x8)
|
||||
{
|
||||
gBattleSpritesDataPtr->bankData[gActiveBank].flag_x8 = 1;
|
||||
DoSpecialBattleAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SUBSTITUTE_TO_MON);
|
||||
InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SUBSTITUTE_TO_MON);
|
||||
}
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 1;
|
||||
break;
|
||||
@@ -1407,7 +1407,7 @@ static void RecordedPlayerDoMoveAnimation(void)
|
||||
sub_805EB9C(1);
|
||||
if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute && multihit < 2)
|
||||
{
|
||||
DoSpecialBattleAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_MON_TO_SUBSTITUTE);
|
||||
InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_MON_TO_SUBSTITUTE);
|
||||
gBattleSpritesDataPtr->bankData[gActiveBank].flag_x8 = 0;
|
||||
}
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 3;
|
||||
@@ -1416,7 +1416,7 @@ static void RecordedPlayerDoMoveAnimation(void)
|
||||
case 3:
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive)
|
||||
{
|
||||
sub_805E394();
|
||||
CopyAllBattleSpritesInvisibilities();
|
||||
TrySetBehindSubstituteSpriteBit(gActiveBank, gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8));
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0;
|
||||
RecordedPlayerBufferExecCompleted();
|
||||
@@ -1549,7 +1549,7 @@ static void RecordedPlayerHandleStatusAnimation(void)
|
||||
{
|
||||
if (!mplay_80342A4(gActiveBank))
|
||||
{
|
||||
DoStatusAnimation(gBattleBufferA[gActiveBank][1],
|
||||
InitAndLaunchChosenStatusAnimation(gBattleBufferA[gActiveBank][1],
|
||||
gBattleBufferA[gActiveBank][2] | (gBattleBufferA[gActiveBank][3] << 8) | (gBattleBufferA[gActiveBank][4] << 16) | (gBattleBufferA[gActiveBank][5] << 24));
|
||||
gBattleBankFunc[gActiveBank] = CompleteOnFinishedStatusAnimation;
|
||||
}
|
||||
@@ -1661,7 +1661,7 @@ static void RecordedPlayerHandlePlayFanfareOrBGM(void)
|
||||
{
|
||||
if (gBattleBufferA[gActiveBank][3])
|
||||
{
|
||||
BattleMusicStop();
|
||||
BattleStopLowHpSound();
|
||||
PlayBGM(gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8));
|
||||
}
|
||||
else
|
||||
@@ -1813,7 +1813,7 @@ static void RecordedPlayerHandleBattleAnimation(void)
|
||||
u8 animationId = gBattleBufferA[gActiveBank][1];
|
||||
u16 argument = gBattleBufferA[gActiveBank][2] | (gBattleBufferA[gActiveBank][3] << 8);
|
||||
|
||||
if (DoBattleAnimationFromTable(gActiveBank, gActiveBank, gActiveBank, animationId, argument))
|
||||
if (TryHandleLaunchBattleTableAnimation(gActiveBank, gActiveBank, gActiveBank, animationId, argument))
|
||||
RecordedPlayerBufferExecCompleted();
|
||||
else
|
||||
gBattleBankFunc[gActiveBank] = CompleteOnFinishedBattleAnimation;
|
||||
|
||||
@@ -413,7 +413,7 @@ static void SafariHandleSuccessBallThrowAnim(void)
|
||||
{
|
||||
gBattleSpritesDataPtr->animationData->ballThrowCaseId = BALL_3_SHAKES_SUCCESS;
|
||||
gDoingBattleAnim = TRUE;
|
||||
DoSpecialBattleAnimation(gActiveBank, gActiveBank, GetBankByIdentity(IDENTITY_OPPONENT_MON1), B_ANIM_SAFARI_BALL_THROW);
|
||||
InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, GetBankByIdentity(IDENTITY_OPPONENT_MON1), B_ANIM_SAFARI_BALL_THROW);
|
||||
gBattleBankFunc[gActiveBank] = CompleteOnSpecialAnimDone;
|
||||
}
|
||||
|
||||
@@ -423,7 +423,7 @@ static void SafariHandleBallThrowAnim(void)
|
||||
|
||||
gBattleSpritesDataPtr->animationData->ballThrowCaseId = ballThrowCaseId;
|
||||
gDoingBattleAnim = TRUE;
|
||||
DoSpecialBattleAnimation(gActiveBank, gActiveBank, GetBankByIdentity(IDENTITY_OPPONENT_MON1), B_ANIM_SAFARI_BALL_THROW);
|
||||
InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, GetBankByIdentity(IDENTITY_OPPONENT_MON1), B_ANIM_SAFARI_BALL_THROW);
|
||||
gBattleBankFunc[gActiveBank] = CompleteOnSpecialAnimDone;
|
||||
}
|
||||
|
||||
@@ -624,7 +624,7 @@ static void SafariHandlePlayFanfareOrBGM(void)
|
||||
{
|
||||
if (gBattleBufferA[gActiveBank][3])
|
||||
{
|
||||
BattleMusicStop();
|
||||
BattleStopLowHpSound();
|
||||
PlayBGM(gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8));
|
||||
}
|
||||
else
|
||||
@@ -683,7 +683,7 @@ static void SafariHandleBattleAnimation(void)
|
||||
u8 animationId = gBattleBufferA[gActiveBank][1];
|
||||
u16 argument = gBattleBufferA[gActiveBank][2] | (gBattleBufferA[gActiveBank][3] << 8);
|
||||
|
||||
if (DoBattleAnimationFromTable(gActiveBank, gActiveBank, gActiveBank, animationId, argument))
|
||||
if (TryHandleLaunchBattleTableAnimation(gActiveBank, gActiveBank, gActiveBank, animationId, argument))
|
||||
SafariBufferExecCompleted();
|
||||
else
|
||||
gBattleBankFunc[gActiveBank] = CompleteOnFinishedBattleAnimation;
|
||||
|
||||
@@ -369,7 +369,7 @@ static void sub_8168818(void)
|
||||
FreeSpritePaletteByTag(0x27F9);
|
||||
|
||||
CreateTask(c3_0802FDF4, 10);
|
||||
sub_805E990(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
|
||||
HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
|
||||
|
||||
WallyBufferExecCompleted();
|
||||
}
|
||||
@@ -387,7 +387,7 @@ static void CompleteOnHealthbarDone(void)
|
||||
}
|
||||
else
|
||||
{
|
||||
sub_805E990(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
|
||||
HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
|
||||
WallyBufferExecCompleted();
|
||||
}
|
||||
}
|
||||
@@ -1029,7 +1029,7 @@ static void SetWallyMonData(u8 monId)
|
||||
break;
|
||||
}
|
||||
|
||||
sub_805E990(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
|
||||
HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
|
||||
}
|
||||
|
||||
static void WallyHandleSetRawMonData(void)
|
||||
@@ -1051,7 +1051,7 @@ static void WallyHandleReturnMonToBall(void)
|
||||
{
|
||||
if (gBattleBufferA[gActiveBank][1] == 0)
|
||||
{
|
||||
DoSpecialBattleAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SWITCH_OUT_PLAYER_MON);
|
||||
InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SWITCH_OUT_PLAYER_MON);
|
||||
gBattleBankFunc[gActiveBank] = sub_8168A20;
|
||||
}
|
||||
else
|
||||
@@ -1112,7 +1112,7 @@ static void WallyHandleSuccessBallThrowAnim(void)
|
||||
{
|
||||
gBattleSpritesDataPtr->animationData->ballThrowCaseId = BALL_3_SHAKES_SUCCESS;
|
||||
gDoingBattleAnim = TRUE;
|
||||
DoSpecialBattleAnimation(gActiveBank, gActiveBank, GetBankByIdentity(IDENTITY_OPPONENT_MON1), B_ANIM_SAFARI_BALL_THROW);
|
||||
InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, GetBankByIdentity(IDENTITY_OPPONENT_MON1), B_ANIM_SAFARI_BALL_THROW);
|
||||
gBattleBankFunc[gActiveBank] = CompleteOnFinishedAnimation;
|
||||
}
|
||||
|
||||
@@ -1122,7 +1122,7 @@ static void WallyHandleBallThrowAnim(void)
|
||||
|
||||
gBattleSpritesDataPtr->animationData->ballThrowCaseId = ballThrowCaseId;
|
||||
gDoingBattleAnim = TRUE;
|
||||
DoSpecialBattleAnimation(gActiveBank, gActiveBank, GetBankByIdentity(IDENTITY_OPPONENT_MON1), B_ANIM_SAFARI_BALL_THROW);
|
||||
InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, GetBankByIdentity(IDENTITY_OPPONENT_MON1), B_ANIM_SAFARI_BALL_THROW);
|
||||
gBattleBankFunc[gActiveBank] = CompleteOnFinishedAnimation;
|
||||
}
|
||||
|
||||
@@ -1163,7 +1163,7 @@ static void WallyDoMoveAnimation(void)
|
||||
case 0:
|
||||
if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute)
|
||||
{
|
||||
DoSpecialBattleAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SUBSTITUTE_TO_MON);
|
||||
InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SUBSTITUTE_TO_MON);
|
||||
}
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 1;
|
||||
break;
|
||||
@@ -1182,7 +1182,7 @@ static void WallyDoMoveAnimation(void)
|
||||
sub_805EB9C(1);
|
||||
if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute)
|
||||
{
|
||||
DoSpecialBattleAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_MON_TO_SUBSTITUTE);
|
||||
InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_MON_TO_SUBSTITUTE);
|
||||
}
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 3;
|
||||
}
|
||||
@@ -1190,7 +1190,7 @@ static void WallyDoMoveAnimation(void)
|
||||
case 3:
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive)
|
||||
{
|
||||
sub_805E394();
|
||||
CopyAllBattleSpritesInvisibilities();
|
||||
TrySetBehindSubstituteSpriteBit(gActiveBank, gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8));
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0;
|
||||
WallyBufferExecCompleted();
|
||||
@@ -1429,7 +1429,7 @@ static void WallyHandlePlayFanfareOrBGM(void)
|
||||
{
|
||||
if (gBattleBufferA[gActiveBank][3])
|
||||
{
|
||||
BattleMusicStop();
|
||||
BattleStopLowHpSound();
|
||||
PlayBGM(gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8));
|
||||
}
|
||||
else
|
||||
@@ -1496,7 +1496,7 @@ static void sub_816AA80(u8 bank)
|
||||
sub_806A068(species, GetBankIdentity(bank));
|
||||
gBankSpriteIds[bank] = CreateSprite(&gUnknown_0202499C,
|
||||
sub_80A5C6C(bank, 2),
|
||||
sub_80A6138(bank),
|
||||
GetBankSpriteDefault_Y(bank),
|
||||
sub_80A82E4(bank));
|
||||
|
||||
gSprites[gUnknown_03005D7C[bank]].data1 = gBankSpriteIds[bank];
|
||||
@@ -1565,7 +1565,7 @@ static void WallyHandleBattleAnimation(void)
|
||||
u8 animationId = gBattleBufferA[gActiveBank][1];
|
||||
u16 argument = gBattleBufferA[gActiveBank][2] | (gBattleBufferA[gActiveBank][3] << 8);
|
||||
|
||||
if (DoBattleAnimationFromTable(gActiveBank, gActiveBank, gActiveBank, animationId, argument))
|
||||
if (TryHandleLaunchBattleTableAnimation(gActiveBank, gActiveBank, gActiveBank, animationId, argument))
|
||||
WallyBufferExecCompleted();
|
||||
else
|
||||
gBattleBankFunc[gActiveBank] = CompleteOnFinishedBattleAnimation;
|
||||
|
||||
@@ -119,7 +119,7 @@ static void sub_818D0C4(u16 species, u32 otId, u32 personality, u8 paletteSlot,
|
||||
if (paletteTag == 0xFFFF)
|
||||
{
|
||||
gUnknown_0203CCEC.paletteTag |= 0xFFFF;
|
||||
LoadCompressedPalette(species_and_otid_get_pal(species, otId, personality), 0x100 + paletteSlot * 0x10, 0x20);
|
||||
LoadCompressedPalette(GetFrontSpritePalFromSpeciesAndPersonality(species, otId, personality), 0x100 + paletteSlot * 0x10, 0x20);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -146,7 +146,7 @@ static void sub_818D180(u16 species, u32 otId, u32 personality, u8 paletteSlot,
|
||||
{
|
||||
if (!isTrainer)
|
||||
{
|
||||
LoadCompressedPalette(species_and_otid_get_pal(species, otId, personality), paletteSlot * 0x10, 0x20);
|
||||
LoadCompressedPalette(GetFrontSpritePalFromSpeciesAndPersonality(species, otId, personality), paletteSlot * 0x10, 0x20);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
1299
src/battle_gfx_sfx_util.c
Normal file
1299
src/battle_gfx_sfx_util.c
Normal file
File diff suppressed because it is too large
Load Diff
@@ -1239,11 +1239,11 @@ void UpdateHpTextInHealthbox(u8 healthboxSpriteId, s16 value, u8 maxOrCurrent)
|
||||
}
|
||||
|
||||
ConvertIntToDecimalStringN(text + 6, value, STR_CONV_MODE_RIGHT_ALIGN, 3);
|
||||
RenderTextFont9(gMonSpritesGfxPtr->fontPixels, 9, text);
|
||||
RenderTextFont9(gMonSpritesGfxPtr->barFontGfx, 9, text);
|
||||
|
||||
for (i = 0; i < 3; i++)
|
||||
{
|
||||
CpuCopy32(&gMonSpritesGfxPtr->fontPixels[i * 64 + 32],
|
||||
CpuCopy32(&gMonSpritesGfxPtr->barFontGfx[i * 64 + 32],
|
||||
(void*)((OBJ_VRAM0) + 32 * (gSprites[healthboxSpriteId].oam.tileNum + var + i)),
|
||||
0x20);
|
||||
}
|
||||
@@ -1308,19 +1308,19 @@ static void UpdateHpTextInHealthboxInDoubles(u8 healthboxSpriteId, s16 value, u8
|
||||
txtPtr = ConvertIntToDecimalStringN(text + 6, value, STR_CONV_MODE_RIGHT_ALIGN, 3);
|
||||
if (!maxOrCurrent)
|
||||
StringCopy(txtPtr, gText_Slash);
|
||||
RenderTextFont9(gMonSpritesGfxPtr->fontPixels, 9, text);
|
||||
RenderTextFont9(gMonSpritesGfxPtr->barFontGfx, 9, text);
|
||||
|
||||
for (i = var; i < var + 3; i++)
|
||||
{
|
||||
if (i < 3)
|
||||
{
|
||||
CpuCopy32(&gMonSpritesGfxPtr->fontPixels[((i - var) * 64) + 32],
|
||||
CpuCopy32(&gMonSpritesGfxPtr->barFontGfx[((i - var) * 64) + 32],
|
||||
(void*)((OBJ_VRAM0) + 32 * (1 + gSprites[r7].oam.tileNum + i)),
|
||||
0x20);
|
||||
}
|
||||
else
|
||||
{
|
||||
CpuCopy32(&gMonSpritesGfxPtr->fontPixels[((i - var) * 64) + 32],
|
||||
CpuCopy32(&gMonSpritesGfxPtr->barFontGfx[((i - var) * 64) + 32],
|
||||
(void*)((OBJ_VRAM0 + 0x20) + 32 * (i + gSprites[r7].oam.tileNum)),
|
||||
0x20);
|
||||
}
|
||||
@@ -1328,7 +1328,7 @@ static void UpdateHpTextInHealthboxInDoubles(u8 healthboxSpriteId, s16 value, u8
|
||||
|
||||
if (maxOrCurrent == HP_CURRENT)
|
||||
{
|
||||
CpuCopy32(&gMonSpritesGfxPtr->fontPixels[224],
|
||||
CpuCopy32(&gMonSpritesGfxPtr->barFontGfx[224],
|
||||
(void*)((OBJ_VRAM0) + ((gSprites[r7].oam.tileNum + 4) * 32)),
|
||||
0x20);
|
||||
CpuFill32(0, (void*)((OBJ_VRAM0) + (gSprites[r7].oam.tileNum * 32)), 0x20);
|
||||
@@ -1350,15 +1350,15 @@ static void sub_80730D4(u8 healthboxSpriteId, struct Pokemon *mon)
|
||||
{
|
||||
u8 text[20];
|
||||
s32 j, var2;
|
||||
u8 *fontPixels;
|
||||
u8 *barFontGfx;
|
||||
u8 i, var, nature, healthboxSpriteId_2;
|
||||
|
||||
memcpy(text, sUnknown_0832C3C4, sizeof(sUnknown_0832C3C4));
|
||||
fontPixels = &gMonSpritesGfxPtr->fontPixels[0x520 + (GetBankIdentity(gSprites[healthboxSpriteId].data6) * 384)];
|
||||
barFontGfx = &gMonSpritesGfxPtr->barFontGfx[0x520 + (GetBankIdentity(gSprites[healthboxSpriteId].data6) * 384)];
|
||||
var = 5;
|
||||
nature = GetNature(mon);
|
||||
StringCopy(text + 6, gNatureNamePointers[nature]);
|
||||
RenderTextFont9(fontPixels, 9, text);
|
||||
RenderTextFont9(barFontGfx, 9, text);
|
||||
|
||||
for (j = 6, i = 0; i < var; i++, j++)
|
||||
{
|
||||
@@ -1371,18 +1371,18 @@ static void sub_80730D4(u8 healthboxSpriteId, struct Pokemon *mon)
|
||||
else
|
||||
elementId = 43;
|
||||
|
||||
CpuCopy32(GetHealthboxElementGfxPtr(elementId), fontPixels + (i * 64), 0x20);
|
||||
CpuCopy32(GetHealthboxElementGfxPtr(elementId), barFontGfx + (i * 64), 0x20);
|
||||
}
|
||||
|
||||
for (j = 1; j < var + 1; j++)
|
||||
{
|
||||
var2 = (gSprites[healthboxSpriteId].oam.tileNum + (j - (j / 8 * 8)) + (j / 8 * 64)) * 32;
|
||||
CpuCopy32(fontPixels, (void*)(OBJ_VRAM0) + (var2), 0x20);
|
||||
fontPixels += 0x20;
|
||||
CpuCopy32(barFontGfx, (void*)(OBJ_VRAM0) + (var2), 0x20);
|
||||
barFontGfx += 0x20;
|
||||
|
||||
var2 = (8 + gSprites[healthboxSpriteId].oam.tileNum + (j - (j / 8 * 8)) + (j / 8 * 64)) * 32;
|
||||
CpuCopy32(fontPixels, (void*)(OBJ_VRAM0) + (var2), 0x20);
|
||||
fontPixels += 0x20;
|
||||
CpuCopy32(barFontGfx, (void*)(OBJ_VRAM0) + (var2), 0x20);
|
||||
barFontGfx += 0x20;
|
||||
}
|
||||
|
||||
healthboxSpriteId_2 = gSprites[healthboxSpriteId].data5;
|
||||
@@ -1390,20 +1390,20 @@ static void sub_80730D4(u8 healthboxSpriteId, struct Pokemon *mon)
|
||||
ConvertIntToDecimalStringN(text + 9, gBattleStruct->field_7B, STR_CONV_MODE_RIGHT_ALIGN, 2);
|
||||
text[5] = CHAR_SPACE;
|
||||
text[8] = CHAR_SLASH;
|
||||
RenderTextFont9(gMonSpritesGfxPtr->fontPixels, 9, text);
|
||||
RenderTextFont9(gMonSpritesGfxPtr->barFontGfx, 9, text);
|
||||
|
||||
j = healthboxSpriteId_2; // needed to match for some reason
|
||||
for (j = 0; j < 5; j++)
|
||||
{
|
||||
if (j <= 1)
|
||||
{
|
||||
CpuCopy32(&gMonSpritesGfxPtr->fontPixels[0x40 * j + 0x20],
|
||||
CpuCopy32(&gMonSpritesGfxPtr->barFontGfx[0x40 * j + 0x20],
|
||||
(void*)(OBJ_VRAM0) + (gSprites[healthboxSpriteId_2].oam.tileNum + 2 + j) * 32,
|
||||
32);
|
||||
}
|
||||
else
|
||||
{
|
||||
CpuCopy32(&gMonSpritesGfxPtr->fontPixels[0x40 * j + 0x20],
|
||||
CpuCopy32(&gMonSpritesGfxPtr->barFontGfx[0x40 * j + 0x20],
|
||||
(void*)(OBJ_VRAM0 + 0xC0) + (j + gSprites[healthboxSpriteId_2].oam.tileNum) * 32,
|
||||
32);
|
||||
}
|
||||
@@ -2545,19 +2545,19 @@ u8 GetHPBarLevel(s16 hp, s16 maxhp)
|
||||
|
||||
if (hp == maxhp)
|
||||
{
|
||||
result = 4;
|
||||
result = HP_BAR_FULL;
|
||||
}
|
||||
else
|
||||
{
|
||||
u8 fraction = GetScaledHPFraction(hp, maxhp, 48);
|
||||
if (fraction > 24)
|
||||
result = 3;
|
||||
result = HP_BAR_GREEN;
|
||||
else if (fraction > 9)
|
||||
result = 2;
|
||||
result = HP_BAR_YELLOW;
|
||||
else if (fraction > 0)
|
||||
result = 1;
|
||||
result = HP_BAR_RED;
|
||||
else
|
||||
result = 0;
|
||||
result = HP_BAR_EMPTY;
|
||||
}
|
||||
|
||||
return result;
|
||||
|
||||
@@ -1068,22 +1068,33 @@ static const u8 sBallCatchBonuses[] =
|
||||
20, 15, 10, 15 // Ultra, Great, Poke, Safari
|
||||
};
|
||||
|
||||
// could be a 2d array or a struct
|
||||
const ALIGNED(4) u8 gUnknown_0831C494[] =
|
||||
const ALIGNED(4) u8 gUnknown_0831C494[][4] =
|
||||
{
|
||||
0x3d, 0x44, 0x3d, 0x44, 0x14, 0x2d, 0x54, 0x5c,
|
||||
0x46, 0x55, 0x20, 0x5c, 0x26, 0x45, 0x46, 0x55,
|
||||
0x14, 0x5a, 0x46, 0x5c, 0x1e, 0x32, 0x20, 0x5a,
|
||||
0x38, 0x4e, 0x38, 0x4e, 0x19, 0x28, 0x4b, 0x5a,
|
||||
0x45, 0x4b, 0x1c, 0x53, 0x23, 0x2d, 0x1d, 0x23,
|
||||
0x3e, 0x48, 0x1e, 0x32, 0x3a, 0x5f, 0x58, 0x5e,
|
||||
0x22, 0x2d, 0x1d, 0x28, 0x23, 0x28, 0x23, 0x5f,
|
||||
0x38, 0x4e, 0x38, 0x4e, 0x23, 0x50, 0x22, 0x5e,
|
||||
0x2c, 0x5e, 0x22, 0x28, 0x38, 0x4e, 0x38, 0x4e,
|
||||
0x1e, 0x58, 0x1e, 0x58, 0x1e, 0x2b, 0x1b, 0x21,
|
||||
0x28, 0x5a, 0x19, 0x57, 0x12, 0x58, 0x5a, 0x5f,
|
||||
0x58, 0x5e, 0x16, 0x2a, 0x2a, 0x5c, 0x2a, 0x2f,
|
||||
0x38, 0x4e, 0x38, 0x4e
|
||||
{0x3d, 0x44, 0x3d, 0x44},
|
||||
{0x14, 0x2d, 0x54, 0x5c},
|
||||
{0x46, 0x55, 0x20, 0x5c},
|
||||
{0x26, 0x45, 0x46, 0x55},
|
||||
{0x14, 0x5a, 0x46, 0x5c},
|
||||
{0x1e, 0x32, 0x20, 0x5a},
|
||||
{0x38, 0x4e, 0x38, 0x4e},
|
||||
{0x19, 0x28, 0x4b, 0x5a},
|
||||
{0x45, 0x4b, 0x1c, 0x53},
|
||||
{0x23, 0x2d, 0x1d, 0x23},
|
||||
{0x3e, 0x48, 0x1e, 0x32},
|
||||
{0x3a, 0x5f, 0x58, 0x5e},
|
||||
{0x22, 0x2d, 0x1d, 0x28},
|
||||
{0x23, 0x28, 0x23, 0x5f},
|
||||
{0x38, 0x4e, 0x38, 0x4e},
|
||||
{0x23, 0x50, 0x22, 0x5e},
|
||||
{0x2c, 0x5e, 0x22, 0x28},
|
||||
{0x38, 0x4e, 0x38, 0x4e},
|
||||
{0x1e, 0x58, 0x1e, 0x58},
|
||||
{0x1e, 0x2b, 0x1b, 0x21},
|
||||
{0x28, 0x5a, 0x19, 0x57},
|
||||
{0x12, 0x58, 0x5a, 0x5f},
|
||||
{0x58, 0x5e, 0x16, 0x2a},
|
||||
{0x2a, 0x5c, 0x2a, 0x2f},
|
||||
{0x38, 0x4e, 0x38, 0x4e}
|
||||
};
|
||||
|
||||
static const u8 sUnknown_0831C4F8[] =
|
||||
@@ -3531,7 +3542,7 @@ static void atk23_getexp(void)
|
||||
// music change in wild battle after fainting a poke
|
||||
if (!(gBattleTypeFlags & BATTLE_TYPE_TRAINER) && gBattleMons[0].hp && !gBattleStruct->wildVictorySong)
|
||||
{
|
||||
BattleMusicStop();
|
||||
BattleStopLowHpSound();
|
||||
PlayBGM(0x161);
|
||||
gBattleStruct->wildVictorySong++;
|
||||
}
|
||||
@@ -3626,7 +3637,7 @@ static void atk23_getexp(void)
|
||||
if (gBattleBufferB[gActiveBank][0] == CONTROLLER_TWORETURNVALUES && gBattleBufferB[gActiveBank][1] == RET_VALUE_LEVELLED_UP)
|
||||
{
|
||||
if (gBattleTypeFlags & BATTLE_TYPE_TRAINER && gBattlePartyID[gActiveBank] == gBattleStruct->expGetterId)
|
||||
sub_805E990(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
|
||||
HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
|
||||
|
||||
PREPARE_MON_NICK_WITH_PREFIX_BUFFER(gBattleTextBuff1, gActiveBank, gBattleStruct->expGetterId)
|
||||
|
||||
|
||||
@@ -1234,12 +1234,12 @@ static void sub_806E6CC(u8 taskId)
|
||||
DestroyTask(taskId);
|
||||
}
|
||||
|
||||
const u8 *pokemon_get_pal(struct Pokemon *mon)
|
||||
const u8 *GetMonFrontSpritePal(struct Pokemon *mon)
|
||||
{
|
||||
u16 species = GetMonData(mon, MON_DATA_SPECIES2, 0);
|
||||
u32 otId = GetMonData(mon, MON_DATA_OT_ID, 0);
|
||||
u32 personality = GetMonData(mon, MON_DATA_PERSONALITY, 0);
|
||||
return species_and_otid_get_pal(species, otId, personality);
|
||||
return GetFrontSpritePalFromSpeciesAndPersonality(species, otId, personality);
|
||||
}
|
||||
|
||||
// Extracts the upper 16 bits of a 32-bit number
|
||||
@@ -1248,7 +1248,7 @@ const u8 *pokemon_get_pal(struct Pokemon *mon)
|
||||
// Extracts the lower 16 bits of a 32-bit number
|
||||
#define LOHALF(n) ((n) & 0xFFFF)
|
||||
|
||||
const u8 *species_and_otid_get_pal(u16 species, u32 otId, u32 personality)
|
||||
const u8 *GetFrontSpritePalFromSpeciesAndPersonality(u16 species, u32 otId, u32 personality)
|
||||
{
|
||||
u32 shinyValue;
|
||||
|
||||
|
||||
@@ -37,8 +37,8 @@ extern const union AnimCmd * const * const gMonAnimationsSpriteAnimsPtrTable[];
|
||||
extern void dp12_8087EA4(void);
|
||||
extern void trs_config(void);
|
||||
extern bool8 IsDoubleBattle(void);
|
||||
extern u8 sub_80A614C(u8 bank);
|
||||
extern u8 sub_80A6138(u8 bank);
|
||||
extern u8 GetSubstituteSpriteDefault_Y(u8 bank);
|
||||
extern u8 GetBankSpriteDefault_Y(u8 bank);
|
||||
extern u8 sub_80A82E4(u8 bank);
|
||||
extern void sub_806A068(u16 species, u8 bankIdentity);
|
||||
extern void sub_806A12C(u16 backPicId, u8 bankIdentity);
|
||||
@@ -104,7 +104,7 @@ static void CB2_ReshowBattleScreenAfterMenu(void)
|
||||
gReservedSpritePaletteCount = 4;
|
||||
break;
|
||||
case 5:
|
||||
sub_805E350();
|
||||
ClearSpritesHealthboxAnimData();
|
||||
break;
|
||||
case 6:
|
||||
if (BattleLoadAllHealthBoxesGfx(gBattleScripting.reshowHelperState))
|
||||
@@ -217,7 +217,7 @@ static bool8 LoadBankSpriteGfx(u8 bank)
|
||||
if (!gBattleSpritesDataPtr->bankData[bank].behindSubstitute)
|
||||
BattleLoadOpponentMonSpriteGfx(&gEnemyParty[gBattlePartyID[bank]], bank);
|
||||
else
|
||||
BattleLoadSubstituteSpriteGfx(bank, FALSE);
|
||||
BattleLoadSubstituteOrMonSpriteGfx(bank, FALSE);
|
||||
}
|
||||
else if (gBattleTypeFlags & BATTLE_TYPE_SAFARI && bank == 0)
|
||||
DecompressTrainerBackPic(gSaveBlock2Ptr->playerGender, bank);
|
||||
@@ -226,7 +226,7 @@ static bool8 LoadBankSpriteGfx(u8 bank)
|
||||
else if (!gBattleSpritesDataPtr->bankData[bank].behindSubstitute)
|
||||
BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlePartyID[bank]], bank);
|
||||
else
|
||||
BattleLoadSubstituteSpriteGfx(bank, FALSE);
|
||||
BattleLoadSubstituteOrMonSpriteGfx(bank, FALSE);
|
||||
|
||||
gBattleScripting.reshowHelperState = 0;
|
||||
}
|
||||
@@ -250,9 +250,9 @@ static void CreateBankSprite(u8 bank)
|
||||
u8 posY;
|
||||
|
||||
if (gBattleSpritesDataPtr->bankData[bank].behindSubstitute)
|
||||
posY = sub_80A614C(bank);
|
||||
posY = GetSubstituteSpriteDefault_Y(bank);
|
||||
else
|
||||
posY = sub_80A6138(bank);
|
||||
posY = GetBankSpriteDefault_Y(bank);
|
||||
|
||||
if (GetBankSide(bank) != SIDE_PLAYER)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user