Sync battle anim - script funcs

This commit is contained in:
GriffinR
2022-08-19 10:29:25 -04:00
parent c976547c02
commit 219a38578a
+120 -105
View File
@@ -11,6 +11,11 @@
#include "task.h" #include "task.h"
#include "constants/battle_anim.h" #include "constants/battle_anim.h"
/*
This file handles the commands for the macros defined in
battle_anim_script.inc and used in battle_anim_scripts.s
*/
#define ANIM_SPRITE_INDEX_COUNT 8 #define ANIM_SPRITE_INDEX_COUNT 8
EWRAM_DATA static const u8 *sBattleAnimScriptPtr = NULL; EWRAM_DATA static const u8 *sBattleAnimScriptPtr = NULL;
@@ -41,15 +46,15 @@ static void AddSpriteIndex(u16 index);
static void ClearSpriteIndex(u16 index); static void ClearSpriteIndex(u16 index);
static void WaitAnimFrameCount(void); static void WaitAnimFrameCount(void);
static void RunAnimScriptCommand(void); static void RunAnimScriptCommand(void);
static void sub_8073558(u8 taskId); static void Task_ClearMonBgStatic(u8 taskId);
static void Task_FadeToBg(u8 taskId); static void Task_FadeToBg(u8 taskId);
static void Task_PanFromInitialToTarget(u8 taskId); static void Task_PanFromInitialToTarget(u8 taskId);
static void task_pA_ma0A_obj_to_bg_pal(u8 taskId); static void Task_InitUpdateMonBg(u8 taskId);
static void LoadMoveBg(u16 bgId); static void LoadMoveBg(u16 bgId);
static void LoadDefaultBg(void); static void LoadDefaultBg(void);
static void Task_LoopAndPlaySE(u8 taskId); static void Task_LoopAndPlaySE(u8 taskId);
static void Task_WaitAndPlaySE(u8 taskId); static void Task_WaitAndPlaySE(u8 taskId);
static void sub_807331C(u8 taskId); static void Task_ClearMonBg(u8 taskId);
static void Cmd_loadspritegfx(void); static void Cmd_loadspritegfx(void);
static void Cmd_unloadspritegfx(void); static void Cmd_unloadspritegfx(void);
@@ -57,8 +62,8 @@ static void Cmd_createsprite(void);
static void Cmd_createvisualtask(void); static void Cmd_createvisualtask(void);
static void Cmd_delay(void); static void Cmd_delay(void);
static void Cmd_waitforvisualfinish(void); static void Cmd_waitforvisualfinish(void);
static void Cmd_hang1(void); static void Cmd_nop(void);
static void Cmd_hang2(void); static void Cmd_nop2(void);
static void Cmd_end(void); static void Cmd_end(void);
static void Cmd_playse(void); static void Cmd_playse(void);
static void Cmd_monbg(void); static void Cmd_monbg(void);
@@ -78,83 +83,82 @@ static void Cmd_waitbgfadein(void);
static void Cmd_changebg(void); static void Cmd_changebg(void);
static void Cmd_playsewithpan(void); static void Cmd_playsewithpan(void);
static void Cmd_setpan(void); static void Cmd_setpan(void);
static void Cmd_panse_1B(void); static void Cmd_panse(void);
static void Cmd_loopsewithpan(void); static void Cmd_loopsewithpan(void);
static void Cmd_waitplaysewithpan(void); static void Cmd_waitplaysewithpan(void);
static void Cmd_setbldcnt(void); static void Cmd_setbldcnt(void);
static void Cmd_createsoundtask(void); static void Cmd_createsoundtask(void);
static void Cmd_waitsound(void); static void Cmd_waitsound(void);
static void Cmd_jumpargeq(void); static void Cmd_jumpargeq(void);
static void Cmd_monbg_22(void); static void Cmd_monbg_static(void);
static void Cmd_clearmonbg_23(void); static void Cmd_clearmonbg_static(void);
static void Cmd_jumpifcontest(void); static void Cmd_jumpifcontest(void);
static void Cmd_fadetobgfromset(void); static void Cmd_fadetobgfromset(void);
static void Cmd_panse_26(void); static void Cmd_panse_adjustnone(void);
static void Cmd_panse_27(void); static void Cmd_panse_adjustall(void);
static void Cmd_monbgprio_28(void); static void Cmd_splitbgprio(void);
static void Cmd_monbgprio_29(void); static void Cmd_splitbgprio_all(void);
static void Cmd_monbgprio_2A(void); static void Cmd_splitbgprio_foes(void);
static void Cmd_invisible(void); static void Cmd_invisible(void);
static void Cmd_visible(void); static void Cmd_visible(void);
static void Cmd_doublebattle_2D(void); static void Cmd_teamattack_moveback(void);
static void Cmd_doublebattle_2E(void); static void Cmd_teamattack_movefwd(void);
static void Cmd_stopsound(void); static void Cmd_stopsound(void);
#include "data/battle_anim.h" #include "data/battle_anim.h"
static void (*const sScriptCmdTable[])(void) = static void (*const sScriptCmdTable[])(void) =
{ {
Cmd_loadspritegfx, Cmd_loadspritegfx, // 0x00
Cmd_unloadspritegfx, Cmd_unloadspritegfx, // 0x01
Cmd_createsprite, Cmd_createsprite, // 0x02
Cmd_createvisualtask, Cmd_createvisualtask, // 0x03
Cmd_delay, Cmd_delay, // 0x04
Cmd_waitforvisualfinish, Cmd_waitforvisualfinish, // 0x05
Cmd_hang1, Cmd_nop, // 0x06
Cmd_hang2, Cmd_nop2, // 0x07
Cmd_end, Cmd_end, // 0x08
Cmd_playse, Cmd_playse, // 0x09
Cmd_monbg, Cmd_monbg, // 0x0A
Cmd_clearmonbg, Cmd_clearmonbg, // 0x0B
Cmd_setalpha, Cmd_setalpha, // 0x0C
Cmd_blendoff, Cmd_blendoff, // 0x0D
Cmd_call, Cmd_call, // 0x0E
Cmd_return, Cmd_return, // 0x0F
Cmd_setarg, Cmd_setarg, // 0x10
Cmd_choosetwoturnanim, Cmd_choosetwoturnanim, // 0x11
Cmd_jumpifmoveturn, Cmd_jumpifmoveturn, // 0x12
Cmd_goto, Cmd_goto, // 0x13
Cmd_fadetobg, Cmd_fadetobg, // 0x14
Cmd_restorebg, Cmd_restorebg, // 0x15
Cmd_waitbgfadeout, Cmd_waitbgfadeout, // 0x16
Cmd_waitbgfadein, Cmd_waitbgfadein, // 0x17
Cmd_changebg, Cmd_changebg, // 0x18
Cmd_playsewithpan, Cmd_playsewithpan, // 0x19
Cmd_setpan, Cmd_setpan, // 0x1A
Cmd_panse_1B, Cmd_panse, // 0x1B
Cmd_loopsewithpan, Cmd_loopsewithpan, // 0x1C
Cmd_waitplaysewithpan, Cmd_waitplaysewithpan, // 0x1D
Cmd_setbldcnt, Cmd_setbldcnt, // 0x1E
Cmd_createsoundtask, Cmd_createsoundtask, // 0x1F
Cmd_waitsound, Cmd_waitsound, // 0x20
Cmd_jumpargeq, Cmd_jumpargeq, // 0x21
Cmd_monbg_22, Cmd_monbg_static, // 0x22
Cmd_clearmonbg_23, Cmd_clearmonbg_static, // 0x23
Cmd_jumpifcontest, Cmd_jumpifcontest, // 0x24
Cmd_fadetobgfromset, Cmd_fadetobgfromset, // 0x25
Cmd_panse_26, Cmd_panse_adjustnone, // 0x26
Cmd_panse_27, Cmd_panse_adjustall, // 0x27
Cmd_monbgprio_28, Cmd_splitbgprio, // 0x28
Cmd_monbgprio_29, Cmd_splitbgprio_all, // 0x29
Cmd_monbgprio_2A, Cmd_splitbgprio_foes, // 0x2A
Cmd_invisible, Cmd_invisible, // 0x2B
Cmd_visible, Cmd_visible, // 0x2C
Cmd_doublebattle_2D, Cmd_teamattack_moveback, // 0x2D
Cmd_doublebattle_2E, Cmd_teamattack_movefwd, // 0x2E
Cmd_stopsound Cmd_stopsound, // 0x2F
}; };
// Functions
void ClearBattleAnimationVars(void) void ClearBattleAnimationVars(void)
{ {
s32 i; s32 i;
@@ -176,8 +180,8 @@ void ClearBattleAnimationVars(void)
for (i = 0; i < ANIM_ARGS_COUNT; i++) for (i = 0; i < ANIM_ARGS_COUNT; i++)
gBattleAnimArgs[i] = 0; gBattleAnimArgs[i] = 0;
sMonAnimTaskIdArray[0] = 0xFF; sMonAnimTaskIdArray[0] = TASK_NONE;
sMonAnimTaskIdArray[1] = (s8)0xFF; sMonAnimTaskIdArray[1] = TASK_NONE;
gAnimMoveTurn = 0; gAnimMoveTurn = 0;
sAnimBackgroundFadeState = 0; sAnimBackgroundFadeState = 0;
sAnimMoveIndex = 0; sAnimMoveIndex = 0;
@@ -215,8 +219,8 @@ void LaunchBattleAnimation(const u8 *const animsTable[], u16 tableId, bool8 isMo
for (i = 0; i < ANIM_ARGS_COUNT; i++) for (i = 0; i < ANIM_ARGS_COUNT; i++)
gBattleAnimArgs[i] = 0; gBattleAnimArgs[i] = 0;
sMonAnimTaskIdArray[0] = 0xFF; sMonAnimTaskIdArray[0] = TASK_NONE;
sMonAnimTaskIdArray[1] = (s8)-1; sMonAnimTaskIdArray[1] = TASK_NONE;
sBattleAnimScriptPtr = animsTable[tableId]; sBattleAnimScriptPtr = animsTable[tableId];
gAnimScriptActive = TRUE; gAnimScriptActive = TRUE;
sAnimFramesToWait = 0; sAnimFramesToWait = 0;
@@ -365,11 +369,11 @@ static void Cmd_createsprite(void)
sBattleAnimScriptPtr += 2; sBattleAnimScriptPtr += 2;
} }
if (argVar & 0x80) if (argVar & ANIMSPRITE_IS_TARGET)
{ {
argVar ^= 0x80; argVar ^= ANIMSPRITE_IS_TARGET;
if (argVar >= 0x40) if (argVar >= 64)
argVar -= 0x40; argVar -= 64;
else else
argVar *= -1; argVar *= -1;
@@ -377,8 +381,8 @@ static void Cmd_createsprite(void)
} }
else else
{ {
if (argVar >= 0x40) if (argVar >= 64)
argVar -= 0x40; argVar -= 64;
else else
argVar *= -1; argVar *= -1;
@@ -449,11 +453,11 @@ static void Cmd_waitforvisualfinish(void)
} }
} }
static void Cmd_hang1(void) static void Cmd_nop(void)
{ {
} }
static void Cmd_hang2(void) static void Cmd_nop2(void)
{ {
} }
@@ -464,7 +468,7 @@ static void Cmd_end(void)
// Keep waiting as long as there are animations to be done. // Keep waiting as long as there are animations to be done.
if (gAnimVisualTaskCount != 0 || gAnimSoundTaskCount != 0 if (gAnimVisualTaskCount != 0 || gAnimSoundTaskCount != 0
|| sMonAnimTaskIdArray[0] != 0xFF || sMonAnimTaskIdArray[1] != 0xFF) || sMonAnimTaskIdArray[0] != TASK_NONE || sMonAnimTaskIdArray[1] != TASK_NONE)
{ {
sSoundAnimFramesToWait = 0; sSoundAnimFramesToWait = 0;
sAnimFramesToWait = 1; sAnimFramesToWait = 1;
@@ -545,6 +549,7 @@ static void Cmd_monbg(void)
else else
battlerId = gBattleAnimTarget; battlerId = gBattleAnimTarget;
// Move designated battler to background
if (IsBattlerSpriteVisible(battlerId)) if (IsBattlerSpriteVisible(battlerId))
{ {
position = GetBattlerPosition(battlerId); position = GetBattlerPosition(battlerId);
@@ -555,7 +560,7 @@ static void Cmd_monbg(void)
MoveBattlerSpriteToBG(battlerId, toBG_2); MoveBattlerSpriteToBG(battlerId, toBG_2);
spriteId = gBattlerSpriteIds[battlerId]; spriteId = gBattlerSpriteIds[battlerId];
taskId = CreateTask(task_pA_ma0A_obj_to_bg_pal, 10); taskId = CreateTask(Task_InitUpdateMonBg, 10);
gTasks[taskId].data[t1_MONBG_BATTLER] = spriteId; gTasks[taskId].data[t1_MONBG_BATTLER] = spriteId;
gTasks[taskId].data[1] = gSprites[spriteId].x + gSprites[spriteId].x2; gTasks[taskId].data[1] = gSprites[spriteId].x + gSprites[spriteId].x2;
gTasks[taskId].data[2] = gSprites[spriteId].y + gSprites[spriteId].y2; gTasks[taskId].data[2] = gSprites[spriteId].y + gSprites[spriteId].y2;
@@ -586,7 +591,7 @@ static void Cmd_monbg(void)
MoveBattlerSpriteToBG(battlerId, toBG_2); MoveBattlerSpriteToBG(battlerId, toBG_2);
spriteId = gBattlerSpriteIds[battlerId]; spriteId = gBattlerSpriteIds[battlerId];
taskId = CreateTask(task_pA_ma0A_obj_to_bg_pal, 10); taskId = CreateTask(Task_InitUpdateMonBg, 10);
gTasks[taskId].data[t1_MONBG_BATTLER] = spriteId; gTasks[taskId].data[t1_MONBG_BATTLER] = spriteId;
gTasks[taskId].data[1] = gSprites[spriteId].x + gSprites[spriteId].x2; gTasks[taskId].data[1] = gSprites[spriteId].x + gSprites[spriteId].x2;
gTasks[taskId].data[2] = gSprites[spriteId].y + gSprites[spriteId].y2; gTasks[taskId].data[2] = gSprites[spriteId].y + gSprites[spriteId].y2;
@@ -720,7 +725,7 @@ void ResetBattleAnimBg(bool8 to_BG2)
} }
} }
static void task_pA_ma0A_obj_to_bg_pal(u8 taskId) static void Task_InitUpdateMonBg(u8 taskId)
{ {
u8 spriteId, palIndex; u8 spriteId, palIndex;
s16 x, y; s16 x, y;
@@ -774,21 +779,21 @@ static void Cmd_clearmonbg(void)
else else
battlerId = gBattleAnimTarget; battlerId = gBattleAnimTarget;
if (sMonAnimTaskIdArray[0] != 0xFF) if (sMonAnimTaskIdArray[0] != TASK_NONE)
gSprites[gBattlerSpriteIds[battlerId]].invisible = FALSE; gSprites[gBattlerSpriteIds[battlerId]].invisible = FALSE;
if (animBattlerId > ANIM_TARGET && sMonAnimTaskIdArray[1] != 0xFF) if (animBattlerId > ANIM_TARGET && sMonAnimTaskIdArray[1] != TASK_NONE)
gSprites[gBattlerSpriteIds[battlerId ^ BIT_FLANK]].invisible = FALSE; gSprites[gBattlerSpriteIds[battlerId ^ BIT_FLANK]].invisible = FALSE;
else else
animBattlerId = ANIM_ATTACKER; animBattlerId = ANIM_ATTACKER;
taskId = CreateTask(sub_807331C, 5); taskId = CreateTask(Task_ClearMonBg, 5);
gTasks[taskId].data[0] = animBattlerId; gTasks[taskId].data[0] = animBattlerId;
gTasks[taskId].data[2] = battlerId; gTasks[taskId].data[2] = battlerId;
sBattleAnimScriptPtr++; sBattleAnimScriptPtr++;
} }
static void sub_807331C(u8 taskId) static void Task_ClearMonBg(u8 taskId)
{ {
u8 toBG_2; u8 toBG_2;
u8 position; u8 position;
@@ -802,23 +807,24 @@ static void sub_807331C(u8 taskId)
else else
toBG_2 = TRUE; toBG_2 = TRUE;
if (sMonAnimTaskIdArray[0] != 0xFF) if (sMonAnimTaskIdArray[0] != TASK_NONE)
{ {
ResetBattleAnimBg(toBG_2); ResetBattleAnimBg(toBG_2);
DestroyTask(sMonAnimTaskIdArray[0]); DestroyTask(sMonAnimTaskIdArray[0]);
sMonAnimTaskIdArray[0] = 0xFF; sMonAnimTaskIdArray[0] = TASK_NONE;
} }
if (gTasks[taskId].data[0] > 1) if (gTasks[taskId].data[0] > 1)
{ {
ResetBattleAnimBg(toBG_2 ^ 1); ResetBattleAnimBg(toBG_2 ^ 1);
DestroyTask(sMonAnimTaskIdArray[1]); DestroyTask(sMonAnimTaskIdArray[1]);
sMonAnimTaskIdArray[1] = 0xFF; sMonAnimTaskIdArray[1] = TASK_NONE;
} }
DestroyTask(taskId); DestroyTask(taskId);
} }
} }
static void Cmd_monbg_22(void) // Equivalent to Cmd_monbg but never creates Task_InitUpdateMonBg / Task_UpdateMonBg
static void Cmd_monbg_static(void)
{ {
bool8 toBG_2; bool8 toBG_2;
u8 battlerId; u8 battlerId;
@@ -865,7 +871,7 @@ static void Cmd_monbg_22(void)
sBattleAnimScriptPtr++; sBattleAnimScriptPtr++;
} }
static void Cmd_clearmonbg_23(void) static void Cmd_clearmonbg_static(void)
{ {
u8 animBattlerId; u8 animBattlerId;
u8 battlerId; u8 battlerId;
@@ -891,14 +897,14 @@ static void Cmd_clearmonbg_23(void)
else else
animBattlerId = ANIM_ATTACKER; animBattlerId = ANIM_ATTACKER;
taskId = CreateTask(sub_8073558, 5); taskId = CreateTask(Task_ClearMonBgStatic, 5);
gTasks[taskId].data[0] = animBattlerId; gTasks[taskId].data[0] = animBattlerId;
gTasks[taskId].data[2] = battlerId; gTasks[taskId].data[2] = battlerId;
sBattleAnimScriptPtr++; sBattleAnimScriptPtr++;
} }
static void sub_8073558(u8 taskId) static void Task_ClearMonBgStatic(u8 taskId)
{ {
bool8 to_BG2; bool8 to_BG2;
u8 position; u8 position;
@@ -1022,9 +1028,9 @@ bool8 IsContest(void)
} }
// Unused // Unused
static bool8 sub_807378C(u16 a) static bool8 IsSpeciesNotUnown(u16 species)
{ {
if (a == 0xC9) if (species == SPECIES_UNOWN)
return FALSE; return FALSE;
else else
return TRUE; return TRUE;
@@ -1270,7 +1276,7 @@ static void Cmd_setpan(void)
#define tCurrentPan data[4] #define tCurrentPan data[4]
#define tFrameCounter data[8] #define tFrameCounter data[8]
static void Cmd_panse_1B(void) static void Cmd_panse(void)
{ {
u16 songNum; u16 songNum;
s8 currentPanArg, incrementPan, incrementPanArg, currentPan, targetPan; s8 currentPanArg, incrementPan, incrementPanArg, currentPan, targetPan;
@@ -1342,7 +1348,7 @@ static void Task_PanFromInitialToTarget(u8 taskId)
} }
} }
static void Cmd_panse_26(void) static void Cmd_panse_adjustnone(void)
{ {
u16 songId; u16 songId;
s8 currentPan, targetPan, incrementPan; s8 currentPan, targetPan, incrementPan;
@@ -1369,7 +1375,7 @@ static void Cmd_panse_26(void)
sBattleAnimScriptPtr += 6; sBattleAnimScriptPtr += 6;
} }
static void Cmd_panse_27(void) static void Cmd_panse_adjustall(void)
{ {
u16 songId; u16 songId;
s8 targetPanArg, incrementPanArg, currentPanArg, currentPan, targetPan, incrementPan; s8 targetPanArg, incrementPanArg, currentPanArg, currentPan, targetPan, incrementPan;
@@ -1575,7 +1581,7 @@ static void Cmd_jumpifcontest(void)
sBattleAnimScriptPtr += 5; sBattleAnimScriptPtr += 5;
} }
static void Cmd_monbgprio_28(void) static void Cmd_splitbgprio(void)
{ {
u8 wantedBattler; u8 wantedBattler;
u8 battlerId; u8 battlerId;
@@ -1589,6 +1595,7 @@ static void Cmd_monbgprio_28(void)
else else
battlerId = gBattleAnimAttacker; battlerId = gBattleAnimAttacker;
// Apply only if the given battler is the lead (on left from team's perspective)
battlerPosition = GetBattlerPosition(battlerId); battlerPosition = GetBattlerPosition(battlerId);
if (battlerPosition == B_POSITION_PLAYER_LEFT || battlerPosition == B_POSITION_OPPONENT_RIGHT) if (battlerPosition == B_POSITION_PLAYER_LEFT || battlerPosition == B_POSITION_OPPONENT_RIGHT)
{ {
@@ -1597,14 +1604,14 @@ static void Cmd_monbgprio_28(void)
} }
} }
static void Cmd_monbgprio_29(void) static void Cmd_splitbgprio_all(void)
{ {
sBattleAnimScriptPtr++; sBattleAnimScriptPtr++;
SetAnimBgAttribute(1, BG_ANIM_PRIORITY, 1); SetAnimBgAttribute(1, BG_ANIM_PRIORITY, 1);
SetAnimBgAttribute(2, BG_ANIM_PRIORITY, 2); SetAnimBgAttribute(2, BG_ANIM_PRIORITY, 2);
} }
static void Cmd_monbgprio_2A(void) static void Cmd_splitbgprio_foes(void)
{ {
u8 wantedBattler; u8 wantedBattler;
u8 battlerPosition; u8 battlerPosition;
@@ -1612,6 +1619,8 @@ static void Cmd_monbgprio_2A(void)
wantedBattler = sBattleAnimScriptPtr[1]; wantedBattler = sBattleAnimScriptPtr[1];
sBattleAnimScriptPtr += 2; sBattleAnimScriptPtr += 2;
// Apply only if the attacking the opposing side
if (GetBattlerSide(gBattleAnimAttacker) != GetBattlerSide(gBattleAnimTarget)) if (GetBattlerSide(gBattleAnimAttacker) != GetBattlerSide(gBattleAnimTarget))
{ {
if (wantedBattler != ANIM_ATTACKER) if (wantedBattler != ANIM_ATTACKER)
@@ -1619,6 +1628,7 @@ static void Cmd_monbgprio_2A(void)
else else
battlerId = gBattleAnimAttacker; battlerId = gBattleAnimAttacker;
// Apply only if the given battler is the lead (on left from team's perspective)
battlerPosition = GetBattlerPosition(battlerId); battlerPosition = GetBattlerPosition(battlerId);
if (battlerPosition == B_POSITION_PLAYER_LEFT || battlerPosition == B_POSITION_OPPONENT_RIGHT) if (battlerPosition == B_POSITION_PLAYER_LEFT || battlerPosition == B_POSITION_OPPONENT_RIGHT)
{ {
@@ -1633,7 +1643,7 @@ static void Cmd_invisible(void)
u8 spriteId; u8 spriteId;
spriteId = GetAnimBattlerSpriteId(sBattleAnimScriptPtr[1]); spriteId = GetAnimBattlerSpriteId(sBattleAnimScriptPtr[1]);
if (spriteId != 0xFF) if (spriteId != SPRITE_NONE)
gSprites[spriteId].invisible = TRUE; gSprites[spriteId].invisible = TRUE;
sBattleAnimScriptPtr += 2; sBattleAnimScriptPtr += 2;
@@ -1644,13 +1654,14 @@ static void Cmd_visible(void)
u8 spriteId; u8 spriteId;
spriteId = GetAnimBattlerSpriteId(sBattleAnimScriptPtr[1]); spriteId = GetAnimBattlerSpriteId(sBattleAnimScriptPtr[1]);
if (spriteId != 0xFF) if (spriteId != SPRITE_NONE)
gSprites[spriteId].invisible = FALSE; gSprites[spriteId].invisible = FALSE;
sBattleAnimScriptPtr += 2; sBattleAnimScriptPtr += 2;
} }
static void Cmd_doublebattle_2D(void) // Below two commands are never used
static void Cmd_teamattack_moveback(void)
{ {
u8 wantedBattler; u8 wantedBattler;
u8 priority; u8 priority;
@@ -1658,6 +1669,8 @@ static void Cmd_doublebattle_2D(void)
wantedBattler = sBattleAnimScriptPtr[1]; wantedBattler = sBattleAnimScriptPtr[1];
sBattleAnimScriptPtr += 2; sBattleAnimScriptPtr += 2;
// Apply to double battles when attacking own side
if (IsDoubleBattle() if (IsDoubleBattle()
&& GetBattlerSide(gBattleAnimAttacker) == GetBattlerSide(gBattleAnimTarget)) && GetBattlerSide(gBattleAnimAttacker) == GetBattlerSide(gBattleAnimTarget))
{ {
@@ -1671,7 +1684,7 @@ static void Cmd_doublebattle_2D(void)
priority = GetBattlerSpriteBGPriorityRank(gBattleAnimTarget); priority = GetBattlerSpriteBGPriorityRank(gBattleAnimTarget);
spriteId = GetAnimBattlerSpriteId(ANIM_TARGET); spriteId = GetAnimBattlerSpriteId(ANIM_TARGET);
} }
if (spriteId != 0xFF) if (spriteId != SPRITE_NONE)
{ {
gSprites[spriteId].invisible = FALSE; gSprites[spriteId].invisible = FALSE;
if (priority == 2) if (priority == 2)
@@ -1685,7 +1698,7 @@ static void Cmd_doublebattle_2D(void)
} }
} }
static void Cmd_doublebattle_2E(void) static void Cmd_teamattack_movefwd(void)
{ {
u8 wantedBattler; u8 wantedBattler;
u8 priority; u8 priority;
@@ -1693,6 +1706,8 @@ static void Cmd_doublebattle_2E(void)
wantedBattler = sBattleAnimScriptPtr[1]; wantedBattler = sBattleAnimScriptPtr[1];
sBattleAnimScriptPtr += 2; sBattleAnimScriptPtr += 2;
// Apply to double battles when attacking own side
if (IsDoubleBattle() if (IsDoubleBattle()
&& GetBattlerSide(gBattleAnimAttacker) == GetBattlerSide(gBattleAnimTarget)) && GetBattlerSide(gBattleAnimAttacker) == GetBattlerSide(gBattleAnimTarget))
{ {
@@ -1707,7 +1722,7 @@ static void Cmd_doublebattle_2E(void)
spriteId = GetAnimBattlerSpriteId(ANIM_TARGET); spriteId = GetAnimBattlerSpriteId(ANIM_TARGET);
} }
if (spriteId != 0xFF && priority == 2) if (spriteId != SPRITE_NONE && priority == 2)
gSprites[spriteId].oam.priority = 2; gSprites[spriteId].oam.priority = 2;
} }
} }