summaryrefslogtreecommitdiff
path: root/src/battle
diff options
context:
space:
mode:
Diffstat (limited to 'src/battle')
-rw-r--r--src/battle/anim/battle_intro.c499
-rw-r--r--src/battle/battle_controller_linkopponent.c4
-rw-r--r--src/battle/battle_controller_linkpartner.c4
-rw-r--r--src/battle/battle_controller_opponent.c4
-rw-r--r--src/battle/battle_controller_player.c4
-rw-r--r--src/battle/battle_controller_safari.c4
-rw-r--r--src/battle/battle_controller_wally.c4
7 files changed, 511 insertions, 12 deletions
diff --git a/src/battle/anim/battle_intro.c b/src/battle/anim/battle_intro.c
new file mode 100644
index 000000000..01f823fa7
--- /dev/null
+++ b/src/battle/anim/battle_intro.c
@@ -0,0 +1,499 @@
+#include "global.h"
+#include "constants/battle_constants.h"
+#include "battle.h"
+#include "battle_anim.h"
+#include "battle_anim_80CA710.h"
+#include "data2.h"
+#include "ewram.h"
+#include "main.h"
+#include "rom_8077ABC.h"
+#include "scanline_effect.h"
+#include "task.h"
+#include "trig.h"
+
+extern u16 gBattleTypeFlags;
+extern u16 gBattle_BG1_X;
+extern u16 gBattle_BG1_Y;
+extern u16 gBattle_BG2_X;
+extern u16 gBattle_BG2_Y;
+extern u16 gBattle_WIN0V;
+extern u16 gUnknown_02024DE8;
+extern u8 gBattleMonForms[];
+
+extern void sub_800FE20(struct Sprite *);
+
+static void BattleIntroTask_ScrollScenery(u8);
+static void BattleIntroTask_FadeScenery(u8);
+static void BattleIntroTask_ScrollAndFadeScenery(u8);
+static void BattleIntroTask_80E4C34(u8);
+
+static const TaskFunc sBattleIntroTaskFuncs[] =
+{
+ BattleIntroTask_ScrollScenery,
+ BattleIntroTask_ScrollScenery,
+ BattleIntroTask_FadeScenery,
+ BattleIntroTask_FadeScenery,
+ BattleIntroTask_FadeScenery,
+ BattleIntroTask_ScrollScenery,
+ BattleIntroTask_ScrollScenery,
+ BattleIntroTask_ScrollScenery,
+ BattleIntroTask_ScrollAndFadeScenery,
+ BattleIntroTask_ScrollAndFadeScenery,
+};
+
+#define tState data[0]
+#define tBgXOffset data[2]
+#define tFramesUntilBg1Slide data[3]
+
+void StartBattleIntroAnim(u8 a)
+{
+ u8 taskId;
+
+ if (gBattleTypeFlags & BATTLE_TYPE_LINK)
+ {
+ taskId = CreateTask(BattleIntroTask_80E4C34, 0);
+ }
+ else if ((gBattleTypeFlags & BATTLE_TYPE_KYOGRE_GROUDON) && gGameVersion != VERSION_RUBY)
+ {
+ a = 3;
+ taskId = CreateTask(BattleIntroTask_FadeScenery, 0);
+ }
+ else
+ {
+ taskId = CreateTask(sBattleIntroTaskFuncs[a], 0);
+ }
+
+ gTasks[taskId].tState = 0;
+ gTasks[taskId].data[1] = a;
+ gTasks[taskId].tBgXOffset = 0;
+ gTasks[taskId].tFramesUntilBg1Slide = 0;
+ gTasks[taskId].data[4] = 0;
+ gTasks[taskId].data[5] = 0;
+ gTasks[taskId].data[6] = 0;
+}
+
+static void EndBattleIntroTask(u8 taskId)
+{
+ DestroyTask(taskId);
+ gBattle_BG1_X = 0;
+ gBattle_BG1_Y = 0;
+ gBattle_BG2_X = 0;
+ gBattle_BG2_Y = 0;
+ REG_BLDCNT = 0;
+ REG_BLDALPHA = 0;
+ REG_BLDY = 0;
+ REG_WININ = 0x3F3F;
+ REG_WINOUT = 0x3F3F;
+}
+
+static void BattleIntroTask_ScrollScenery(u8 taskId)
+{
+ s32 i;
+
+ gBattle_BG1_X += 6;
+
+ switch (gTasks[taskId].tState)
+ {
+ case 0:
+ if (gBattleTypeFlags & BATTLE_TYPE_LINK)
+ {
+ gTasks[taskId].tBgXOffset = 16;
+ gTasks[taskId].tState++;
+ }
+ else
+ {
+ gTasks[taskId].tBgXOffset = 1;
+ gTasks[taskId].tState++;
+ }
+ break;
+ case 1:
+ gTasks[taskId].tBgXOffset--;
+ if (gTasks[taskId].tBgXOffset == 0)
+ {
+ gTasks[taskId].tState++;
+ REG_WININ = 0x3F;
+ }
+ break;
+ case 2:
+ // Open up the window
+ gBattle_WIN0V -= WIN_RANGE(1, 0); // decrement min Y
+ gBattle_WIN0V += WIN_RANGE(0, 1); // increment max Y
+ if ((gBattle_WIN0V & 0xFF00) == 0x3000)
+ {
+ gTasks[taskId].tState++;
+ gTasks[taskId].tBgXOffset = DISPLAY_WIDTH;
+ gTasks[taskId].tFramesUntilBg1Slide = 32;
+ gUnknown_02024DE8 &= ~1;
+ }
+ break;
+ case 3:
+ if (gTasks[taskId].tFramesUntilBg1Slide != 0)
+ {
+ gTasks[taskId].tFramesUntilBg1Slide--;
+ }
+ else
+ {
+ if (gTasks[taskId].data[1] == 1)
+ {
+ if (gBattle_BG1_Y != 0xFFB0)
+ gBattle_BG1_Y -= 2;
+ }
+ else
+ {
+ if (gBattle_BG1_Y != 0xFFC8)
+ gBattle_BG1_Y -= 1;
+ }
+ }
+
+ if ((gBattle_WIN0V & 0xFF00) != 0)
+ gBattle_WIN0V -= 1020;
+
+ if (gTasks[taskId].tBgXOffset != 0)
+ gTasks[taskId].tBgXOffset -= 2;
+
+ // Slide in the top half of the BG from the left
+ for (i = 0; i < DISPLAY_HEIGHT / 2; i++)
+ gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][i] = gTasks[taskId].tBgXOffset;
+ // Slide in the bottom half of the BG from the right
+ for (; i < DISPLAY_HEIGHT; i++)
+ gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][i] = -gTasks[taskId].tBgXOffset;
+
+ if (gTasks[taskId].tBgXOffset == 0)
+ {
+ gScanlineEffect.state = 3;
+ gTasks[taskId].tState++;
+ CpuFill32(0, (void *)(VRAM + 0xE000), 0x800);
+ REG_BG1CNT = 0x9C00;
+ REG_BG2CNT = 0x5E00;
+ }
+ break;
+ case 4:
+ EndBattleIntroTask(taskId);
+ break;
+ }
+}
+
+static void BattleIntroTask_FadeScenery(u8 taskId)
+{
+ s32 i;
+
+ switch (gTasks[taskId].data[1])
+ {
+ case 2:
+ case 4:
+ gBattle_BG1_X += 8;
+ break;
+ case 3:
+ gBattle_BG1_X += 6;
+ break;
+ }
+
+ if (gTasks[taskId].data[1] == 4)
+ {
+ gBattle_BG1_Y = Cos2(gTasks[taskId].data[6]) / 512 - 8;
+ if (gTasks[taskId].data[6] < 0xB4)
+ gTasks[taskId].data[6] += 4;
+ else
+ gTasks[taskId].data[6] += 6;
+ if (gTasks[taskId].data[6] == 0x168)
+ gTasks[taskId].data[6] = 0;
+ }
+
+ switch (gTasks[taskId].tState)
+ {
+ case 0:
+ gTasks[taskId].data[4] = 16;
+ if (gBattleTypeFlags & BATTLE_TYPE_LINK)
+ {
+ gTasks[taskId].tBgXOffset = 16;
+ gTasks[taskId].tState++;
+ }
+ else
+ {
+ gTasks[taskId].tBgXOffset = 1;
+ gTasks[taskId].tState++;
+ }
+ break;
+ case 1:
+ gTasks[taskId].tBgXOffset--;
+ if (gTasks[taskId].tBgXOffset == 0)
+ {
+ gTasks[taskId].tState++;
+ REG_WININ = 0x3F;
+ }
+ break;
+ case 2:
+ // Open up window
+ gBattle_WIN0V -= WIN_RANGE(1, 0); // decrement min Y
+ gBattle_WIN0V += WIN_RANGE(0, 1); // increment max Y
+ if ((gBattle_WIN0V & 0xFF00) == 0x3000)
+ {
+ gTasks[taskId].tState++;
+ gTasks[taskId].tBgXOffset = DISPLAY_WIDTH;
+ gTasks[taskId].tFramesUntilBg1Slide = 32;
+ gTasks[taskId].data[5] = 1;
+ gUnknown_02024DE8 &= ~1;
+ }
+ break;
+ case 3:
+ if (gTasks[taskId].tFramesUntilBg1Slide != 0)
+ {
+ gTasks[taskId].tFramesUntilBg1Slide--;
+ if (gTasks[taskId].tFramesUntilBg1Slide == 0)
+ {
+ REG_BLDCNT = 0x1842;
+ REG_BLDALPHA = 0xF;
+ REG_BLDY = 0;
+ }
+ }
+ else
+ {
+ if ((gTasks[taskId].data[4] & 0x1F) && --gTasks[taskId].data[5] == 0)
+ {
+ gTasks[taskId].data[4] += 255;
+ gTasks[taskId].data[5] = 4;
+ }
+ }
+
+ if ((gBattle_WIN0V & 0xFF00) != 0)
+ gBattle_WIN0V -= 1020;
+
+ if (gTasks[taskId].tBgXOffset != 0)
+ gTasks[taskId].tBgXOffset -= 2;
+
+ // Slide in the top half of the BG from the left
+ for (i = 0; i < DISPLAY_HEIGHT / 2; i++)
+ gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][i] = gTasks[taskId].tBgXOffset;
+ // Slide in the bottom half of the BG from the right
+ for (; i < DISPLAY_HEIGHT; i++)
+ gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][i] = -gTasks[taskId].tBgXOffset;
+
+ if (gTasks[taskId].tBgXOffset == 0)
+ {
+ gScanlineEffect.state = 3;
+ gTasks[taskId].tState++;
+ CpuFill32(0, (void *)(VRAM + 0xE000), 0x800);
+ REG_BG1CNT = 0x9C00;
+ REG_BG2CNT = 0x5E00;
+ }
+ break;
+ case 4:
+ EndBattleIntroTask(taskId);
+ break;
+ }
+
+ if (gTasks[taskId].tState != 4)
+ REG_BLDALPHA = gTasks[taskId].data[4];
+}
+
+static void BattleIntroTask_ScrollAndFadeScenery(u8 taskId)
+{
+ s32 i;
+
+ gBattle_BG1_X += 8;
+
+ switch (gTasks[taskId].tState)
+ {
+ case 0:
+ REG_BLDCNT = 0x1842;
+ REG_BLDALPHA = 0x0808;
+ REG_BLDY = 0;
+ gTasks[taskId].data[4] = 0x0808;
+ if (gBattleTypeFlags & BATTLE_TYPE_LINK)
+ {
+ gTasks[taskId].tBgXOffset = 16;
+ gTasks[taskId].tState++;
+ }
+ else
+ {
+ gTasks[taskId].tBgXOffset = 1;
+ gTasks[taskId].tState++;
+ }
+ break;
+ case 1:
+ gTasks[taskId].tBgXOffset--;
+ if (gTasks[taskId].tBgXOffset == 0)
+ {
+ gTasks[taskId].tState++;
+ REG_WININ = 0x3F;
+ }
+ break;
+ case 2:
+ // Open up window
+ gBattle_WIN0V -= WIN_RANGE(1, 0); // decrement min Y
+ gBattle_WIN0V += WIN_RANGE(0, 1); // increment max Y
+ if ((gBattle_WIN0V & 0xFF00) == 0x3000)
+ {
+ gTasks[taskId].tState++;
+ gTasks[taskId].tBgXOffset = DISPLAY_WIDTH;
+ gTasks[taskId].tFramesUntilBg1Slide = 32;
+ gTasks[taskId].data[5] = 1;
+ gUnknown_02024DE8 &= ~1;
+ }
+ break;
+ case 3:
+ if (gTasks[taskId].tFramesUntilBg1Slide != 0)
+ {
+ gTasks[taskId].tFramesUntilBg1Slide--;
+ }
+ else
+ {
+ if ((gTasks[taskId].data[4] & 0xF) && --gTasks[taskId].data[5] == 0)
+ {
+ gTasks[taskId].data[4] += 255;
+ gTasks[taskId].data[5] = 6;
+ }
+ }
+
+ if ((gBattle_WIN0V & 0xFF00) != 0)
+ gBattle_WIN0V -= 1020;
+
+ if (gTasks[taskId].tBgXOffset != 0)
+ gTasks[taskId].tBgXOffset -= 2;
+
+ // Slide in the top half of the BG from the left
+ for (i = 0; i < DISPLAY_HEIGHT / 2; i++)
+ gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][i] = gTasks[taskId].tBgXOffset;
+ // Slide in the bottom half of the BG from the right
+ for (; i < DISPLAY_HEIGHT; i++)
+ gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][i] = -gTasks[taskId].tBgXOffset;
+
+ if (gTasks[taskId].tBgXOffset == 0)
+ {
+ gScanlineEffect.state = 3;
+ gTasks[taskId].tState++;
+ CpuFill32(0, (void *)(VRAM + 0xE000), 0x800);
+ REG_BG1CNT = 0x9C00;
+ REG_BG2CNT = 0x5E00;
+ }
+ break;
+ case 4:
+ EndBattleIntroTask(taskId);
+ break;
+ }
+
+ if (gTasks[taskId].tState != 4)
+ REG_BLDALPHA = gTasks[taskId].data[4];
+}
+
+// Seems to only be used for link battles.
+static void BattleIntroTask_80E4C34(u8 taskId)
+{
+ s32 i;
+
+ if (gTasks[taskId].tState > 1 && gTasks[taskId].data[4] == 0)
+ {
+ if ((gBattle_BG1_X & 0x8000) || gBattle_BG1_X < 80) // hmm...
+ {
+ gBattle_BG1_X += 3;
+ gBattle_BG2_X -= 3;
+ }
+ else
+ {
+ CpuFill32(0, (void *)(VRAM + 0xE000), 0x800);
+ CpuFill32(0, (void *)(VRAM + 0xF000), 0x800);
+ gTasks[taskId].data[4] = 1;
+ }
+ }
+
+ switch (gTasks[taskId].tState)
+ {
+ case 0:
+ gTasks[taskId].tBgXOffset = 16;
+ gTasks[taskId].tState++;
+ break;
+ case 1:
+ gTasks[taskId].tBgXOffset--;
+ if (gTasks[taskId].tBgXOffset == 0)
+ {
+ gTasks[taskId].tState++;
+ gSprites[ewram1608A].oam.objMode = 2;
+ gSprites[ewram1608A].callback = sub_800FE20;
+ gSprites[ewram1608B].oam.objMode = 2;
+ gSprites[ewram1608B].callback = sub_800FE20;
+ REG_WININ = 0x3F;
+ REG_WINOUT = 0x3F06;
+ }
+ break;
+ case 2:
+ // Open up window
+ gBattle_WIN0V -= WIN_RANGE(1, 0); // decrement min Y
+ gBattle_WIN0V += WIN_RANGE(0, 1); // increment max Y
+ if ((gBattle_WIN0V & 0xFF00) == 0x3000)
+ {
+ gTasks[taskId].tState++;
+ gTasks[taskId].tBgXOffset = DISPLAY_WIDTH;
+ gTasks[taskId].tFramesUntilBg1Slide = 32;
+ gUnknown_02024DE8 &= ~1;
+ }
+ break;
+ case 3:
+ if ((gBattle_WIN0V & 0xFF00) != 0)
+ gBattle_WIN0V -= 1020;
+
+ if (gTasks[taskId].tBgXOffset != 0)
+ gTasks[taskId].tBgXOffset -= 2;
+
+ // Slide in the top half of the BG from the left
+ for (i = 0; i < DISPLAY_HEIGHT / 2; i++)
+ gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][i] = gTasks[taskId].tBgXOffset;
+ // Slide in the bottom half of the BG from the right
+ for (; i < DISPLAY_HEIGHT; i++)
+ gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][i] = -gTasks[taskId].tBgXOffset;
+
+ if (gTasks[taskId].tBgXOffset == 0)
+ {
+ gScanlineEffect.state = 3;
+ gTasks[taskId].tState++;
+ REG_BG1CNT = 0x9C00;
+ REG_BG2CNT = 0x5E00;
+ }
+ break;
+ case 4:
+ EndBattleIntroTask(taskId);
+ break;
+ }
+}
+
+void unref_sub_80E4EC8(u8 a, u8 b, u8 c, u8 d)
+{
+ sub_80E4EF8(a, b, c, d, 0x4000, 30, 1);
+}
+
+// draws some 8x8 tilemap
+void sub_80E4EF8(u8 left, u8 top, u8 c, u8 paletteNum, u16 e, u8 bgMap, u8 g)
+{
+ u32 tileNum;
+ s32 x;
+ s32 y;
+ u8 bank = GetBankByIdentity(c);
+
+ DmaCopy16(3, gUnknown_081FAF4C[c] + gBattleMonForms[bank] * 0x800, (void *)(VRAM + e), 0x800);
+ tileNum = e / 32 - g * 512;
+ for (y = top; y < top + 8; y++)
+ {
+ for (x = left; x < left + 8; x++)
+ {
+ *(u16 *)(VRAM + x * 2 + bgMap * 0x800 + y * 64) = tileNum | (paletteNum << 12);
+ tileNum++;
+ }
+ }
+}
+
+void unref_sub_80E4FDC(u8 left, u8 top, u8 c, u8 form, u8 paletteNum, u16 f, u8 bgMap, u8 h)
+{
+ u32 tileNum;
+ s32 x;
+ s32 y;
+
+ DmaCopy16(3, gUnknown_081FAF4C[c] + form * 0x800, (void *)(VRAM + f), 0x800);
+ tileNum = f / 32 - h * 512;
+ for (y = top; y < top + 8; y++)
+ {
+ for (x = left; x < left + 8; x++)
+ {
+ *(u16 *)(VRAM + x * 2 + bgMap * 0x800 + y * 64) = tileNum | (paletteNum << 12);
+ tileNum++;
+ }
+ }
+}
diff --git a/src/battle/battle_controller_linkopponent.c b/src/battle/battle_controller_linkopponent.c
index 69306b725..40f50d7ff 100644
--- a/src/battle/battle_controller_linkopponent.c
+++ b/src/battle/battle_controller_linkopponent.c
@@ -93,7 +93,7 @@ extern void move_anim_start_t2_for_situation();
extern void dp01t_0F_4_move_anim(void);
extern void sub_8047858();
extern u8 GetBankSide(u8);
-extern void sub_80E43C0();
+extern void StartBattleIntroAnim();
extern void sub_803A3A8(struct Sprite *);
extern void sub_8044CA0(u8);
extern void nullsub_47(void);
@@ -1620,7 +1620,7 @@ void LinkOpponentHandleFaintingCry(void)
void LinkOpponentHandleIntroSlide(void)
{
- sub_80E43C0(gBattleBufferA[gActiveBank][1]);
+ StartBattleIntroAnim(gBattleBufferA[gActiveBank][1]);
gUnknown_02024DE8 |= 1;
LinkOpponentBufferExecCompleted();
}
diff --git a/src/battle/battle_controller_linkpartner.c b/src/battle/battle_controller_linkpartner.c
index c86c337d9..e39d98997 100644
--- a/src/battle/battle_controller_linkpartner.c
+++ b/src/battle/battle_controller_linkpartner.c
@@ -62,7 +62,7 @@ extern u8 move_anim_start_t3();
extern u8 IsBankSpritePresent();
extern void sub_8044CA0(u8);
extern void sub_8030E38(struct Sprite *);
-extern void sub_80E43C0();
+extern void StartBattleIntroAnim();
extern void sub_8047858();
extern void move_anim_start_t2_for_situation();
extern void load_gfxc_health_bar();
@@ -1565,7 +1565,7 @@ void LinkPartnerHandleFaintingCry(void)
void LinkPartnerHandleIntroSlide(void)
{
- sub_80E43C0(gBattleBufferA[gActiveBank][1]);
+ StartBattleIntroAnim(gBattleBufferA[gActiveBank][1]);
gUnknown_02024DE8 |= 1;
LinkPartnerBufferExecCompleted();
}
diff --git a/src/battle/battle_controller_opponent.c b/src/battle/battle_controller_opponent.c
index 622e3e9f9..5947053b6 100644
--- a/src/battle/battle_controller_opponent.c
+++ b/src/battle/battle_controller_opponent.c
@@ -108,7 +108,7 @@ extern void move_anim_start_t2_for_situation();
extern void bx_blink_t7(void);
extern void sub_8047858();
extern u8 GetBankSide(u8);
-extern void sub_80E43C0();
+extern void StartBattleIntroAnim();
extern void sub_8044CA0(u8);
extern void nullsub_45(void);
extern void sub_8031B74();
@@ -1892,7 +1892,7 @@ void OpponentHandleFaintingCry(void)
void OpponentHandleIntroSlide(void)
{
- sub_80E43C0(gBattleBufferA[gActiveBank][1]);
+ StartBattleIntroAnim(gBattleBufferA[gActiveBank][1]);
gUnknown_02024DE8 |= 1;
OpponentBufferExecCompleted();
}
diff --git a/src/battle/battle_controller_player.c b/src/battle/battle_controller_player.c
index a5f833b6c..2bdf448db 100644
--- a/src/battle/battle_controller_player.c
+++ b/src/battle/battle_controller_player.c
@@ -98,7 +98,7 @@ extern void move_anim_start_t2_for_situation();
extern void bx_blink_t1(void);
extern void sub_8047858();
extern u8 GetBankSide(u8);
-extern void sub_80E43C0();
+extern void StartBattleIntroAnim();
extern void oamt_add_pos2_onto_pos1();
extern void sub_8078B34(struct Sprite *);
extern void StoreSpriteCallbackInData();
@@ -2875,7 +2875,7 @@ void PlayerHandleFaintingCry(void)
void PlayerHandleIntroSlide(void)
{
- sub_80E43C0(gBattleBufferA[gActiveBank][1]);
+ StartBattleIntroAnim(gBattleBufferA[gActiveBank][1]);
gUnknown_02024DE8 |= 1;
PlayerBufferExecCompleted();
}
diff --git a/src/battle/battle_controller_safari.c b/src/battle/battle_controller_safari.c
index a4b610752..0d193d68f 100644
--- a/src/battle/battle_controller_safari.c
+++ b/src/battle/battle_controller_safari.c
@@ -47,7 +47,7 @@ extern u8 sub_8079E90();
extern void sub_80313A0(struct Sprite *);
extern void sub_810BADC(void);
extern void sub_8045A5C();
-extern void sub_80E43C0();
+extern void StartBattleIntroAnim();
extern void sub_804777C();
extern void sub_8043DFC();
extern bool8 move_anim_start_t3();
@@ -641,7 +641,7 @@ void SafariHandleFaintingCry(void)
void SafariHandleIntroSlide(void)
{
- sub_80E43C0(gBattleBufferA[gActiveBank][1]);
+ StartBattleIntroAnim(gBattleBufferA[gActiveBank][1]);
gUnknown_02024DE8 |= 1;
SafariBufferExecCompleted();
}
diff --git a/src/battle/battle_controller_wally.c b/src/battle/battle_controller_wally.c
index 6266d955c..4c0adab5e 100644
--- a/src/battle/battle_controller_wally.c
+++ b/src/battle/battle_controller_wally.c
@@ -85,7 +85,7 @@ extern void BufferStringBattle();
extern u8 GetBankSide(u8);
extern void sub_80304A8(void);
extern void sub_8047858();
-extern void sub_80E43C0();
+extern void StartBattleIntroAnim();
extern void oamt_add_pos2_onto_pos1();
extern void sub_8078B34(struct Sprite *);
extern void sub_8030E38(struct Sprite *);
@@ -1470,7 +1470,7 @@ void WallyHandleFaintingCry(void)
void WallyHandleIntroSlide(void)
{
- sub_80E43C0(gBattleBufferA[gActiveBank][1]);
+ StartBattleIntroAnim(gBattleBufferA[gActiveBank][1]);
gUnknown_02024DE8 |= 1;
WallyBufferExecCompleted();
}