Document stat change animation
This commit is contained in:
1 parent
41847cd5aa
commit
6598cb30bc
15 files changed
+131
-89
No files matched your search
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
+12
-11
@@ -4769,17 +4769,18 @@ extern const u32 gMetalShineTilemap[];
|
|||||||
|
|
||||||
extern const u32 gBattleAnimMaskImage_Curse[];
|
extern const u32 gBattleAnimMaskImage_Curse[];
|
||||||
extern const u32 gBattleAnimMaskTilemap_Curse[];
|
extern const u32 gBattleAnimMaskTilemap_Curse[];
|
||||||
extern const u32 gBattleStatMask_Gfx[];
|
|
||||||
extern const u32 gBattleStatMask1_Tilemap[];
|
extern const u32 gStatAnim_Gfx[];
|
||||||
extern const u32 gBattleStatMask2_Tilemap[];
|
extern const u32 gStatAnim_Increase_Tilemap[];
|
||||||
extern const u32 gBattleStatMask1_Pal[];
|
extern const u32 gStatAnim_Decrease_Tilemap[];
|
||||||
extern const u32 gBattleStatMask2_Pal[];
|
extern const u32 gStatAnim_Defense_Pal[];
|
||||||
extern const u32 gBattleStatMask3_Pal[];
|
extern const u32 gStatAnim_Attack_Pal[];
|
||||||
extern const u32 gBattleStatMask4_Pal[];
|
extern const u32 gStatAnim_Accuracy_Pal[];
|
||||||
extern const u32 gBattleStatMask5_Pal[];
|
extern const u32 gStatAnim_Speed_Pal[];
|
||||||
extern const u32 gBattleStatMask6_Pal[];
|
extern const u32 gStatAnim_Multiple_Pal[];
|
||||||
extern const u32 gBattleStatMask7_Pal[];
|
extern const u32 gStatAnim_Evasion_Pal[];
|
||||||
extern const u32 gBattleStatMask8_Pal[];
|
extern const u32 gStatAnim_SpAttack_Pal[];
|
||||||
|
extern const u32 gStatAnim_SpDefense_Pal[];
|
||||||
|
|
||||||
extern const u32 gContestInterfaceGfx[];
|
extern const u32 gContestInterfaceGfx[];
|
||||||
extern const u32 gContestAudienceGfx[];
|
extern const u32 gContestAudienceGfx[];
|
||||||
|
|||||||
@@ -532,8 +532,8 @@ void AnimTask_StatsChange(u8 taskId)
|
|||||||
|
|
||||||
gBattleAnimArgs[0] = goesDown;
|
gBattleAnimArgs[0] = goesDown;
|
||||||
gBattleAnimArgs[1] = animStatId;
|
gBattleAnimArgs[1] = animStatId;
|
||||||
gBattleAnimArgs[2] = 0;
|
gBattleAnimArgs[2] = FALSE; // Whether it's the target, rather than attacker
|
||||||
gBattleAnimArgs[3] = 0;
|
gBattleAnimArgs[3] = FALSE; // Whether it hits multiple battlers
|
||||||
gBattleAnimArgs[4] = sharply;
|
gBattleAnimArgs[4] = sharply;
|
||||||
gTasks[taskId].func = InitStatsChangeAnimation;
|
gTasks[taskId].func = InitStatsChangeAnimation;
|
||||||
gTasks[taskId].func(taskId);
|
gTasks[taskId].func(taskId);
|
||||||
|
|||||||
+106
-64
@@ -16,7 +16,7 @@ struct AnimStatsChangeData
|
|||||||
{
|
{
|
||||||
u8 battler1;
|
u8 battler1;
|
||||||
u8 battler2;
|
u8 battler2;
|
||||||
u8 higherPriority;
|
bool8 hidBattler2;
|
||||||
s16 data[8];
|
s16 data[8];
|
||||||
u16 species;
|
u16 species;
|
||||||
};
|
};
|
||||||
@@ -388,6 +388,27 @@ static void AnimTask_DrawFallingWhiteLinesOnAttacker_Step(u8 taskId)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Defines for data array in sAnimStatsChangeData
|
||||||
|
#define aDecrease data[0]
|
||||||
|
#define aAnimStatId data[1]
|
||||||
|
#define aIsTarget data[2]
|
||||||
|
#define aMultipleBattlers data[3] // Always false. Changes for multiple battlers are instead run sequentially.
|
||||||
|
#define aSharply data[4]
|
||||||
|
|
||||||
|
// Task data defines for InitStatsChangeAnimation
|
||||||
|
#define tAnimSpriteId1 data[0]
|
||||||
|
#define tVelocity data[1]
|
||||||
|
#define tMultipleBattlers data[2]
|
||||||
|
#define tAnimSpriteId2 data[3]
|
||||||
|
#define tTargetBlend data[4]
|
||||||
|
#define tWaitTime data[5]
|
||||||
|
#define tHidBattler2 data[6]
|
||||||
|
#define tBattler2SpriteId data[7]
|
||||||
|
#define tWaitTimer data[10]
|
||||||
|
#define tFadeTimer data[11]
|
||||||
|
#define tBlend data[12]
|
||||||
|
#define tState data[15]
|
||||||
|
|
||||||
void InitStatsChangeAnimation(u8 taskId)
|
void InitStatsChangeAnimation(u8 taskId)
|
||||||
{
|
{
|
||||||
u8 i;
|
u8 i;
|
||||||
@@ -401,21 +422,19 @@ void InitStatsChangeAnimation(u8 taskId)
|
|||||||
|
|
||||||
static void StatsChangeAnimation_Step1(u8 taskId)
|
static void StatsChangeAnimation_Step1(u8 taskId)
|
||||||
{
|
{
|
||||||
if (sAnimStatsChangeData->data[2] == 0)
|
if (!sAnimStatsChangeData->aIsTarget)
|
||||||
sAnimStatsChangeData->battler1 = gBattleAnimAttacker;
|
sAnimStatsChangeData->battler1 = gBattleAnimAttacker;
|
||||||
else
|
else
|
||||||
sAnimStatsChangeData->battler1 = gBattleAnimTarget;
|
sAnimStatsChangeData->battler1 = gBattleAnimTarget;
|
||||||
|
|
||||||
sAnimStatsChangeData->battler2 = BATTLE_PARTNER(sAnimStatsChangeData->battler1);
|
sAnimStatsChangeData->battler2 = BATTLE_PARTNER(sAnimStatsChangeData->battler1);
|
||||||
if (IsContest() || (sAnimStatsChangeData->data[3] && !IsBattlerSpriteVisible(sAnimStatsChangeData->battler2)))
|
if (IsContest() || (sAnimStatsChangeData->aMultipleBattlers && !IsBattlerSpriteVisible(sAnimStatsChangeData->battler2)))
|
||||||
sAnimStatsChangeData->data[3] = 0;
|
sAnimStatsChangeData->aMultipleBattlers = FALSE;
|
||||||
|
|
||||||
gBattle_WIN0H = 0;
|
gBattle_WIN0H = 0;
|
||||||
gBattle_WIN0V = 0;
|
gBattle_WIN0V = 0;
|
||||||
SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR
|
SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_ALL | WININ_WIN1_ALL);
|
||||||
| WININ_WIN1_BG_ALL | WININ_WIN1_OBJ | WININ_WIN1_CLR);
|
SetGpuReg(REG_OFFSET_WINOUT, (WINOUT_WIN01_ALL & ~WINOUT_WIN01_BG1) | WINOUT_WINOBJ_ALL);
|
||||||
SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG0 | WINOUT_WIN01_BG2 | WINOUT_WIN01_BG3 | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR
|
|
||||||
| WINOUT_WINOBJ_BG_ALL | WINOUT_WINOBJ_OBJ | WINOUT_WINOBJ_CLR);
|
|
||||||
SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_OBJWIN_ON);
|
SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_OBJWIN_ON);
|
||||||
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG1 | BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND);
|
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG1 | BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND);
|
||||||
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0, 16));
|
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0, 16));
|
||||||
@@ -424,16 +443,17 @@ static void StatsChangeAnimation_Step1(u8 taskId)
|
|||||||
if (!IsContest())
|
if (!IsContest())
|
||||||
SetAnimBgAttribute(1, BG_ANIM_CHAR_BASE_BLOCK, 1);
|
SetAnimBgAttribute(1, BG_ANIM_CHAR_BASE_BLOCK, 1);
|
||||||
|
|
||||||
if (IsDoubleBattle() && sAnimStatsChangeData->data[3] == 0)
|
if (IsDoubleBattle() && !sAnimStatsChangeData->aMultipleBattlers)
|
||||||
{
|
{
|
||||||
if (GetBattlerPosition(sAnimStatsChangeData->battler1) == B_POSITION_OPPONENT_RIGHT
|
if (GetBattlerPosition(sAnimStatsChangeData->battler1) == B_POSITION_OPPONENT_RIGHT
|
||||||
|| GetBattlerPosition(sAnimStatsChangeData->battler1) == B_POSITION_PLAYER_LEFT)
|
|| GetBattlerPosition(sAnimStatsChangeData->battler1) == B_POSITION_PLAYER_LEFT)
|
||||||
{
|
{
|
||||||
if (IsBattlerSpriteVisible(sAnimStatsChangeData->battler2) == TRUE)
|
if (IsBattlerSpriteVisible(sAnimStatsChangeData->battler2) == TRUE)
|
||||||
{
|
{
|
||||||
gSprites[gBattlerSpriteIds[sAnimStatsChangeData->battler2]].oam.priority -= 1;
|
// Push the battler not being animated back so it doesn't receive the animation.
|
||||||
|
gSprites[gBattlerSpriteIds[sAnimStatsChangeData->battler2]].oam.priority--;
|
||||||
SetAnimBgAttribute(1, BG_ANIM_PRIORITY, 1);
|
SetAnimBgAttribute(1, BG_ANIM_PRIORITY, 1);
|
||||||
sAnimStatsChangeData->higherPriority = 1;
|
sAnimStatsChangeData->hidBattler2 = TRUE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -462,80 +482,80 @@ static void StatsChangeAnimation_Step2(u8 taskId)
|
|||||||
spriteId2 = 0;
|
spriteId2 = 0;
|
||||||
battlerSpriteId = gBattlerSpriteIds[sAnimStatsChangeData->battler1];
|
battlerSpriteId = gBattlerSpriteIds[sAnimStatsChangeData->battler1];
|
||||||
spriteId = CreateInvisibleSpriteCopy(sAnimStatsChangeData->battler1, battlerSpriteId, sAnimStatsChangeData->species);
|
spriteId = CreateInvisibleSpriteCopy(sAnimStatsChangeData->battler1, battlerSpriteId, sAnimStatsChangeData->species);
|
||||||
if (sAnimStatsChangeData->data[3])
|
if (sAnimStatsChangeData->aMultipleBattlers)
|
||||||
{
|
{
|
||||||
battlerSpriteId = gBattlerSpriteIds[sAnimStatsChangeData->battler2];
|
battlerSpriteId = gBattlerSpriteIds[sAnimStatsChangeData->battler2];
|
||||||
spriteId2 = CreateInvisibleSpriteCopy(sAnimStatsChangeData->battler2, battlerSpriteId, sAnimStatsChangeData->species);
|
spriteId2 = CreateInvisibleSpriteCopy(sAnimStatsChangeData->battler2, battlerSpriteId, sAnimStatsChangeData->species);
|
||||||
}
|
}
|
||||||
|
|
||||||
GetBattleAnimBg1Data(&animBgData);
|
GetBattleAnimBg1Data(&animBgData);
|
||||||
if (sAnimStatsChangeData->data[0] == 0)
|
if (!sAnimStatsChangeData->aDecrease)
|
||||||
AnimLoadCompressedBgTilemapHandleContest(&animBgData, gBattleStatMask1_Tilemap, FALSE);
|
AnimLoadCompressedBgTilemapHandleContest(&animBgData, gStatAnim_Increase_Tilemap, FALSE);
|
||||||
else
|
else
|
||||||
AnimLoadCompressedBgTilemapHandleContest(&animBgData, gBattleStatMask2_Tilemap, FALSE);
|
AnimLoadCompressedBgTilemapHandleContest(&animBgData, gStatAnim_Decrease_Tilemap, FALSE);
|
||||||
|
|
||||||
AnimLoadCompressedBgGfx(animBgData.bgId, gBattleStatMask_Gfx, animBgData.tilesOffset);
|
AnimLoadCompressedBgGfx(animBgData.bgId, gStatAnim_Gfx, animBgData.tilesOffset);
|
||||||
switch (sAnimStatsChangeData->data[1])
|
switch (sAnimStatsChangeData->aAnimStatId)
|
||||||
{
|
{
|
||||||
case STAT_ANIM_PAL_ATK:
|
case STAT_ANIM_PAL_ATK:
|
||||||
LoadCompressedPalette(gBattleStatMask2_Pal, BG_PLTT_ID(animBgData.paletteId), PLTT_SIZE_4BPP);
|
LoadCompressedPalette(gStatAnim_Attack_Pal, BG_PLTT_ID(animBgData.paletteId), PLTT_SIZE_4BPP);
|
||||||
break;
|
break;
|
||||||
case STAT_ANIM_PAL_DEF:
|
case STAT_ANIM_PAL_DEF:
|
||||||
LoadCompressedPalette(gBattleStatMask1_Pal, BG_PLTT_ID(animBgData.paletteId), PLTT_SIZE_4BPP);
|
LoadCompressedPalette(gStatAnim_Defense_Pal, BG_PLTT_ID(animBgData.paletteId), PLTT_SIZE_4BPP);
|
||||||
break;
|
break;
|
||||||
case STAT_ANIM_PAL_ACC:
|
case STAT_ANIM_PAL_ACC:
|
||||||
LoadCompressedPalette(gBattleStatMask3_Pal, BG_PLTT_ID(animBgData.paletteId), PLTT_SIZE_4BPP);
|
LoadCompressedPalette(gStatAnim_Accuracy_Pal, BG_PLTT_ID(animBgData.paletteId), PLTT_SIZE_4BPP);
|
||||||
break;
|
break;
|
||||||
case STAT_ANIM_PAL_SPEED:
|
case STAT_ANIM_PAL_SPEED:
|
||||||
LoadCompressedPalette(gBattleStatMask4_Pal, BG_PLTT_ID(animBgData.paletteId), PLTT_SIZE_4BPP);
|
LoadCompressedPalette(gStatAnim_Speed_Pal, BG_PLTT_ID(animBgData.paletteId), PLTT_SIZE_4BPP);
|
||||||
break;
|
break;
|
||||||
case STAT_ANIM_PAL_EVASION:
|
case STAT_ANIM_PAL_EVASION:
|
||||||
LoadCompressedPalette(gBattleStatMask6_Pal, BG_PLTT_ID(animBgData.paletteId), PLTT_SIZE_4BPP);
|
LoadCompressedPalette(gStatAnim_Evasion_Pal, BG_PLTT_ID(animBgData.paletteId), PLTT_SIZE_4BPP);
|
||||||
break;
|
break;
|
||||||
case STAT_ANIM_PAL_SPATK:
|
case STAT_ANIM_PAL_SPATK:
|
||||||
LoadCompressedPalette(gBattleStatMask7_Pal, BG_PLTT_ID(animBgData.paletteId), PLTT_SIZE_4BPP);
|
LoadCompressedPalette(gStatAnim_SpAttack_Pal, BG_PLTT_ID(animBgData.paletteId), PLTT_SIZE_4BPP);
|
||||||
break;
|
break;
|
||||||
case STAT_ANIM_PAL_SPDEF:
|
case STAT_ANIM_PAL_SPDEF:
|
||||||
LoadCompressedPalette(gBattleStatMask8_Pal, BG_PLTT_ID(animBgData.paletteId), PLTT_SIZE_4BPP);
|
LoadCompressedPalette(gStatAnim_SpDefense_Pal, BG_PLTT_ID(animBgData.paletteId), PLTT_SIZE_4BPP);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
// case STAT_ANIM_PAL_MULTIPLE:
|
// case STAT_ANIM_PAL_MULTIPLE:
|
||||||
LoadCompressedPalette(gBattleStatMask5_Pal, BG_PLTT_ID(animBgData.paletteId), PLTT_SIZE_4BPP);
|
LoadCompressedPalette(gStatAnim_Multiple_Pal, BG_PLTT_ID(animBgData.paletteId), PLTT_SIZE_4BPP);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
gBattle_BG1_X = 0;
|
gBattle_BG1_X = 0;
|
||||||
gBattle_BG1_Y = 0;
|
gBattle_BG1_Y = 0;
|
||||||
|
|
||||||
if (sAnimStatsChangeData->data[0] == 1)
|
if (sAnimStatsChangeData->aDecrease == TRUE)
|
||||||
{
|
{
|
||||||
gBattle_BG1_X = 64;
|
gBattle_BG1_X = 64;
|
||||||
gTasks[taskId].data[1] = -3;
|
gTasks[taskId].tVelocity = -3;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
gTasks[taskId].data[1] = 3;
|
gTasks[taskId].tVelocity = 3;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (sAnimStatsChangeData->data[4] == 0)
|
if (!sAnimStatsChangeData->aSharply)
|
||||||
{
|
{
|
||||||
gTasks[taskId].data[4] = 10;
|
gTasks[taskId].tTargetBlend = 10;
|
||||||
gTasks[taskId].data[5] = 20;
|
gTasks[taskId].tWaitTime = 20;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
gTasks[taskId].data[4] = 13;
|
gTasks[taskId].tTargetBlend = 13;
|
||||||
gTasks[taskId].data[5] = 30;
|
gTasks[taskId].tWaitTime = 30;
|
||||||
}
|
}
|
||||||
|
|
||||||
gTasks[taskId].data[0] = spriteId;
|
gTasks[taskId].tAnimSpriteId1 = spriteId;
|
||||||
gTasks[taskId].data[2] = sAnimStatsChangeData->data[3];
|
gTasks[taskId].tMultipleBattlers = sAnimStatsChangeData->aMultipleBattlers;
|
||||||
gTasks[taskId].data[3] = spriteId2;
|
gTasks[taskId].tAnimSpriteId2 = spriteId2;
|
||||||
gTasks[taskId].data[6] = sAnimStatsChangeData->higherPriority;
|
gTasks[taskId].tHidBattler2 = sAnimStatsChangeData->hidBattler2;
|
||||||
gTasks[taskId].data[7] = gBattlerSpriteIds[sAnimStatsChangeData->battler2];
|
gTasks[taskId].tBattler2SpriteId = gBattlerSpriteIds[sAnimStatsChangeData->battler2];
|
||||||
gTasks[taskId].func = StatsChangeAnimation_Step3;
|
gTasks[taskId].func = StatsChangeAnimation_Step3;
|
||||||
|
|
||||||
if (sAnimStatsChangeData->data[0] == 0)
|
if (!sAnimStatsChangeData->aDecrease)
|
||||||
PlaySE12WithPanning(SE_M_STAT_INCREASE, BattleAnimAdjustPanning2(SOUND_PAN_ATTACKER));
|
PlaySE12WithPanning(SE_M_STAT_INCREASE, BattleAnimAdjustPanning2(SOUND_PAN_ATTACKER));
|
||||||
else
|
else
|
||||||
PlaySE12WithPanning(SE_M_STAT_DECREASE, BattleAnimAdjustPanning2(SOUND_PAN_ATTACKER));
|
PlaySE12WithPanning(SE_M_STAT_DECREASE, BattleAnimAdjustPanning2(SOUND_PAN_ATTACKER));
|
||||||
@@ -543,44 +563,46 @@ static void StatsChangeAnimation_Step2(u8 taskId)
|
|||||||
|
|
||||||
static void StatsChangeAnimation_Step3(u8 taskId)
|
static void StatsChangeAnimation_Step3(u8 taskId)
|
||||||
{
|
{
|
||||||
gBattle_BG1_Y += gTasks[taskId].data[1];
|
gBattle_BG1_Y += gTasks[taskId].tVelocity;
|
||||||
|
|
||||||
switch (gTasks[taskId].data[15])
|
switch (gTasks[taskId].tState)
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
if (gTasks[taskId].data[11]++ > 0)
|
// Fade in
|
||||||
|
if (gTasks[taskId].tFadeTimer++ > 0)
|
||||||
{
|
{
|
||||||
gTasks[taskId].data[11] = 0;
|
gTasks[taskId].tFadeTimer = 0;
|
||||||
gTasks[taskId].data[12]++;
|
gTasks[taskId].tBlend++;
|
||||||
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gTasks[taskId].data[12], 16 - gTasks[taskId].data[12]));
|
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gTasks[taskId].tBlend, 16 - gTasks[taskId].tBlend));
|
||||||
if (gTasks[taskId].data[12] == gTasks[taskId].data[4])
|
if (gTasks[taskId].tBlend == gTasks[taskId].tTargetBlend)
|
||||||
gTasks[taskId].data[15]++;
|
gTasks[taskId].tState++;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
if (++gTasks[taskId].data[10] == gTasks[taskId].data[5])
|
// Wait
|
||||||
gTasks[taskId].data[15]++;
|
if (++gTasks[taskId].tWaitTimer == gTasks[taskId].tWaitTime)
|
||||||
|
gTasks[taskId].tState++;
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
if (gTasks[taskId].data[11]++ > 0)
|
// Fade out
|
||||||
|
if (gTasks[taskId].tFadeTimer++ > 0)
|
||||||
{
|
{
|
||||||
gTasks[taskId].data[11] = 0;
|
gTasks[taskId].tFadeTimer = 0;
|
||||||
gTasks[taskId].data[12]--;
|
gTasks[taskId].tBlend--;
|
||||||
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gTasks[taskId].data[12], 16 - gTasks[taskId].data[12]));
|
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gTasks[taskId].tBlend, 16 - gTasks[taskId].tBlend));
|
||||||
if (gTasks[taskId].data[12] == 0)
|
if (gTasks[taskId].tBlend == 0)
|
||||||
{
|
{
|
||||||
ResetBattleAnimBg(FALSE);
|
ResetBattleAnimBg(FALSE);
|
||||||
gTasks[taskId].data[15]++;
|
gTasks[taskId].tState++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
|
// Reset
|
||||||
gBattle_WIN0H = 0;
|
gBattle_WIN0H = 0;
|
||||||
gBattle_WIN0V = 0;
|
gBattle_WIN0V = 0;
|
||||||
SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR
|
SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_ALL | WININ_WIN1_ALL);
|
||||||
| WININ_WIN1_BG_ALL | WININ_WIN1_OBJ | WININ_WIN1_CLR);
|
SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_ALL | WINOUT_WINOBJ_ALL);
|
||||||
SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG_ALL | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR
|
|
||||||
| WINOUT_WINOBJ_BG_ALL | WINOUT_WINOBJ_OBJ | WINOUT_WINOBJ_CLR);
|
|
||||||
|
|
||||||
if (!IsContest())
|
if (!IsContest())
|
||||||
SetAnimBgAttribute(1, BG_ANIM_CHAR_BASE_BLOCK, 0);
|
SetAnimBgAttribute(1, BG_ANIM_CHAR_BASE_BLOCK, 0);
|
||||||
@@ -588,12 +610,14 @@ static void StatsChangeAnimation_Step3(u8 taskId)
|
|||||||
SetGpuReg(REG_OFFSET_DISPCNT, GetGpuReg(REG_OFFSET_DISPCNT) ^ DISPCNT_OBJWIN_ON);
|
SetGpuReg(REG_OFFSET_DISPCNT, GetGpuReg(REG_OFFSET_DISPCNT) ^ DISPCNT_OBJWIN_ON);
|
||||||
SetGpuReg(REG_OFFSET_BLDCNT, 0);
|
SetGpuReg(REG_OFFSET_BLDCNT, 0);
|
||||||
SetGpuReg(REG_OFFSET_BLDALPHA, 0);
|
SetGpuReg(REG_OFFSET_BLDALPHA, 0);
|
||||||
DestroySprite(&gSprites[gTasks[taskId].data[0]]);
|
|
||||||
if (gTasks[taskId].data[2])
|
|
||||||
DestroySprite(&gSprites[gTasks[taskId].data[3]]);
|
|
||||||
|
|
||||||
if (gTasks[taskId].data[6] == 1)
|
DestroySprite(&gSprites[gTasks[taskId].tAnimSpriteId1]);
|
||||||
gSprites[gTasks[taskId].data[7]].oam.priority++;
|
if (gTasks[taskId].tMultipleBattlers)
|
||||||
|
DestroySprite(&gSprites[gTasks[taskId].tAnimSpriteId2]);
|
||||||
|
|
||||||
|
// Restore battler 2's priority
|
||||||
|
if (gTasks[taskId].tHidBattler2 == TRUE)
|
||||||
|
gSprites[gTasks[taskId].tBattler2SpriteId].oam.priority++;
|
||||||
|
|
||||||
FREE_AND_SET_NULL(sAnimStatsChangeData);
|
FREE_AND_SET_NULL(sAnimStatsChangeData);
|
||||||
DestroyAnimVisualTask(taskId);
|
DestroyAnimVisualTask(taskId);
|
||||||
@@ -601,6 +625,24 @@ static void StatsChangeAnimation_Step3(u8 taskId)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#undef aDecrease
|
||||||
|
#undef aAnimStatId
|
||||||
|
#undef aIsTarget
|
||||||
|
#undef aMultipleBattlers
|
||||||
|
#undef aSharply
|
||||||
|
#undef tAnimSpriteId1
|
||||||
|
#undef tVelocity
|
||||||
|
#undef tMultipleBattlers
|
||||||
|
#undef tAnimSpriteId2
|
||||||
|
#undef tTargetBlend
|
||||||
|
#undef tWaitTime
|
||||||
|
#undef tHidBattler2
|
||||||
|
#undef tBattler2SpriteId
|
||||||
|
#undef tWaitTimer
|
||||||
|
#undef tFadeTimer
|
||||||
|
#undef tBlend
|
||||||
|
#undef tState
|
||||||
|
|
||||||
void AnimTask_Flash(u8 taskId)
|
void AnimTask_Flash(u8 taskId)
|
||||||
{
|
{
|
||||||
u32 selectedPalettes = GetBattleMonSpritePalettesMask(1, 1, 1, 1);
|
u32 selectedPalettes = GetBattleMonSpritePalettesMask(1, 1, 1, 1);
|
||||||
|
|||||||
+11
-12
@@ -865,18 +865,17 @@ const u32 gBattleAnimSpritePal_PinkCloud[] = INCBIN_U32("graphics/battle_anims/s
|
|||||||
const u32 gBattleAnimSpriteGfx_SweatDrop[] = INCBIN_U32("graphics/battle_anims/sprites/sweat_drop.4bpp.lz");
|
const u32 gBattleAnimSpriteGfx_SweatDrop[] = INCBIN_U32("graphics/battle_anims/sprites/sweat_drop.4bpp.lz");
|
||||||
const u32 gBattleAnimSpritePal_SweatDrop[] = INCBIN_U32("graphics/battle_anims/sprites/sweat_drop.gbapal.lz");
|
const u32 gBattleAnimSpritePal_SweatDrop[] = INCBIN_U32("graphics/battle_anims/sprites/sweat_drop.gbapal.lz");
|
||||||
|
|
||||||
const u32 gBattleStatMask_Gfx[] = INCBIN_U32("graphics/battle_anims/masks/stat.4bpp.lz");
|
const u32 gStatAnim_Gfx[] = INCBIN_U32("graphics/battle_anims/stat_change/tiles.4bpp.lz");
|
||||||
const u32 gBattleStatMask1_Tilemap[] = INCBIN_U32("graphics/battle_anims/masks/stat_tilemap_1.bin.lz");
|
const u32 gStatAnim_Increase_Tilemap[] = INCBIN_U32("graphics/battle_anims/stat_change/increase.bin.lz");
|
||||||
const u32 gBattleStatMask2_Tilemap[] = INCBIN_U32("graphics/battle_anims/masks/stat_tilemap_2.bin.lz");
|
const u32 gStatAnim_Decrease_Tilemap[] = INCBIN_U32("graphics/battle_anims/stat_change/decrease.bin.lz");
|
||||||
|
const u32 gStatAnim_Defense_Pal[] = INCBIN_U32("graphics/battle_anims/stat_change/defense.gbapal.lz");
|
||||||
const u32 gBattleStatMask1_Pal[] = INCBIN_U32("graphics/battle_anims/masks/stat1.gbapal.lz");
|
const u32 gStatAnim_Attack_Pal[] = INCBIN_U32("graphics/battle_anims/stat_change/attack.gbapal.lz");
|
||||||
const u32 gBattleStatMask2_Pal[] = INCBIN_U32("graphics/battle_anims/masks/stat2.gbapal.lz");
|
const u32 gStatAnim_Accuracy_Pal[] = INCBIN_U32("graphics/battle_anims/stat_change/accuracy.gbapal.lz");
|
||||||
const u32 gBattleStatMask3_Pal[] = INCBIN_U32("graphics/battle_anims/masks/stat3.gbapal.lz");
|
const u32 gStatAnim_Speed_Pal[] = INCBIN_U32("graphics/battle_anims/stat_change/speed.gbapal.lz");
|
||||||
const u32 gBattleStatMask4_Pal[] = INCBIN_U32("graphics/battle_anims/masks/stat4.gbapal.lz");
|
const u32 gStatAnim_Multiple_Pal[] = INCBIN_U32("graphics/battle_anims/stat_change/multiple.gbapal.lz");
|
||||||
const u32 gBattleStatMask5_Pal[] = INCBIN_U32("graphics/battle_anims/masks/stat5.gbapal.lz");
|
const u32 gStatAnim_Evasion_Pal[] = INCBIN_U32("graphics/battle_anims/stat_change/evasion.gbapal.lz");
|
||||||
const u32 gBattleStatMask6_Pal[] = INCBIN_U32("graphics/battle_anims/masks/stat6.gbapal.lz");
|
const u32 gStatAnim_SpAttack_Pal[] = INCBIN_U32("graphics/battle_anims/stat_change/sp_attack.gbapal.lz");
|
||||||
const u32 gBattleStatMask7_Pal[] = INCBIN_U32("graphics/battle_anims/masks/stat7.gbapal.lz");
|
const u32 gStatAnim_SpDefense_Pal[] = INCBIN_U32("graphics/battle_anims/stat_change/sp_defense.gbapal.lz");
|
||||||
const u32 gBattleStatMask8_Pal[] = INCBIN_U32("graphics/battle_anims/masks/stat8.gbapal.lz");
|
|
||||||
|
|
||||||
const u32 gCureBubblesGfx[] = INCBIN_U32("graphics/battle_anims/masks/cure_bubbles.4bpp.lz");
|
const u32 gCureBubblesGfx[] = INCBIN_U32("graphics/battle_anims/masks/cure_bubbles.4bpp.lz");
|
||||||
const u32 gCureBubblesPal[] = INCBIN_U32("graphics/battle_anims/masks/cure_bubbles.gbapal.lz");
|
const u32 gCureBubblesPal[] = INCBIN_U32("graphics/battle_anims/masks/cure_bubbles.gbapal.lz");
|
||||||
|
|||||||
Reference in new issue
Block a user