Sync battle anim - ghost

This commit is contained in:
GriffinR
2022-08-16 15:27:42 -04:00
parent 796d307ffb
commit ba890e57a4
5 changed files with 109 additions and 107 deletions
+1 -1
View File
@@ -60,7 +60,7 @@ extern u8 gBattleAnimTarget;
extern u8 gBattlerSpriteIds[MAX_BATTLERS_COUNT];
extern s32 gAnimMoveDmg;
extern u16 gAnimBattlerSpecies[MAX_BATTLERS_COUNT];
extern u8 gUnknown_2037F24;
extern u8 gAnimCustomPanning;
// battle_anim.c
extern const struct OamData gOamData_AffineOff_ObjNormal_8x8;
+2 -2
View File
@@ -36,7 +36,7 @@ EWRAM_DATA static u16 sAnimMoveIndex = 0;
EWRAM_DATA u8 gBattleAnimAttacker = 0;
EWRAM_DATA u8 gBattleAnimTarget = 0;
EWRAM_DATA u16 gAnimBattlerSpecies[MAX_BATTLERS_COUNT] = {0};
EWRAM_DATA u8 gUnknown_2037F24 = 0;
EWRAM_DATA u8 gAnimCustomPanning = 0;
// Function Declarations
static void AddSpriteIndex(u16 index);
@@ -1809,7 +1809,7 @@ void ClearBattleAnimationVars(void)
sAnimMoveIndex = 0;
gBattleAnimAttacker = 0;
gBattleAnimTarget = 0;
gUnknown_2037F24 = 0;
gAnimCustomPanning = 0;
}
void DoMoveAnim(u16 move)
+1 -1
View File
@@ -1113,7 +1113,7 @@ static void AnimWillOWispOrb_Step(struct Sprite *sprite)
sprite->data[5] = (sprite->data[5] + 4) & 0xFF;
newData5 = sprite->data[5];
if ((initialData5 == 0 || initialData5 > 196) && newData5 > 0 && sprite->data[7] == 0)
PlaySE12WithPanning(SE_M_FLAME_WHEEL, gUnknown_2037F24);
PlaySE12WithPanning(SE_M_FLAME_WHEEL, gAnimCustomPanning);
}
else
{
+104 -102
View File
@@ -9,39 +9,39 @@
#include "constants/songs.h"
static void AnimConfuseRayBallBounce(struct Sprite *sprite);
static void sub_80B52D0(struct Sprite *sprite);
static void sub_80B5344(struct Sprite *sprite);
static void sub_80B53C0(struct Sprite *sprite);
static void AnimConfuseRayBallBounce_Step1(struct Sprite *sprite);
static void AnimConfuseRayBallBounce_Step2(struct Sprite *sprite);
static void UpdateConfuseRayBallBlend(struct Sprite *sprite);
static void AnimConfuseRayBallSpiral(struct Sprite *sprite);
static void sub_80B5470(struct Sprite *sprite);
static void sub_80B5570(u8 taskId);
static void sub_80B55C8(u8 taskId);
static void AnimConfuseRayBallSpiral_Step(struct Sprite *sprite);
static void AnimTask_NightShadeClone_Step1(u8 taskId);
static void AnimTask_NightShadeClone_Step2(u8 taskId);
static void AnimShadowBall(struct Sprite *sprite);
static void AnimShadowBallStep(struct Sprite *sprite);
static void AnimShadowBall_Step(struct Sprite *sprite);
static void AnimLick(struct Sprite *sprite);
static void sub_80B5810(struct Sprite *sprite);
static void sub_80B59D4(u8 taskId);
static void sub_80B5AD4(u8 taskId);
static void sub_80B5D38(u8 taskId);
static void sub_80B5DCC(u8 taskId);
static void AnimLick_Step(struct Sprite *sprite);
static void AnimTask_NightmareClone_Step(u8 taskId);
static void AnimTask_SpiteTargetShadow_Step1(u8 taskId);
static void AnimTask_SpiteTargetShadow_Step2(u8 taskId);
static void AnimTask_SpiteTargetShadow_Step3(u8 taskId);
static void AnimDestinyBondWhiteShadow(struct Sprite *sprite);
static void sub_80B5FE0(struct Sprite *sprite);
static void sub_80B623C(u8 taskId);
static void sub_80B6468(u8 taskId);
static void sub_80B65F0(u8 taskId);
static void AnimDestinyBondWhiteShadow_Step(struct Sprite *sprite);
static void AnimTask_DestinyBondWhiteShadow_Step(u8 taskId);
static void AnimTask_CurseStretchingBlackBg_Step1(u8 taskId);
static void AnimTask_CurseStretchingBlackBg_Step2(u8 taskId);
static void AnimCurseNail(struct Sprite *sprite);
static void sub_80B66A8(struct Sprite *sprite);
static void sub_80B6728(struct Sprite *sprite);
static void sub_80B67A0(struct Sprite *sprite);
static void AnimCurseNail_Step1(struct Sprite *sprite);
static void AnimCurseNail_Step2(struct Sprite *sprite);
static void AnimCurseNail_End(struct Sprite *sprite);
static void AnimGhostStatusSprite(struct Sprite *sprite);
static void sub_80B68A8(struct Sprite *sprite);
static void sub_80B696C(u8 taskId);
static void AnimGhostStatusSprite_End(struct Sprite *sprite);
static void AnimTask_GrudgeFlames_Step(u8 taskId);
static void AnimGrudgeFlame(struct Sprite *sprite);
static void sub_80B7158(struct Sprite *sprite);
static void AnimMonMoveCircular(struct Sprite *sprite);
static void sub_80B6BE4(u8 taskId);
static void sub_80B6F30(u8 taskId);
static void sub_80B6FC4(u8 taskId);
static void sub_80B71B0(struct Sprite *sprite);
static void AnimMonMoveCircular_Step(struct Sprite *sprite);
static const union AffineAnimCmd sAffineAnim_ConfuseRayBallBounce[] =
{
@@ -125,17 +125,15 @@ const struct SpriteTemplate gLickSpriteTemplate =
.callback = AnimLick,
};
// not used
static const union AffineAnimCmd gUnknown_83E7654[] =
static const union AffineAnimCmd sAffineAnim_Unused[] =
{
AFFINEANIMCMD_FRAME(0x200, 0x200, 0, 0),
AFFINEANIMCMD_END,
};
// not used
static const union AffineAnimCmd *const gUnknown_83E7664[] =
static const union AffineAnimCmd *const sAffineAnims_Unused[] =
{
gUnknown_83E7654,
sAffineAnim_Unused,
};
const struct SpriteTemplate gDestinyBondWhiteShadowSpriteTemplate =
@@ -207,7 +205,8 @@ const struct SpriteTemplate gGrudgeFlameSpriteTemplate =
.callback = AnimGrudgeFlame,
};
const struct SpriteTemplate gUnknown_83E76F8 =
// Unused
static const struct SpriteTemplate sMonMoveCircularSpriteTemplate =
{
.tileTag = 0,
.paletteTag = 0,
@@ -215,7 +214,7 @@ const struct SpriteTemplate gUnknown_83E76F8 =
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = sub_80B7158,
.callback = AnimMonMoveCircular,
};
static void AnimConfuseRayBallBounce(struct Sprite *sprite)
@@ -223,24 +222,24 @@ static void AnimConfuseRayBallBounce(struct Sprite *sprite)
InitSpritePosToAnimAttacker(sprite, 1);
sprite->data[0] = gBattleAnimArgs[2];
sprite->data[1] = sprite->x;
sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2);
sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2);
sprite->data[3] = sprite->y;
sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3);
sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET);
InitAnimLinearTranslationWithSpeed(sprite);
sprite->callback = sub_80B52D0;
sprite->callback = AnimConfuseRayBallBounce_Step1;
sprite->data[6] = 16;
SetGpuReg(REG_OFFSET_BLDCNT, (BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_ALL));
SetGpuReg(REG_OFFSET_BLDALPHA, sprite->data[6]);
}
static void sub_80B52D0(struct Sprite *sprite)
static void AnimConfuseRayBallBounce_Step1(struct Sprite *sprite)
{
s16 r0, r2;
sub_80B53C0(sprite);
UpdateConfuseRayBallBlend(sprite);
if (AnimTranslateLinear(sprite))
{
sprite->callback = sub_80B5344;
sprite->callback = AnimConfuseRayBallBounce_Step2;
return;
}
sprite->x2 += Sin(sprite->data[5], 10);
@@ -252,10 +251,10 @@ static void sub_80B52D0(struct Sprite *sprite)
return;
if (r0 <= 0)
return;
PlaySE12WithPanning(SE_M_CONFUSE_RAY, gUnknown_2037F24);
PlaySE12WithPanning(SE_M_CONFUSE_RAY, gAnimCustomPanning);
}
static void sub_80B5344(struct Sprite *sprite)
static void AnimConfuseRayBallBounce_Step2(struct Sprite *sprite)
{
s16 r2, r0;
@@ -275,11 +274,11 @@ static void sub_80B5344(struct Sprite *sprite)
}
else
{
sub_80B53C0(sprite);
UpdateConfuseRayBallBlend(sprite);
}
}
static void sub_80B53C0(struct Sprite *sprite)
static void UpdateConfuseRayBallBlend(struct Sprite *sprite)
{
s16 r0;
@@ -309,11 +308,11 @@ static void sub_80B53C0(struct Sprite *sprite)
static void AnimConfuseRayBallSpiral(struct Sprite *sprite)
{
InitSpritePosToAnimTarget(sprite, TRUE);
sprite->callback = sub_80B5470;
sprite->callback = AnimConfuseRayBallSpiral_Step;
sprite->callback(sprite);
}
static void sub_80B5470(struct Sprite *sprite)
static void AnimConfuseRayBallSpiral_Step(struct Sprite *sprite)
{
u16 temp1;
@@ -332,6 +331,7 @@ static void sub_80B5470(struct Sprite *sprite)
DestroyAnimSprite(sprite);
}
// Creates a large transparent clone of the attacker centered on their position which shrinks to original size
void AnimTask_NightShadeClone(u8 taskId)
{
u8 spriteId;
@@ -346,10 +346,10 @@ void AnimTask_NightShadeClone(u8 taskId)
gTasks[taskId].data[1] = *gBattleAnimArgs;
gTasks[taskId].data[2] = 0;
gTasks[taskId].data[3] = 16;
gTasks[taskId].func = sub_80B5570;
gTasks[taskId].func = AnimTask_NightShadeClone_Step1;
}
static void sub_80B5570(u8 taskId)
static void AnimTask_NightShadeClone_Step1(u8 taskId)
{
gTasks[taskId].data[10] += 1;
if (gTasks[taskId].data[10] == 3)
@@ -360,11 +360,11 @@ static void sub_80B5570(u8 taskId)
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gTasks[taskId].data[2], gTasks[taskId].data[3]));
if (gTasks[taskId].data[2] != 9)
return;
gTasks[taskId].func = sub_80B55C8;
gTasks[taskId].func = AnimTask_NightShadeClone_Step2;
}
}
static void sub_80B55C8(u8 taskId)
static void AnimTask_NightShadeClone_Step2(u8 taskId)
{
u8 spriteId;
@@ -398,8 +398,8 @@ static void AnimShadowBall(struct Sprite *sprite)
s16 oldPosX = sprite->x;
s16 oldPosY = sprite->y;
sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2);
sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3);
sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2);
sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET);
sprite->data[0] = 0;
sprite->data[1] = gBattleAnimArgs[0];
sprite->data[2] = gBattleAnimArgs[1];
@@ -408,10 +408,10 @@ static void AnimShadowBall(struct Sprite *sprite)
sprite->data[5] = sprite->y << 4;
sprite->data[6] = ((oldPosX - sprite->x) << 4) / (gBattleAnimArgs[0] << 1);
sprite->data[7] = ((oldPosY - sprite->y) << 4) / (gBattleAnimArgs[0] << 1);
sprite->callback = AnimShadowBallStep;
sprite->callback = AnimShadowBall_Step;
}
static void AnimShadowBallStep(struct Sprite *sprite)
static void AnimShadowBall_Step(struct Sprite *sprite)
{
switch (sprite->data[0])
{
@@ -429,8 +429,8 @@ static void AnimShadowBallStep(struct Sprite *sprite)
sprite->data[2] -= 1;
if (sprite->data[2] > 0)
break;
sprite->data[1] = GetBattlerSpriteCoord(gBattleAnimTarget, 2);
sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 3);
sprite->data[1] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2);
sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET);
sprite->data[4] = sprite->x << 4;
sprite->data[5] = sprite->y << 4;
sprite->data[6] = ((sprite->data[1] - sprite->x) << 4) / sprite->data[3];
@@ -445,8 +445,8 @@ static void AnimShadowBallStep(struct Sprite *sprite)
sprite->data[3] -= 1;
if (sprite->data[3] > 0)
break;
sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, 2);
sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, 3);
sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2);
sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET);
sprite->data[0] += 1;
break;
case 3:
@@ -458,10 +458,10 @@ static void AnimShadowBallStep(struct Sprite *sprite)
static void AnimLick(struct Sprite *sprite)
{
InitSpritePosToAnimTarget(sprite, TRUE);
sprite->callback = sub_80B5810;
sprite->callback = AnimLick_Step;
}
static void sub_80B5810(struct Sprite *sprite)
static void AnimLick_Step(struct Sprite *sprite)
{
bool8 r5 = FALSE;
bool8 r6 = FALSE;
@@ -507,12 +507,13 @@ static void sub_80B5810(struct Sprite *sprite)
}
}
// Creates a transparent clone of the target which drifts up and away to the side
void AnimTask_NightmareClone(u8 taskId)
{
struct Task *task;
task = &gTasks[taskId];
task->data[0] = CloneBattlerSpriteWithBlend(1);
task->data[0] = CloneBattlerSpriteWithBlend(ANIM_TARGET);
if (task->data[0] < 0)
{
DestroyAnimVisualTask(taskId);
@@ -539,10 +540,10 @@ void AnimTask_NightmareClone(u8 taskId)
gSprites[task->data[0]].data[4] = 0;
StoreSpriteCallbackInData6(&gSprites[task->data[0]], SpriteCallbackDummy);
gSprites[task->data[0]].callback = TranslateSpriteLinearFixedPoint;
task->func = sub_80B59D4;
task->func = AnimTask_NightmareClone_Step;
}
static void sub_80B59D4(u8 taskId)
static void AnimTask_NightmareClone_Step(u8 taskId)
{
struct Task *task;
@@ -579,17 +580,18 @@ static void sub_80B59D4(u8 taskId)
}
}
// Creates a blended copy of the target that wavers in front of them
void AnimTask_SpiteTargetShadow(u8 taskId)
{
struct Task *task;
task = &gTasks[taskId];
task->data[15] = 0;
task->func = sub_80B5AD4;
task->func = AnimTask_SpiteTargetShadow_Step1;
task->func(taskId);
}
static void sub_80B5AD4(u8 taskId)
static void AnimTask_SpiteTargetShadow_Step1(u8 taskId)
{
s16 startLine;
struct Task *task = &gTasks[taskId];
@@ -670,7 +672,7 @@ static void sub_80B5AD4(u8 taskId)
SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_BG1_ON);
else
SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_BG2_ON);
task->func = sub_80B5D38;
task->func = AnimTask_SpiteTargetShadow_Step2;
++task->data[15];
break;
default:
@@ -679,7 +681,7 @@ static void sub_80B5AD4(u8 taskId)
}
}
static void sub_80B5D38(u8 taskId)
static void AnimTask_SpiteTargetShadow_Step2(u8 taskId)
{
struct Task *task = &gTasks[taskId];
@@ -693,12 +695,12 @@ static void sub_80B5D38(u8 taskId)
if (task->data[1] == 128)
{
task->data[15] = 0;
task->func = sub_80B5DCC;
task->func = AnimTask_SpiteTargetShadow_Step3;
task->func(taskId);
}
}
static void sub_80B5DCC(u8 taskId)
static void AnimTask_SpiteTargetShadow_Step3(u8 taskId)
{
struct Task *task = &gTasks[taskId];
u8 rank = GetBattlerSpriteBGPriorityRank(gBattleAnimTarget);
@@ -740,17 +742,17 @@ static void AnimDestinyBondWhiteShadow(struct Sprite *sprite)
if (gBattleAnimArgs[0] == 0)
{
battler1X = GetBattlerSpriteCoord(gBattleAnimAttacker, 0);
battler1Y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1) + 28;
battler2X = GetBattlerSpriteCoord(gBattleAnimTarget, 0);
battler2Y = GetBattlerSpriteCoord(gBattleAnimTarget, 1) + 28;
battler1X = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X);
battler1Y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y) + 28;
battler2X = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X);
battler2Y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y) + 28;
}
else
{
battler1X = GetBattlerSpriteCoord(gBattleAnimTarget, 0);
battler1Y = GetBattlerSpriteCoord(gBattleAnimTarget, 1) + 28;
battler2X = GetBattlerSpriteCoord(gBattleAnimAttacker, 0);
battler2Y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1) + 28;
battler1X = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X);
battler1Y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y) + 28;
battler2X = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X);
battler2Y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y) + 28;
}
yDiff = battler2Y - battler1Y;
sprite->data[0] = battler1X * 16;
@@ -764,11 +766,11 @@ static void AnimDestinyBondWhiteShadow(struct Sprite *sprite)
sprite->oam.priority = 2;
sprite->x = battler1X;
sprite->y = battler1Y;
sprite->callback = sub_80B5FE0;
sprite->callback = AnimDestinyBondWhiteShadow_Step;
sprite->invisible = TRUE;
}
static void sub_80B5FE0(struct Sprite *sprite)
static void AnimDestinyBondWhiteShadow_Step(struct Sprite *sprite)
{
if (sprite->data[4])
{
@@ -798,11 +800,11 @@ void AnimTask_DestinyBondWhiteShadow(u8 taskId)
task->data[8] = 0;
task->data[9] = 16;
task->data[10] = gBattleAnimArgs[0];
baseX = GetBattlerSpriteCoord(gBattleAnimAttacker, 2);
baseX = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2);
baseY = GetBattlerSpriteCoordAttr(gBattleAnimAttacker, BATTLER_COORD_ATTR_BOTTOM);
if (!IsContest())
{
for (battler = 0; battler < 4; ++battler)
for (battler = 0; battler < MAX_BATTLERS_COUNT; ++battler)
{
if (battler != gBattleAnimAttacker
&& battler != (gBattleAnimAttacker ^ 2)
@@ -811,7 +813,7 @@ void AnimTask_DestinyBondWhiteShadow(u8 taskId)
spriteId = CreateSprite(&gDestinyBondWhiteShadowSpriteTemplate, baseX, baseY, 55);
if (spriteId != MAX_SPRITES)
{
x = GetBattlerSpriteCoord(battler, 2);
x = GetBattlerSpriteCoord(battler, BATTLER_COORD_X_2);
y = GetBattlerSpriteCoordAttr(battler, BATTLER_COORD_ATTR_BOTTOM);
gSprites[spriteId].data[0] = baseX << 4;
gSprites[spriteId].data[1] = baseY << 4;
@@ -820,7 +822,7 @@ void AnimTask_DestinyBondWhiteShadow(u8 taskId)
gSprites[spriteId].data[4] = gBattleAnimArgs[1];
gSprites[spriteId].data[5] = x;
gSprites[spriteId].data[6] = y;
gSprites[spriteId].callback = sub_80B5FE0;
gSprites[spriteId].callback = AnimDestinyBondWhiteShadow_Step;
task->data[task->data[12] + 13] = spriteId;
++task->data[12];
}
@@ -841,15 +843,15 @@ void AnimTask_DestinyBondWhiteShadow(u8 taskId)
gSprites[spriteId].data[4] = gBattleAnimArgs[1];
gSprites[spriteId].data[5] = x;
gSprites[spriteId].data[6] = y;
gSprites[spriteId].callback = sub_80B5FE0;
gSprites[spriteId].callback = AnimDestinyBondWhiteShadow_Step;
task->data[13] = spriteId;
task->data[12] = 1;
}
}
task->func = sub_80B623C;
task->func = AnimTask_DestinyBondWhiteShadow_Step;
}
static void sub_80B623C(u8 taskId)
static void AnimTask_DestinyBondWhiteShadow_Step(u8 taskId)
{
u16 i;
struct Task *task = &gTasks[taskId];
@@ -933,7 +935,7 @@ void AnimTask_CurseStretchingBlackBg(u8 taskId)
SetGpuReg(REG_OFFSET_WINOUT, ((WINOUT_WIN01_BG_ALL | WINOUT_WIN01_OBJ) |
(WINOUT_WINOBJ_BG_ALL | WINOUT_WINOBJ_OBJ | WINOUT_WINOBJ_CLR)));
SetGpuReg(REG_OFFSET_BLDCNT, (BLDCNT_TGT1_BG3 | BLDCNT_EFFECT_DARKEN));
SetGpuReg(REG_OFFSET_BLDY, 0x10);
SetGpuReg(REG_OFFSET_BLDY, 16);
if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER || IsContest())
startX = 40;
else
@@ -951,10 +953,10 @@ void AnimTask_CurseStretchingBlackBg(u8 taskId)
gTasks[taskId].data[4] = bottomDistance;
gTasks[taskId].data[5] = startX;
gTasks[taskId].data[6] = startY;
gTasks[taskId].func = sub_80B6468;
gTasks[taskId].func = AnimTask_CurseStretchingBlackBg_Step1;
}
static void sub_80B6468(u8 taskId)
static void AnimTask_CurseStretchingBlackBg_Step1(u8 taskId)
{
s16 step, leftDistance, rightDistance, topDistance, bottomDistance, startX, startY;
u16 left, right, top, bottom, selectedPalettes;
@@ -980,15 +982,15 @@ static void sub_80B6468(u8 taskId)
right = 240;
top = 0;
bottom = 112;
selectedPalettes = GetBattlePalettesMask(1, 0, 0, 0, 0, 0, 0);
selectedPalettes = GetBattlePalettesMask(TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE);
BeginNormalPaletteFade(selectedPalettes, 0, 16, 16, RGB(0, 0, 0));
gTasks[taskId].func = sub_80B65F0;
gTasks[taskId].func = AnimTask_CurseStretchingBlackBg_Step2;
}
gBattle_WIN0H = WIN_RANGE(left, right);
gBattle_WIN0V = WIN_RANGE(top, bottom);
}
static void sub_80B65F0(u8 taskId)
static void AnimTask_CurseStretchingBlackBg_Step2(u8 taskId)
{
if (!gPaletteFade.active)
{
@@ -1023,10 +1025,10 @@ static void AnimCurseNail(struct Sprite *sprite)
sprite->x += xDelta;
sprite->data[1] = xDelta2;
sprite->data[0] = 60;
sprite->callback = sub_80B66A8;
sprite->callback = AnimCurseNail_Step1;
}
static void sub_80B66A8(struct Sprite *sprite)
static void AnimCurseNail_Step1(struct Sprite *sprite)
{
u16 var0;
@@ -1047,7 +1049,7 @@ static void sub_80B66A8(struct Sprite *sprite)
{
sprite->data[0] = 30;
sprite->callback = WaitAnimForDuration;
StoreSpriteCallbackInData6(sprite, sub_80B6728);
StoreSpriteCallbackInData6(sprite, AnimCurseNail_Step2);
}
else
{
@@ -1057,7 +1059,7 @@ static void sub_80B66A8(struct Sprite *sprite)
}
}
static void sub_80B6728(struct Sprite *sprite)
static void AnimCurseNail_Step2(struct Sprite *sprite)
{
if (sprite->data[0] == 0)
{
@@ -1079,12 +1081,12 @@ static void sub_80B6728(struct Sprite *sprite)
if (sprite->data[2] == 16)
{
sprite->invisible = TRUE;
sprite->callback = sub_80B67A0;
sprite->callback = AnimCurseNail_End;
}
}
}
static void sub_80B67A0(struct Sprite *sprite)
static void AnimCurseNail_End(struct Sprite *sprite)
{
SetGpuReg(REG_OFFSET_BLDCNT, 0);
SetGpuReg(REG_OFFSET_BLDALPHA, 0);
@@ -1125,12 +1127,12 @@ static void AnimGhostStatusSprite(struct Sprite *sprite)
if (coeffB == 16 && coeffA == 0)
{
sprite->invisible = TRUE;
sprite->callback = sub_80B68A8;
sprite->callback = AnimGhostStatusSprite_End;
}
}
}
static void sub_80B68A8(struct Sprite *sprite)
static void AnimGhostStatusSprite_End(struct Sprite *sprite)
{
SetGpuReg(REG_OFFSET_BLDCNT, 0);
SetGpuReg(REG_OFFSET_BLDALPHA, 0);
@@ -1143,7 +1145,7 @@ void AnimTask_GrudgeFlames(u8 taskId)
task->data[0] = 0;
task->data[1] = 16;
task->data[9] = GetBattlerSpriteCoord(gBattleAnimAttacker, 2);
task->data[9] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2);
task->data[10] = GetBattlerYCoordWithElevation(gBattleAnimAttacker);
task->data[11] = (GetBattlerSpriteCoordAttr(gBattleAnimAttacker, BATTLER_COORD_ATTR_WIDTH) / 2) + 8;
task->data[7] = 0;
@@ -1154,10 +1156,10 @@ void AnimTask_GrudgeFlames(u8 taskId)
SetGpuReg(REG_OFFSET_BLDCNT, (BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_ALL));
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0, 0x10));
task->data[8] = 0;
task->func = sub_80B696C;
task->func = AnimTask_GrudgeFlames_Step;
}
static void sub_80B696C(u8 taskId)
static void AnimTask_GrudgeFlames_Step(u8 taskId)
{
u16 i;
u8 spriteId;
@@ -1447,7 +1449,7 @@ static void sub_80B6FC4(u8 taskId)
++task->data[15];
}
static void sub_80B7158(struct Sprite *sprite)
static void AnimMonMoveCircular(struct Sprite *sprite)
{
sprite->invisible = TRUE;
sprite->data[5] = gBattlerSpriteIds[gBattleAnimAttacker];
@@ -1455,11 +1457,11 @@ static void sub_80B7158(struct Sprite *sprite)
sprite->data[1] = 10;
sprite->data[2] = gBattleAnimArgs[0];
sprite->data[3] = gBattleAnimArgs[1];
sprite->callback = sub_80B71B0;
sprite->callback = AnimMonMoveCircular_Step;
gSprites[sprite->data[5]].y += 8;
}
static void sub_80B71B0(struct Sprite *sprite)
static void AnimMonMoveCircular_Step(struct Sprite *sprite)
{
if (sprite->data[3])
{
+1 -1
View File
@@ -307,7 +307,7 @@ static void sub_80DD4D4(u8 taskId)
gTasks[taskId].data[11] = panIncrement + oldPan;
gTasks[taskId].data[11] = KeepPanInRange(gTasks[taskId].data[11], oldPan);
}
gUnknown_2037F24 = gTasks[taskId].data[11];
gAnimCustomPanning = gTasks[taskId].data[11];
if (gTasks[taskId].data[11] == gTasks[taskId].data[2])
DestroyAnimVisualTask(taskId);
}