summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/battle_anim.c7
-rw-r--r--src/battle_anim_effects_1.c10
-rwxr-xr-xsrc/battle_anim_effects_2.c8
-rw-r--r--src/battle_anim_mon_movement.c14
-rw-r--r--src/battle_anim_mons.c30
-rw-r--r--src/battle_anim_sound_tasks.c16
-rwxr-xr-xsrc/battle_anim_special.c2
-rw-r--r--src/battle_anim_utility_funcs.c29
-rw-r--r--src/battle_gfx_sfx_util.c4
-rw-r--r--src/bug.c4
-rw-r--r--src/dark.c20
-rw-r--r--src/dragon.c4
-rw-r--r--src/fight.c22
-rw-r--r--src/fire.c46
-rw-r--r--src/ghost.c4
-rw-r--r--src/ground.c6
-rw-r--r--src/normal.c174
-rw-r--r--src/psychic.c2
-rw-r--r--src/rock.c4
-rw-r--r--src/water.c3
20 files changed, 218 insertions, 191 deletions
diff --git a/src/battle_anim.c b/src/battle_anim.c
index becc12d56..32a917cb4 100644
--- a/src/battle_anim.c
+++ b/src/battle_anim.c
@@ -112,7 +112,7 @@ EWRAM_DATA static u16 sAnimMoveIndex = 0; // Set but unused.
EWRAM_DATA u8 gBattleAnimAttacker = 0;
EWRAM_DATA u8 gBattleAnimTarget = 0;
EWRAM_DATA u16 gAnimBattlerSpecies[MAX_BATTLERS_COUNT] = {0};
-EWRAM_DATA u8 gUnknown_02038440 = 0;
+EWRAM_DATA u8 gAnimCustomPanning = 0;
const struct OamData gOamData_AffineOff_ObjNormal_8x8 =
{
@@ -1821,7 +1821,7 @@ void ClearBattleAnimationVars(void)
sAnimMoveIndex = 0;
gBattleAnimAttacker = 0;
gBattleAnimTarget = 0;
- gUnknown_02038440 = 0;
+ gAnimCustomPanning = 0;
}
void DoMoveAnim(u16 move)
@@ -2715,7 +2715,8 @@ static void ScriptCmd_goto(void)
sBattleAnimScriptPtr = T2_READ_PTR(sBattleAnimScriptPtr);
}
-// Uses of this function that rely on a TRUE return are expecting inBattle to not be ticked as defined in contest behavior. As a result, if misused, this function cannot reliably discern between field and contest status and could result in undefined behavior.
+// Uses of this function that rely on a TRUE return are expecting inBattle to not be ticked as defined in contest behavior.
+// As a result, if misused, this function cannot reliably discern between field and contest status and could result in undefined behavior.
bool8 IsContest(void)
{
if (!gMain.inBattle)
diff --git a/src/battle_anim_effects_1.c b/src/battle_anim_effects_1.c
index 7f75cd7da..4a3fdb50f 100644
--- a/src/battle_anim_effects_1.c
+++ b/src/battle_anim_effects_1.c
@@ -78,6 +78,7 @@ void AnimThoughtBubble(struct Sprite *);
void AnimMetronomeFinger(struct Sprite *);
void AnimFollowMeFinger(struct Sprite *);
void AnimTauntFinger(struct Sprite *);
+static void AnimTask_MoonlightEndFadeStep(u8 taskId);
static void AnimMovePowderParticleStep(struct Sprite *);
static void AnimSolarbeamSmallOrbStep(struct Sprite *);
static void AnimAbsorptionOrbStep(struct Sprite *);
@@ -4987,10 +4988,7 @@ static void AnimMoonlightSparkleStep(struct Sprite* sprite)
DestroyAnimSprite(sprite);
}
-void AnimTask_FadeScreenBlueStep(u8);
-
-
-void AnimTask_FadeScreenBlue(u8 taskId)
+void AnimTask_MoonlightEndFade(u8 taskId)
{
int a = sub_80A75AC(1, 0, 0, 0, 0, 0, 0) & 0xFFFF;
int b;
@@ -5013,11 +5011,11 @@ void AnimTask_FadeScreenBlue(u8 taskId)
b = b | (0x10000 << IndexOfSpritePaletteTag(ANIM_TAG_MOON));
d = IndexOfSpritePaletteTag(ANIM_TAG_GREEN_SPARKLE);
BeginNormalPaletteFade((0x10000 << d) | b, 0, 0, 16, RGB(27, 29, 31));
- gTasks[taskId].func = AnimTask_FadeScreenBlueStep;
+ gTasks[taskId].func = AnimTask_MoonlightEndFadeStep;
gTasks[taskId].func(taskId);
}
-void AnimTask_FadeScreenBlueStep(u8 taskId)
+static void AnimTask_MoonlightEndFadeStep(u8 taskId)
{
struct Task* task = &gTasks[taskId];
switch (task->data[0])
diff --git a/src/battle_anim_effects_2.c b/src/battle_anim_effects_2.c
index af24483fa..b0576e94b 100755
--- a/src/battle_anim_effects_2.c
+++ b/src/battle_anim_effects_2.c
@@ -3010,12 +3010,12 @@ void AnimTask_LoadMusicNotesPals(u8 taskId)
for (i = 1; i < NUM_MUSIC_NOTE_PAL_TAGS; i++)
paletteNums[i] = AllocSpritePalette(ANIM_SPRITES_START - i);
- gMonSpritesGfxPtr->field_17C = AllocZeroed(0x2000);
- LZDecompressWram(gBattleAnimSpritePal_MusicNotes2, gMonSpritesGfxPtr->field_17C);
+ gMonSpritesGfxPtr->buffer = AllocZeroed(0x2000);
+ LZDecompressWram(gBattleAnimSpritePal_MusicNotes2, gMonSpritesGfxPtr->buffer);
for (i = 0; i < NUM_MUSIC_NOTE_PAL_TAGS; i++)
- LoadPalette(&gMonSpritesGfxPtr->field_17C[i * 32], (u16)((paletteNums[i] << 4) + 0x100), 32);
+ LoadPalette(&gMonSpritesGfxPtr->buffer[i * 32], (u16)((paletteNums[i] << 4) + 0x100), 32);
- FREE_AND_SET_NULL(gMonSpritesGfxPtr->field_17C);
+ FREE_AND_SET_NULL(gMonSpritesGfxPtr->buffer);
DestroyAnimVisualTask(taskId);
}
diff --git a/src/battle_anim_mon_movement.c b/src/battle_anim_mon_movement.c
index e1849064d..59eaaf549 100644
--- a/src/battle_anim_mon_movement.c
+++ b/src/battle_anim_mon_movement.c
@@ -18,7 +18,7 @@ static void ReverseVerticalDipDirection(struct Sprite* sprite);
static void SlideMonToOriginalPos(struct Sprite *sprite);
static void SlideMonToOriginalPosStep(struct Sprite *sprite);
static void SlideMonToOffset(struct Sprite *sprite);
-static void sub_80D5B48(struct Sprite *sprite);
+static void SlideMonToOffsetAndBack(struct Sprite *sprite);
static void sub_80D5C20(struct Sprite *sprite);
void AnimTask_WindUpLungePart1(u8 taskId);
void AnimTask_WindUpLungePart2(u8 taskId);
@@ -72,7 +72,7 @@ const struct SpriteTemplate gSlideMonToOffsetSpriteTemplate =
.callback = SlideMonToOffset,
};
-const struct SpriteTemplate gUnknown_0857FE88 =
+const struct SpriteTemplate gSlideMonToOffsetAndBackSpriteTemplate =
{
.tileTag = 0,
.paletteTag = 0,
@@ -80,7 +80,7 @@ const struct SpriteTemplate gUnknown_0857FE88 =
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
- .callback = sub_80D5B48,
+ .callback = SlideMonToOffsetAndBack,
};
// Task to facilitate simple shaking of a pokemon's picture in battle.
@@ -584,19 +584,17 @@ static void SlideMonToOffset(struct Sprite *sprite)
sprite->callback = TranslateMonSpriteLinearFixedPoint;
}
-static void sub_80D5B48(struct Sprite *sprite)
+static void SlideMonToOffsetAndBack(struct Sprite *sprite)
{
u8 spriteId;
u8 battlerId;
sprite->invisible = TRUE;
+
if (gBattleAnimArgs[0] == ANIM_ATTACKER)
- {
battlerId = gBattleAnimAttacker;
- }
else
- {
battlerId = gBattleAnimTarget;
- }
+
spriteId = gBattlerSpriteIds[battlerId];
if (GetBattlerSide(battlerId))
{
diff --git a/src/battle_anim_mons.c b/src/battle_anim_mons.c
index 47264d152..cb56ab2e9 100644
--- a/src/battle_anim_mons.c
+++ b/src/battle_anim_mons.c
@@ -34,7 +34,7 @@ static void AnimThrowProjectile_Step(struct Sprite *sprite);
static void sub_80A8DFC(struct Sprite *sprite);
static void sub_80A8E88(struct Sprite *sprite);
static u16 GetBattlerYDeltaFromSpriteId(u8 spriteId);
-static void AnimTask_BlendMonInAndOutSetup(struct Task *task);
+static void AnimTask_BlendPalInAndOutSetup(struct Task *task);
static void sub_80A7AFC(u8 taskId);
static void sub_80A8CAC(u8 taskId);
static void AnimTask_BlendMonInAndOutStep(u8 taskId);
@@ -1594,7 +1594,8 @@ void obj_delete_but_dont_free_vram(struct Sprite *sprite)
DestroySprite(sprite);
}
-void sub_80A7A74(u8 taskId)
+// Only used to fade Moonlight moon sprite in
+void AnimTask_AlphaFadeIn(u8 taskId)
{
s16 v1 = 0;
s16 v2 = 0;
@@ -1663,10 +1664,10 @@ void AnimTask_BlendMonInAndOut(u8 task)
return;
}
gTasks[task].data[0] = (gSprites[spriteId].oam.paletteNum * 0x10) + 0x101;
- AnimTask_BlendMonInAndOutSetup(&gTasks[task]);
+ AnimTask_BlendPalInAndOutSetup(&gTasks[task]);
}
-static void AnimTask_BlendMonInAndOutSetup(struct Task *task)
+static void AnimTask_BlendPalInAndOutSetup(struct Task *task)
{
task->data[1] = gBattleAnimArgs[1];
task->data[2] = 0;
@@ -1713,7 +1714,8 @@ static void AnimTask_BlendMonInAndOutStep(u8 taskId)
}
}
-void sub_80A7CB4(u8 task)
+// See AnimTask_BlendMonInAndOut. Same, but ANIM_TAG_* instead of mon
+void AnimTask_BlendPalInAndOutByTag(u8 task)
{
u8 palette = IndexOfSpritePaletteTag(gBattleAnimArgs[0]);
@@ -1723,7 +1725,7 @@ void sub_80A7CB4(u8 task)
return;
}
gTasks[task].data[0] = (palette * 0x10) + 0x101;
- AnimTask_BlendMonInAndOutSetup(&gTasks[task]);
+ AnimTask_BlendPalInAndOutSetup(&gTasks[task]);
}
void PrepareAffineAnimInTaskData(struct Task *task, u8 spriteId, const union AffineAnimCmd *affineAnimCmds)
@@ -2033,20 +2035,20 @@ u8 sub_80A8394(u16 species, bool8 isBackpic, u8 a3, s16 x, s16 y, u8 subpriority
u16 sheet = LoadSpriteSheet(&sUnknown_08525FC0[a3]);
u16 palette = AllocSpritePalette(sUnknown_08525F90[a3].paletteTag);
- if (gMonSpritesGfxPtr != NULL && gMonSpritesGfxPtr->field_17C == NULL)
- gMonSpritesGfxPtr->field_17C = AllocZeroed(0x2000);
+ if (gMonSpritesGfxPtr != NULL && gMonSpritesGfxPtr->buffer == NULL)
+ gMonSpritesGfxPtr->buffer = AllocZeroed(0x2000);
if (!isBackpic)
{
LoadCompressedPalette(GetMonSpritePalFromSpeciesAndPersonality(species, trainerId, personality), (palette * 0x10) + 0x100, 0x20);
if (a10 == 1 || sub_80688F8(5, battlerId) == 1 || gBattleSpritesDataPtr->battlerData[battlerId].transformSpecies != 0)
LoadSpecialPokePic_DontHandleDeoxys(&gMonFrontPicTable[species],
- gMonSpritesGfxPtr->field_17C,
+ gMonSpritesGfxPtr->buffer,
species,
personality,
TRUE);
else
LoadSpecialPokePic_2(&gMonFrontPicTable[species],
- gMonSpritesGfxPtr->field_17C,
+ gMonSpritesGfxPtr->buffer,
species,
personality,
TRUE);
@@ -2056,20 +2058,20 @@ u8 sub_80A8394(u16 species, bool8 isBackpic, u8 a3, s16 x, s16 y, u8 subpriority
LoadCompressedPalette(GetMonSpritePalFromSpeciesAndPersonality(species, trainerId, personality), (palette * 0x10) + 0x100, 0x20);
if (a10 == 1 || sub_80688F8(5, battlerId) == 1 || gBattleSpritesDataPtr->battlerData[battlerId].transformSpecies != 0)
LoadSpecialPokePic_DontHandleDeoxys(&gMonBackPicTable[species],
- gMonSpritesGfxPtr->field_17C,
+ gMonSpritesGfxPtr->buffer,
species,
personality,
FALSE);
else
LoadSpecialPokePic_2(&gMonBackPicTable[species],
- gMonSpritesGfxPtr->field_17C,
+ gMonSpritesGfxPtr->buffer,
species,
personality,
FALSE);
}
- RequestDma3Copy(gMonSpritesGfxPtr->field_17C, (void *)(OBJ_VRAM0 + (sheet * 0x20)), 0x800, 1);
- FREE_AND_SET_NULL(gMonSpritesGfxPtr->field_17C);
+ RequestDma3Copy(gMonSpritesGfxPtr->buffer, (void *)(OBJ_VRAM0 + (sheet * 0x20)), 0x800, 1);
+ FREE_AND_SET_NULL(gMonSpritesGfxPtr->buffer);
if (!isBackpic)
spriteId = CreateSprite(&sUnknown_08525F90[a3], x, y + gMonFrontPicCoords[species].y_offset, subpriority);
diff --git a/src/battle_anim_sound_tasks.c b/src/battle_anim_sound_tasks.c
index b089e3e1c..e3144293b 100644
--- a/src/battle_anim_sound_tasks.c
+++ b/src/battle_anim_sound_tasks.c
@@ -73,7 +73,7 @@ static void sub_8158C04(u8 taskId)
// task end
// task start
-void sub_8158C58(u8 taskId)
+void SoundTask_LoopSEAdjustPanning(u8 taskId)
{
u16 songId = gBattleAnimArgs[0];
s8 targetPan = gBattleAnimArgs[2];
@@ -119,7 +119,7 @@ static void sub_8158D08(u8 taskId)
u16 dPan, oldPan;
gTasks[taskId].data[10] = 0;
dPan = gTasks[taskId].data[3];
- oldPan = gTasks[taskId].data[11] ;
+ oldPan = gTasks[taskId].data[11];
gTasks[taskId].data[11] = dPan + oldPan;
gTasks[taskId].data[11] = KeepPanInRange(gTasks[taskId].data[11], oldPan);
}
@@ -127,7 +127,7 @@ static void sub_8158D08(u8 taskId)
// task end
// task start
-void sub_8158D8C(u8 taskId)
+void SoundTask_PlayCryHighPitch(u8 taskId)
{
u16 species = 0;
s8 pan = BattleAnimAdjustPanning(SOUND_PAN_ATTACKER);
@@ -173,7 +173,7 @@ void sub_8158D8C(u8 taskId)
// task end
// task start
-void sub_8158E9C(u8 taskId)
+void SoundTask_PlayDoubleCry(u8 taskId)
{
u16 species = 0;
s8 pan = BattleAnimAdjustPanning(SOUND_PAN_ATTACKER);
@@ -275,7 +275,7 @@ void SoundTask_WaitForCry(u8 taskId)
}
// task start
-void sub_81590B8(u8 taskId)
+void SoundTask_PlayCryWithEcho(u8 taskId)
{
u16 species;
s8 pan;
@@ -350,7 +350,9 @@ void SoundTask_PlaySE2WithPanning(u8 taskId)
DestroyAnimVisualTask(taskId);
}
-void sub_8159278(u8 taskId)
+// Adjusts panning and assigns it to gAnimCustomPanning. Doesnt play sound.
+// Used by Confuse Ray and Will-O-Wisp (see uses of gAnimCustomPanning)
+void SoundTask_AdjustPanningVar(u8 taskId)
{
s8 targetPan = gBattleAnimArgs[1];
s8 panIncrement = gBattleAnimArgs[2];
@@ -384,7 +386,7 @@ void sub_8159308(u8 taskId)
gTasks[taskId].data[11] = KeepPanInRange(gTasks[taskId].data[11], oldPan);
}
- gUnknown_02038440 = gTasks[taskId].data[11];
+ gAnimCustomPanning = gTasks[taskId].data[11];
if (gTasks[taskId].data[11] == gTasks[taskId].data[2])
DestroyAnimVisualTask(taskId);
}
diff --git a/src/battle_anim_special.c b/src/battle_anim_special.c
index f664d221d..6baa35dd2 100755
--- a/src/battle_anim_special.c
+++ b/src/battle_anim_special.c
@@ -2010,7 +2010,7 @@ void AnimTask_IsAttackerBehindSubstitute(u8 taskId)
DestroyAnimVisualTask(taskId);
}
-void AnimTask_TargetToEffectBattler(u8 taskId)
+void AnimTask_SetTargetToEffectBattler(u8 taskId)
{
gBattleAnimTarget = gEffectBattler;
DestroyAnimVisualTask(taskId);
diff --git a/src/battle_anim_utility_funcs.c b/src/battle_anim_utility_funcs.c
index c8529851b..9c5dc4d6d 100644
--- a/src/battle_anim_utility_funcs.c
+++ b/src/battle_anim_utility_funcs.c
@@ -55,7 +55,7 @@ void AnimTask_BlendBattleAnimPal(u8 taskId)
StartBlendAnimSpriteColor(taskId, selectedPalettes);
}
-void sub_8116664(u8 taskId)
+void AnimTask_BlendBattleAnimPalExclude(u8 taskId)
{
u8 battler;
u32 selectedPalettes;
@@ -68,13 +68,13 @@ void sub_8116664(u8 taskId)
case 2:
selectedPalettes = 0;
// fall through
- case 0:
+ case ANIM_ATTACKER:
animBattlers[0] = gBattleAnimAttacker;
break;
case 3:
selectedPalettes = 0;
// fall through
- case 1:
+ case ANIM_TARGET:
animBattlers[0] = gBattleAnimTarget;
break;
case 4:
@@ -908,20 +908,19 @@ void AnimTask_GetBattleTerrain(u8 taskId)
DestroyAnimVisualTask(taskId);
}
-void sub_8117C44(u8 taskId)
+void AnimTask_AllocBackupPalBuffer(u8 taskId)
{
- gMonSpritesGfxPtr->field_17C = AllocZeroed(0x2000);
+ gMonSpritesGfxPtr->buffer = AllocZeroed(0x2000);
DestroyAnimVisualTask(taskId);
}
-void sub_8117C70(u8 taskId)
+void AnimTask_FreeBackupPalBuffer(u8 taskId)
{
- Free(gMonSpritesGfxPtr->field_17C);
- gMonSpritesGfxPtr->field_17C = NULL;
+ FREE_AND_SET_NULL(gMonSpritesGfxPtr->buffer);
DestroyAnimVisualTask(taskId);
}
-void sub_8117CA0(u8 taskId)
+void AnimTask_CopyPalUnfadedToBackup(u8 taskId)
{
u32 selectedPalettes;
int paletteIndex = 0;
@@ -944,11 +943,11 @@ void sub_8117CA0(u8 taskId)
paletteIndex = gBattleAnimTarget + 16;
}
- memcpy(&gMonSpritesGfxPtr->field_17C[gBattleAnimArgs[1] * 16], &gPlttBufferUnfaded[paletteIndex * 16], 32);
+ memcpy(&gMonSpritesGfxPtr->buffer[gBattleAnimArgs[1] * 16], &gPlttBufferUnfaded[paletteIndex * 16], 32);
DestroyAnimVisualTask(taskId);
}
-void sub_8117D3C(u8 taskId)
+void AnimTask_CopyPalUnfadedFromBackup(u8 taskId)
{
u32 selectedPalettes;
int paletteIndex = 0;
@@ -971,11 +970,11 @@ void sub_8117D3C(u8 taskId)
paletteIndex = gBattleAnimTarget + 16;
}
- memcpy(&gPlttBufferUnfaded[paletteIndex * 16], &gMonSpritesGfxPtr->field_17C[gBattleAnimArgs[1] * 16], 32);
+ memcpy(&gPlttBufferUnfaded[paletteIndex * 16], &gMonSpritesGfxPtr->buffer[gBattleAnimArgs[1] * 16], 32);
DestroyAnimVisualTask(taskId);
}
-void sub_8117DD8(u8 taskId)
+void AnimTask_CopyPalFadedToUnfaded(u8 taskId)
{
u32 selectedPalettes;
int paletteIndex = 0;
@@ -1012,7 +1011,7 @@ void AnimTask_IsContest(u8 taskId)
DestroyAnimVisualTask(taskId);
}
-void sub_8117E94(u8 taskId)
+void AnimTask_SetAnimAttackerAndTargetForEffectTgt(u8 taskId)
{
gBattleAnimAttacker = gBattlerTarget;
gBattleAnimTarget = gEffectBattler;
@@ -1035,7 +1034,7 @@ void AnimTask_SetAnimTargetToBattlerTarget(u8 taskId)
DestroyAnimVisualTask(taskId);
}
-void sub_8117F30(u8 taskId)
+void AnimTask_SetAnimAttackerAndTargetForEffectAtk(u8 taskId)
{
gBattleAnimAttacker = gBattlerAttacker;
gBattleAnimTarget = gEffectBattler;
diff --git a/src/battle_gfx_sfx_util.c b/src/battle_gfx_sfx_util.c
index 341cd4a6a..50001cebe 100644
--- a/src/battle_gfx_sfx_util.c
+++ b/src/battle_gfx_sfx_util.c
@@ -1226,8 +1226,8 @@ void FreeMonSpritesGfx(void)
if (gMonSpritesGfxPtr == NULL)
return;
- if (gMonSpritesGfxPtr->field_17C != NULL)
- FREE_AND_SET_NULL(gMonSpritesGfxPtr->field_17C);
+ if (gMonSpritesGfxPtr->buffer != NULL)
+ FREE_AND_SET_NULL(gMonSpritesGfxPtr->buffer);
if (gMonSpritesGfxPtr->field_178 != NULL)
FREE_AND_SET_NULL(gMonSpritesGfxPtr->field_178);
diff --git a/src/bug.c b/src/bug.c
index 5fcbced8d..4321cb7ac 100644
--- a/src/bug.c
+++ b/src/bug.c
@@ -6,7 +6,7 @@
static void AnimMegahornHorn(struct Sprite *);
static void AnimLeechLifeNeedle(struct Sprite *);
-void AnimTranslateWebThread(struct Sprite *);
+static void AnimTranslateWebThread(struct Sprite *);
static void AnimStringWrap(struct Sprite *);
void sub_811067C(struct Sprite *);
void AnimTranslateStinger(struct Sprite *);
@@ -254,7 +254,7 @@ static void AnimLeechLifeNeedle(struct Sprite *sprite)
// arg 2: controls the left-to-right movement
// arg 3: amplitude
// arg 4: if targets both opponents
-void AnimTranslateWebThread(struct Sprite *sprite)
+static void AnimTranslateWebThread(struct Sprite *sprite)
{
if (IsContest())
gBattleAnimArgs[2] /= 2;
diff --git a/src/dark.c b/src/dark.c
index ccca2b117..acf66dbf4 100644
--- a/src/dark.c
+++ b/src/dark.c
@@ -256,7 +256,7 @@ static void sub_811381C(u8 taskId)
}
}
-void sub_8113888(u8 taskId)
+void AnimTask_InitAttackerFadeFromInvisible(u8 taskId)
{
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0, 16));
if (GetBattlerSpriteBGPriorityRank(gBattleAnimAttacker) == 1)
@@ -901,7 +901,7 @@ static void sub_8114748(u8 taskId)
spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER);
paletteNum = 16 + gSprites[spriteId].oam.paletteNum;
if (gTasks[taskId].data[1] == 0)
- SetGreyscaleOrOriginalPalette(paletteNum, 1);
+ SetGreyscaleOrOriginalPalette(paletteNum, TRUE);
DestroySprite(&gSprites[gTasks[taskId].data[0]]);
sub_80A6B30(&animBg);
@@ -928,7 +928,7 @@ static void sub_8114748(u8 taskId)
// Changes battler's palette to either greyscale or original.
// arg0: which battler
-// arg1: 0 grayscale, 1 original
+// arg1: FALSE grayscale, TRUE original
void AnimTask_SetGreyscaleOrOriginalPal(u8 taskId)
{
u8 spriteId;
@@ -938,10 +938,10 @@ void AnimTask_SetGreyscaleOrOriginalPal(u8 taskId)
switch (gBattleAnimArgs[0])
{
- case 0:
- case 1:
- case 2:
- case 3:
+ case ANIM_ATTACKER:
+ case ANIM_TARGET:
+ case ANIM_ATK_PARTNER:
+ case ANIM_DEF_PARTNER:
spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[0]);
break;
case 4:
@@ -980,13 +980,13 @@ void AnimTask_SetGreyscaleOrOriginalPal(u8 taskId)
DestroyAnimVisualTask(taskId);
}
-void sub_8114960(u8 taskId)
+void GetIsDoomDesireHitTurn(u8 taskId)
{
if (gAnimMoveTurn < 2)
- gBattleAnimArgs[ARG_RET_ID] = 0;
+ gBattleAnimArgs[ARG_RET_ID] = FALSE;
if (gAnimMoveTurn == 2)
- gBattleAnimArgs[ARG_RET_ID] = 1;
+ gBattleAnimArgs[ARG_RET_ID] = TRUE;
DestroyAnimVisualTask(taskId);
}
diff --git a/src/dragon.c b/src/dragon.c
index 00ea4bd1a..784c00eb7 100644
--- a/src/dragon.c
+++ b/src/dragon.c
@@ -324,7 +324,9 @@ static void sub_81132E0(struct Sprite *sprite)
}
}
-void sub_81133E8(u8 taskId)
+// Wavers the attacker back and forth. Progressing vertical wave of scanline shifts
+// Used by Dragon Dance
+void AnimTask_DragonDanceWaver(u8 taskId)
{
struct ScanlineEffectParams sp;
struct Task *task = &gTasks[taskId];
diff --git a/src/fight.c b/src/fight.c
index 96b654ecc..68565f73f 100644
--- a/src/fight.c
+++ b/src/fight.c
@@ -16,8 +16,8 @@ void sub_810D1B4(struct Sprite *);
static void AnimSpinningKickOrPunch(struct Sprite *);
static void AnimStompFoot(struct Sprite *);
static void AnimDizzyPunchDuck(struct Sprite *);
-void sub_810D40C(struct Sprite *);
-void sub_810D4F4(struct Sprite *);
+static void AnimBrickBreakWall(struct Sprite *);
+static void AnimBrickBreakWallShard(struct Sprite *);
static void AnimSuperpowerOrb(struct Sprite *);
static void AnimSuperpowerRock(struct Sprite *);
static void AnimSuperpowerFireball(struct Sprite *);
@@ -231,7 +231,7 @@ const struct SpriteTemplate gDizzyPunchDuckSpriteTemplate =
.callback = AnimDizzyPunchDuck,
};
-const struct SpriteTemplate gUnknown_08595F90 =
+const struct SpriteTemplate gBrickBreakWallSpriteTemplate =
{
.tileTag = ANIM_TAG_BLUE_LIGHT_WALL,
.paletteTag = ANIM_TAG_BLUE_LIGHT_WALL,
@@ -239,10 +239,10 @@ const struct SpriteTemplate gUnknown_08595F90 =
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
- .callback = sub_810D40C,
+ .callback = AnimBrickBreakWall,
};
-const struct SpriteTemplate gUnknown_08595FA8 =
+const struct SpriteTemplate gBrickBreakWallShardSpriteTemplate =
{
.tileTag = ANIM_TAG_TORN_METAL,
.paletteTag = ANIM_TAG_TORN_METAL,
@@ -250,7 +250,7 @@ const struct SpriteTemplate gUnknown_08595FA8 =
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
- .callback = sub_810D4F4,
+ .callback = AnimBrickBreakWallShard,
};
const union AffineAnimCmd gUnknown_08595FC0[] =
@@ -691,9 +691,10 @@ static void AnimDizzyPunchDuck(struct Sprite *sprite)
}
}
-void sub_810D40C(struct Sprite *sprite)
+// The wall that appears when Brick Break is going to shatter the target's defensive wall
+static void AnimBrickBreakWall(struct Sprite *sprite)
{
- if (gBattleAnimArgs[0] == 0)
+ if (gBattleAnimArgs[0] == ANIM_ATTACKER)
{
sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 0);
sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1);
@@ -744,9 +745,10 @@ static void sub_810D47C(struct Sprite *sprite)
}
}
-void sub_810D4F4(struct Sprite *sprite)
+// Piece of shattered defensive wall flies off. Used by Brick Break when the target has a defensive wall
+static void AnimBrickBreakWallShard(struct Sprite *sprite)
{
- if (gBattleAnimArgs[0] == 0)
+ if (gBattleAnimArgs[0] == ANIM_ATTACKER)
{
sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 0) + gBattleAnimArgs[2];
sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1) + gBattleAnimArgs[3];
diff --git a/src/fire.c b/src/fire.c
index 8f58894e0..d52203820 100644
--- a/src/fire.c
+++ b/src/fire.c
@@ -446,12 +446,15 @@ const struct SpriteTemplate gWillOWispFireSpriteTemplate =
.callback = AnimWillOWispFire,
};
-const s8 gUnknown_08595684[16] =
+// Directions for shaking up/down or left/right in AnimTask_ShakeTargetInPattern
+// Only first 10 values are ever accessed.
+// First pattern results in larger shakes, second results in faster oscillation
+static const s8 sShakeDirsPattern0[16] =
{
-1, -1, 0, 1, 1, 0, 0, -1, -1, 1, 1, 0, 0, -1, 0, 1,
};
-const s8 gUnknown_08595694[16] =
+static const s8 sShakeDirsPattern1[16] =
{
-1, 0, 1, 0, -1, 1, 0, -1, 0, 1, 0, -1, 0, 1, 0, 1,
};
@@ -1131,7 +1134,7 @@ static void sub_8109C4C(struct Sprite *sprite)
if ((initialData5 == 0 || initialData5 > 196) && newData5 > 0 && sprite->data[7] == 0)
{
- PlaySE12WithPanning(SE_W172, gUnknown_02038440);
+ PlaySE12WithPanning(SE_W172, gAnimCustomPanning);
}
}
else
@@ -1288,33 +1291,40 @@ void AnimTask_BlendBackground(u8 taskId)
DestroyAnimVisualTask(taskId);
}
-void sub_810A094(u8 taskId)
+#define tShakeNum data[0]
+#define tMaxShakes data[1]
+#define tShakeOffset data[2] // Never read, gBattleAnimArgs[1] is used directly instead
+#define tVertical data[3]
+#define tPatternId data[4]
+
+// Shakes target horizontally or vertically tMaxShakes times, following a set pattern of alternations
+void AnimTask_ShakeTargetInPattern(u8 taskId)
{
- s8 unk;
+ s8 dir;
u8 spriteId;
- if (gTasks[taskId].data[0] == 0)
+ if (gTasks[taskId].tShakeNum == 0)
{
- gTasks[taskId].data[1] = gBattleAnimArgs[0];
- gTasks[taskId].data[2] = gBattleAnimArgs[1];
- gTasks[taskId].data[3] = gBattleAnimArgs[2];
- gTasks[taskId].data[4] = gBattleAnimArgs[3];
+ gTasks[taskId].tMaxShakes = gBattleAnimArgs[0];
+ gTasks[taskId].tShakeOffset = gBattleAnimArgs[1];
+ gTasks[taskId].tVertical = gBattleAnimArgs[2];
+ gTasks[taskId].tPatternId = gBattleAnimArgs[3];
}
- gTasks[taskId].data[0]++;
+ gTasks[taskId].tShakeNum++;
spriteId = gBattlerSpriteIds[gBattleAnimTarget];
- if (!gTasks[taskId].data[4])
- unk = gUnknown_08595684[gTasks[taskId].data[0] % 10];
+ if (gTasks[taskId].tPatternId == 0)
+ dir = sShakeDirsPattern0[gTasks[taskId].tShakeNum % 10];
else
- unk = gUnknown_08595694[gTasks[taskId].data[0] % 10];
+ dir = sShakeDirsPattern1[gTasks[taskId].tShakeNum % 10];
- if (gTasks[taskId].data[3] == 1)
- gSprites[spriteId].pos2.y = gBattleAnimArgs[1] * unk < 0 ? -(gBattleAnimArgs[1] * unk) : gBattleAnimArgs[1] * unk;
+ if (gTasks[taskId].tVertical == TRUE)
+ gSprites[spriteId].pos2.y = gBattleAnimArgs[1] * dir < 0 ? -(gBattleAnimArgs[1] * dir) : gBattleAnimArgs[1] * dir;
else
- gSprites[spriteId].pos2.x = gBattleAnimArgs[1] * unk;
+ gSprites[spriteId].pos2.x = gBattleAnimArgs[1] * dir;
- if (gTasks[taskId].data[0] == gTasks[taskId].data[1])
+ if (gTasks[taskId].tShakeNum == gTasks[taskId].tMaxShakes)
{
gSprites[spriteId].pos2.x = 0;
gSprites[spriteId].pos2.y = 0;
diff --git a/src/ghost.c b/src/ghost.c
index 32fd427ed..709708a4d 100644
--- a/src/ghost.c
+++ b/src/ghost.c
@@ -250,7 +250,7 @@ static void sub_8111674(struct Sprite *sprite)
return;
if (r0 <= 0)
return;
- PlaySE12WithPanning(SE_W109, gUnknown_02038440);
+ PlaySE12WithPanning(SE_W109, gAnimCustomPanning);
}
static void sub_81116E8(struct Sprite *sprite)
@@ -941,7 +941,7 @@ static void sub_81125E0(u8 taskId)
}
}
-void sub_8112758(u8 taskId)
+void AnimTask_CurseStretchingBlackBg(u8 taskId)
{
s16 startX, startY;
s16 leftDistance, topDistance, bottomDistance, rightDistance;
diff --git a/src/ground.c b/src/ground.c
index c86d4731b..4e4ca1785 100644
--- a/src/ground.c
+++ b/src/ground.c
@@ -737,12 +737,12 @@ void AnimTask_IsPowerOver99(u8 taskId)
DestroyAnimVisualTask(taskId);
}
-void sub_8115628(u8 taskId)
+void AnimTask_PositionFissureBgOnBattler(u8 taskId)
{
struct Task *newTask;
- u8 battler = (gBattleAnimArgs[0] & 1) ? gBattleAnimTarget : gBattleAnimAttacker;
+ u8 battler = (gBattleAnimArgs[0] & ANIM_TARGET) ? gBattleAnimTarget : gBattleAnimAttacker;
- if (gBattleAnimArgs[0] > 1)
+ if (gBattleAnimArgs[0] > ANIM_TARGET)
battler ^= 2;
newTask = &gTasks[CreateTask(sub_81156D0, gBattleAnimArgs[1])];
diff --git a/src/normal.c b/src/normal.c
index c2c5fbcc6..adf9c3b0a 100644
--- a/src/normal.c
+++ b/src/normal.c
@@ -11,7 +11,7 @@ void AnimSimplePaletteBlend(struct Sprite *);
u32 UnpackSelectedBattleAnimPalettes(s16);
void sub_81158A4(struct Sprite *);
void sub_81159B4(struct Sprite *);
-void sub_81160A4(struct Sprite *);
+static void AnimShakeMonOrBattleTerrain(struct Sprite *);
static void AnimBasicHitSplat(struct Sprite *);
void sub_8116420(struct Sprite *);
static void AnimHitSplatRandom(struct Sprite *);
@@ -22,12 +22,12 @@ static void AnimConfusionDuckStep(struct Sprite *);
static void AnimSimplePaletteBlendStep(struct Sprite *);
static void sub_81158F8(struct Sprite *);
static void sub_8115984(struct Sprite *);
-static void BlendColorInCycle(u8, u8, u8);
-static void AnimTask_BlendColorInCycleLoop(u8);
-static void sub_8115BC8(u8, u8, u8);
-static void sub_8115C18(u8);
-static void sub_8115CD0(u8, u8, u8);
-static void sub_8115D2C(u8);
+static void BlendColorCycle(u8, u8, u8);
+static void AnimTask_BlendColorCycleLoop(u8);
+static void BlendColorCycleExclude(u8, u8, u8);
+static void AnimTask_BlendColorCycleExcludeLoop(u8);
+static void BlendColorCycleByTag(u8, u8, u8);
+static void AnimTask_BlendColorCycleByTagLoop(u8);
static void sub_8115E00(u8);
static void sub_8115EB8(u8);
static void sub_8116148(struct Sprite *);
@@ -119,7 +119,7 @@ const struct SpriteTemplate gUnknown_085972C0 =
.callback = sub_81159B4,
};
-const struct SpriteTemplate gBattleAnimSpriteTemplate_85972D8 =
+const struct SpriteTemplate gShakeMonOrTerrainSpriteTemplate =
{
.tileTag = 0,
.paletteTag = 0,
@@ -127,7 +127,7 @@ const struct SpriteTemplate gBattleAnimSpriteTemplate_85972D8 =
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
- .callback = sub_81160A4,
+ .callback = AnimShakeMonOrBattleTerrain,
};
const union AffineAnimCmd gUnknown_085972F0[] =
@@ -416,14 +416,17 @@ void sub_81159B4(struct Sprite *sprite)
sprite->callback(sprite);
}
-// Task data for AnimTask_BlendColorCycle
-#define tPalSelector data[0]
+// Task data for AnimTask_BlendColorCycle, AnimTask_BlendColorCycleExclude, and AnimTask_BlendColorCycleByTag
+#define tPalSelector data[0] // AnimTask_BlendColorCycle
+#define tPalTag data[0] // AnimTask_BlendColorCycleByTag
#define tDelay data[1]
#define tNumBlends data[2]
#define tInitialBlendY data[3]
#define tTargetBlendY data[4]
#define tBlendColor data[5]
#define tRestoreBlend data[8]
+#define tPalSelectorHi data[9]
+#define tPalSelectorLo data[10]
// Blends mon/screen to designated color or back alternately tNumBlends times
// Many uses of this task only set a tNumBlends of 2, which has the effect of blending to a color and back once
@@ -436,11 +439,11 @@ void AnimTask_BlendColorCycle(u8 taskId)
gTasks[taskId].tTargetBlendY = gBattleAnimArgs[4];
gTasks[taskId].tBlendColor = gBattleAnimArgs[5];
gTasks[taskId].tRestoreBlend = FALSE;
- BlendColorInCycle(taskId, 0, gTasks[taskId].tTargetBlendY);
- gTasks[taskId].func = AnimTask_BlendColorInCycleLoop;
+ BlendColorCycle(taskId, 0, gTasks[taskId].tTargetBlendY);
+ gTasks[taskId].func = AnimTask_BlendColorCycleLoop;
}
-static void BlendColorInCycle(u8 taskId, u8 startBlendAmount, u8 targetBlendAmount)
+static void BlendColorCycle(u8 taskId, u8 startBlendAmount, u8 targetBlendAmount)
{
u32 selectedPalettes = UnpackSelectedBattleAnimPalettes(gTasks[taskId].tPalSelector);
BeginNormalPaletteFade(
@@ -454,14 +457,14 @@ static void BlendColorInCycle(u8 taskId, u8 startBlendAmount, u8 targetBlendAmou
gTasks[taskId].tRestoreBlend ^= 1;
}
-static void AnimTask_BlendColorInCycleLoop(u8 taskId)
+static void AnimTask_BlendColorCycleLoop(u8 taskId)
{
u8 startBlendAmount, targetBlendAmount;
if (!gPaletteFade.active)
{
if (gTasks[taskId].tNumBlends > 0)
{
- if (gTasks[taskId].tRestoreBlend == FALSE)
+ if (!gTasks[taskId].tRestoreBlend)
{
// Blend to designated color
startBlendAmount = gTasks[taskId].tInitialBlendY;
@@ -477,7 +480,7 @@ static void AnimTask_BlendColorInCycleLoop(u8 taskId)
if (gTasks[taskId].tNumBlends == 1)
targetBlendAmount = 0;
- BlendColorInCycle(taskId, startBlendAmount, targetBlendAmount);
+ BlendColorCycle(taskId, startBlendAmount, targetBlendAmount);
}
else
{
@@ -486,26 +489,19 @@ static void AnimTask_BlendColorInCycleLoop(u8 taskId)
}
}
-#undef tPalSelector
-#undef tDelay
-#undef tNumBlends
-#undef tInitialBlendY
-#undef tTargetBlendY
-#undef tBlendColor
-#undef tFirstBlendDone
-
-void sub_8115B0C(u8 taskId)
+// See AnimTask_BlendColorCycle. Same, but excludes Attacker and Target
+void AnimTask_BlendColorCycleExclude(u8 taskId)
{
int battler;
u32 selectedPalettes = 0;
gTasks[taskId].data[0] = gBattleAnimArgs[0];
- gTasks[taskId].data[1] = gBattleAnimArgs[1];
- gTasks[taskId].data[2] = gBattleAnimArgs[2];
- gTasks[taskId].data[3] = gBattleAnimArgs[3];
- gTasks[taskId].data[4] = gBattleAnimArgs[4];
- gTasks[taskId].data[5] = gBattleAnimArgs[5];
- gTasks[taskId].data[8] = 0;
+ gTasks[taskId].tDelay = gBattleAnimArgs[1];
+ gTasks[taskId].tNumBlends = gBattleAnimArgs[2];
+ gTasks[taskId].tInitialBlendY = gBattleAnimArgs[3];
+ gTasks[taskId].tTargetBlendY = gBattleAnimArgs[4];
+ gTasks[taskId].tBlendColor = gBattleAnimArgs[5];
+ gTasks[taskId].tRestoreBlend = 0;
for (battler = 0; battler < gBattlersCount; battler++)
{
@@ -516,48 +512,50 @@ void sub_8115B0C(u8 taskId)
if (gBattleAnimArgs[0] == 1)
selectedPalettes |= 0xE;
- gTasks[taskId].data[9] = selectedPalettes >> 16;
- gTasks[taskId].data[10] = selectedPalettes & 0xFF;
- sub_8115BC8(taskId, 0, gTasks[taskId].data[4]);
- gTasks[taskId].func = sub_8115C18;
+ gTasks[taskId].tPalSelectorHi = selectedPalettes >> 16;
+ gTasks[taskId].tPalSelectorLo = selectedPalettes & 0xFF;
+ BlendColorCycleExclude(taskId, 0, gTasks[taskId].tTargetBlendY);
+ gTasks[taskId].func = AnimTask_BlendColorCycleExcludeLoop;
}
-static void sub_8115BC8(u8 taskId, u8 initialBlendAmount, u8 targetBlendAmount)
+static void BlendColorCycleExclude(u8 taskId, u8 startBlendAmount, u8 targetBlendAmount)
{
- u32 selectedPalettes = ((u16)gTasks[taskId].data[9] << 16) | (u16)gTasks[taskId].data[10];
+ u32 selectedPalettes = ((u16)gTasks[taskId].tPalSelectorHi << 16) | (u16)gTasks[taskId].tPalSelectorLo;
BeginNormalPaletteFade(
selectedPalettes,
- gTasks[taskId].data[1],
- initialBlendAmount,
+ gTasks[taskId].tDelay,
+ startBlendAmount,
targetBlendAmount,
- gTasks[taskId].data[5]);
+ gTasks[taskId].tBlendColor);
- gTasks[taskId].data[2]--;
- gTasks[taskId].data[8] ^= 1;
+ gTasks[taskId].tNumBlends--;
+ gTasks[taskId].tRestoreBlend ^= 1;
}
-static void sub_8115C18(u8 taskId)
+static void AnimTask_BlendColorCycleExcludeLoop(u8 taskId)
{
- u8 initialBlendAmount, targetBlendAmount;
+ u8 startBlendAmount, targetBlendAmount;
if (!gPaletteFade.active)
{
- if (gTasks[taskId].data[2] > 0)
+ if (gTasks[taskId].tNumBlends > 0)
{
- if (gTasks[taskId].data[8] == 0)
+ if (!gTasks[taskId].tRestoreBlend)
{
- initialBlendAmount = gTasks[taskId].data[3];
- targetBlendAmount = gTasks[taskId].data[4];
+ // Blend to designated color
+ startBlendAmount = gTasks[taskId].tInitialBlendY;
+ targetBlendAmount = gTasks[taskId].tTargetBlendY;
}
else
{
- initialBlendAmount = gTasks[taskId].data[4];
- targetBlendAmount = gTasks[taskId].data[3];
+ // Blend back to original color
+ startBlendAmount = gTasks[taskId].tTargetBlendY;
+ targetBlendAmount = gTasks[taskId].tInitialBlendY;
}
- if (gTasks[taskId].data[2] == 1)
+ if (gTasks[taskId].tNumBlends == 1)
targetBlendAmount = 0;
- sub_8115BC8(taskId, initialBlendAmount, targetBlendAmount);
+ BlendColorCycleExclude(taskId, startBlendAmount, targetBlendAmount);
}
else
{
@@ -566,58 +564,61 @@ static void sub_8115C18(u8 taskId)
}
}
-void sub_8115C80(u8 taskId)
+// See AnimTask_BlendColorCycle. Same, but selects palette by ANIM_TAG_*
+void AnimTask_BlendColorCycleByTag(u8 taskId)
{
u8 paletteIndex;
- gTasks[taskId].data[0] = gBattleAnimArgs[0];
- gTasks[taskId].data[1] = gBattleAnimArgs[1];
- gTasks[taskId].data[2] = gBattleAnimArgs[2];
- gTasks[taskId].data[3] = gBattleAnimArgs[3];
- gTasks[taskId].data[4] = gBattleAnimArgs[4];
- gTasks[taskId].data[5] = gBattleAnimArgs[5];
- gTasks[taskId].data[8] = 0;
+ gTasks[taskId].tPalTag = gBattleAnimArgs[0];
+ gTasks[taskId].tDelay = gBattleAnimArgs[1];
+ gTasks[taskId].tNumBlends = gBattleAnimArgs[2];
+ gTasks[taskId].tInitialBlendY = gBattleAnimArgs[3];
+ gTasks[taskId].tTargetBlendY = gBattleAnimArgs[4];
+ gTasks[taskId].tBlendColor = gBattleAnimArgs[5];
+ gTasks[taskId].tRestoreBlend = FALSE;
- sub_8115CD0(taskId, 0, gTasks[taskId].data[4]);
- gTasks[taskId].func = sub_8115D2C;
+ BlendColorCycleByTag(taskId, 0, gTasks[taskId].tTargetBlendY);
+ gTasks[taskId].func = AnimTask_BlendColorCycleByTagLoop;
}
-static void sub_8115CD0(u8 taskId, u8 initialBlendAmount, u8 targetBlendAmount)
+static void BlendColorCycleByTag(u8 taskId, u8 startBlendAmount, u8 targetBlendAmount)
{
- u8 paletteIndex = IndexOfSpritePaletteTag(gTasks[taskId].data[0]);
+ u8 paletteIndex = IndexOfSpritePaletteTag(gTasks[taskId].tPalTag);
BeginNormalPaletteFade(
1 << (paletteIndex + 16),
- gTasks[taskId].data[1],
- initialBlendAmount,
+ gTasks[taskId].tDelay,
+ startBlendAmount,
targetBlendAmount,
- gTasks[taskId].data[5]);
+ gTasks[taskId].tBlendColor);
- gTasks[taskId].data[2]--;
- gTasks[taskId].data[8] ^= 1;
+ gTasks[taskId].tNumBlends--;
+ gTasks[taskId].tRestoreBlend ^= 1;
}
-static void sub_8115D2C(u8 taskId)
+static void AnimTask_BlendColorCycleByTagLoop(u8 taskId)
{
- u8 initialBlendAmount, targetBlendAmount;
+ u8 startBlendAmount, targetBlendAmount;
if (!gPaletteFade.active)
{
- if (gTasks[taskId].data[2] > 0)
+ if (gTasks[taskId].tNumBlends > 0)
{
- if (gTasks[taskId].data[8] == 0)
+ if (!gTasks[taskId].tRestoreBlend)
{
- initialBlendAmount = gTasks[taskId].data[3];
- targetBlendAmount = gTasks[taskId].data[4];
+ // Blend to designated color
+ startBlendAmount = gTasks[taskId].tInitialBlendY;
+ targetBlendAmount = gTasks[taskId].tTargetBlendY;
}
else
{
- initialBlendAmount = gTasks[taskId].data[4];
- targetBlendAmount = gTasks[taskId].data[3];
+ // Blend back to original color
+ startBlendAmount = gTasks[taskId].tTargetBlendY;
+ targetBlendAmount = gTasks[taskId].tInitialBlendY;
}
- if (gTasks[taskId].data[2] == 1)
+ if (gTasks[taskId].tNumBlends == 1)
targetBlendAmount = 0;
- sub_8115CD0(taskId, initialBlendAmount, targetBlendAmount);
+ BlendColorCycleByTag(taskId, startBlendAmount, targetBlendAmount);
}
else
{
@@ -626,6 +627,17 @@ static void sub_8115D2C(u8 taskId)
}
}
+#undef tPalSelector
+#undef tPalTag
+#undef tDelay
+#undef tNumBlends
+#undef tInitialBlendY
+#undef tTargetBlendY
+#undef tBlendColor
+#undef tRestoreBlend
+#undef tPalSelectorHi
+#undef tPalSelectorLo
+
// Flashes the specified anim tag with given color. Used e.g. to flash the particles red in Hyper Beam
void AnimTask_FlashAnimTagWithColor(u8 taskId)
{
@@ -771,7 +783,7 @@ void sub_8115F94(u8 taskId)
}
}
-void sub_81160A4(struct Sprite *sprite)
+static void AnimShakeMonOrBattleTerrain(struct Sprite *sprite)
{
u16 var0;
diff --git a/src/psychic.c b/src/psychic.c
index 2615e62aa..e9e5f4417 100644
--- a/src/psychic.c
+++ b/src/psychic.c
@@ -744,7 +744,7 @@ static void sub_810F898(u8 taskId)
}
}
-void sub_810F940(u8 taskId)
+void AnimTask_ImprisonOrbs(u8 taskId)
{
u16 var0, var1;
diff --git a/src/rock.c b/src/rock.c
index e2a870a98..e7be920f5 100644
--- a/src/rock.c
+++ b/src/rock.c
@@ -836,7 +836,7 @@ void AnimTask_GetSeismicTossDamageLevel(u8 taskId)
DestroyAnimVisualTask(taskId);
}
-void sub_811152C(u8 taskId)
+void AnimTask_MoveSeismicTossBg(u8 taskId)
{
if (gTasks[taskId].data[0] == 0)
{
@@ -856,7 +856,7 @@ void sub_811152C(u8 taskId)
gTasks[taskId].data[0]++;
}
-void sub_8111590(u8 taskId)
+void AnimTask_SeismicTossBgAccelerateDownAtEnd(u8 taskId)
{
if (gTasks[taskId].data[0] == 0)
{
diff --git a/src/water.c b/src/water.c
index 59a998b95..07e56432b 100644
--- a/src/water.c
+++ b/src/water.c
@@ -621,7 +621,8 @@ void sub_81074E4(struct Sprite *sprite)
DestroyAnimSprite(sprite);
}
-void sub_8107528(u8 taskId)
+// Updates the palette on the rainbow rings used in Aurora Beam to make them appear to be rotating counterclockwise
+void AnimTask_RotateAuroraRingColors(u8 taskId)
{
gTasks[taskId].data[0] = gBattleAnimArgs[0];
gTasks[taskId].data[2] = IndexOfSpritePaletteTag(ANIM_TAG_RAINBOW_RINGS) * 16 + 256;