diff options
author | Evan <eroelke@gmail.com> | 2019-12-04 21:18:40 -0700 |
---|---|---|
committer | Evan <eroelke@gmail.com> | 2019-12-04 21:18:40 -0700 |
commit | c8b22e2680d64f3a52e8f9ba8ccc81de9480ad5f (patch) | |
tree | ade9a5a53767bf14110f6c212b4741bb2777c0a9 /src | |
parent | bc36d1cb2a862d447a52d69cadcc18b769cf7141 (diff) |
format fixes
Diffstat (limited to 'src')
-rw-r--r-- | src/battle_anim.c | 324 | ||||
-rw-r--r-- | src/battle_anim_effects_1.c | 491 | ||||
-rw-r--r-- | src/battle_anim_effects_2.c | 243 | ||||
-rw-r--r-- | src/battle_anim_effects_3.c | 1999 | ||||
-rw-r--r-- | src/battle_anim_special.c | 182 | ||||
-rw-r--r-- | src/battle_anim_status_effects.c | 8 |
6 files changed, 1567 insertions, 1680 deletions
diff --git a/src/battle_anim.c b/src/battle_anim.c index 6f4c8a91e..fd219bc11 100644 --- a/src/battle_anim.c +++ b/src/battle_anim.c @@ -18,14 +18,8 @@ #include "task.h" #include "constants/battle_anim.h" -// Defines #define ANIM_SPRITE_INDEX_COUNT 8 -extern const u16 gMovesWithQuietBGM[]; -extern const u8 *const gBattleAnims_Moves[]; -//extern const struct CompressedSpriteSheet gUnknown_8399388[]; -//extern const struct CompressedSpritePalette gUnknown_8399C90[]; - // RAM EWRAM_DATA static const u8 *sBattleAnimScriptPtr = NULL; EWRAM_DATA static const u8 *sBattleAnimScriptRetAddr = NULL; @@ -117,7 +111,10 @@ static void ScriptCmd_doublebattle_2E(void); static void ScriptCmd_stopsound(void); // Data -const struct OamData gOamData_AffineOff_ObjNormal_8x8 = //gOamData_83AC9C8 +extern const u16 gMovesWithQuietBGM[]; +extern const u8 *const gBattleAnims_Moves[]; + +const struct OamData gOamData_AffineOff_ObjNormal_8x8 = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -132,7 +129,7 @@ const struct OamData gOamData_AffineOff_ObjNormal_8x8 = //gOamData_83AC9C8 }; -const struct OamData gOamData_AffineOff_ObjNormal_16x16 = //gOamData_83AC9D0 +const struct OamData gOamData_AffineOff_ObjNormal_16x16 = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -146,7 +143,7 @@ const struct OamData gOamData_AffineOff_ObjNormal_16x16 = //gOamData_83AC9D0 .paletteNum = 0, }; -const struct OamData gOamData_AffineOff_ObjNormal_32x32 = //gOamData_83AC9D8 +const struct OamData gOamData_AffineOff_ObjNormal_32x32 = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -160,7 +157,7 @@ const struct OamData gOamData_AffineOff_ObjNormal_32x32 = //gOamData_83AC9D8 .paletteNum = 0, }; -const struct OamData gOamData_AffineOff_ObjNormal_64x64 = //gOamData_83AC9E0 +const struct OamData gOamData_AffineOff_ObjNormal_64x64 = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -174,7 +171,7 @@ const struct OamData gOamData_AffineOff_ObjNormal_64x64 = //gOamData_83AC9E0 .paletteNum = 0, }; -const struct OamData gOamData_AffineOff_ObjNormal_16x8 = //gOamData_83AC9E8 +const struct OamData gOamData_AffineOff_ObjNormal_16x8 = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -188,7 +185,7 @@ const struct OamData gOamData_AffineOff_ObjNormal_16x8 = //gOamData_83AC9E8 .paletteNum = 0, }; -const struct OamData gOamData_AffineOff_ObjNormal_32x8 = //gOamData_83AC9F0 +const struct OamData gOamData_AffineOff_ObjNormal_32x8 = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -202,7 +199,7 @@ const struct OamData gOamData_AffineOff_ObjNormal_32x8 = //gOamData_83AC9F0 .paletteNum = 0, }; -const struct OamData gOamData_AffineOff_ObjNormal_32x16 = //gOamData_83AC9F8 +const struct OamData gOamData_AffineOff_ObjNormal_32x16 = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -216,7 +213,7 @@ const struct OamData gOamData_AffineOff_ObjNormal_32x16 = //gOamData_83AC9F8 .paletteNum = 0, }; -const struct OamData gOamData_AffineOff_ObjNormal_64x32 = //gOamData_83ACA00 +const struct OamData gOamData_AffineOff_ObjNormal_64x32 = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -230,7 +227,7 @@ const struct OamData gOamData_AffineOff_ObjNormal_64x32 = //gOamData_83ACA00 .paletteNum = 0, }; -const struct OamData gOamData_AffineOff_ObjNormal_8x16 = //gOamData_83ACA08 +const struct OamData gOamData_AffineOff_ObjNormal_8x16 = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -244,7 +241,7 @@ const struct OamData gOamData_AffineOff_ObjNormal_8x16 = //gOamData_83ACA08 .paletteNum = 0, }; -const struct OamData gOamData_AffineOff_ObjNormal_8x32 = //gOamData_83ACA10 +const struct OamData gOamData_AffineOff_ObjNormal_8x32 = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -258,7 +255,7 @@ const struct OamData gOamData_AffineOff_ObjNormal_8x32 = //gOamData_83ACA10 .paletteNum = 0, }; -const struct OamData gOamData_AffineOff_ObjNormal_16x32 = //gOamData_83ACA18 +const struct OamData gOamData_AffineOff_ObjNormal_16x32 = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -272,7 +269,7 @@ const struct OamData gOamData_AffineOff_ObjNormal_16x32 = //gOamData_83ACA18 .paletteNum = 0, }; -const struct OamData gOamData_AffineOff_ObjNormal_32x64 = //gOamData_83ACA20 +const struct OamData gOamData_AffineOff_ObjNormal_32x64 = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -286,7 +283,7 @@ const struct OamData gOamData_AffineOff_ObjNormal_32x64 = //gOamData_83ACA20 .paletteNum = 0, }; -const struct OamData gOamData_AffineNormal_ObjNormal_8x8 = //gOamData_83ACA28 +const struct OamData gOamData_AffineNormal_ObjNormal_8x8 = { .y = 0, .affineMode = ST_OAM_AFFINE_NORMAL, @@ -300,7 +297,7 @@ const struct OamData gOamData_AffineNormal_ObjNormal_8x8 = //gOamData_83ACA28 .paletteNum = 0, }; -const struct OamData gOamData_AffineNormal_ObjNormal_16x16 = //gOamData_83ACA30 +const struct OamData gOamData_AffineNormal_ObjNormal_16x16 = { .y = 0, .affineMode = ST_OAM_AFFINE_NORMAL, @@ -314,7 +311,7 @@ const struct OamData gOamData_AffineNormal_ObjNormal_16x16 = //gOamData_83ACA30 .paletteNum = 0, }; -const struct OamData gOamData_AffineNormal_ObjNormal_32x32 = //gOamData_83ACA38 +const struct OamData gOamData_AffineNormal_ObjNormal_32x32 = { .y = 0, .affineMode = ST_OAM_AFFINE_NORMAL, @@ -328,7 +325,7 @@ const struct OamData gOamData_AffineNormal_ObjNormal_32x32 = //gOamData_83ACA38 .paletteNum = 0, }; -const struct OamData gOamData_AffineNormal_ObjNormal_64x64 = //gOamData_83ACA40 +const struct OamData gOamData_AffineNormal_ObjNormal_64x64 = { .y = 0, .affineMode = ST_OAM_AFFINE_NORMAL, @@ -342,7 +339,7 @@ const struct OamData gOamData_AffineNormal_ObjNormal_64x64 = //gOamData_83ACA40 .paletteNum = 0, }; -const struct OamData gOamData_AffineNormal_ObjNormal_16x8 = //gOamData_83ACA48 +const struct OamData gOamData_AffineNormal_ObjNormal_16x8 = { .y = 0, .affineMode = ST_OAM_AFFINE_NORMAL, @@ -356,7 +353,7 @@ const struct OamData gOamData_AffineNormal_ObjNormal_16x8 = //gOamData_83ACA48 .paletteNum = 0, }; -const struct OamData gOamData_AffineNormal_ObjNormal_32x8 = //gOamData_83ACA50 +const struct OamData gOamData_AffineNormal_ObjNormal_32x8 = { .y = 0, .affineMode = ST_OAM_AFFINE_NORMAL, @@ -370,7 +367,7 @@ const struct OamData gOamData_AffineNormal_ObjNormal_32x8 = //gOamData_83ACA50 .paletteNum = 0, }; -const struct OamData gOamData_AffineNormal_ObjNormal_32x16 = //gOamData_83ACA58 +const struct OamData gOamData_AffineNormal_ObjNormal_32x16 = { .y = 0, .affineMode = ST_OAM_AFFINE_NORMAL, @@ -384,7 +381,7 @@ const struct OamData gOamData_AffineNormal_ObjNormal_32x16 = //gOamData_83ACA58 .paletteNum = 0, }; -const struct OamData gOamData_AffineNormal_ObjNormal_64x32 = //gOamData_83ACA60 +const struct OamData gOamData_AffineNormal_ObjNormal_64x32 = { .y = 0, .affineMode = ST_OAM_AFFINE_NORMAL, @@ -398,7 +395,7 @@ const struct OamData gOamData_AffineNormal_ObjNormal_64x32 = //gOamData_83ACA60 .paletteNum = 0, }; -const struct OamData gOamData_AffineNormal_ObjNormal_8x16 = //gOamData_83ACA68 +const struct OamData gOamData_AffineNormal_ObjNormal_8x16 = { .y = 0, .affineMode = ST_OAM_AFFINE_NORMAL, @@ -412,7 +409,7 @@ const struct OamData gOamData_AffineNormal_ObjNormal_8x16 = //gOamData_83ACA68 .paletteNum = 0, }; -const struct OamData gOamData_AffineNormal_ObjNormal_8x32 = //gOamData_83ACA70 +const struct OamData gOamData_AffineNormal_ObjNormal_8x32 = { .y = 0, .affineMode = ST_OAM_AFFINE_NORMAL, @@ -426,7 +423,7 @@ const struct OamData gOamData_AffineNormal_ObjNormal_8x32 = //gOamData_83ACA70 .paletteNum = 0, }; -const struct OamData gOamData_AffineNormal_ObjNormal_16x32 = //gOamData_83ACA78 +const struct OamData gOamData_AffineNormal_ObjNormal_16x32 = { .y = 0, .affineMode = ST_OAM_AFFINE_NORMAL, @@ -440,7 +437,7 @@ const struct OamData gOamData_AffineNormal_ObjNormal_16x32 = //gOamData_83ACA78 .paletteNum = 0, }; -const struct OamData gOamData_AffineNormal_ObjNormal_32x64 = //gOamData_83ACA80 +const struct OamData gOamData_AffineNormal_ObjNormal_32x64 = { .y = 0, .affineMode = ST_OAM_AFFINE_NORMAL, @@ -454,7 +451,7 @@ const struct OamData gOamData_AffineNormal_ObjNormal_32x64 = //gOamData_83ACA80 .paletteNum = 0, }; -const struct OamData gOamData_AffineDouble_ObjNormal_8x8 = //gOamData_83ACA88 +const struct OamData gOamData_AffineDouble_ObjNormal_8x8 = { .y = 0, .affineMode = ST_OAM_AFFINE_DOUBLE, @@ -468,7 +465,7 @@ const struct OamData gOamData_AffineDouble_ObjNormal_8x8 = //gOamData_83ACA88 .paletteNum = 0, }; -const struct OamData gOamData_AffineDouble_ObjNormal_16x16 = //gOamData_83ACA90 +const struct OamData gOamData_AffineDouble_ObjNormal_16x16 = { .y = 0, .affineMode = ST_OAM_AFFINE_DOUBLE, @@ -482,7 +479,7 @@ const struct OamData gOamData_AffineDouble_ObjNormal_16x16 = //gOamData_83ACA90 .paletteNum = 0, }; -const struct OamData gOamData_AffineDouble_ObjNormal_32x32 = //gOamData_83ACA98 +const struct OamData gOamData_AffineDouble_ObjNormal_32x32 = { .y = 0, .affineMode = ST_OAM_AFFINE_DOUBLE, @@ -496,7 +493,7 @@ const struct OamData gOamData_AffineDouble_ObjNormal_32x32 = //gOamData_83ACA98 .paletteNum = 0, }; -const struct OamData gOamData_AffineDouble_ObjNormal_64x64 = //gOamData_83ACAA0 +const struct OamData gOamData_AffineDouble_ObjNormal_64x64 = { .y = 0, .affineMode = ST_OAM_AFFINE_DOUBLE, @@ -510,7 +507,7 @@ const struct OamData gOamData_AffineDouble_ObjNormal_64x64 = //gOamData_83ACAA0 .paletteNum = 0, }; -const struct OamData gOamData_AffineDouble_ObjNormal_16x8 = //gOamData_83ACAA8 +const struct OamData gOamData_AffineDouble_ObjNormal_16x8 = { .y = 0, .affineMode = ST_OAM_AFFINE_DOUBLE, @@ -524,7 +521,7 @@ const struct OamData gOamData_AffineDouble_ObjNormal_16x8 = //gOamData_83ACAA8 .paletteNum = 0, }; -const struct OamData gOamData_AffineDouble_ObjNormal_32x8 = //gOamData_83ACAB0 +const struct OamData gOamData_AffineDouble_ObjNormal_32x8 = { .y = 0, .affineMode = ST_OAM_AFFINE_DOUBLE, @@ -538,7 +535,7 @@ const struct OamData gOamData_AffineDouble_ObjNormal_32x8 = //gOamData_83ACAB0 .paletteNum = 0, }; -const struct OamData gOamData_AffineDouble_ObjNormal_32x16 = //gOamData_83ACAB8 +const struct OamData gOamData_AffineDouble_ObjNormal_32x16 = { .y = 0, .affineMode = ST_OAM_AFFINE_DOUBLE, @@ -552,7 +549,7 @@ const struct OamData gOamData_AffineDouble_ObjNormal_32x16 = //gOamData_83ACAB8 .paletteNum = 0, }; -const struct OamData gOamData_AffineDouble_ObjNormal_64x32 = //gOamData_83ACAC0 +const struct OamData gOamData_AffineDouble_ObjNormal_64x32 = { .y = 0, .affineMode = ST_OAM_AFFINE_DOUBLE, @@ -566,7 +563,7 @@ const struct OamData gOamData_AffineDouble_ObjNormal_64x32 = //gOamData_83ACAC0 .paletteNum = 0, }; -const struct OamData gOamData_AffineDouble_ObjNormal_8x16 = //gOamData_83ACAC8 +const struct OamData gOamData_AffineDouble_ObjNormal_8x16 = { .y = 0, .affineMode = ST_OAM_AFFINE_DOUBLE, @@ -580,7 +577,7 @@ const struct OamData gOamData_AffineDouble_ObjNormal_8x16 = //gOamData_83ACAC8 .paletteNum = 0, }; -const struct OamData gOamData_AffineDouble_ObjNormal_8x32 = //gOamData_83ACAD0 +const struct OamData gOamData_AffineDouble_ObjNormal_8x32 = { .y = 0, .affineMode = ST_OAM_AFFINE_DOUBLE, @@ -594,7 +591,7 @@ const struct OamData gOamData_AffineDouble_ObjNormal_8x32 = //gOamData_83ACAD0 .paletteNum = 0, }; -const struct OamData gOamData_AffineDouble_ObjNormal_16x32 = //gOamData_83ACAD8 +const struct OamData gOamData_AffineDouble_ObjNormal_16x32 = { .y = 0, .affineMode = ST_OAM_AFFINE_DOUBLE, @@ -608,7 +605,7 @@ const struct OamData gOamData_AffineDouble_ObjNormal_16x32 = //gOamData_83ACAD8 .paletteNum = 0, }; -const struct OamData gOamData_AffineDouble_ObjNormal_32x64 = //gOamData_83ACAE0 +const struct OamData gOamData_AffineDouble_ObjNormal_32x64 = { .y = 0, .affineMode = ST_OAM_AFFINE_DOUBLE, @@ -622,7 +619,7 @@ const struct OamData gOamData_AffineDouble_ObjNormal_32x64 = //gOamData_83ACAE0 .paletteNum = 0, }; -const struct OamData gOamData_AffineOff_ObjBlend_8x8 = //gOamData_83ACAE8 +const struct OamData gOamData_AffineOff_ObjBlend_8x8 = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -636,7 +633,7 @@ const struct OamData gOamData_AffineOff_ObjBlend_8x8 = //gOamData_83ACAE8 .paletteNum = 0, }; -const struct OamData gOamData_AffineOff_ObjBlend_16x16 = //gOamData_83ACAF0 +const struct OamData gOamData_AffineOff_ObjBlend_16x16 = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -650,7 +647,7 @@ const struct OamData gOamData_AffineOff_ObjBlend_16x16 = //gOamData_83ACAF0 .paletteNum = 0, }; -const struct OamData gOamData_AffineOff_ObjBlend_32x32 = //gOamData_83ACAF8 +const struct OamData gOamData_AffineOff_ObjBlend_32x32 = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -664,7 +661,7 @@ const struct OamData gOamData_AffineOff_ObjBlend_32x32 = //gOamData_83ACAF8 .paletteNum = 0, }; -const struct OamData gOamData_AffineOff_ObjBlend_64x64 = //gOamData_83ACB00 +const struct OamData gOamData_AffineOff_ObjBlend_64x64 = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -678,7 +675,7 @@ const struct OamData gOamData_AffineOff_ObjBlend_64x64 = //gOamData_83ACB00 .paletteNum = 0, }; -const struct OamData gOamData_AffineOff_ObjBlend_16x8 = //gOamData_83ACB08 +const struct OamData gOamData_AffineOff_ObjBlend_16x8 = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -692,7 +689,7 @@ const struct OamData gOamData_AffineOff_ObjBlend_16x8 = //gOamData_83ACB08 .paletteNum = 0, }; -const struct OamData gOamData_AffineOff_ObjBlend_32x8 = //gOamData_83ACB10 +const struct OamData gOamData_AffineOff_ObjBlend_32x8 = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -706,7 +703,7 @@ const struct OamData gOamData_AffineOff_ObjBlend_32x8 = //gOamData_83ACB10 .paletteNum = 0, }; -const struct OamData gOamData_AffineOff_ObjBlend_32x16 = //gOamData_83ACB18 +const struct OamData gOamData_AffineOff_ObjBlend_32x16 = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -720,7 +717,7 @@ const struct OamData gOamData_AffineOff_ObjBlend_32x16 = //gOamData_83ACB18 .paletteNum = 0, }; -const struct OamData gOamData_AffineOff_ObjBlend_64x32 = //gOamData_83ACB20 +const struct OamData gOamData_AffineOff_ObjBlend_64x32 = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -734,7 +731,7 @@ const struct OamData gOamData_AffineOff_ObjBlend_64x32 = //gOamData_83ACB20 .paletteNum = 0, }; -const struct OamData gOamData_AffineOff_ObjBlend_8x16 = //gOamData_83ACB28 +const struct OamData gOamData_AffineOff_ObjBlend_8x16 = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -748,7 +745,7 @@ const struct OamData gOamData_AffineOff_ObjBlend_8x16 = //gOamData_83ACB28 .paletteNum = 0, }; -const struct OamData gOamData_AffineOff_ObjBlend_8x32 = //gOamData_83ACB30 +const struct OamData gOamData_AffineOff_ObjBlend_8x32 = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -762,7 +759,7 @@ const struct OamData gOamData_AffineOff_ObjBlend_8x32 = //gOamData_83ACB30 .paletteNum = 0, }; -const struct OamData gOamData_AffineOff_ObjBlend_16x32 = //gOamData_83ACB38 +const struct OamData gOamData_AffineOff_ObjBlend_16x32 = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -776,7 +773,7 @@ const struct OamData gOamData_AffineOff_ObjBlend_16x32 = //gOamData_83ACB38 .paletteNum = 0, }; -const struct OamData gOamData_AffineOff_ObjBlend_32x64 = //gOamData_83ACB40 +const struct OamData gOamData_AffineOff_ObjBlend_32x64 = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -790,7 +787,7 @@ const struct OamData gOamData_AffineOff_ObjBlend_32x64 = //gOamData_83ACB40 .paletteNum = 0, }; -const struct OamData gOamData_AffineNormal_ObjBlend_8x8 = //gOamData_83ACB48 +const struct OamData gOamData_AffineNormal_ObjBlend_8x8 = { .y = 0, .affineMode = ST_OAM_AFFINE_NORMAL, @@ -804,7 +801,7 @@ const struct OamData gOamData_AffineNormal_ObjBlend_8x8 = //gOamData_83ACB48 .paletteNum = 0, }; -const struct OamData gOamData_AffineNormal_ObjBlend_16x16 = //gOamData_83ACB50 +const struct OamData gOamData_AffineNormal_ObjBlend_16x16 = { .y = 0, .affineMode = ST_OAM_AFFINE_NORMAL, @@ -818,7 +815,7 @@ const struct OamData gOamData_AffineNormal_ObjBlend_16x16 = //gOamData_83ACB50 .paletteNum = 0, }; -const struct OamData gOamData_AffineNormal_ObjBlend_32x32 = //gOamData_83ACB58 +const struct OamData gOamData_AffineNormal_ObjBlend_32x32 = { .y = 0, .affineMode = ST_OAM_AFFINE_NORMAL, @@ -832,7 +829,7 @@ const struct OamData gOamData_AffineNormal_ObjBlend_32x32 = //gOamData_83ACB58 .paletteNum = 0, }; -const struct OamData gOamData_AffineNormal_ObjBlend_64x64 = //gOamData_83ACB60 +const struct OamData gOamData_AffineNormal_ObjBlend_64x64 = { .y = 0, .affineMode = ST_OAM_AFFINE_NORMAL, @@ -846,7 +843,7 @@ const struct OamData gOamData_AffineNormal_ObjBlend_64x64 = //gOamData_83ACB60 .paletteNum = 0, }; -const struct OamData gOamData_AffineNormal_ObjBlend_16x8 = //gOamData_83ACB68 +const struct OamData gOamData_AffineNormal_ObjBlend_16x8 = { .y = 0, .affineMode = ST_OAM_AFFINE_NORMAL, @@ -860,7 +857,7 @@ const struct OamData gOamData_AffineNormal_ObjBlend_16x8 = //gOamData_83ACB68 .paletteNum = 0, }; -const struct OamData gOamData_AffineNormal_ObjBlend_32x8 = //gOamData_83ACB70 +const struct OamData gOamData_AffineNormal_ObjBlend_32x8 = { .y = 0, .affineMode = ST_OAM_AFFINE_NORMAL, @@ -874,7 +871,7 @@ const struct OamData gOamData_AffineNormal_ObjBlend_32x8 = //gOamData_83ACB70 .paletteNum = 0, }; -const struct OamData gOamData_AffineNormal_ObjBlend_32x16 = //gOamData_83ACB78 +const struct OamData gOamData_AffineNormal_ObjBlend_32x16 = { .y = 0, .affineMode = ST_OAM_AFFINE_NORMAL, @@ -888,7 +885,7 @@ const struct OamData gOamData_AffineNormal_ObjBlend_32x16 = //gOamData_83ACB78 .paletteNum = 0, }; -const struct OamData gOamData_AffineNormal_ObjBlend_64x32 = //gOamData_83ACB80 +const struct OamData gOamData_AffineNormal_ObjBlend_64x32 = { .y = 0, .affineMode = ST_OAM_AFFINE_NORMAL, @@ -902,7 +899,7 @@ const struct OamData gOamData_AffineNormal_ObjBlend_64x32 = //gOamData_83ACB80 .paletteNum = 0, }; -const struct OamData gOamData_AffineNormal_ObjBlend_8x16 = //gOamData_83ACB88 +const struct OamData gOamData_AffineNormal_ObjBlend_8x16 = { .y = 0, .affineMode = ST_OAM_AFFINE_NORMAL, @@ -916,7 +913,7 @@ const struct OamData gOamData_AffineNormal_ObjBlend_8x16 = //gOamData_83ACB88 .paletteNum = 0, }; -const struct OamData gOamData_AffineNormal_ObjBlend_8x32 = //gOamData_83ACB90 +const struct OamData gOamData_AffineNormal_ObjBlend_8x32 = { .y = 0, .affineMode = ST_OAM_AFFINE_NORMAL, @@ -930,7 +927,7 @@ const struct OamData gOamData_AffineNormal_ObjBlend_8x32 = //gOamData_83ACB90 .paletteNum = 0, }; -const struct OamData gOamData_AffineNormal_ObjBlend_16x32 = //gOamData_83ACB98 +const struct OamData gOamData_AffineNormal_ObjBlend_16x32 = { .y = 0, .affineMode = ST_OAM_AFFINE_NORMAL, @@ -944,7 +941,7 @@ const struct OamData gOamData_AffineNormal_ObjBlend_16x32 = //gOamData_83ACB98 .paletteNum = 0, }; -const struct OamData gOamData_AffineNormal_ObjBlend_32x64 = //gOamData_83ACBA0 +const struct OamData gOamData_AffineNormal_ObjBlend_32x64 = { .y = 0, .affineMode = ST_OAM_AFFINE_NORMAL, @@ -958,7 +955,7 @@ const struct OamData gOamData_AffineNormal_ObjBlend_32x64 = //gOamData_83ACBA0 .paletteNum = 0, }; -const struct OamData gOamData_AffineDouble_ObjBlend_8x8 = //gOamData_83ACBA8 +const struct OamData gOamData_AffineDouble_ObjBlend_8x8 = { .y = 0, .affineMode = ST_OAM_AFFINE_DOUBLE, @@ -972,7 +969,7 @@ const struct OamData gOamData_AffineDouble_ObjBlend_8x8 = //gOamData_83ACBA8 .paletteNum = 0, }; -const struct OamData gOamData_AffineDouble_ObjBlend_16x16 = //gOamData_83ACBB0 +const struct OamData gOamData_AffineDouble_ObjBlend_16x16 = { .y = 0, .affineMode = ST_OAM_AFFINE_DOUBLE, @@ -986,7 +983,7 @@ const struct OamData gOamData_AffineDouble_ObjBlend_16x16 = //gOamData_83ACBB0 .paletteNum = 0, }; -const struct OamData gOamData_AffineDouble_ObjBlend_32x32 = //gOamData_83ACBB8 +const struct OamData gOamData_AffineDouble_ObjBlend_32x32 = { .y = 0, .affineMode = ST_OAM_AFFINE_DOUBLE, @@ -1000,7 +997,7 @@ const struct OamData gOamData_AffineDouble_ObjBlend_32x32 = //gOamData_83ACBB8 .paletteNum = 0, }; -const struct OamData gOamData_AffineDouble_ObjBlend_64x64 = //gOamData_83ACBC0 +const struct OamData gOamData_AffineDouble_ObjBlend_64x64 = { .y = 0, .affineMode = ST_OAM_AFFINE_DOUBLE, @@ -1014,7 +1011,7 @@ const struct OamData gOamData_AffineDouble_ObjBlend_64x64 = //gOamData_83ACBC0 .paletteNum = 0, }; -const struct OamData gOamData_AffineDouble_ObjBlend_16x8 = //gOamData_83ACBC8 +const struct OamData gOamData_AffineDouble_ObjBlend_16x8 = { .y = 0, .affineMode = ST_OAM_AFFINE_DOUBLE, @@ -1028,7 +1025,7 @@ const struct OamData gOamData_AffineDouble_ObjBlend_16x8 = //gOamData_83ACBC8 .paletteNum = 0, }; -const struct OamData gOamData_AffineDouble_ObjBlend_32x8 = //gOamData_83ACBD0 +const struct OamData gOamData_AffineDouble_ObjBlend_32x8 = { .y = 0, .affineMode = ST_OAM_AFFINE_DOUBLE, @@ -1042,7 +1039,7 @@ const struct OamData gOamData_AffineDouble_ObjBlend_32x8 = //gOamData_83ACBD0 .paletteNum = 0, }; -const struct OamData gOamData_AffineDouble_ObjBlend_32x16 = //gOamData_83ACBD8 +const struct OamData gOamData_AffineDouble_ObjBlend_32x16 = { .y = 0, .affineMode = ST_OAM_AFFINE_DOUBLE, @@ -1056,7 +1053,7 @@ const struct OamData gOamData_AffineDouble_ObjBlend_32x16 = //gOamData_83ACBD8 .paletteNum = 0, }; -const struct OamData gOamData_AffineDouble_ObjBlend_64x32 = //gOamData_83ACBE0 +const struct OamData gOamData_AffineDouble_ObjBlend_64x32 = { .y = 0, .affineMode = ST_OAM_AFFINE_DOUBLE, @@ -1070,7 +1067,7 @@ const struct OamData gOamData_AffineDouble_ObjBlend_64x32 = //gOamData_83ACBE0 .paletteNum = 0, }; -const struct OamData gOamData_AffineDouble_ObjBlend_8x16 = //gOamData_83ACBE8 +const struct OamData gOamData_AffineDouble_ObjBlend_8x16 = { .y = 0, .affineMode = ST_OAM_AFFINE_DOUBLE, @@ -1084,7 +1081,7 @@ const struct OamData gOamData_AffineDouble_ObjBlend_8x16 = //gOamData_83ACBE8 .paletteNum = 0, }; -const struct OamData gOamData_AffineDouble_ObjBlend_8x32 = //gOamData_83ACBF0 +const struct OamData gOamData_AffineDouble_ObjBlend_8x32 = { .y = 0, .affineMode = ST_OAM_AFFINE_DOUBLE, @@ -1098,7 +1095,7 @@ const struct OamData gOamData_AffineDouble_ObjBlend_8x32 = //gOamData_83ACBF0 .paletteNum = 0, }; -const struct OamData gOamData_AffineDouble_ObjBlend_16x32 = //gOamData_83ACBF8 +const struct OamData gOamData_AffineDouble_ObjBlend_16x32 = { .y = 0, .affineMode = ST_OAM_AFFINE_DOUBLE, @@ -1112,7 +1109,7 @@ const struct OamData gOamData_AffineDouble_ObjBlend_16x32 = //gOamData_83ACBF8 .paletteNum = 0, }; -const struct OamData gOamData_AffineDouble_ObjBlend_32x64 = //gOamData_83ACC00 +const struct OamData gOamData_AffineDouble_ObjBlend_32x64 = { .y = 0, .affineMode = ST_OAM_AFFINE_DOUBLE, @@ -1126,7 +1123,7 @@ const struct OamData gOamData_AffineDouble_ObjBlend_32x64 = //gOamData_83ACC00 .paletteNum = 0, }; -const struct CompressedSpriteSheet gBattleAnimPicTable[] = // 83ACC08 +const struct CompressedSpriteSheet gBattleAnimPicTable[] = { {gBattleAnimSpriteGfx_Bone, 0x0200, ANIM_TAG_BONE}, {gBattleAnimSpriteGfx_Spark, 0x0300, ANIM_TAG_SPARK}, @@ -1712,7 +1709,7 @@ const struct CompressedSpritePalette gBattleAnimPaletteTable[] = {gBattleAnimSpritePal_BlueRing2, ANIM_TAG_BLUE_RING_2}, }; -const struct BattleAnimBackground gBattleAnimBackgroundTable[] = // 83ADE18 +const struct BattleAnimBackground gBattleAnimBackgroundTable[] = { [BG_DARK_] = {gBattleAnimBgImage_Dark, gBattleAnimBgPalette_Dark, gBattleAnimBgTilemap_Dark}, [BG_DARK] = {gBattleAnimBgImage_Dark, gBattleAnimBgPalette_Dark, gBattleAnimBgTilemap_Dark}, @@ -1743,7 +1740,7 @@ const struct BattleAnimBackground gBattleAnimBackgroundTable[] = // 83ADE18 [BG_SOLARBEAM_CONTESTS] = {gBattleAnimBgImage_Impact, gBattleAnimBgPalette_Solarbeam, gBattleAnimBgTilemap_ImpactContests}, }; -static void (* const sScriptCmdTable[])(void) = // 83ADF5C +static void (* const sScriptCmdTable[])(void) = { ScriptCmd_loadspritegfx, ScriptCmd_unloadspritegfx, @@ -1808,7 +1805,7 @@ void ClearBattleAnimationVars(void) gAnimMoveDmg = 0; gAnimMovePower = 0; gAnimFriendship = 0; - + // Clear index array. for (i = 0; i < ANIM_SPRITE_INDEX_COUNT; i++) sAnimSpriteIndexArray[i] |= 0xFFFF; @@ -1838,15 +1835,15 @@ void LaunchBattleAnimation(const u8 *const animsTable[], u16 tableId, bool8 isMo { s32 i; - sub_80767F0(); - UpdateOamPriorityInAllHealthboxes(0); - for (i = 0; i < MAX_BATTLERS_COUNT; i++) - { - if (GetBattlerSide(i) != B_SIDE_PLAYER) - gAnimBattlerSpecies[i] = GetMonData(&gEnemyParty[gBattlerPartyIndexes[i]], MON_DATA_SPECIES); - else - gAnimBattlerSpecies[i] = GetMonData(&gPlayerParty[gBattlerPartyIndexes[i]], MON_DATA_SPECIES); - } + sub_80767F0(); + UpdateOamPriorityInAllHealthboxes(0); + for (i = 0; i < MAX_BATTLERS_COUNT; i++) + { + if (GetBattlerSide(i) != B_SIDE_PLAYER) + gAnimBattlerSpecies[i] = GetMonData(&gEnemyParty[gBattlerPartyIndexes[i]], MON_DATA_SPECIES); + else + gAnimBattlerSpecies[i] = GetMonData(&gPlayerParty[gBattlerPartyIndexes[i]], MON_DATA_SPECIES); + } if (!isMoveAnim) sAnimMoveIndex = 0; @@ -1958,14 +1955,9 @@ static void ScriptCmd_loadspritegfx(void) sBattleAnimScriptPtr++; index = T1_READ_16(sBattleAnimScriptPtr); - - LoadCompressedSpriteSheetUsingHeap(&gBattleAnimPicTable[index]); - LoadCompressedSpritePaletteUsingHeap(&gBattleAnimPaletteTable[index]); - - //LoadCompressedSpriteSheetUsingHeap(&gUnknown_8399388[GET_TRUE_SPRITE_INDEX(index)]); - //LoadCompressedSpritePaletteUsingHeap(&gUnknown_8399C90[GET_TRUE_SPRITE_INDEX(index)]); - - sBattleAnimScriptPtr += 2; + LoadCompressedSpriteSheetUsingHeap(&gBattleAnimPicTable[GET_TRUE_SPRITE_INDEX(index)]); + LoadCompressedSpritePaletteUsingHeap(&gBattleAnimPaletteTable[GET_TRUE_SPRITE_INDEX(index)]); + sBattleAnimScriptPtr += 2; AddSpriteIndex(GET_TRUE_SPRITE_INDEX(index)); gAnimFramesToWait = 1; gAnimScriptCallback = WaitAnimFrameCount; @@ -2077,7 +2069,6 @@ static void ScriptCmd_delay(void) gAnimScriptCallback = WaitAnimFrameCount; } -// Wait for visual tasks to finish. static void ScriptCmd_waitforvisualfinish(void) { if (gAnimVisualTaskCount == 0) @@ -2140,11 +2131,11 @@ static void ScriptCmd_end(void) } } - if (!continuousAnim) // May have been used for debug? + if (!continuousAnim) { m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 256); - sub_80767F0(); - UpdateOamPriorityInAllHealthboxes(1); + sub_80767F0(); + UpdateOamPriorityInAllHealthboxes(1); gAnimScriptActive = FALSE; } } @@ -2176,20 +2167,20 @@ static void ScriptCmd_monbg(void) sBattleAnimScriptPtr++; animBattler = sBattleAnimScriptPtr[0]; - if (animBattler == 0) - animBattler = 2; - else if (animBattler == 1) - animBattler = 3; + if (animBattler == ANIM_ATTACKER) + animBattler = ANIM_ATK_PARTNER; + else if (animBattler == ANIM_TARGET) + animBattler = ANIM_DEF_PARTNER; - if (animBattler == 0 || animBattler == 2) + if (animBattler == ANIM_ATTACKER || animBattler == ANIM_ATK_PARTNER) battlerId = gBattleAnimAttacker; else battlerId = gBattleAnimTarget; - + if (IsBattlerSpriteVisible(battlerId)) { - position = ((GetBattlerPosition(battlerId) << 0x18) + 0xFF000000) >> 0x18; //make human code - if (position <= B_POSITION_OPPONENT_LEFT) + position = GetBattlerPosition(battlerId); + if (position == B_POSITION_OPPONENT_LEFT || position == B_POSITION_PLAYER_RIGHT) toBG_2 = FALSE; else toBG_2 = TRUE; @@ -2217,10 +2208,10 @@ static void ScriptCmd_monbg(void) } battlerId ^= BIT_FLANK; - if (animBattler > 1 && IsBattlerSpriteVisible(battlerId)) + if (animBattler > ANIM_TARGET && IsBattlerSpriteVisible(battlerId)) { - position = ((GetBattlerPosition(battlerId) << 0x18) + 0xFF000000) >> 0x18; //make human code - if (position <= B_POSITION_OPPONENT_LEFT) + position = GetBattlerPosition(battlerId); + if (position == B_POSITION_OPPONENT_LEFT || position == B_POSITION_PLAYER_RIGHT) toBG_2 = FALSE; else toBG_2 = TRUE; @@ -2253,8 +2244,8 @@ static void ScriptCmd_monbg(void) bool8 IsBattlerSpriteVisible(u8 battlerId) { u8 battler = battlerId; - - if (!IsBattlerSpritePresent(battler)) + + if (!IsBattlerSpritePresent(battler)) return FALSE; if (!gBattleSpritesDataPtr->battlerData[battler].invisible || !gSprites[gBattlerSpriteIds[battler]].invisible) @@ -2263,7 +2254,6 @@ bool8 IsBattlerSpriteVisible(u8 battlerId) return FALSE; } -// re-check needed? void MoveBattlerSpriteToBG(u8 battlerId, bool8 toBG_2) { struct BattleAnimBgData animBg; @@ -2273,8 +2263,8 @@ void MoveBattlerSpriteToBG(u8 battlerId, bool8 toBG_2) if (!toBG_2) { - RequestDma3Fill(0, (void*)(BG_SCREEN_ADDR(8)), 0x2000, 1); - RequestDma3Fill(0, (void*)(BG_SCREEN_ADDR(28)), 0x1000, 1); + RequestDma3Fill(0, (void*)(BG_SCREEN_ADDR(8)), 0x2000, 1); + RequestDma3Fill(0, (void*)(BG_SCREEN_ADDR(28)), 0x1000, 1); sub_80752A0(&animBg); CpuFill16(toBG_2, animBg.bgTiles, 0x1000); CpuFill16(toBG_2, animBg.bgTilemap, 0x800); @@ -2331,14 +2321,14 @@ void sub_80730C0(u16 a, u16 *b, s32 c, u8 d) var = 32; else var = 64; - + a <<= 12; for (i = 0; i < var; i++) { for (j = 0; j < 32; j++) - { + { b[32 * i + j] = ((b[32 * i + j] & 0xFFF) | a) + c; - } + } } } @@ -2405,22 +2395,22 @@ static void ScriptCmd_clearmonbg(void) sBattleAnimScriptPtr++; animBattlerId = sBattleAnimScriptPtr[0]; - if (animBattlerId == 0) - animBattlerId = 2; - else if (animBattlerId == 1) - animBattlerId = 3; + if (animBattlerId == ANIM_ATTACKER) + animBattlerId = ANIM_ATK_PARTNER; + else if (animBattlerId == ANIM_TARGET) + animBattlerId = ANIM_DEF_PARTNER; - if (animBattlerId == 0 || animBattlerId == 2) + if (animBattlerId == ANIM_ATTACKER || animBattlerId == ANIM_ATK_PARTNER) battlerId = gBattleAnimAttacker; else battlerId = gBattleAnimTarget; if (sMonAnimTaskIdArray[0] != 0xFF) gSprites[gBattlerSpriteIds[battlerId]].invisible = FALSE; - if (animBattlerId > 1 && sMonAnimTaskIdArray[1] != 0xFF) + if (animBattlerId > ANIM_TARGET && sMonAnimTaskIdArray[1] != 0xFF) gSprites[gBattlerSpriteIds[battlerId ^ BIT_FLANK]].invisible = FALSE; else - animBattlerId = 0; + animBattlerId = ANIM_ATTACKER; taskId = CreateTask(sub_807331C, 5); gTasks[taskId].data[0] = animBattlerId; @@ -2431,14 +2421,14 @@ static void ScriptCmd_clearmonbg(void) static void sub_807331C(u8 taskId) { - u8 toBG_2; - u8 position; - - gTasks[taskId].data[1]++; + u8 toBG_2; + u8 position; + + gTasks[taskId].data[1]++; if (gTasks[taskId].data[1] != 1) { - position = ((GetBattlerPosition((u8)gTasks[taskId].data[2]) << 0x18) + 0xFF000000) >> 0x18; //make human code - if (position <= B_POSITION_OPPONENT_LEFT) + position = GetBattlerPosition((u8)gTasks[taskId].data[2]); + if (position == B_POSITION_OPPONENT_LEFT || position == B_POSITION_PLAYER_RIGHT) toBG_2 = FALSE; else toBG_2 = TRUE; @@ -2464,43 +2454,43 @@ static void ScriptCmd_monbg_22(void) bool8 toBG_2; u8 battlerId; u8 animBattlerId; - u8 position; + u8 position; sBattleAnimScriptPtr++; animBattlerId = sBattleAnimScriptPtr[0]; - if (animBattlerId == 0) - animBattlerId = 2; - else if (animBattlerId == 1) - animBattlerId = 3; + if (animBattlerId == ANIM_ATTACKER) + animBattlerId = ANIM_ATK_PARTNER; + else if (animBattlerId == ANIM_TARGET) + animBattlerId = ANIM_DEF_PARTNER; - if (animBattlerId == 0 || animBattlerId == 2) + if (animBattlerId == ANIM_ATTACKER || animBattlerId == ANIM_ATK_PARTNER) battlerId = gBattleAnimAttacker; else battlerId = gBattleAnimTarget; if (IsBattlerSpriteVisible(battlerId)) { - position = ((GetBattlerPosition(battlerId) << 0x18) + 0xFF000000) >> 0x18; //make human code - if (position <= B_POSITION_OPPONENT_LEFT) + position = GetBattlerPosition(battlerId); + if (position == B_POSITION_OPPONENT_LEFT || position == B_POSITION_PLAYER_RIGHT) toBG_2 = FALSE; else toBG_2 = TRUE; - + MoveBattlerSpriteToBG(battlerId, toBG_2); - gSprites[gBattlerSpriteIds[battlerId]].invisible = FALSE; + gSprites[gBattlerSpriteIds[battlerId]].invisible = FALSE; } battlerId ^= BIT_FLANK; - if (animBattlerId > 1 && IsBattlerSpriteVisible(battlerId)) + if (animBattlerId > ANIM_TARGET && IsBattlerSpriteVisible(battlerId)) { - position = ((GetBattlerPosition(battlerId) << 0x18) + 0xFF000000) >> 0x18; //make human code - if (position <= B_POSITION_OPPONENT_LEFT) + position = GetBattlerPosition(battlerId); + if (position == B_POSITION_OPPONENT_LEFT || position == B_POSITION_PLAYER_RIGHT) toBG_2 = FALSE; else toBG_2 = TRUE; MoveBattlerSpriteToBG(battlerId, toBG_2); - gSprites[gBattlerSpriteIds[battlerId]].invisible = FALSE; + gSprites[gBattlerSpriteIds[battlerId]].invisible = FALSE; } sBattleAnimScriptPtr++; @@ -2527,10 +2517,10 @@ static void ScriptCmd_clearmonbg_23(void) if (IsBattlerSpriteVisible(battlerId)) gSprites[gBattlerSpriteIds[battlerId]].invisible = FALSE; - if (animBattlerId > 1 && IsBattlerSpriteVisible(battlerId ^ BIT_FLANK)) + if (animBattlerId > ANIM_TARGET && IsBattlerSpriteVisible(battlerId ^ BIT_FLANK)) gSprites[gBattlerSpriteIds[battlerId ^ BIT_FLANK]].invisible = FALSE; else - animBattlerId = 0; + animBattlerId = ANIM_ATTACKER; taskId = CreateTask(sub_8073558, 5); gTasks[taskId].data[0] = animBattlerId; @@ -2544,21 +2534,21 @@ static void sub_8073558(u8 taskId) bool8 to_BG2; u8 position; u8 battlerId; - - gTasks[taskId].data[1]++; + + gTasks[taskId].data[1]++; if (gTasks[taskId].data[1] != 1) { bool8 toBG_2; battlerId = gTasks[taskId].data[2]; - position = ((GetBattlerPosition(battlerId) << 0x18) + 0xFF000000) >> 0x18; //make human code - if (position <= B_POSITION_OPPONENT_LEFT) + position = GetBattlerPosition(battlerId); + if (position == B_POSITION_OPPONENT_LEFT || position == B_POSITION_PLAYER_RIGHT) toBG_2 = FALSE; else toBG_2 = TRUE; if (IsBattlerSpriteVisible(battlerId)) sub_8073128(toBG_2); - + if (gTasks[taskId].data[0] > 1 && IsBattlerSpriteVisible(battlerId ^ BIT_FLANK)) sub_8073128(toBG_2 ^ 1); @@ -2640,7 +2630,7 @@ static void ScriptCmd_choosetwoturnanim(void) static void ScriptCmd_jumpifmoveturn(void) { u8 toCheck; - + sBattleAnimScriptPtr++; toCheck = sBattleAnimScriptPtr[0]; sBattleAnimScriptPtr++; @@ -2659,7 +2649,7 @@ static void ScriptCmd_goto(void) bool8 IsContest(void) { - return FALSE; + return FALSE; } // Unused @@ -2746,14 +2736,14 @@ static void Task_FadeToBg(u8 taskId) static void LoadMoveBg(u16 bgId) { - LZDecompressVram(gBattleAnimBackgroundTable[bgId].tilemap, (void *)(BG_SCREEN_ADDR(26))); - LZDecompressVram(gBattleAnimBackgroundTable[bgId].image, (void *)(BG_CHAR_ADDR(2))); - LoadCompressedPalette(gBattleAnimBackgroundTable[bgId].palette, 32, 32); + LZDecompressVram(gBattleAnimBackgroundTable[bgId].tilemap, (void *)(BG_SCREEN_ADDR(26))); + LZDecompressVram(gBattleAnimBackgroundTable[bgId].image, (void *)(BG_CHAR_ADDR(2))); + LoadCompressedPalette(gBattleAnimBackgroundTable[bgId].palette, 32, 32); } static void LoadDefaultBg(void) { - DrawMainBattleBackground(); + DrawMainBattleBackground(); } static void ScriptCmd_restorebg(void) @@ -2957,18 +2947,18 @@ static void Task_PanFromInitialToTarget(u8 taskId) pan = currentPan + incrementPan; gTasks[taskId].tCurrentPan = pan; - if (incrementPan == 0) // If we're not incrementing, just cancel the task immediately. + if (incrementPan == 0) { destroyTask = TRUE; } - else if (initialPanning < targetPanning) // Panning increasing. + else if (initialPanning < targetPanning) { - if (pan >= targetPanning) // Target reached. + if (pan >= targetPanning) destroyTask = TRUE; } else // Panning decreasing. { - if (pan <= targetPanning) // Target reached. + if (pan <= targetPanning) destroyTask = TRUE; } @@ -3213,7 +3203,7 @@ static void ScriptCmd_jumpargeq(void) static void ScriptCmd_jumpifcontest(void) { - sBattleAnimScriptPtr += 5; + sBattleAnimScriptPtr += 5; } static void ScriptCmd_monbgprio_28(void) diff --git a/src/battle_anim_effects_1.c b/src/battle_anim_effects_1.c index 2f92515c1..b1209bb81 100644 --- a/src/battle_anim_effects_1.c +++ b/src/battle_anim_effects_1.c @@ -153,7 +153,7 @@ static void AnimTauntFingerStep2(struct Sprite *); static const u8 gUnknown_83E2964[] = {0x02, 0x04, 0x01, 0x03}; -const union AnimCmd gPowderParticlesAnimCmds[] = //gUnknown_83E2968 +const union AnimCmd gPowderParticlesAnimCmds[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_FRAME(2, 5), @@ -166,12 +166,12 @@ const union AnimCmd gPowderParticlesAnimCmds[] = //gUnknown_83E2968 ANIMCMD_JUMP(0), }; -const union AnimCmd *const gPowderParticlesAnimTable[] = //gUnknown_83E298C +const union AnimCmd *const gPowderParticlesAnimTable[] = { gPowderParticlesAnimCmds, }; -const struct SpriteTemplate gSleepPowderParticleSpriteTemplate = //gUnknown_83E2990 +const struct SpriteTemplate gSleepPowderParticleSpriteTemplate = { .tileTag = ANIM_TAG_SLEEP_POWDER, .paletteTag = ANIM_TAG_SLEEP_POWDER, @@ -182,7 +182,7 @@ const struct SpriteTemplate gSleepPowderParticleSpriteTemplate = //gUnknown_83E2 .callback = AnimMovePowderParticle, }; -const struct SpriteTemplate gStunSporeParticleSpriteTemplate = //gUnknown_83E29A8 +const struct SpriteTemplate gStunSporeParticleSpriteTemplate = { .tileTag = ANIM_TAG_STUN_SPORE, .paletteTag = ANIM_TAG_STUN_SPORE, @@ -193,7 +193,7 @@ const struct SpriteTemplate gStunSporeParticleSpriteTemplate = //gUnknown_83E29A .callback = AnimMovePowderParticle, }; -const struct SpriteTemplate gPoisonPowderParticleSpriteTemplate = //gUnknown_83E29C0 +const struct SpriteTemplate gPoisonPowderParticleSpriteTemplate = { .tileTag = ANIM_TAG_POISON_POWDER, .paletteTag = ANIM_TAG_POISON_POWDER, @@ -204,7 +204,7 @@ const struct SpriteTemplate gPoisonPowderParticleSpriteTemplate = //gUnknown_83E .callback = AnimMovePowderParticle, }; -const union AnimCmd gSolarbeamBigOrbAnimCmds1[] = //gUnknown_83E29D8 +const union AnimCmd gSolarbeamBigOrbAnimCmds1[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, @@ -258,7 +258,7 @@ const union AnimCmd gPowerAbsorptionOrbAnimCmds[] = ANIMCMD_END, }; -const union AnimCmd *const gSolarbeamBigOrbAnimTable[] = //gUnknown_83E2A20 +const union AnimCmd *const gSolarbeamBigOrbAnimTable[] = { gSolarbeamBigOrbAnimCmds1, gSolarbeamBigOrbAnimCmds2, @@ -269,28 +269,28 @@ const union AnimCmd *const gSolarbeamBigOrbAnimTable[] = //gUnknown_83E2A20 gSolarbeamBigOrbAnimCmds7, }; -const union AnimCmd *const gSolarbeamSmallOrbAnimTable[] = //gUnknown_83E2A3C +const union AnimCmd *const gSolarbeamSmallOrbAnimTable[] = { gSolarbeamSmallOrbAnimCms, }; -const union AnimCmd *const gPowerAbsorptionOrbAnimTable[] = //gUnknown_83E2A40 +const union AnimCmd *const gPowerAbsorptionOrbAnimTable[] = { gPowerAbsorptionOrbAnimCmds, }; -const union AffineAnimCmd gPowerAbsorptionOrbAffineAnimCmds[] = //gUnknown_83E2A44 +const union AffineAnimCmd gPowerAbsorptionOrbAffineAnimCmds[] = { AFFINEANIMCMD_FRAME(-5, -5, 0, 1), AFFINEANIMCMD_JUMP(0), }; -const union AffineAnimCmd *const gPowerAbsorptionOrbAffineAnimTable[] = //gUnknown_83E2A54 +const union AffineAnimCmd *const gPowerAbsorptionOrbAffineAnimTable[] = { gPowerAbsorptionOrbAffineAnimCmds, }; -const struct SpriteTemplate gPowerAbsorptionOrbSpriteTemplate = //gUnknown_83E2A58 +const struct SpriteTemplate gPowerAbsorptionOrbSpriteTemplate = { .tileTag = ANIM_TAG_ORBS, .paletteTag = ANIM_TAG_ORBS, @@ -301,7 +301,7 @@ const struct SpriteTemplate gPowerAbsorptionOrbSpriteTemplate = //gUnknown_83E2A .callback = AnimPowerAbsorptionOrb, }; -const struct SpriteTemplate gSolarbeamBigOrbSpriteTemplate = //gUnknown_83E2A70 +const struct SpriteTemplate gSolarbeamBigOrbSpriteTemplate = { .tileTag = ANIM_TAG_ORBS, .paletteTag = ANIM_TAG_ORBS, @@ -312,7 +312,7 @@ const struct SpriteTemplate gSolarbeamBigOrbSpriteTemplate = //gUnknown_83E2A70 .callback = AnimSolarbeamBigOrb, }; -const struct SpriteTemplate gSolarbeamSmallOrbSpriteTemplate = //gUnknown_83E2A88 +const struct SpriteTemplate gSolarbeamSmallOrbSpriteTemplate = { .tileTag = ANIM_TAG_ORBS, .paletteTag = ANIM_TAG_ORBS, @@ -323,19 +323,19 @@ const struct SpriteTemplate gSolarbeamSmallOrbSpriteTemplate = //gUnknown_83E2A8 .callback = AnimSolarbeamSmallOrb, }; -const union AffineAnimCmd gStockpileAbsorptionOrbAffineCmds[] = //gUnknown_83E2AA0 +const union AffineAnimCmd gStockpileAbsorptionOrbAffineCmds[] = { AFFINEANIMCMD_FRAME(320, 320, 0, 0), AFFINEANIMCMD_FRAME(-14, -14, 0, 1), AFFINEANIMCMD_JUMP(1), }; -const union AffineAnimCmd *const gStockpileAbsorptionOrbAffineAnimTable[] = //gUnknown_83E2AB8 +const union AffineAnimCmd *const gStockpileAbsorptionOrbAffineAnimTable[] = { gStockpileAbsorptionOrbAffineCmds, }; -const struct SpriteTemplate gStockpileAbsorptionOrbSpriteTemplate = //gUnknown_83E2ABC +const struct SpriteTemplate gStockpileAbsorptionOrbSpriteTemplate = { .tileTag = ANIM_TAG_GRAY_ORB, .paletteTag = ANIM_TAG_GRAY_ORB, @@ -346,18 +346,18 @@ const struct SpriteTemplate gStockpileAbsorptionOrbSpriteTemplate = //gUnknown_8 .callback = AnimPowerAbsorptionOrb, }; -const union AffineAnimCmd gAbsorptionOrbAffineAnimCmds[] = //gUnknown_83E2AD4 +const union AffineAnimCmd gAbsorptionOrbAffineAnimCmds[] = { AFFINEANIMCMD_FRAME(-5, -5, 0, 1), AFFINEANIMCMD_JUMP(0), }; -const union AffineAnimCmd *const gAbsorptionOrbAffineAnimTable[] = //gUnknown_83E2AE4 +const union AffineAnimCmd *const gAbsorptionOrbAffineAnimTable[] = { gAbsorptionOrbAffineAnimCmds, }; -const struct SpriteTemplate gAbsorptionOrbSpriteTemplate = //gUnknown_83E2AE8 +const struct SpriteTemplate gAbsorptionOrbSpriteTemplate = { .tileTag = ANIM_TAG_ORBS, .paletteTag = ANIM_TAG_ORBS, @@ -368,7 +368,7 @@ const struct SpriteTemplate gAbsorptionOrbSpriteTemplate = //gUnknown_83E2AE8 .callback = AnimAbsorptionOrb, }; -const struct SpriteTemplate gHyperBeamOrbSpriteTemplate = //gUnknown_83E2B00 +const struct SpriteTemplate gHyperBeamOrbSpriteTemplate = { .tileTag = ANIM_TAG_ORBS, .paletteTag = ANIM_TAG_ORBS, @@ -379,26 +379,26 @@ const struct SpriteTemplate gHyperBeamOrbSpriteTemplate = //gUnknown_83E2B00 .callback = AnimHyperBeamOrb, }; -const union AnimCmd gLeechSeedAnimCmds1[] = //gUnknown_83E2B18 +const union AnimCmd gLeechSeedAnimCmds1[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -const union AnimCmd gLeechSeedAnimCmds2[] = //gUnknown_83E2B20 +const union AnimCmd gLeechSeedAnimCmds2[] = { ANIMCMD_FRAME(4, 7), ANIMCMD_FRAME(8, 7), ANIMCMD_JUMP(0), }; -const union AnimCmd *const gLeechSeedAnimTable[] = //gUnknown_83E2B2C +const union AnimCmd *const gLeechSeedAnimTable[] = { gLeechSeedAnimCmds1, gLeechSeedAnimCmds2, }; -const struct SpriteTemplate gLeechSeedSpriteTemplate = //gUnknown_83E2B34 +const struct SpriteTemplate gLeechSeedSpriteTemplate = { .tileTag = ANIM_TAG_SEED, .paletteTag = ANIM_TAG_SEED, @@ -409,25 +409,25 @@ const struct SpriteTemplate gLeechSeedSpriteTemplate = //gUnknown_83E2B34 .callback = AnimLeechSeed, }; -const union AnimCmd gSporeParticleAnimCmds1[] = //gUnknown_83E2B4C +const union AnimCmd gSporeParticleAnimCmds1[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -const union AnimCmd gSporeParticleAnimCmds2[] = //gUnknown_83E2B54 +const union AnimCmd gSporeParticleAnimCmds2[] = { ANIMCMD_FRAME(4, 7), ANIMCMD_END, }; -const union AnimCmd *const gSporeParticleAnimTable[] = //gUnknown_83E2B5C +const union AnimCmd *const gSporeParticleAnimTable[] = { gSporeParticleAnimCmds1, gSporeParticleAnimCmds2, }; -const struct SpriteTemplate gSporeParticleSpriteTemplate = //gUnknown_83E2B64 +const struct SpriteTemplate gSporeParticleSpriteTemplate = { .tileTag = ANIM_TAG_SPORE, .paletteTag = ANIM_TAG_SPORE, @@ -438,29 +438,29 @@ const struct SpriteTemplate gSporeParticleSpriteTemplate = //gUnknown_83E2B64 .callback = AnimSporeParticle, }; -const union AnimCmd gPetalDanceBigFlowerAnimCmds[] = //gUnknown_83E2B7C +const union AnimCmd gPetalDanceBigFlowerAnimCmds[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -const union AnimCmd gPetalDanceSmallFlowerAnimCmds[] = //gUnknown_83E2B84 +const union AnimCmd gPetalDanceSmallFlowerAnimCmds[] = { ANIMCMD_FRAME(4, 1), ANIMCMD_END, }; -const union AnimCmd *const gPetalDanceBigFlowerAnimTable[] = //gUnknown_83E2B8C +const union AnimCmd *const gPetalDanceBigFlowerAnimTable[] = { gPetalDanceBigFlowerAnimCmds, }; -const union AnimCmd *const gPetalDanceSmallFlowerAnimTable[] = //gUnknown_83E2B90 +const union AnimCmd *const gPetalDanceSmallFlowerAnimTable[] = { gPetalDanceSmallFlowerAnimCmds, }; -const struct SpriteTemplate gPetalDanceBigFlowerSpriteTemplate = //gUnknown_83E2B94 +const struct SpriteTemplate gPetalDanceBigFlowerSpriteTemplate = { .tileTag = ANIM_TAG_FLOWER, .paletteTag = ANIM_TAG_FLOWER, @@ -471,7 +471,7 @@ const struct SpriteTemplate gPetalDanceBigFlowerSpriteTemplate = //gUnknown_83E2 .callback = AnimPetalDanceBigFlower, }; -const struct SpriteTemplate gPetalDanceSmallFlowerSpriteTemplate = //gUnknown_83E2BAC +const struct SpriteTemplate gPetalDanceSmallFlowerSpriteTemplate = { .tileTag = ANIM_TAG_FLOWER, .paletteTag = ANIM_TAG_FLOWER, @@ -482,7 +482,7 @@ const struct SpriteTemplate gPetalDanceSmallFlowerSpriteTemplate = //gUnknown_83 .callback = AnimPetalDanceSmallFlower, }; -const union AnimCmd gRazorLeafParticleAnimCmds1[] = //gUnknown_83E2BC4 +const union AnimCmd gRazorLeafParticleAnimCmds1[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_FRAME(4, 5), @@ -497,7 +497,7 @@ const union AnimCmd gRazorLeafParticleAnimCmds1[] = //gUnknown_83E2BC4 ANIMCMD_JUMP(0), }; -const union AnimCmd gRazorLeafParticleAnimCmds2[] = //gUnknown_83E2BF0 +const union AnimCmd gRazorLeafParticleAnimCmds2[] = { ANIMCMD_FRAME(24, 5), ANIMCMD_FRAME(28, 5), @@ -505,13 +505,13 @@ const union AnimCmd gRazorLeafParticleAnimCmds2[] = //gUnknown_83E2BF0 ANIMCMD_END, }; -const union AnimCmd *const gRazorLeafParticleAnimTable[] = //gUnknown_83E2C00 +const union AnimCmd *const gRazorLeafParticleAnimTable[] = { gRazorLeafParticleAnimCmds1, gRazorLeafParticleAnimCmds2, }; -const struct SpriteTemplate gRazorLeafParticleSpriteTemplate = //gUnknown_83E2C08 +const struct SpriteTemplate gRazorLeafParticleSpriteTemplate = { .tileTag = ANIM_TAG_LEAF, .paletteTag = ANIM_TAG_LEAF, @@ -522,7 +522,7 @@ const struct SpriteTemplate gRazorLeafParticleSpriteTemplate = //gUnknown_83E2C0 .callback = AnimRazorLeafParticle, }; -const struct SpriteTemplate gTwisterLeafParticleSpriteTemplate = //gUnknown_83E2C20 +const struct SpriteTemplate gTwisterLeafParticleSpriteTemplate = { .tileTag = ANIM_TAG_LEAF, .paletteTag = ANIM_TAG_LEAF, @@ -533,7 +533,7 @@ const struct SpriteTemplate gTwisterLeafParticleSpriteTemplate = //gUnknown_83E2 .callback = AnimMoveTwisterParticle, }; -const union AnimCmd gRazorLeafCutterAnimCmds[] = //gUnknown_83E2C38 +const union AnimCmd gRazorLeafCutterAnimCmds[] = { ANIMCMD_FRAME(0, 3), ANIMCMD_FRAME(0, 3, .hFlip = TRUE), @@ -542,12 +542,12 @@ const union AnimCmd gRazorLeafCutterAnimCmds[] = //gUnknown_83E2C38 ANIMCMD_JUMP(0), }; -const union AnimCmd *const gRazorLeafCutterAnimTable[] = //gUnknown_83E2C4C +const union AnimCmd *const gRazorLeafCutterAnimTable[] = { gRazorLeafCutterAnimCmds, }; -const struct SpriteTemplate gRazorLeafCutterSpriteTemplate = //gUnknown_83E2C50 +const struct SpriteTemplate gRazorLeafCutterSpriteTemplate = { .tileTag = ANIM_TAG_RAZOR_LEAF, .paletteTag = ANIM_TAG_RAZOR_LEAF, @@ -558,18 +558,18 @@ const struct SpriteTemplate gRazorLeafCutterSpriteTemplate = //gUnknown_83E2C50 .callback = AnimTranslateLinearSingleSineWave, }; -const union AffineAnimCmd gSwiftStarAffineAnimCmds[] = //gUnknown_83E2C68 +const union AffineAnimCmd gSwiftStarAffineAnimCmds[] = { AFFINEANIMCMD_FRAME(0, 0, 0, 1), AFFINEANIMCMD_JUMP(0), }; -const union AffineAnimCmd *const gSwiftStarAffineAnimTable[] = //gUnknown_83E2C78 +const union AffineAnimCmd *const gSwiftStarAffineAnimTable[] = { gSwiftStarAffineAnimCmds, }; -const struct SpriteTemplate gSwiftStarSpriteTemplate = //gUnknown_83E2C7C +const struct SpriteTemplate gSwiftStarSpriteTemplate = { .tileTag = ANIM_TAG_YELLOW_STAR, .paletteTag = ANIM_TAG_YELLOW_STAR, @@ -580,7 +580,7 @@ const struct SpriteTemplate gSwiftStarSpriteTemplate = //gUnknown_83E2C7C .callback = AnimTranslateLinearSingleSineWave, }; -const union AnimCmd gConstrictBindingAnimCmds1[] = //gUnknown_83E2C94 +const union AnimCmd gConstrictBindingAnimCmds1[] = { ANIMCMD_FRAME(0, 4), ANIMCMD_FRAME(32, 4), @@ -589,7 +589,7 @@ const union AnimCmd gConstrictBindingAnimCmds1[] = //gUnknown_83E2C94 ANIMCMD_END, }; -const union AnimCmd gConstrictBindingAnimCmds2[] = //gUnknown_83E2CA8 +const union AnimCmd gConstrictBindingAnimCmds2[] = { ANIMCMD_FRAME(0, 4, .hFlip = TRUE), ANIMCMD_FRAME(32, 4, .hFlip = TRUE), @@ -598,13 +598,13 @@ const union AnimCmd gConstrictBindingAnimCmds2[] = //gUnknown_83E2CA8 ANIMCMD_END, }; -const union AnimCmd *const gConstrictBindingAnimTable[] = //gUnknown_83E2CBC +const union AnimCmd *const gConstrictBindingAnimTable[] = { gConstrictBindingAnimCmds1, gConstrictBindingAnimCmds2, }; -const union AffineAnimCmd gConstrictBindingAffineAnimCmds1[] = //gUnknown_83E2CC4 +const union AffineAnimCmd gConstrictBindingAffineAnimCmds1[] = { AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0), AFFINEANIMCMD_FRAME(-11, 0, 0, 6), @@ -612,7 +612,7 @@ const union AffineAnimCmd gConstrictBindingAffineAnimCmds1[] = //gUnknown_83E2C AFFINEANIMCMD_END, }; -const union AffineAnimCmd gConstrictBindingAffineAnimCmds2[] = //gUnknown_83E2CE4 +const union AffineAnimCmd gConstrictBindingAffineAnimCmds2[] = { AFFINEANIMCMD_FRAME(-0x100, 0x100, 0, 0), AFFINEANIMCMD_FRAME(11, 0, 0, 6), @@ -620,13 +620,13 @@ const union AffineAnimCmd gConstrictBindingAffineAnimCmds2[] = //gUnknown_83E2C AFFINEANIMCMD_END, }; -const union AffineAnimCmd *const gConstrictBindingAffineAnimTable[] = //gUnknown_83E2D04 +const union AffineAnimCmd *const gConstrictBindingAffineAnimTable[] = { gConstrictBindingAffineAnimCmds1, gConstrictBindingAffineAnimCmds2, }; -const struct SpriteTemplate gConstrictBindingSpriteTemplate = //gUnknown_83E2D0C +const struct SpriteTemplate gConstrictBindingSpriteTemplate = { .tileTag = ANIM_TAG_TENDRILS, .paletteTag = ANIM_TAG_TENDRILS, @@ -637,26 +637,26 @@ const struct SpriteTemplate gConstrictBindingSpriteTemplate = //gUnknown_83E2D0C .callback = AnimConstrictBinding, }; -const union AffineAnimCmd gMimicOrbAffineAnimCmds1[] = //gUnknown_83E2D24 +const union AffineAnimCmd gMimicOrbAffineAnimCmds1[] = { AFFINEANIMCMD_FRAME(0, 0, 0, 0), AFFINEANIMCMD_FRAME(48, 48, 0, 14), AFFINEANIMCMD_END, }; -const union AffineAnimCmd gMimicOrbAffineAnimCmds2[] = //gUnknown_83E2D3C +const union AffineAnimCmd gMimicOrbAffineAnimCmds2[] = { AFFINEANIMCMD_FRAME(-16, -16, 0, 1), AFFINEANIMCMD_JUMP(0), }; -const union AffineAnimCmd *const gMimicOrbAffineAnimTable[] = //gUnknown_83E2D4C +const union AffineAnimCmd *const gMimicOrbAffineAnimTable[] = { gMimicOrbAffineAnimCmds1, gMimicOrbAffineAnimCmds2, }; -const struct SpriteTemplate gMimicOrbSpriteTemplate = //gUnknown_83E2D54 +const struct SpriteTemplate gMimicOrbSpriteTemplate = { .tileTag = ANIM_TAG_ORBS, .paletteTag = ANIM_TAG_ORBS, @@ -667,7 +667,7 @@ const struct SpriteTemplate gMimicOrbSpriteTemplate = //gUnknown_83E2D54 .callback = AnimMimicOrb, }; -const union AnimCmd gIngrainRootAnimCmds1[] = //gUnknown_83E2D6C +const union AnimCmd gIngrainRootAnimCmds1[] = { ANIMCMD_FRAME(0, 7), ANIMCMD_FRAME(16, 7), @@ -676,7 +676,7 @@ const union AnimCmd gIngrainRootAnimCmds1[] = //gUnknown_83E2D6C ANIMCMD_END, }; -const union AnimCmd gIngrainRootAnimCmds2[] = //gUnknown_83E2D80 +const union AnimCmd gIngrainRootAnimCmds2[] = { ANIMCMD_FRAME(0, 7, .hFlip = TRUE), ANIMCMD_FRAME(16, 7, .hFlip = TRUE), @@ -685,7 +685,7 @@ const union AnimCmd gIngrainRootAnimCmds2[] = //gUnknown_83E2D80 ANIMCMD_END, }; -const union AnimCmd gIngrainRootAnimCmds3[] = //gUnknown_83E2D94 +const union AnimCmd gIngrainRootAnimCmds3[] = { ANIMCMD_FRAME(0, 7), ANIMCMD_FRAME(16, 7), @@ -693,7 +693,7 @@ const union AnimCmd gIngrainRootAnimCmds3[] = //gUnknown_83E2D94 ANIMCMD_END, }; -const union AnimCmd gIngrainRootAnimCmds4[] = //gUnknown_83E2DA4 +const union AnimCmd gIngrainRootAnimCmds4[] = { ANIMCMD_FRAME(0, 7, .hFlip = TRUE), ANIMCMD_FRAME(16, 7, .hFlip = TRUE), @@ -701,7 +701,7 @@ const union AnimCmd gIngrainRootAnimCmds4[] = //gUnknown_83E2DA4 ANIMCMD_END, }; -const union AnimCmd *const gIngrainRootAnimTable[] = //gUnknown_83E2DB4 +const union AnimCmd *const gIngrainRootAnimTable[] = { gIngrainRootAnimCmds1, gIngrainRootAnimCmds2, @@ -709,7 +709,7 @@ const union AnimCmd *const gIngrainRootAnimTable[] = //gUnknown_83E2DB4 gIngrainRootAnimCmds4, }; -const struct SpriteTemplate gIngrainRootSpriteTemplate = //gUnknown_83E2DC4 +const struct SpriteTemplate gIngrainRootSpriteTemplate = { .tileTag = ANIM_TAG_ROOTS, .paletteTag = ANIM_TAG_ROOTS, @@ -720,7 +720,7 @@ const struct SpriteTemplate gIngrainRootSpriteTemplate = //gUnknown_83E2DC4 .callback = AnimIngrainRoot, }; -const struct SpriteTemplate gFrenzyPlantRootSpriteTemplate = //gUnknown_83E2DDC +const struct SpriteTemplate gFrenzyPlantRootSpriteTemplate = { .tileTag = ANIM_TAG_ROOTS, .paletteTag = ANIM_TAG_ROOTS, @@ -731,19 +731,19 @@ const struct SpriteTemplate gFrenzyPlantRootSpriteTemplate = //gUnknown_83E2DDC .callback = AnimFrenzyPlantRoot, }; -const union AnimCmd gIngrainOrbAnimCmds[] = //gUnknown_83E2DF4 +const union AnimCmd gIngrainOrbAnimCmds[] = { ANIMCMD_FRAME(3, 3), ANIMCMD_FRAME(0, 5), ANIMCMD_JUMP(0), }; -const union AnimCmd *const gIngrainOrbAnimTable[] = //gUnknown_83E2E00 +const union AnimCmd *const gIngrainOrbAnimTable[] = { gIngrainOrbAnimCmds, }; -const struct SpriteTemplate gIngrainOrbSpriteTemplate = //gUnknown_83E2E04 +const struct SpriteTemplate gIngrainOrbSpriteTemplate = { .tileTag = ANIM_TAG_ORBS, .paletteTag = ANIM_TAG_ORBS, @@ -754,18 +754,18 @@ const struct SpriteTemplate gIngrainOrbSpriteTemplate = //gUnknown_83E2E04 .callback = AnimIngrainOrb, }; -const union AnimCmd gFallingBagAnimCmds[] = //gUnknown_83E2E1C +const union AnimCmd gFallingBagAnimCmds[] = { ANIMCMD_FRAME(0, 30), ANIMCMD_END, }; -const union AnimCmd *const gFallingBagAnimTable[] = //gUnknown_83E2E24 +const union AnimCmd *const gFallingBagAnimTable[] = { gFallingBagAnimCmds, }; -const union AffineAnimCmd gFallingBagAffineAnimCmds1[] = //gUnknown_83E2E28 +const union AffineAnimCmd gFallingBagAffineAnimCmds1[] = { AFFINEANIMCMD_FRAME(0, 0, -4, 10), AFFINEANIMCMD_FRAME(0, 0, 4, 20), @@ -773,7 +773,7 @@ const union AffineAnimCmd gFallingBagAffineAnimCmds1[] = //gUnknown_83E2E28 AFFINEANIMCMD_END, }; -const union AffineAnimCmd gFallingBagAffineAnimCmds2[] = //gUnknown_83E2E48 +const union AffineAnimCmd gFallingBagAffineAnimCmds2[] = { AFFINEANIMCMD_FRAME(0, 0, -1, 2), AFFINEANIMCMD_FRAME(0, 0, 1, 4), @@ -784,13 +784,13 @@ const union AffineAnimCmd gFallingBagAffineAnimCmds2[] = //gUnknown_83E2E48 AFFINEANIMCMD_END, }; -const union AffineAnimCmd *const gFallingBagAffineAnimTable[] = //gUnknown_83E2E80 +const union AffineAnimCmd *const gFallingBagAffineAnimTable[] = { gFallingBagAffineAnimCmds1, gFallingBagAffineAnimCmds2, }; -const struct SpriteTemplate gPresentSpriteTemplate = //gUnknown_83E2E88 +const struct SpriteTemplate gPresentSpriteTemplate = { .tileTag = ANIM_TAG_ITEM_BAG, .paletteTag = ANIM_TAG_ITEM_BAG, @@ -801,7 +801,7 @@ const struct SpriteTemplate gPresentSpriteTemplate = //gUnknown_83E2E88 .callback = AnimPresent, }; -const struct SpriteTemplate gKnockOffItemSpriteTemplate = //gUnknown_83E2EA0 +const struct SpriteTemplate gKnockOffItemSpriteTemplate = { .tileTag = ANIM_TAG_ITEM_BAG, .paletteTag = ANIM_TAG_ITEM_BAG, @@ -812,7 +812,7 @@ const struct SpriteTemplate gKnockOffItemSpriteTemplate = //gUnknown_83E2EA0 .callback = AnimKnockOffItem, }; -const union AnimCmd gPresentHealParticleAnimCmds[] = //gUnknown_83E2EB8 +const union AnimCmd gPresentHealParticleAnimCmds[] = { ANIMCMD_FRAME(0, 4), ANIMCMD_FRAME(4, 4), @@ -821,12 +821,12 @@ const union AnimCmd gPresentHealParticleAnimCmds[] = //gUnknown_83E2EB8 ANIMCMD_END, }; -const union AnimCmd *const gPresentHealParticleAnimTable[] = //gUnknown_83E2ECC +const union AnimCmd *const gPresentHealParticleAnimTable[] = { gPresentHealParticleAnimCmds, }; -const struct SpriteTemplate gPresentHealParticleSpriteTemplate = //gUnknown_83E2ED0 +const struct SpriteTemplate gPresentHealParticleSpriteTemplate = { .tileTag = ANIM_TAG_GREEN_SPARKLE, .paletteTag = ANIM_TAG_GREEN_SPARKLE, @@ -837,7 +837,7 @@ const struct SpriteTemplate gPresentHealParticleSpriteTemplate = //gUnknown_83E2 .callback = AnimPresentHealParticle, }; -const struct SpriteTemplate gItemStealSpriteTemplate = //gUnknown_83E2EE8 +const struct SpriteTemplate gItemStealSpriteTemplate = { .tileTag = ANIM_TAG_ITEM_BAG, .paletteTag = ANIM_TAG_ITEM_BAG, @@ -848,13 +848,13 @@ const struct SpriteTemplate gItemStealSpriteTemplate = //gUnknown_83E2EE8 .callback = AnimItemSteal, }; -const union AffineAnimCmd gTrickBagAffineAnimCmds1[] = //gUnknown_83E2F00 +const union AffineAnimCmd gTrickBagAffineAnimCmds1[] = { AFFINEANIMCMD_FRAME(0, 0, 0, 3), AFFINEANIMCMD_END, }; -const union AffineAnimCmd gTrickBagAffineAnimCmds2[] = //gUnknown_83E2F10 +const union AffineAnimCmd gTrickBagAffineAnimCmds2[] = { AFFINEANIMCMD_FRAME(0, -10, 0, 3), AFFINEANIMCMD_FRAME(0, -6, 0, 3), @@ -866,7 +866,7 @@ const union AffineAnimCmd gTrickBagAffineAnimCmds2[] = //gUnknown_83E2F10 AFFINEANIMCMD_END, }; -const union AffineAnimCmd *const gTrickBagAffineAnimTable[] = //gUnknown_83E2F50 +const union AffineAnimCmd *const gTrickBagAffineAnimTable[] = { gTrickBagAffineAnimCmds1, gTrickBagAffineAnimCmds2, @@ -874,7 +874,7 @@ const union AffineAnimCmd *const gTrickBagAffineAnimTable[] = //gUnknown_83E2F5 gFallingBagAffineAnimCmds2, }; -const struct SpriteTemplate gTrickBagSpriteTemplate = //gUnknown_83E2F60 +const struct SpriteTemplate gTrickBagSpriteTemplate = { .tileTag = ANIM_TAG_ITEM_BAG, .paletteTag = ANIM_TAG_ITEM_BAG, @@ -885,7 +885,7 @@ const struct SpriteTemplate gTrickBagSpriteTemplate = //gUnknown_83E2F60 .callback = AnimTrickBag, }; -const s8 gTrickBagCoordinates[][3] = //gUnknown_83E2F78 +const s8 gTrickBagCoordinates[][3] = { {5, 24, 1}, {0, 4, 0}, @@ -900,49 +900,49 @@ const s8 gTrickBagCoordinates[][3] = //gUnknown_83E2F78 {0, 0, 127}, }; -const union AnimCmd gLeafBladeAnimCmds1[] = //gUnknown_83E2F9C +const union AnimCmd gLeafBladeAnimCmds1[] = { ANIMCMD_FRAME(28, 1), ANIMCMD_END, }; -const union AnimCmd gLeafBladeAnimCmds2[] = //gUnknown_83E2FA4 +const union AnimCmd gLeafBladeAnimCmds2[] = { ANIMCMD_FRAME(32, 1), ANIMCMD_END, }; -const union AnimCmd gLeafBladeAnimCmds3[] = //gUnknown_83E2FAC +const union AnimCmd gLeafBladeAnimCmds3[] = { ANIMCMD_FRAME(20, 1), ANIMCMD_END, }; -const union AnimCmd gLeafBladeAnimCmds4[] = //gUnknown_83E2FB4 +const union AnimCmd gLeafBladeAnimCmds4[] = { ANIMCMD_FRAME(28, 1, .hFlip = TRUE), ANIMCMD_END, }; -const union AnimCmd gLeafBladeAnimCmds5[] = //gUnknown_83E2FBC +const union AnimCmd gLeafBladeAnimCmds5[] = { ANIMCMD_FRAME(16, 1), ANIMCMD_END, }; -const union AnimCmd gLeafBladeAnimCmds6[] = //gUnknown_83E2FC4 +const union AnimCmd gLeafBladeAnimCmds6[] = { ANIMCMD_FRAME(16, 1, .hFlip = TRUE), ANIMCMD_END, }; -const union AnimCmd gLeafBladeAnimCmds7[] = //gUnknown_83E2FCC +const union AnimCmd gLeafBladeAnimCmds7[] = { ANIMCMD_FRAME(28, 1), ANIMCMD_END, }; -const union AnimCmd *const gLeafBladeAnimTable[] = //gUnknown_83E2FD4 +const union AnimCmd *const gLeafBladeAnimTable[] = { gLeafBladeAnimCmds1, gLeafBladeAnimCmds2, @@ -953,7 +953,7 @@ const union AnimCmd *const gLeafBladeAnimTable[] = //gUnknown_83E2FD4 gLeafBladeAnimCmds7, }; -const struct SpriteTemplate gLeafBladeSpriteTemplate = //gUnknown_83E2FF0 +const struct SpriteTemplate gLeafBladeSpriteTemplate = { .tileTag = ANIM_TAG_LEAF, .paletteTag = ANIM_TAG_LEAF, @@ -964,19 +964,19 @@ const struct SpriteTemplate gLeafBladeSpriteTemplate = //gUnknown_83E2FF0 .callback = SpriteCallbackDummy, }; -const union AffineAnimCmd gAromatherapyBigFlowerAffineAnimCmds[] = //gUnknown_83E3008 +const union AffineAnimCmd gAromatherapyBigFlowerAffineAnimCmds[] = { AFFINEANIMCMD_FRAME(256, 256, 0, 0), AFFINEANIMCMD_FRAME(0, 0, 4, 1), AFFINEANIMCMD_JUMP(1), }; -const union AffineAnimCmd *const gAromatherapyBigFlowerAffineAnimTable[] = //gUnknown_83E3020 +const union AffineAnimCmd *const gAromatherapyBigFlowerAffineAnimTable[] = { gAromatherapyBigFlowerAffineAnimCmds, }; -const struct SpriteTemplate gAromatherapySmallFlowerSpriteTemplate = //gUnknown_83E3024 +const struct SpriteTemplate gAromatherapySmallFlowerSpriteTemplate = { .tileTag = ANIM_TAG_FLOWER, .paletteTag = ANIM_TAG_FLOWER, @@ -987,7 +987,7 @@ const struct SpriteTemplate gAromatherapySmallFlowerSpriteTemplate = //gUnknown_ .callback = AnimFlyingParticle, }; -const struct SpriteTemplate gAromatherapyBigFlowerSpriteTemplate = //gUnknown_83E303C +const struct SpriteTemplate gAromatherapyBigFlowerSpriteTemplate = { .tileTag = ANIM_TAG_FLOWER, .paletteTag = ANIM_TAG_FLOWER, @@ -998,43 +998,43 @@ const struct SpriteTemplate gAromatherapyBigFlowerSpriteTemplate = //gUnknown_83 .callback = AnimFlyingParticle, }; -const union AffineAnimCmd gSilverWindBigSparkAffineAnimCmds[] = //gUnknown_83E3054 +const union AffineAnimCmd gSilverWindBigSparkAffineAnimCmds[] = { AFFINEANIMCMD_FRAME(256, 256, 0, 0), AFFINEANIMCMD_FRAME(0, 0, -10, 1), AFFINEANIMCMD_JUMP(1), }; -const union AffineAnimCmd gSilverWindMediumSparkAffineAnimCmds[] = //gUnknown_83E306C +const union AffineAnimCmd gSilverWindMediumSparkAffineAnimCmds[] = { AFFINEANIMCMD_FRAME(192, 192, 0, 0), AFFINEANIMCMD_FRAME(0, 0, -12, 1), AFFINEANIMCMD_JUMP(1), }; -const union AffineAnimCmd gSilverWindSmallSparkAffineAnimCmds[] = //gUnknown_83E3084 +const union AffineAnimCmd gSilverWindSmallSparkAffineAnimCmds[] = { AFFINEANIMCMD_FRAME(143, 143, 0, 0), AFFINEANIMCMD_FRAME(0, 0, -15, 1), AFFINEANIMCMD_JUMP(1), }; -const union AffineAnimCmd *const gSilverWindBigSparkAffineAnimTable[] = //gUnknown_83E309C +const union AffineAnimCmd *const gSilverWindBigSparkAffineAnimTable[] = { gSilverWindBigSparkAffineAnimCmds, }; -const union AffineAnimCmd *const gSilverWindMediumSparkAffineAnimTable[] = //gUnknown_83E30A0 +const union AffineAnimCmd *const gSilverWindMediumSparkAffineAnimTable[] = { gSilverWindMediumSparkAffineAnimCmds, }; -const union AffineAnimCmd *const gSilverWindSmallSparkAffineAnimTable[] = //gUnknown_83E30A4 +const union AffineAnimCmd *const gSilverWindSmallSparkAffineAnimTable[] = { gSilverWindSmallSparkAffineAnimCmds, }; -const struct SpriteTemplate gSilverWindBigSparkSpriteTemplate = //gUnknown_83E30A8 +const struct SpriteTemplate gSilverWindBigSparkSpriteTemplate = { .tileTag = ANIM_TAG_SPARKLE_6, .paletteTag = ANIM_TAG_SPARKLE_6, @@ -1045,7 +1045,7 @@ const struct SpriteTemplate gSilverWindBigSparkSpriteTemplate = //gUnknown_83E30 .callback = AnimFlyingParticle, }; -const struct SpriteTemplate gSilverWindMediumSparkSpriteTemplate = //gUnknown_83E30C0 +const struct SpriteTemplate gSilverWindMediumSparkSpriteTemplate = { .tileTag = ANIM_TAG_SPARKLE_6, .paletteTag = ANIM_TAG_SPARKLE_6, @@ -1056,7 +1056,7 @@ const struct SpriteTemplate gSilverWindMediumSparkSpriteTemplate = //gUnknown_83 .callback = AnimFlyingParticle, }; -const struct SpriteTemplate gSilverWindSmallSparkSpriteTemplate = //gUnknown_83E30D8 +const struct SpriteTemplate gSilverWindSmallSparkSpriteTemplate = { .tileTag = ANIM_TAG_SPARKLE_6, .paletteTag = ANIM_TAG_SPARKLE_6, @@ -1067,7 +1067,7 @@ const struct SpriteTemplate gSilverWindSmallSparkSpriteTemplate = //gUnknown_83E .callback = AnimFlyingParticle, }; -const u16 gMagicalLeafBlendColors[] = //gUnknown_83E30F0 +const u16 gMagicalLeafBlendColors[] = { RGB(31, 0, 0), RGB(31, 19, 0), @@ -1078,7 +1078,7 @@ const u16 gMagicalLeafBlendColors[] = //gUnknown_83E30F0 RGB(22, 21, 31), }; -const struct SpriteTemplate gNeedleArmSpikeSpriteTemplate = //gUnknown_83E3100 +const struct SpriteTemplate gNeedleArmSpikeSpriteTemplate = { .tileTag = ANIM_TAG_GREEN_SPIKE, .paletteTag = ANIM_TAG_GREEN_SPIKE, @@ -1089,7 +1089,7 @@ const struct SpriteTemplate gNeedleArmSpikeSpriteTemplate = //gUnknown_83E3100 .callback = AnimNeedleArmSpike, }; -const union AnimCmd gWhipAnimCmds1[] = //gUnknown_83E3118 +const union AnimCmd gWhipAnimCmds1[] = { ANIMCMD_FRAME(64, 3), ANIMCMD_FRAME(80, 3), @@ -1098,7 +1098,7 @@ const union AnimCmd gWhipAnimCmds1[] = //gUnknown_83E3118 ANIMCMD_END, }; -const union AnimCmd gWhipAnimCmds2[] = //gUnknown_83E312C +const union AnimCmd gWhipAnimCmds2[] = { ANIMCMD_FRAME(64, 3, .hFlip = TRUE), ANIMCMD_FRAME(80, 3, .hFlip = TRUE), @@ -1107,13 +1107,13 @@ const union AnimCmd gWhipAnimCmds2[] = //gUnknown_83E312C ANIMCMD_END, }; -const union AnimCmd *const gWhipAnimTable[] = //gUnknown_83E3140 +const union AnimCmd *const gWhipAnimTable[] = { gWhipAnimCmds1, gWhipAnimCmds2, }; -const struct SpriteTemplate gSlamHitSpriteTemplate = //gUnknown_83E3148 +const struct SpriteTemplate gSlamHitSpriteTemplate = { .tileTag = ANIM_TAG_SLAM_HIT, .paletteTag = ANIM_TAG_SLAM_HIT, @@ -1124,7 +1124,7 @@ const struct SpriteTemplate gSlamHitSpriteTemplate = //gUnknown_83E3148 .callback = AnimWhipHit, }; -const struct SpriteTemplate gVineWhipSpriteTemplate = //gUnknown_83E3160 +const struct SpriteTemplate gVineWhipSpriteTemplate = { .tileTag = ANIM_TAG_WHIP_HIT, .paletteTag = ANIM_TAG_WHIP_HIT, @@ -1150,7 +1150,8 @@ const union AnimCmd *const gUnknown_83E3190[] = gUnknown_83E3178, }; -const struct SpriteTemplate gUnknown_83E3194 = // Unused +// Unused +const struct SpriteTemplate gUnknown_83E3194 = { .tileTag = ANIM_TAG_HIT, .paletteTag = ANIM_TAG_HIT, @@ -1161,7 +1162,8 @@ const struct SpriteTemplate gUnknown_83E3194 = // Unused .callback = sub_80A43F8, }; -const struct SpriteTemplate gUnknown_83E31AC = // Unused +// Unused +const struct SpriteTemplate gUnknown_83E31AC = { .tileTag = ANIM_TAG_HIT_2, .paletteTag = ANIM_TAG_HIT_2, @@ -1232,7 +1234,8 @@ const union AffineAnimCmd *const gUnknown_83E3244[] = gUnknown_83E3234, }; -const struct SpriteTemplate gUnknown_83E3264 = // Unused +// Unused +const struct SpriteTemplate gUnknown_83E3264 = { .tileTag = ANIM_TAG_HANDS_AND_FEET, .paletteTag = ANIM_TAG_HANDS_AND_FEET, @@ -1243,7 +1246,7 @@ const struct SpriteTemplate gUnknown_83E3264 = // Unused .callback = sub_80A4494, }; -const union AnimCmd gCuttingSliceAnimCmds[] = //gUnknown_83E327C +const union AnimCmd gCuttingSliceAnimCmds[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_FRAME(16, 5), @@ -1252,12 +1255,12 @@ const union AnimCmd gCuttingSliceAnimCmds[] = //gUnknown_83E327C ANIMCMD_END, }; -const union AnimCmd *const gCuttingSliceAnimTable[] = //gUnknown_83E3290 +const union AnimCmd *const gCuttingSliceAnimTable[] = { gCuttingSliceAnimCmds, }; -const struct SpriteTemplate gCuttingSliceSpriteTemplate = //gUnknown_83E3294 +const struct SpriteTemplate gCuttingSliceSpriteTemplate = { .tileTag = ANIM_TAG_CUT, .paletteTag = ANIM_TAG_CUT, @@ -1268,7 +1271,7 @@ const struct SpriteTemplate gCuttingSliceSpriteTemplate = //gUnknown_83E3294 .callback = AnimCuttingSlice, }; -const struct SpriteTemplate gAirCutterSliceSpriteTemplate = //gUnknown_83E32AC +const struct SpriteTemplate gAirCutterSliceSpriteTemplate = { .tileTag = ANIM_TAG_CUT, .paletteTag = ANIM_TAG_CUT, @@ -1353,7 +1356,8 @@ const union AnimCmd *const gUnknown_83E3314[] = gUnknown_83E330C, }; -const struct SpriteTemplate gUnknown_83E333C = // Unused +// Unused +const struct SpriteTemplate gUnknown_83E333C = { .tileTag = ANIM_TAG_MUSIC_NOTES, .paletteTag = ANIM_TAG_MUSIC_NOTES, @@ -1364,7 +1368,7 @@ const struct SpriteTemplate gUnknown_83E333C = // Unused .callback = sub_80A481C, }; -const struct SpriteTemplate gProtectWallSpriteTemplate = //gUnknown_83E3354 +const struct SpriteTemplate gProtectWallSpriteTemplate = { .tileTag = ANIM_TAG_PROTECT, .paletteTag = ANIM_TAG_PROTECT, @@ -1375,13 +1379,13 @@ const struct SpriteTemplate gProtectWallSpriteTemplate = //gUnknown_83E3354 .callback = AnimProtect, }; -const union AffineAnimCmd gMilkBottleAffineAnimCmds1[] = //gUnknown_83E336C +const union AffineAnimCmd gMilkBottleAffineAnimCmds1[] = { AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0), AFFINEANIMCMD_END, }; -const union AffineAnimCmd gMilkBottleAffineAnimCmds2[] =//gUnknown_83E337C +const union AffineAnimCmd gMilkBottleAffineAnimCmds2[] = { AFFINEANIMCMD_FRAME(0x0, 0x0, 2, 12), AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 6), @@ -1391,13 +1395,13 @@ const union AffineAnimCmd gMilkBottleAffineAnimCmds2[] =//gUnknown_83E337C AFFINEANIMCMD_JUMP(0), }; -const union AffineAnimCmd *const gMilkBottleAffineAnimTable[] =//gUnknown_83E33AC +const union AffineAnimCmd *const gMilkBottleAffineAnimTable[] = { gMilkBottleAffineAnimCmds1, gMilkBottleAffineAnimCmds2, }; -const struct SpriteTemplate gMilkBottleSpriteTemplate =//gUnknown_83E33B4 +const struct SpriteTemplate gMilkBottleSpriteTemplate = { .tileTag = ANIM_TAG_MILK_BOTTLE, .paletteTag = ANIM_TAG_MILK_BOTTLE, @@ -1408,7 +1412,7 @@ const struct SpriteTemplate gMilkBottleSpriteTemplate =//gUnknown_83E33B4 .callback = AnimMilkBottle, }; -const union AnimCmd gGrantingStarsAnimCmds[] =//gUnknown_83E33CC +const union AnimCmd gGrantingStarsAnimCmds[] = { ANIMCMD_FRAME(0, 7), ANIMCMD_FRAME(16, 7), @@ -1421,12 +1425,12 @@ const union AnimCmd gGrantingStarsAnimCmds[] =//gUnknown_83E33CC ANIMCMD_JUMP(0), }; -const union AnimCmd *const gGrantingStarsAnimTable[] =//gUnknown_83E33F0 +const union AnimCmd *const gGrantingStarsAnimTable[] = { gGrantingStarsAnimCmds, }; -const struct SpriteTemplate gGrantingStarsSpriteTemplate = //gUnknown_83E33F4 +const struct SpriteTemplate gGrantingStarsSpriteTemplate = { .tileTag = ANIM_TAG_SPARKLE_2, .paletteTag = ANIM_TAG_SPARKLE_2, @@ -1437,7 +1441,7 @@ const struct SpriteTemplate gGrantingStarsSpriteTemplate = //gUnknown_83E33F4 .callback = AnimGrantingStars, }; -const struct SpriteTemplate gSparklingStarsSpriteTemplate = //gUnknown_83E340C +const struct SpriteTemplate gSparklingStarsSpriteTemplate = { .tileTag = ANIM_TAG_SPARKLE_2, .paletteTag = ANIM_TAG_SPARKLE_2, @@ -1480,7 +1484,8 @@ const union AnimCmd *const gUnknown_83E346C[] = gUnknown_83E3448, }; -const struct SpriteTemplate gUnknown_83E3474 = // Unused +// Unused +const struct SpriteTemplate gUnknown_83E3474 = { .tileTag = ANIM_TAG_BUBBLE_BURST, .paletteTag = ANIM_TAG_BUBBLE_BURST, @@ -1491,13 +1496,13 @@ const struct SpriteTemplate gUnknown_83E3474 = // Unused .callback = sub_80A4E40, }; -const union AnimCmd gSleepLetterZAnimCmds[] =//gUnknown_83E348C +const union AnimCmd gSleepLetterZAnimCmds[] = { ANIMCMD_FRAME(0, 40), ANIMCMD_END, }; -const union AnimCmd *const gSleepLetterZAnimTable[] =//gUnknown_83E3494 +const union AnimCmd *const gSleepLetterZAnimTable[] = { gSleepLetterZAnimCmds, }; @@ -1530,13 +1535,13 @@ const union AffineAnimCmd gSleepLetterZAffineAnimCmds2_2[] = AFFINEANIMCMD_LOOP(10), }; -const union AffineAnimCmd *const gSleepLetterZAffineAnimTable[] =//gUnknown_83E34F8 +const union AffineAnimCmd *const gSleepLetterZAffineAnimTable[] = { gSleepLetterZAffineAnimCmds1, gSleepLetterZAffineAnimCmds2, }; -const struct SpriteTemplate gSleepLetterZSpriteTemplate = //gUnknown_83E3500 +const struct SpriteTemplate gSleepLetterZSpriteTemplate = { .tileTag = ANIM_TAG_LETTER_Z, .paletteTag = ANIM_TAG_LETTER_Z, @@ -1547,7 +1552,7 @@ const struct SpriteTemplate gSleepLetterZSpriteTemplate = //gUnknown_83E3500 .callback = AnimSleepLetterZ, }; -const struct SpriteTemplate gLockOnTargetSpriteTemplate = //gUnknown_83E3518 +const struct SpriteTemplate gLockOnTargetSpriteTemplate = { .tileTag = ANIM_TAG_LOCK_ON, .paletteTag = ANIM_TAG_LOCK_ON, @@ -1558,7 +1563,7 @@ const struct SpriteTemplate gLockOnTargetSpriteTemplate = //gUnknown_83E3518 .callback = AnimLockOnTarget, }; -const struct SpriteTemplate gLockOnMoveTargetSpriteTemplate = //gUnknown_83E3530 +const struct SpriteTemplate gLockOnMoveTargetSpriteTemplate = { .tileTag = ANIM_TAG_LOCK_ON, .paletteTag = ANIM_TAG_LOCK_ON, @@ -1577,7 +1582,7 @@ const s8 gInclineMonCoordTable[][2] = { 32, -32}, }; -const struct SpriteTemplate gBowMonSpriteTemplate = //gUnknown_83E3550 +const struct SpriteTemplate gBowMonSpriteTemplate = { .tileTag = 0, .paletteTag = 0, @@ -1588,7 +1593,8 @@ const struct SpriteTemplate gBowMonSpriteTemplate = //gUnknown_83E3550 .callback = AnimBowMon, }; -const struct SpriteTemplate gUnknown_83E3568 = // Unused +// Unused +const struct SpriteTemplate gUnknown_83E3568 = { .tileTag = 0, .paletteTag = 0, @@ -1599,7 +1605,7 @@ const struct SpriteTemplate gUnknown_83E3568 = // Unused .callback = sub_80A5590, }; -const union AnimCmd gSlashSliceAnimCmds1[] = //gUnknown_83E3580 +const union AnimCmd gSlashSliceAnimCmds1[] = { ANIMCMD_FRAME(0, 4), ANIMCMD_FRAME(16, 4), @@ -1620,7 +1626,7 @@ const union AnimCmd *const gSlashSliceAnimTable[] = gSlashSliceAnimCmds2, }; -const struct SpriteTemplate gSlashSliceSpriteTemplate = //gUnknown_83E35A4 +const struct SpriteTemplate gSlashSliceSpriteTemplate = { .tileTag = ANIM_TAG_SLASH, .paletteTag = ANIM_TAG_SLASH, @@ -1631,7 +1637,7 @@ const struct SpriteTemplate gSlashSliceSpriteTemplate = //gUnknown_83E35A4 .callback = AnimSlashSlice, }; -const struct SpriteTemplate gFalseSwipeSliceSpriteTemplate = //gUnknown_83E35BC +const struct SpriteTemplate gFalseSwipeSliceSpriteTemplate = { .tileTag = ANIM_TAG_SLASH_2, .paletteTag = ANIM_TAG_SLASH_2, @@ -1642,7 +1648,7 @@ const struct SpriteTemplate gFalseSwipeSliceSpriteTemplate = //gUnknown_83E35BC .callback = AnimFalseSwipeSlice, }; -const struct SpriteTemplate gFalseSwipePositionedSliceSpriteTemplate = //gUnknown_83E35D4 +const struct SpriteTemplate gFalseSwipePositionedSliceSpriteTemplate = { .tileTag = ANIM_TAG_SLASH_2, .paletteTag = ANIM_TAG_SLASH_2, @@ -1667,7 +1673,7 @@ const union AnimCmd *const gEndureEnergyAnimTable[] = gEndureEnergyAnimCmds, }; -const struct SpriteTemplate gEndureEnergySpriteTemplate = //gUnknown_83E3604 +const struct SpriteTemplate gEndureEnergySpriteTemplate = { .tileTag = ANIM_TAG_FOCUS_ENERGY, .paletteTag = ANIM_TAG_FOCUS_ENERGY, @@ -1702,7 +1708,7 @@ const union AnimCmd *const gSharpenSphereAnimTable[] = gSharpenSphereAnimCmds, }; -const struct SpriteTemplate gSharpenSphereSpriteTemplate = //gUnknown_83E365C +const struct SpriteTemplate gSharpenSphereSpriteTemplate = { .tileTag = ANIM_TAG_SPHERE_TO_CUBE, .paletteTag = ANIM_TAG_SPHERE_TO_CUBE, @@ -1713,7 +1719,7 @@ const struct SpriteTemplate gSharpenSphereSpriteTemplate = //gUnknown_83E365C .callback = AnimSharpenSphere, }; -const struct SpriteTemplate gOctazookaBallSpriteTemplate = //gUnknown_83E3674 +const struct SpriteTemplate gOctazookaBallSpriteTemplate = { .tileTag = ANIM_TAG_BLACK_BALL, .paletteTag = ANIM_TAG_BLACK_BALL, @@ -1739,7 +1745,7 @@ const union AnimCmd *const gOctazookaAnimTable[] = gOctazookaAnimCmds, }; -const struct SpriteTemplate gOctazookaSmokeSpriteTemplate = //gUnknown_83E36A8 +const struct SpriteTemplate gOctazookaSmokeSpriteTemplate = { .tileTag = ANIM_TAG_GRAY_SMOKE, .paletteTag = ANIM_TAG_GRAY_SMOKE, @@ -1775,7 +1781,7 @@ const union AffineAnimCmd *const gConversionAffineAnimTable[] = gConversionAffineAnimCmds, }; -const struct SpriteTemplate gConversionSpriteTemplate = //gUnknown_83E36EC +const struct SpriteTemplate gConversionSpriteTemplate = { .tileTag = ANIM_TAG_CONVERSION, .paletteTag = ANIM_TAG_CONVERSION, @@ -1800,7 +1806,7 @@ const union AnimCmd *const gConversion2AnimTable[] = gConversion2AnimCmds, }; -const struct SpriteTemplate gConversion2SpriteTemplate = //gUnknown_83E371C +const struct SpriteTemplate gConversion2SpriteTemplate = { .tileTag = ANIM_TAG_CONVERSION, .paletteTag = ANIM_TAG_CONVERSION, @@ -1811,7 +1817,7 @@ const struct SpriteTemplate gConversion2SpriteTemplate = //gUnknown_83E371C .callback = AnimConversion2, }; -const struct SpriteTemplate gMoonSpriteTemplate = //gUnknown_83E3734 +const struct SpriteTemplate gMoonSpriteTemplate = { .tileTag = ANIM_TAG_MOON, .paletteTag = ANIM_TAG_MOON, @@ -1836,7 +1842,7 @@ const union AnimCmd *const gMoonlightSparkleAnimTable[] = gMoonlightSparkleAnimCmds, }; -const struct SpriteTemplate gMoonlightSparkleSpriteTemplate = //gUnknown_83E3764 +const struct SpriteTemplate gMoonlightSparkleSpriteTemplate = { .tileTag = ANIM_TAG_GREEN_SPARKLE, .paletteTag = ANIM_TAG_GREEN_SPARKLE, @@ -1865,7 +1871,7 @@ const union AnimCmd *const gHealingBlueStarAnimTable[] = gHealingBlueStarAnimCmds, }; -const struct SpriteTemplate gHealingBlueStarSpriteTemplate = //gUnknown_83E37A4 +const struct SpriteTemplate gHealingBlueStarSpriteTemplate = { .tileTag = ANIM_TAG_BLUE_STAR, .paletteTag = ANIM_TAG_BLUE_STAR, @@ -1876,7 +1882,7 @@ const struct SpriteTemplate gHealingBlueStarSpriteTemplate = //gUnknown_83E37A4 .callback = AnimSpriteOnMonPos, }; -const struct SpriteTemplate gHornHitSpriteTemplate = //gUnknown_83E37BC +const struct SpriteTemplate gHornHitSpriteTemplate = { .tileTag = ANIM_TAG_HORN_HIT, .paletteTag = ANIM_TAG_HORN_HIT, @@ -1901,7 +1907,7 @@ const union AnimCmd *const gSuperFangAnimTable[] = gSuperFangAnimCmds, }; -const struct SpriteTemplate gSuperFangSpriteTemplate = //gUnknown_83E37EC +const struct SpriteTemplate gSuperFangSpriteTemplate = { .tileTag = ANIM_TAG_FANG_ATTACK, .paletteTag = ANIM_TAG_FANG_ATTACK, @@ -1960,7 +1966,7 @@ const union AnimCmd gWavyMusicNotesAnimCmds8[] = ANIMCMD_END, }; -const union AnimCmd *const gMusicNotesAnimTable[] = //gUnknown_83E3844 +const union AnimCmd *const gMusicNotesAnimTable[] = { gWavyMusicNotesAnimCmds1, gWavyMusicNotesAnimCmds2, @@ -1972,19 +1978,19 @@ const union AnimCmd *const gMusicNotesAnimTable[] = //gUnknown_83E3844 gWavyMusicNotesAnimCmds8, }; -const union AffineAnimCmd gWavyMusicNotesAffineAnimCmds[] = //gUnknown_83E3864 +const union AffineAnimCmd gWavyMusicNotesAffineAnimCmds[] = { AFFINEANIMCMD_FRAME(0xC, 0xC, 0, 16), AFFINEANIMCMD_FRAME(0xFFF4, 0xFFF4, 0, 16), AFFINEANIMCMD_JUMP(0), }; -const union AffineAnimCmd *const gMusicNotesAffineAnimTable[] = //gUnknown_83E387C +const union AffineAnimCmd *const gMusicNotesAffineAnimTable[] = { gWavyMusicNotesAffineAnimCmds, }; -const struct SpriteTemplate gWavyMusicNotesSpriteTemplate = //gUnknown_83E3880 +const struct SpriteTemplate gWavyMusicNotesSpriteTemplate = { .tileTag = ANIM_TAG_MUSIC_NOTES, .paletteTag = ANIM_TAG_MUSIC_NOTES, @@ -1995,7 +2001,7 @@ const struct SpriteTemplate gWavyMusicNotesSpriteTemplate = //gUnknown_83E3880 .callback = AnimWavyMusicNotes, }; -const u16 gParticlesColorBlendTable[][6] = //gUnknown_83E3898 +const u16 gParticlesColorBlendTable[][6] = { {ANIM_TAG_MUSIC_NOTES, RGB(31, 31, 31), RGB(31, 26, 28), RGB(31, 22, 26), RGB(31, 17, 24), RGB(31, 13, 22)}, {ANIM_TAG_BENT_SPOON, RGB(31, 31, 31), RGB(25, 31, 26), RGB(20, 31, 21), RGB(15, 31, 16), RGB(10, 31, 12)}, @@ -2003,7 +2009,7 @@ const u16 gParticlesColorBlendTable[][6] = //gUnknown_83E3898 {ANIM_TAG_LARGE_FRESH_EGG, RGB(31, 31, 31), RGB(26, 28, 31), RGB(21, 26, 31), RGB(16, 24, 31), RGB(12, 22, 31)}, }; -const struct SpriteTemplate gFastFlyingMusicNotesSpriteTemplate = //gUnknown_83E38C8 +const struct SpriteTemplate gFastFlyingMusicNotesSpriteTemplate = { .tileTag = ANIM_TAG_MUSIC_NOTES, .paletteTag = ANIM_TAG_MUSIC_NOTES, @@ -2014,7 +2020,7 @@ const struct SpriteTemplate gFastFlyingMusicNotesSpriteTemplate = //gUnknown_83E .callback = AnimFlyingMusicNotes, }; -const struct SpriteTemplate gBellyDrumHandSpriteTemplate = // gUnknown_83E38E0 +const struct SpriteTemplate gBellyDrumHandSpriteTemplate = { .tileTag = ANIM_TAG_PURPLE_HAND_OUTLINE, .paletteTag = ANIM_TAG_PURPLE_HAND_OUTLINE, @@ -2037,7 +2043,7 @@ const union AffineAnimCmd *const gSlowFlyingMusicNotesAffineAnimTable[] = gSlowFlyingMusicNotesAffineAnimCmds, }; -const struct SpriteTemplate gSlowFlyingMusicNotesSpriteTemplate = //gUnknown_83E3914 +const struct SpriteTemplate gSlowFlyingMusicNotesSpriteTemplate = { .tileTag = ANIM_TAG_MUSIC_NOTES, .paletteTag = ANIM_TAG_MUSIC_NOTES, @@ -2092,7 +2098,7 @@ const union AnimCmd *const gMetronomeThroughtBubbleAnimTable[] = gMetronomeThroughtBubbleAnimCmds4, }; -const struct SpriteTemplate gThoughtBubbleSpriteTemplate = //gUnknown_83E398C +const struct SpriteTemplate gThoughtBubbleSpriteTemplate = { .tileTag = ANIM_TAG_THOUGHT_BUBBLE, .paletteTag = ANIM_TAG_THOUGHT_BUBBLE, @@ -2138,7 +2144,7 @@ const union AffineAnimCmd *const gMetronomeFingerAffineAnimTable[] = gMetronomeFingerAffineAnimCmds2, }; -const struct SpriteTemplate gMetronomeFingerSpriteTemplate = //gUnknown_83E3A34 +const struct SpriteTemplate gMetronomeFingerSpriteTemplate = { .tileTag = ANIM_TAG_FINGER, .paletteTag = ANIM_TAG_FINGER, @@ -2149,7 +2155,7 @@ const struct SpriteTemplate gMetronomeFingerSpriteTemplate = //gUnknown_83E3A34 .callback = AnimMetronomeFinger, }; -const struct SpriteTemplate gFollowMeFingerSpriteTemplate = //gUnknown_83E3A4C +const struct SpriteTemplate gFollowMeFingerSpriteTemplate = { .tileTag = ANIM_TAG_FINGER, .paletteTag = ANIM_TAG_FINGER, @@ -2204,7 +2210,7 @@ const union AnimCmd *const gTauntFingerAnimTable[] = gTauntFingerAnimCmds4, }; -const struct SpriteTemplate gTauntFingerSpriteTemplate = //gUnknown_83E3AC4 +const struct SpriteTemplate gTauntFingerSpriteTemplate = { .tileTag = ANIM_TAG_FINGER_2, .paletteTag = ANIM_TAG_FINGER_2, @@ -2575,7 +2581,7 @@ void AnimPetalDanceSmallFlower(struct Sprite* sprite) sprite->data[1] = sprite->pos1.x; sprite->data[2] = sprite->pos1.x; sprite->data[3] = sprite->pos1.y; - sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimAttacker, 3) + gBattleAnimArgs[2]; + sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[2]; InitAnimLinearTranslation(sprite); sprite->data[5] = 0x40; sprite->callback = AnimPetalDanceSmallFlowerStep; @@ -2735,7 +2741,7 @@ static void AnimTranslateLinearSingleSineWaveStep(struct Sprite* sprite) // arg 4: speedup frame (particles move faster at the end of the animation) void AnimMoveTwisterParticle(struct Sprite* sprite) { - if (!IsContest() && IsDoubleBattle() == TRUE) + if (!IsContest() && IsDoubleBattle() == TRUE) SetAverageBattlerPositions(gBattleAnimTarget, 1, &sprite->pos1.x, &sprite->pos1.y); sprite->pos1.y += 32; @@ -2806,6 +2812,7 @@ static void AnimConstrictBindingStep1(struct Sprite* sprite) static void AnimConstrictBindingStep2(struct Sprite* sprite) { u8 spriteId = GetAnimBattlerSpriteId(ANIM_TARGET); + if (!sprite->data[2]) sprite->data[0] += 11; else @@ -2830,6 +2837,7 @@ static void AnimConstrictBindingStep2(struct Sprite* sprite) void sub_80A2F0C(u8 taskId) { u8 spriteId = GetAnimBattlerSpriteId(ANIM_TARGET); + if (gSprites[spriteId].invisible) { DestroyAnimVisualTask(taskId); @@ -2847,6 +2855,7 @@ void sub_80A2F0C(u8 taskId) static void AnimTask_DuplicateAndShrinkToPosStep1(u8 taskId) { u8 spriteId = GetAnimBattlerSpriteId(ANIM_TARGET); + gTasks[taskId].data[10] += gTasks[taskId].data[0]; gSprites[spriteId].pos2.x = gTasks[taskId].data[10] >> 8; if (GetBattlerSide(gBattleAnimTarget) != B_SIDE_PLAYER) @@ -2871,7 +2880,7 @@ static void AnimTask_DuplicateAndShrinkToPosStep2(u8 taskId) u8 spriteId = GetAnimBattlerSpriteId(ANIM_TARGET); ResetSpriteRotScale(spriteId); gSprites[spriteId].pos2.y = gSprites[spriteId].pos2.x = 0; - gTasks[taskId].data[0]++; + gTasks[taskId].data[0]++; return; } } @@ -2948,7 +2957,6 @@ void AnimIngrainRoot(struct Sprite* sprite) // arg 3: sprite subpriority offset // arg 4: sprite anum num // arg 5: duration -//sub_80A31EC void AnimFrenzyPlantRoot(struct Sprite *sprite) { s16 attackerX = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); @@ -2991,8 +2999,8 @@ void AnimIngrainOrb(struct Sprite* sprite) { if (!sprite->data[0]) { - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2) + gBattleAnimArgs[0]; - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1) + gBattleAnimArgs[1]; + sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2) + gBattleAnimArgs[0]; + sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y) + gBattleAnimArgs[1]; sprite->data[1] = gBattleAnimArgs[2]; sprite->data[2] = gBattleAnimArgs[3]; sprite->data[3] = gBattleAnimArgs[4]; @@ -3078,6 +3086,7 @@ void AnimPresent(struct Sprite* sprite) { s16 targetX; s16 targetY; + InitSpritePosToAnimAttacker(sprite, FALSE); targetX = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X); targetY = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y); @@ -3103,6 +3112,7 @@ void AnimPresent(struct Sprite* sprite) static void sub_80A3590(struct Sprite* sprite) { int zero; + sprite->data[0] += ((sprite->data[3] * 128) / sprite->data[4]); zero = 0; if (sprite->data[0] > 0x7F) @@ -3123,6 +3133,7 @@ static void sub_80A3590(struct Sprite* sprite) void AnimKnockOffItem(struct Sprite* sprite) { s16 targetY = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y); + if (GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER) { sprite->data[6] = 0; @@ -3169,6 +3180,7 @@ void AnimItemSteal(struct Sprite* sprite) { s16 attackerX; s16 attackerY; + InitSpritePosToAnimTarget(sprite, FALSE); attackerX = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X); attackerY = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y); @@ -3194,6 +3206,7 @@ void AnimItemSteal(struct Sprite* sprite) static void AnimItemStealStep3(struct Sprite* sprite) { int zero; + sprite->data[0] += ((sprite->data[3] * 128) / sprite->data[4]); zero = 0; if (sprite->data[0] > 127) @@ -3329,8 +3342,8 @@ void AnimTask_LeafBlade(u8 taskId) struct Task *task = &gTasks[taskId]; task->data[4] = GetBattlerSpriteSubpriority(gBattleAnimTarget) - 1; - task->data[6] = GetBattlerSpriteCoord(gBattleAnimTarget, 2); - task->data[7] = GetBattlerSpriteCoord(gBattleAnimTarget, 3); + task->data[6] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); + task->data[7] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); task->data[10] = GetBattlerSpriteCoordAttr(gBattleAnimTarget, BATTLER_COORD_ATTR_WIDTH); task->data[11] = GetBattlerSpriteCoordAttr(gBattleAnimTarget, BATTLER_COORD_ATTR_HEIGHT); task->data[5] = (GetBattlerSide(gBattleAnimTarget) == B_SIDE_OPPONENT) ? 1 : -1; @@ -3355,6 +3368,7 @@ static void AnimTask_LeafBladeStep(u8 taskId) struct Task* task = &gTasks[taskId]; struct Sprite* sprite = &gSprites[task->data[2]]; int a = task->data[0]; + switch (a) { case 4: @@ -3538,6 +3552,7 @@ static void AnimTask_LeafBladeStep(u8 taskId) static s16 LeafBladeGetPosFactor(struct Sprite* sprite) { s16 var = 8; + if (sprite->data[4] < sprite->pos1.y) var = -var; @@ -3589,6 +3604,7 @@ static void AnimTask_LeafBladeStep2_Callback(struct Sprite* sprite) void AnimFlyingParticle(struct Sprite* sprite) { u8 battler; + if (!gBattleAnimArgs[6]) battler = gBattleAnimAttacker; else @@ -3621,11 +3637,11 @@ void AnimFlyingParticle(struct Sprite* sprite) sprite->oam.priority = GetBattlerSpriteBGPriority(battler) + 1; break; case 2: - sprite->pos1.y = GetBattlerSpriteCoord(battler, 3) + gBattleAnimArgs[0]; + sprite->pos1.y = GetBattlerSpriteCoord(battler, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[0]; sprite->oam.priority = GetBattlerSpriteBGPriority(battler); break; case 3: - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, 3) + gBattleAnimArgs[0]; + sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[0]; GetAnimBattlerSpriteId(ANIM_TARGET); sprite->oam.priority = GetBattlerSpriteBGPriority(battler) + 1; break; @@ -3637,6 +3653,7 @@ void AnimFlyingParticle(struct Sprite* sprite) static void AnimFlyingParticleStep(struct Sprite* sprite) { int a = sprite->data[7]; + sprite->data[7]++; sprite->pos2.y = (sprite->data[1] * gSineTable[sprite->data[0]]) >> 8; sprite->pos2.x = sprite->data[2] * a; @@ -3658,6 +3675,7 @@ static void AnimFlyingParticleStep(struct Sprite* sprite) void sub_80A41C4(u8 taskId) { struct Task* task = &gTasks[taskId]; + switch (task->data[0]) { case 0: @@ -3701,13 +3719,13 @@ void AnimNeedleArmSpike(struct Sprite* sprite) { if (gBattleAnimArgs[0] == 0) { - a = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); - b = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); + a = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); + b = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); } else { - a = GetBattlerSpriteCoord(gBattleAnimTarget, 2); - b = GetBattlerSpriteCoord(gBattleAnimTarget, 3); + a = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); + b = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); } sprite->data[0] = gBattleAnimArgs[4]; @@ -3810,8 +3828,8 @@ void sub_80A4494(struct Sprite* sprite) // arg 2: slice direction; 0 = right-to-left, 1 = left-to-right void AnimCuttingSlice(struct Sprite* sprite) { - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, 0); - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, 1); + sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X); + sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y); if (GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER) sprite->pos1.y += 8; @@ -3838,15 +3856,16 @@ void AnimAirCutterSlice(struct Sprite* sprite) { u8 a; u8 b; + switch (gBattleAnimArgs[3]) { case 1: - a = GetBattlerSpriteCoord(BATTLE_PARTNER(gBattleAnimTarget), 0); - b = GetBattlerSpriteCoord(BATTLE_PARTNER(gBattleAnimTarget), 1); + a = GetBattlerSpriteCoord(BATTLE_PARTNER(gBattleAnimTarget), BATTLER_COORD_X); + b = GetBattlerSpriteCoord(BATTLE_PARTNER(gBattleAnimTarget), BATTLER_COORD_Y); break; case 2: - a = GetBattlerSpriteCoord(gBattleAnimTarget, 0); - b = GetBattlerSpriteCoord(gBattleAnimTarget, 1); + a = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X); + b = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y); if (IsBattlerSpriteVisible(BATTLE_PARTNER(gBattleAnimTarget))) { a = (GetBattlerSpriteCoord(BATTLE_PARTNER(gBattleAnimTarget), 0) + a) / 2; @@ -3855,8 +3874,8 @@ void AnimAirCutterSlice(struct Sprite* sprite) break; case 0: default: - a = GetBattlerSpriteCoord(gBattleAnimTarget, 0); - b = GetBattlerSpriteCoord(gBattleAnimTarget, 1); + a = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X); + b = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y); break; } @@ -3976,8 +3995,8 @@ void AnimProtect(struct Sprite* sprite) if (IsContest()) gBattleAnimArgs[1] += 8; - sprite->pos1.x = GetBattlerSpriteCoord2(gBattleAnimAttacker, 0) + gBattleAnimArgs[0]; - sprite->pos1.y = GetBattlerSpriteCoord2(gBattleAnimAttacker, 1) + gBattleAnimArgs[1]; + sprite->pos1.x = GetBattlerSpriteCoord2(gBattleAnimAttacker, BATTLER_COORD_X) + gBattleAnimArgs[0]; + sprite->pos1.y = GetBattlerSpriteCoord2(gBattleAnimAttacker, BATTLER_COORD_Y) + gBattleAnimArgs[1]; if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER || IsContest()) sprite->oam.priority = GetBattlerSpriteBGPriority(gBattleAnimAttacker) + 1; else @@ -3995,6 +4014,7 @@ static void AnimProtectStep(struct Sprite *sprite) { int a; int i; + sprite->data[5] += 96; sprite->pos2.x = -(sprite->data[5] >> 8); if (++sprite->data[1] > 1) @@ -4036,8 +4056,8 @@ static void AnimProtectStep(struct Sprite *sprite) void AnimMilkBottle(struct Sprite* sprite) { - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, 2); - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, 3) + 0xFFE8; + sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); + sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) + 0xFFE8; sprite->data[0] = 0; sprite->data[1] = 0; sprite->data[2] = 0; @@ -4161,6 +4181,7 @@ void AnimGrantingStars(struct Sprite* sprite) void AnimSparkingStars(struct Sprite* sprite) { u8 battler; + if (!gBattleAnimArgs[2]) battler = gBattleAnimAttacker; else @@ -4176,13 +4197,13 @@ void AnimSparkingStars(struct Sprite* sprite) { if (!gBattleAnimArgs[6]) { - sprite->pos1.x = GetBattlerSpriteCoord(battler, 0); - sprite->pos1.y = GetBattlerSpriteCoord(battler, 1) + gBattleAnimArgs[1]; + sprite->pos1.x = GetBattlerSpriteCoord(battler, BATTLER_COORD_X); + sprite->pos1.y = GetBattlerSpriteCoord(battler, BATTLER_COORD_Y) + gBattleAnimArgs[1]; } else { - sprite->pos1.x = GetBattlerSpriteCoord(battler, 2); - sprite->pos1.y = GetBattlerSpriteCoord(battler, 3) + gBattleAnimArgs[1]; + sprite->pos1.x = GetBattlerSpriteCoord(battler, BATTLER_COORD_X_2); + sprite->pos1.y = GetBattlerSpriteCoord(battler, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[1]; } SetAnimSpriteInitialXOffset(sprite, gBattleAnimArgs[0]); @@ -4310,6 +4331,7 @@ static void AnimLockOnTargetStep3(struct Sprite* sprite) { s16 a; s16 b; + if (sprite->oam.affineParam == 0) { sprite->data[0] = 3; @@ -4345,8 +4367,8 @@ static void AnimLockOnTargetStep3(struct Sprite* sprite) sprite->pos2.y = 0; sprite->pos2.x = 0; sprite->data[0] = 6; - sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2) + a; - sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3) + b; + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) + a; + sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) + b; sprite->callback = StartAnimLinearTranslation; StoreSpriteCallbackInData6(sprite, AnimLockOnTargetStep5); } @@ -4621,6 +4643,7 @@ void AnimTask_SkullBashPosition(u8 taskId) static void AnimTask_SkullBashPositionSet(u8 taskId) { struct Task *task = &gTasks[taskId]; + switch (task->data[2]) { case 0: @@ -4712,6 +4735,7 @@ static void AnimTask_SkullBashPositionSet(u8 taskId) static void AnimTask_SkullBashPositionReset(u8 taskId) { struct Task* task = &gTasks[taskId]; + if (task->data[3]) { task->data[4] -= task->data[5]; @@ -4730,13 +4754,13 @@ void AnimSlashSlice(struct Sprite* sprite) { if (gBattleAnimArgs[0] == 0) { - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2) + gBattleAnimArgs[1]; - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3) + gBattleAnimArgs[2]; + sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2) + gBattleAnimArgs[1]; + sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[2]; } else { - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, 2) + gBattleAnimArgs[1]; - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, 3) + gBattleAnimArgs[2]; + sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) + gBattleAnimArgs[1]; + sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[2]; } sprite->data[0] = 0; @@ -4747,16 +4771,16 @@ void AnimSlashSlice(struct Sprite* sprite) void AnimFalseSwipeSlice(struct Sprite* sprite) { - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, 2) + 0xFFD0; - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, 3); + sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) + 0xFFD0; + sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); StoreSpriteCallbackInData6(sprite, AnimFalseSwipeSliceStep1); sprite->callback = RunStoredCallbackWhenAnimEnds; } void AnimFalseSwipePositionedSlice(struct Sprite* sprite) { - sprite->pos1.x = sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, 2) + 0xFFD0 + gBattleAnimArgs[0]; - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, 3); + sprite->pos1.x = sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) + 0xFFD0 + gBattleAnimArgs[0]; + sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); StartSpriteAnim(sprite, 1); sprite->data[0] = 0; sprite->data[1] = 0; @@ -4797,13 +4821,13 @@ void AnimEndureEnergy(struct Sprite* sprite) { if (gBattleAnimArgs[0] == 0) { - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 0) + gBattleAnimArgs[1]; - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1) + gBattleAnimArgs[2]; + sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X) + gBattleAnimArgs[1]; + sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y) + gBattleAnimArgs[2]; } else { - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, 0) + gBattleAnimArgs[1]; - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, 1) + gBattleAnimArgs[2]; + sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X) + gBattleAnimArgs[1]; + sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y) + gBattleAnimArgs[2]; } sprite->data[0] = 0; @@ -4826,8 +4850,8 @@ static void AnimEndureEnergyStep(struct Sprite* sprite) void AnimSharpenSphere(struct Sprite* sprite) { - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3) - 12; + sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); + sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET) - 12; sprite->data[0] = 0; sprite->data[1] = 2; sprite->data[2] = 0; @@ -4865,8 +4889,8 @@ void AnimConversion(struct Sprite* sprite) { if (sprite->data[0] == 0) { - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 0) + gBattleAnimArgs[0]; - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1) + gBattleAnimArgs[1]; + sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X) + gBattleAnimArgs[0]; + sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y) + gBattleAnimArgs[1]; if (IsContest()) sprite->pos1.y += 10; @@ -4919,8 +4943,8 @@ static void AnimConversion2Step(struct Sprite* sprite) { sprite->animPaused = 0; sprite->data[0] = 30; - sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); - sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); + sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); sprite->callback = StartAnimLinearTranslation; StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); } @@ -4941,6 +4965,7 @@ void AnimTask_Conversion2AlphaBlend(u8 taskId) void sub_80A5E34(u8 taskId) { u8 i; + for (i = 0; i < gBattlersCount; i++) { if (gBattleAnimArgs[0] == 1 && GetBattlerSide(i) == B_SIDE_PLAYER) @@ -4956,6 +4981,7 @@ void sub_80A5E34(u8 taskId) void sub_80A5EA8(u8 taskId) { u8 i; + for (i = 0; i < gBattlersCount; i++) SetHealthboxSpriteVisible(gHealthboxSpriteIds[i]); @@ -4989,7 +5015,7 @@ static void AnimMoonStep(struct Sprite* sprite) void AnimMoonlightSparkle(struct Sprite* sprite) { - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2) + gBattleAnimArgs[0]; + sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2) + gBattleAnimArgs[0]; sprite->pos1.y = gBattleAnimArgs[1]; sprite->data[0] = 0; sprite->data[1] = 0; @@ -5048,6 +5074,7 @@ void AnimTask_FadeScreenBlue(u8 taskId) void AnimTask_FadeScreenBlueStep(u8 taskId) { struct Task* task = &gTasks[taskId]; + switch (task->data[0]) { case 0: @@ -5133,8 +5160,8 @@ void AnimHornHit(struct Sprite* sprite) sprite->data[0] = 0; sprite->data[1] = gBattleAnimArgs[2]; - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, 2) + gBattleAnimArgs[0]; - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, 3) + gBattleAnimArgs[1]; + sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) + gBattleAnimArgs[0]; + sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[1]; sprite->data[6] = sprite->pos1.x; sprite->data[7] = sprite->pos1.y; if (IsContest()) @@ -5193,6 +5220,7 @@ void AnimTask_DoubleTeam(u8 taskId) u16 r3; u16 r4; struct Task* task = &gTasks[taskId]; + task->data[0] = GetAnimBattlerSpriteId(ANIM_ATTACKER); task->data[1] = AllocSpritePalette(ANIM_TAG_BENT_SPOON); r3 = (task->data[1] * 16) + 0x100; @@ -5224,6 +5252,7 @@ void AnimTask_DoubleTeam(u8 taskId) static void AnimTask_DoubleTeamStep(u8 taskId) { struct Task* task = &gTasks[taskId]; + if (!task->data[3]) { if (GetBattlerSpriteBGPriorityRank(gBattleAnimAttacker) == 1) @@ -5295,6 +5324,7 @@ void AnimTask_MusicNotesRainbowBlend(u8 taskId) void AnimTask_MusicNotesClearRainbowBlend(u8 taskId) { u16 i; + for (i = 1; i < ARRAY_COUNT(gParticlesColorBlendTable); i++) FreeSpritePaletteByTag(gParticlesColorBlendTable[i][0]); @@ -5306,6 +5336,7 @@ void AnimWavyMusicNotes(struct Sprite* sprite) u8 index; u8 a; u8 b; + SetSpriteCoordsToAnimAttackerCoords(sprite); StartSpriteAnim(sprite, gBattleAnimArgs[0]); if ((index = IndexOfSpritePaletteTag(gParticlesColorBlendTable[gBattleAnimArgs[1]][0])) != 0xFF) @@ -5321,8 +5352,8 @@ void AnimWavyMusicNotes(struct Sprite* sprite) } else { - a = GetBattlerSpriteCoord(gBattleAnimTarget, 2); - b = GetBattlerSpriteCoord(gBattleAnimTarget, 3); + a = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); + b = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); } sprite->data[4] = sprite->pos1.x << 4; @@ -5335,6 +5366,7 @@ static void AnimWavyMusicNotesGetNextPos(s16 a, s16 b, s16* c, s16* d, s8 e) { int f; int g; + if (a < 0) e = -e; @@ -5385,8 +5417,8 @@ void AnimFlyingMusicNotes(struct Sprite* sprite) if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_OPPONENT) gBattleAnimArgs[1] *= -1; - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2) + gBattleAnimArgs[1]; - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3) + gBattleAnimArgs[2]; + sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2) + gBattleAnimArgs[1]; + sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[2]; StartSpriteAnim(sprite, gBattleAnimArgs[0]); sprite->data[2] = 0; sprite->data[3] = 0; @@ -5419,6 +5451,7 @@ static void AnimFlyingMusicNotesStep(struct Sprite* sprite) void AnimBellyDrumHand(struct Sprite* sprite) { s16 a; + if (gBattleAnimArgs[0] == 1) { sprite->oam.matrixNum = ST_OAM_HFLIP; @@ -5429,8 +5462,8 @@ void AnimBellyDrumHand(struct Sprite* sprite) a = -16; } - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2) + a; - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3) + 8; + sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2) + a; + sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET) + 8; sprite->data[0] = 8; sprite->callback = WaitAnimForDuration; StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); @@ -5440,6 +5473,7 @@ void AnimSlowFlyingMusicNotes(struct Sprite* sprite) { s16 xDiff; u8 index; + SetSpriteCoordsToAnimAttackerCoords(sprite); sprite->pos1.y += 8; StartSpriteAnim(sprite, gBattleAnimArgs[1]); @@ -5463,6 +5497,7 @@ static void AnimSlowFlyingMusicNotesStep(struct Sprite* sprite) if (AnimTranslateLinear(sprite) == 0) { s16 xDiff; + xDiff = Sin(sprite->data[5], 8); if (sprite->pos2.x < 0) xDiff = -xDiff; @@ -5484,13 +5519,14 @@ void SetSpriteNextToMonHead(u8 battler, struct Sprite* sprite) else sprite->pos1.x = GetBattlerSpriteCoordAttr(battler, BATTLER_COORD_ATTR_LEFT) - 8; - sprite->pos1.y = GetBattlerSpriteCoord(battler, 3) - (s16)GetBattlerSpriteCoordAttr(battler, BATTLER_COORD_ATTR_HEIGHT) / 4; + sprite->pos1.y = GetBattlerSpriteCoord(battler, BATTLER_COORD_Y_PIC_OFFSET) - (s16)GetBattlerSpriteCoordAttr(battler, BATTLER_COORD_ATTR_HEIGHT) / 4; } void AnimThoughtBubble(struct Sprite* sprite) { u8 a; u8 battler; + if (gBattleAnimArgs[0] == 0) battler = gBattleAnimAttacker; else @@ -5518,6 +5554,7 @@ static void AnimThoughtBubbleStep(struct Sprite* sprite) void AnimMetronomeFinger(struct Sprite* sprite) { u8 battler; + if (gBattleAnimArgs[0] == 0) battler = gBattleAnimAttacker; else @@ -5542,12 +5579,13 @@ static void AnimMetronomeFingerStep(struct Sprite* sprite) void AnimFollowMeFinger(struct Sprite* sprite) { u8 battler; + if (gBattleAnimArgs[0] == 0) battler = gBattleAnimAttacker; else battler = gBattleAnimTarget; - sprite->pos1.x = GetBattlerSpriteCoord(battler, 0); + sprite->pos1.x = GetBattlerSpriteCoord(battler, BATTLER_COORD_X); sprite->pos1.y = GetBattlerSpriteCoordAttr(battler, BATTLER_COORD_ATTR_TOP); if (sprite->pos1.y <= 9) sprite->pos1.y = 10; @@ -5600,6 +5638,7 @@ static void AnimFollowMeFingerStep2(struct Sprite* sprite) void AnimTauntFinger(struct Sprite* sprite) { u8 battler; + if (gBattleAnimArgs[0] == 0) battler = gBattleAnimAttacker; else diff --git a/src/battle_anim_effects_2.c b/src/battle_anim_effects_2.c index 1fe43b78c..b58a88799 100644 --- a/src/battle_anim_effects_2.c +++ b/src/battle_anim_effects_2.c @@ -105,7 +105,10 @@ static void AnimPerishSongMusicNote_Step1(struct Sprite *); static void AnimPerishSongMusicNote_Step2(struct Sprite *); // Data -const struct SpriteTemplate gUnknown_83E3ADC = // Unused +extern const union AffineAnimCmd *const gUnknown_83E7910[]; +extern const union AnimCmd *const gMusicNotesAnimTable[]; +// Unused +const struct SpriteTemplate gUnknown_83E3ADC = { .tileTag = ANIM_TAG_FINGER, .paletteTag = ANIM_TAG_FINGER, @@ -127,7 +130,8 @@ const union AnimCmd *const gUnknown_83E3AFC[] = gUnknown_83E3AF4, }; -const struct SpriteTemplate gUnknown_83E3B00 = // Unused +// Unused +const struct SpriteTemplate gUnknown_83E3B00 = { .tileTag = ANIM_TAG_MUSIC_NOTES, .paletteTag = ANIM_TAG_MUSIC_NOTES, @@ -138,7 +142,8 @@ const struct SpriteTemplate gUnknown_83E3B00 = // Unused .callback = sub_80A6E98, }; -const struct SpriteTemplate gUnknown_83E3B18 = // Unused +// Unused +const struct SpriteTemplate gUnknown_83E3B18 = { .tileTag = 0, .paletteTag = 0, @@ -149,8 +154,8 @@ const struct SpriteTemplate gUnknown_83E3B18 = // Unused .callback = sub_80A6F8C, }; -extern const union AffineAnimCmd *const gUnknown_83E7910[]; -const struct SpriteTemplate gUnknown_83E3B30 = // Unused +// Unused +const struct SpriteTemplate gUnknown_83E3B30 = { .tileTag = ANIM_TAG_CLAMP, .paletteTag = ANIM_TAG_CLAMP, @@ -187,7 +192,8 @@ const union AffineAnimCmd *const gUnknown_83E3B78[] = gUnknown_83E3B60, }; -const struct SpriteTemplate gUnknown_83E3B7C = // Unused +// Unused +const struct SpriteTemplate gUnknown_83E3B7C = { .tileTag = ANIM_TAG_EXPLOSION_6, .paletteTag = ANIM_TAG_EXPLOSION_6, @@ -216,7 +222,7 @@ const union AnimCmd *const gKinesisZapEnergyAnimTable[] = gKinesisZapEnergyAnimCmds, }; -const struct SpriteTemplate gKinesisZapEnergySpriteTemplate = //gUnknown_83E3BBC +const struct SpriteTemplate gKinesisZapEnergySpriteTemplate = { .tileTag = ANIM_TAG_ALERT, .paletteTag = ANIM_TAG_ALERT, @@ -240,7 +246,7 @@ const union AffineAnimCmd *const gSwordsDanceBladeAffineAnimTable[] = gSwordsDanceBladeAffineAnimCmds, }; -const struct SpriteTemplate gSwordsDanceBladeSpriteTemplate = //gUnknown_83E3BF8 +const struct SpriteTemplate gSwordsDanceBladeSpriteTemplate = { .tileTag = ANIM_TAG_SWORD, .paletteTag = ANIM_TAG_SWORD, @@ -251,7 +257,7 @@ const struct SpriteTemplate gSwordsDanceBladeSpriteTemplate = //gUnknown_83E3BF8 .callback = Anim_SwordsDanceBlade, }; -const struct SpriteTemplate gSonicBoomSpriteTemplate = //gUnknown_83E3C10 +const struct SpriteTemplate gSonicBoomSpriteTemplate = { .tileTag = ANIM_TAG_AIR_WAVE, .paletteTag = ANIM_TAG_AIR_WAVE, @@ -262,7 +268,7 @@ const struct SpriteTemplate gSonicBoomSpriteTemplate = //gUnknown_83E3C10 .callback = AnimSonicBoomProjectile, }; -const struct SpriteTemplate gAirWaveProjectileSpriteTemplate = //gUnknown_83E3C28 +const struct SpriteTemplate gAirWaveProjectileSpriteTemplate = { .tileTag = ANIM_TAG_AIR_WAVE, .paletteTag = ANIM_TAG_AIR_WAVE, @@ -292,17 +298,17 @@ const union AffineAnimCmd gWaterPulseRingAffineAnimCmds[] = AFFINEANIMCMD_END, }; -const union AffineAnimCmd *const gGrowingRingAffineAnimTable[] = //gUnknown_83E3C98 +const union AffineAnimCmd *const gGrowingRingAffineAnimTable[] = { gGrowingRingAffineAnimCmds, }; -const union AffineAnimCmd *const gWaterPulseRingAffineAnimTable[] = //83E3C9C +const union AffineAnimCmd *const gWaterPulseRingAffineAnimTable[] = { gWaterPulseRingAffineAnimCmds, }; -const struct SpriteTemplate gSupersonicWaveSpriteTemplate = //gUnknown_83E3CA0 +const struct SpriteTemplate gSupersonicWaveSpriteTemplate = { .tileTag = ANIM_TAG_GOLD_RING, .paletteTag = ANIM_TAG_GOLD_RING, @@ -313,7 +319,7 @@ const struct SpriteTemplate gSupersonicWaveSpriteTemplate = //gUnknown_83E3CA0 .callback = TranslateAnimSpriteToTargetMonLocation, }; -const struct SpriteTemplate gScreechWaveSpriteTemplate = //gUnknown_83E3CB8 +const struct SpriteTemplate gScreechWaveSpriteTemplate = { .tileTag = ANIM_TAG_PURPLE_RING, .paletteTag = ANIM_TAG_PURPLE_RING, @@ -324,7 +330,7 @@ const struct SpriteTemplate gScreechWaveSpriteTemplate = //gUnknown_83E3CB8 .callback = TranslateAnimSpriteToTargetMonLocation, }; -const struct SpriteTemplate gMetalSoundSpriteTemplate = //gUnknown_83E3CD0 +const struct SpriteTemplate gMetalSoundSpriteTemplate = { .tileTag = ANIM_TAG_METAL_SOUND_WAVES, .paletteTag = ANIM_TAG_METAL_SOUND_WAVES, @@ -335,7 +341,7 @@ const struct SpriteTemplate gMetalSoundSpriteTemplate = //gUnknown_83E3CD0 .callback = TranslateAnimSpriteToTargetMonLocation, }; -const struct SpriteTemplate gWaterPulseRingSpriteTemplate = //gUnknown_83E3CE8 +const struct SpriteTemplate gWaterPulseRingSpriteTemplate = { .tileTag = ANIM_TAG_BLUE_RING_2, .paletteTag = ANIM_TAG_BLUE_RING_2, @@ -343,10 +349,10 @@ const struct SpriteTemplate gWaterPulseRingSpriteTemplate = //gUnknown_83E3CE8 .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gWaterPulseRingAffineAnimTable, - .callback = AnimWaterPulseRing, //water.c + .callback = AnimWaterPulseRing, }; -const struct SpriteTemplate gEggThrowSpriteTemplate = //gUnknown_83E3D00 +const struct SpriteTemplate gEggThrowSpriteTemplate = { .tileTag = ANIM_TAG_LARGE_FRESH_EGG, .paletteTag = ANIM_TAG_LARGE_FRESH_EGG, @@ -390,7 +396,7 @@ const union AffineAnimCmd *const gFallingCoinAffineAnimTable[] = gFallingCoinAffineAnimCmds, }; -const struct SpriteTemplate gCoinThrowSpriteTemplate = //gUnknown_83E3D50 +const struct SpriteTemplate gCoinThrowSpriteTemplate = { .tileTag = ANIM_TAG_COIN, .paletteTag = ANIM_TAG_COIN, @@ -401,7 +407,7 @@ const struct SpriteTemplate gCoinThrowSpriteTemplate = //gUnknown_83E3D50 .callback = AnimCoinThrow, }; -const struct SpriteTemplate gFallingCoinSpriteTemplate = //gUnknown_83E3D68 +const struct SpriteTemplate gFallingCoinSpriteTemplate = { .tileTag = ANIM_TAG_COIN, .paletteTag = ANIM_TAG_COIN, @@ -423,7 +429,7 @@ const union AffineAnimCmd *const gBulletSeedAffineAnimTable[] = gBulletSeedAffineAnimCmds, }; -const struct SpriteTemplate gBulletSeedSpriteTemplate = //gUnknown_83E3D94 +const struct SpriteTemplate gBulletSeedSpriteTemplate = { .tileTag = ANIM_TAG_SEED, .paletteTag = ANIM_TAG_SEED, @@ -446,7 +452,7 @@ const union AffineAnimCmd *const gRazorWindTornadoAffineAnimTable[] = gRazorWindTornadoAffineAnimCmds, }; -const struct SpriteTemplate gRazorWindTornadoSpriteTemplate = //gUnknown_83E3DC8 +const struct SpriteTemplate gRazorWindTornadoSpriteTemplate = { .tileTag = ANIM_TAG_GUST, .paletteTag = ANIM_TAG_GUST, @@ -479,7 +485,7 @@ const union AnimCmd *const gViceGripAnimTable[] = gViceGripAnimCmds2, }; -const struct SpriteTemplate gViceGripSpriteTemplate = //gUnknown_83E3E08 +const struct SpriteTemplate gViceGripSpriteTemplate = { .tileTag = ANIM_TAG_CUT, .paletteTag = ANIM_TAG_CUT, @@ -512,7 +518,7 @@ const union AnimCmd *const gGuillotineAnimTable[] = gGuillotineAnimCmds2, }; -const struct SpriteTemplate gGuillotineSpriteTemplate = //gUnknown_83E3E48 +const struct SpriteTemplate gGuillotineSpriteTemplate = { .tileTag = ANIM_TAG_CUT, .paletteTag = ANIM_TAG_CUT, @@ -563,7 +569,7 @@ const union AnimCmd *const gBreathPuffAnimTable[] = gBreathPuffAnimCmds2, }; -const struct SpriteTemplate gBreathPuffSpriteTemplate = //gUnknown_83E3ED0 +const struct SpriteTemplate gBreathPuffSpriteTemplate = { .tileTag = ANIM_TAG_BREATH, .paletteTag = ANIM_TAG_BREATH, @@ -586,7 +592,7 @@ const union AffineAnimCmd *const gAngerMarkAffineAnimTable[] = gAngerMarkAffineAnimCmds, }; -const struct SpriteTemplate gAngerMarkSpriteTemplate = //gUnknown_83E3F04 +const struct SpriteTemplate gAngerMarkSpriteTemplate = { .tileTag = ANIM_TAG_ANGER, .paletteTag = ANIM_TAG_ANGER, @@ -607,7 +613,7 @@ const union AffineAnimCmd gThrashMoveMonAffineAnimCmds[] = AFFINEANIMCMD_END, }; -const struct SpriteTemplate gPencilSpriteTemplate = //gUnknown_83E3F4C +const struct SpriteTemplate gPencilSpriteTemplate = { .tileTag = ANIM_TAG_PENCIL, .paletteTag = ANIM_TAG_PENCIL, @@ -618,7 +624,7 @@ const struct SpriteTemplate gPencilSpriteTemplate = //gUnknown_83E3F4C .callback = AnimPencil, }; -const struct SpriteTemplate gSnoreZSpriteTemplate = //gUnknown_83E3F64 +const struct SpriteTemplate gSnoreZSpriteTemplate = { .tileTag = ANIM_TAG_SNORE_Z, .paletteTag = ANIM_TAG_SNORE_Z, @@ -643,7 +649,7 @@ const union AnimCmd *const gExplosionAnimTable[] = gExplosionAnimCmds, }; -const struct SpriteTemplate gExplosionSpriteTemplate = //gUnknown_83E3F94 +const struct SpriteTemplate gExplosionSpriteTemplate = { .tileTag = ANIM_TAG_EXPLOSION, .paletteTag = ANIM_TAG_EXPLOSION, @@ -687,7 +693,7 @@ const union AffineAnimCmd *const gSoftBoiledEggAffineAnimTable[] = gSoftBoiledEggAffineAnimCmds3, }; -const struct SpriteTemplate gSoftBoiledEggSpriteTemplate = //gUnknown_83E4028 +const struct SpriteTemplate gSoftBoiledEggSpriteTemplate = { .tileTag = ANIM_TAG_BREAKING_EGG, .paletteTag = ANIM_TAG_BREAKING_EGG, @@ -730,7 +736,7 @@ const union AffineAnimCmd *const gHyperVoiceRingAffineAnimTable[] = gHyperVoiceRingAffineAnimCmds, }; -const struct SpriteTemplate gThinRingExpandingSpriteTemplate = //gUnknown_83E4094 +const struct SpriteTemplate gThinRingExpandingSpriteTemplate = { .tileTag = ANIM_TAG_THIN_RING, .paletteTag = ANIM_TAG_THIN_RING, @@ -753,7 +759,7 @@ const union AffineAnimCmd *const gThinRingShrinkingAffineAnimTable[] = gThinRingShrinkingAffineAnimCmds, }; -const struct SpriteTemplate gThinRingShrinkingSpriteTemplate = //gUnknown_83E40C8 +const struct SpriteTemplate gThinRingShrinkingSpriteTemplate = { .tileTag = ANIM_TAG_THIN_RING, .paletteTag = ANIM_TAG_THIN_RING, @@ -764,7 +770,7 @@ const struct SpriteTemplate gThinRingShrinkingSpriteTemplate = //gUnknown_83E40C .callback = AnimSpriteOnMonPos, }; -const struct SpriteTemplate gBlendThinRingExpandingSpriteTemplate = //gUnknown_83E40E0 +const struct SpriteTemplate gBlendThinRingExpandingSpriteTemplate = { .tileTag = ANIM_TAG_THIN_RING, .paletteTag = ANIM_TAG_THIN_RING, @@ -775,7 +781,7 @@ const struct SpriteTemplate gBlendThinRingExpandingSpriteTemplate = //gUnknown_8 .callback = AnimBlendThinRing, }; -const struct SpriteTemplate gHyperVoiceRingSpriteTemplate = //gUnknown_83E40F8 +const struct SpriteTemplate gHyperVoiceRingSpriteTemplate = { .tileTag = ANIM_TAG_THIN_RING, .paletteTag = ANIM_TAG_THIN_RING, @@ -786,7 +792,7 @@ const struct SpriteTemplate gHyperVoiceRingSpriteTemplate = //gUnknown_83E40F8 .callback = AnimHyperVoiceRing, }; -const struct SpriteTemplate gUproarRingSpriteTemplate = //gUnknown_83E4110 +const struct SpriteTemplate gUproarRingSpriteTemplate = { .tileTag = ANIM_TAG_THIN_RING, .paletteTag = ANIM_TAG_THIN_RING, @@ -818,7 +824,7 @@ const union AnimCmd *const gSpeedDustAnimTable[] = gSpeedDustAnimCmds, }; -const struct SpriteTemplate gSpeedDustSpriteTemplate = //gUnknown_83E4154 +const struct SpriteTemplate gSpeedDustSpriteTemplate = { .tileTag = ANIM_TAG_SPEED_DUST, .paletteTag = ANIM_TAG_SPEED_DUST, @@ -860,7 +866,7 @@ const union AnimCmd *const gBellAnimTable[] = gBellAnimCmds, }; -const struct SpriteTemplate gBellSpriteTemplate = //gUnknown_83E41B0 +const struct SpriteTemplate gBellSpriteTemplate = { .tileTag = ANIM_TAG_BELL, .paletteTag = ANIM_TAG_BELL, @@ -878,7 +884,7 @@ const u16 gMusicNotePaletteTagsTable[] = ANIM_SPRITES_START - 2, }; -const struct SpriteTemplate gHealBellMusicNoteSpriteTemplate = //gUnknown_83E41D0 +const struct SpriteTemplate gHealBellMusicNoteSpriteTemplate = { .tileTag = ANIM_TAG_MUSIC_NOTES_2, .paletteTag = ANIM_TAG_MUSIC_NOTES_2, @@ -889,7 +895,7 @@ const struct SpriteTemplate gHealBellMusicNoteSpriteTemplate = //gUnknown_83E41D .callback = AnimHealBellMusicNote, }; -const struct SpriteTemplate gMagentaHeartSpriteTemplate = //gUnknown_83E41E8 +const struct SpriteTemplate gMagentaHeartSpriteTemplate = { .tileTag = ANIM_TAG_MAGENTA_HEART, .paletteTag = ANIM_TAG_MAGENTA_HEART, @@ -907,7 +913,7 @@ const union AffineAnimCmd gUnknown_83E4200[] = AFFINEANIMCMD_END, }; -const struct SpriteTemplate gRedHeartProjectileSpriteTemplate = //gUnknown_83E4218 +const struct SpriteTemplate gRedHeartProjectileSpriteTemplate = { .tileTag = ANIM_TAG_RED_HEART, .paletteTag = ANIM_TAG_RED_HEART, @@ -918,7 +924,7 @@ const struct SpriteTemplate gRedHeartProjectileSpriteTemplate = //gUnknown_83E42 .callback = AnimRedHeartProjectile, }; -const struct SpriteTemplate gRedHeartBurstSpriteTemplate = //gUnknown_83E4230 +const struct SpriteTemplate gRedHeartBurstSpriteTemplate = { .tileTag = ANIM_TAG_RED_HEART, .paletteTag = ANIM_TAG_RED_HEART, @@ -929,7 +935,7 @@ const struct SpriteTemplate gRedHeartBurstSpriteTemplate = //gUnknown_83E4230 .callback = AnimParticuleBurst, }; -const struct SpriteTemplate gRedHeartRisingSpriteTemplate = //gUnknown_83E4248 +const struct SpriteTemplate gRedHeartRisingSpriteTemplate = { .tileTag = ANIM_TAG_RED_HEART, .paletteTag = ANIM_TAG_RED_HEART, @@ -952,7 +958,7 @@ const union AffineAnimCmd *const gHiddenPowerOrbAffineAnimTable[] = gHiddenPowerOrbAffineAnimCmds, }; -const struct SpriteTemplate gHiddenPowerOrbSpriteTemplate = //gUnknown_83E427C +const struct SpriteTemplate gHiddenPowerOrbSpriteTemplate = { .tileTag = ANIM_TAG_RED_ORB, .paletteTag = ANIM_TAG_RED_ORB, @@ -963,7 +969,7 @@ const struct SpriteTemplate gHiddenPowerOrbSpriteTemplate = //gUnknown_83E427C .callback = AnimOrbitFast, }; -const struct SpriteTemplate gHiddenPowerOrbScatterSpriteTemplate = //gUnknown_83E4294 +const struct SpriteTemplate gHiddenPowerOrbScatterSpriteTemplate = { .tileTag = ANIM_TAG_RED_ORB, .paletteTag = ANIM_TAG_RED_ORB, @@ -986,7 +992,7 @@ const union AffineAnimCmd *const gSpitUpOrbAffineAnimTable[] = gSpitUpOrbAffineAnimCmds, }; -const struct SpriteTemplate gSpitUpOrbSpriteTemplate = //gUnknown_83E42C8 +const struct SpriteTemplate gSpitUpOrbSpriteTemplate = { .tileTag = ANIM_TAG_RED_ORB_2, .paletteTag = ANIM_TAG_RED_ORB_2, @@ -1012,7 +1018,7 @@ const union AnimCmd *const gEyeSparkleAnimTable[] = gEyeSparkleAnimCmds, }; -const struct SpriteTemplate gEyeSparkleSpriteTemplate = //gUnknown_83E42FC +const struct SpriteTemplate gEyeSparkleSpriteTemplate = { .tileTag = ANIM_TAG_EYE_SPARKLE, .paletteTag = ANIM_TAG_EYE_SPARKLE, @@ -1034,7 +1040,7 @@ const union AnimCmd *const gAngelSpriteAnimTable[] = gAngelSpriteAnimCmds, }; -const struct SpriteTemplate gAngelSpriteTemplate = //gUnknown_83E4320 +const struct SpriteTemplate gAngelSpriteTemplate = { .tileTag = ANIM_TAG_ANGEL, .paletteTag = ANIM_TAG_ANGEL, @@ -1045,7 +1051,7 @@ const struct SpriteTemplate gAngelSpriteTemplate = //gUnknown_83E4320 .callback = AnimAngel, }; -const struct SpriteTemplate gPinkHeartSpriteTemplate = //gUnknown_83E4338 +const struct SpriteTemplate gPinkHeartSpriteTemplate = { .tileTag = ANIM_TAG_PINK_HEART, .paletteTag = ANIM_TAG_PINK_HEART, @@ -1074,7 +1080,7 @@ const union AnimCmd *const gDevilAnimTable[] = gDevilAnimCmds2, }; -const struct SpriteTemplate gDevilSpriteTemplate = //gUnknown_83E4368 +const struct SpriteTemplate gDevilSpriteTemplate = { .tileTag = ANIM_TAG_DEVIL, .paletteTag = ANIM_TAG_DEVIL, @@ -1109,7 +1115,7 @@ const union AnimCmd *const gFurySwipesAnimTable[] = gUnknown_08593B1C, }; -const struct SpriteTemplate gFurySwipesSpriteTemplate = //gUnknown_83E43B0 +const struct SpriteTemplate gFurySwipesSpriteTemplate = { .tileTag = ANIM_TAG_SWIPE, .paletteTag = ANIM_TAG_SWIPE, @@ -1144,7 +1150,7 @@ const union AnimCmd *const gMovementWavesAnimTable[] = gMovementWavesAnimCmds2, }; -const struct SpriteTemplate gMovementWavesSpriteTemplate = //gUnknown_83E43F8 +const struct SpriteTemplate gMovementWavesSpriteTemplate = { .tileTag = ANIM_TAG_MOVEMENT_WAVES, .paletteTag = ANIM_TAG_MOVEMENT_WAVES, @@ -1163,7 +1169,7 @@ const union AffineAnimCmd gUnknown_08593B98[] = AFFINEANIMCMD_END, }; -const struct SpriteTemplate gJaggedMusicNoteSpriteTemplate = //gUnknown_83E4430 +const struct SpriteTemplate gJaggedMusicNoteSpriteTemplate = { .tileTag = ANIM_TAG_JAGGED_MUSIC_NOTE, .paletteTag = ANIM_TAG_JAGGED_MUSIC_NOTE, @@ -1199,8 +1205,7 @@ const union AffineAnimCmd *const gPerishSongMusicNoteAffineAnimTable[] = gPerishSongMusicNoteAffineAnimCmds3, }; -extern const union AnimCmd *const gMusicNotesAnimTable[]; -const struct SpriteTemplate gPerishSongMusicNoteSpriteTemplate = //gUnknown_83E4484 +const struct SpriteTemplate gPerishSongMusicNoteSpriteTemplate = { .tileTag = ANIM_TAG_MUSIC_NOTES_2, .paletteTag = ANIM_TAG_MUSIC_NOTES_2, @@ -1211,7 +1216,7 @@ const struct SpriteTemplate gPerishSongMusicNoteSpriteTemplate = //gUnknown_83E4 .callback = AnimPerishSongMusicNote, }; -const struct SpriteTemplate gPerishSongMusicNote2SpriteTemplate = //gUnknown_83E449C +const struct SpriteTemplate gPerishSongMusicNote2SpriteTemplate = { .tileTag = ANIM_TAG_MUSIC_NOTES_2, .paletteTag = ANIM_TAG_MUSIC_NOTES_2, @@ -1240,7 +1245,7 @@ const union AffineAnimCmd *const gGuardRingAffineAnimTable[] = gGuardRingAffineAnimCmds2, }; -const struct SpriteTemplate gGuardRingSpriteTemplate = //gUnknown_83E44DC +const struct SpriteTemplate gGuardRingSpriteTemplate = { .tileTag = ANIM_TAG_GUARD_RING, .paletteTag = ANIM_TAG_GUARD_RING, @@ -1269,6 +1274,7 @@ void sub_80A6E48(struct Sprite *sprite) void sub_80A6E98(struct Sprite *sprite) { u8 battler; + if (gBattleAnimArgs[0] == 0) battler = gBattleAnimAttacker; else @@ -1304,6 +1310,7 @@ static void sub_80A6ED8(struct Sprite *sprite) static void sub_80A6F3C(struct Sprite *sprite) { s16 temp; + gSprites[sprite->data[2]].pos2.x += sprite->data[1]; temp = sprite->data[1]; sprite->data[1] = -temp; @@ -1319,8 +1326,9 @@ static void sub_80A6F3C(struct Sprite *sprite) void sub_80A6F8C(struct Sprite *sprite) { u8 spriteId; - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); + + sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); + sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); spriteId = gBattlerSpriteIds[gBattleAnimTarget]; if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) sprite->pos1.x -= gBattleAnimArgs[0]; @@ -1374,6 +1382,7 @@ static void AnimTask_WithdrawStep(u8 taskId) { u8 spriteId = gBattlerSpriteIds[gBattleAnimAttacker]; s16 rotation; + if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) rotation = -gTasks[taskId].data[0]; else @@ -1488,8 +1497,8 @@ void AnimSonicBoomProjectile(struct Sprite *sprite) } InitSpritePosToAnimAttacker(sprite, TRUE); - targetXPos = GetBattlerSpriteCoord(gBattleAnimTarget, 2) + gBattleAnimArgs[2]; - targetYPos = GetBattlerSpriteCoord(gBattleAnimTarget, 3) + gBattleAnimArgs[3]; + targetXPos = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) + gBattleAnimArgs[2]; + targetYPos = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[3]; rotation = ArcTan2Neg(targetXPos - sprite->pos1.x, targetYPos - sprite->pos1.y); rotation += 0xF000; if (IsContest()) @@ -1515,6 +1524,7 @@ static void AnimAirWaveProjectile_Step2(struct Sprite *sprite) static void AnimAirWaveProjectile_Step1(struct Sprite *sprite) { struct Task* task = &gTasks[sprite->data[7]]; + if (sprite->data[0] > task->data[5]) { sprite->data[5] += sprite->data[3]; @@ -1550,8 +1560,9 @@ void AnimAirWaveProjectile(struct Sprite *sprite) s16 a; s16 b; s16 c; - + struct Task* task = &gTasks[sprite->data[7]]; + sprite->data[1] += (-2 & task->data[7]); sprite->data[2] += (-2 & task->data[8]); if (1 & task->data[7]) @@ -1762,8 +1773,8 @@ void AnimCoinThrow(struct Sprite *sprite) u16 var; InitSpritePosToAnimAttacker(sprite, TRUE); - r6 = GetBattlerSpriteCoord(gBattleAnimTarget, 2); - r7 = GetBattlerSpriteCoord(gBattleAnimTarget, 3) + gBattleAnimArgs[3]; + r6 = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); + r7 = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[3]; if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) gBattleAnimArgs[2] = -gBattleAnimArgs[2]; @@ -1819,6 +1830,7 @@ static void AnimBulletSeed_Step1(struct Sprite *sprite) int i; u16 rand; s16* ptr; + PlaySE12WithPanning(SE_W030, BattleAnimAdjustPanning(63)); sprite->pos1.x += sprite->pos2.x; sprite->pos1.y += sprite->pos2.y; @@ -1886,6 +1898,7 @@ void AnimViceGripPincer(struct Sprite *sprite) s16 startYOffset = -32; s16 endXOffset = 16; s16 endYOffset = -16; + if (gBattleAnimArgs[0]) { startXOffset = -32; @@ -1918,6 +1931,7 @@ void AnimGuillotinePincer(struct Sprite *sprite) s16 startYOffset = -32; s16 endXOffset = 16; s16 endYOffset = -16; + if (gBattleAnimArgs[0]) { startXOffset = -32; @@ -1992,6 +2006,7 @@ static void AnimGuillotinePincerStep3(struct Sprite *sprite) void AnimTask_GrowAndGreyscale(u8 taskId) { u8 spriteId = GetAnimBattlerSpriteId(ANIM_TARGET); + PrepareBattlerSpriteForRotScale(spriteId, ST_OAM_OBJ_BLEND); SetSpriteRotScale(spriteId, 0xD0, 0xD0, 0); SetGreyscaleOrOriginalPalette(gSprites[spriteId].oam.paletteNum + 16, FALSE); @@ -2017,6 +2032,7 @@ void AnimTask_Minimize(u8 taskId) { struct Task* task = &gTasks[taskId]; u8 spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER); + task->data[0] = spriteId; PrepareBattlerSpriteForRotScale(spriteId, ST_OAM_OBJ_NORMAL); task->data[1] = 0; @@ -2032,6 +2048,7 @@ void AnimTask_Minimize(u8 taskId) static void AnimTask_MinimizeStep1(u8 taskId) { struct Task* task = &gTasks[taskId]; + switch (task->data[1]) { case 0: @@ -2099,6 +2116,7 @@ static void CreateMinimizeSprite(struct Task* task, u8 taskId) { u16 matrixNum; s16 spriteId = CloneBattlerSpriteWithBlend(ANIM_ATTACKER); + if (spriteId >= 0) { if ((matrixNum = AllocOamMatrix()) == 0xFF) @@ -2141,6 +2159,7 @@ static void ClonedMinizeSprite_Step(struct Sprite *sprite) void AnimTask_Splash(u8 taskId) { struct Task* task = &gTasks[taskId]; + if (gBattleAnimArgs[1] == 0) { DestroyAnimVisualTask(taskId); @@ -2161,6 +2180,7 @@ void AnimTask_Splash(u8 taskId) static void AnimTask_SplashStep(u8 taskId) { struct Task* task = &gTasks[taskId]; + switch (task->data[1]) { case 0: @@ -2216,6 +2236,7 @@ void AnimTask_GrowAndShrink(u8 taskId) { struct Task* task = &gTasks[taskId]; u8 spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER); + PrepareAffineAnimInTaskData(task, spriteId, gGrowAndShrinkAffineAnimCmds); task->func = AnimTask_GrowAndShrinkStep; } @@ -2223,6 +2244,7 @@ void AnimTask_GrowAndShrink(u8 taskId) static void AnimTask_GrowAndShrinkStep(u8 taskId) { struct Task* task = &gTasks[taskId]; + if (!RunAffineAnimFromTaskData(task)) DestroyAnimVisualTask(taskId); } @@ -2261,6 +2283,7 @@ void AnimBreathPuff(struct Sprite *sprite) void AnimAngerMark(struct Sprite *sprite) { u8 battler; + if (!gBattleAnimArgs[0]) battler = gBattleAnimAttacker; else @@ -2283,6 +2306,7 @@ void AnimTask_ThrashMoveMonHorizontal(u8 taskId) { struct Task* task = &gTasks[taskId]; u8 spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER); + task->data[0] = spriteId; task->data[1] = 0; PrepareAffineAnimInTaskData(task, spriteId, gThrashMoveMonAffineAnimCmds); @@ -2292,6 +2316,7 @@ void AnimTask_ThrashMoveMonHorizontal(u8 taskId) static void ThrashMoveMonStep(u8 taskId) { struct Task* task = &gTasks[taskId]; + if (!RunAffineAnimFromTaskData(task)) DestroyAnimVisualTask(taskId); } @@ -2300,6 +2325,7 @@ static void ThrashMoveMonStep(u8 taskId) void AnimTask_ThrashMoveMonVertical(u8 taskId) { struct Task* task = &gTasks[taskId]; + task->data[0] = GetAnimBattlerSpriteId(ANIM_ATTACKER); task->data[1] = 0; task->data[2] = 4; @@ -2319,6 +2345,7 @@ void AnimTask_ThrashMoveMonVertical(u8 taskId) static void ThrashMoveMon(u8 taskId) { struct Task* task = &gTasks[taskId]; + if (++task->data[7] > 2) { task->data[7] = 0; @@ -2371,8 +2398,8 @@ void sub_80A8874(u8 taskId) { struct Task* task = &gTasks[taskId]; struct ScanlineEffectParams params; - s16 i; + task->data[0] = GetBattlerYCoordWithElevation(gBattleAnimTarget) + 32; task->data[1] = 4; task->data[2] = 0; @@ -2457,7 +2484,7 @@ static void AnimTask_SketchDrawMon(u8 taskId) void AnimPencil(struct Sprite *sprite) { - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, 0) - 16; + sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X) - 16; sprite->pos1.y = GetBattlerYCoordWithElevation(gBattleAnimTarget) + 16; sprite->data[0] = 0; sprite->data[1] = 0; @@ -2545,12 +2572,12 @@ void AnimBlendThinRing(struct Sprite *sprite) { SetAverageBattlerPositions(battler, r4, &sp0, &sp1); if (r4 == 0) - r4 = GetBattlerSpriteCoord(battler, 0); + r4 = GetBattlerSpriteCoord(battler, BATTLER_COORD_X); else - r4 = GetBattlerSpriteCoord(battler, 2); + r4 = GetBattlerSpriteCoord(battler, BATTLER_COORD_X_2); if (GetBattlerSide(battler) != B_SIDE_PLAYER) - gBattleAnimArgs[0] -= (sp0 - r4) - gBattleAnimArgs[0]; // This is weird. + gBattleAnimArgs[0] -= (sp0 - r4) - gBattleAnimArgs[0]; else gBattleAnimArgs[0] = sp0 - r4; } @@ -2656,6 +2683,7 @@ void AnimHyperVoiceRing(struct Sprite *sprite) void AnimUproarRing(struct Sprite *sprite) { u8 index = IndexOfSpritePaletteTag(ANIM_TAG_THIN_RING); + if (index != 0xFF) { BlendPalette(((index << 20) + 0x1010000) >> 16, 15, gBattleAnimArgs[5], gBattleAnimArgs[4]); @@ -2669,6 +2697,7 @@ void AnimUproarRing(struct Sprite *sprite) void AnimSoftBoiledEgg(struct Sprite *sprite) { s16 r1; + InitSpritePosToAnimAttacker(sprite, FALSE); r1 = GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER ? -160 : 160; sprite->data[0] = 0x380; @@ -2680,6 +2709,7 @@ void AnimSoftBoiledEgg(struct Sprite *sprite) static void AnimSoftBoiledEgg_Step1(struct Sprite *sprite) { s16 add; + sprite->pos2.y -= (sprite->data[0] >> 8); sprite->pos2.x = sprite->data[1] >> 8; sprite->data[0] -= 32; @@ -2772,6 +2802,7 @@ void AnimTask_StretchAttacker(u8 taskId) { struct Task* task = &gTasks[taskId]; u8 spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER); + task->data[0] = spriteId; PrepareAffineAnimInTaskData(task, spriteId, gStretchAttackerAffineAnimCmds); task->func = StretchAttacker_Step; @@ -2780,6 +2811,7 @@ void AnimTask_StretchAttacker(u8 taskId) static void StretchAttacker_Step(u8 taskId) { struct Task* task = &gTasks[taskId]; + if (!RunAffineAnimFromTaskData(task)) { gSprites[task->data[0]].pos2.y = 0; @@ -2791,6 +2823,7 @@ static void StretchAttacker_Step(u8 taskId) void AnimTask_ExtremeSpeedImpact(u8 taskId) { struct Task* task = &gTasks[taskId]; + task->data[0] = 0; task->data[1] = 0; task->data[2] = 0; @@ -2860,6 +2893,7 @@ static void ExtremeSpeedImpact_Step(u8 taskId) void AnimTask_ExtremeSpeedMonReappear(u8 taskId) { struct Task* task = &gTasks[taskId]; + task->data[0] = 0; task->data[1] = 0; task->data[2] = 0; @@ -2874,6 +2908,7 @@ void AnimTask_ExtremeSpeedMonReappear(u8 taskId) static void ExtremeSpeedMonReappear_Step(u8 taskId) { struct Task* task = &gTasks[taskId]; + if (task->data[0] == 0 && ++task->data[1] > task->data[4]) { task->data[1] = 0; @@ -2902,6 +2937,7 @@ static void ExtremeSpeedMonReappear_Step(u8 taskId) void AnimTask_SpeedDust(u8 taskId) { struct Task* task = &gTasks[taskId]; + task->data[0] = 0; task->data[1] = 4; task->data[2] = 0; @@ -2912,14 +2948,15 @@ void AnimTask_SpeedDust(u8 taskId) task->data[7] = 0; task->data[8] = 0; task->data[13] = 0; - task->data[14] = GetBattlerSpriteCoord(gBattleAnimAttacker, ANIM_ATTACKER); - task->data[15] = GetBattlerSpriteCoord(gBattleAnimAttacker, ANIM_TARGET); + task->data[14] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X); + task->data[15] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y); task->func = SpeedDust_Step1; } static void SpeedDust_Step1(u8 taskId) { struct Task* task = &gTasks[taskId]; + switch (task->data[8]) { case 0: @@ -3014,6 +3051,7 @@ void sub_80A96B4(u8 taskId) void sub_80A9760(u8 taskId) { int i; + for (i = 0; i < 3; i++) FreeSpritePaletteByTag(gMusicNotePaletteTagsTable[i]); @@ -3023,6 +3061,7 @@ void sub_80A9760(u8 taskId) static void SetMusicNotePalette(struct Sprite *sprite, u8 a, u8 b) { u8 tile; + tile = (b & 1); tile = ((-tile | tile) >> 31) & 32; sprite->oam.tileNum += tile + (a << 2); @@ -3036,8 +3075,8 @@ void AnimHealBellMusicNote(struct Sprite *sprite) gBattleAnimArgs[2] = -gBattleAnimArgs[2]; sprite->data[0] = gBattleAnimArgs[4]; - sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimAttacker, 0) + gBattleAnimArgs[2]; - sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimAttacker, 1) + gBattleAnimArgs[3]; + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X) + gBattleAnimArgs[2]; + sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y) + gBattleAnimArgs[3]; sprite->callback = StartAnimLinearTranslation; StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); SetMusicNotePalette(sprite, gBattleAnimArgs[5], gBattleAnimArgs[6]); @@ -3112,9 +3151,10 @@ static void FakeOutStep2(u8 taskId) void sub_80A9A20(u8 taskId) { u8 spriteId = GetAnimBattlerSpriteId(ANIM_TARGET); + if (++gTasks[taskId].data[0] == 1) { - PrepareAffineAnimInTaskData(&gTasks[taskId], GetAnimBattlerSpriteId(1), gUnknown_83E4200); + PrepareAffineAnimInTaskData(&gTasks[taskId], GetAnimBattlerSpriteId(ANIM_TARGET), gUnknown_83E4200); gSprites[spriteId].pos2.x = 4; } else @@ -3132,9 +3172,10 @@ void sub_80A9A20(u8 taskId) void sub_80A9AB0(u8 taskId) { u8 spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER); + if (++gTasks[taskId].data[0] == 1) { - PrepareAffineAnimInTaskData(&gTasks[taskId], GetAnimBattlerSpriteId(0), gUnknown_83E4200); + PrepareAffineAnimInTaskData(&gTasks[taskId], GetAnimBattlerSpriteId(ANIM_ATTACKER), gUnknown_83E4200); gSprites[spriteId].pos2.x = 4; } else @@ -3154,9 +3195,9 @@ void AnimRedHeartProjectile(struct Sprite *sprite) InitSpritePosToAnimAttacker(sprite, TRUE); sprite->data[0] = 95; sprite->data[1] = sprite->pos1.x; - sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2); + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); sprite->data[3] = sprite->pos1.y; - sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3); + sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); InitAnimLinearTranslation(sprite); sprite->callback = AnimRedHeartProjectile_Step; } @@ -3209,6 +3250,7 @@ void AnimRedHeartRising(struct Sprite *sprite) static void AnimRedHeartRising_Step(struct Sprite *sprite) { s16 y; + sprite->data[2] += sprite->data[1]; sprite->pos2.y = -((u16)sprite->data[2] >> 8); sprite->pos2.x = Sin(sprite->data[3], 4); @@ -3238,12 +3280,12 @@ void AnimTask_HeartsBackground(u8 taskId) SetGpuReg(REG_OFFSET_BG1HOFS, gBattle_BG1_X); SetGpuReg(REG_OFFSET_BG1VOFS, gBattle_BG1_Y); sub_80752A0(&animBg); - AnimLoadCompressedBgTilemap(animBg.bgId, gBattleAnimBg_AttractTilemap); - AnimLoadCompressedBgGfx(animBg.bgId, gBattleAnimBg_AttractGfx, animBg.tilesOffset); + AnimLoadCompressedBgTilemap(animBg.bgId, gBattleAnimBg_AttractTilemap); + AnimLoadCompressedBgGfx(animBg.bgId, gBattleAnimBg_AttractGfx, animBg.tilesOffset); LoadCompressedPalette(gBattleAnimBg_AttractPal, animBg.paletteId * 16, 32); - if (IsContest()) - sub_80730C0(animBg.paletteId, animBg.bgTilemap, 0, 0); - + if (IsContest()) + sub_80730C0(animBg.paletteId, animBg.bgTilemap, 0, 0); + gTasks[taskId].func = HeartsBackground_Step; } @@ -3319,9 +3361,9 @@ void AnimTask_ScaryFace(u8 taskId) SetGpuReg(REG_OFFSET_BG1HOFS, gBattle_BG1_X); SetGpuReg(REG_OFFSET_BG1VOFS, gBattle_BG1_Y); sub_80752A0(&animBg); - + if (IsContest()) - LZDecompressVram(gBattleAnimBgTilemap_ScaryFaceContest, animBg.bgTilemap); + LZDecompressVram(gBattleAnimBgTilemap_ScaryFaceContest, animBg.bgTilemap); else if (GetBattlerSide(gBattleAnimTarget) == B_SIDE_OPPONENT) AnimLoadCompressedBgTilemap(animBg.bgId, gBattleAnimBgTilemap_ScaryFacePlayer); else @@ -3329,9 +3371,9 @@ void AnimTask_ScaryFace(u8 taskId) AnimLoadCompressedBgGfx(animBg.bgId, gBattleAnim_ScaryFaceGfx, animBg.tilesOffset); LoadCompressedPalette(gBattleAnim_ScaryFacePal, animBg.paletteId * 16, 32); - if (IsContest()) - sub_80730C0(animBg.paletteId, animBg.bgTilemap, 0, 0); - + if (IsContest()) + sub_80730C0(animBg.paletteId, animBg.bgTilemap, 0, 0); + gTasks[taskId].func = ScaryFace_Step; } @@ -3398,8 +3440,8 @@ static void ScaryFace_Step(u8 taskId) // arg 1: initial wave offset void AnimOrbitFast(struct Sprite *sprite) { - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); + sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); + sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); sprite->affineAnimPaused = 1; sprite->data[0] = gBattleAnimArgs[0]; sprite->data[1] = gBattleAnimArgs[1]; @@ -3449,8 +3491,8 @@ static void AnimOrbitFastStep(struct Sprite *sprite) // arg 0: initial wave offset void AnimOrbitScatter(struct Sprite *sprite) { - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); + sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); + sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); sprite->data[0] = Sin(gBattleAnimArgs[0], 10); sprite->data[1] = Cos(gBattleAnimArgs[0], 7); sprite->callback = AnimOrbitScatterStep; @@ -3474,8 +3516,8 @@ static void AnimSpitUpOrb_Step(struct Sprite *sprite) void AnimSpitUpOrb(struct Sprite *sprite) { - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); + sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); + sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); sprite->data[0] = Sin(gBattleAnimArgs[0], 10); sprite->data[1] = Cos(gBattleAnimArgs[0], 7); sprite->data[2] = gBattleAnimArgs[1]; @@ -3497,6 +3539,7 @@ void AnimEyeSparkle(struct Sprite *sprite) void AnimAngel(struct Sprite *sprite) { s16 var0; + if (!sprite->data[0]) { sprite->pos1.x += gBattleAnimArgs[0]; @@ -3612,13 +3655,13 @@ void AnimMovementWaves(struct Sprite *sprite) { if (!gBattleAnimArgs[0]) { - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); + sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); + sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); } else { - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, 2); - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, 3); + sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); + sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); } if (!gBattleAnimArgs[1]) @@ -3666,8 +3709,8 @@ void AnimJaggedMusicNote(struct Sprite *sprite) if (GetBattlerSide(battler) == B_SIDE_OPPONENT) gBattleAnimArgs[1] *= -1; - sprite->pos1.x = GetBattlerSpriteCoord(battler, 2) + gBattleAnimArgs[1]; - sprite->pos1.y = GetBattlerSpriteCoord(battler, 3) + gBattleAnimArgs[2]; + sprite->pos1.x = GetBattlerSpriteCoord(battler, BATTLER_COORD_X_2) + gBattleAnimArgs[1]; + sprite->pos1.y = GetBattlerSpriteCoord(battler, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[2]; sprite->data[0] = 0; sprite->data[1] = (u16)sprite->pos1.x << 3; sprite->data[2] = (u16)sprite->pos1.y << 3; @@ -3799,8 +3842,8 @@ void AnimGuardRing(struct Sprite *sprite) } else { - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 0); - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1) + 40; + sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X); + sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y) + 40; } sprite->data[0] = 13; diff --git a/src/battle_anim_effects_3.c b/src/battle_anim_effects_3.c index cabe18fb6..4bb839a02 100644 --- a/src/battle_anim_effects_3.c +++ b/src/battle_anim_effects_3.c @@ -22,8 +22,7 @@ #include "constants/species.h" #include "constants/weather.h" -extern const struct SpriteTemplate gThoughtBubbleSpriteTemplate; - +// Function Declarations void AnimBlackSmoke(struct Sprite *); void AnimWhiteHalo(struct Sprite *); void AnimTealAlert(struct Sprite *); @@ -120,7 +119,9 @@ static void AnimRecycleStep(struct Sprite *); static void AnimTask_SlackOffSquishStep(u8); // Data -const union AnimCmd gScratchAnimCmds[] = //83FEDE4 +extern const struct SpriteTemplate gThoughtBubbleSpriteTemplate; + +const union AnimCmd gScratchAnimCmds[] = { ANIMCMD_FRAME(0, 4), ANIMCMD_FRAME(16, 4), @@ -130,12 +131,12 @@ const union AnimCmd gScratchAnimCmds[] = //83FEDE4 ANIMCMD_END, }; -const union AnimCmd *const gScratchAnimTable[] = //83FEDFC +const union AnimCmd *const gScratchAnimTable[] = { gScratchAnimCmds, }; -const struct SpriteTemplate gScratchSpriteTemplate = //83FEE00 +const struct SpriteTemplate gScratchSpriteTemplate = { .tileTag = ANIM_TAG_SCRATCH, .paletteTag = ANIM_TAG_SCRATCH, @@ -146,7 +147,7 @@ const struct SpriteTemplate gScratchSpriteTemplate = //83FEE00 .callback = AnimSpriteOnMonPos, }; -const struct SpriteTemplate gBlackSmokeSpriteTemplate = //83FEE18 +const struct SpriteTemplate gBlackSmokeSpriteTemplate = { .tileTag = ANIM_TAG_BLACK_SMOKE, .paletteTag = ANIM_TAG_BLACK_SMOKE, @@ -157,7 +158,7 @@ const struct SpriteTemplate gBlackSmokeSpriteTemplate = //83FEE18 .callback = AnimBlackSmoke, }; -const struct SpriteTemplate gBlackBallSpriteTemplate = //83FEE30 +const struct SpriteTemplate gBlackBallSpriteTemplate = { .tileTag = ANIM_TAG_BLACK_BALL, .paletteTag = ANIM_TAG_BLACK_BALL, @@ -168,7 +169,7 @@ const struct SpriteTemplate gBlackBallSpriteTemplate = //83FEE30 .callback = AnimThrowProjectile, }; -const union AnimCmd gOpeningEyeAnimCmds[] = //83FEE48 +const union AnimCmd gOpeningEyeAnimCmds[] = { ANIMCMD_FRAME(0, 40), ANIMCMD_FRAME(16, 8), @@ -176,12 +177,12 @@ const union AnimCmd gOpeningEyeAnimCmds[] = //83FEE48 ANIMCMD_END, }; -const union AnimCmd *const gOpeningEyeAnimTable[] = //83FEE58 +const union AnimCmd *const gOpeningEyeAnimTable[] = { gOpeningEyeAnimCmds, }; -const struct SpriteTemplate gOpeningEyeSpriteTemplate = //83FEE5C +const struct SpriteTemplate gOpeningEyeSpriteTemplate = { .tileTag = ANIM_TAG_OPENING_EYE, .paletteTag = ANIM_TAG_OPENING_EYE, @@ -192,7 +193,7 @@ const struct SpriteTemplate gOpeningEyeSpriteTemplate = //83FEE5C .callback = AnimSpriteOnMonPos, }; -const struct SpriteTemplate gWhiteHaloSpriteTemplate = //83FEE74 +const struct SpriteTemplate gWhiteHaloSpriteTemplate = { .tileTag = ANIM_TAG_ROUND_WHITE_HALO, .paletteTag = ANIM_TAG_ROUND_WHITE_HALO, @@ -203,7 +204,7 @@ const struct SpriteTemplate gWhiteHaloSpriteTemplate = //83FEE74 .callback = AnimWhiteHalo, }; -const struct SpriteTemplate gTealAlertSpriteTemplate = //83FEE8C +const struct SpriteTemplate gTealAlertSpriteTemplate = { .tileTag = ANIM_TAG_TEAL_ALERT, .paletteTag = ANIM_TAG_TEAL_ALERT, @@ -214,7 +215,7 @@ const struct SpriteTemplate gTealAlertSpriteTemplate = //83FEE8C .callback = AnimTealAlert, }; -const union AffineAnimCmd gMeanLookEyeAffineAnimCmds1[] = //83FEEA4 +const union AffineAnimCmd gMeanLookEyeAffineAnimCmds1[] = { AFFINEANIMCMD_FRAME(0x180, 0x180, 0, 0), AFFINEANIMCMD_FRAME(-0x20, 0x18, 0, 5), @@ -222,20 +223,20 @@ const union AffineAnimCmd gMeanLookEyeAffineAnimCmds1[] = //83FEEA4 AFFINEANIMCMD_JUMP(1), }; -const union AffineAnimCmd gMeanLookEyeAffineAnimCmds2[] = //83FEEC4 +const union AffineAnimCmd gMeanLookEyeAffineAnimCmds2[] = { AFFINEANIMCMD_FRAME(0x30, 0x30, 0, 0), AFFINEANIMCMD_FRAME(0x20, 0x20, 0, 6), AFFINEANIMCMD_END, }; -const union AffineAnimCmd *const gMeanLookEyeAffineAnimTable[] = //83FEEDC +const union AffineAnimCmd *const gMeanLookEyeAffineAnimTable[] = { gMeanLookEyeAffineAnimCmds1, gMeanLookEyeAffineAnimCmds2, }; -const struct SpriteTemplate gMeanLookEyeSpriteTemplate = //83FEEE4 +const struct SpriteTemplate gMeanLookEyeSpriteTemplate = { .tileTag = ANIM_TAG_EYE, .paletteTag = ANIM_TAG_EYE, @@ -246,7 +247,7 @@ const struct SpriteTemplate gMeanLookEyeSpriteTemplate = //83FEEE4 .callback = AnimMeanLookEye, }; -const struct SpriteTemplate gSpikesSpriteTemplate = //83FEEFC +const struct SpriteTemplate gSpikesSpriteTemplate = { .tileTag = ANIM_TAG_SPIKES, .paletteTag = ANIM_TAG_SPIKES, @@ -257,7 +258,7 @@ const struct SpriteTemplate gSpikesSpriteTemplate = //83FEEFC .callback = AnimSpikes, }; -const union AnimCmd gLeerAnimCmds[] = //83FEF14 +const union AnimCmd gLeerAnimCmds[] = { ANIMCMD_FRAME(0, 3), ANIMCMD_FRAME(16, 3), @@ -267,12 +268,12 @@ const union AnimCmd gLeerAnimCmds[] = //83FEF14 ANIMCMD_END, }; -const union AnimCmd *const gLeerAnimTable[] = //83FEF2C +const union AnimCmd *const gLeerAnimTable[] = { gLeerAnimCmds, }; -const struct SpriteTemplate gLeerSpriteTemplate = //83FEF30 +const struct SpriteTemplate gLeerSpriteTemplate = { .tileTag = ANIM_TAG_LEER, .paletteTag = ANIM_TAG_LEER, @@ -283,30 +284,30 @@ const struct SpriteTemplate gLeerSpriteTemplate = //83FEF30 .callback = AnimLeer, }; -const union AnimCmd gLetterZAnimCmds[] = //83FEF48 +const union AnimCmd gLetterZAnimCmds[] = { ANIMCMD_FRAME(0, 3), ANIMCMD_END, }; -const union AnimCmd *const gLetterZAnimTable[] = //83FEF50 +const union AnimCmd *const gLetterZAnimTable[] = { gLetterZAnimCmds, }; -const union AffineAnimCmd gLetterZAffineAnimCmds[] = //83FEF54 +const union AffineAnimCmd gLetterZAffineAnimCmds[] = { AFFINEANIMCMD_FRAME(-7, -7, -3, 16), AFFINEANIMCMD_FRAME(7, 7, 3, 16), AFFINEANIMCMD_JUMP(0), }; -const union AffineAnimCmd *const gLetterZAffineAnimTable[] = //83FEF6C +const union AffineAnimCmd *const gLetterZAffineAnimTable[] = { gLetterZAffineAnimCmds, }; -const struct SpriteTemplate gLetterZSpriteTemplate = //83FEF70 +const struct SpriteTemplate gLetterZSpriteTemplate = { .tileTag = ANIM_TAG_LETTER_Z, .paletteTag = ANIM_TAG_LETTER_Z, @@ -317,7 +318,7 @@ const struct SpriteTemplate gLetterZSpriteTemplate = //83FEF70 .callback = AnimLetterZ, }; -const union AnimCmd gFangAnimCmds[] = //83FEF88 +const union AnimCmd gFangAnimCmds[] = { ANIMCMD_FRAME(0, 8), ANIMCMD_FRAME(16, 16), @@ -326,24 +327,24 @@ const union AnimCmd gFangAnimCmds[] = //83FEF88 ANIMCMD_END, }; -const union AnimCmd *const gFangAnimTable[] = //83FEF9C +const union AnimCmd *const gFangAnimTable[] = { gFangAnimCmds, }; -const union AffineAnimCmd gFangAffineAnimCmds[] = //83FEFA0 +const union AffineAnimCmd gFangAffineAnimCmds[] = { AFFINEANIMCMD_FRAME(0x200, 0x200, 0, 0), AFFINEANIMCMD_FRAME(-0x20, -0x20, 0, 8), AFFINEANIMCMD_END, }; -const union AffineAnimCmd *const gFangAffineAnimTable[] = //83FEFB8 +const union AffineAnimCmd *const gFangAffineAnimTable[] = { gFangAffineAnimCmds, }; -const struct SpriteTemplate gFangSpriteTemplate = //83FEFBC +const struct SpriteTemplate gFangSpriteTemplate = { .tileTag = ANIM_TAG_FANG_ATTACK, .paletteTag = ANIM_TAG_FANG_ATTACK, @@ -354,27 +355,27 @@ const struct SpriteTemplate gFangSpriteTemplate = //83FEFBC .callback = AnimFang, }; -const union AffineAnimCmd gSpotlightAffineAnimCmds1[] = //83FEFD4 +const union AffineAnimCmd gSpotlightAffineAnimCmds1[] = { AFFINEANIMCMD_FRAME(0x0, 0x180, 0, 0), AFFINEANIMCMD_FRAME(0x10, 0x0, 0, 20), AFFINEANIMCMD_END, }; -const union AffineAnimCmd gSpotlightAffineAnimCmds2[] = //83FEFEC +const union AffineAnimCmd gSpotlightAffineAnimCmds2[] = { AFFINEANIMCMD_FRAME(0x140, 0x180, 0, 0), AFFINEANIMCMD_FRAME(-0x10, 0x0, 0, 19), AFFINEANIMCMD_END, }; -const union AffineAnimCmd *const gSpotlightAffineAnimTable[] = //83FF004 +const union AffineAnimCmd *const gSpotlightAffineAnimTable[] = { gSpotlightAffineAnimCmds1, gSpotlightAffineAnimCmds2, }; -const struct SpriteTemplate gSpotlightSpriteTemplate = //83FF00C +const struct SpriteTemplate gSpotlightSpriteTemplate = { .tileTag = ANIM_TAG_SPOTLIGHT, .paletteTag = ANIM_TAG_SPOTLIGHT, @@ -385,7 +386,7 @@ const struct SpriteTemplate gSpotlightSpriteTemplate = //83FF00C .callback = AnimSpotlight, }; -const struct SpriteTemplate gClappingHandSpriteTemplate = //83FF024 +const struct SpriteTemplate gClappingHandSpriteTemplate = { .tileTag = ANIM_TAG_TAG_HAND, .paletteTag = ANIM_TAG_TAG_HAND, @@ -396,7 +397,7 @@ const struct SpriteTemplate gClappingHandSpriteTemplate = //83FF024 .callback = AnimClappingHand, }; -const struct SpriteTemplate gClappingHand2SpriteTemplate = //83FF03C +const struct SpriteTemplate gClappingHand2SpriteTemplate = { .tileTag = ANIM_TAG_TAG_HAND, .paletteTag = ANIM_TAG_TAG_HAND, @@ -407,7 +408,7 @@ const struct SpriteTemplate gClappingHand2SpriteTemplate = //83FF03C .callback = AnimClappingHand2, }; -const union AnimCmd gRapidSpinAnimCmds[] = //83FF054 +const union AnimCmd gRapidSpinAnimCmds[] = { ANIMCMD_FRAME(0, 2), ANIMCMD_FRAME(8, 2), @@ -415,12 +416,12 @@ const union AnimCmd gRapidSpinAnimCmds[] = //83FF054 ANIMCMD_JUMP(0), }; -const union AnimCmd *const gRapidSpinAnimTable[] = //83FF064 +const union AnimCmd *const gRapidSpinAnimTable[] = { gRapidSpinAnimCmds, }; -const struct SpriteTemplate gRapidSpinSpriteTemplate = //83FF068 +const struct SpriteTemplate gRapidSpinSpriteTemplate = { .tileTag = ANIM_TAG_RAPID_SPIN, .paletteTag = ANIM_TAG_RAPID_SPIN, @@ -431,7 +432,7 @@ const struct SpriteTemplate gRapidSpinSpriteTemplate = //83FF068 .callback = AnimRapidSpin, }; -const union AffineAnimCmd gUnknown_83FF080[] = //83FF080 +const union AffineAnimCmd gUnknown_83FF080[] = { AFFINEANIMCMD_FRAME(-12, 8, 0, 4), AFFINEANIMCMD_FRAME(20, -20, 0, 4), @@ -439,18 +440,18 @@ const union AffineAnimCmd gUnknown_83FF080[] = //83FF080 AFFINEANIMCMD_END, }; -const union AnimCmd gTriAttackTriangleAnimCmds[] = //83FF0A0 +const union AnimCmd gTriAttackTriangleAnimCmds[] = { ANIMCMD_FRAME(0, 8), ANIMCMD_END, }; -const union AnimCmd *const gTriAttackTriangleAnimTable[] = //83FF0A8 +const union AnimCmd *const gTriAttackTriangleAnimTable[] = { gTriAttackTriangleAnimCmds, }; -const union AffineAnimCmd gTriAttackTriangleAffineAnimCmds[] = //83FF0AC +const union AffineAnimCmd gTriAttackTriangleAffineAnimCmds[] = { AFFINEANIMCMD_FRAME(0, 0, 5, 40), AFFINEANIMCMD_FRAME(0, 0, 10, 10), @@ -459,12 +460,12 @@ const union AffineAnimCmd gTriAttackTriangleAffineAnimCmds[] = //83FF0AC AFFINEANIMCMD_JUMP(0), }; -const union AffineAnimCmd *const gTriAttackTriangleAffineAnimTable[] = //83FF0D4 +const union AffineAnimCmd *const gTriAttackTriangleAffineAnimTable[] = { gTriAttackTriangleAffineAnimCmds, }; -const struct SpriteTemplate gTriAttackTriangleSpriteTemplate = //83FF0D8 +const struct SpriteTemplate gTriAttackTriangleSpriteTemplate = { .tileTag = ANIM_TAG_TRI_FORCE_TRIANGLE, .paletteTag = ANIM_TAG_TRI_FORCE_TRIANGLE, @@ -475,7 +476,7 @@ const struct SpriteTemplate gTriAttackTriangleSpriteTemplate = //83FF0D8 .callback = AnimTriAttackTriangle, }; -const union AnimCmd gEclipsingOrbAnimCmds[] = //83FF0F0 +const union AnimCmd gEclipsingOrbAnimCmds[] = { ANIMCMD_FRAME(0, 3), ANIMCMD_FRAME(16, 3), @@ -488,12 +489,12 @@ const union AnimCmd gEclipsingOrbAnimCmds[] = //83FF0F0 ANIMCMD_END, }; -const union AnimCmd *const gEclipsingOrbAnimTable[] = //83FF114 +const union AnimCmd *const gEclipsingOrbAnimTable[] = { gEclipsingOrbAnimCmds, }; -const struct SpriteTemplate gEclipsingOrbSpriteTemplate = //83FF118 +const struct SpriteTemplate gEclipsingOrbSpriteTemplate = { .tileTag = ANIM_TAG_ECLIPSING_ORB, .paletteTag = ANIM_TAG_ECLIPSING_ORB, @@ -504,7 +505,7 @@ const struct SpriteTemplate gEclipsingOrbSpriteTemplate = //83FF118 .callback = AnimSpriteOnMonPos, }; -const union AffineAnimCmd DefenseCurlDeformMonAffineAnimCmds[] = //83FF130 +const union AffineAnimCmd DefenseCurlDeformMonAffineAnimCmds[] = { AFFINEANIMCMD_FRAME(-12, 20, 0, 8), AFFINEANIMCMD_FRAME(12, -20, 0, 8), @@ -512,7 +513,7 @@ const union AffineAnimCmd DefenseCurlDeformMonAffineAnimCmds[] = //83FF130 AFFINEANIMCMD_END, }; -const struct SpriteTemplate gBatonPassPokeballSpriteTemplate = //83FF150 +const struct SpriteTemplate gBatonPassPokeballSpriteTemplate = { .tileTag = ANIM_TAG_POKEBALL, .paletteTag = ANIM_TAG_POKEBALL, @@ -523,7 +524,7 @@ const struct SpriteTemplate gBatonPassPokeballSpriteTemplate = //83FF150 .callback = AnimBatonPassPokeball, }; -const struct SpriteTemplate gWishStarSpriteTemplate = //83FF168 +const struct SpriteTemplate gWishStarSpriteTemplate = { .tileTag = ANIM_TAG_GOLD_STARS, .paletteTag = ANIM_TAG_GOLD_STARS, @@ -534,7 +535,7 @@ const struct SpriteTemplate gWishStarSpriteTemplate = //83FF168 .callback = AnimWishStar, }; -const struct SpriteTemplate gMiniTwinklingStarSpriteTemplate = //83FF180 +const struct SpriteTemplate gMiniTwinklingStarSpriteTemplate = { .tileTag = ANIM_TAG_GOLD_STARS, .paletteTag = ANIM_TAG_GOLD_STARS, @@ -545,7 +546,7 @@ const struct SpriteTemplate gMiniTwinklingStarSpriteTemplate = //83FF180 .callback = AnimMiniTwinklingStar, }; -const union AffineAnimCmd gStockpileDeformMonAffineAnimCmds[] = //83FF198 +const union AffineAnimCmd gStockpileDeformMonAffineAnimCmds[] = { AFFINEANIMCMD_FRAME(8, -8, 0, 12), AFFINEANIMCMD_FRAME(-16, 16, 0, 12), @@ -554,7 +555,7 @@ const union AffineAnimCmd gStockpileDeformMonAffineAnimCmds[] = //83FF198 AFFINEANIMCMD_END, }; -const union AffineAnimCmd gSpitUpDeformMonAffineAnimCmds[] = //83FF1C0 +const union AffineAnimCmd gSpitUpDeformMonAffineAnimCmds[] = { AFFINEANIMCMD_FRAME(0, 6, 0, 20), AFFINEANIMCMD_FRAME(0, 0, 0, 20), @@ -565,7 +566,7 @@ const union AffineAnimCmd gSpitUpDeformMonAffineAnimCmds[] = //83FF1C0 AFFINEANIMCMD_END, }; -const struct SpriteTemplate gSwallowBlueOrbSpriteTemplate = //83FF1F8 +const struct SpriteTemplate gSwallowBlueOrbSpriteTemplate = { .tileTag = ANIM_TAG_BLUE_ORB, .paletteTag = ANIM_TAG_BLUE_ORB, @@ -576,7 +577,7 @@ const struct SpriteTemplate gSwallowBlueOrbSpriteTemplate = //83FF1F8 .callback = AnimSwallowBlueOrb, }; -const union AffineAnimCmd gSwallowDeformMonAffineAnimCmds[] = //83FF210 +const union AffineAnimCmd gSwallowDeformMonAffineAnimCmds[] = { AFFINEANIMCMD_FRAME(0, 6, 0, 20), AFFINEANIMCMD_FRAME(0, 0, 0, 20), @@ -586,7 +587,7 @@ const union AffineAnimCmd gSwallowDeformMonAffineAnimCmds[] = //83FF210 AFFINEANIMCMD_END, }; -const s8 gMorningSunLightBeamCoordsTable[] = //83FF240 +const s8 gMorningSunLightBeamCoordsTable[] = { 0xE8, 0x18, @@ -594,33 +595,33 @@ const s8 gMorningSunLightBeamCoordsTable[] = //83FF240 0x00, }; -const union AnimCmd gGreenStarAnimCmds1[] = //83FF244 +const union AnimCmd gGreenStarAnimCmds1[] = { ANIMCMD_FRAME(0, 6), ANIMCMD_FRAME(4, 6), ANIMCMD_JUMP(0), }; -const union AnimCmd gGreenStarAnimCmds2[] = //83FF250 +const union AnimCmd gGreenStarAnimCmds2[] = { ANIMCMD_FRAME(8, 6), ANIMCMD_END, }; -const union AnimCmd gGreenStarAnimCmds3[] = //83FF258 +const union AnimCmd gGreenStarAnimCmds3[] = { ANIMCMD_FRAME(12, 6), ANIMCMD_END, }; -const union AnimCmd *const gGreenStarAnimTable[] = //83FF260 +const union AnimCmd *const gGreenStarAnimTable[] = { gGreenStarAnimCmds1, gGreenStarAnimCmds2, gGreenStarAnimCmds3, }; -const struct SpriteTemplate gGreenStarSpriteTemplate = //83FF26C +const struct SpriteTemplate gGreenStarSpriteTemplate = { .tileTag = ANIM_TAG_GREEN_STAR, .paletteTag = ANIM_TAG_GREEN_STAR, @@ -631,7 +632,7 @@ const struct SpriteTemplate gGreenStarSpriteTemplate = //83FF26C .callback = AnimGreenStar, }; -const s8 gDoomDesireLightBeamCoordTable[] = //83FF284 +const s8 gDoomDesireLightBeamCoordTable[] = { 0x78, 0x50, @@ -639,7 +640,7 @@ const s8 gDoomDesireLightBeamCoordTable[] = //83FF284 0x00, }; -const u8 gDoomDesireLightBeamDelayTable[] = //83FF288 +const u8 gDoomDesireLightBeamDelayTable[] = { 0, 0, @@ -648,7 +649,7 @@ const u8 gDoomDesireLightBeamDelayTable[] = //83FF288 50, }; -const union AffineAnimCmd gStrongFrustrationAffineAnimCmds[] = //83FF290 +const union AffineAnimCmd gStrongFrustrationAffineAnimCmds[] = { AFFINEANIMCMD_FRAME(0, -15, 0, 7), AFFINEANIMCMD_FRAME(0, 15, 0, 7), @@ -656,7 +657,7 @@ const union AffineAnimCmd gStrongFrustrationAffineAnimCmds[] = //83FF290 AFFINEANIMCMD_END, }; -const struct SpriteTemplate gWeakFrustrationAngerMarkSpriteTemplate = //83FF2B0 +const struct SpriteTemplate gWeakFrustrationAngerMarkSpriteTemplate = { .tileTag = ANIM_TAG_ANGER, .paletteTag = ANIM_TAG_ANGER, @@ -667,7 +668,7 @@ const struct SpriteTemplate gWeakFrustrationAngerMarkSpriteTemplate = //83FF2B0 .callback = AnimWeakFrustrationAngerMark, }; -const union AnimCmd gSweetScentPetalAnimCmds1[] = //83FF2C8 +const union AnimCmd gSweetScentPetalAnimCmds1[] = { ANIMCMD_FRAME(0, 8), ANIMCMD_FRAME(1, 8), @@ -680,7 +681,7 @@ const union AnimCmd gSweetScentPetalAnimCmds1[] = //83FF2C8 ANIMCMD_JUMP(0), }; -const union AnimCmd gSweetScentPetalAnimCmds2[] = //83FF2EC +const union AnimCmd gSweetScentPetalAnimCmds2[] = { ANIMCMD_FRAME(0, 8, .hFlip = TRUE), ANIMCMD_FRAME(1, 8, .hFlip = TRUE), @@ -693,20 +694,20 @@ const union AnimCmd gSweetScentPetalAnimCmds2[] = //83FF2EC ANIMCMD_JUMP(0), }; -const union AnimCmd gSweetScentPetalAnimCmds3[] = //83FF310 +const union AnimCmd gSweetScentPetalAnimCmds3[] = { ANIMCMD_FRAME(0, 8), ANIMCMD_END, }; -const union AnimCmd *const gSweetScentPetalAnimCmdTable[] = //83FF318 +const union AnimCmd *const gSweetScentPetalAnimCmdTable[] = { gSweetScentPetalAnimCmds1, gSweetScentPetalAnimCmds2, gSweetScentPetalAnimCmds3, }; -const struct SpriteTemplate gSweetScentPetalSpriteTemplate = //83FF324 +const struct SpriteTemplate gSweetScentPetalSpriteTemplate = { .tileTag = ANIM_TAG_PINK_PETAL, .paletteTag = ANIM_TAG_PINK_PETAL, @@ -717,9 +718,9 @@ const struct SpriteTemplate gSweetScentPetalSpriteTemplate = //83FF324 .callback = AnimSweetScentPetal, }; -const u16 gUnknown_83FF33C[] = INCBIN_U16("graphics/battle_anims/unk_83FF33C.gbapal"); //Unused +const u16 gUnknown_83FF33C[] = INCBIN_U16("graphics/battle_anims/unk_83FF33C.gbapal"); //Unused -const union AnimCmd gPainSplitAnimCmds[] = //83FF35C +const union AnimCmd gPainSplitAnimCmds[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_FRAME(4, 9), @@ -727,12 +728,12 @@ const union AnimCmd gPainSplitAnimCmds[] = //83FF35C ANIMCMD_END, }; -const union AnimCmd *const gPainSplitAnimCmdTable[] = //83FF36C +const union AnimCmd *const gPainSplitAnimCmdTable[] = { gPainSplitAnimCmds, }; -const struct SpriteTemplate gPainSplitProjectileSpriteTemplate = //83FF370 +const struct SpriteTemplate gPainSplitProjectileSpriteTemplate = { .tileTag = ANIM_TAG_PAIN_SPLIT, .paletteTag = ANIM_TAG_PAIN_SPLIT, @@ -743,7 +744,7 @@ const struct SpriteTemplate gPainSplitProjectileSpriteTemplate = //83FF370 .callback = AnimPainSplitProjectile, }; -const struct SpriteTemplate gFlatterConfettiSpriteTemplate = //83FF388 +const struct SpriteTemplate gFlatterConfettiSpriteTemplate = { .tileTag = ANIM_TAG_CONFETTI, .paletteTag = ANIM_TAG_CONFETTI, @@ -754,7 +755,7 @@ const struct SpriteTemplate gFlatterConfettiSpriteTemplate = //83FF388 .callback = AnimFlatterConfetti, }; -const struct SpriteTemplate gFlatterSpotlightSpriteTemplate = //83FF3A0 +const struct SpriteTemplate gFlatterSpotlightSpriteTemplate = { .tileTag = ANIM_TAG_SPOTLIGHT, .paletteTag = ANIM_TAG_SPOTLIGHT, @@ -765,7 +766,7 @@ const struct SpriteTemplate gFlatterSpotlightSpriteTemplate = //83FF3A0 .callback = AnimFlatterSpotlight, }; -const struct SpriteTemplate gReversalOrbSpriteTemplate = //83FF3B8 +const struct SpriteTemplate gReversalOrbSpriteTemplate = { .tileTag = ANIM_TAG_BLUE_ORB, .paletteTag = ANIM_TAG_BLUE_ORB, @@ -776,7 +777,7 @@ const struct SpriteTemplate gReversalOrbSpriteTemplate = //83FF3B8 .callback = AnimReversalOrb, }; -const union AffineAnimCmd gDeepInhaleAffineAnimCmds[] = //83FF3D0 +const union AffineAnimCmd gDeepInhaleAffineAnimCmds[] = { AFFINEANIMCMD_FRAME(16, 0, 0, 4), AFFINEANIMCMD_FRAME(0, -3, 0, 16), @@ -786,7 +787,7 @@ const union AffineAnimCmd gDeepInhaleAffineAnimCmds[] = //83FF3D0 AFFINEANIMCMD_END, }; -const union AffineAnimCmd gYawnCloudAffineAnimCmds1[] = //83FF400 +const union AffineAnimCmd gYawnCloudAffineAnimCmds1[] = { AFFINEANIMCMD_FRAME(0x80, 0x80, 0, 0), AFFINEANIMCMD_FRAME(-8, -8, 0, 8), @@ -794,7 +795,7 @@ const union AffineAnimCmd gYawnCloudAffineAnimCmds1[] = //83FF400 AFFINEANIMCMD_JUMP(0), }; -const union AffineAnimCmd gYawnCloudAffineAnimCmds2[] = //83FF420 +const union AffineAnimCmd gYawnCloudAffineAnimCmds2[] = { AFFINEANIMCMD_FRAME(0xC0, 0xC0, 0, 0), AFFINEANIMCMD_FRAME(8, 8, 0, 8), @@ -802,7 +803,7 @@ const union AffineAnimCmd gYawnCloudAffineAnimCmds2[] = //83FF420 AFFINEANIMCMD_JUMP(0), }; -const union AffineAnimCmd gYawnCloudAffineAnimCmds3[] = //83FF440 +const union AffineAnimCmd gYawnCloudAffineAnimCmds3[] = { AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0), AFFINEANIMCMD_FRAME(8, 8, 0, 8), @@ -810,14 +811,14 @@ const union AffineAnimCmd gYawnCloudAffineAnimCmds3[] = //83FF440 AFFINEANIMCMD_JUMP(0), }; -const union AffineAnimCmd *const gYawnCloudAffineAnimTable[] = //83FF460 +const union AffineAnimCmd *const gYawnCloudAffineAnimTable[] = { gYawnCloudAffineAnimCmds1, gYawnCloudAffineAnimCmds2, gYawnCloudAffineAnimCmds3, }; -const struct SpriteTemplate gYawnCloudSpriteTemplate = //83FF46C +const struct SpriteTemplate gYawnCloudSpriteTemplate = { .tileTag = ANIM_TAG_PINK_CLOUD, .paletteTag = ANIM_TAG_PINK_CLOUD, @@ -828,7 +829,7 @@ const struct SpriteTemplate gYawnCloudSpriteTemplate = //83FF46C .callback = AnimYawnCloud, }; -const union AffineAnimCmd gSmokeBallEscapeCloudAffineAnimCmds1[] = //83FF484 +const union AffineAnimCmd gSmokeBallEscapeCloudAffineAnimCmds1[] = { AFFINEANIMCMD_FRAME(0x80, 0x80, 0, 0), AFFINEANIMCMD_FRAME(-4, -6, 0, 16), @@ -836,7 +837,7 @@ const union AffineAnimCmd gSmokeBallEscapeCloudAffineAnimCmds1[] = //83FF484 AFFINEANIMCMD_JUMP(0), }; -const union AffineAnimCmd gSmokeBallEscapeCloudAffineAnimCmds2[] = //83FF4A4 +const union AffineAnimCmd gSmokeBallEscapeCloudAffineAnimCmds2[] = { AFFINEANIMCMD_FRAME(0xC0, 0xC0, 0, 0), AFFINEANIMCMD_FRAME(4, 6, 0, 16), @@ -844,7 +845,7 @@ const union AffineAnimCmd gSmokeBallEscapeCloudAffineAnimCmds2[] = //83FF4A4 AFFINEANIMCMD_JUMP(0), }; -const union AffineAnimCmd gSmokeBallEscapeCloudAffineAnimCmds3[] = //83FF4C4 +const union AffineAnimCmd gSmokeBallEscapeCloudAffineAnimCmds3[] = { AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0), AFFINEANIMCMD_FRAME(4, 6, 0, 16), @@ -852,7 +853,7 @@ const union AffineAnimCmd gSmokeBallEscapeCloudAffineAnimCmds3[] = //83FF4C4 AFFINEANIMCMD_JUMP(0), }; -const union AffineAnimCmd gSmokeBallEscapeCloudAffineAnimCmds4[] = //83FF4E4 +const union AffineAnimCmd gSmokeBallEscapeCloudAffineAnimCmds4[] = { AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0), AFFINEANIMCMD_FRAME(8, 10, 0, 30), @@ -860,7 +861,7 @@ const union AffineAnimCmd gSmokeBallEscapeCloudAffineAnimCmds4[] = //83FF4E4 AFFINEANIMCMD_JUMP(0), }; -const union AffineAnimCmd *const gSmokeBallEscapeCloudAffineAnimTable[] = //83FF504 +const union AffineAnimCmd *const gSmokeBallEscapeCloudAffineAnimTable[] = { gSmokeBallEscapeCloudAffineAnimCmds1, gSmokeBallEscapeCloudAffineAnimCmds2, @@ -868,7 +869,7 @@ const union AffineAnimCmd *const gSmokeBallEscapeCloudAffineAnimTable[] = //83FF gSmokeBallEscapeCloudAffineAnimCmds4, }; -const struct SpriteTemplate gSmokeBallEscapeCloudSpriteTemplate = //83FF514 +const struct SpriteTemplate gSmokeBallEscapeCloudSpriteTemplate = { .tileTag = ANIM_TAG_PINK_CLOUD, .paletteTag = ANIM_TAG_PINK_CLOUD, @@ -879,7 +880,7 @@ const struct SpriteTemplate gSmokeBallEscapeCloudSpriteTemplate = //83FF514 .callback = AnimSmokeBallEscapeCloud, }; -const union AffineAnimCmd gFacadeSquishAffineAnimCmds[] = //83FF52C +const union AffineAnimCmd gFacadeSquishAffineAnimCmds[] = { AFFINEANIMCMD_FRAME(-16, 16, 0, 6), AFFINEANIMCMD_FRAME(16, -16, 0, 12), @@ -887,7 +888,7 @@ const union AffineAnimCmd gFacadeSquishAffineAnimCmds[] = //83FF52C AFFINEANIMCMD_END, }; -const struct SpriteTemplate gFacadeSweatDropSpriteTemplate = //83FF54C +const struct SpriteTemplate gFacadeSweatDropSpriteTemplate = { .tileTag = ANIM_TAG_SWEAT_DROP, .paletteTag = ANIM_TAG_SWEAT_DROP, @@ -898,7 +899,7 @@ const struct SpriteTemplate gFacadeSweatDropSpriteTemplate = //83FF54C .callback = AnimFacadeSweatDrop, }; -const u16 gFacadeBlendColors[] = //83FF564 +const u16 gFacadeBlendColors[] = { RGB(28, 25, 1), RGB(28, 21, 5), @@ -926,27 +927,27 @@ const u16 gFacadeBlendColors[] = //83FF564 RGB(29, 27, 0), }; -const union AnimCmd gRoarNoiseLineAnimCmds1[] = //83FF594 +const union AnimCmd gRoarNoiseLineAnimCmds1[] = { ANIMCMD_FRAME(0, 3), ANIMCMD_FRAME(16, 3), ANIMCMD_JUMP(0), }; -const union AnimCmd gRoarNoiseLineAnimCmds2[] = //83FF5A0 +const union AnimCmd gRoarNoiseLineAnimCmds2[] = { ANIMCMD_FRAME(32, 3), ANIMCMD_FRAME(48, 3), ANIMCMD_JUMP(0), }; -const union AnimCmd *const gRoarNoiseLineAnimTable[] = //83FF5AC +const union AnimCmd *const gRoarNoiseLineAnimTable[] = { gRoarNoiseLineAnimCmds1, gRoarNoiseLineAnimCmds2, }; -const struct SpriteTemplate gRoarNoiseLineSpriteTemplate = //83FF5B4 +const struct SpriteTemplate gRoarNoiseLineSpriteTemplate = { .tileTag = ANIM_TAG_NOISE_LINE, .paletteTag = ANIM_TAG_NOISE_LINE, @@ -957,7 +958,7 @@ const struct SpriteTemplate gRoarNoiseLineSpriteTemplate = //83FF5B4 .callback = AnimRoarNoiseLine, }; -const struct SpriteTemplate gGlareEyeDotSpriteTemplate = //83FF5CC +const struct SpriteTemplate gGlareEyeDotSpriteTemplate = { .tileTag = ANIM_TAG_SMALL_RED_EYE, .paletteTag = ANIM_TAG_SMALL_RED_EYE, @@ -968,7 +969,7 @@ const struct SpriteTemplate gGlareEyeDotSpriteTemplate = //83FF5CC .callback = AnimGlareEyeDot, }; -const struct SpriteTemplate gAssistPawprintSpriteTemplate = //83FF5E4 +const struct SpriteTemplate gAssistPawprintSpriteTemplate = { .tileTag = ANIM_TAG_PAW_PRINT, .paletteTag = ANIM_TAG_PAW_PRINT, @@ -979,26 +980,26 @@ const struct SpriteTemplate gAssistPawprintSpriteTemplate = //83FF5E4 .callback = AnimAssistPawprint, }; -const union AffineAnimCmd gBarrageBallAffineAnimCmds1[] = //83FF5FC +const union AffineAnimCmd gBarrageBallAffineAnimCmds1[] = { AFFINEANIMCMD_FRAME(0, 0, -4, 24), AFFINEANIMCMD_END, }; -const union AffineAnimCmd gBarrageBallAffineAnimCmds2[] = //83FF60C +const union AffineAnimCmd gBarrageBallAffineAnimCmds2[] = { AFFINEANIMCMD_FRAME(0x100, 0x100, -64, 0), AFFINEANIMCMD_FRAME(0, 0, 4, 24), AFFINEANIMCMD_END, }; -const union AffineAnimCmd *const gBarrageBallAffineAnimTable[] = //83FF624 +const union AffineAnimCmd *const gBarrageBallAffineAnimTable[] = { gBarrageBallAffineAnimCmds1, gBarrageBallAffineAnimCmds2, }; -const struct SpriteTemplate gBarrageBallSpriteTemplate = //83FF62C +const struct SpriteTemplate gBarrageBallSpriteTemplate = { .tileTag = ANIM_TAG_RED_BALL, .paletteTag = ANIM_TAG_RED_BALL, @@ -1009,7 +1010,7 @@ const struct SpriteTemplate gBarrageBallSpriteTemplate = //83FF62C .callback = SpriteCallbackDummy, }; -const struct SpriteTemplate gSmellingSaltsHandSpriteTemplate = //83FF644 +const struct SpriteTemplate gSmellingSaltsHandSpriteTemplate = { .tileTag = ANIM_TAG_TAG_HAND, .paletteTag = ANIM_TAG_TAG_HAND, @@ -1020,14 +1021,14 @@ const struct SpriteTemplate gSmellingSaltsHandSpriteTemplate = //83FF644 .callback = AnimSmellingSaltsHand, }; -const union AffineAnimCmd gSmellingSaltsSquishAffineAnimCmds[] = //83FF65C +const union AffineAnimCmd gSmellingSaltsSquishAffineAnimCmds[] = { AFFINEANIMCMD_FRAME(0, -16, 0, 6), AFFINEANIMCMD_FRAME(0, 16, 0, 6), AFFINEANIMCMD_END, }; -const struct SpriteTemplate gSmellingSaltExclamationSpriteTemplate = //83FF674 +const struct SpriteTemplate gSmellingSaltExclamationSpriteTemplate = { .tileTag = ANIM_TAG_SMELLINGSALT_EFFECT, .paletteTag = ANIM_TAG_SMELLINGSALT_EFFECT, @@ -1038,7 +1039,7 @@ const struct SpriteTemplate gSmellingSaltExclamationSpriteTemplate = //83FF674 .callback = AnimSmellingSaltExclamation, }; -const struct SpriteTemplate gHelpingHandClapSpriteTemplate = //83FF68C +const struct SpriteTemplate gHelpingHandClapSpriteTemplate = { .tileTag = ANIM_TAG_TAG_HAND, .paletteTag = ANIM_TAG_TAG_HAND, @@ -1049,7 +1050,7 @@ const struct SpriteTemplate gHelpingHandClapSpriteTemplate = //83FF68C .callback = AnimHelpingHandClap, }; -const struct SpriteTemplate gForesightMagnifyingGlassSpriteTemplate = //83FF6A4 +const struct SpriteTemplate gForesightMagnifyingGlassSpriteTemplate = { .tileTag = ANIM_TAG_MAGNIFYING_GLASS, .paletteTag = ANIM_TAG_MAGNIFYING_GLASS, @@ -1060,7 +1061,7 @@ const struct SpriteTemplate gForesightMagnifyingGlassSpriteTemplate = //83FF6A4 .callback = AnimForesightMagnifyingGlass, }; -const struct SpriteTemplate gMeteorMashStarSpriteTemplate = //83FF6BC +const struct SpriteTemplate gMeteorMashStarSpriteTemplate = { .tileTag = ANIM_TAG_GOLD_STARS, .paletteTag = ANIM_TAG_GOLD_STARS, @@ -1071,7 +1072,7 @@ const struct SpriteTemplate gMeteorMashStarSpriteTemplate = //83FF6BC .callback = AnimMeteorMashStar, }; -const struct SpriteTemplate gUnknown_83FF6D4 = //83FF6D4 +const struct SpriteTemplate gUnknown_83FF6D4 = { .tileTag = ANIM_TAG_GOLD_STARS, .paletteTag = ANIM_TAG_GOLD_STARS, @@ -1082,7 +1083,7 @@ const struct SpriteTemplate gUnknown_83FF6D4 = //83FF6D4 .callback = AnimParticuleBurst, }; -const struct SpriteTemplate gBlockXSpriteTemplate = //83FF6EC +const struct SpriteTemplate gBlockXSpriteTemplate = { .tileTag = ANIM_TAG_X_SIGN, .paletteTag = ANIM_TAG_X_SIGN, @@ -1093,7 +1094,7 @@ const struct SpriteTemplate gBlockXSpriteTemplate = //83FF6EC .callback = AnimBlockX, }; -const struct SpriteTemplate gUnknown_83FF704 = //83FF704 +const struct SpriteTemplate gUnknown_83FF704 = { .tileTag = ANIM_TAG_ITEM_BAG, .paletteTag = ANIM_TAG_ITEM_BAG, @@ -1104,39 +1105,39 @@ const struct SpriteTemplate gUnknown_83FF704 = //83FF704 .callback = sub_80E3E84, }; -const union AnimCmd gKnockOffStrikeAnimCmds[] = //83FF71C +const union AnimCmd gKnockOffStrikeAnimCmds[] = { ANIMCMD_FRAME(0, 4), ANIMCMD_FRAME(64, 4), ANIMCMD_END, }; -const union AnimCmd *const gKnockOffStrikeAnimTable[] = //83FF728 +const union AnimCmd *const gKnockOffStrikeAnimTable[] = { gKnockOffStrikeAnimCmds, }; -const union AffineAnimCmd gKnockOffStrikeAffineanimCmds1[] = //83FF72C +const union AffineAnimCmd gKnockOffStrikeAffineanimCmds1[] = { AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0), AFFINEANIMCMD_FRAME(0, 0, -4, 8), AFFINEANIMCMD_END, }; -const union AffineAnimCmd gKnockOffStrikeAffineanimCmds2[] = //83FF744 +const union AffineAnimCmd gKnockOffStrikeAffineanimCmds2[] = { AFFINEANIMCMD_FRAME(-0x100, 0x100, 0, 0), AFFINEANIMCMD_FRAME(0, 0, 4, 8), AFFINEANIMCMD_END, }; -const union AffineAnimCmd *const gKnockOffStrikeAffineAnimTable[] = //83FF75C +const union AffineAnimCmd *const gKnockOffStrikeAffineAnimTable[] = { gKnockOffStrikeAffineanimCmds1, gKnockOffStrikeAffineanimCmds2, }; -const struct SpriteTemplate gKnockOffStrikeSpriteTemplate = //83FF764 +const struct SpriteTemplate gKnockOffStrikeSpriteTemplate = { .tileTag = ANIM_TAG_SLAM_HIT_2, .paletteTag = ANIM_TAG_SLAM_HIT_2, @@ -1147,18 +1148,18 @@ const struct SpriteTemplate gKnockOffStrikeSpriteTemplate = //83FF764 .callback = AnimKnockOffStrike, }; -const union AffineAnimCmd gRecycleSpriteAffineAnimCmds[] = //83FF77C +const union AffineAnimCmd gRecycleSpriteAffineAnimCmds[] = { AFFINEANIMCMD_FRAME(0, 0, -4, 64), AFFINEANIMCMD_JUMP(0), }; -const union AffineAnimCmd *const gRecycleSpriteAffineAnimTable[] = //83FF78C +const union AffineAnimCmd *const gRecycleSpriteAffineAnimTable[] = { gRecycleSpriteAffineAnimCmds, }; -const struct SpriteTemplate gRecycleSpriteTemplate = //83FF790 +const struct SpriteTemplate gRecycleSpriteTemplate = { .tileTag = ANIM_TAG_RECYCLE, .paletteTag = ANIM_TAG_RECYCLE, @@ -1169,7 +1170,7 @@ const struct SpriteTemplate gRecycleSpriteTemplate = //83FF790 .callback = AnimRecycle, }; -const union AffineAnimCmd gSlackOffSquishAffineAnimCmds[] = //83FF7A8 +const union AffineAnimCmd gSlackOffSquishAffineAnimCmds[] = { AFFINEANIMCMD_FRAME(0, 16, 0, 4), AFFINEANIMCMD_FRAME(-2, 0, 0, 8), @@ -1180,12 +1181,10 @@ const union AffineAnimCmd gSlackOffSquishAffineAnimCmds[] = //83FF7A8 }; // Functions -// 80DE2C0 void AnimBlackSmoke(struct Sprite *sprite) { sprite->pos1.x += gBattleAnimArgs[0]; sprite->pos1.y += gBattleAnimArgs[1]; - if (!gBattleAnimArgs[3]) sprite->data[0] = gBattleAnimArgs[2]; else @@ -1212,10 +1211,7 @@ static void AnimBlackSmokeStep(struct Sprite *sprite) void AnimTask_SmokescreenImpact(u8 taskId) { - SmokescreenImpact( //sub_804A76C - GetBattlerSpriteCoord(gBattleAnimTarget, 2) + 8, - GetBattlerSpriteCoord(gBattleAnimTarget, 3) + 8, - 0); + SmokescreenImpact(GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) + 8, GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) + 8, 0); DestroyAnimVisualTask(taskId); } @@ -1249,18 +1245,16 @@ static void AnimWhiteHalo_Step2(struct Sprite *sprite) void AnimTealAlert(struct Sprite *sprite) { u16 rotation; - u8 x = GetBattlerSpriteCoord(gBattleAnimTarget, 2); - u8 y = GetBattlerSpriteCoord(gBattleAnimTarget, 3); + u8 x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); + u8 y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); InitSpritePosToAnimTarget(sprite, TRUE); - rotation = ArcTan2Neg(sprite->pos1.x - x, sprite->pos1.y - y); rotation += 0x6000; if (IsContest()) rotation += 0x4000; TrySetSpriteRotScale(sprite, FALSE, 0x100, 0x100, rotation); - sprite->data[0] = gBattleAnimArgs[2]; sprite->data[2] = x; sprite->data[4] = y; @@ -1279,7 +1273,6 @@ void AnimMeanLookEye(struct Sprite *sprite) static void AnimMeanLookEye_Step1(struct Sprite *sprite) { SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(sprite->data[0], 16 - sprite->data[0])); - if (sprite->data[1]) sprite->data[0]--; else @@ -1353,7 +1346,6 @@ static void AnimMeanLookEye_Step3(struct Sprite *sprite) static void AnimMeanLookEye_Step4(struct Sprite *sprite) { SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(sprite->data[0], 16 - sprite->data[0])); - if (sprite->data[1]++ > 1) { sprite->data[0]--; @@ -1435,7 +1427,6 @@ void AnimSpikes(struct Sprite *sprite) InitSpritePosToAnimAttacker(sprite, TRUE); SetAverageBattlerPositions(gBattleAnimTarget, FALSE, &x, &y); - if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) gBattleAnimArgs[2] = -gBattleAnimArgs[2]; @@ -1443,7 +1434,6 @@ void AnimSpikes(struct Sprite *sprite) sprite->data[2] = x + gBattleAnimArgs[2]; sprite->data[4] = y + gBattleAnimArgs[3]; sprite->data[5] = -50; - InitAnimArcTranslation(sprite); sprite->callback = AnimSpikes_Step1; } @@ -1480,6 +1470,7 @@ void AnimLeer(struct Sprite *sprite) void AnimLetterZ(struct Sprite *sprite) { int var0; + if (sprite->data[0] == 0) { SetSpriteCoordsToAnimAttackerCoords(sprite); @@ -1510,7 +1501,6 @@ void AnimLetterZ(struct Sprite *sprite) sprite->data[4] += sprite->data[2]; sprite->pos2.x = sprite->data[3] / 2; sprite->pos2.y = Sin(var0 & 0xFF, 5) + (sprite->data[4] / 2); - if ((u16)(sprite->pos1.x + sprite->pos2.x) > 240) DestroyAnimSprite(sprite); } @@ -1549,9 +1539,7 @@ void AnimSpotlight(struct Sprite *sprite) gBattle_WIN0V = 0; SetGpuReg(REG_OFFSET_WIN0H, gBattle_WIN0H); SetGpuReg(REG_OFFSET_WIN0V, gBattle_WIN0V); - InitSpritePosToAnimTarget(sprite, FALSE); - sprite->oam.objMode = ST_OAM_OBJ_WINDOW; sprite->invisible = 1; sprite->callback = AnimSpotlight_Step1; @@ -1610,14 +1598,13 @@ void AnimClappingHand(struct Sprite *sprite) { if (gBattleAnimArgs[3] == 0) { - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 0); - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1); + sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X); + sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y); } sprite->pos1.x += gBattleAnimArgs[0]; sprite->pos1.y += gBattleAnimArgs[1]; sprite->oam.tileNum += 16; - if (gBattleAnimArgs[2] == 0) { sprite->oam.matrixNum = ST_OAM_HFLIP; @@ -1631,7 +1618,6 @@ void AnimClappingHand(struct Sprite *sprite) } sprite->data[0] = gBattleAnimArgs[4]; - if (sprite->data[3] != 255) sprite->data[3] = gBattleAnimArgs[2]; @@ -1712,17 +1698,16 @@ void AnimRapidSpin(struct Sprite *sprite) { if (gBattleAnimArgs[0] == 0) { - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 0) + gBattleAnimArgs[1]; - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1); + sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X) + gBattleAnimArgs[1]; + sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y); } else { - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, 0) + gBattleAnimArgs[1]; - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, 1); + sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X) + gBattleAnimArgs[1]; + sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y); } sprite->pos2.y = gBattleAnimArgs[2]; - sprite->data[0] = (sprite->pos2.y > gBattleAnimArgs[3]); sprite->data[1] = 0; sprite->data[2] = gBattleAnimArgs[4]; @@ -1736,7 +1721,6 @@ static void AnimRapidSpin_Step(struct Sprite *sprite) sprite->data[1] = (sprite->data[1] + sprite->data[2]) & 0xFF; sprite->pos2.x = gSineTable[sprite->data[1]] >> 4; sprite->pos2.y += sprite->data[3]; - if (sprite->data[0]) { if (sprite->pos2.y < sprite->data[4]) @@ -1782,7 +1766,6 @@ void AnimTask_RapinSpinMonElevation(u8 taskId) task->data[5] = gBattleAnimArgs[1]; task->data[6] = 0; task->data[7] = 0; - if (toBG2 == 1) { var3 = gBattle_BG1_X; @@ -1798,7 +1781,6 @@ void AnimTask_RapinSpinMonElevation(u8 taskId) task->data[9] = var4; task->data[10] = gBattleAnimArgs[2]; - if (!gBattleAnimArgs[2]) { task->data[11] = var4; @@ -1811,7 +1793,6 @@ void AnimTask_RapinSpinMonElevation(u8 taskId) } task->data[15] = 0; - i = task->data[2]; while (i <= task->data[3]) { @@ -1898,8 +1879,8 @@ void AnimTask_TormentAttacker(u8 taskId) task->data[0] = 0; task->data[1] = 0; - task->data[2] = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); - task->data[3] = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); + task->data[2] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); + task->data[3] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); task->data[4] = 32; task->data[5] = -20; task->data[6] = 0; @@ -1990,7 +1971,6 @@ static void TormentAttacker_Step(u8 taskId) gSprites[i].data[1] = 6; StartSpriteAnim(&gSprites[i], 2); gSprites[i].callback = TormentAttacker_Callback; - if (++j == 6) break; } @@ -2040,8 +2020,8 @@ void AnimTriAttackTriangle(struct Sprite *sprite) sprite->pos2.x = 0; sprite->pos2.y = 0; sprite->data[0] = 20; - sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2); - sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3); + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); + sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); sprite->callback = StartAnimLinearTranslation; } } @@ -2068,8 +2048,8 @@ void AnimBatonPassPokeball(struct Sprite *sprite) switch (sprite->data[0]) { case 0: - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); + sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); + sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); PrepareBattlerSpriteForRotScale(spriteId, ST_OAM_OBJ_NORMAL); sprite->data[1] = 256; sprite->data[2] = 256; @@ -2224,7 +2204,7 @@ void AnimSwallowBlueOrb(struct Sprite *sprite) case 0: InitSpritePosToAnimAttacker(sprite, FALSE); sprite->data[1] = 0x900; - sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); sprite->data[0]++; break; case 1: @@ -2250,7 +2230,6 @@ void AnimTask_SwallowDeformMon(u8 taskId) } } -// case 2 quite different :/ void AnimTask_TransformMon(u8 taskId) { int i, j; @@ -2357,25 +2336,25 @@ void AnimTask_MorningSunLightBeam(u8 taskId) if (!IsContest()) SetAnimBgAttribute(1, BG_ANIM_CHAR_BASE_BLOCK, 1); - sub_80752A0(&animBg); - AnimLoadCompressedBgTilemap(animBg.bgId, gBattleAnim_MorningSunTilemap); - AnimLoadCompressedBgGfx(animBg.bgId, gBattleAnim_MorningSunGfx, animBg.tilesOffset); - LoadCompressedPalette(gBattleAnim_MorningSunPal, animBg.paletteId * 16, 32); - if (IsContest()) - { - sub_80730C0(animBg.paletteId, animBg.bgTilemap, 0, 0); + sub_80752A0(&animBg); + AnimLoadCompressedBgTilemap(animBg.bgId, gBattleAnim_MorningSunTilemap); + AnimLoadCompressedBgGfx(animBg.bgId, gBattleAnim_MorningSunGfx, animBg.tilesOffset); + LoadCompressedPalette(gBattleAnim_MorningSunPal, animBg.paletteId * 16, 32); + if (IsContest()) + { + sub_80730C0(animBg.paletteId, animBg.bgTilemap, 0, 0); gBattle_BG1_X = -56; gBattle_BG1_Y = 0; - } - else - { + } + else + { if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) gBattle_BG1_X = -135; else gBattle_BG1_X = -10; gBattle_BG1_Y = 0; - } + } gTasks[taskId].data[10] = gBattle_BG1_X; gTasks[taskId].data[11] = gBattle_BG1_Y; @@ -2447,8 +2426,8 @@ void AnimGreenStar(struct Sprite *sprite) if (xOffset > 31) xOffset = 32 - xOffset; - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 0) + xOffset; - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1) + 32; + sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X) + xOffset; + sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y) + 32; sprite->data[1] = gBattleAnimArgs[0]; sprite->data[2] = gBattleAnimArgs[1]; @@ -2476,6 +2455,7 @@ void AnimGreenStar(struct Sprite *sprite) static void AnimGreenStar_Step1(struct Sprite *sprite) { s16 delta = sprite->data[3] + sprite->data[2]; + sprite->pos2.y -= delta >> 8; sprite->data[3] += sprite->data[2]; sprite->data[3] &= 0xFF; @@ -2538,16 +2518,16 @@ void AnimTask_DoomDesireLightBeam(u8 taskId) SetAnimBgAttribute(1, BG_ANIM_PRIORITY, 1); if (!IsContest()) SetAnimBgAttribute(1, BG_ANIM_CHAR_BASE_BLOCK, 1); - - sub_80752A0(&animBg); - AnimLoadCompressedBgTilemap(animBg.bgId, gBattleAnim_MorningSunTilemap); - AnimLoadCompressedBgGfx(animBg.bgId, gBattleAnim_MorningSunGfx, animBg.tilesOffset); - LoadCompressedPalette(gBattleAnim_MorningSunPal, animBg.paletteId * 16, 32); - + + sub_80752A0(&animBg); + AnimLoadCompressedBgTilemap(animBg.bgId, gBattleAnim_MorningSunTilemap); + AnimLoadCompressedBgGfx(animBg.bgId, gBattleAnim_MorningSunGfx, animBg.tilesOffset); + LoadCompressedPalette(gBattleAnim_MorningSunPal, animBg.paletteId * 16, 32); + if (IsContest()) { sub_80730C0(animBg.paletteId, animBg.bgTilemap, 0, 0); - gBattle_BG1_X = -56; + gBattle_BG1_X = -56; gBattle_BG1_Y = 0; } else @@ -2887,7 +2867,6 @@ static void AnimTask_FlailMovementStep(u8 taskId) SetSpriteRotScale(task->data[15], 0x100, 0x100, task->data[2]); SetBattlerSpriteYOffsetFromRotation(task->data[15]); gSprites[task->data[15]].pos2.x = -(((temp = task->data[2]) >= 0 ? task->data[2] : temp + 63) >> 6); - if (++task->data[1] > 8) { if (task->data[12]) @@ -3069,7 +3048,6 @@ void AnimFlatterSpotlight(struct Sprite *sprite) gBattle_WIN0V = 0; SetGpuReg(REG_OFFSET_WIN0H, gBattle_WIN0H); SetGpuReg(REG_OFFSET_WIN0V, gBattle_WIN0V); - sprite->data[0] = gBattleAnimArgs[2]; InitSpritePosToAnimTarget(sprite, FALSE); sprite->oam.objMode = ST_OAM_OBJ_WINDOW; @@ -3166,59 +3144,56 @@ void AnimTask_RolePlaySilhouette(u8 taskId) s16 coord1, coord2; GetAnimBattlerSpriteId(ANIM_ATTACKER); + if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) + { + isBackPic = 0; + personality = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimTarget]], MON_DATA_PERSONALITY); + otId = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimTarget]], MON_DATA_OT_ID); + if (gBattleSpritesDataPtr->battlerData[gBattleAnimTarget].transformSpecies == SPECIES_NONE) + { + if (GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER) + species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimTarget]], MON_DATA_SPECIES); + else + species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleAnimTarget]], MON_DATA_SPECIES); + } + else + { + species = gBattleSpritesDataPtr->battlerData[gBattleAnimTarget].transformSpecies; + } - if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) - { - isBackPic = 0; - personality = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimTarget]], MON_DATA_PERSONALITY); - otId = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimTarget]], MON_DATA_OT_ID); - if (gBattleSpritesDataPtr->battlerData[gBattleAnimTarget].transformSpecies == SPECIES_NONE) - { - if (GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER) - species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimTarget]], MON_DATA_SPECIES); - else - species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleAnimTarget]], MON_DATA_SPECIES); - } - else - { - species = gBattleSpritesDataPtr->battlerData[gBattleAnimTarget].transformSpecies; - } - - xOffset = 20; - priority = GetBattlerSpriteBGPriority(gBattleAnimAttacker); - } - else - { - isBackPic = 1; - personality = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleAnimTarget]], MON_DATA_PERSONALITY); - otId = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleAnimTarget]], MON_DATA_OT_ID); - if (gBattleSpritesDataPtr->battlerData[gBattleAnimTarget].transformSpecies == SPECIES_NONE) - { - if (GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER) - species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimTarget]], MON_DATA_SPECIES); - else - species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleAnimTarget]], MON_DATA_SPECIES); - } - else - { - species = gBattleSpritesDataPtr->battlerData[gBattleAnimTarget].transformSpecies; - } - - xOffset = -20; - priority = GetBattlerSpriteBGPriority(gBattleAnimAttacker); - } - - coord1 = GetBattlerSpriteCoord(gBattleAnimAttacker, 0); - coord2 = GetBattlerSpriteCoord(gBattleAnimAttacker, 1); - spriteId = sub_80768D0(species, isBackPic, 0, coord1 + xOffset, coord2, 5, personality, otId, gBattleAnimTarget, 1); + xOffset = 20; + priority = GetBattlerSpriteBGPriority(gBattleAnimAttacker); + } + else + { + isBackPic = 1; + personality = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleAnimTarget]], MON_DATA_PERSONALITY); + otId = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleAnimTarget]], MON_DATA_OT_ID); + if (gBattleSpritesDataPtr->battlerData[gBattleAnimTarget].transformSpecies == SPECIES_NONE) + { + if (GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER) + species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimTarget]], MON_DATA_SPECIES); + else + species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleAnimTarget]], MON_DATA_SPECIES); + } + else + { + species = gBattleSpritesDataPtr->battlerData[gBattleAnimTarget].transformSpecies; + } + + xOffset = -20; + priority = GetBattlerSpriteBGPriority(gBattleAnimAttacker); + } + coord1 = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X); + coord2 = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y); + spriteId = sub_80768D0(species, isBackPic, 0, coord1 + xOffset, coord2, 5, personality, otId, gBattleAnimTarget, 1); gSprites[spriteId].oam.priority = priority; gSprites[spriteId].oam.objMode = ST_OAM_OBJ_BLEND; FillPalette(RGB_WHITE, (gSprites[spriteId].oam.paletteNum << 4) + 0x100, 32); gSprites[spriteId].oam.priority = priority; SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_ALL); SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gTasks[taskId].data[1], 16 - gTasks[taskId].data[1])); - gTasks[taskId].data[0] = spriteId; gTasks[taskId].func = AnimTask_RolePlaySilhouetteStep1; } @@ -3242,6 +3217,7 @@ static void AnimTask_RolePlaySilhouetteStep1(u8 taskId) static void AnimTask_RolePlaySilhouetteStep2(u8 taskId) { u8 spriteId = gTasks[taskId].data[0]; + gTasks[taskId].data[10] -= 16; gTasks[taskId].data[11] += 128; gSprites[spriteId].oam.affineMode |= ST_OAM_AFFINE_DOUBLE_MASK; @@ -3437,6 +3413,7 @@ static void AnimTask_AcidArmorStep(u8 taskId) void AnimTask_DeepInhale(u8 taskId) { struct Task *task = &gTasks[taskId]; + task->data[0] = 0; task->data[15] = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); PrepareAffineAnimInTaskData(&gTasks[taskId], task->data[15], gDeepInhaleAffineAnimCmds); @@ -3446,8 +3423,8 @@ void AnimTask_DeepInhale(u8 taskId) static void AnimTask_DeepInhaleStep(u8 taskId) { u16 var0; - struct Task *task = &gTasks[taskId]; + var0 = task->data[0]; task->data[0]++; var0 -= 20; @@ -3827,17 +3804,7 @@ static void AnimTask_FacadeColorBlendStep(u8 taskId) void sub_80E2084(u8 taskId) { - sub_80BBA20(taskId, - 0, - 0x1A0, - gBattleAnimAttacker, - gBattleAnimArgs[0], - 10, - 2, - 30, - gCureBubblesGfx, - gCureBubblesTilemap, - gCureBubblesPal); + sub_80BBA20(taskId, 0, 0x1A0, gBattleAnimAttacker, gBattleAnimArgs[0], 10, 2, 30, gCureBubblesGfx, gCureBubblesTilemap, gCureBubblesPal); } // Moves a noise line from the mon. @@ -3893,9 +3860,9 @@ void AnimTask_GlareEyeDots(u8 taskId) { struct Task *task = &gTasks[taskId]; - task->data[5] = 12; - task->data[6] = 3; - task->data[7] = 0; + task->data[5] = 12; + task->data[6] = 3; + task->data[7] = 0; if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) task->data[11] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2) + GetBattlerSpriteCoordAttr(gBattleAnimAttacker, BATTLER_COORD_ATTR_HEIGHT) / 4; @@ -4116,7 +4083,7 @@ void AnimSmellingSaltsHand(struct Sprite *sprite) sprite->oam.tileNum += 16; sprite->data[6] = gBattleAnimArgs[2]; sprite->data[7] = gBattleAnimArgs[1] == 0 ? -1 : 1; - sprite->pos1.y = GetBattlerSpriteCoord(battler, 3); + sprite->pos1.y = GetBattlerSpriteCoord(battler, BATTLER_COORD_Y_PIC_OFFSET); if (gBattleAnimArgs[1] == 0) { sprite->oam.matrixNum |= ST_OAM_HFLIP; @@ -4231,12 +4198,12 @@ void AnimSmellingSaltExclamation(struct Sprite *sprite) { if (gBattleAnimArgs[0] == ANIM_ATTACKER) { - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); + sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); sprite->pos1.y = GetBattlerSpriteCoordAttr(gBattleAnimAttacker, BATTLER_COORD_ATTR_TOP); } else { - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, 2); + sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); sprite->pos1.y = GetBattlerSpriteCoordAttr(gBattleAnimTarget, BATTLER_COORD_ATTR_TOP); } @@ -4373,22 +4340,22 @@ void AnimTask_HelpingHandAttackerMovement(u8 taskId) struct Task *task = &gTasks[taskId]; task->data[15] = GetAnimBattlerSpriteId(ANIM_ATTACKER); - if (IsDoubleBattle() == TRUE) - { - int x = GetBattlerSpriteCoord(gBattleAnimAttacker, 0); - int y = GetBattlerSpriteCoord(BATTLE_PARTNER(gBattleAnimAttacker), 0); - if (x > y) - task->data[14] = 1; - else - task->data[14] = -1; - } - else - { - if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) - task->data[14] = -1; - else - task->data[14] = 1; - } + if (IsDoubleBattle() == TRUE) + { + int x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X); + int y = GetBattlerSpriteCoord(BATTLE_PARTNER(gBattleAnimAttacker), BATTLER_COORD_X); + if (x > y) + task->data[14] = 1; + else + task->data[14] = -1; + } + else + { + if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) + task->data[14] = -1; + else + task->data[14] = 1; + } task->func = AnimTask_HelpingHandAttackerMovementStep; } @@ -4510,24 +4477,24 @@ static void AnimForesightMagnifyingGlassStep(struct Sprite *sprite) sprite->data[6] = 0; case 0: case 4: - x = GetBattlerSpriteCoordAttr(sprite->data[7], 5) - 4; - y = GetBattlerSpriteCoordAttr(sprite->data[7], 3) - 4; + x = GetBattlerSpriteCoordAttr(sprite->data[7], BATTLER_COORD_ATTR_RIGHT) - 4; + y = GetBattlerSpriteCoordAttr(sprite->data[7], BATTLER_COORD_ATTR_BOTTOM) - 4; break; case 1: - x = GetBattlerSpriteCoordAttr(sprite->data[7], 5) - 4; - y = GetBattlerSpriteCoordAttr(sprite->data[7], 2) + 4; + x = GetBattlerSpriteCoordAttr(sprite->data[7], BATTLER_COORD_ATTR_RIGHT) - 4; + y = GetBattlerSpriteCoordAttr(sprite->data[7], BATTLER_COORD_ATTR_TOP) + 4; break; case 2: - x = GetBattlerSpriteCoordAttr(sprite->data[7], 4) + 4; - y = GetBattlerSpriteCoordAttr(sprite->data[7], 3) - 4; + x = GetBattlerSpriteCoordAttr(sprite->data[7], BATTLER_COORD_ATTR_LEFT) + 4; + y = GetBattlerSpriteCoordAttr(sprite->data[7], BATTLER_COORD_ATTR_BOTTOM) - 4; break; case 3: - x = GetBattlerSpriteCoordAttr(sprite->data[7], 4) + 4; - y = GetBattlerSpriteCoordAttr(sprite->data[7], 2) - 4; + x = GetBattlerSpriteCoordAttr(sprite->data[7], BATTLER_COORD_ATTR_LEFT) + 4; + y = GetBattlerSpriteCoordAttr(sprite->data[7], BATTLER_COORD_ATTR_TOP) - 4; break; case 5: - x = GetBattlerSpriteCoord(sprite->data[7], 2); - y = GetBattlerSpriteCoord(sprite->data[7], 3); + x = GetBattlerSpriteCoord(sprite->data[7], BATTLER_COORD_X_2); + y = GetBattlerSpriteCoord(sprite->data[7], BATTLER_COORD_Y_PIC_OFFSET); break; } @@ -4625,8 +4592,8 @@ static void AnimMeteorMashStarStep(struct Sprite *sprite) // arg 4: duration void AnimMeteorMashStar(struct Sprite *sprite) { - s16 y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); // unused local variable - s16 x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); // unused local variable + s16 y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); + s16 x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); if (GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER) { @@ -4752,7 +4719,7 @@ void AnimBlockX(struct Sprite *sprite) y = -96; } - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, 3); + sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); sprite->pos2.y = y; sprite->callback = AnimBlockXStep; } @@ -4880,6 +4847,7 @@ static void AnimTask_OdorSleuthMovementWaitFinish(u8 taskId) static void MoveOdorSleuthClone(struct Sprite *sprite) { int zero = 0; + if (++sprite->data[1] > 1) { sprite->data[1] = 0; @@ -4931,8 +4899,8 @@ void AnimTask_GetReturnPowerLevel(u8 taskId) // Makes the mon run out of screen, run past the opposing mon, and return to its original position. // No args. -/* -attempt.. +#ifdef NONMATCHING +// `species` variable getting loaded into r6 instead of r5 void AnimTask_SnatchOpposingMonMove(u8 taskId) { u8 spriteId, spriteId2; @@ -4940,11 +4908,9 @@ void AnimTask_SnatchOpposingMonMove(u8 taskId) u32 otId; u16 species; u8 subpriority; - //bool8 isBackPic; + bool8 isBackPic; s16 x; - u16 tSpecies; - switch (gTasks[taskId].data[0]) { case 0: @@ -4964,174 +4930,32 @@ void AnimTask_SnatchOpposingMonMove(u8 taskId) } break; case 1: - if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) - { - personality = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_PERSONALITY); - otId = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_OT_ID); - - tSpecies = gBattleSpritesDataPtr->battlerData[gBattleAnimAttacker].transformSpecies; - if (tSpecies == SPECIES_NONE) - species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_SPECIES); - else - species = gBattleSpritesDataPtr->battlerData[gBattleAnimAttacker].transformSpecies; - - subpriority = gSprites[GetAnimBattlerSpriteId(ANIM_TARGET)].subpriority + 1; - //isBackPic = FALSE; - //x = 272; - spriteId = sub_80768D0(species, FALSE, 0, 272, GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y), subpriority, personality, otId, gBattleAnimAttacker, 0); - } - else - { - personality = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_PERSONALITY); - otId = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_OT_ID); - - tSpecies = gBattleSpritesDataPtr->battlerData[gBattleAnimAttacker].transformSpecies; - if (tSpecies == SPECIES_NONE) - species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_SPECIES); - else - species = gBattleSpritesDataPtr->battlerData[gBattleAnimAttacker].transformSpecies; - - subpriority = gSprites[GetAnimBattlerSpriteId(ANIM_TARGET)].subpriority - 1; - //isBackPic = TRUE; - //x = -32; - spriteId = sub_80768D0(species, TRUE, 0, -32, GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y), subpriority, personality, otId, gBattleAnimAttacker, 0); - } - - if (gBattleSpritesDataPtr->battlerData[gBattleAnimAttacker].transformSpecies != SPECIES_NONE) - BlendPalette((gSprites[spriteId].oam.paletteNum * 16) | 0x100, 16, 6, RGB_WHITE); - - gTasks[taskId].data[15] = spriteId; - gTasks[taskId].data[0]++; - break; - case 2: - spriteId2 = gTasks[taskId].data[15]; - gTasks[taskId].data[1] += 0x800; if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) - gSprites[spriteId2].pos2.x -= (gTasks[taskId].data[1] >> 8); - else - gSprites[spriteId2].pos2.x += (gTasks[taskId].data[1] >> 8); - - gTasks[taskId].data[1] &= 0xFF; - x = gSprites[spriteId2].pos1.x + gSprites[spriteId2].pos2.x; - if (gTasks[taskId].data[14] == 0) { - if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) - { - if (x < GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X)) - { - gTasks[taskId].data[14]++; - gBattleAnimArgs[7] = 0xFFFF; - } - } + personality = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_PERSONALITY); + otId = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_OT_ID); + if (gBattleSpritesDataPtr->battlerData[gBattleAnimAttacker].transformSpecies == SPECIES_NONE) + species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_SPECIES); else - { - if (x > GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X)) - { - gTasks[taskId].data[14]++; - gBattleAnimArgs[7] = 0xFFFF; - } - } - } - - if ((u16)(x + 32) > 304) - { - gTasks[taskId].data[1] = 0; - gTasks[taskId].data[0]++; - } - break; - case 3: - spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER); - spriteId2 = gTasks[taskId].data[15]; - DestroySpriteAndFreeResources_(&gSprites[spriteId2]); - if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) - gSprites[spriteId].pos2.x = -gSprites[spriteId].pos1.x - 32; - else - gSprites[spriteId].pos2.x = 272 - gSprites[spriteId].pos1.x; + species = gBattleSpritesDataPtr->battlerData[gBattleAnimAttacker].transformSpecies; - gTasks[taskId].data[0]++; - break; - case 4: - spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER); - gTasks[taskId].data[1] += 0x800; - if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) - { - gSprites[spriteId].pos2.x += (gTasks[taskId].data[1] >> 8); - if (gSprites[spriteId].pos2.x + gSprites[spriteId].pos1.x >= GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X)) - gSprites[spriteId].pos2.x = 0; + subpriority = gSprites[GetAnimBattlerSpriteId(ANIM_TARGET)].subpriority + 1; + isBackPic = FALSE; + x = 272; } else { - gSprites[spriteId].pos2.x -= (gTasks[taskId].data[1] >> 8); - if (gSprites[spriteId].pos2.x + gSprites[spriteId].pos1.x <= GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X)) - gSprites[spriteId].pos2.x = 0; - } - - gTasks[taskId].data[1] = (u8)gTasks[taskId].data[1]; - if (gSprites[spriteId].pos2.x == 0) - DestroyAnimVisualTask(taskId); - break; - } -} -*/ - -#ifdef NONMATCHING -// `species` variable getting loaded into r6 instead of r5 -//https://cexplore.karathan.at/z/0gMuxf -void AnimTask_SnatchOpposingMonMove(u8 taskId) -{ - u8 spriteId, spriteId2; - u32 personality; - u32 otId; - u16 species; - u8 subpriority; - bool8 isBackPic; - s16 x; - - switch (gTasks[taskId].data[0]) - { - case 0: - spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER); - gTasks[taskId].data[1] += 0x800; - if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) - gSprites[spriteId].pos2.x += (gTasks[taskId].data[1] >> 8); - else - gSprites[spriteId].pos2.x -= (gTasks[taskId].data[1] >> 8); + personality = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_PERSONALITY); + otId = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_OT_ID); + if (gBattleSpritesDataPtr->battlerData[gBattleAnimAttacker].transformSpecies == SPECIES_NONE) + species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_SPECIES); + else + species = gBattleSpritesDataPtr->battlerData[gBattleAnimAttacker].transformSpecies; - gTasks[taskId].data[1] &= 0xFF; - x = gSprites[spriteId].pos1.x + gSprites[spriteId].pos2.x; - if ((u16)(x + 32) > 304) - { - gTasks[taskId].data[1] = 0; - gTasks[taskId].data[0]++; + subpriority = gSprites[GetAnimBattlerSpriteId(ANIM_TARGET)].subpriority - 1; + isBackPic = TRUE; + x = -32; } - break; - case 1: - if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) - { - personality = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_PERSONALITY); - otId = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_OT_ID); - if (gBattleSpritesDataPtr->battlerData[gBattleAnimAttacker].transformSpecies == SPECIES_NONE) - species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_SPECIES); - else - species = gBattleSpritesDataPtr->battlerData[gBattleAnimAttacker].transformSpecies; - - subpriority = gSprites[GetAnimBattlerSpriteId(ANIM_TARGET)].subpriority + 1; - isBackPic = FALSE; - x = 272; - } - else - { - personality = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_PERSONALITY); - otId = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_OT_ID); - if (gBattleSpritesDataPtr->battlerData[gBattleAnimAttacker].transformSpecies == SPECIES_NONE) - species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_SPECIES); - else - species = gBattleSpritesDataPtr->battlerData[gBattleAnimAttacker].transformSpecies; - - subpriority = gSprites[GetAnimBattlerSpriteId(ANIM_TARGET)].subpriority - 1; - isBackPic = TRUE; - x = -32; - } spriteId2 = sub_80768D0(species, isBackPic, 0, x, GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y), subpriority, personality, otId, gBattleAnimAttacker, 0); if (gBattleSpritesDataPtr->battlerData[gBattleAnimAttacker].transformSpecies != SPECIES_NONE) @@ -5213,653 +5037,653 @@ void AnimTask_SnatchOpposingMonMove(u8 taskId) NAKED void AnimTask_SnatchOpposingMonMove(u8 taskId) { - asm_unified("\tpush {r4-r7,lr}\n" - "\tmov r7, r10\n" - "\tmov r6, r9\n" - "\tmov r5, r8\n" - "\tpush {r5-r7}\n" - "\tsub sp, 0x1C\n" - "\tlsls r0, 24\n" - "\tlsrs r0, 24\n" - "\tmov r8, r0\n" - "\tldr r1, _080E395C @ =gTasks\n" - "\tlsls r0, 2\n" - "\tadd r0, r8\n" - "\tlsls r0, 3\n" - "\tadds r0, r1\n" - "\tmovs r1, 0x8\n" - "\tldrsh r0, [r0, r1]\n" - "\tcmp r0, 0x4\n" - "\tbls _080E3952\n" - "\tb _080E3E6C\n" - "_080E3952:\n" - "\tlsls r0, 2\n" - "\tldr r1, _080E3960 @ =_080E3964\n" - "\tadds r0, r1\n" - "\tldr r0, [r0]\n" - "\tmov pc, r0\n" - "\t.align 2, 0\n" - "_080E395C: .4byte gTasks\n" - "_080E3960: .4byte _080E3964\n" - "\t.align 2, 0\n" - "_080E3964:\n" - "\t.4byte _080E3978\n" - "\t.4byte _080E3A2C\n" - "\t.4byte _080E3BEC\n" - "\t.4byte _080E3D0C\n" - "\t.4byte _080E3D90\n" - "_080E3978:\n" - "\tmovs r0, 0\n" - "\tbl GetAnimBattlerSpriteId\n" - "\tlsls r0, 24\n" - "\tlsrs r7, r0, 24\n" - "\tldr r1, _080E39C4 @ =gTasks\n" - "\tmov r2, r8\n" - "\tlsls r4, r2, 2\n" - "\tadds r0, r4, r2\n" - "\tlsls r0, 3\n" - "\tadds r6, r0, r1\n" - "\tmovs r3, 0x80\n" - "\tlsls r3, 4\n" - "\tadds r0, r3, 0\n" - "\tldrh r1, [r6, 0xA]\n" - "\tadds r0, r1\n" - "\tstrh r0, [r6, 0xA]\n" - "\tldr r0, _080E39C8 @ =gBattleAnimAttacker\n" - "\tldrb r0, [r0]\n" - "\tbl GetBattlerSide\n" - "\tlsls r0, 24\n" - "\tmov r9, r4\n" - "\tcmp r0, 0\n" - "\tbne _080E39D0\n" - "\tldr r2, _080E39CC @ =gSprites\n" - "\tlsls r3, r7, 4\n" - "\tadds r1, r3, r7\n" - "\tlsls r1, 2\n" - "\tadds r1, r2\n" - "\tldrh r0, [r6, 0xA]\n" - "\tlsls r0, 16\n" - "\tasrs r0, 24\n" - "\tldrh r4, [r1, 0x24]\n" - "\tadds r0, r4\n" - "\tstrh r0, [r1, 0x24]\n" - "\tb _080E39EA\n" - "\t.align 2, 0\n" - "_080E39C4: .4byte gTasks\n" - "_080E39C8: .4byte gBattleAnimAttacker\n" - "_080E39CC: .4byte gSprites\n" - "_080E39D0:\n" - "\tldr r3, _080E3A24 @ =gSprites\n" - "\tlsls r4, r7, 4\n" - "\tadds r2, r4, r7\n" - "\tlsls r2, 2\n" - "\tadds r2, r3\n" - "\tldrh r1, [r6, 0xA]\n" - "\tlsls r1, 16\n" - "\tasrs r1, 24\n" - "\tldrh r0, [r2, 0x24]\n" - "\tsubs r0, r1\n" - "\tstrh r0, [r2, 0x24]\n" - "\tadds r2, r3, 0\n" - "\tadds r3, r4, 0\n" - "_080E39EA:\n" - "\tldr r1, _080E3A28 @ =gTasks\n" - "\tmov r0, r9\n" - "\tadd r0, r8\n" - "\tlsls r0, 3\n" - "\tadds r4, r0, r1\n" - "\tldrb r0, [r4, 0xA]\n" - "\tstrh r0, [r4, 0xA]\n" - "\tadds r1, r3, r7\n" - "\tlsls r1, 2\n" - "\tadds r1, r2\n" - "\tldrh r0, [r1, 0x24]\n" - "\tldrh r1, [r1, 0x20]\n" - "\tadds r0, r1\n" - "\tlsls r0, 16\n" - "\tmovs r1, 0x80\n" - "\tlsls r1, 14\n" - "\tadds r0, r1\n" - "\tmovs r1, 0x98\n" - "\tlsls r1, 17\n" - "\tcmp r0, r1\n" - "\tbhi _080E3A16\n" - "\tb _080E3E6C\n" - "_080E3A16:\n" - "\tmovs r0, 0\n" - "\tstrh r0, [r4, 0xA]\n" - "\tldrh r0, [r4, 0x8]\n" - "\tadds r0, 0x1\n" - "\tstrh r0, [r4, 0x8]\n" - "\tb _080E3E6C\n" - "\t.align 2, 0\n" - "_080E3A24: .4byte gSprites\n" - "_080E3A28: .4byte gTasks\n" - "_080E3A2C:\n" - "\tldr r4, _080E3A90 @ =gBattleAnimAttacker\n" - "\tldrb r0, [r4]\n" - "\tbl GetBattlerSide\n" - "\tlsls r0, 24\n" - "\tcmp r0, 0\n" - "\tbne _080E3ACC\n" - "\tldr r7, _080E3A94 @ =gBattlerPartyIndexes\n" - "\tldrb r0, [r4]\n" - "\tlsls r0, 1\n" - "\tadds r0, r7\n" - "\tldrh r0, [r0]\n" - "\tmovs r6, 0x64\n" - "\tmuls r0, r6\n" - "\tldr r5, _080E3A98 @ =gPlayerParty\n" - "\tadds r0, r5\n" - "\tmovs r1, 0\n" - "\tbl GetMonData\n" - "\tmov r10, r0\n" - "\tldrb r0, [r4]\n" - "\tlsls r0, 1\n" - "\tadds r0, r7\n" - "\tldrh r0, [r0]\n" - "\tmuls r0, r6\n" - "\tadds r0, r5\n" - "\tmovs r1, 0x1\n" - "\tbl GetMonData\n" - "\tmov r9, r0\n" - "\tldr r0, _080E3A9C @ =gBattleSpritesDataPtr\n" - "\tldr r0, [r0]\n" - "\tldrb r2, [r4]\n" - "\tldr r1, [r0]\n" - "\tlsls r0, r2, 2\n" - "\tadds r1, r0, r1\n" - "\tldrh r0, [r1, 0x2]\n" - "\tcmp r0, 0\n" - "\tbne _080E3AA0\n" - "\tlsls r0, r2, 1\n" - "\tadds r0, r7\n" - "\tldrh r0, [r0]\n" - "\tmuls r0, r6\n" - "\tadds r0, r5\n" - "\tmovs r1, 0xB\n" - "\tbl GetMonData\n" - "\tlsls r0, 16\n" - "\tlsrs r5, r0, 16\n" - "\tb _080E3AA2\n" - "\t.align 2, 0\n" - "_080E3A90: .4byte gBattleAnimAttacker\n" - "_080E3A94: .4byte gBattlerPartyIndexes\n" - "_080E3A98: .4byte gPlayerParty\n" - "_080E3A9C: .4byte gBattleSpritesDataPtr\n" - "_080E3AA0:\n" - "\tldrh r5, [r1, 0x2]\n" - "_080E3AA2:\n" - "\tmovs r0, 0x1\n" - "\tbl GetAnimBattlerSpriteId\n" - "\tldr r2, _080E3AC8 @ =gSprites\n" - "\tlsls r0, 24\n" - "\tlsrs r0, 24\n" - "\tlsls r1, r0, 4\n" - "\tadds r1, r0\n" - "\tlsls r1, 2\n" - "\tadds r1, r2\n" - "\tadds r1, 0x43\n" - "\tldrb r0, [r1]\n" - "\tadds r0, 0x1\n" - "\tlsls r0, 24\n" - "\tlsrs r4, r0, 24\n" - "\tmovs r7, 0\n" - "\tmovs r6, 0x88\n" - "\tlsls r6, 1\n" - "\tb _080E3B54\n" - "\t.align 2, 0\n" - "_080E3AC8: .4byte gSprites\n" - "_080E3ACC:\n" - "\tldr r7, _080E3B24 @ =gBattlerPartyIndexes\n" - "\tldrb r0, [r4]\n" - "\tlsls r0, 1\n" - "\tadds r0, r7\n" - "\tldrh r0, [r0]\n" - "\tmovs r6, 0x64\n" - "\tmuls r0, r6\n" - "\tldr r5, _080E3B28 @ =gEnemyParty\n" - "\tadds r0, r5\n" - "\tmovs r1, 0\n" - "\tbl GetMonData\n" - "\tmov r10, r0\n" - "\tldrb r0, [r4]\n" - "\tlsls r0, 1\n" - "\tadds r0, r7\n" - "\tldrh r0, [r0]\n" - "\tmuls r0, r6\n" - "\tadds r0, r5\n" - "\tmovs r1, 0x1\n" - "\tbl GetMonData\n" - "\tmov r9, r0\n" - "\tldr r0, _080E3B2C @ =gBattleSpritesDataPtr\n" - "\tldr r0, [r0]\n" - "\tldrb r2, [r4]\n" - "\tldr r1, [r0]\n" - "\tlsls r0, r2, 2\n" - "\tadds r1, r0, r1\n" - "\tldrh r0, [r1, 0x2]\n" - "\tcmp r0, 0\n" - "\tbne _080E3B30\n" - "\tlsls r0, r2, 1\n" - "\tadds r0, r7\n" - "\tldrh r0, [r0]\n" - "\tmuls r0, r6\n" - "\tadds r0, r5\n" - "\tmovs r1, 0xB\n" - "\tbl GetMonData\n" - "\tlsls r0, 16\n" - "\tlsrs r5, r0, 16\n" - "\tb _080E3B32\n" - "\t.align 2, 0\n" - "_080E3B24: .4byte gBattlerPartyIndexes\n" - "_080E3B28: .4byte gEnemyParty\n" - "_080E3B2C: .4byte gBattleSpritesDataPtr\n" - "_080E3B30:\n" - "\tldrh r5, [r1, 0x2]\n" - "_080E3B32:\n" - "\tmovs r0, 0x1\n" - "\tbl GetAnimBattlerSpriteId\n" - "\tldr r2, _080E3BD0 @ =gSprites\n" - "\tlsls r0, 24\n" - "\tlsrs r0, 24\n" - "\tlsls r1, r0, 4\n" - "\tadds r1, r0\n" - "\tlsls r1, 2\n" - "\tadds r1, r2\n" - "\tadds r1, 0x43\n" - "\tldrb r0, [r1]\n" - "\tsubs r0, 0x1\n" - "\tlsls r0, 24\n" - "\tlsrs r4, r0, 24\n" - "\tmovs r7, 0x1\n" - "\tldr r6, _080E3BD4 @ =0x0000ffe0\n" - "_080E3B54:\n" - "\tldr r0, _080E3BD8 @ =gBattleAnimTarget\n" - "\tldrb r0, [r0]\n" - "\tmovs r1, 0x1\n" - "\tbl GetBattlerSpriteCoord\n" - "\tlsls r0, 24\n" - "\tlsrs r0, 24\n" - "\tlsls r3, r6, 16\n" - "\tasrs r3, 16\n" - "\tstr r0, [sp]\n" - "\tstr r4, [sp, 0x4]\n" - "\tmov r2, r10\n" - "\tstr r2, [sp, 0x8]\n" - "\tmov r4, r9\n" - "\tstr r4, [sp, 0xC]\n" - "\tldr r4, _080E3BDC @ =gBattleAnimAttacker\n" - "\tldrb r0, [r4]\n" - "\tstr r0, [sp, 0x10]\n" - "\tmovs r0, 0\n" - "\tstr r0, [sp, 0x14]\n" - "\tadds r0, r5, 0\n" - "\tadds r1, r7, 0\n" - "\tmovs r2, 0\n" - "\tbl sub_80768D0\n" - "\tlsls r0, 24\n" - "\tlsrs r5, r0, 24\n" - "\tldr r0, _080E3BE0 @ =gBattleSpritesDataPtr\n" - "\tldr r1, [r0]\n" - "\tldrb r0, [r4]\n" - "\tldr r1, [r1]\n" - "\tlsls r0, 2\n" - "\tadds r0, r1\n" - "\tldrh r0, [r0, 0x2]\n" - "\tcmp r0, 0\n" - "\tbeq _080E3BBE\n" - "\tldr r1, _080E3BD0 @ =gSprites\n" - "\tlsls r0, r5, 4\n" - "\tadds r0, r5\n" - "\tlsls r0, 2\n" - "\tadds r0, r1\n" - "\tldrb r0, [r0, 0x5]\n" - "\tlsrs r0, 4\n" - "\tlsls r0, 4\n" - "\tmovs r2, 0x80\n" - "\tlsls r2, 1\n" - "\tadds r1, r2, 0\n" - "\torrs r0, r1\n" - "\tldr r3, _080E3BE4 @ =0x00007fff\n" - "\tmovs r1, 0x10\n" - "\tmovs r2, 0x6\n" - "\tbl BlendPalette\n" - "_080E3BBE:\n" - "\tldr r0, _080E3BE8 @ =gTasks\n" - "\tmov r3, r8\n" - "\tlsls r1, r3, 2\n" - "\tadd r1, r8\n" - "\tlsls r1, 3\n" - "\tadds r1, r0\n" - "\tstrh r5, [r1, 0x26]\n" - "\tb _080E3D82\n" - "\t.align 2, 0\n" - "_080E3BD0: .4byte gSprites\n" - "_080E3BD4: .4byte 0x0000ffe0\n" - "_080E3BD8: .4byte gBattleAnimTarget\n" - "_080E3BDC: .4byte gBattleAnimAttacker\n" - "_080E3BE0: .4byte gBattleSpritesDataPtr\n" - "_080E3BE4: .4byte 0x00007fff\n" - "_080E3BE8: .4byte gTasks\n" - "_080E3BEC:\n" - "\tldr r1, _080E3C38 @ =gTasks\n" - "\tmov r0, r8\n" - "\tlsls r4, r0, 2\n" - "\tadds r0, r4, r0\n" - "\tlsls r0, 3\n" - "\tadds r6, r0, r1\n" - "\tldrh r0, [r6, 0x26]\n" - "\tlsls r0, 24\n" - "\tlsrs r5, r0, 24\n" - "\tmovs r1, 0x80\n" - "\tlsls r1, 4\n" - "\tadds r0, r1, 0\n" - "\tldrh r2, [r6, 0xA]\n" - "\tadds r0, r2\n" - "\tstrh r0, [r6, 0xA]\n" - "\tldr r0, _080E3C3C @ =gBattleAnimAttacker\n" - "\tldrb r0, [r0]\n" - "\tbl GetBattlerSide\n" - "\tlsls r0, 24\n" - "\tmov r9, r4\n" - "\tcmp r0, 0\n" - "\tbne _080E3C44\n" - "\tldr r3, _080E3C40 @ =gSprites\n" - "\tlsls r4, r5, 4\n" - "\tadds r2, r4, r5\n" - "\tlsls r2, 2\n" - "\tadds r2, r3\n" - "\tldrh r1, [r6, 0xA]\n" - "\tlsls r1, 16\n" - "\tasrs r1, 24\n" - "\tldrh r0, [r2, 0x24]\n" - "\tsubs r0, r1\n" - "\tstrh r0, [r2, 0x24]\n" - "\tadds r2, r3, 0\n" - "\tadds r3, r4, 0\n" - "\tb _080E3C5A\n" - "\t.align 2, 0\n" - "_080E3C38: .4byte gTasks\n" - "_080E3C3C: .4byte gBattleAnimAttacker\n" - "_080E3C40: .4byte gSprites\n" - "_080E3C44:\n" - "\tldr r2, _080E3CA8 @ =gSprites\n" - "\tlsls r3, r5, 4\n" - "\tadds r1, r3, r5\n" - "\tlsls r1, 2\n" - "\tadds r1, r2\n" - "\tldrh r0, [r6, 0xA]\n" - "\tlsls r0, 16\n" - "\tasrs r0, 24\n" - "\tldrh r4, [r1, 0x24]\n" - "\tadds r0, r4\n" - "\tstrh r0, [r1, 0x24]\n" - "_080E3C5A:\n" - "\tldr r1, _080E3CAC @ =gTasks\n" - "\tmov r0, r9\n" - "\tadd r0, r8\n" - "\tlsls r0, 3\n" - "\tadds r6, r0, r1\n" - "\tldrb r0, [r6, 0xA]\n" - "\tstrh r0, [r6, 0xA]\n" - "\tadds r1, r3, r5\n" - "\tlsls r1, 2\n" - "\tadds r1, r2\n" - "\tldrh r0, [r1, 0x24]\n" - "\tldrh r1, [r1, 0x20]\n" - "\tadds r0, r1\n" - "\tlsls r0, 16\n" - "\tlsrs r5, r0, 16\n" - "\tmovs r1, 0x24\n" - "\tldrsh r0, [r6, r1]\n" - "\tcmp r0, 0\n" - "\tbne _080E3CDA\n" - "\tldr r0, _080E3CB0 @ =gBattleAnimAttacker\n" - "\tldrb r0, [r0]\n" - "\tbl GetBattlerSide\n" - "\tlsls r0, 24\n" - "\tcmp r0, 0\n" - "\tbne _080E3CB8\n" - "\tlsls r4, r5, 16\n" - "\tasrs r4, 16\n" - "\tldr r0, _080E3CB4 @ =gBattleAnimTarget\n" - "\tldrb r0, [r0]\n" - "\tmovs r1, 0\n" - "\tbl GetBattlerSpriteCoord\n" - "\tlsls r0, 24\n" - "\tlsrs r0, 24\n" - "\tcmp r4, r0\n" - "\tbge _080E3CDA\n" - "\tb _080E3CCE\n" - "\t.align 2, 0\n" - "_080E3CA8: .4byte gSprites\n" - "_080E3CAC: .4byte gTasks\n" - "_080E3CB0: .4byte gBattleAnimAttacker\n" - "_080E3CB4: .4byte gBattleAnimTarget\n" - "_080E3CB8:\n" - "\tlsls r4, r5, 16\n" - "\tasrs r4, 16\n" - "\tldr r0, _080E3CFC @ =gBattleAnimTarget\n" - "\tldrb r0, [r0]\n" - "\tmovs r1, 0\n" - "\tbl GetBattlerSpriteCoord\n" - "\tlsls r0, 24\n" - "\tlsrs r0, 24\n" - "\tcmp r4, r0\n" - "\tble _080E3CDA\n" - "_080E3CCE:\n" - "\tldrh r0, [r6, 0x24]\n" - "\tadds r0, 0x1\n" - "\tstrh r0, [r6, 0x24]\n" - "\tldr r1, _080E3D00 @ =gBattleAnimArgs\n" - "\tldr r0, _080E3D04 @ =0x0000ffff\n" - "\tstrh r0, [r1, 0xE]\n" - "_080E3CDA:\n" - "\tlsls r0, r5, 16\n" - "\tmovs r2, 0x80\n" - "\tlsls r2, 14\n" - "\tadds r0, r2\n" - "\tmovs r1, 0x98\n" - "\tlsls r1, 17\n" - "\tcmp r0, r1\n" - "\tbhi _080E3CEC\n" - "\tb _080E3E6C\n" - "_080E3CEC:\n" - "\tldr r0, _080E3D08 @ =gTasks\n" - "\tmov r1, r9\n" - "\tadd r1, r8\n" - "\tlsls r1, 3\n" - "\tadds r1, r0\n" - "\tmovs r0, 0\n" - "\tstrh r0, [r1, 0xA]\n" - "\tb _080E3D82\n" - "\t.align 2, 0\n" - "_080E3CFC: .4byte gBattleAnimTarget\n" - "_080E3D00: .4byte gBattleAnimArgs\n" - "_080E3D04: .4byte 0x0000ffff\n" - "_080E3D08: .4byte gTasks\n" - "_080E3D0C:\n" - "\tmovs r0, 0\n" - "\tbl GetAnimBattlerSpriteId\n" - "\tlsls r0, 24\n" - "\tlsrs r7, r0, 24\n" - "\tldr r1, _080E3D58 @ =gTasks\n" - "\tmov r3, r8\n" - "\tlsls r4, r3, 2\n" - "\tadds r0, r4, r3\n" - "\tlsls r0, 3\n" - "\tadds r0, r1\n" - "\tldrh r0, [r0, 0x26]\n" - "\tlsls r0, 24\n" - "\tlsrs r5, r0, 24\n" - "\tlsls r0, r5, 4\n" - "\tadds r0, r5\n" - "\tlsls r0, 2\n" - "\tldr r5, _080E3D5C @ =gSprites\n" - "\tadds r0, r5\n" - "\tbl DestroySpriteAndFreeResources_\n" - "\tldr r0, _080E3D60 @ =gBattleAnimAttacker\n" - "\tldrb r0, [r0]\n" - "\tbl GetBattlerSide\n" - "\tlsls r0, 24\n" - "\tmov r9, r4\n" - "\tcmp r0, 0\n" - "\tbne _080E3D64\n" - "\tlsls r1, r7, 4\n" - "\tadds r1, r7\n" - "\tlsls r1, 2\n" - "\tadds r1, r5\n" - "\tldrh r0, [r1, 0x20]\n" - "\tnegs r0, r0\n" - "\tsubs r0, 0x20\n" - "\tstrh r0, [r1, 0x24]\n" - "\tb _080E3D78\n" - "\t.align 2, 0\n" - "_080E3D58: .4byte gTasks\n" - "_080E3D5C: .4byte gSprites\n" - "_080E3D60: .4byte gBattleAnimAttacker\n" - "_080E3D64:\n" - "\tlsls r0, r7, 4\n" - "\tadds r0, r7\n" - "\tlsls r0, 2\n" - "\tadds r0, r5\n" - "\tldrh r2, [r0, 0x20]\n" - "\tmovs r4, 0x88\n" - "\tlsls r4, 1\n" - "\tadds r1, r4, 0\n" - "\tsubs r1, r2\n" - "\tstrh r1, [r0, 0x24]\n" - "_080E3D78:\n" - "\tldr r0, _080E3D8C @ =gTasks\n" - "\tmov r1, r9\n" - "\tadd r1, r8\n" - "\tlsls r1, 3\n" - "\tadds r1, r0\n" - "_080E3D82:\n" - "\tldrh r0, [r1, 0x8]\n" - "\tadds r0, 0x1\n" - "\tstrh r0, [r1, 0x8]\n" - "\tb _080E3E6C\n" - "\t.align 2, 0\n" - "_080E3D8C: .4byte gTasks\n" - "_080E3D90:\n" - "\tmovs r0, 0\n" - "\tbl GetAnimBattlerSpriteId\n" - "\tlsls r0, 24\n" - "\tlsrs r7, r0, 24\n" - "\tldr r1, _080E3E04 @ =gTasks\n" - "\tmov r0, r8\n" - "\tlsls r4, r0, 2\n" - "\tadds r0, r4, r0\n" - "\tlsls r0, 3\n" - "\tadds r2, r0, r1\n" - "\tmovs r1, 0x80\n" - "\tlsls r1, 4\n" - "\tadds r0, r1, 0\n" - "\tldrh r3, [r2, 0xA]\n" - "\tadds r0, r3\n" - "\tstrh r0, [r2, 0xA]\n" - "\tldr r0, _080E3E08 @ =gBattleAnimAttacker\n" - "\tmov r10, r0\n" - "\tldrb r0, [r0]\n" - "\tstr r2, [sp, 0x18]\n" - "\tbl GetBattlerSide\n" - "\tlsls r0, 24\n" - "\tmov r9, r4\n" - "\tldr r2, [sp, 0x18]\n" - "\tcmp r0, 0\n" - "\tbne _080E3E10\n" - "\tldr r1, _080E3E0C @ =gSprites\n" - "\tlsls r5, r7, 4\n" - "\tadds r0, r5, r7\n" - "\tlsls r0, 2\n" - "\tadds r6, r0, r1\n" - "\tldrh r0, [r2, 0xA]\n" - "\tlsls r0, 16\n" - "\tasrs r0, 24\n" - "\tldrh r1, [r6, 0x24]\n" - "\tadds r0, r1\n" - "\tstrh r0, [r6, 0x24]\n" - "\tmovs r2, 0x24\n" - "\tldrsh r4, [r6, r2]\n" - "\tmovs r3, 0x20\n" - "\tldrsh r0, [r6, r3]\n" - "\tadds r4, r0\n" - "\tmov r1, r10\n" - "\tldrb r0, [r1]\n" - "\tmovs r1, 0\n" - "\tbl GetBattlerSpriteCoord\n" - "\tlsls r0, 24\n" - "\tlsrs r0, 24\n" - "\tadds r3, r5, 0\n" - "\tcmp r4, r0\n" - "\tblt _080E3E48\n" - "\tmovs r2, 0\n" - "\tstrh r2, [r6, 0x24]\n" - "\tb _080E3E48\n" - "\t.align 2, 0\n" - "_080E3E04: .4byte gTasks\n" - "_080E3E08: .4byte gBattleAnimAttacker\n" - "_080E3E0C: .4byte gSprites\n" - "_080E3E10:\n" - "\tldr r1, _080E3E7C @ =gSprites\n" - "\tlsls r5, r7, 4\n" - "\tadds r0, r5, r7\n" - "\tlsls r0, 2\n" - "\tadds r6, r0, r1\n" - "\tldrh r1, [r2, 0xA]\n" - "\tlsls r1, 16\n" - "\tasrs r1, 24\n" - "\tldrh r0, [r6, 0x24]\n" - "\tsubs r0, r1\n" - "\tstrh r0, [r6, 0x24]\n" - "\tmovs r3, 0x24\n" - "\tldrsh r4, [r6, r3]\n" - "\tmovs r1, 0x20\n" - "\tldrsh r0, [r6, r1]\n" - "\tadds r4, r0\n" - "\tmov r2, r10\n" - "\tldrb r0, [r2]\n" - "\tmovs r1, 0\n" - "\tbl GetBattlerSpriteCoord\n" - "\tlsls r0, 24\n" - "\tlsrs r0, 24\n" - "\tadds r3, r5, 0\n" - "\tcmp r4, r0\n" - "\tbgt _080E3E48\n" - "\tmovs r4, 0\n" - "\tstrh r4, [r6, 0x24]\n" - "_080E3E48:\n" - "\tldr r1, _080E3E80 @ =gTasks\n" - "\tmov r0, r9\n" - "\tadd r0, r8\n" - "\tlsls r0, 3\n" - "\tadds r0, r1\n" - "\tldrb r1, [r0, 0xA]\n" - "\tstrh r1, [r0, 0xA]\n" - "\tldr r1, _080E3E7C @ =gSprites\n" - "\tadds r0, r3, r7\n" - "\tlsls r0, 2\n" - "\tadds r0, r1\n" - "\tmovs r1, 0x24\n" - "\tldrsh r0, [r0, r1]\n" - "\tcmp r0, 0\n" - "\tbne _080E3E6C\n" - "\tmov r0, r8\n" - "\tbl DestroyAnimVisualTask\n" - "_080E3E6C:\n" - "\tadd sp, 0x1C\n" - "\tpop {r3-r5}\n" - "\tmov r8, r3\n" - "\tmov r9, r4\n" - "\tmov r10, r5\n" - "\tpop {r4-r7}\n" - "\tpop {r0}\n" - "\tbx r0\n" - "\t.align 2, 0\n" - "_080E3E7C: .4byte gSprites\n" - "_080E3E80: .4byte gTasks\n"); + asm_unified("\tpush {r4-r7,lr}\n" + "\tmov r7, r10\n" + "\tmov r6, r9\n" + "\tmov r5, r8\n" + "\tpush {r5-r7}\n" + "\tsub sp, 0x1C\n" + "\tlsls r0, 24\n" + "\tlsrs r0, 24\n" + "\tmov r8, r0\n" + "\tldr r1, _080E395C @ =gTasks\n" + "\tlsls r0, 2\n" + "\tadd r0, r8\n" + "\tlsls r0, 3\n" + "\tadds r0, r1\n" + "\tmovs r1, 0x8\n" + "\tldrsh r0, [r0, r1]\n" + "\tcmp r0, 0x4\n" + "\tbls _080E3952\n" + "\tb _080E3E6C\n" + "_080E3952:\n" + "\tlsls r0, 2\n" + "\tldr r1, _080E3960 @ =_080E3964\n" + "\tadds r0, r1\n" + "\tldr r0, [r0]\n" + "\tmov pc, r0\n" + "\t.align 2, 0\n" + "_080E395C: .4byte gTasks\n" + "_080E3960: .4byte _080E3964\n" + "\t.align 2, 0\n" + "_080E3964:\n" + "\t.4byte _080E3978\n" + "\t.4byte _080E3A2C\n" + "\t.4byte _080E3BEC\n" + "\t.4byte _080E3D0C\n" + "\t.4byte _080E3D90\n" + "_080E3978:\n" + "\tmovs r0, 0\n" + "\tbl GetAnimBattlerSpriteId\n" + "\tlsls r0, 24\n" + "\tlsrs r7, r0, 24\n" + "\tldr r1, _080E39C4 @ =gTasks\n" + "\tmov r2, r8\n" + "\tlsls r4, r2, 2\n" + "\tadds r0, r4, r2\n" + "\tlsls r0, 3\n" + "\tadds r6, r0, r1\n" + "\tmovs r3, 0x80\n" + "\tlsls r3, 4\n" + "\tadds r0, r3, 0\n" + "\tldrh r1, [r6, 0xA]\n" + "\tadds r0, r1\n" + "\tstrh r0, [r6, 0xA]\n" + "\tldr r0, _080E39C8 @ =gBattleAnimAttacker\n" + "\tldrb r0, [r0]\n" + "\tbl GetBattlerSide\n" + "\tlsls r0, 24\n" + "\tmov r9, r4\n" + "\tcmp r0, 0\n" + "\tbne _080E39D0\n" + "\tldr r2, _080E39CC @ =gSprites\n" + "\tlsls r3, r7, 4\n" + "\tadds r1, r3, r7\n" + "\tlsls r1, 2\n" + "\tadds r1, r2\n" + "\tldrh r0, [r6, 0xA]\n" + "\tlsls r0, 16\n" + "\tasrs r0, 24\n" + "\tldrh r4, [r1, 0x24]\n" + "\tadds r0, r4\n" + "\tstrh r0, [r1, 0x24]\n" + "\tb _080E39EA\n" + "\t.align 2, 0\n" + "_080E39C4: .4byte gTasks\n" + "_080E39C8: .4byte gBattleAnimAttacker\n" + "_080E39CC: .4byte gSprites\n" + "_080E39D0:\n" + "\tldr r3, _080E3A24 @ =gSprites\n" + "\tlsls r4, r7, 4\n" + "\tadds r2, r4, r7\n" + "\tlsls r2, 2\n" + "\tadds r2, r3\n" + "\tldrh r1, [r6, 0xA]\n" + "\tlsls r1, 16\n" + "\tasrs r1, 24\n" + "\tldrh r0, [r2, 0x24]\n" + "\tsubs r0, r1\n" + "\tstrh r0, [r2, 0x24]\n" + "\tadds r2, r3, 0\n" + "\tadds r3, r4, 0\n" + "_080E39EA:\n" + "\tldr r1, _080E3A28 @ =gTasks\n" + "\tmov r0, r9\n" + "\tadd r0, r8\n" + "\tlsls r0, 3\n" + "\tadds r4, r0, r1\n" + "\tldrb r0, [r4, 0xA]\n" + "\tstrh r0, [r4, 0xA]\n" + "\tadds r1, r3, r7\n" + "\tlsls r1, 2\n" + "\tadds r1, r2\n" + "\tldrh r0, [r1, 0x24]\n" + "\tldrh r1, [r1, 0x20]\n" + "\tadds r0, r1\n" + "\tlsls r0, 16\n" + "\tmovs r1, 0x80\n" + "\tlsls r1, 14\n" + "\tadds r0, r1\n" + "\tmovs r1, 0x98\n" + "\tlsls r1, 17\n" + "\tcmp r0, r1\n" + "\tbhi _080E3A16\n" + "\tb _080E3E6C\n" + "_080E3A16:\n" + "\tmovs r0, 0\n" + "\tstrh r0, [r4, 0xA]\n" + "\tldrh r0, [r4, 0x8]\n" + "\tadds r0, 0x1\n" + "\tstrh r0, [r4, 0x8]\n" + "\tb _080E3E6C\n" + "\t.align 2, 0\n" + "_080E3A24: .4byte gSprites\n" + "_080E3A28: .4byte gTasks\n" + "_080E3A2C:\n" + "\tldr r4, _080E3A90 @ =gBattleAnimAttacker\n" + "\tldrb r0, [r4]\n" + "\tbl GetBattlerSide\n" + "\tlsls r0, 24\n" + "\tcmp r0, 0\n" + "\tbne _080E3ACC\n" + "\tldr r7, _080E3A94 @ =gBattlerPartyIndexes\n" + "\tldrb r0, [r4]\n" + "\tlsls r0, 1\n" + "\tadds r0, r7\n" + "\tldrh r0, [r0]\n" + "\tmovs r6, 0x64\n" + "\tmuls r0, r6\n" + "\tldr r5, _080E3A98 @ =gPlayerParty\n" + "\tadds r0, r5\n" + "\tmovs r1, 0\n" + "\tbl GetMonData\n" + "\tmov r10, r0\n" + "\tldrb r0, [r4]\n" + "\tlsls r0, 1\n" + "\tadds r0, r7\n" + "\tldrh r0, [r0]\n" + "\tmuls r0, r6\n" + "\tadds r0, r5\n" + "\tmovs r1, 0x1\n" + "\tbl GetMonData\n" + "\tmov r9, r0\n" + "\tldr r0, _080E3A9C @ =gBattleSpritesDataPtr\n" + "\tldr r0, [r0]\n" + "\tldrb r2, [r4]\n" + "\tldr r1, [r0]\n" + "\tlsls r0, r2, 2\n" + "\tadds r1, r0, r1\n" + "\tldrh r0, [r1, 0x2]\n" + "\tcmp r0, 0\n" + "\tbne _080E3AA0\n" + "\tlsls r0, r2, 1\n" + "\tadds r0, r7\n" + "\tldrh r0, [r0]\n" + "\tmuls r0, r6\n" + "\tadds r0, r5\n" + "\tmovs r1, 0xB\n" + "\tbl GetMonData\n" + "\tlsls r0, 16\n" + "\tlsrs r5, r0, 16\n" + "\tb _080E3AA2\n" + "\t.align 2, 0\n" + "_080E3A90: .4byte gBattleAnimAttacker\n" + "_080E3A94: .4byte gBattlerPartyIndexes\n" + "_080E3A98: .4byte gPlayerParty\n" + "_080E3A9C: .4byte gBattleSpritesDataPtr\n" + "_080E3AA0:\n" + "\tldrh r5, [r1, 0x2]\n" + "_080E3AA2:\n" + "\tmovs r0, 0x1\n" + "\tbl GetAnimBattlerSpriteId\n" + "\tldr r2, _080E3AC8 @ =gSprites\n" + "\tlsls r0, 24\n" + "\tlsrs r0, 24\n" + "\tlsls r1, r0, 4\n" + "\tadds r1, r0\n" + "\tlsls r1, 2\n" + "\tadds r1, r2\n" + "\tadds r1, 0x43\n" + "\tldrb r0, [r1]\n" + "\tadds r0, 0x1\n" + "\tlsls r0, 24\n" + "\tlsrs r4, r0, 24\n" + "\tmovs r7, 0\n" + "\tmovs r6, 0x88\n" + "\tlsls r6, 1\n" + "\tb _080E3B54\n" + "\t.align 2, 0\n" + "_080E3AC8: .4byte gSprites\n" + "_080E3ACC:\n" + "\tldr r7, _080E3B24 @ =gBattlerPartyIndexes\n" + "\tldrb r0, [r4]\n" + "\tlsls r0, 1\n" + "\tadds r0, r7\n" + "\tldrh r0, [r0]\n" + "\tmovs r6, 0x64\n" + "\tmuls r0, r6\n" + "\tldr r5, _080E3B28 @ =gEnemyParty\n" + "\tadds r0, r5\n" + "\tmovs r1, 0\n" + "\tbl GetMonData\n" + "\tmov r10, r0\n" + "\tldrb r0, [r4]\n" + "\tlsls r0, 1\n" + "\tadds r0, r7\n" + "\tldrh r0, [r0]\n" + "\tmuls r0, r6\n" + "\tadds r0, r5\n" + "\tmovs r1, 0x1\n" + "\tbl GetMonData\n" + "\tmov r9, r0\n" + "\tldr r0, _080E3B2C @ =gBattleSpritesDataPtr\n" + "\tldr r0, [r0]\n" + "\tldrb r2, [r4]\n" + "\tldr r1, [r0]\n" + "\tlsls r0, r2, 2\n" + "\tadds r1, r0, r1\n" + "\tldrh r0, [r1, 0x2]\n" + "\tcmp r0, 0\n" + "\tbne _080E3B30\n" + "\tlsls r0, r2, 1\n" + "\tadds r0, r7\n" + "\tldrh r0, [r0]\n" + "\tmuls r0, r6\n" + "\tadds r0, r5\n" + "\tmovs r1, 0xB\n" + "\tbl GetMonData\n" + "\tlsls r0, 16\n" + "\tlsrs r5, r0, 16\n" + "\tb _080E3B32\n" + "\t.align 2, 0\n" + "_080E3B24: .4byte gBattlerPartyIndexes\n" + "_080E3B28: .4byte gEnemyParty\n" + "_080E3B2C: .4byte gBattleSpritesDataPtr\n" + "_080E3B30:\n" + "\tldrh r5, [r1, 0x2]\n" + "_080E3B32:\n" + "\tmovs r0, 0x1\n" + "\tbl GetAnimBattlerSpriteId\n" + "\tldr r2, _080E3BD0 @ =gSprites\n" + "\tlsls r0, 24\n" + "\tlsrs r0, 24\n" + "\tlsls r1, r0, 4\n" + "\tadds r1, r0\n" + "\tlsls r1, 2\n" + "\tadds r1, r2\n" + "\tadds r1, 0x43\n" + "\tldrb r0, [r1]\n" + "\tsubs r0, 0x1\n" + "\tlsls r0, 24\n" + "\tlsrs r4, r0, 24\n" + "\tmovs r7, 0x1\n" + "\tldr r6, _080E3BD4 @ =0x0000ffe0\n" + "_080E3B54:\n" + "\tldr r0, _080E3BD8 @ =gBattleAnimTarget\n" + "\tldrb r0, [r0]\n" + "\tmovs r1, 0x1\n" + "\tbl GetBattlerSpriteCoord\n" + "\tlsls r0, 24\n" + "\tlsrs r0, 24\n" + "\tlsls r3, r6, 16\n" + "\tasrs r3, 16\n" + "\tstr r0, [sp]\n" + "\tstr r4, [sp, 0x4]\n" + "\tmov r2, r10\n" + "\tstr r2, [sp, 0x8]\n" + "\tmov r4, r9\n" + "\tstr r4, [sp, 0xC]\n" + "\tldr r4, _080E3BDC @ =gBattleAnimAttacker\n" + "\tldrb r0, [r4]\n" + "\tstr r0, [sp, 0x10]\n" + "\tmovs r0, 0\n" + "\tstr r0, [sp, 0x14]\n" + "\tadds r0, r5, 0\n" + "\tadds r1, r7, 0\n" + "\tmovs r2, 0\n" + "\tbl sub_80768D0\n" + "\tlsls r0, 24\n" + "\tlsrs r5, r0, 24\n" + "\tldr r0, _080E3BE0 @ =gBattleSpritesDataPtr\n" + "\tldr r1, [r0]\n" + "\tldrb r0, [r4]\n" + "\tldr r1, [r1]\n" + "\tlsls r0, 2\n" + "\tadds r0, r1\n" + "\tldrh r0, [r0, 0x2]\n" + "\tcmp r0, 0\n" + "\tbeq _080E3BBE\n" + "\tldr r1, _080E3BD0 @ =gSprites\n" + "\tlsls r0, r5, 4\n" + "\tadds r0, r5\n" + "\tlsls r0, 2\n" + "\tadds r0, r1\n" + "\tldrb r0, [r0, 0x5]\n" + "\tlsrs r0, 4\n" + "\tlsls r0, 4\n" + "\tmovs r2, 0x80\n" + "\tlsls r2, 1\n" + "\tadds r1, r2, 0\n" + "\torrs r0, r1\n" + "\tldr r3, _080E3BE4 @ =0x00007fff\n" + "\tmovs r1, 0x10\n" + "\tmovs r2, 0x6\n" + "\tbl BlendPalette\n" + "_080E3BBE:\n" + "\tldr r0, _080E3BE8 @ =gTasks\n" + "\tmov r3, r8\n" + "\tlsls r1, r3, 2\n" + "\tadd r1, r8\n" + "\tlsls r1, 3\n" + "\tadds r1, r0\n" + "\tstrh r5, [r1, 0x26]\n" + "\tb _080E3D82\n" + "\t.align 2, 0\n" + "_080E3BD0: .4byte gSprites\n" + "_080E3BD4: .4byte 0x0000ffe0\n" + "_080E3BD8: .4byte gBattleAnimTarget\n" + "_080E3BDC: .4byte gBattleAnimAttacker\n" + "_080E3BE0: .4byte gBattleSpritesDataPtr\n" + "_080E3BE4: .4byte 0x00007fff\n" + "_080E3BE8: .4byte gTasks\n" + "_080E3BEC:\n" + "\tldr r1, _080E3C38 @ =gTasks\n" + "\tmov r0, r8\n" + "\tlsls r4, r0, 2\n" + "\tadds r0, r4, r0\n" + "\tlsls r0, 3\n" + "\tadds r6, r0, r1\n" + "\tldrh r0, [r6, 0x26]\n" + "\tlsls r0, 24\n" + "\tlsrs r5, r0, 24\n" + "\tmovs r1, 0x80\n" + "\tlsls r1, 4\n" + "\tadds r0, r1, 0\n" + "\tldrh r2, [r6, 0xA]\n" + "\tadds r0, r2\n" + "\tstrh r0, [r6, 0xA]\n" + "\tldr r0, _080E3C3C @ =gBattleAnimAttacker\n" + "\tldrb r0, [r0]\n" + "\tbl GetBattlerSide\n" + "\tlsls r0, 24\n" + "\tmov r9, r4\n" + "\tcmp r0, 0\n" + "\tbne _080E3C44\n" + "\tldr r3, _080E3C40 @ =gSprites\n" + "\tlsls r4, r5, 4\n" + "\tadds r2, r4, r5\n" + "\tlsls r2, 2\n" + "\tadds r2, r3\n" + "\tldrh r1, [r6, 0xA]\n" + "\tlsls r1, 16\n" + "\tasrs r1, 24\n" + "\tldrh r0, [r2, 0x24]\n" + "\tsubs r0, r1\n" + "\tstrh r0, [r2, 0x24]\n" + "\tadds r2, r3, 0\n" + "\tadds r3, r4, 0\n" + "\tb _080E3C5A\n" + "\t.align 2, 0\n" + "_080E3C38: .4byte gTasks\n" + "_080E3C3C: .4byte gBattleAnimAttacker\n" + "_080E3C40: .4byte gSprites\n" + "_080E3C44:\n" + "\tldr r2, _080E3CA8 @ =gSprites\n" + "\tlsls r3, r5, 4\n" + "\tadds r1, r3, r5\n" + "\tlsls r1, 2\n" + "\tadds r1, r2\n" + "\tldrh r0, [r6, 0xA]\n" + "\tlsls r0, 16\n" + "\tasrs r0, 24\n" + "\tldrh r4, [r1, 0x24]\n" + "\tadds r0, r4\n" + "\tstrh r0, [r1, 0x24]\n" + "_080E3C5A:\n" + "\tldr r1, _080E3CAC @ =gTasks\n" + "\tmov r0, r9\n" + "\tadd r0, r8\n" + "\tlsls r0, 3\n" + "\tadds r6, r0, r1\n" + "\tldrb r0, [r6, 0xA]\n" + "\tstrh r0, [r6, 0xA]\n" + "\tadds r1, r3, r5\n" + "\tlsls r1, 2\n" + "\tadds r1, r2\n" + "\tldrh r0, [r1, 0x24]\n" + "\tldrh r1, [r1, 0x20]\n" + "\tadds r0, r1\n" + "\tlsls r0, 16\n" + "\tlsrs r5, r0, 16\n" + "\tmovs r1, 0x24\n" + "\tldrsh r0, [r6, r1]\n" + "\tcmp r0, 0\n" + "\tbne _080E3CDA\n" + "\tldr r0, _080E3CB0 @ =gBattleAnimAttacker\n" + "\tldrb r0, [r0]\n" + "\tbl GetBattlerSide\n" + "\tlsls r0, 24\n" + "\tcmp r0, 0\n" + "\tbne _080E3CB8\n" + "\tlsls r4, r5, 16\n" + "\tasrs r4, 16\n" + "\tldr r0, _080E3CB4 @ =gBattleAnimTarget\n" + "\tldrb r0, [r0]\n" + "\tmovs r1, 0\n" + "\tbl GetBattlerSpriteCoord\n" + "\tlsls r0, 24\n" + "\tlsrs r0, 24\n" + "\tcmp r4, r0\n" + "\tbge _080E3CDA\n" + "\tb _080E3CCE\n" + "\t.align 2, 0\n" + "_080E3CA8: .4byte gSprites\n" + "_080E3CAC: .4byte gTasks\n" + "_080E3CB0: .4byte gBattleAnimAttacker\n" + "_080E3CB4: .4byte gBattleAnimTarget\n" + "_080E3CB8:\n" + "\tlsls r4, r5, 16\n" + "\tasrs r4, 16\n" + "\tldr r0, _080E3CFC @ =gBattleAnimTarget\n" + "\tldrb r0, [r0]\n" + "\tmovs r1, 0\n" + "\tbl GetBattlerSpriteCoord\n" + "\tlsls r0, 24\n" + "\tlsrs r0, 24\n" + "\tcmp r4, r0\n" + "\tble _080E3CDA\n" + "_080E3CCE:\n" + "\tldrh r0, [r6, 0x24]\n" + "\tadds r0, 0x1\n" + "\tstrh r0, [r6, 0x24]\n" + "\tldr r1, _080E3D00 @ =gBattleAnimArgs\n" + "\tldr r0, _080E3D04 @ =0x0000ffff\n" + "\tstrh r0, [r1, 0xE]\n" + "_080E3CDA:\n" + "\tlsls r0, r5, 16\n" + "\tmovs r2, 0x80\n" + "\tlsls r2, 14\n" + "\tadds r0, r2\n" + "\tmovs r1, 0x98\n" + "\tlsls r1, 17\n" + "\tcmp r0, r1\n" + "\tbhi _080E3CEC\n" + "\tb _080E3E6C\n" + "_080E3CEC:\n" + "\tldr r0, _080E3D08 @ =gTasks\n" + "\tmov r1, r9\n" + "\tadd r1, r8\n" + "\tlsls r1, 3\n" + "\tadds r1, r0\n" + "\tmovs r0, 0\n" + "\tstrh r0, [r1, 0xA]\n" + "\tb _080E3D82\n" + "\t.align 2, 0\n" + "_080E3CFC: .4byte gBattleAnimTarget\n" + "_080E3D00: .4byte gBattleAnimArgs\n" + "_080E3D04: .4byte 0x0000ffff\n" + "_080E3D08: .4byte gTasks\n" + "_080E3D0C:\n" + "\tmovs r0, 0\n" + "\tbl GetAnimBattlerSpriteId\n" + "\tlsls r0, 24\n" + "\tlsrs r7, r0, 24\n" + "\tldr r1, _080E3D58 @ =gTasks\n" + "\tmov r3, r8\n" + "\tlsls r4, r3, 2\n" + "\tadds r0, r4, r3\n" + "\tlsls r0, 3\n" + "\tadds r0, r1\n" + "\tldrh r0, [r0, 0x26]\n" + "\tlsls r0, 24\n" + "\tlsrs r5, r0, 24\n" + "\tlsls r0, r5, 4\n" + "\tadds r0, r5\n" + "\tlsls r0, 2\n" + "\tldr r5, _080E3D5C @ =gSprites\n" + "\tadds r0, r5\n" + "\tbl DestroySpriteAndFreeResources_\n" + "\tldr r0, _080E3D60 @ =gBattleAnimAttacker\n" + "\tldrb r0, [r0]\n" + "\tbl GetBattlerSide\n" + "\tlsls r0, 24\n" + "\tmov r9, r4\n" + "\tcmp r0, 0\n" + "\tbne _080E3D64\n" + "\tlsls r1, r7, 4\n" + "\tadds r1, r7\n" + "\tlsls r1, 2\n" + "\tadds r1, r5\n" + "\tldrh r0, [r1, 0x20]\n" + "\tnegs r0, r0\n" + "\tsubs r0, 0x20\n" + "\tstrh r0, [r1, 0x24]\n" + "\tb _080E3D78\n" + "\t.align 2, 0\n" + "_080E3D58: .4byte gTasks\n" + "_080E3D5C: .4byte gSprites\n" + "_080E3D60: .4byte gBattleAnimAttacker\n" + "_080E3D64:\n" + "\tlsls r0, r7, 4\n" + "\tadds r0, r7\n" + "\tlsls r0, 2\n" + "\tadds r0, r5\n" + "\tldrh r2, [r0, 0x20]\n" + "\tmovs r4, 0x88\n" + "\tlsls r4, 1\n" + "\tadds r1, r4, 0\n" + "\tsubs r1, r2\n" + "\tstrh r1, [r0, 0x24]\n" + "_080E3D78:\n" + "\tldr r0, _080E3D8C @ =gTasks\n" + "\tmov r1, r9\n" + "\tadd r1, r8\n" + "\tlsls r1, 3\n" + "\tadds r1, r0\n" + "_080E3D82:\n" + "\tldrh r0, [r1, 0x8]\n" + "\tadds r0, 0x1\n" + "\tstrh r0, [r1, 0x8]\n" + "\tb _080E3E6C\n" + "\t.align 2, 0\n" + "_080E3D8C: .4byte gTasks\n" + "_080E3D90:\n" + "\tmovs r0, 0\n" + "\tbl GetAnimBattlerSpriteId\n" + "\tlsls r0, 24\n" + "\tlsrs r7, r0, 24\n" + "\tldr r1, _080E3E04 @ =gTasks\n" + "\tmov r0, r8\n" + "\tlsls r4, r0, 2\n" + "\tadds r0, r4, r0\n" + "\tlsls r0, 3\n" + "\tadds r2, r0, r1\n" + "\tmovs r1, 0x80\n" + "\tlsls r1, 4\n" + "\tadds r0, r1, 0\n" + "\tldrh r3, [r2, 0xA]\n" + "\tadds r0, r3\n" + "\tstrh r0, [r2, 0xA]\n" + "\tldr r0, _080E3E08 @ =gBattleAnimAttacker\n" + "\tmov r10, r0\n" + "\tldrb r0, [r0]\n" + "\tstr r2, [sp, 0x18]\n" + "\tbl GetBattlerSide\n" + "\tlsls r0, 24\n" + "\tmov r9, r4\n" + "\tldr r2, [sp, 0x18]\n" + "\tcmp r0, 0\n" + "\tbne _080E3E10\n" + "\tldr r1, _080E3E0C @ =gSprites\n" + "\tlsls r5, r7, 4\n" + "\tadds r0, r5, r7\n" + "\tlsls r0, 2\n" + "\tadds r6, r0, r1\n" + "\tldrh r0, [r2, 0xA]\n" + "\tlsls r0, 16\n" + "\tasrs r0, 24\n" + "\tldrh r1, [r6, 0x24]\n" + "\tadds r0, r1\n" + "\tstrh r0, [r6, 0x24]\n" + "\tmovs r2, 0x24\n" + "\tldrsh r4, [r6, r2]\n" + "\tmovs r3, 0x20\n" + "\tldrsh r0, [r6, r3]\n" + "\tadds r4, r0\n" + "\tmov r1, r10\n" + "\tldrb r0, [r1]\n" + "\tmovs r1, 0\n" + "\tbl GetBattlerSpriteCoord\n" + "\tlsls r0, 24\n" + "\tlsrs r0, 24\n" + "\tadds r3, r5, 0\n" + "\tcmp r4, r0\n" + "\tblt _080E3E48\n" + "\tmovs r2, 0\n" + "\tstrh r2, [r6, 0x24]\n" + "\tb _080E3E48\n" + "\t.align 2, 0\n" + "_080E3E04: .4byte gTasks\n" + "_080E3E08: .4byte gBattleAnimAttacker\n" + "_080E3E0C: .4byte gSprites\n" + "_080E3E10:\n" + "\tldr r1, _080E3E7C @ =gSprites\n" + "\tlsls r5, r7, 4\n" + "\tadds r0, r5, r7\n" + "\tlsls r0, 2\n" + "\tadds r6, r0, r1\n" + "\tldrh r1, [r2, 0xA]\n" + "\tlsls r1, 16\n" + "\tasrs r1, 24\n" + "\tldrh r0, [r6, 0x24]\n" + "\tsubs r0, r1\n" + "\tstrh r0, [r6, 0x24]\n" + "\tmovs r3, 0x24\n" + "\tldrsh r4, [r6, r3]\n" + "\tmovs r1, 0x20\n" + "\tldrsh r0, [r6, r1]\n" + "\tadds r4, r0\n" + "\tmov r2, r10\n" + "\tldrb r0, [r2]\n" + "\tmovs r1, 0\n" + "\tbl GetBattlerSpriteCoord\n" + "\tlsls r0, 24\n" + "\tlsrs r0, 24\n" + "\tadds r3, r5, 0\n" + "\tcmp r4, r0\n" + "\tbgt _080E3E48\n" + "\tmovs r4, 0\n" + "\tstrh r4, [r6, 0x24]\n" + "_080E3E48:\n" + "\tldr r1, _080E3E80 @ =gTasks\n" + "\tmov r0, r9\n" + "\tadd r0, r8\n" + "\tlsls r0, 3\n" + "\tadds r0, r1\n" + "\tldrb r1, [r0, 0xA]\n" + "\tstrh r1, [r0, 0xA]\n" + "\tldr r1, _080E3E7C @ =gSprites\n" + "\tadds r0, r3, r7\n" + "\tlsls r0, 2\n" + "\tadds r0, r1\n" + "\tmovs r1, 0x24\n" + "\tldrsh r0, [r0, r1]\n" + "\tcmp r0, 0\n" + "\tbne _080E3E6C\n" + "\tmov r0, r8\n" + "\tbl DestroyAnimVisualTask\n" + "_080E3E6C:\n" + "\tadd sp, 0x1C\n" + "\tpop {r3-r5}\n" + "\tmov r8, r3\n" + "\tmov r9, r4\n" + "\tmov r10, r5\n" + "\tpop {r4-r7}\n" + "\tpop {r0}\n" + "\tbx r0\n" + "\t.align 2, 0\n" + "_080E3E7C: .4byte gSprites\n" + "_080E3E80: .4byte gTasks\n"); } #endif @@ -5972,6 +5796,7 @@ void AnimTask_SnatchPartnerMove(u8 taskId) void AnimTask_TeeterDanceMovement(u8 taskId) { struct Task *task = &gTasks[taskId]; + task->data[3] = GetAnimBattlerSpriteId(ANIM_ATTACKER); task->data[4] = GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER ? 1 : -1; task->data[6] = gSprites[task->data[3]].pos1.y; @@ -5986,6 +5811,7 @@ void AnimTask_TeeterDanceMovement(u8 taskId) static void AnimTask_TeeterDanceMovementStep(u8 taskId) { struct Task *task = &gTasks[taskId]; + switch (task->data[0]) { case 0: @@ -6157,6 +5983,7 @@ void AnimTask_GetWeather(u8 taskId) void AnimTask_SlackOffSquish(u8 taskId) { struct Task *task = &gTasks[taskId]; + task->data[0] = 0; task->data[15] = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); PrepareAffineAnimInTaskData(task, task->data[15], gSlackOffSquishAffineAnimCmds); diff --git a/src/battle_anim_special.c b/src/battle_anim_special.c index 7d512b950..46bcc2cbb 100644 --- a/src/battle_anim_special.c +++ b/src/battle_anim_special.c @@ -39,15 +39,11 @@ #define HIHALF(n) (((n) & 0xFFFF0000) >> 16) #define LOHALF(n) ((n) & 0xFFFF) -// IWRAM +// RAM EWRAM_DATA int gUnknown_3005424 = 0; EWRAM_DATA u16 gUnknown_3005428 = 0; EWRAM_DATA u16 gUnknown_300542C = 0; -//extern u32 gUnknown_3005424; -//extern u32 gUnknown_3005428; -//extern u32 gUnknown_300542C; - // Function Declarations static void sub_80EEDF4(u8); static void sub_80EF1CC(u8); @@ -74,7 +70,7 @@ static void sub_80F05B4(u8); static void sub_80F0278(struct Sprite *); static void sub_80F0378(struct Sprite *); static void sub_80F04B4(struct Sprite *); -static void sub_80F052C(struct Sprite *sprite); +static void GhostBallDodge(struct Sprite *sprite); static void sub_80F0574(struct Sprite *sprite); static void PokeBallOpenParticleAnimation_Step1(struct Sprite *); static void PokeBallOpenParticleAnimation_Step2(struct Sprite *); @@ -111,7 +107,7 @@ struct BallCaptureSuccessStarData s8 unk2; }; -static const struct BallCaptureSuccessStarData sBallCaptureSuccessStarData[] = //gUnknown_840BF3C +static const struct BallCaptureSuccessStarData sBallCaptureSuccessStarData[] = { { .xOffset = 10, @@ -130,7 +126,7 @@ static const struct BallCaptureSuccessStarData sBallCaptureSuccessStarData[] = / }, }; -const struct CompressedSpriteSheet gBallParticleSpritesheets[] = //gUnknown_840BF48 +const struct CompressedSpriteSheet gBallParticleSpritesheets[] = { {gBattleAnimSpriteGfx_Particles, 0x100, TAG_PARTICLES_POKEBALL}, {gBattleAnimSpriteGfx_Particles, 0x100, TAG_PARTICLES_GREATBALL}, @@ -146,7 +142,7 @@ const struct CompressedSpriteSheet gBallParticleSpritesheets[] = //gUnknown_840B {gBattleAnimSpriteGfx_Particles, 0x100, TAG_PARTICLES_PREMIERBALL}, }; -const struct CompressedSpritePalette gBallParticlePalettes[] = //gUnknown_840BFA8 +const struct CompressedSpritePalette gBallParticlePalettes[] = { {gBattleAnimSpritePal_CircleImpact, TAG_PARTICLES_POKEBALL}, {gBattleAnimSpritePal_CircleImpact, TAG_PARTICLES_GREATBALL}, @@ -162,7 +158,7 @@ const struct CompressedSpritePalette gBallParticlePalettes[] = //gUnknown_840BFA {gBattleAnimSpritePal_CircleImpact, TAG_PARTICLES_PREMIERBALL}, }; -const union AnimCmd gAnim_RegularBall[] = //gAnimCmd_840C008 +const union AnimCmd gAnim_RegularBall[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_FRAME(1, 1), @@ -173,38 +169,38 @@ const union AnimCmd gAnim_RegularBall[] = //gAnimCmd_840C008 ANIMCMD_JUMP(0), }; -const union AnimCmd gAnim_MasterBall[] = //gAnimCmd_840C024 +const union AnimCmd gAnim_MasterBall[] = { ANIMCMD_FRAME(3, 1), ANIMCMD_END, }; -const union AnimCmd gAnim_NetDiveBall[] = //gAnimCmd_840C02C +const union AnimCmd gAnim_NetDiveBall[] = { ANIMCMD_FRAME(4, 1), ANIMCMD_END, }; -const union AnimCmd gAnim_NestBall[] = //gAnimCmd_840C034 +const union AnimCmd gAnim_NestBall[] = { ANIMCMD_FRAME(5, 1), ANIMCMD_END, }; -const union AnimCmd gAnim_LuxuryPremierBall[] = //gAnimCmd_840C03C +const union AnimCmd gAnim_LuxuryPremierBall[] = { ANIMCMD_FRAME(6, 4), ANIMCMD_FRAME(7, 4), ANIMCMD_JUMP(0), }; -const union AnimCmd gAnim_UltraRepeatTimerBall[] = //gAnimCmd_840C048 +const union AnimCmd gAnim_UltraRepeatTimerBall[] = { ANIMCMD_FRAME(7, 4), ANIMCMD_END, }; -const union AnimCmd *const gAnims_BallParticles[] = //gSpriteAnimTable_840C050 +const union AnimCmd *const gAnims_BallParticles[] = { gAnim_RegularBall, gAnim_MasterBall, @@ -214,7 +210,7 @@ const union AnimCmd *const gAnims_BallParticles[] = //gSpriteAnimTable_840C050 gAnim_UltraRepeatTimerBall, }; -const u8 gBallParticleAnimNums[] = //gUnknown_840C068 +const u8 gBallParticleAnimNums[] = { [BALL_POKE] = 0, [BALL_GREAT] = 0, @@ -230,7 +226,7 @@ const u8 gBallParticleAnimNums[] = //gUnknown_840C068 [BALL_PREMIER] = 4, }; -const TaskFunc gBallParticleAnimationFuncs[] = //gUnknown_840C074 +const TaskFunc gBallParticleAnimationFuncs[] = { PokeBallOpenParticleAnimation, GreatBallOpenParticleAnimation, @@ -246,7 +242,7 @@ const TaskFunc gBallParticleAnimationFuncs[] = //gUnknown_840C074 PremierBallOpenParticleAnimation, }; -const struct SpriteTemplate gBallParticlesSpriteTemplates[] = //gUnknown_840C0A4 +const struct SpriteTemplate gBallParticlesSpriteTemplates[] = { { .tileTag = TAG_PARTICLES_POKEBALL, @@ -358,7 +354,7 @@ const struct SpriteTemplate gBallParticlesSpriteTemplates[] = //gUnknown_840C0A4 }, }; -const u16 gBallOpenFadeColors[] = //gUnknown_840C1C4 +const u16 gBallOpenFadeColors[] = { [BALL_POKE] = RGB(31, 22, 30), [BALL_GREAT] = RGB(16, 23, 30), @@ -373,7 +369,7 @@ const u16 gBallOpenFadeColors[] = //gUnknown_840C1C4 [BALL_LUXURY] = RGB(31, 17, 10), [BALL_PREMIER] = RGB(31, 9, 10), - // Garbage data + // Unused RGB(0, 0, 0), RGB(1, 16, 0), RGB(3, 0, 1), @@ -384,7 +380,7 @@ const u16 gBallOpenFadeColors[] = //gUnknown_840C1C4 RGB(4, 0, 0), }; -const struct SpriteTemplate gPokeblockSpriteTemplate = //gUnknown_840C1EC +const struct SpriteTemplate gPokeblockSpriteTemplate = { .tileTag = ANIM_TAG_POKEBLOCK, .paletteTag = ANIM_TAG_POKEBLOCK, @@ -401,7 +397,8 @@ const union AnimCmd gUnknown_840C204[] = ANIMCMD_END, }; -const union AnimCmd *const gSpriteAnimTable_840C20C[] = { +const union AnimCmd *const gSpriteAnimTable_840C20C[] = +{ gUnknown_840C204, }; @@ -439,7 +436,6 @@ void sub_80EEC0C(u8 taskId) SetAnimBgAttribute(1, BG_ANIM_SCREEN_SIZE, 0); SetAnimBgAttribute(1, BG_ANIM_AREA_OVERFLOW_MODE, 1); SetAnimBgAttribute(1, BG_ANIM_CHAR_BASE_BLOCK, 1); - healthBoxSpriteId = gHealthboxSpriteIds[battler]; spriteId1 = gSprites[healthBoxSpriteId].oam.affineParam; spriteId2 = gSprites[healthBoxSpriteId].data[5]; @@ -454,12 +450,10 @@ void sub_80EEC0C(u8 taskId) gSprites[spriteId4].oam.objMode = ST_OAM_OBJ_WINDOW; gSprites[spriteId3].callback = SpriteCallbackDummy; gSprites[spriteId4].callback = SpriteCallbackDummy; - sub_80752A0(&unknownStruct); AnimLoadCompressedBgTilemap(unknownStruct.bgId, gUnknown_D2EC24_Tilemap); AnimLoadCompressedBgGfx(unknownStruct.bgId, gUnknown_D2EC24_Gfx, unknownStruct.tilesOffset); LoadCompressedPalette(gCureBubblesPal, unknownStruct.paletteId << 4, 32); - gBattle_BG1_X = -gSprites[spriteId3].pos1.x + 32; gBattle_BG1_Y = -gSprites[spriteId3].pos1.y - 32; gTasks[taskId].data[1] = 640; @@ -539,12 +533,10 @@ void sub_80EEFC8(u8 *paletteId1, u8 *paletteId2, u8 battler) spriteId2 = gSprites[healthBoxSpriteId].data[5]; *paletteId1 = AllocSpritePalette(0xD709); *paletteId2 = AllocSpritePalette(0xD70A); - offset1 = (gSprites[healthBoxSpriteId].oam.paletteNum * 16) + 0x100; offset2 = (gSprites[spriteId2].oam.paletteNum * 16) + 0x100; LoadPalette(&gPlttBufferUnfaded[offset1], *paletteId1 * 16 + 0x100, 0x20); LoadPalette(&gPlttBufferUnfaded[offset2], *paletteId2 * 16 + 0x100, 0x20); - gSprites[healthBoxSpriteId].oam.paletteNum = *paletteId1; gSprites[spriteId1].oam.paletteNum = *paletteId1; gSprites[spriteId2].oam.paletteNum = *paletteId2; @@ -553,6 +545,7 @@ void sub_80EEFC8(u8 *paletteId1, u8 *paletteId2, u8 battler) void sub_80EF0B4(u8 taskId) { u8 paletteId1, paletteId2; + sub_80EEFC8(&paletteId1, &paletteId2, gBattleAnimAttacker); DestroyAnimVisualTask(taskId); } @@ -566,7 +559,6 @@ void sub_80EF0E0(u8 battler) healthBoxSpriteId = gHealthboxSpriteIds[battler]; spriteId1 = gSprites[healthBoxSpriteId].oam.affineParam; spriteId2 = gSprites[healthBoxSpriteId].data[5]; - FreeSpritePaletteByTag(0xD709); FreeSpritePaletteByTag(0xD70A); paletteId1 = IndexOfSpritePaletteTag(0xD6FF); @@ -672,8 +664,8 @@ void sub_80EF344(u8 taskId) switch (gTasks[taskId].data[0]) { case 0: - x = GetBattlerSpriteCoord(gBattleAnimAttacker, 0); - y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1); + x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X); + y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y); priority = gSprites[spriteId].oam.priority; subpriority = gSprites[spriteId].subpriority; gTasks[taskId].data[10] = LaunchBallStarsTask(x, y + 32, priority, subpriority, ballId); @@ -691,6 +683,7 @@ void sub_80EF344(u8 taskId) void sub_80EF490(u8 taskId) { u8 ballId = ItemIdToBallId(gLastUsedItem); + LoadBallGfx(ballId); DestroyAnimVisualTask(taskId); } @@ -698,6 +691,7 @@ void sub_80EF490(u8 taskId) void sub_80EF4B8(u8 taskId) { u8 ballId = ItemIdToBallId(gLastUsedItem); + FreeBallGfx(ballId); DestroyAnimVisualTask(taskId); } @@ -705,17 +699,17 @@ void sub_80EF4B8(u8 taskId) void AnimTask_IsBallBlockedByTrainerOrDodged(u8 taskId) { switch (gBattleSpritesDataPtr->animationData->ballThrowCaseId) - { - case BALL_TRAINER_BLOCK: - gBattleAnimArgs[ARG_RET_ID] = -1; - break; - case BALL_GHOST_DODGE: - gBattleAnimArgs[ARG_RET_ID] = -2; - break; - default: - gBattleAnimArgs[ARG_RET_ID] = 0; - break; - } + { + case BALL_TRAINER_BLOCK: + gBattleAnimArgs[ARG_RET_ID] = -1; + break; + case BALL_GHOST_DODGE: + gBattleAnimArgs[ARG_RET_ID] = -2; + break; + default: + gBattleAnimArgs[ARG_RET_ID] = 0; + break; + } DestroyAnimVisualTask(taskId); } @@ -760,8 +754,8 @@ void sub_80EF5AC(u8 taskId) ballId = ItemIdToBallId(gLastUsedItem); spriteId = CreateSprite(&gBallSpriteTemplates[ballId], 32, 80, 29); gSprites[spriteId].data[0] = 34; - gSprites[spriteId].data[1] = GetBattlerSpriteCoord(gBattleAnimTarget, 0); - gSprites[spriteId].data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 1) - 16; + gSprites[spriteId].data[1] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X); + gSprites[spriteId].data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y) - 16; gSprites[spriteId].callback = sub_80EF8C0; gBattleSpritesDataPtr->animationData->field_9_x2 = gSprites[gBattlerSpriteIds[gBattleAnimTarget]].invisible; gTasks[taskId].data[0] = spriteId; @@ -771,6 +765,7 @@ void sub_80EF5AC(u8 taskId) static void sub_80EF698(u8 taskId) { u8 spriteId = gTasks[taskId].data[0]; + if ((u16)gSprites[spriteId].data[0] == 0xFFFF) DestroyAnimVisualTask(taskId); } @@ -791,16 +786,16 @@ void sub_80EF6D4(u8 taskId) { x = 23; y = 11; - if (gSaveBlock2Ptr->playerGender == FEMALE) - y = 13; + if (gSaveBlock2Ptr->playerGender == FEMALE) + y = 13; } ballId = ItemIdToBallId(gLastUsedItem); subpriority = GetBattlerSpriteSubpriority(GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT)) + 1; spriteId = CreateSprite(&gBallSpriteTemplates[ballId], x | 32, y | 80, subpriority); gSprites[spriteId].data[0] = 34; - gSprites[spriteId].data[1] = GetBattlerSpriteCoord(gBattleAnimTarget, 0); - gSprites[spriteId].data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 1) - 16; + gSprites[spriteId].data[1] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X); + gSprites[spriteId].data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y) - 16; gSprites[spriteId].callback = SpriteCallbackDummy; gSprites[gBattlerSpriteIds[GetBattlerAtPosition(B_POSITION_PLAYER_LEFT)]].callback = sub_8012354; gTasks[taskId].data[0] = spriteId; @@ -831,6 +826,7 @@ static void sub_80EF8C0(struct Sprite *sprite) { u16 temp = sprite->data[1]; u16 temp2 = sprite->data[2]; + sprite->data[1] = sprite->pos1.x; sprite->data[2] = temp; sprite->data[3] = sprite->pos1.y; @@ -851,10 +847,10 @@ static void sub_80EF8F0(struct Sprite *sprite) { sprite->callback = sub_80F0478; } - else if (gBattleSpritesDataPtr->animationData->ballThrowCaseId == BALL_GHOST_DODGE) - { - sprite->callback = sub_80F052C; - } + else if (gBattleSpritesDataPtr->animationData->ballThrowCaseId == BALL_GHOST_DODGE) + { + sprite->callback = GhostBallDodge; + } else { StartSpriteAnim(sprite, 1); @@ -898,7 +894,6 @@ static void sub_80EFA0C(struct Sprite *sprite) spriteId = gBattlerSpriteIds[gBattleAnimTarget]; taskId = sprite->data[5]; - if (++gTasks[taskId].data[1] == 11) PlaySE(SE_SUIKOMU); @@ -960,7 +955,6 @@ static void sub_80EFB9C(struct Sprite *sprite) int bounceCount; lastBounce = 0; - switch (sprite->data[3] & 0xFF) { case 0: @@ -1330,7 +1324,6 @@ static void sub_80F02B0(struct Sprite *sprite) StartSpriteAnim(sprite, 1); StartSpriteAffineAnim(sprite, 0); sprite->callback = sub_80F0378; - ballId = ItemIdToBallId(gLastUsedItem); switch (ballId) { @@ -1393,11 +1386,11 @@ static void sub_80F04B4(struct Sprite *sprite) { s16 var0 = sprite->data[0] + 0x800; s16 var1 = sprite->data[1] + 0x680; + sprite->pos2.x -= var1 >> 8; sprite->pos2.y += var0 >> 8; sprite->data[0] = (sprite->data[0] + 0x800) & 0xFF; sprite->data[1] = (sprite->data[1] + 0x680) & 0xFF; - if (sprite->pos1.y + sprite->pos2.y > 160 || sprite->pos1.x + sprite->pos2.x < -8) { @@ -1408,35 +1401,34 @@ static void sub_80F04B4(struct Sprite *sprite) } } -// GhostBallDodge -static void sub_80F052C(struct Sprite *sprite) +static void GhostBallDodge(struct Sprite *sprite) { - sprite->pos1.x += sprite->pos2.x; - sprite->pos1.y += sprite->pos2.y; + sprite->pos1.x += sprite->pos2.x; + sprite->pos1.y += sprite->pos2.y; sprite->pos2.x = sprite->pos2.y = 0; - sprite->data[0] = 0x22; - sprite->data[1] = sprite->pos1.x; - sprite->data[2] = sprite->pos1.x - 8; - sprite->data[3] = sprite->pos1.y; - sprite->data[4] = 0x90; - sprite->data[5] = 0x20; - InitAnimArcTranslation(sprite); - TranslateAnimVerticalArc(sprite); - sprite->callback = sub_80F0574; + sprite->data[0] = 0x22; + sprite->data[1] = sprite->pos1.x; + sprite->data[2] = sprite->pos1.x - 8; + sprite->data[3] = sprite->pos1.y; + sprite->data[4] = 0x90; + sprite->data[5] = 0x20; + InitAnimArcTranslation(sprite); + TranslateAnimVerticalArc(sprite); + sprite->callback = sub_80F0574; } static void sub_80F0574(struct Sprite *sprite) { - if (!TranslateAnimVerticalArc(sprite)) - { - if ((sprite->pos1.y + sprite->pos2.y) < 65) - return; - } - - sprite->data[0] = 0; - sprite->callback = sub_80F018C; - gDoingBattleAnim = FALSE; - UpdateOamPriorityInAllHealthboxes(1); + if (!TranslateAnimVerticalArc(sprite)) + { + if ((sprite->pos1.y + sprite->pos2.y) < 65) + return; + } + + sprite->data[0] = 0; + sprite->callback = sub_80F018C; + gDoingBattleAnim = FALSE; + UpdateOamPriorityInAllHealthboxes(1); } static void sub_80F05B4(u8 ballId) @@ -1462,7 +1454,6 @@ u8 LaunchBallStarsTask(u8 x, u8 y, u8 priority, u8 subpriority, u8 ballId) gTasks[taskId].data[4] = subpriority; gTasks[taskId].data[15] = ballId; PlaySE(SE_BOWA2); - return taskId; } @@ -1875,10 +1866,10 @@ static void DestroyBallOpenAnimationParticle(struct Sprite *sprite) if (gBattleSpritesDataPtr->animationData->field_A == 0) { for (j = 0; j < POKEBALL_COUNT; j++) - { - FreeSpriteTilesByTag(gBallParticleSpritesheets[j].tag); - FreeSpritePaletteByTag(gBallParticlePalettes[j].tag); - } + { + FreeSpriteTilesByTag(gBallParticleSpritesheets[j].tag); + FreeSpritePaletteByTag(gBallParticlePalettes[j].tag); + } DestroySprite(sprite); } @@ -2126,8 +2117,8 @@ static void sub_80F181C(u8 taskId) return; battler = gTasks[taskId].data[0]; - x = GetBattlerSpriteCoord(battler, 0); - y = GetBattlerSpriteCoord(battler, 1); + x = GetBattlerSpriteCoord(battler, BATTLER_COORD_X); + y = GetBattlerSpriteCoord(battler, BATTLER_COORD_Y); state = gTasks[taskId].data[11]; if (state == 0) { @@ -2244,8 +2235,8 @@ static void sub_80F1B3C(struct Sprite *sprite) { InitSpritePosToAnimAttacker(sprite, 0); sprite->data[0] = 30; - sprite->data[2] = GetBattlerSpriteCoord(GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT), 0) + gBattleAnimArgs[2]; - sprite->data[4] = GetBattlerSpriteCoord(GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT), 1) + gBattleAnimArgs[3]; + sprite->data[2] = GetBattlerSpriteCoord(GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT), BATTLER_COORD_X) + gBattleAnimArgs[2]; + sprite->data[4] = GetBattlerSpriteCoord(GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT), BATTLER_COORD_Y) + gBattleAnimArgs[3]; sprite->data[5] = -32; InitAnimArcTranslation(sprite); gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].callback = sub_8012354; @@ -2260,7 +2251,7 @@ static void sub_80F1BCC(struct Sprite *sprite) static void sub_80F1C04(struct Sprite *sprite) { - if (TranslateAnimHorizontalArc(sprite)) //TranslateAnimArc? + if (TranslateAnimHorizontalArc(sprite)) { sprite->data[0] = 0; sprite->invisible = 1; @@ -2299,15 +2290,14 @@ void sub_80F1C8C(u8 taskId) void sub_80F1CE4(u8 taskId) { - if (gBattleCommunication[MULTISTRING_CHOOSER] > 2) - gBattleAnimArgs[7] = 0; - else - gBattleAnimArgs[7] = gBattleCommunication[MULTISTRING_CHOOSER]; - - DestroyAnimVisualTask(taskId); + if (gBattleCommunication[MULTISTRING_CHOOSER] > 2) + gBattleAnimArgs[7] = 0; + else + gBattleAnimArgs[7] = gBattleCommunication[MULTISTRING_CHOOSER]; + + DestroyAnimVisualTask(taskId); } -// 080F1D14 void AnimTask_GetTrappedMoveAnimId(u8 taskId) { if (gBattleSpritesDataPtr->animationData->animArg == MOVE_FIRE_SPIN) diff --git a/src/battle_anim_status_effects.c b/src/battle_anim_status_effects.c index 4a45a3d8b..1e05e0e68 100644 --- a/src/battle_anim_status_effects.c +++ b/src/battle_anim_status_effects.c @@ -26,8 +26,6 @@ static void sub_8078380(struct Sprite *sprite); extern const struct CompressedSpriteSheet gBattleAnimPicTable[]; extern const struct CompressedSpritePalette gBattleAnimPaletteTable[]; extern const u8 *const gBattleAnims_StatusConditions[]; -extern const struct OamData gOamData_AffineOff_ObjNormal_8x8; -extern const struct OamData gOamData_AffineOff_ObjBlend_64x64; static const union AnimCmd gUnknown_83BF3E0[] = { @@ -205,8 +203,7 @@ const struct SpriteTemplate gSpriteTemplate_83BF514 = .callback = sub_8076ED8, }; -//const u8 gUnknown_83BF52C[] = _("TASK OVER\nタスクがオーバーしました"); //wont compile...? -const u8 gUnknown_83BF52C[] = {0xCE, 0xBB, 0xCD, 0xC5, 0x00, 0xC9, 0xD0, 0xBF, 0xCC, 0xFE, 0x60, 0x5D, 0x58, 0x37, 0x55, 0xAE, 0x96, 0xAE, 0x0C, 0x1F, 0x0C, 0x10, 0xFF}; +const u8 gUnknown_83BF52C[] = _("TASK OVER\nタスクがオ-バ-しました"); static const struct Subsprite gSubsprites_83BF544[] = { @@ -284,7 +281,6 @@ static u8 sub_8078178(u8 battlerId, bool8 b) return taskId; } -// Functions static void sub_80782BC(u8 taskId) { if (gTasks[taskId].data[2] == 2) @@ -361,11 +357,13 @@ void sub_80783FC(u8 taskId) if (IsContest()) x -= 6; + SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_ALL); SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0, 16)); spriteId = CreateSprite(&gUnknown_83BF55C, x, y, 4); if (GetSpriteTileStartByTag(ANIM_TAG_ICE_CUBE) == 0xFFFF) gSprites[spriteId].invisible = TRUE; + SetSubspriteTables(&gSprites[spriteId], gUnknown_83BF554); gTasks[taskId].data[15] = spriteId; gTasks[taskId].func = sub_80784D8; |