summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgarak <garakmon@gmail.com>2018-09-25 21:07:02 -0400
committergarak <garakmon@gmail.com>2018-09-25 21:07:02 -0400
commitb2b55baf17bdd7359a1ea571be74e2f57148d685 (patch)
treee247c631eaf8a244fc031677e17ec566762c6da1
parentee8652206b2298fe7b5471114753be62b5d1fc8b (diff)
document some battle anims (credit Citron)
-rw-r--r--data/battle_anim_scripts.s68
-rw-r--r--src/battle/anim/ghost.c19
-rw-r--r--src/battle/anim/normal.c28
-rw-r--r--src/battle/anim/rock.c28
-rw-r--r--src/battle/anim/splash.c11
-rw-r--r--src/battle/anim/wisp_fire.c5
6 files changed, 94 insertions, 65 deletions
diff --git a/data/battle_anim_scripts.s b/data/battle_anim_scripts.s
index 42bfad289..8754eaacb 100644
--- a/data/battle_anim_scripts.s
+++ b/data/battle_anim_scripts.s
@@ -2980,7 +2980,7 @@ Move_FLASH: @ 81CB713
end
Move_SPLASH: @ 81CB720
- createvisualtask sub_80D074C, 2, 0, 3
+ createvisualtask AnimTask_Splash, 2, 0, 3
delay 8
loopsewithpan SE_W039, 192, 38, 3
waitforvisualfinish
@@ -3059,7 +3059,7 @@ Move_SKETCH: @ 81CB87B
createsprite gBattleAnimSpriteTemplate_83D77E0, 130
waitforvisualfinish
clearmonbg ANIM_BANK_TARGET
- createvisualtask sub_80D074C, 2, 0, 2
+ createvisualtask AnimTask_Splash, 2, 0, 2
loopsewithpan SE_W039, 192, 38, 2
end
@@ -3450,26 +3450,26 @@ Move_UPROAR: @ 81CBEFC
Move_HEAT_WAVE: @ 81CBFC6
loadspritegfx 10261
- createvisualtask sub_80E2C60, 5, 10261, 0, 6, 6, 31
+ createvisualtask AnimTask_BlendSpriteColor, 5, 10261, 0, 6, 6, 31
createvisualtask do_boulder_dust, 5, 1
- createvisualtask sub_80D6080, 6, 6, 31
+ createvisualtask AnimTask_BlendInterfaceColor, 6, 6, 31
panse_1B SE_W257, 192, 63, 2, 0
delay 4
createvisualtask sub_80D5DDC, 5
delay 12
- createsprite gBattleAnimSpriteTemplate_83DACE8, 40, 10, 2304, 96, 1
+ createsprite gSandstormDustSpriteTemplate, 40, 10, 2304, 96, 1
delay 10
- createsprite gBattleAnimSpriteTemplate_83DACE8, 40, 90, 2048, 96, 1
+ createsprite gSandstormDustSpriteTemplate, 40, 90, 2048, 96, 1
delay 10
- createsprite gBattleAnimSpriteTemplate_83DACE8, 40, 50, 2560, 96, 1
+ createsprite gSandstormDustSpriteTemplate, 40, 50, 2560, 96, 1
delay 10
- createsprite gBattleAnimSpriteTemplate_83DACE8, 40, 20, 2304, 96, 1
+ createsprite gSandstormDustSpriteTemplate, 40, 20, 2304, 96, 1
delay 10
- createsprite gBattleAnimSpriteTemplate_83DACE8, 40, 70, 1984, 96, 1
+ createsprite gSandstormDustSpriteTemplate, 40, 70, 1984, 96, 1
delay 10
- createsprite gBattleAnimSpriteTemplate_83DACE8, 40, 0, 2816, 96, 1
+ createsprite gSandstormDustSpriteTemplate, 40, 0, 2816, 96, 1
delay 10
- createsprite gBattleAnimSpriteTemplate_83DACE8, 40, 60, 2560, 96, 1
+ createsprite gSandstormDustSpriteTemplate, 40, 60, 2560, 96, 1
end
Move_HAIL: @ 81CC076
@@ -3911,9 +3911,9 @@ Move_LUSTER_PURGE: @ 81CC95B
createsprite gBattleAnimSpriteTemplate_83DA9E0, 41, 0, 0, 0, 0
delay 20
createvisualtask sub_80E2A7C, 5, 5, 2, 0, 16, -1
- createvisualtask sub_80E2C60, 5, 10267, 2, 0, 16, -1
+ createvisualtask AnimTask_BlendSpriteColor, 5, 10267, 2, 0, 16, -1
waitforvisualfinish
- createvisualtask sub_80E2C60, 5, 10135, 0, 12, 12, 23552
+ createvisualtask AnimTask_BlendSpriteColor, 5, 10135, 0, 12, 12, 23552
waitforvisualfinish
createsprite gBattleAnimSpriteTemplate_83DB4F0, 131, 1, 2
createvisualtask sub_812B30C, 5, 215, 63
@@ -4005,7 +4005,7 @@ Move_TEETER_DANCE: @ 81CCBD1
Move_MUD_SPORT: @ 81CCC3C
loadspritegfx 10074
- createvisualtask sub_80D074C, 2, 0, 6
+ createvisualtask AnimTask_Splash, 2, 0, 6
delay 24
createsprite gMudSportDirtSpriteTemplate, 130, 0, -4, -16
createsprite gMudSportDirtSpriteTemplate, 130, 0, 4, -12
@@ -4167,7 +4167,7 @@ Move_FAKE_TEARS: @ 81CD10D
loadspritegfx 10155
loadspritegfx 10209
loadspritegfx 10072
- createvisualtask sub_80E2C60, 5, 10155, 0, 4, 4, 32108
+ createvisualtask AnimTask_BlendSpriteColor, 5, 10155, 0, 4, 4, 32108
waitforvisualfinish
createvisualtask sub_812E568, 5, 0, 2, 1
loopsewithpan SE_W039, 192, 12, 4
@@ -6340,19 +6340,19 @@ Move_SANDSTORM: @ 81D0304
playsewithpan SE_W201, 0
createvisualtask do_boulder_dust, 5, 0
delay 16
- createsprite gBattleAnimSpriteTemplate_83DACE8, 40, 10, 2304, 96, 0
+ createsprite gSandstormDustSpriteTemplate, 40, 10, 2304, 96, 0
delay 10
- createsprite gBattleAnimSpriteTemplate_83DACE8, 40, 90, 2048, 96, 0
+ createsprite gSandstormDustSpriteTemplate, 40, 90, 2048, 96, 0
delay 10
- createsprite gBattleAnimSpriteTemplate_83DACE8, 40, 50, 2560, 96, 0
+ createsprite gSandstormDustSpriteTemplate, 40, 50, 2560, 96, 0
delay 10
- createsprite gBattleAnimSpriteTemplate_83DACE8, 40, 20, 2304, 96, 0
+ createsprite gSandstormDustSpriteTemplate, 40, 20, 2304, 96, 0
delay 10
- createsprite gBattleAnimSpriteTemplate_83DACE8, 40, 70, 1984, 96, 0
+ createsprite gSandstormDustSpriteTemplate, 40, 70, 1984, 96, 0
delay 10
- createsprite gBattleAnimSpriteTemplate_83DACE8, 40, 0, 2816, 96, 0
+ createsprite gSandstormDustSpriteTemplate, 40, 0, 2816, 96, 0
delay 10
- createsprite gBattleAnimSpriteTemplate_83DACE8, 40, 60, 2560, 96, 0
+ createsprite gSandstormDustSpriteTemplate, 40, 60, 2560, 96, 0
end
Move_WHIRLPOOL: @ 81D038C
@@ -6856,20 +6856,20 @@ Move_ANCIENT_POWER: @ 81D0EE5
monbg ANIM_BANK_DEF_PARTNER
setalpha 12, 8
createsprite gBattleAnimSpriteTemplate_83DB428, 2, 4, 1, 10, 1
- createsprite gBattleAnimSpriteTemplate_83DAD60, 2, 20, 32, -48, 50, 2
- createsprite gBattleAnimSpriteTemplate_83DAD60, 2, 0, 32, -38, 25, 5
- createsprite gBattleAnimSpriteTemplate_83DAD60, 2, 32, 32, -28, 40, 3
- createsprite gBattleAnimSpriteTemplate_83DAD60, 2, -20, 32, -48, 50, 2
- createsprite gBattleAnimSpriteTemplate_83DAD60, 2, 20, 32, -28, 60, 1
- createsprite gBattleAnimSpriteTemplate_83DAD60, 2, 0, 32, -28, 30, 4
+ createsprite gAncientPowerRockSpriteTemplate, 2, 20, 32, -48, 50, 2
+ createsprite gAncientPowerRockSpriteTemplate, 2, 0, 32, -38, 25, 5
+ createsprite gAncientPowerRockSpriteTemplate, 2, 32, 32, -28, 40, 3
+ createsprite gAncientPowerRockSpriteTemplate, 2, -20, 32, -48, 50, 2
+ createsprite gAncientPowerRockSpriteTemplate, 2, 20, 32, -28, 60, 1
+ createsprite gAncientPowerRockSpriteTemplate, 2, 0, 32, -28, 30, 4
createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_ATTACKER, 1, 0, 30, 1
playsewithpan SE_W082, 192
delay 10
- createsprite gBattleAnimSpriteTemplate_83DAD60, 2, 15, 32, -48, 25, 5
- createsprite gBattleAnimSpriteTemplate_83DAD60, 2, -10, 32, -42, 30, 4
+ createsprite gAncientPowerRockSpriteTemplate, 2, 15, 32, -48, 25, 5
+ createsprite gAncientPowerRockSpriteTemplate, 2, -10, 32, -42, 30, 4
delay 10
- createsprite gBattleAnimSpriteTemplate_83DAD60, 2, 0, 32, -42, 25, 5
- createsprite gBattleAnimSpriteTemplate_83DAD60, 2, -25, 32, -48, 30, 4
+ createsprite gAncientPowerRockSpriteTemplate, 2, 0, 32, -42, 25, 5
+ createsprite gAncientPowerRockSpriteTemplate, 2, -25, 32, -48, 30, 4
waitforvisualfinish
createsprite gSlideMonToOffsetSpriteTemplate, 2, 0, 16, 0, 0, 4
delay 3
@@ -7334,7 +7334,7 @@ Move_SHADOW_BALL: @ 81D1AEF
waitbgfadein
delay 15
createsoundtask sub_812B058, 168, -64, 63, 5, 5, 0, 5
- createsprite gBattleAnimSpriteTemplate_83DAEA8, 130, 16, 16, 8
+ createsprite gShadowBallSpriteTemplate, 130, 16, 16, 8
waitforvisualfinish
playsewithpan SE_W028, 63
createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_TARGET, 4, 0, 8, 1
@@ -9551,7 +9551,7 @@ Move_DOOM_DESIRE: @ 81D52CB
blendoff
end
-Unknown_81D532F: @ 81D532F
+Move_DOOM_DESIRE_Activate: @ 81D532F
loadspritegfx 10198
createsprite gSimplePaletteBlendSpriteTemplate, 2, 1, 3, 0, 16, rgb(31, 31, 31)
waitforvisualfinish
diff --git a/src/battle/anim/ghost.c b/src/battle/anim/ghost.c
index 124ff1c4e..cba7b2b82 100644
--- a/src/battle/anim/ghost.c
+++ b/src/battle/anim/ghost.c
@@ -24,8 +24,8 @@ static void sub_80DDD58(struct Sprite *sprite);
static void sub_80DDD78(struct Sprite *);
static void sub_80DDE7C(u8 taskId);
static void sub_80DDED0(u8 taskId);
-static void sub_80DDF40(struct Sprite *sprite);
-static void sub_80DDFE8(struct Sprite *);
+static void InitAnimShadowBall(struct Sprite *sprite);
+static void AnimShadowBallStep(struct Sprite *);
static void sub_80DE0FC(struct Sprite *sprite);
static void sub_80DE114(struct Sprite *);
static void sub_80DE2DC(u8 taskId);
@@ -94,7 +94,7 @@ const union AffineAnimCmd *const gSpriteAffineAnimTable_83DAEA4[] =
gSpriteAffineAnim_83DAE94,
};
-const struct SpriteTemplate gBattleAnimSpriteTemplate_83DAEA8 =
+const struct SpriteTemplate gShadowBallSpriteTemplate =
{
.tileTag = 10176,
.paletteTag = 10176,
@@ -102,7 +102,7 @@ const struct SpriteTemplate gBattleAnimSpriteTemplate_83DAEA8 =
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gSpriteAffineAnimTable_83DAEA4,
- .callback = sub_80DDF40,
+ .callback = InitAnimShadowBall,
};
const union AnimCmd gSpriteAnim_83DAEC0[] =
@@ -399,7 +399,12 @@ static void sub_80DDED0(u8 taskId)
}
}
-static void sub_80DDF40(struct Sprite *sprite)
+// Spins a sprite towards the target, pausing in the middle.
+// Used in Shadow Ball.
+// arg 0: duration step 1 (attacker -> center)
+// arg 1: duration step 2 (spin center)
+// arg 2: duration step 3 (center -> target)
+static void InitAnimShadowBall(struct Sprite *sprite)
{
u16 r5, r6;
r5 = sprite->pos1.x;
@@ -414,10 +419,10 @@ static void sub_80DDF40(struct Sprite *sprite)
sprite->data[5] = sprite->pos1.y << 4;
sprite->data[6] = (((s16)r5 - sprite->pos1.x) << 4) / (gBattleAnimArgs[0] << 1);
sprite->data[7] = (((s16)r6 - sprite->pos1.y) << 4) / (gBattleAnimArgs[0] << 1);
- sprite->callback = sub_80DDFE8;
+ sprite->callback = AnimShadowBallStep;
}
-static void sub_80DDFE8(struct Sprite *sprite)
+static void AnimShadowBallStep(struct Sprite *sprite)
{
switch (sprite->data[0])
{
diff --git a/src/battle/anim/normal.c b/src/battle/anim/normal.c
index 596eb919f..51c575b5e 100644
--- a/src/battle/anim/normal.c
+++ b/src/battle/anim/normal.c
@@ -69,8 +69,8 @@ static void sub_80E260C(void);
static void sub_80E255C(struct Sprite *sprite);
static void sub_80E2710(u8 taskId);
static void sub_80E29FC(struct Sprite *sprite);
-static void sub_80E2C8C(u8 taskId, u32 selectedPalettes);
-static void sub_80E2CD0(u8 taskId);
+static void AnimTask_BlendSpriteColor_Step1(u8 taskId, u32 selectedPalettes);
+static void AnimTask_BlendSpriteColor_Step2(u8 taskId);
static void sub_80E2DB8(u8 taskId);
static void sub_80E2E10(u8 taskId);
static void sub_80E2EE8(struct Sprite *sprite);
@@ -950,7 +950,7 @@ void sub_80E2A38(u8 taskId)
(gBattleAnimArgs[0] >> 9) & 1,
(gBattleAnimArgs[0] >> 10) & 1);
- sub_80E2C8C(taskId, selectedPalettes);
+ AnimTask_BlendSpriteColor_Step1(taskId, selectedPalettes);
}
void sub_80E2A7C(u8 taskId)
@@ -1001,7 +1001,7 @@ void sub_80E2A7C(u8 taskId)
}
}
- sub_80E2C8C(taskId, selectedPalettes);
+ AnimTask_BlendSpriteColor_Step1(taskId, selectedPalettes);
}
void sub_80E2B74(u8 taskId)
@@ -1042,16 +1042,22 @@ void sub_80E2B74(u8 taskId)
break;
}
- sub_80E2C8C(taskId, selectedPalettes);
+ AnimTask_BlendSpriteColor_Step1(taskId, selectedPalettes);
}
-void sub_80E2C60(u8 taskId)
+// Used to add a color mask to a Sprite.
+// arg 0: spriteId
+// arg 1: ??? unknown
+// arg 2: ??? unknown
+// arg 3: opacity [0,15]
+// arg 4: color code
+void AnimTask_BlendSpriteColor(u8 taskId)
{
u8 paletteIndex = IndexOfSpritePaletteTag(gBattleAnimArgs[0]);
- sub_80E2C8C(taskId, 1 << (paletteIndex + 16));
+ AnimTask_BlendSpriteColor_Step1(taskId, 1 << (paletteIndex + 16));
}
-static void sub_80E2C8C(u8 taskId, u32 selectedPalettes)
+static void AnimTask_BlendSpriteColor_Step1(u8 taskId, u32 selectedPalettes)
{
gTasks[taskId].data[0] = selectedPalettes;
gTasks[taskId].data[1] = selectedPalettes >> 16;
@@ -1060,11 +1066,11 @@ static void sub_80E2C8C(u8 taskId, u32 selectedPalettes)
gTasks[taskId].data[4] = gBattleAnimArgs[3];
gTasks[taskId].data[5] = gBattleAnimArgs[4];
gTasks[taskId].data[10] = gBattleAnimArgs[2];
- gTasks[taskId].func = sub_80E2CD0;
+ gTasks[taskId].func = AnimTask_BlendSpriteColor_Step2;
gTasks[taskId].func(taskId);
}
-static void sub_80E2CD0(u8 taskId)
+static void AnimTask_BlendSpriteColor_Step2(u8 taskId)
{
u32 selectedPalettes;
u16 singlePaletteMask = 0;
@@ -1577,7 +1583,7 @@ void sub_80E3A08(u8 taskId)
for (j = 5; j != 0; j--)
gBattleAnimArgs[j] = gBattleAnimArgs[j - 1];
- sub_80E2C8C(taskId, selectedPalettes);
+ AnimTask_BlendSpriteColor_Step1(taskId, selectedPalettes);
}
void sub_80E3A58(u8 taskId)
diff --git a/src/battle/anim/rock.c b/src/battle/anim/rock.c
index a4d2441f3..92a27c115 100644
--- a/src/battle/anim/rock.c
+++ b/src/battle/anim/rock.c
@@ -28,8 +28,8 @@ extern void AnimMoveTwisterParticle(struct Sprite *sprite);
void sub_80DCE9C(struct Sprite *sprite);
void sub_80DCF60(struct Sprite *sprite);
void sub_80DCFE4(struct Sprite *sprite);
-void sub_80DD3AC(struct Sprite *sprite);
-void sub_80DD490(struct Sprite *sprite);
+void AnimSandstormParticleAcrossScreen(struct Sprite *sprite);
+void AnimRaiseSprite(struct Sprite *sprite);
void sub_80DD87C(struct Sprite *sprite);
void sub_80DD8E8(struct Sprite *sprite);
void sub_80DD978(struct Sprite *sprite);
@@ -136,7 +136,7 @@ const struct SpriteTemplate gBattleAnimSpriteTemplate_83DACD0 =
.callback = sub_80DCFE4,
};
-const struct SpriteTemplate gBattleAnimSpriteTemplate_83DACE8 =
+const struct SpriteTemplate gSandstormDustSpriteTemplate =
{
.tileTag = 10261,
.paletteTag = 10261,
@@ -144,7 +144,7 @@ const struct SpriteTemplate gBattleAnimSpriteTemplate_83DACE8 =
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
- .callback = sub_80DD3AC,
+ .callback = AnimSandstormParticleAcrossScreen,
};
const struct Subsprite gSubspriteTable_83DAD00[] =
@@ -212,7 +212,7 @@ const union AnimCmd *const gSpriteAnimTable_83DAD58[] =
gSpriteAnim_83DAD40,
};
-const struct SpriteTemplate gBattleAnimSpriteTemplate_83DAD60 =
+const struct SpriteTemplate gAncientPowerRockSpriteTemplate =
{
.tileTag = 10058,
.paletteTag = 10058,
@@ -220,7 +220,7 @@ const struct SpriteTemplate gBattleAnimSpriteTemplate_83DAD60 =
.anims = gSpriteAnimTable_83DAD48,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
- .callback = sub_80DD490,
+ .callback = AnimRaiseSprite,
};
const struct SpriteTemplate gSpriteTemplate_83DAD78 =
@@ -510,7 +510,13 @@ static void sub_80DD190(u8 taskId)
}
}
-void sub_80DD3AC(struct Sprite *sprite)
+// Animates the sprites that fly diagonally across the screen
+// in Sandstorm and Heat Wave.
+// arg 0: initial y pixel offset
+// arg 1: projectile speed
+// arg 2: y pixel drop
+// arg 3: ??? unknown (possibly a color bit)
+void AnimSandstormParticleAcrossScreen(struct Sprite *sprite)
{
if (sprite->data[0] == 0)
{
@@ -555,7 +561,13 @@ void sub_80DD3AC(struct Sprite *sprite)
}
}
-void sub_80DD490(struct Sprite *sprite)
+// Animates the rising rocks in Ancient Power.
+// arg 0: initial x pixel offset
+// arg 1: initial y pixel offset
+// arg 2: terminal y offset
+// arg 3: duration
+// arg 4: sprite size [1,5]
+void AnimRaiseSprite(struct Sprite *sprite)
{
StartSpriteAnim(sprite, gBattleAnimArgs[4]);
InitAnimSpritePos(sprite, 0);
diff --git a/src/battle/anim/splash.c b/src/battle/anim/splash.c
index c01748953..7e3d08554 100644
--- a/src/battle/anim/splash.c
+++ b/src/battle/anim/splash.c
@@ -8,7 +8,7 @@ extern s16 gBattleAnimArgs[];
extern u8 gAnimBankAttacker;
extern u8 gAnimBankTarget;
-static void sub_80D07AC(u8 taskId);
+static void AnimTask_SplashStep(u8 taskId);
// splash (splash effect of hopping up and down)
// Used in Splash, Mud Sport, and Sketch.
@@ -21,7 +21,10 @@ const union AffineAnimCmd gSpriteAffineAnim_83D76F4[] =
AFFINEANIMCMD_END,
};
-void sub_80D074C(u8 taskId)
+// Task to facilitate expanding and hopping effect seen in Splash.
+// arg 0: anim battler
+// arg 1: num hops
+void AnimTask_Splash(u8 taskId)
{
struct Task* task = &gTasks[taskId];
if (gBattleAnimArgs[1] == 0)
@@ -37,11 +40,11 @@ void sub_80D074C(u8 taskId)
task->data[3] = 0;
task->data[4] = 0;
sub_80798F4(task, spriteId, &gSpriteAffineAnim_83D76F4);
- task->func = sub_80D07AC;
+ task->func = AnimTask_SplashStep;
}
}
-void sub_80D07AC(u8 taskId)
+void AnimTask_SplashStep(u8 taskId)
{
struct Task* task = &gTasks[taskId];
switch (task->data[1])
diff --git a/src/battle/anim/wisp_fire.c b/src/battle/anim/wisp_fire.c
index c96a3a86f..a8ced992a 100644
--- a/src/battle/anim/wisp_fire.c
+++ b/src/battle/anim/wisp_fire.c
@@ -186,7 +186,10 @@ static void sub_80D5E4C(u8 taskId)
}
}
-void sub_80D6080(u8 taskId)
+// Used to add a color mask to the battle interface / HUD in Heat Wave.
+// arg 0: opacity
+// arg 1: color code
+void AnimTask_BlendInterfaceColor(u8 taskId)
{
struct Struct_sub_8078914 unk;
sub_8078914(&unk);