format fixes

This commit is contained in:
Evan
2019-12-04 21:18:40 -07:00
parent bc36d1cb2a
commit c8b22e2680
7 changed files with 1569 additions and 1718 deletions
-36
View File
@@ -57,42 +57,6 @@ extern s32 gAnimMoveDmg;
extern u16 gAnimBattlerSpecies[MAX_BATTLERS_COUNT]; extern u16 gAnimBattlerSpecies[MAX_BATTLERS_COUNT];
extern u8 gUnknown_2037F24; extern u8 gUnknown_2037F24;
/*
extern const struct OamData gOamData_83AC9C8;
extern const struct OamData gOamData_83AC9D0;
extern const struct OamData gOamData_83AC9D8;
extern const struct OamData gOamData_83AC9E0;
extern const struct OamData gOamData_83AC9F8;
extern const struct OamData gOamData_83ACA00;
extern const struct OamData gOamData_83ACA18;
extern const struct OamData gOamData_83ACA20;
extern const struct OamData gOamData_83ACA30;
extern const struct OamData gOamData_83ACA38;
extern const struct OamData gOamData_83ACA40;
extern const struct OamData gOamData_83ACA80;
extern const struct OamData gOamData_83ACA90;
extern const struct OamData gOamData_83ACA98;
extern const struct OamData gOamData_83ACAA0;
extern const struct OamData gOamData_83ACAB8;
extern const struct OamData gOamData_83ACAC8;
extern const struct OamData gOamData_83ACAE8;
extern const struct OamData gOamData_83ACAF0;
extern const struct OamData gOamData_83ACAF8;
extern const struct OamData gOamData_83ACB00;
extern const struct OamData gOamData_83ACB10;
extern const struct OamData gOamData_83ACB18;
extern const struct OamData gOamData_83ACB20;
extern const struct OamData gOamData_83ACB28;
extern const struct OamData gOamData_83ACB38;
extern const struct OamData gOamData_83ACB48;
extern const struct OamData gOamData_83ACB50;
extern const struct OamData gOamData_83ACB58;
extern const struct OamData gOamData_83ACB60;
extern const struct OamData gOamData_83ACB88;
extern const struct OamData gOamData_83ACBC0;
extern const struct OamData gOamData_83ACBE8;
*/
extern const struct OamData gOamData_AffineOff_ObjNormal_8x8; extern const struct OamData gOamData_AffineOff_ObjNormal_8x8;
extern const struct OamData gOamData_AffineOff_ObjNormal_16x16; extern const struct OamData gOamData_AffineOff_ObjNormal_16x16;
extern const struct OamData gOamData_AffineOff_ObjNormal_32x32; extern const struct OamData gOamData_AffineOff_ObjNormal_32x32;
+148 -158
View File
@@ -18,14 +18,8 @@
#include "task.h" #include "task.h"
#include "constants/battle_anim.h" #include "constants/battle_anim.h"
// Defines
#define ANIM_SPRITE_INDEX_COUNT 8 #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 // RAM
EWRAM_DATA static const u8 *sBattleAnimScriptPtr = NULL; EWRAM_DATA static const u8 *sBattleAnimScriptPtr = NULL;
EWRAM_DATA static const u8 *sBattleAnimScriptRetAddr = NULL; EWRAM_DATA static const u8 *sBattleAnimScriptRetAddr = NULL;
@@ -117,7 +111,10 @@ static void ScriptCmd_doublebattle_2E(void);
static void ScriptCmd_stopsound(void); static void ScriptCmd_stopsound(void);
// Data // 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, .y = 0,
.affineMode = ST_OAM_AFFINE_OFF, .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, .y = 0,
.affineMode = ST_OAM_AFFINE_OFF, .affineMode = ST_OAM_AFFINE_OFF,
@@ -146,7 +143,7 @@ const struct OamData gOamData_AffineOff_ObjNormal_16x16 = //gOamData_83AC9D0
.paletteNum = 0, .paletteNum = 0,
}; };
const struct OamData gOamData_AffineOff_ObjNormal_32x32 = //gOamData_83AC9D8 const struct OamData gOamData_AffineOff_ObjNormal_32x32 =
{ {
.y = 0, .y = 0,
.affineMode = ST_OAM_AFFINE_OFF, .affineMode = ST_OAM_AFFINE_OFF,
@@ -160,7 +157,7 @@ const struct OamData gOamData_AffineOff_ObjNormal_32x32 = //gOamData_83AC9D8
.paletteNum = 0, .paletteNum = 0,
}; };
const struct OamData gOamData_AffineOff_ObjNormal_64x64 = //gOamData_83AC9E0 const struct OamData gOamData_AffineOff_ObjNormal_64x64 =
{ {
.y = 0, .y = 0,
.affineMode = ST_OAM_AFFINE_OFF, .affineMode = ST_OAM_AFFINE_OFF,
@@ -174,7 +171,7 @@ const struct OamData gOamData_AffineOff_ObjNormal_64x64 = //gOamData_83AC9E0
.paletteNum = 0, .paletteNum = 0,
}; };
const struct OamData gOamData_AffineOff_ObjNormal_16x8 = //gOamData_83AC9E8 const struct OamData gOamData_AffineOff_ObjNormal_16x8 =
{ {
.y = 0, .y = 0,
.affineMode = ST_OAM_AFFINE_OFF, .affineMode = ST_OAM_AFFINE_OFF,
@@ -188,7 +185,7 @@ const struct OamData gOamData_AffineOff_ObjNormal_16x8 = //gOamData_83AC9E8
.paletteNum = 0, .paletteNum = 0,
}; };
const struct OamData gOamData_AffineOff_ObjNormal_32x8 = //gOamData_83AC9F0 const struct OamData gOamData_AffineOff_ObjNormal_32x8 =
{ {
.y = 0, .y = 0,
.affineMode = ST_OAM_AFFINE_OFF, .affineMode = ST_OAM_AFFINE_OFF,
@@ -202,7 +199,7 @@ const struct OamData gOamData_AffineOff_ObjNormal_32x8 = //gOamData_83AC9F0
.paletteNum = 0, .paletteNum = 0,
}; };
const struct OamData gOamData_AffineOff_ObjNormal_32x16 = //gOamData_83AC9F8 const struct OamData gOamData_AffineOff_ObjNormal_32x16 =
{ {
.y = 0, .y = 0,
.affineMode = ST_OAM_AFFINE_OFF, .affineMode = ST_OAM_AFFINE_OFF,
@@ -216,7 +213,7 @@ const struct OamData gOamData_AffineOff_ObjNormal_32x16 = //gOamData_83AC9F8
.paletteNum = 0, .paletteNum = 0,
}; };
const struct OamData gOamData_AffineOff_ObjNormal_64x32 = //gOamData_83ACA00 const struct OamData gOamData_AffineOff_ObjNormal_64x32 =
{ {
.y = 0, .y = 0,
.affineMode = ST_OAM_AFFINE_OFF, .affineMode = ST_OAM_AFFINE_OFF,
@@ -230,7 +227,7 @@ const struct OamData gOamData_AffineOff_ObjNormal_64x32 = //gOamData_83ACA00
.paletteNum = 0, .paletteNum = 0,
}; };
const struct OamData gOamData_AffineOff_ObjNormal_8x16 = //gOamData_83ACA08 const struct OamData gOamData_AffineOff_ObjNormal_8x16 =
{ {
.y = 0, .y = 0,
.affineMode = ST_OAM_AFFINE_OFF, .affineMode = ST_OAM_AFFINE_OFF,
@@ -244,7 +241,7 @@ const struct OamData gOamData_AffineOff_ObjNormal_8x16 = //gOamData_83ACA08
.paletteNum = 0, .paletteNum = 0,
}; };
const struct OamData gOamData_AffineOff_ObjNormal_8x32 = //gOamData_83ACA10 const struct OamData gOamData_AffineOff_ObjNormal_8x32 =
{ {
.y = 0, .y = 0,
.affineMode = ST_OAM_AFFINE_OFF, .affineMode = ST_OAM_AFFINE_OFF,
@@ -258,7 +255,7 @@ const struct OamData gOamData_AffineOff_ObjNormal_8x32 = //gOamData_83ACA10
.paletteNum = 0, .paletteNum = 0,
}; };
const struct OamData gOamData_AffineOff_ObjNormal_16x32 = //gOamData_83ACA18 const struct OamData gOamData_AffineOff_ObjNormal_16x32 =
{ {
.y = 0, .y = 0,
.affineMode = ST_OAM_AFFINE_OFF, .affineMode = ST_OAM_AFFINE_OFF,
@@ -272,7 +269,7 @@ const struct OamData gOamData_AffineOff_ObjNormal_16x32 = //gOamData_83ACA18
.paletteNum = 0, .paletteNum = 0,
}; };
const struct OamData gOamData_AffineOff_ObjNormal_32x64 = //gOamData_83ACA20 const struct OamData gOamData_AffineOff_ObjNormal_32x64 =
{ {
.y = 0, .y = 0,
.affineMode = ST_OAM_AFFINE_OFF, .affineMode = ST_OAM_AFFINE_OFF,
@@ -286,7 +283,7 @@ const struct OamData gOamData_AffineOff_ObjNormal_32x64 = //gOamData_83ACA20
.paletteNum = 0, .paletteNum = 0,
}; };
const struct OamData gOamData_AffineNormal_ObjNormal_8x8 = //gOamData_83ACA28 const struct OamData gOamData_AffineNormal_ObjNormal_8x8 =
{ {
.y = 0, .y = 0,
.affineMode = ST_OAM_AFFINE_NORMAL, .affineMode = ST_OAM_AFFINE_NORMAL,
@@ -300,7 +297,7 @@ const struct OamData gOamData_AffineNormal_ObjNormal_8x8 = //gOamData_83ACA28
.paletteNum = 0, .paletteNum = 0,
}; };
const struct OamData gOamData_AffineNormal_ObjNormal_16x16 = //gOamData_83ACA30 const struct OamData gOamData_AffineNormal_ObjNormal_16x16 =
{ {
.y = 0, .y = 0,
.affineMode = ST_OAM_AFFINE_NORMAL, .affineMode = ST_OAM_AFFINE_NORMAL,
@@ -314,7 +311,7 @@ const struct OamData gOamData_AffineNormal_ObjNormal_16x16 = //gOamData_83ACA30
.paletteNum = 0, .paletteNum = 0,
}; };
const struct OamData gOamData_AffineNormal_ObjNormal_32x32 = //gOamData_83ACA38 const struct OamData gOamData_AffineNormal_ObjNormal_32x32 =
{ {
.y = 0, .y = 0,
.affineMode = ST_OAM_AFFINE_NORMAL, .affineMode = ST_OAM_AFFINE_NORMAL,
@@ -328,7 +325,7 @@ const struct OamData gOamData_AffineNormal_ObjNormal_32x32 = //gOamData_83ACA38
.paletteNum = 0, .paletteNum = 0,
}; };
const struct OamData gOamData_AffineNormal_ObjNormal_64x64 = //gOamData_83ACA40 const struct OamData gOamData_AffineNormal_ObjNormal_64x64 =
{ {
.y = 0, .y = 0,
.affineMode = ST_OAM_AFFINE_NORMAL, .affineMode = ST_OAM_AFFINE_NORMAL,
@@ -342,7 +339,7 @@ const struct OamData gOamData_AffineNormal_ObjNormal_64x64 = //gOamData_83ACA40
.paletteNum = 0, .paletteNum = 0,
}; };
const struct OamData gOamData_AffineNormal_ObjNormal_16x8 = //gOamData_83ACA48 const struct OamData gOamData_AffineNormal_ObjNormal_16x8 =
{ {
.y = 0, .y = 0,
.affineMode = ST_OAM_AFFINE_NORMAL, .affineMode = ST_OAM_AFFINE_NORMAL,
@@ -356,7 +353,7 @@ const struct OamData gOamData_AffineNormal_ObjNormal_16x8 = //gOamData_83ACA48
.paletteNum = 0, .paletteNum = 0,
}; };
const struct OamData gOamData_AffineNormal_ObjNormal_32x8 = //gOamData_83ACA50 const struct OamData gOamData_AffineNormal_ObjNormal_32x8 =
{ {
.y = 0, .y = 0,
.affineMode = ST_OAM_AFFINE_NORMAL, .affineMode = ST_OAM_AFFINE_NORMAL,
@@ -370,7 +367,7 @@ const struct OamData gOamData_AffineNormal_ObjNormal_32x8 = //gOamData_83ACA50
.paletteNum = 0, .paletteNum = 0,
}; };
const struct OamData gOamData_AffineNormal_ObjNormal_32x16 = //gOamData_83ACA58 const struct OamData gOamData_AffineNormal_ObjNormal_32x16 =
{ {
.y = 0, .y = 0,
.affineMode = ST_OAM_AFFINE_NORMAL, .affineMode = ST_OAM_AFFINE_NORMAL,
@@ -384,7 +381,7 @@ const struct OamData gOamData_AffineNormal_ObjNormal_32x16 = //gOamData_83ACA58
.paletteNum = 0, .paletteNum = 0,
}; };
const struct OamData gOamData_AffineNormal_ObjNormal_64x32 = //gOamData_83ACA60 const struct OamData gOamData_AffineNormal_ObjNormal_64x32 =
{ {
.y = 0, .y = 0,
.affineMode = ST_OAM_AFFINE_NORMAL, .affineMode = ST_OAM_AFFINE_NORMAL,
@@ -398,7 +395,7 @@ const struct OamData gOamData_AffineNormal_ObjNormal_64x32 = //gOamData_83ACA60
.paletteNum = 0, .paletteNum = 0,
}; };
const struct OamData gOamData_AffineNormal_ObjNormal_8x16 = //gOamData_83ACA68 const struct OamData gOamData_AffineNormal_ObjNormal_8x16 =
{ {
.y = 0, .y = 0,
.affineMode = ST_OAM_AFFINE_NORMAL, .affineMode = ST_OAM_AFFINE_NORMAL,
@@ -412,7 +409,7 @@ const struct OamData gOamData_AffineNormal_ObjNormal_8x16 = //gOamData_83ACA68
.paletteNum = 0, .paletteNum = 0,
}; };
const struct OamData gOamData_AffineNormal_ObjNormal_8x32 = //gOamData_83ACA70 const struct OamData gOamData_AffineNormal_ObjNormal_8x32 =
{ {
.y = 0, .y = 0,
.affineMode = ST_OAM_AFFINE_NORMAL, .affineMode = ST_OAM_AFFINE_NORMAL,
@@ -426,7 +423,7 @@ const struct OamData gOamData_AffineNormal_ObjNormal_8x32 = //gOamData_83ACA70
.paletteNum = 0, .paletteNum = 0,
}; };
const struct OamData gOamData_AffineNormal_ObjNormal_16x32 = //gOamData_83ACA78 const struct OamData gOamData_AffineNormal_ObjNormal_16x32 =
{ {
.y = 0, .y = 0,
.affineMode = ST_OAM_AFFINE_NORMAL, .affineMode = ST_OAM_AFFINE_NORMAL,
@@ -440,7 +437,7 @@ const struct OamData gOamData_AffineNormal_ObjNormal_16x32 = //gOamData_83ACA78
.paletteNum = 0, .paletteNum = 0,
}; };
const struct OamData gOamData_AffineNormal_ObjNormal_32x64 = //gOamData_83ACA80 const struct OamData gOamData_AffineNormal_ObjNormal_32x64 =
{ {
.y = 0, .y = 0,
.affineMode = ST_OAM_AFFINE_NORMAL, .affineMode = ST_OAM_AFFINE_NORMAL,
@@ -454,7 +451,7 @@ const struct OamData gOamData_AffineNormal_ObjNormal_32x64 = //gOamData_83ACA80
.paletteNum = 0, .paletteNum = 0,
}; };
const struct OamData gOamData_AffineDouble_ObjNormal_8x8 = //gOamData_83ACA88 const struct OamData gOamData_AffineDouble_ObjNormal_8x8 =
{ {
.y = 0, .y = 0,
.affineMode = ST_OAM_AFFINE_DOUBLE, .affineMode = ST_OAM_AFFINE_DOUBLE,
@@ -468,7 +465,7 @@ const struct OamData gOamData_AffineDouble_ObjNormal_8x8 = //gOamData_83ACA88
.paletteNum = 0, .paletteNum = 0,
}; };
const struct OamData gOamData_AffineDouble_ObjNormal_16x16 = //gOamData_83ACA90 const struct OamData gOamData_AffineDouble_ObjNormal_16x16 =
{ {
.y = 0, .y = 0,
.affineMode = ST_OAM_AFFINE_DOUBLE, .affineMode = ST_OAM_AFFINE_DOUBLE,
@@ -482,7 +479,7 @@ const struct OamData gOamData_AffineDouble_ObjNormal_16x16 = //gOamData_83ACA90
.paletteNum = 0, .paletteNum = 0,
}; };
const struct OamData gOamData_AffineDouble_ObjNormal_32x32 = //gOamData_83ACA98 const struct OamData gOamData_AffineDouble_ObjNormal_32x32 =
{ {
.y = 0, .y = 0,
.affineMode = ST_OAM_AFFINE_DOUBLE, .affineMode = ST_OAM_AFFINE_DOUBLE,
@@ -496,7 +493,7 @@ const struct OamData gOamData_AffineDouble_ObjNormal_32x32 = //gOamData_83ACA98
.paletteNum = 0, .paletteNum = 0,
}; };
const struct OamData gOamData_AffineDouble_ObjNormal_64x64 = //gOamData_83ACAA0 const struct OamData gOamData_AffineDouble_ObjNormal_64x64 =
{ {
.y = 0, .y = 0,
.affineMode = ST_OAM_AFFINE_DOUBLE, .affineMode = ST_OAM_AFFINE_DOUBLE,
@@ -510,7 +507,7 @@ const struct OamData gOamData_AffineDouble_ObjNormal_64x64 = //gOamData_83ACAA0
.paletteNum = 0, .paletteNum = 0,
}; };
const struct OamData gOamData_AffineDouble_ObjNormal_16x8 = //gOamData_83ACAA8 const struct OamData gOamData_AffineDouble_ObjNormal_16x8 =
{ {
.y = 0, .y = 0,
.affineMode = ST_OAM_AFFINE_DOUBLE, .affineMode = ST_OAM_AFFINE_DOUBLE,
@@ -524,7 +521,7 @@ const struct OamData gOamData_AffineDouble_ObjNormal_16x8 = //gOamData_83ACAA8
.paletteNum = 0, .paletteNum = 0,
}; };
const struct OamData gOamData_AffineDouble_ObjNormal_32x8 = //gOamData_83ACAB0 const struct OamData gOamData_AffineDouble_ObjNormal_32x8 =
{ {
.y = 0, .y = 0,
.affineMode = ST_OAM_AFFINE_DOUBLE, .affineMode = ST_OAM_AFFINE_DOUBLE,
@@ -538,7 +535,7 @@ const struct OamData gOamData_AffineDouble_ObjNormal_32x8 = //gOamData_83ACAB0
.paletteNum = 0, .paletteNum = 0,
}; };
const struct OamData gOamData_AffineDouble_ObjNormal_32x16 = //gOamData_83ACAB8 const struct OamData gOamData_AffineDouble_ObjNormal_32x16 =
{ {
.y = 0, .y = 0,
.affineMode = ST_OAM_AFFINE_DOUBLE, .affineMode = ST_OAM_AFFINE_DOUBLE,
@@ -552,7 +549,7 @@ const struct OamData gOamData_AffineDouble_ObjNormal_32x16 = //gOamData_83ACAB8
.paletteNum = 0, .paletteNum = 0,
}; };
const struct OamData gOamData_AffineDouble_ObjNormal_64x32 = //gOamData_83ACAC0 const struct OamData gOamData_AffineDouble_ObjNormal_64x32 =
{ {
.y = 0, .y = 0,
.affineMode = ST_OAM_AFFINE_DOUBLE, .affineMode = ST_OAM_AFFINE_DOUBLE,
@@ -566,7 +563,7 @@ const struct OamData gOamData_AffineDouble_ObjNormal_64x32 = //gOamData_83ACAC0
.paletteNum = 0, .paletteNum = 0,
}; };
const struct OamData gOamData_AffineDouble_ObjNormal_8x16 = //gOamData_83ACAC8 const struct OamData gOamData_AffineDouble_ObjNormal_8x16 =
{ {
.y = 0, .y = 0,
.affineMode = ST_OAM_AFFINE_DOUBLE, .affineMode = ST_OAM_AFFINE_DOUBLE,
@@ -580,7 +577,7 @@ const struct OamData gOamData_AffineDouble_ObjNormal_8x16 = //gOamData_83ACAC8
.paletteNum = 0, .paletteNum = 0,
}; };
const struct OamData gOamData_AffineDouble_ObjNormal_8x32 = //gOamData_83ACAD0 const struct OamData gOamData_AffineDouble_ObjNormal_8x32 =
{ {
.y = 0, .y = 0,
.affineMode = ST_OAM_AFFINE_DOUBLE, .affineMode = ST_OAM_AFFINE_DOUBLE,
@@ -594,7 +591,7 @@ const struct OamData gOamData_AffineDouble_ObjNormal_8x32 = //gOamData_83ACAD0
.paletteNum = 0, .paletteNum = 0,
}; };
const struct OamData gOamData_AffineDouble_ObjNormal_16x32 = //gOamData_83ACAD8 const struct OamData gOamData_AffineDouble_ObjNormal_16x32 =
{ {
.y = 0, .y = 0,
.affineMode = ST_OAM_AFFINE_DOUBLE, .affineMode = ST_OAM_AFFINE_DOUBLE,
@@ -608,7 +605,7 @@ const struct OamData gOamData_AffineDouble_ObjNormal_16x32 = //gOamData_83ACAD8
.paletteNum = 0, .paletteNum = 0,
}; };
const struct OamData gOamData_AffineDouble_ObjNormal_32x64 = //gOamData_83ACAE0 const struct OamData gOamData_AffineDouble_ObjNormal_32x64 =
{ {
.y = 0, .y = 0,
.affineMode = ST_OAM_AFFINE_DOUBLE, .affineMode = ST_OAM_AFFINE_DOUBLE,
@@ -622,7 +619,7 @@ const struct OamData gOamData_AffineDouble_ObjNormal_32x64 = //gOamData_83ACAE0
.paletteNum = 0, .paletteNum = 0,
}; };
const struct OamData gOamData_AffineOff_ObjBlend_8x8 = //gOamData_83ACAE8 const struct OamData gOamData_AffineOff_ObjBlend_8x8 =
{ {
.y = 0, .y = 0,
.affineMode = ST_OAM_AFFINE_OFF, .affineMode = ST_OAM_AFFINE_OFF,
@@ -636,7 +633,7 @@ const struct OamData gOamData_AffineOff_ObjBlend_8x8 = //gOamData_83ACAE8
.paletteNum = 0, .paletteNum = 0,
}; };
const struct OamData gOamData_AffineOff_ObjBlend_16x16 = //gOamData_83ACAF0 const struct OamData gOamData_AffineOff_ObjBlend_16x16 =
{ {
.y = 0, .y = 0,
.affineMode = ST_OAM_AFFINE_OFF, .affineMode = ST_OAM_AFFINE_OFF,
@@ -650,7 +647,7 @@ const struct OamData gOamData_AffineOff_ObjBlend_16x16 = //gOamData_83ACAF0
.paletteNum = 0, .paletteNum = 0,
}; };
const struct OamData gOamData_AffineOff_ObjBlend_32x32 = //gOamData_83ACAF8 const struct OamData gOamData_AffineOff_ObjBlend_32x32 =
{ {
.y = 0, .y = 0,
.affineMode = ST_OAM_AFFINE_OFF, .affineMode = ST_OAM_AFFINE_OFF,
@@ -664,7 +661,7 @@ const struct OamData gOamData_AffineOff_ObjBlend_32x32 = //gOamData_83ACAF8
.paletteNum = 0, .paletteNum = 0,
}; };
const struct OamData gOamData_AffineOff_ObjBlend_64x64 = //gOamData_83ACB00 const struct OamData gOamData_AffineOff_ObjBlend_64x64 =
{ {
.y = 0, .y = 0,
.affineMode = ST_OAM_AFFINE_OFF, .affineMode = ST_OAM_AFFINE_OFF,
@@ -678,7 +675,7 @@ const struct OamData gOamData_AffineOff_ObjBlend_64x64 = //gOamData_83ACB00
.paletteNum = 0, .paletteNum = 0,
}; };
const struct OamData gOamData_AffineOff_ObjBlend_16x8 = //gOamData_83ACB08 const struct OamData gOamData_AffineOff_ObjBlend_16x8 =
{ {
.y = 0, .y = 0,
.affineMode = ST_OAM_AFFINE_OFF, .affineMode = ST_OAM_AFFINE_OFF,
@@ -692,7 +689,7 @@ const struct OamData gOamData_AffineOff_ObjBlend_16x8 = //gOamData_83ACB08
.paletteNum = 0, .paletteNum = 0,
}; };
const struct OamData gOamData_AffineOff_ObjBlend_32x8 = //gOamData_83ACB10 const struct OamData gOamData_AffineOff_ObjBlend_32x8 =
{ {
.y = 0, .y = 0,
.affineMode = ST_OAM_AFFINE_OFF, .affineMode = ST_OAM_AFFINE_OFF,
@@ -706,7 +703,7 @@ const struct OamData gOamData_AffineOff_ObjBlend_32x8 = //gOamData_83ACB10
.paletteNum = 0, .paletteNum = 0,
}; };
const struct OamData gOamData_AffineOff_ObjBlend_32x16 = //gOamData_83ACB18 const struct OamData gOamData_AffineOff_ObjBlend_32x16 =
{ {
.y = 0, .y = 0,
.affineMode = ST_OAM_AFFINE_OFF, .affineMode = ST_OAM_AFFINE_OFF,
@@ -720,7 +717,7 @@ const struct OamData gOamData_AffineOff_ObjBlend_32x16 = //gOamData_83ACB18
.paletteNum = 0, .paletteNum = 0,
}; };
const struct OamData gOamData_AffineOff_ObjBlend_64x32 = //gOamData_83ACB20 const struct OamData gOamData_AffineOff_ObjBlend_64x32 =
{ {
.y = 0, .y = 0,
.affineMode = ST_OAM_AFFINE_OFF, .affineMode = ST_OAM_AFFINE_OFF,
@@ -734,7 +731,7 @@ const struct OamData gOamData_AffineOff_ObjBlend_64x32 = //gOamData_83ACB20
.paletteNum = 0, .paletteNum = 0,
}; };
const struct OamData gOamData_AffineOff_ObjBlend_8x16 = //gOamData_83ACB28 const struct OamData gOamData_AffineOff_ObjBlend_8x16 =
{ {
.y = 0, .y = 0,
.affineMode = ST_OAM_AFFINE_OFF, .affineMode = ST_OAM_AFFINE_OFF,
@@ -748,7 +745,7 @@ const struct OamData gOamData_AffineOff_ObjBlend_8x16 = //gOamData_83ACB28
.paletteNum = 0, .paletteNum = 0,
}; };
const struct OamData gOamData_AffineOff_ObjBlend_8x32 = //gOamData_83ACB30 const struct OamData gOamData_AffineOff_ObjBlend_8x32 =
{ {
.y = 0, .y = 0,
.affineMode = ST_OAM_AFFINE_OFF, .affineMode = ST_OAM_AFFINE_OFF,
@@ -762,7 +759,7 @@ const struct OamData gOamData_AffineOff_ObjBlend_8x32 = //gOamData_83ACB30
.paletteNum = 0, .paletteNum = 0,
}; };
const struct OamData gOamData_AffineOff_ObjBlend_16x32 = //gOamData_83ACB38 const struct OamData gOamData_AffineOff_ObjBlend_16x32 =
{ {
.y = 0, .y = 0,
.affineMode = ST_OAM_AFFINE_OFF, .affineMode = ST_OAM_AFFINE_OFF,
@@ -776,7 +773,7 @@ const struct OamData gOamData_AffineOff_ObjBlend_16x32 = //gOamData_83ACB38
.paletteNum = 0, .paletteNum = 0,
}; };
const struct OamData gOamData_AffineOff_ObjBlend_32x64 = //gOamData_83ACB40 const struct OamData gOamData_AffineOff_ObjBlend_32x64 =
{ {
.y = 0, .y = 0,
.affineMode = ST_OAM_AFFINE_OFF, .affineMode = ST_OAM_AFFINE_OFF,
@@ -790,7 +787,7 @@ const struct OamData gOamData_AffineOff_ObjBlend_32x64 = //gOamData_83ACB40
.paletteNum = 0, .paletteNum = 0,
}; };
const struct OamData gOamData_AffineNormal_ObjBlend_8x8 = //gOamData_83ACB48 const struct OamData gOamData_AffineNormal_ObjBlend_8x8 =
{ {
.y = 0, .y = 0,
.affineMode = ST_OAM_AFFINE_NORMAL, .affineMode = ST_OAM_AFFINE_NORMAL,
@@ -804,7 +801,7 @@ const struct OamData gOamData_AffineNormal_ObjBlend_8x8 = //gOamData_83ACB48
.paletteNum = 0, .paletteNum = 0,
}; };
const struct OamData gOamData_AffineNormal_ObjBlend_16x16 = //gOamData_83ACB50 const struct OamData gOamData_AffineNormal_ObjBlend_16x16 =
{ {
.y = 0, .y = 0,
.affineMode = ST_OAM_AFFINE_NORMAL, .affineMode = ST_OAM_AFFINE_NORMAL,
@@ -818,7 +815,7 @@ const struct OamData gOamData_AffineNormal_ObjBlend_16x16 = //gOamData_83ACB50
.paletteNum = 0, .paletteNum = 0,
}; };
const struct OamData gOamData_AffineNormal_ObjBlend_32x32 = //gOamData_83ACB58 const struct OamData gOamData_AffineNormal_ObjBlend_32x32 =
{ {
.y = 0, .y = 0,
.affineMode = ST_OAM_AFFINE_NORMAL, .affineMode = ST_OAM_AFFINE_NORMAL,
@@ -832,7 +829,7 @@ const struct OamData gOamData_AffineNormal_ObjBlend_32x32 = //gOamData_83ACB58
.paletteNum = 0, .paletteNum = 0,
}; };
const struct OamData gOamData_AffineNormal_ObjBlend_64x64 = //gOamData_83ACB60 const struct OamData gOamData_AffineNormal_ObjBlend_64x64 =
{ {
.y = 0, .y = 0,
.affineMode = ST_OAM_AFFINE_NORMAL, .affineMode = ST_OAM_AFFINE_NORMAL,
@@ -846,7 +843,7 @@ const struct OamData gOamData_AffineNormal_ObjBlend_64x64 = //gOamData_83ACB60
.paletteNum = 0, .paletteNum = 0,
}; };
const struct OamData gOamData_AffineNormal_ObjBlend_16x8 = //gOamData_83ACB68 const struct OamData gOamData_AffineNormal_ObjBlend_16x8 =
{ {
.y = 0, .y = 0,
.affineMode = ST_OAM_AFFINE_NORMAL, .affineMode = ST_OAM_AFFINE_NORMAL,
@@ -860,7 +857,7 @@ const struct OamData gOamData_AffineNormal_ObjBlend_16x8 = //gOamData_83ACB68
.paletteNum = 0, .paletteNum = 0,
}; };
const struct OamData gOamData_AffineNormal_ObjBlend_32x8 = //gOamData_83ACB70 const struct OamData gOamData_AffineNormal_ObjBlend_32x8 =
{ {
.y = 0, .y = 0,
.affineMode = ST_OAM_AFFINE_NORMAL, .affineMode = ST_OAM_AFFINE_NORMAL,
@@ -874,7 +871,7 @@ const struct OamData gOamData_AffineNormal_ObjBlend_32x8 = //gOamData_83ACB70
.paletteNum = 0, .paletteNum = 0,
}; };
const struct OamData gOamData_AffineNormal_ObjBlend_32x16 = //gOamData_83ACB78 const struct OamData gOamData_AffineNormal_ObjBlend_32x16 =
{ {
.y = 0, .y = 0,
.affineMode = ST_OAM_AFFINE_NORMAL, .affineMode = ST_OAM_AFFINE_NORMAL,
@@ -888,7 +885,7 @@ const struct OamData gOamData_AffineNormal_ObjBlend_32x16 = //gOamData_83ACB78
.paletteNum = 0, .paletteNum = 0,
}; };
const struct OamData gOamData_AffineNormal_ObjBlend_64x32 = //gOamData_83ACB80 const struct OamData gOamData_AffineNormal_ObjBlend_64x32 =
{ {
.y = 0, .y = 0,
.affineMode = ST_OAM_AFFINE_NORMAL, .affineMode = ST_OAM_AFFINE_NORMAL,
@@ -902,7 +899,7 @@ const struct OamData gOamData_AffineNormal_ObjBlend_64x32 = //gOamData_83ACB80
.paletteNum = 0, .paletteNum = 0,
}; };
const struct OamData gOamData_AffineNormal_ObjBlend_8x16 = //gOamData_83ACB88 const struct OamData gOamData_AffineNormal_ObjBlend_8x16 =
{ {
.y = 0, .y = 0,
.affineMode = ST_OAM_AFFINE_NORMAL, .affineMode = ST_OAM_AFFINE_NORMAL,
@@ -916,7 +913,7 @@ const struct OamData gOamData_AffineNormal_ObjBlend_8x16 = //gOamData_83ACB88
.paletteNum = 0, .paletteNum = 0,
}; };
const struct OamData gOamData_AffineNormal_ObjBlend_8x32 = //gOamData_83ACB90 const struct OamData gOamData_AffineNormal_ObjBlend_8x32 =
{ {
.y = 0, .y = 0,
.affineMode = ST_OAM_AFFINE_NORMAL, .affineMode = ST_OAM_AFFINE_NORMAL,
@@ -930,7 +927,7 @@ const struct OamData gOamData_AffineNormal_ObjBlend_8x32 = //gOamData_83ACB90
.paletteNum = 0, .paletteNum = 0,
}; };
const struct OamData gOamData_AffineNormal_ObjBlend_16x32 = //gOamData_83ACB98 const struct OamData gOamData_AffineNormal_ObjBlend_16x32 =
{ {
.y = 0, .y = 0,
.affineMode = ST_OAM_AFFINE_NORMAL, .affineMode = ST_OAM_AFFINE_NORMAL,
@@ -944,7 +941,7 @@ const struct OamData gOamData_AffineNormal_ObjBlend_16x32 = //gOamData_83ACB98
.paletteNum = 0, .paletteNum = 0,
}; };
const struct OamData gOamData_AffineNormal_ObjBlend_32x64 = //gOamData_83ACBA0 const struct OamData gOamData_AffineNormal_ObjBlend_32x64 =
{ {
.y = 0, .y = 0,
.affineMode = ST_OAM_AFFINE_NORMAL, .affineMode = ST_OAM_AFFINE_NORMAL,
@@ -958,7 +955,7 @@ const struct OamData gOamData_AffineNormal_ObjBlend_32x64 = //gOamData_83ACBA0
.paletteNum = 0, .paletteNum = 0,
}; };
const struct OamData gOamData_AffineDouble_ObjBlend_8x8 = //gOamData_83ACBA8 const struct OamData gOamData_AffineDouble_ObjBlend_8x8 =
{ {
.y = 0, .y = 0,
.affineMode = ST_OAM_AFFINE_DOUBLE, .affineMode = ST_OAM_AFFINE_DOUBLE,
@@ -972,7 +969,7 @@ const struct OamData gOamData_AffineDouble_ObjBlend_8x8 = //gOamData_83ACBA8
.paletteNum = 0, .paletteNum = 0,
}; };
const struct OamData gOamData_AffineDouble_ObjBlend_16x16 = //gOamData_83ACBB0 const struct OamData gOamData_AffineDouble_ObjBlend_16x16 =
{ {
.y = 0, .y = 0,
.affineMode = ST_OAM_AFFINE_DOUBLE, .affineMode = ST_OAM_AFFINE_DOUBLE,
@@ -986,7 +983,7 @@ const struct OamData gOamData_AffineDouble_ObjBlend_16x16 = //gOamData_83ACBB0
.paletteNum = 0, .paletteNum = 0,
}; };
const struct OamData gOamData_AffineDouble_ObjBlend_32x32 = //gOamData_83ACBB8 const struct OamData gOamData_AffineDouble_ObjBlend_32x32 =
{ {
.y = 0, .y = 0,
.affineMode = ST_OAM_AFFINE_DOUBLE, .affineMode = ST_OAM_AFFINE_DOUBLE,
@@ -1000,7 +997,7 @@ const struct OamData gOamData_AffineDouble_ObjBlend_32x32 = //gOamData_83ACBB8
.paletteNum = 0, .paletteNum = 0,
}; };
const struct OamData gOamData_AffineDouble_ObjBlend_64x64 = //gOamData_83ACBC0 const struct OamData gOamData_AffineDouble_ObjBlend_64x64 =
{ {
.y = 0, .y = 0,
.affineMode = ST_OAM_AFFINE_DOUBLE, .affineMode = ST_OAM_AFFINE_DOUBLE,
@@ -1014,7 +1011,7 @@ const struct OamData gOamData_AffineDouble_ObjBlend_64x64 = //gOamData_83ACBC0
.paletteNum = 0, .paletteNum = 0,
}; };
const struct OamData gOamData_AffineDouble_ObjBlend_16x8 = //gOamData_83ACBC8 const struct OamData gOamData_AffineDouble_ObjBlend_16x8 =
{ {
.y = 0, .y = 0,
.affineMode = ST_OAM_AFFINE_DOUBLE, .affineMode = ST_OAM_AFFINE_DOUBLE,
@@ -1028,7 +1025,7 @@ const struct OamData gOamData_AffineDouble_ObjBlend_16x8 = //gOamData_83ACBC8
.paletteNum = 0, .paletteNum = 0,
}; };
const struct OamData gOamData_AffineDouble_ObjBlend_32x8 = //gOamData_83ACBD0 const struct OamData gOamData_AffineDouble_ObjBlend_32x8 =
{ {
.y = 0, .y = 0,
.affineMode = ST_OAM_AFFINE_DOUBLE, .affineMode = ST_OAM_AFFINE_DOUBLE,
@@ -1042,7 +1039,7 @@ const struct OamData gOamData_AffineDouble_ObjBlend_32x8 = //gOamData_83ACBD0
.paletteNum = 0, .paletteNum = 0,
}; };
const struct OamData gOamData_AffineDouble_ObjBlend_32x16 = //gOamData_83ACBD8 const struct OamData gOamData_AffineDouble_ObjBlend_32x16 =
{ {
.y = 0, .y = 0,
.affineMode = ST_OAM_AFFINE_DOUBLE, .affineMode = ST_OAM_AFFINE_DOUBLE,
@@ -1056,7 +1053,7 @@ const struct OamData gOamData_AffineDouble_ObjBlend_32x16 = //gOamData_83ACBD8
.paletteNum = 0, .paletteNum = 0,
}; };
const struct OamData gOamData_AffineDouble_ObjBlend_64x32 = //gOamData_83ACBE0 const struct OamData gOamData_AffineDouble_ObjBlend_64x32 =
{ {
.y = 0, .y = 0,
.affineMode = ST_OAM_AFFINE_DOUBLE, .affineMode = ST_OAM_AFFINE_DOUBLE,
@@ -1070,7 +1067,7 @@ const struct OamData gOamData_AffineDouble_ObjBlend_64x32 = //gOamData_83ACBE0
.paletteNum = 0, .paletteNum = 0,
}; };
const struct OamData gOamData_AffineDouble_ObjBlend_8x16 = //gOamData_83ACBE8 const struct OamData gOamData_AffineDouble_ObjBlend_8x16 =
{ {
.y = 0, .y = 0,
.affineMode = ST_OAM_AFFINE_DOUBLE, .affineMode = ST_OAM_AFFINE_DOUBLE,
@@ -1084,7 +1081,7 @@ const struct OamData gOamData_AffineDouble_ObjBlend_8x16 = //gOamData_83ACBE8
.paletteNum = 0, .paletteNum = 0,
}; };
const struct OamData gOamData_AffineDouble_ObjBlend_8x32 = //gOamData_83ACBF0 const struct OamData gOamData_AffineDouble_ObjBlend_8x32 =
{ {
.y = 0, .y = 0,
.affineMode = ST_OAM_AFFINE_DOUBLE, .affineMode = ST_OAM_AFFINE_DOUBLE,
@@ -1098,7 +1095,7 @@ const struct OamData gOamData_AffineDouble_ObjBlend_8x32 = //gOamData_83ACBF0
.paletteNum = 0, .paletteNum = 0,
}; };
const struct OamData gOamData_AffineDouble_ObjBlend_16x32 = //gOamData_83ACBF8 const struct OamData gOamData_AffineDouble_ObjBlend_16x32 =
{ {
.y = 0, .y = 0,
.affineMode = ST_OAM_AFFINE_DOUBLE, .affineMode = ST_OAM_AFFINE_DOUBLE,
@@ -1112,7 +1109,7 @@ const struct OamData gOamData_AffineDouble_ObjBlend_16x32 = //gOamData_83ACBF8
.paletteNum = 0, .paletteNum = 0,
}; };
const struct OamData gOamData_AffineDouble_ObjBlend_32x64 = //gOamData_83ACC00 const struct OamData gOamData_AffineDouble_ObjBlend_32x64 =
{ {
.y = 0, .y = 0,
.affineMode = ST_OAM_AFFINE_DOUBLE, .affineMode = ST_OAM_AFFINE_DOUBLE,
@@ -1126,7 +1123,7 @@ const struct OamData gOamData_AffineDouble_ObjBlend_32x64 = //gOamData_83ACC00
.paletteNum = 0, .paletteNum = 0,
}; };
const struct CompressedSpriteSheet gBattleAnimPicTable[] = // 83ACC08 const struct CompressedSpriteSheet gBattleAnimPicTable[] =
{ {
{gBattleAnimSpriteGfx_Bone, 0x0200, ANIM_TAG_BONE}, {gBattleAnimSpriteGfx_Bone, 0x0200, ANIM_TAG_BONE},
{gBattleAnimSpriteGfx_Spark, 0x0300, ANIM_TAG_SPARK}, {gBattleAnimSpriteGfx_Spark, 0x0300, ANIM_TAG_SPARK},
@@ -1712,7 +1709,7 @@ const struct CompressedSpritePalette gBattleAnimPaletteTable[] =
{gBattleAnimSpritePal_BlueRing2, ANIM_TAG_BLUE_RING_2}, {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},
[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}, [BG_SOLARBEAM_CONTESTS] = {gBattleAnimBgImage_Impact, gBattleAnimBgPalette_Solarbeam, gBattleAnimBgTilemap_ImpactContests},
}; };
static void (* const sScriptCmdTable[])(void) = // 83ADF5C static void (* const sScriptCmdTable[])(void) =
{ {
ScriptCmd_loadspritegfx, ScriptCmd_loadspritegfx,
ScriptCmd_unloadspritegfx, ScriptCmd_unloadspritegfx,
@@ -1838,15 +1835,15 @@ void LaunchBattleAnimation(const u8 *const animsTable[], u16 tableId, bool8 isMo
{ {
s32 i; s32 i;
sub_80767F0(); sub_80767F0();
UpdateOamPriorityInAllHealthboxes(0); UpdateOamPriorityInAllHealthboxes(0);
for (i = 0; i < MAX_BATTLERS_COUNT; i++) for (i = 0; i < MAX_BATTLERS_COUNT; i++)
{ {
if (GetBattlerSide(i) != B_SIDE_PLAYER) if (GetBattlerSide(i) != B_SIDE_PLAYER)
gAnimBattlerSpecies[i] = GetMonData(&gEnemyParty[gBattlerPartyIndexes[i]], MON_DATA_SPECIES); gAnimBattlerSpecies[i] = GetMonData(&gEnemyParty[gBattlerPartyIndexes[i]], MON_DATA_SPECIES);
else else
gAnimBattlerSpecies[i] = GetMonData(&gPlayerParty[gBattlerPartyIndexes[i]], MON_DATA_SPECIES); gAnimBattlerSpecies[i] = GetMonData(&gPlayerParty[gBattlerPartyIndexes[i]], MON_DATA_SPECIES);
} }
if (!isMoveAnim) if (!isMoveAnim)
sAnimMoveIndex = 0; sAnimMoveIndex = 0;
@@ -1958,14 +1955,9 @@ static void ScriptCmd_loadspritegfx(void)
sBattleAnimScriptPtr++; sBattleAnimScriptPtr++;
index = T1_READ_16(sBattleAnimScriptPtr); index = T1_READ_16(sBattleAnimScriptPtr);
LoadCompressedSpriteSheetUsingHeap(&gBattleAnimPicTable[GET_TRUE_SPRITE_INDEX(index)]);
LoadCompressedSpriteSheetUsingHeap(&gBattleAnimPicTable[index]); LoadCompressedSpritePaletteUsingHeap(&gBattleAnimPaletteTable[GET_TRUE_SPRITE_INDEX(index)]);
LoadCompressedSpritePaletteUsingHeap(&gBattleAnimPaletteTable[index]); sBattleAnimScriptPtr += 2;
//LoadCompressedSpriteSheetUsingHeap(&gUnknown_8399388[GET_TRUE_SPRITE_INDEX(index)]);
//LoadCompressedSpritePaletteUsingHeap(&gUnknown_8399C90[GET_TRUE_SPRITE_INDEX(index)]);
sBattleAnimScriptPtr += 2;
AddSpriteIndex(GET_TRUE_SPRITE_INDEX(index)); AddSpriteIndex(GET_TRUE_SPRITE_INDEX(index));
gAnimFramesToWait = 1; gAnimFramesToWait = 1;
gAnimScriptCallback = WaitAnimFrameCount; gAnimScriptCallback = WaitAnimFrameCount;
@@ -2077,7 +2069,6 @@ static void ScriptCmd_delay(void)
gAnimScriptCallback = WaitAnimFrameCount; gAnimScriptCallback = WaitAnimFrameCount;
} }
// Wait for visual tasks to finish.
static void ScriptCmd_waitforvisualfinish(void) static void ScriptCmd_waitforvisualfinish(void)
{ {
if (gAnimVisualTaskCount == 0) 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); m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 256);
sub_80767F0(); sub_80767F0();
UpdateOamPriorityInAllHealthboxes(1); UpdateOamPriorityInAllHealthboxes(1);
gAnimScriptActive = FALSE; gAnimScriptActive = FALSE;
} }
} }
@@ -2176,20 +2167,20 @@ static void ScriptCmd_monbg(void)
sBattleAnimScriptPtr++; sBattleAnimScriptPtr++;
animBattler = sBattleAnimScriptPtr[0]; animBattler = sBattleAnimScriptPtr[0];
if (animBattler == 0) if (animBattler == ANIM_ATTACKER)
animBattler = 2; animBattler = ANIM_ATK_PARTNER;
else if (animBattler == 1) else if (animBattler == ANIM_TARGET)
animBattler = 3; animBattler = ANIM_DEF_PARTNER;
if (animBattler == 0 || animBattler == 2) if (animBattler == ANIM_ATTACKER || animBattler == ANIM_ATK_PARTNER)
battlerId = gBattleAnimAttacker; battlerId = gBattleAnimAttacker;
else else
battlerId = gBattleAnimTarget; battlerId = gBattleAnimTarget;
if (IsBattlerSpriteVisible(battlerId)) if (IsBattlerSpriteVisible(battlerId))
{ {
position = ((GetBattlerPosition(battlerId) << 0x18) + 0xFF000000) >> 0x18; //make human code position = GetBattlerPosition(battlerId);
if (position <= B_POSITION_OPPONENT_LEFT) if (position == B_POSITION_OPPONENT_LEFT || position == B_POSITION_PLAYER_RIGHT)
toBG_2 = FALSE; toBG_2 = FALSE;
else else
toBG_2 = TRUE; toBG_2 = TRUE;
@@ -2217,10 +2208,10 @@ static void ScriptCmd_monbg(void)
} }
battlerId ^= BIT_FLANK; battlerId ^= BIT_FLANK;
if (animBattler > 1 && IsBattlerSpriteVisible(battlerId)) if (animBattler > ANIM_TARGET && IsBattlerSpriteVisible(battlerId))
{ {
position = ((GetBattlerPosition(battlerId) << 0x18) + 0xFF000000) >> 0x18; //make human code position = GetBattlerPosition(battlerId);
if (position <= B_POSITION_OPPONENT_LEFT) if (position == B_POSITION_OPPONENT_LEFT || position == B_POSITION_PLAYER_RIGHT)
toBG_2 = FALSE; toBG_2 = FALSE;
else else
toBG_2 = TRUE; toBG_2 = TRUE;
@@ -2254,7 +2245,7 @@ bool8 IsBattlerSpriteVisible(u8 battlerId)
{ {
u8 battler = battlerId; u8 battler = battlerId;
if (!IsBattlerSpritePresent(battler)) if (!IsBattlerSpritePresent(battler))
return FALSE; return FALSE;
if (!gBattleSpritesDataPtr->battlerData[battler].invisible || !gSprites[gBattlerSpriteIds[battler]].invisible) if (!gBattleSpritesDataPtr->battlerData[battler].invisible || !gSprites[gBattlerSpriteIds[battler]].invisible)
@@ -2263,7 +2254,6 @@ bool8 IsBattlerSpriteVisible(u8 battlerId)
return FALSE; return FALSE;
} }
// re-check needed?
void MoveBattlerSpriteToBG(u8 battlerId, bool8 toBG_2) void MoveBattlerSpriteToBG(u8 battlerId, bool8 toBG_2)
{ {
struct BattleAnimBgData animBg; struct BattleAnimBgData animBg;
@@ -2273,8 +2263,8 @@ void MoveBattlerSpriteToBG(u8 battlerId, bool8 toBG_2)
if (!toBG_2) if (!toBG_2)
{ {
RequestDma3Fill(0, (void*)(BG_SCREEN_ADDR(8)), 0x2000, 1); RequestDma3Fill(0, (void*)(BG_SCREEN_ADDR(8)), 0x2000, 1);
RequestDma3Fill(0, (void*)(BG_SCREEN_ADDR(28)), 0x1000, 1); RequestDma3Fill(0, (void*)(BG_SCREEN_ADDR(28)), 0x1000, 1);
sub_80752A0(&animBg); sub_80752A0(&animBg);
CpuFill16(toBG_2, animBg.bgTiles, 0x1000); CpuFill16(toBG_2, animBg.bgTiles, 0x1000);
CpuFill16(toBG_2, animBg.bgTilemap, 0x800); CpuFill16(toBG_2, animBg.bgTilemap, 0x800);
@@ -2336,9 +2326,9 @@ void sub_80730C0(u16 a, u16 *b, s32 c, u8 d)
for (i = 0; i < var; i++) for (i = 0; i < var; i++)
{ {
for (j = 0; j < 32; j++) for (j = 0; j < 32; j++)
{ {
b[32 * i + j] = ((b[32 * i + j] & 0xFFF) | a) + c; b[32 * i + j] = ((b[32 * i + j] & 0xFFF) | a) + c;
} }
} }
} }
@@ -2405,22 +2395,22 @@ static void ScriptCmd_clearmonbg(void)
sBattleAnimScriptPtr++; sBattleAnimScriptPtr++;
animBattlerId = sBattleAnimScriptPtr[0]; animBattlerId = sBattleAnimScriptPtr[0];
if (animBattlerId == 0) if (animBattlerId == ANIM_ATTACKER)
animBattlerId = 2; animBattlerId = ANIM_ATK_PARTNER;
else if (animBattlerId == 1) else if (animBattlerId == ANIM_TARGET)
animBattlerId = 3; animBattlerId = ANIM_DEF_PARTNER;
if (animBattlerId == 0 || animBattlerId == 2) if (animBattlerId == ANIM_ATTACKER || animBattlerId == ANIM_ATK_PARTNER)
battlerId = gBattleAnimAttacker; battlerId = gBattleAnimAttacker;
else else
battlerId = gBattleAnimTarget; battlerId = gBattleAnimTarget;
if (sMonAnimTaskIdArray[0] != 0xFF) if (sMonAnimTaskIdArray[0] != 0xFF)
gSprites[gBattlerSpriteIds[battlerId]].invisible = FALSE; 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; gSprites[gBattlerSpriteIds[battlerId ^ BIT_FLANK]].invisible = FALSE;
else else
animBattlerId = 0; animBattlerId = ANIM_ATTACKER;
taskId = CreateTask(sub_807331C, 5); taskId = CreateTask(sub_807331C, 5);
gTasks[taskId].data[0] = animBattlerId; gTasks[taskId].data[0] = animBattlerId;
@@ -2431,14 +2421,14 @@ static void ScriptCmd_clearmonbg(void)
static void sub_807331C(u8 taskId) static void sub_807331C(u8 taskId)
{ {
u8 toBG_2; u8 toBG_2;
u8 position; u8 position;
gTasks[taskId].data[1]++; gTasks[taskId].data[1]++;
if (gTasks[taskId].data[1] != 1) if (gTasks[taskId].data[1] != 1)
{ {
position = ((GetBattlerPosition((u8)gTasks[taskId].data[2]) << 0x18) + 0xFF000000) >> 0x18; //make human code position = GetBattlerPosition((u8)gTasks[taskId].data[2]);
if (position <= B_POSITION_OPPONENT_LEFT) if (position == B_POSITION_OPPONENT_LEFT || position == B_POSITION_PLAYER_RIGHT)
toBG_2 = FALSE; toBG_2 = FALSE;
else else
toBG_2 = TRUE; toBG_2 = TRUE;
@@ -2464,43 +2454,43 @@ static void ScriptCmd_monbg_22(void)
bool8 toBG_2; bool8 toBG_2;
u8 battlerId; u8 battlerId;
u8 animBattlerId; u8 animBattlerId;
u8 position; u8 position;
sBattleAnimScriptPtr++; sBattleAnimScriptPtr++;
animBattlerId = sBattleAnimScriptPtr[0]; animBattlerId = sBattleAnimScriptPtr[0];
if (animBattlerId == 0) if (animBattlerId == ANIM_ATTACKER)
animBattlerId = 2; animBattlerId = ANIM_ATK_PARTNER;
else if (animBattlerId == 1) else if (animBattlerId == ANIM_TARGET)
animBattlerId = 3; animBattlerId = ANIM_DEF_PARTNER;
if (animBattlerId == 0 || animBattlerId == 2) if (animBattlerId == ANIM_ATTACKER || animBattlerId == ANIM_ATK_PARTNER)
battlerId = gBattleAnimAttacker; battlerId = gBattleAnimAttacker;
else else
battlerId = gBattleAnimTarget; battlerId = gBattleAnimTarget;
if (IsBattlerSpriteVisible(battlerId)) if (IsBattlerSpriteVisible(battlerId))
{ {
position = ((GetBattlerPosition(battlerId) << 0x18) + 0xFF000000) >> 0x18; //make human code position = GetBattlerPosition(battlerId);
if (position <= B_POSITION_OPPONENT_LEFT) if (position == B_POSITION_OPPONENT_LEFT || position == B_POSITION_PLAYER_RIGHT)
toBG_2 = FALSE; toBG_2 = FALSE;
else else
toBG_2 = TRUE; toBG_2 = TRUE;
MoveBattlerSpriteToBG(battlerId, toBG_2); MoveBattlerSpriteToBG(battlerId, toBG_2);
gSprites[gBattlerSpriteIds[battlerId]].invisible = FALSE; gSprites[gBattlerSpriteIds[battlerId]].invisible = FALSE;
} }
battlerId ^= BIT_FLANK; battlerId ^= BIT_FLANK;
if (animBattlerId > 1 && IsBattlerSpriteVisible(battlerId)) if (animBattlerId > ANIM_TARGET && IsBattlerSpriteVisible(battlerId))
{ {
position = ((GetBattlerPosition(battlerId) << 0x18) + 0xFF000000) >> 0x18; //make human code position = GetBattlerPosition(battlerId);
if (position <= B_POSITION_OPPONENT_LEFT) if (position == B_POSITION_OPPONENT_LEFT || position == B_POSITION_PLAYER_RIGHT)
toBG_2 = FALSE; toBG_2 = FALSE;
else else
toBG_2 = TRUE; toBG_2 = TRUE;
MoveBattlerSpriteToBG(battlerId, toBG_2); MoveBattlerSpriteToBG(battlerId, toBG_2);
gSprites[gBattlerSpriteIds[battlerId]].invisible = FALSE; gSprites[gBattlerSpriteIds[battlerId]].invisible = FALSE;
} }
sBattleAnimScriptPtr++; sBattleAnimScriptPtr++;
@@ -2527,10 +2517,10 @@ static void ScriptCmd_clearmonbg_23(void)
if (IsBattlerSpriteVisible(battlerId)) if (IsBattlerSpriteVisible(battlerId))
gSprites[gBattlerSpriteIds[battlerId]].invisible = FALSE; 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; gSprites[gBattlerSpriteIds[battlerId ^ BIT_FLANK]].invisible = FALSE;
else else
animBattlerId = 0; animBattlerId = ANIM_ATTACKER;
taskId = CreateTask(sub_8073558, 5); taskId = CreateTask(sub_8073558, 5);
gTasks[taskId].data[0] = animBattlerId; gTasks[taskId].data[0] = animBattlerId;
@@ -2545,13 +2535,13 @@ static void sub_8073558(u8 taskId)
u8 position; u8 position;
u8 battlerId; u8 battlerId;
gTasks[taskId].data[1]++; gTasks[taskId].data[1]++;
if (gTasks[taskId].data[1] != 1) if (gTasks[taskId].data[1] != 1)
{ {
bool8 toBG_2; bool8 toBG_2;
battlerId = gTasks[taskId].data[2]; battlerId = gTasks[taskId].data[2];
position = ((GetBattlerPosition(battlerId) << 0x18) + 0xFF000000) >> 0x18; //make human code position = GetBattlerPosition(battlerId);
if (position <= B_POSITION_OPPONENT_LEFT) if (position == B_POSITION_OPPONENT_LEFT || position == B_POSITION_PLAYER_RIGHT)
toBG_2 = FALSE; toBG_2 = FALSE;
else else
toBG_2 = TRUE; toBG_2 = TRUE;
@@ -2659,7 +2649,7 @@ static void ScriptCmd_goto(void)
bool8 IsContest(void) bool8 IsContest(void)
{ {
return FALSE; return FALSE;
} }
// Unused // Unused
@@ -2746,14 +2736,14 @@ static void Task_FadeToBg(u8 taskId)
static void LoadMoveBg(u16 bgId) static void LoadMoveBg(u16 bgId)
{ {
LZDecompressVram(gBattleAnimBackgroundTable[bgId].tilemap, (void *)(BG_SCREEN_ADDR(26))); LZDecompressVram(gBattleAnimBackgroundTable[bgId].tilemap, (void *)(BG_SCREEN_ADDR(26)));
LZDecompressVram(gBattleAnimBackgroundTable[bgId].image, (void *)(BG_CHAR_ADDR(2))); LZDecompressVram(gBattleAnimBackgroundTable[bgId].image, (void *)(BG_CHAR_ADDR(2)));
LoadCompressedPalette(gBattleAnimBackgroundTable[bgId].palette, 32, 32); LoadCompressedPalette(gBattleAnimBackgroundTable[bgId].palette, 32, 32);
} }
static void LoadDefaultBg(void) static void LoadDefaultBg(void)
{ {
DrawMainBattleBackground(); DrawMainBattleBackground();
} }
static void ScriptCmd_restorebg(void) static void ScriptCmd_restorebg(void)
@@ -2957,18 +2947,18 @@ static void Task_PanFromInitialToTarget(u8 taskId)
pan = currentPan + incrementPan; pan = currentPan + incrementPan;
gTasks[taskId].tCurrentPan = pan; gTasks[taskId].tCurrentPan = pan;
if (incrementPan == 0) // If we're not incrementing, just cancel the task immediately. if (incrementPan == 0)
{ {
destroyTask = TRUE; destroyTask = TRUE;
} }
else if (initialPanning < targetPanning) // Panning increasing. else if (initialPanning < targetPanning)
{ {
if (pan >= targetPanning) // Target reached. if (pan >= targetPanning)
destroyTask = TRUE; destroyTask = TRUE;
} }
else // Panning decreasing. else // Panning decreasing.
{ {
if (pan <= targetPanning) // Target reached. if (pan <= targetPanning)
destroyTask = TRUE; destroyTask = TRUE;
} }
@@ -3213,7 +3203,7 @@ static void ScriptCmd_jumpargeq(void)
static void ScriptCmd_jumpifcontest(void) static void ScriptCmd_jumpifcontest(void)
{ {
sBattleAnimScriptPtr += 5; sBattleAnimScriptPtr += 5;
} }
static void ScriptCmd_monbgprio_28(void) static void ScriptCmd_monbgprio_28(void)
File diff suppressed because it is too large Load Diff
+139 -96
View File
@@ -105,7 +105,10 @@ static void AnimPerishSongMusicNote_Step1(struct Sprite *);
static void AnimPerishSongMusicNote_Step2(struct Sprite *); static void AnimPerishSongMusicNote_Step2(struct Sprite *);
// Data // 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, .tileTag = ANIM_TAG_FINGER,
.paletteTag = ANIM_TAG_FINGER, .paletteTag = ANIM_TAG_FINGER,
@@ -127,7 +130,8 @@ const union AnimCmd *const gUnknown_83E3AFC[] =
gUnknown_83E3AF4, gUnknown_83E3AF4,
}; };
const struct SpriteTemplate gUnknown_83E3B00 = // Unused // Unused
const struct SpriteTemplate gUnknown_83E3B00 =
{ {
.tileTag = ANIM_TAG_MUSIC_NOTES, .tileTag = ANIM_TAG_MUSIC_NOTES,
.paletteTag = ANIM_TAG_MUSIC_NOTES, .paletteTag = ANIM_TAG_MUSIC_NOTES,
@@ -138,7 +142,8 @@ const struct SpriteTemplate gUnknown_83E3B00 = // Unused
.callback = sub_80A6E98, .callback = sub_80A6E98,
}; };
const struct SpriteTemplate gUnknown_83E3B18 = // Unused // Unused
const struct SpriteTemplate gUnknown_83E3B18 =
{ {
.tileTag = 0, .tileTag = 0,
.paletteTag = 0, .paletteTag = 0,
@@ -149,8 +154,8 @@ const struct SpriteTemplate gUnknown_83E3B18 = // Unused
.callback = sub_80A6F8C, .callback = sub_80A6F8C,
}; };
extern const union AffineAnimCmd *const gUnknown_83E7910[]; // Unused
const struct SpriteTemplate gUnknown_83E3B30 = // Unused const struct SpriteTemplate gUnknown_83E3B30 =
{ {
.tileTag = ANIM_TAG_CLAMP, .tileTag = ANIM_TAG_CLAMP,
.paletteTag = ANIM_TAG_CLAMP, .paletteTag = ANIM_TAG_CLAMP,
@@ -187,7 +192,8 @@ const union AffineAnimCmd *const gUnknown_83E3B78[] =
gUnknown_83E3B60, gUnknown_83E3B60,
}; };
const struct SpriteTemplate gUnknown_83E3B7C = // Unused // Unused
const struct SpriteTemplate gUnknown_83E3B7C =
{ {
.tileTag = ANIM_TAG_EXPLOSION_6, .tileTag = ANIM_TAG_EXPLOSION_6,
.paletteTag = ANIM_TAG_EXPLOSION_6, .paletteTag = ANIM_TAG_EXPLOSION_6,
@@ -216,7 +222,7 @@ const union AnimCmd *const gKinesisZapEnergyAnimTable[] =
gKinesisZapEnergyAnimCmds, gKinesisZapEnergyAnimCmds,
}; };
const struct SpriteTemplate gKinesisZapEnergySpriteTemplate = //gUnknown_83E3BBC const struct SpriteTemplate gKinesisZapEnergySpriteTemplate =
{ {
.tileTag = ANIM_TAG_ALERT, .tileTag = ANIM_TAG_ALERT,
.paletteTag = ANIM_TAG_ALERT, .paletteTag = ANIM_TAG_ALERT,
@@ -240,7 +246,7 @@ const union AffineAnimCmd *const gSwordsDanceBladeAffineAnimTable[] =
gSwordsDanceBladeAffineAnimCmds, gSwordsDanceBladeAffineAnimCmds,
}; };
const struct SpriteTemplate gSwordsDanceBladeSpriteTemplate = //gUnknown_83E3BF8 const struct SpriteTemplate gSwordsDanceBladeSpriteTemplate =
{ {
.tileTag = ANIM_TAG_SWORD, .tileTag = ANIM_TAG_SWORD,
.paletteTag = ANIM_TAG_SWORD, .paletteTag = ANIM_TAG_SWORD,
@@ -251,7 +257,7 @@ const struct SpriteTemplate gSwordsDanceBladeSpriteTemplate = //gUnknown_83E3BF8
.callback = Anim_SwordsDanceBlade, .callback = Anim_SwordsDanceBlade,
}; };
const struct SpriteTemplate gSonicBoomSpriteTemplate = //gUnknown_83E3C10 const struct SpriteTemplate gSonicBoomSpriteTemplate =
{ {
.tileTag = ANIM_TAG_AIR_WAVE, .tileTag = ANIM_TAG_AIR_WAVE,
.paletteTag = ANIM_TAG_AIR_WAVE, .paletteTag = ANIM_TAG_AIR_WAVE,
@@ -262,7 +268,7 @@ const struct SpriteTemplate gSonicBoomSpriteTemplate = //gUnknown_83E3C10
.callback = AnimSonicBoomProjectile, .callback = AnimSonicBoomProjectile,
}; };
const struct SpriteTemplate gAirWaveProjectileSpriteTemplate = //gUnknown_83E3C28 const struct SpriteTemplate gAirWaveProjectileSpriteTemplate =
{ {
.tileTag = ANIM_TAG_AIR_WAVE, .tileTag = ANIM_TAG_AIR_WAVE,
.paletteTag = ANIM_TAG_AIR_WAVE, .paletteTag = ANIM_TAG_AIR_WAVE,
@@ -292,17 +298,17 @@ const union AffineAnimCmd gWaterPulseRingAffineAnimCmds[] =
AFFINEANIMCMD_END, AFFINEANIMCMD_END,
}; };
const union AffineAnimCmd *const gGrowingRingAffineAnimTable[] = //gUnknown_83E3C98 const union AffineAnimCmd *const gGrowingRingAffineAnimTable[] =
{ {
gGrowingRingAffineAnimCmds, gGrowingRingAffineAnimCmds,
}; };
const union AffineAnimCmd *const gWaterPulseRingAffineAnimTable[] = //83E3C9C const union AffineAnimCmd *const gWaterPulseRingAffineAnimTable[] =
{ {
gWaterPulseRingAffineAnimCmds, gWaterPulseRingAffineAnimCmds,
}; };
const struct SpriteTemplate gSupersonicWaveSpriteTemplate = //gUnknown_83E3CA0 const struct SpriteTemplate gSupersonicWaveSpriteTemplate =
{ {
.tileTag = ANIM_TAG_GOLD_RING, .tileTag = ANIM_TAG_GOLD_RING,
.paletteTag = ANIM_TAG_GOLD_RING, .paletteTag = ANIM_TAG_GOLD_RING,
@@ -313,7 +319,7 @@ const struct SpriteTemplate gSupersonicWaveSpriteTemplate = //gUnknown_83E3CA0
.callback = TranslateAnimSpriteToTargetMonLocation, .callback = TranslateAnimSpriteToTargetMonLocation,
}; };
const struct SpriteTemplate gScreechWaveSpriteTemplate = //gUnknown_83E3CB8 const struct SpriteTemplate gScreechWaveSpriteTemplate =
{ {
.tileTag = ANIM_TAG_PURPLE_RING, .tileTag = ANIM_TAG_PURPLE_RING,
.paletteTag = ANIM_TAG_PURPLE_RING, .paletteTag = ANIM_TAG_PURPLE_RING,
@@ -324,7 +330,7 @@ const struct SpriteTemplate gScreechWaveSpriteTemplate = //gUnknown_83E3CB8
.callback = TranslateAnimSpriteToTargetMonLocation, .callback = TranslateAnimSpriteToTargetMonLocation,
}; };
const struct SpriteTemplate gMetalSoundSpriteTemplate = //gUnknown_83E3CD0 const struct SpriteTemplate gMetalSoundSpriteTemplate =
{ {
.tileTag = ANIM_TAG_METAL_SOUND_WAVES, .tileTag = ANIM_TAG_METAL_SOUND_WAVES,
.paletteTag = ANIM_TAG_METAL_SOUND_WAVES, .paletteTag = ANIM_TAG_METAL_SOUND_WAVES,
@@ -335,7 +341,7 @@ const struct SpriteTemplate gMetalSoundSpriteTemplate = //gUnknown_83E3CD0
.callback = TranslateAnimSpriteToTargetMonLocation, .callback = TranslateAnimSpriteToTargetMonLocation,
}; };
const struct SpriteTemplate gWaterPulseRingSpriteTemplate = //gUnknown_83E3CE8 const struct SpriteTemplate gWaterPulseRingSpriteTemplate =
{ {
.tileTag = ANIM_TAG_BLUE_RING_2, .tileTag = ANIM_TAG_BLUE_RING_2,
.paletteTag = ANIM_TAG_BLUE_RING_2, .paletteTag = ANIM_TAG_BLUE_RING_2,
@@ -343,10 +349,10 @@ const struct SpriteTemplate gWaterPulseRingSpriteTemplate = //gUnknown_83E3CE8
.anims = gDummySpriteAnimTable, .anims = gDummySpriteAnimTable,
.images = NULL, .images = NULL,
.affineAnims = gWaterPulseRingAffineAnimTable, .affineAnims = gWaterPulseRingAffineAnimTable,
.callback = AnimWaterPulseRing, //water.c .callback = AnimWaterPulseRing,
}; };
const struct SpriteTemplate gEggThrowSpriteTemplate = //gUnknown_83E3D00 const struct SpriteTemplate gEggThrowSpriteTemplate =
{ {
.tileTag = ANIM_TAG_LARGE_FRESH_EGG, .tileTag = ANIM_TAG_LARGE_FRESH_EGG,
.paletteTag = ANIM_TAG_LARGE_FRESH_EGG, .paletteTag = ANIM_TAG_LARGE_FRESH_EGG,
@@ -390,7 +396,7 @@ const union AffineAnimCmd *const gFallingCoinAffineAnimTable[] =
gFallingCoinAffineAnimCmds, gFallingCoinAffineAnimCmds,
}; };
const struct SpriteTemplate gCoinThrowSpriteTemplate = //gUnknown_83E3D50 const struct SpriteTemplate gCoinThrowSpriteTemplate =
{ {
.tileTag = ANIM_TAG_COIN, .tileTag = ANIM_TAG_COIN,
.paletteTag = ANIM_TAG_COIN, .paletteTag = ANIM_TAG_COIN,
@@ -401,7 +407,7 @@ const struct SpriteTemplate gCoinThrowSpriteTemplate = //gUnknown_83E3D50
.callback = AnimCoinThrow, .callback = AnimCoinThrow,
}; };
const struct SpriteTemplate gFallingCoinSpriteTemplate = //gUnknown_83E3D68 const struct SpriteTemplate gFallingCoinSpriteTemplate =
{ {
.tileTag = ANIM_TAG_COIN, .tileTag = ANIM_TAG_COIN,
.paletteTag = ANIM_TAG_COIN, .paletteTag = ANIM_TAG_COIN,
@@ -423,7 +429,7 @@ const union AffineAnimCmd *const gBulletSeedAffineAnimTable[] =
gBulletSeedAffineAnimCmds, gBulletSeedAffineAnimCmds,
}; };
const struct SpriteTemplate gBulletSeedSpriteTemplate = //gUnknown_83E3D94 const struct SpriteTemplate gBulletSeedSpriteTemplate =
{ {
.tileTag = ANIM_TAG_SEED, .tileTag = ANIM_TAG_SEED,
.paletteTag = ANIM_TAG_SEED, .paletteTag = ANIM_TAG_SEED,
@@ -446,7 +452,7 @@ const union AffineAnimCmd *const gRazorWindTornadoAffineAnimTable[] =
gRazorWindTornadoAffineAnimCmds, gRazorWindTornadoAffineAnimCmds,
}; };
const struct SpriteTemplate gRazorWindTornadoSpriteTemplate = //gUnknown_83E3DC8 const struct SpriteTemplate gRazorWindTornadoSpriteTemplate =
{ {
.tileTag = ANIM_TAG_GUST, .tileTag = ANIM_TAG_GUST,
.paletteTag = ANIM_TAG_GUST, .paletteTag = ANIM_TAG_GUST,
@@ -479,7 +485,7 @@ const union AnimCmd *const gViceGripAnimTable[] =
gViceGripAnimCmds2, gViceGripAnimCmds2,
}; };
const struct SpriteTemplate gViceGripSpriteTemplate = //gUnknown_83E3E08 const struct SpriteTemplate gViceGripSpriteTemplate =
{ {
.tileTag = ANIM_TAG_CUT, .tileTag = ANIM_TAG_CUT,
.paletteTag = ANIM_TAG_CUT, .paletteTag = ANIM_TAG_CUT,
@@ -512,7 +518,7 @@ const union AnimCmd *const gGuillotineAnimTable[] =
gGuillotineAnimCmds2, gGuillotineAnimCmds2,
}; };
const struct SpriteTemplate gGuillotineSpriteTemplate = //gUnknown_83E3E48 const struct SpriteTemplate gGuillotineSpriteTemplate =
{ {
.tileTag = ANIM_TAG_CUT, .tileTag = ANIM_TAG_CUT,
.paletteTag = ANIM_TAG_CUT, .paletteTag = ANIM_TAG_CUT,
@@ -563,7 +569,7 @@ const union AnimCmd *const gBreathPuffAnimTable[] =
gBreathPuffAnimCmds2, gBreathPuffAnimCmds2,
}; };
const struct SpriteTemplate gBreathPuffSpriteTemplate = //gUnknown_83E3ED0 const struct SpriteTemplate gBreathPuffSpriteTemplate =
{ {
.tileTag = ANIM_TAG_BREATH, .tileTag = ANIM_TAG_BREATH,
.paletteTag = ANIM_TAG_BREATH, .paletteTag = ANIM_TAG_BREATH,
@@ -586,7 +592,7 @@ const union AffineAnimCmd *const gAngerMarkAffineAnimTable[] =
gAngerMarkAffineAnimCmds, gAngerMarkAffineAnimCmds,
}; };
const struct SpriteTemplate gAngerMarkSpriteTemplate = //gUnknown_83E3F04 const struct SpriteTemplate gAngerMarkSpriteTemplate =
{ {
.tileTag = ANIM_TAG_ANGER, .tileTag = ANIM_TAG_ANGER,
.paletteTag = ANIM_TAG_ANGER, .paletteTag = ANIM_TAG_ANGER,
@@ -607,7 +613,7 @@ const union AffineAnimCmd gThrashMoveMonAffineAnimCmds[] =
AFFINEANIMCMD_END, AFFINEANIMCMD_END,
}; };
const struct SpriteTemplate gPencilSpriteTemplate = //gUnknown_83E3F4C const struct SpriteTemplate gPencilSpriteTemplate =
{ {
.tileTag = ANIM_TAG_PENCIL, .tileTag = ANIM_TAG_PENCIL,
.paletteTag = ANIM_TAG_PENCIL, .paletteTag = ANIM_TAG_PENCIL,
@@ -618,7 +624,7 @@ const struct SpriteTemplate gPencilSpriteTemplate = //gUnknown_83E3F4C
.callback = AnimPencil, .callback = AnimPencil,
}; };
const struct SpriteTemplate gSnoreZSpriteTemplate = //gUnknown_83E3F64 const struct SpriteTemplate gSnoreZSpriteTemplate =
{ {
.tileTag = ANIM_TAG_SNORE_Z, .tileTag = ANIM_TAG_SNORE_Z,
.paletteTag = ANIM_TAG_SNORE_Z, .paletteTag = ANIM_TAG_SNORE_Z,
@@ -643,7 +649,7 @@ const union AnimCmd *const gExplosionAnimTable[] =
gExplosionAnimCmds, gExplosionAnimCmds,
}; };
const struct SpriteTemplate gExplosionSpriteTemplate = //gUnknown_83E3F94 const struct SpriteTemplate gExplosionSpriteTemplate =
{ {
.tileTag = ANIM_TAG_EXPLOSION, .tileTag = ANIM_TAG_EXPLOSION,
.paletteTag = ANIM_TAG_EXPLOSION, .paletteTag = ANIM_TAG_EXPLOSION,
@@ -687,7 +693,7 @@ const union AffineAnimCmd *const gSoftBoiledEggAffineAnimTable[] =
gSoftBoiledEggAffineAnimCmds3, gSoftBoiledEggAffineAnimCmds3,
}; };
const struct SpriteTemplate gSoftBoiledEggSpriteTemplate = //gUnknown_83E4028 const struct SpriteTemplate gSoftBoiledEggSpriteTemplate =
{ {
.tileTag = ANIM_TAG_BREAKING_EGG, .tileTag = ANIM_TAG_BREAKING_EGG,
.paletteTag = ANIM_TAG_BREAKING_EGG, .paletteTag = ANIM_TAG_BREAKING_EGG,
@@ -730,7 +736,7 @@ const union AffineAnimCmd *const gHyperVoiceRingAffineAnimTable[] =
gHyperVoiceRingAffineAnimCmds, gHyperVoiceRingAffineAnimCmds,
}; };
const struct SpriteTemplate gThinRingExpandingSpriteTemplate = //gUnknown_83E4094 const struct SpriteTemplate gThinRingExpandingSpriteTemplate =
{ {
.tileTag = ANIM_TAG_THIN_RING, .tileTag = ANIM_TAG_THIN_RING,
.paletteTag = ANIM_TAG_THIN_RING, .paletteTag = ANIM_TAG_THIN_RING,
@@ -753,7 +759,7 @@ const union AffineAnimCmd *const gThinRingShrinkingAffineAnimTable[] =
gThinRingShrinkingAffineAnimCmds, gThinRingShrinkingAffineAnimCmds,
}; };
const struct SpriteTemplate gThinRingShrinkingSpriteTemplate = //gUnknown_83E40C8 const struct SpriteTemplate gThinRingShrinkingSpriteTemplate =
{ {
.tileTag = ANIM_TAG_THIN_RING, .tileTag = ANIM_TAG_THIN_RING,
.paletteTag = ANIM_TAG_THIN_RING, .paletteTag = ANIM_TAG_THIN_RING,
@@ -764,7 +770,7 @@ const struct SpriteTemplate gThinRingShrinkingSpriteTemplate = //gUnknown_83E40C
.callback = AnimSpriteOnMonPos, .callback = AnimSpriteOnMonPos,
}; };
const struct SpriteTemplate gBlendThinRingExpandingSpriteTemplate = //gUnknown_83E40E0 const struct SpriteTemplate gBlendThinRingExpandingSpriteTemplate =
{ {
.tileTag = ANIM_TAG_THIN_RING, .tileTag = ANIM_TAG_THIN_RING,
.paletteTag = ANIM_TAG_THIN_RING, .paletteTag = ANIM_TAG_THIN_RING,
@@ -775,7 +781,7 @@ const struct SpriteTemplate gBlendThinRingExpandingSpriteTemplate = //gUnknown_8
.callback = AnimBlendThinRing, .callback = AnimBlendThinRing,
}; };
const struct SpriteTemplate gHyperVoiceRingSpriteTemplate = //gUnknown_83E40F8 const struct SpriteTemplate gHyperVoiceRingSpriteTemplate =
{ {
.tileTag = ANIM_TAG_THIN_RING, .tileTag = ANIM_TAG_THIN_RING,
.paletteTag = ANIM_TAG_THIN_RING, .paletteTag = ANIM_TAG_THIN_RING,
@@ -786,7 +792,7 @@ const struct SpriteTemplate gHyperVoiceRingSpriteTemplate = //gUnknown_83E40F8
.callback = AnimHyperVoiceRing, .callback = AnimHyperVoiceRing,
}; };
const struct SpriteTemplate gUproarRingSpriteTemplate = //gUnknown_83E4110 const struct SpriteTemplate gUproarRingSpriteTemplate =
{ {
.tileTag = ANIM_TAG_THIN_RING, .tileTag = ANIM_TAG_THIN_RING,
.paletteTag = ANIM_TAG_THIN_RING, .paletteTag = ANIM_TAG_THIN_RING,
@@ -818,7 +824,7 @@ const union AnimCmd *const gSpeedDustAnimTable[] =
gSpeedDustAnimCmds, gSpeedDustAnimCmds,
}; };
const struct SpriteTemplate gSpeedDustSpriteTemplate = //gUnknown_83E4154 const struct SpriteTemplate gSpeedDustSpriteTemplate =
{ {
.tileTag = ANIM_TAG_SPEED_DUST, .tileTag = ANIM_TAG_SPEED_DUST,
.paletteTag = ANIM_TAG_SPEED_DUST, .paletteTag = ANIM_TAG_SPEED_DUST,
@@ -860,7 +866,7 @@ const union AnimCmd *const gBellAnimTable[] =
gBellAnimCmds, gBellAnimCmds,
}; };
const struct SpriteTemplate gBellSpriteTemplate = //gUnknown_83E41B0 const struct SpriteTemplate gBellSpriteTemplate =
{ {
.tileTag = ANIM_TAG_BELL, .tileTag = ANIM_TAG_BELL,
.paletteTag = ANIM_TAG_BELL, .paletteTag = ANIM_TAG_BELL,
@@ -878,7 +884,7 @@ const u16 gMusicNotePaletteTagsTable[] =
ANIM_SPRITES_START - 2, ANIM_SPRITES_START - 2,
}; };
const struct SpriteTemplate gHealBellMusicNoteSpriteTemplate = //gUnknown_83E41D0 const struct SpriteTemplate gHealBellMusicNoteSpriteTemplate =
{ {
.tileTag = ANIM_TAG_MUSIC_NOTES_2, .tileTag = ANIM_TAG_MUSIC_NOTES_2,
.paletteTag = ANIM_TAG_MUSIC_NOTES_2, .paletteTag = ANIM_TAG_MUSIC_NOTES_2,
@@ -889,7 +895,7 @@ const struct SpriteTemplate gHealBellMusicNoteSpriteTemplate = //gUnknown_83E41D
.callback = AnimHealBellMusicNote, .callback = AnimHealBellMusicNote,
}; };
const struct SpriteTemplate gMagentaHeartSpriteTemplate = //gUnknown_83E41E8 const struct SpriteTemplate gMagentaHeartSpriteTemplate =
{ {
.tileTag = ANIM_TAG_MAGENTA_HEART, .tileTag = ANIM_TAG_MAGENTA_HEART,
.paletteTag = ANIM_TAG_MAGENTA_HEART, .paletteTag = ANIM_TAG_MAGENTA_HEART,
@@ -907,7 +913,7 @@ const union AffineAnimCmd gUnknown_83E4200[] =
AFFINEANIMCMD_END, AFFINEANIMCMD_END,
}; };
const struct SpriteTemplate gRedHeartProjectileSpriteTemplate = //gUnknown_83E4218 const struct SpriteTemplate gRedHeartProjectileSpriteTemplate =
{ {
.tileTag = ANIM_TAG_RED_HEART, .tileTag = ANIM_TAG_RED_HEART,
.paletteTag = ANIM_TAG_RED_HEART, .paletteTag = ANIM_TAG_RED_HEART,
@@ -918,7 +924,7 @@ const struct SpriteTemplate gRedHeartProjectileSpriteTemplate = //gUnknown_83E42
.callback = AnimRedHeartProjectile, .callback = AnimRedHeartProjectile,
}; };
const struct SpriteTemplate gRedHeartBurstSpriteTemplate = //gUnknown_83E4230 const struct SpriteTemplate gRedHeartBurstSpriteTemplate =
{ {
.tileTag = ANIM_TAG_RED_HEART, .tileTag = ANIM_TAG_RED_HEART,
.paletteTag = ANIM_TAG_RED_HEART, .paletteTag = ANIM_TAG_RED_HEART,
@@ -929,7 +935,7 @@ const struct SpriteTemplate gRedHeartBurstSpriteTemplate = //gUnknown_83E4230
.callback = AnimParticuleBurst, .callback = AnimParticuleBurst,
}; };
const struct SpriteTemplate gRedHeartRisingSpriteTemplate = //gUnknown_83E4248 const struct SpriteTemplate gRedHeartRisingSpriteTemplate =
{ {
.tileTag = ANIM_TAG_RED_HEART, .tileTag = ANIM_TAG_RED_HEART,
.paletteTag = ANIM_TAG_RED_HEART, .paletteTag = ANIM_TAG_RED_HEART,
@@ -952,7 +958,7 @@ const union AffineAnimCmd *const gHiddenPowerOrbAffineAnimTable[] =
gHiddenPowerOrbAffineAnimCmds, gHiddenPowerOrbAffineAnimCmds,
}; };
const struct SpriteTemplate gHiddenPowerOrbSpriteTemplate = //gUnknown_83E427C const struct SpriteTemplate gHiddenPowerOrbSpriteTemplate =
{ {
.tileTag = ANIM_TAG_RED_ORB, .tileTag = ANIM_TAG_RED_ORB,
.paletteTag = ANIM_TAG_RED_ORB, .paletteTag = ANIM_TAG_RED_ORB,
@@ -963,7 +969,7 @@ const struct SpriteTemplate gHiddenPowerOrbSpriteTemplate = //gUnknown_83E427C
.callback = AnimOrbitFast, .callback = AnimOrbitFast,
}; };
const struct SpriteTemplate gHiddenPowerOrbScatterSpriteTemplate = //gUnknown_83E4294 const struct SpriteTemplate gHiddenPowerOrbScatterSpriteTemplate =
{ {
.tileTag = ANIM_TAG_RED_ORB, .tileTag = ANIM_TAG_RED_ORB,
.paletteTag = ANIM_TAG_RED_ORB, .paletteTag = ANIM_TAG_RED_ORB,
@@ -986,7 +992,7 @@ const union AffineAnimCmd *const gSpitUpOrbAffineAnimTable[] =
gSpitUpOrbAffineAnimCmds, gSpitUpOrbAffineAnimCmds,
}; };
const struct SpriteTemplate gSpitUpOrbSpriteTemplate = //gUnknown_83E42C8 const struct SpriteTemplate gSpitUpOrbSpriteTemplate =
{ {
.tileTag = ANIM_TAG_RED_ORB_2, .tileTag = ANIM_TAG_RED_ORB_2,
.paletteTag = ANIM_TAG_RED_ORB_2, .paletteTag = ANIM_TAG_RED_ORB_2,
@@ -1012,7 +1018,7 @@ const union AnimCmd *const gEyeSparkleAnimTable[] =
gEyeSparkleAnimCmds, gEyeSparkleAnimCmds,
}; };
const struct SpriteTemplate gEyeSparkleSpriteTemplate = //gUnknown_83E42FC const struct SpriteTemplate gEyeSparkleSpriteTemplate =
{ {
.tileTag = ANIM_TAG_EYE_SPARKLE, .tileTag = ANIM_TAG_EYE_SPARKLE,
.paletteTag = ANIM_TAG_EYE_SPARKLE, .paletteTag = ANIM_TAG_EYE_SPARKLE,
@@ -1034,7 +1040,7 @@ const union AnimCmd *const gAngelSpriteAnimTable[] =
gAngelSpriteAnimCmds, gAngelSpriteAnimCmds,
}; };
const struct SpriteTemplate gAngelSpriteTemplate = //gUnknown_83E4320 const struct SpriteTemplate gAngelSpriteTemplate =
{ {
.tileTag = ANIM_TAG_ANGEL, .tileTag = ANIM_TAG_ANGEL,
.paletteTag = ANIM_TAG_ANGEL, .paletteTag = ANIM_TAG_ANGEL,
@@ -1045,7 +1051,7 @@ const struct SpriteTemplate gAngelSpriteTemplate = //gUnknown_83E4320
.callback = AnimAngel, .callback = AnimAngel,
}; };
const struct SpriteTemplate gPinkHeartSpriteTemplate = //gUnknown_83E4338 const struct SpriteTemplate gPinkHeartSpriteTemplate =
{ {
.tileTag = ANIM_TAG_PINK_HEART, .tileTag = ANIM_TAG_PINK_HEART,
.paletteTag = ANIM_TAG_PINK_HEART, .paletteTag = ANIM_TAG_PINK_HEART,
@@ -1074,7 +1080,7 @@ const union AnimCmd *const gDevilAnimTable[] =
gDevilAnimCmds2, gDevilAnimCmds2,
}; };
const struct SpriteTemplate gDevilSpriteTemplate = //gUnknown_83E4368 const struct SpriteTemplate gDevilSpriteTemplate =
{ {
.tileTag = ANIM_TAG_DEVIL, .tileTag = ANIM_TAG_DEVIL,
.paletteTag = ANIM_TAG_DEVIL, .paletteTag = ANIM_TAG_DEVIL,
@@ -1109,7 +1115,7 @@ const union AnimCmd *const gFurySwipesAnimTable[] =
gUnknown_08593B1C, gUnknown_08593B1C,
}; };
const struct SpriteTemplate gFurySwipesSpriteTemplate = //gUnknown_83E43B0 const struct SpriteTemplate gFurySwipesSpriteTemplate =
{ {
.tileTag = ANIM_TAG_SWIPE, .tileTag = ANIM_TAG_SWIPE,
.paletteTag = ANIM_TAG_SWIPE, .paletteTag = ANIM_TAG_SWIPE,
@@ -1144,7 +1150,7 @@ const union AnimCmd *const gMovementWavesAnimTable[] =
gMovementWavesAnimCmds2, gMovementWavesAnimCmds2,
}; };
const struct SpriteTemplate gMovementWavesSpriteTemplate = //gUnknown_83E43F8 const struct SpriteTemplate gMovementWavesSpriteTemplate =
{ {
.tileTag = ANIM_TAG_MOVEMENT_WAVES, .tileTag = ANIM_TAG_MOVEMENT_WAVES,
.paletteTag = ANIM_TAG_MOVEMENT_WAVES, .paletteTag = ANIM_TAG_MOVEMENT_WAVES,
@@ -1163,7 +1169,7 @@ const union AffineAnimCmd gUnknown_08593B98[] =
AFFINEANIMCMD_END, AFFINEANIMCMD_END,
}; };
const struct SpriteTemplate gJaggedMusicNoteSpriteTemplate = //gUnknown_83E4430 const struct SpriteTemplate gJaggedMusicNoteSpriteTemplate =
{ {
.tileTag = ANIM_TAG_JAGGED_MUSIC_NOTE, .tileTag = ANIM_TAG_JAGGED_MUSIC_NOTE,
.paletteTag = ANIM_TAG_JAGGED_MUSIC_NOTE, .paletteTag = ANIM_TAG_JAGGED_MUSIC_NOTE,
@@ -1199,8 +1205,7 @@ const union AffineAnimCmd *const gPerishSongMusicNoteAffineAnimTable[] =
gPerishSongMusicNoteAffineAnimCmds3, gPerishSongMusicNoteAffineAnimCmds3,
}; };
extern const union AnimCmd *const gMusicNotesAnimTable[]; const struct SpriteTemplate gPerishSongMusicNoteSpriteTemplate =
const struct SpriteTemplate gPerishSongMusicNoteSpriteTemplate = //gUnknown_83E4484
{ {
.tileTag = ANIM_TAG_MUSIC_NOTES_2, .tileTag = ANIM_TAG_MUSIC_NOTES_2,
.paletteTag = ANIM_TAG_MUSIC_NOTES_2, .paletteTag = ANIM_TAG_MUSIC_NOTES_2,
@@ -1211,7 +1216,7 @@ const struct SpriteTemplate gPerishSongMusicNoteSpriteTemplate = //gUnknown_83E4
.callback = AnimPerishSongMusicNote, .callback = AnimPerishSongMusicNote,
}; };
const struct SpriteTemplate gPerishSongMusicNote2SpriteTemplate = //gUnknown_83E449C const struct SpriteTemplate gPerishSongMusicNote2SpriteTemplate =
{ {
.tileTag = ANIM_TAG_MUSIC_NOTES_2, .tileTag = ANIM_TAG_MUSIC_NOTES_2,
.paletteTag = ANIM_TAG_MUSIC_NOTES_2, .paletteTag = ANIM_TAG_MUSIC_NOTES_2,
@@ -1240,7 +1245,7 @@ const union AffineAnimCmd *const gGuardRingAffineAnimTable[] =
gGuardRingAffineAnimCmds2, gGuardRingAffineAnimCmds2,
}; };
const struct SpriteTemplate gGuardRingSpriteTemplate = //gUnknown_83E44DC const struct SpriteTemplate gGuardRingSpriteTemplate =
{ {
.tileTag = ANIM_TAG_GUARD_RING, .tileTag = ANIM_TAG_GUARD_RING,
.paletteTag = 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) void sub_80A6E98(struct Sprite *sprite)
{ {
u8 battler; u8 battler;
if (gBattleAnimArgs[0] == 0) if (gBattleAnimArgs[0] == 0)
battler = gBattleAnimAttacker; battler = gBattleAnimAttacker;
else else
@@ -1304,6 +1310,7 @@ static void sub_80A6ED8(struct Sprite *sprite)
static void sub_80A6F3C(struct Sprite *sprite) static void sub_80A6F3C(struct Sprite *sprite)
{ {
s16 temp; s16 temp;
gSprites[sprite->data[2]].pos2.x += sprite->data[1]; gSprites[sprite->data[2]].pos2.x += sprite->data[1];
temp = sprite->data[1]; temp = sprite->data[1];
sprite->data[1] = -temp; sprite->data[1] = -temp;
@@ -1319,8 +1326,9 @@ static void sub_80A6F3C(struct Sprite *sprite)
void sub_80A6F8C(struct Sprite *sprite) void sub_80A6F8C(struct Sprite *sprite)
{ {
u8 spriteId; 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]; spriteId = gBattlerSpriteIds[gBattleAnimTarget];
if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
sprite->pos1.x -= gBattleAnimArgs[0]; sprite->pos1.x -= gBattleAnimArgs[0];
@@ -1374,6 +1382,7 @@ static void AnimTask_WithdrawStep(u8 taskId)
{ {
u8 spriteId = gBattlerSpriteIds[gBattleAnimAttacker]; u8 spriteId = gBattlerSpriteIds[gBattleAnimAttacker];
s16 rotation; s16 rotation;
if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER)
rotation = -gTasks[taskId].data[0]; rotation = -gTasks[taskId].data[0];
else else
@@ -1488,8 +1497,8 @@ void AnimSonicBoomProjectile(struct Sprite *sprite)
} }
InitSpritePosToAnimAttacker(sprite, TRUE); InitSpritePosToAnimAttacker(sprite, TRUE);
targetXPos = GetBattlerSpriteCoord(gBattleAnimTarget, 2) + gBattleAnimArgs[2]; targetXPos = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) + gBattleAnimArgs[2];
targetYPos = GetBattlerSpriteCoord(gBattleAnimTarget, 3) + gBattleAnimArgs[3]; targetYPos = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[3];
rotation = ArcTan2Neg(targetXPos - sprite->pos1.x, targetYPos - sprite->pos1.y); rotation = ArcTan2Neg(targetXPos - sprite->pos1.x, targetYPos - sprite->pos1.y);
rotation += 0xF000; rotation += 0xF000;
if (IsContest()) if (IsContest())
@@ -1515,6 +1524,7 @@ static void AnimAirWaveProjectile_Step2(struct Sprite *sprite)
static void AnimAirWaveProjectile_Step1(struct Sprite *sprite) static void AnimAirWaveProjectile_Step1(struct Sprite *sprite)
{ {
struct Task* task = &gTasks[sprite->data[7]]; struct Task* task = &gTasks[sprite->data[7]];
if (sprite->data[0] > task->data[5]) if (sprite->data[0] > task->data[5])
{ {
sprite->data[5] += sprite->data[3]; sprite->data[5] += sprite->data[3];
@@ -1552,6 +1562,7 @@ void AnimAirWaveProjectile(struct Sprite *sprite)
s16 c; s16 c;
struct Task* task = &gTasks[sprite->data[7]]; struct Task* task = &gTasks[sprite->data[7]];
sprite->data[1] += (-2 & task->data[7]); sprite->data[1] += (-2 & task->data[7]);
sprite->data[2] += (-2 & task->data[8]); sprite->data[2] += (-2 & task->data[8]);
if (1 & task->data[7]) if (1 & task->data[7])
@@ -1762,8 +1773,8 @@ void AnimCoinThrow(struct Sprite *sprite)
u16 var; u16 var;
InitSpritePosToAnimAttacker(sprite, TRUE); InitSpritePosToAnimAttacker(sprite, TRUE);
r6 = GetBattlerSpriteCoord(gBattleAnimTarget, 2); r6 = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2);
r7 = GetBattlerSpriteCoord(gBattleAnimTarget, 3) + gBattleAnimArgs[3]; r7 = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[3];
if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
gBattleAnimArgs[2] = -gBattleAnimArgs[2]; gBattleAnimArgs[2] = -gBattleAnimArgs[2];
@@ -1819,6 +1830,7 @@ static void AnimBulletSeed_Step1(struct Sprite *sprite)
int i; int i;
u16 rand; u16 rand;
s16* ptr; s16* ptr;
PlaySE12WithPanning(SE_W030, BattleAnimAdjustPanning(63)); PlaySE12WithPanning(SE_W030, BattleAnimAdjustPanning(63));
sprite->pos1.x += sprite->pos2.x; sprite->pos1.x += sprite->pos2.x;
sprite->pos1.y += sprite->pos2.y; sprite->pos1.y += sprite->pos2.y;
@@ -1886,6 +1898,7 @@ void AnimViceGripPincer(struct Sprite *sprite)
s16 startYOffset = -32; s16 startYOffset = -32;
s16 endXOffset = 16; s16 endXOffset = 16;
s16 endYOffset = -16; s16 endYOffset = -16;
if (gBattleAnimArgs[0]) if (gBattleAnimArgs[0])
{ {
startXOffset = -32; startXOffset = -32;
@@ -1918,6 +1931,7 @@ void AnimGuillotinePincer(struct Sprite *sprite)
s16 startYOffset = -32; s16 startYOffset = -32;
s16 endXOffset = 16; s16 endXOffset = 16;
s16 endYOffset = -16; s16 endYOffset = -16;
if (gBattleAnimArgs[0]) if (gBattleAnimArgs[0])
{ {
startXOffset = -32; startXOffset = -32;
@@ -1992,6 +2006,7 @@ static void AnimGuillotinePincerStep3(struct Sprite *sprite)
void AnimTask_GrowAndGreyscale(u8 taskId) void AnimTask_GrowAndGreyscale(u8 taskId)
{ {
u8 spriteId = GetAnimBattlerSpriteId(ANIM_TARGET); u8 spriteId = GetAnimBattlerSpriteId(ANIM_TARGET);
PrepareBattlerSpriteForRotScale(spriteId, ST_OAM_OBJ_BLEND); PrepareBattlerSpriteForRotScale(spriteId, ST_OAM_OBJ_BLEND);
SetSpriteRotScale(spriteId, 0xD0, 0xD0, 0); SetSpriteRotScale(spriteId, 0xD0, 0xD0, 0);
SetGreyscaleOrOriginalPalette(gSprites[spriteId].oam.paletteNum + 16, FALSE); SetGreyscaleOrOriginalPalette(gSprites[spriteId].oam.paletteNum + 16, FALSE);
@@ -2017,6 +2032,7 @@ void AnimTask_Minimize(u8 taskId)
{ {
struct Task* task = &gTasks[taskId]; struct Task* task = &gTasks[taskId];
u8 spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER); u8 spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER);
task->data[0] = spriteId; task->data[0] = spriteId;
PrepareBattlerSpriteForRotScale(spriteId, ST_OAM_OBJ_NORMAL); PrepareBattlerSpriteForRotScale(spriteId, ST_OAM_OBJ_NORMAL);
task->data[1] = 0; task->data[1] = 0;
@@ -2032,6 +2048,7 @@ void AnimTask_Minimize(u8 taskId)
static void AnimTask_MinimizeStep1(u8 taskId) static void AnimTask_MinimizeStep1(u8 taskId)
{ {
struct Task* task = &gTasks[taskId]; struct Task* task = &gTasks[taskId];
switch (task->data[1]) switch (task->data[1])
{ {
case 0: case 0:
@@ -2099,6 +2116,7 @@ static void CreateMinimizeSprite(struct Task* task, u8 taskId)
{ {
u16 matrixNum; u16 matrixNum;
s16 spriteId = CloneBattlerSpriteWithBlend(ANIM_ATTACKER); s16 spriteId = CloneBattlerSpriteWithBlend(ANIM_ATTACKER);
if (spriteId >= 0) if (spriteId >= 0)
{ {
if ((matrixNum = AllocOamMatrix()) == 0xFF) if ((matrixNum = AllocOamMatrix()) == 0xFF)
@@ -2141,6 +2159,7 @@ static void ClonedMinizeSprite_Step(struct Sprite *sprite)
void AnimTask_Splash(u8 taskId) void AnimTask_Splash(u8 taskId)
{ {
struct Task* task = &gTasks[taskId]; struct Task* task = &gTasks[taskId];
if (gBattleAnimArgs[1] == 0) if (gBattleAnimArgs[1] == 0)
{ {
DestroyAnimVisualTask(taskId); DestroyAnimVisualTask(taskId);
@@ -2161,6 +2180,7 @@ void AnimTask_Splash(u8 taskId)
static void AnimTask_SplashStep(u8 taskId) static void AnimTask_SplashStep(u8 taskId)
{ {
struct Task* task = &gTasks[taskId]; struct Task* task = &gTasks[taskId];
switch (task->data[1]) switch (task->data[1])
{ {
case 0: case 0:
@@ -2216,6 +2236,7 @@ void AnimTask_GrowAndShrink(u8 taskId)
{ {
struct Task* task = &gTasks[taskId]; struct Task* task = &gTasks[taskId];
u8 spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER); u8 spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER);
PrepareAffineAnimInTaskData(task, spriteId, gGrowAndShrinkAffineAnimCmds); PrepareAffineAnimInTaskData(task, spriteId, gGrowAndShrinkAffineAnimCmds);
task->func = AnimTask_GrowAndShrinkStep; task->func = AnimTask_GrowAndShrinkStep;
} }
@@ -2223,6 +2244,7 @@ void AnimTask_GrowAndShrink(u8 taskId)
static void AnimTask_GrowAndShrinkStep(u8 taskId) static void AnimTask_GrowAndShrinkStep(u8 taskId)
{ {
struct Task* task = &gTasks[taskId]; struct Task* task = &gTasks[taskId];
if (!RunAffineAnimFromTaskData(task)) if (!RunAffineAnimFromTaskData(task))
DestroyAnimVisualTask(taskId); DestroyAnimVisualTask(taskId);
} }
@@ -2261,6 +2283,7 @@ void AnimBreathPuff(struct Sprite *sprite)
void AnimAngerMark(struct Sprite *sprite) void AnimAngerMark(struct Sprite *sprite)
{ {
u8 battler; u8 battler;
if (!gBattleAnimArgs[0]) if (!gBattleAnimArgs[0])
battler = gBattleAnimAttacker; battler = gBattleAnimAttacker;
else else
@@ -2283,6 +2306,7 @@ void AnimTask_ThrashMoveMonHorizontal(u8 taskId)
{ {
struct Task* task = &gTasks[taskId]; struct Task* task = &gTasks[taskId];
u8 spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER); u8 spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER);
task->data[0] = spriteId; task->data[0] = spriteId;
task->data[1] = 0; task->data[1] = 0;
PrepareAffineAnimInTaskData(task, spriteId, gThrashMoveMonAffineAnimCmds); PrepareAffineAnimInTaskData(task, spriteId, gThrashMoveMonAffineAnimCmds);
@@ -2292,6 +2316,7 @@ void AnimTask_ThrashMoveMonHorizontal(u8 taskId)
static void ThrashMoveMonStep(u8 taskId) static void ThrashMoveMonStep(u8 taskId)
{ {
struct Task* task = &gTasks[taskId]; struct Task* task = &gTasks[taskId];
if (!RunAffineAnimFromTaskData(task)) if (!RunAffineAnimFromTaskData(task))
DestroyAnimVisualTask(taskId); DestroyAnimVisualTask(taskId);
} }
@@ -2300,6 +2325,7 @@ static void ThrashMoveMonStep(u8 taskId)
void AnimTask_ThrashMoveMonVertical(u8 taskId) void AnimTask_ThrashMoveMonVertical(u8 taskId)
{ {
struct Task* task = &gTasks[taskId]; struct Task* task = &gTasks[taskId];
task->data[0] = GetAnimBattlerSpriteId(ANIM_ATTACKER); task->data[0] = GetAnimBattlerSpriteId(ANIM_ATTACKER);
task->data[1] = 0; task->data[1] = 0;
task->data[2] = 4; task->data[2] = 4;
@@ -2319,6 +2345,7 @@ void AnimTask_ThrashMoveMonVertical(u8 taskId)
static void ThrashMoveMon(u8 taskId) static void ThrashMoveMon(u8 taskId)
{ {
struct Task* task = &gTasks[taskId]; struct Task* task = &gTasks[taskId];
if (++task->data[7] > 2) if (++task->data[7] > 2)
{ {
task->data[7] = 0; task->data[7] = 0;
@@ -2371,8 +2398,8 @@ void sub_80A8874(u8 taskId)
{ {
struct Task* task = &gTasks[taskId]; struct Task* task = &gTasks[taskId];
struct ScanlineEffectParams params; struct ScanlineEffectParams params;
s16 i; s16 i;
task->data[0] = GetBattlerYCoordWithElevation(gBattleAnimTarget) + 32; task->data[0] = GetBattlerYCoordWithElevation(gBattleAnimTarget) + 32;
task->data[1] = 4; task->data[1] = 4;
task->data[2] = 0; task->data[2] = 0;
@@ -2457,7 +2484,7 @@ static void AnimTask_SketchDrawMon(u8 taskId)
void AnimPencil(struct Sprite *sprite) 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->pos1.y = GetBattlerYCoordWithElevation(gBattleAnimTarget) + 16;
sprite->data[0] = 0; sprite->data[0] = 0;
sprite->data[1] = 0; sprite->data[1] = 0;
@@ -2545,12 +2572,12 @@ void AnimBlendThinRing(struct Sprite *sprite)
{ {
SetAverageBattlerPositions(battler, r4, &sp0, &sp1); SetAverageBattlerPositions(battler, r4, &sp0, &sp1);
if (r4 == 0) if (r4 == 0)
r4 = GetBattlerSpriteCoord(battler, 0); r4 = GetBattlerSpriteCoord(battler, BATTLER_COORD_X);
else else
r4 = GetBattlerSpriteCoord(battler, 2); r4 = GetBattlerSpriteCoord(battler, BATTLER_COORD_X_2);
if (GetBattlerSide(battler) != B_SIDE_PLAYER) if (GetBattlerSide(battler) != B_SIDE_PLAYER)
gBattleAnimArgs[0] -= (sp0 - r4) - gBattleAnimArgs[0]; // This is weird. gBattleAnimArgs[0] -= (sp0 - r4) - gBattleAnimArgs[0];
else else
gBattleAnimArgs[0] = sp0 - r4; gBattleAnimArgs[0] = sp0 - r4;
} }
@@ -2656,6 +2683,7 @@ void AnimHyperVoiceRing(struct Sprite *sprite)
void AnimUproarRing(struct Sprite *sprite) void AnimUproarRing(struct Sprite *sprite)
{ {
u8 index = IndexOfSpritePaletteTag(ANIM_TAG_THIN_RING); u8 index = IndexOfSpritePaletteTag(ANIM_TAG_THIN_RING);
if (index != 0xFF) if (index != 0xFF)
{ {
BlendPalette(((index << 20) + 0x1010000) >> 16, 15, gBattleAnimArgs[5], gBattleAnimArgs[4]); BlendPalette(((index << 20) + 0x1010000) >> 16, 15, gBattleAnimArgs[5], gBattleAnimArgs[4]);
@@ -2669,6 +2697,7 @@ void AnimUproarRing(struct Sprite *sprite)
void AnimSoftBoiledEgg(struct Sprite *sprite) void AnimSoftBoiledEgg(struct Sprite *sprite)
{ {
s16 r1; s16 r1;
InitSpritePosToAnimAttacker(sprite, FALSE); InitSpritePosToAnimAttacker(sprite, FALSE);
r1 = GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER ? -160 : 160; r1 = GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER ? -160 : 160;
sprite->data[0] = 0x380; sprite->data[0] = 0x380;
@@ -2680,6 +2709,7 @@ void AnimSoftBoiledEgg(struct Sprite *sprite)
static void AnimSoftBoiledEgg_Step1(struct Sprite *sprite) static void AnimSoftBoiledEgg_Step1(struct Sprite *sprite)
{ {
s16 add; s16 add;
sprite->pos2.y -= (sprite->data[0] >> 8); sprite->pos2.y -= (sprite->data[0] >> 8);
sprite->pos2.x = sprite->data[1] >> 8; sprite->pos2.x = sprite->data[1] >> 8;
sprite->data[0] -= 32; sprite->data[0] -= 32;
@@ -2772,6 +2802,7 @@ void AnimTask_StretchAttacker(u8 taskId)
{ {
struct Task* task = &gTasks[taskId]; struct Task* task = &gTasks[taskId];
u8 spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER); u8 spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER);
task->data[0] = spriteId; task->data[0] = spriteId;
PrepareAffineAnimInTaskData(task, spriteId, gStretchAttackerAffineAnimCmds); PrepareAffineAnimInTaskData(task, spriteId, gStretchAttackerAffineAnimCmds);
task->func = StretchAttacker_Step; task->func = StretchAttacker_Step;
@@ -2780,6 +2811,7 @@ void AnimTask_StretchAttacker(u8 taskId)
static void StretchAttacker_Step(u8 taskId) static void StretchAttacker_Step(u8 taskId)
{ {
struct Task* task = &gTasks[taskId]; struct Task* task = &gTasks[taskId];
if (!RunAffineAnimFromTaskData(task)) if (!RunAffineAnimFromTaskData(task))
{ {
gSprites[task->data[0]].pos2.y = 0; gSprites[task->data[0]].pos2.y = 0;
@@ -2791,6 +2823,7 @@ static void StretchAttacker_Step(u8 taskId)
void AnimTask_ExtremeSpeedImpact(u8 taskId) void AnimTask_ExtremeSpeedImpact(u8 taskId)
{ {
struct Task* task = &gTasks[taskId]; struct Task* task = &gTasks[taskId];
task->data[0] = 0; task->data[0] = 0;
task->data[1] = 0; task->data[1] = 0;
task->data[2] = 0; task->data[2] = 0;
@@ -2860,6 +2893,7 @@ static void ExtremeSpeedImpact_Step(u8 taskId)
void AnimTask_ExtremeSpeedMonReappear(u8 taskId) void AnimTask_ExtremeSpeedMonReappear(u8 taskId)
{ {
struct Task* task = &gTasks[taskId]; struct Task* task = &gTasks[taskId];
task->data[0] = 0; task->data[0] = 0;
task->data[1] = 0; task->data[1] = 0;
task->data[2] = 0; task->data[2] = 0;
@@ -2874,6 +2908,7 @@ void AnimTask_ExtremeSpeedMonReappear(u8 taskId)
static void ExtremeSpeedMonReappear_Step(u8 taskId) static void ExtremeSpeedMonReappear_Step(u8 taskId)
{ {
struct Task* task = &gTasks[taskId]; struct Task* task = &gTasks[taskId];
if (task->data[0] == 0 && ++task->data[1] > task->data[4]) if (task->data[0] == 0 && ++task->data[1] > task->data[4])
{ {
task->data[1] = 0; task->data[1] = 0;
@@ -2902,6 +2937,7 @@ static void ExtremeSpeedMonReappear_Step(u8 taskId)
void AnimTask_SpeedDust(u8 taskId) void AnimTask_SpeedDust(u8 taskId)
{ {
struct Task* task = &gTasks[taskId]; struct Task* task = &gTasks[taskId];
task->data[0] = 0; task->data[0] = 0;
task->data[1] = 4; task->data[1] = 4;
task->data[2] = 0; task->data[2] = 0;
@@ -2912,14 +2948,15 @@ void AnimTask_SpeedDust(u8 taskId)
task->data[7] = 0; task->data[7] = 0;
task->data[8] = 0; task->data[8] = 0;
task->data[13] = 0; task->data[13] = 0;
task->data[14] = GetBattlerSpriteCoord(gBattleAnimAttacker, ANIM_ATTACKER); task->data[14] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X);
task->data[15] = GetBattlerSpriteCoord(gBattleAnimAttacker, ANIM_TARGET); task->data[15] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y);
task->func = SpeedDust_Step1; task->func = SpeedDust_Step1;
} }
static void SpeedDust_Step1(u8 taskId) static void SpeedDust_Step1(u8 taskId)
{ {
struct Task* task = &gTasks[taskId]; struct Task* task = &gTasks[taskId];
switch (task->data[8]) switch (task->data[8])
{ {
case 0: case 0:
@@ -3014,6 +3051,7 @@ void sub_80A96B4(u8 taskId)
void sub_80A9760(u8 taskId) void sub_80A9760(u8 taskId)
{ {
int i; int i;
for (i = 0; i < 3; i++) for (i = 0; i < 3; i++)
FreeSpritePaletteByTag(gMusicNotePaletteTagsTable[i]); FreeSpritePaletteByTag(gMusicNotePaletteTagsTable[i]);
@@ -3023,6 +3061,7 @@ void sub_80A9760(u8 taskId)
static void SetMusicNotePalette(struct Sprite *sprite, u8 a, u8 b) static void SetMusicNotePalette(struct Sprite *sprite, u8 a, u8 b)
{ {
u8 tile; u8 tile;
tile = (b & 1); tile = (b & 1);
tile = ((-tile | tile) >> 31) & 32; tile = ((-tile | tile) >> 31) & 32;
sprite->oam.tileNum += tile + (a << 2); sprite->oam.tileNum += tile + (a << 2);
@@ -3036,8 +3075,8 @@ void AnimHealBellMusicNote(struct Sprite *sprite)
gBattleAnimArgs[2] = -gBattleAnimArgs[2]; gBattleAnimArgs[2] = -gBattleAnimArgs[2];
sprite->data[0] = gBattleAnimArgs[4]; sprite->data[0] = gBattleAnimArgs[4];
sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimAttacker, 0) + gBattleAnimArgs[2]; sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X) + gBattleAnimArgs[2];
sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimAttacker, 1) + gBattleAnimArgs[3]; sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y) + gBattleAnimArgs[3];
sprite->callback = StartAnimLinearTranslation; sprite->callback = StartAnimLinearTranslation;
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
SetMusicNotePalette(sprite, gBattleAnimArgs[5], gBattleAnimArgs[6]); SetMusicNotePalette(sprite, gBattleAnimArgs[5], gBattleAnimArgs[6]);
@@ -3112,9 +3151,10 @@ static void FakeOutStep2(u8 taskId)
void sub_80A9A20(u8 taskId) void sub_80A9A20(u8 taskId)
{ {
u8 spriteId = GetAnimBattlerSpriteId(ANIM_TARGET); u8 spriteId = GetAnimBattlerSpriteId(ANIM_TARGET);
if (++gTasks[taskId].data[0] == 1) 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; gSprites[spriteId].pos2.x = 4;
} }
else else
@@ -3132,9 +3172,10 @@ void sub_80A9A20(u8 taskId)
void sub_80A9AB0(u8 taskId) void sub_80A9AB0(u8 taskId)
{ {
u8 spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER); u8 spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER);
if (++gTasks[taskId].data[0] == 1) 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; gSprites[spriteId].pos2.x = 4;
} }
else else
@@ -3154,9 +3195,9 @@ void AnimRedHeartProjectile(struct Sprite *sprite)
InitSpritePosToAnimAttacker(sprite, TRUE); InitSpritePosToAnimAttacker(sprite, TRUE);
sprite->data[0] = 95; sprite->data[0] = 95;
sprite->data[1] = sprite->pos1.x; 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[3] = sprite->pos1.y;
sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3); sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET);
InitAnimLinearTranslation(sprite); InitAnimLinearTranslation(sprite);
sprite->callback = AnimRedHeartProjectile_Step; sprite->callback = AnimRedHeartProjectile_Step;
} }
@@ -3209,6 +3250,7 @@ void AnimRedHeartRising(struct Sprite *sprite)
static void AnimRedHeartRising_Step(struct Sprite *sprite) static void AnimRedHeartRising_Step(struct Sprite *sprite)
{ {
s16 y; s16 y;
sprite->data[2] += sprite->data[1]; sprite->data[2] += sprite->data[1];
sprite->pos2.y = -((u16)sprite->data[2] >> 8); sprite->pos2.y = -((u16)sprite->data[2] >> 8);
sprite->pos2.x = Sin(sprite->data[3], 4); sprite->pos2.x = Sin(sprite->data[3], 4);
@@ -3238,11 +3280,11 @@ void AnimTask_HeartsBackground(u8 taskId)
SetGpuReg(REG_OFFSET_BG1HOFS, gBattle_BG1_X); SetGpuReg(REG_OFFSET_BG1HOFS, gBattle_BG1_X);
SetGpuReg(REG_OFFSET_BG1VOFS, gBattle_BG1_Y); SetGpuReg(REG_OFFSET_BG1VOFS, gBattle_BG1_Y);
sub_80752A0(&animBg); sub_80752A0(&animBg);
AnimLoadCompressedBgTilemap(animBg.bgId, gBattleAnimBg_AttractTilemap); AnimLoadCompressedBgTilemap(animBg.bgId, gBattleAnimBg_AttractTilemap);
AnimLoadCompressedBgGfx(animBg.bgId, gBattleAnimBg_AttractGfx, animBg.tilesOffset); AnimLoadCompressedBgGfx(animBg.bgId, gBattleAnimBg_AttractGfx, animBg.tilesOffset);
LoadCompressedPalette(gBattleAnimBg_AttractPal, animBg.paletteId * 16, 32); LoadCompressedPalette(gBattleAnimBg_AttractPal, animBg.paletteId * 16, 32);
if (IsContest()) if (IsContest())
sub_80730C0(animBg.paletteId, animBg.bgTilemap, 0, 0); sub_80730C0(animBg.paletteId, animBg.bgTilemap, 0, 0);
gTasks[taskId].func = HeartsBackground_Step; gTasks[taskId].func = HeartsBackground_Step;
} }
@@ -3321,7 +3363,7 @@ void AnimTask_ScaryFace(u8 taskId)
sub_80752A0(&animBg); sub_80752A0(&animBg);
if (IsContest()) if (IsContest())
LZDecompressVram(gBattleAnimBgTilemap_ScaryFaceContest, animBg.bgTilemap); LZDecompressVram(gBattleAnimBgTilemap_ScaryFaceContest, animBg.bgTilemap);
else if (GetBattlerSide(gBattleAnimTarget) == B_SIDE_OPPONENT) else if (GetBattlerSide(gBattleAnimTarget) == B_SIDE_OPPONENT)
AnimLoadCompressedBgTilemap(animBg.bgId, gBattleAnimBgTilemap_ScaryFacePlayer); AnimLoadCompressedBgTilemap(animBg.bgId, gBattleAnimBgTilemap_ScaryFacePlayer);
else else
@@ -3329,8 +3371,8 @@ void AnimTask_ScaryFace(u8 taskId)
AnimLoadCompressedBgGfx(animBg.bgId, gBattleAnim_ScaryFaceGfx, animBg.tilesOffset); AnimLoadCompressedBgGfx(animBg.bgId, gBattleAnim_ScaryFaceGfx, animBg.tilesOffset);
LoadCompressedPalette(gBattleAnim_ScaryFacePal, animBg.paletteId * 16, 32); LoadCompressedPalette(gBattleAnim_ScaryFacePal, animBg.paletteId * 16, 32);
if (IsContest()) if (IsContest())
sub_80730C0(animBg.paletteId, animBg.bgTilemap, 0, 0); sub_80730C0(animBg.paletteId, animBg.bgTilemap, 0, 0);
gTasks[taskId].func = ScaryFace_Step; gTasks[taskId].func = ScaryFace_Step;
} }
@@ -3398,8 +3440,8 @@ static void ScaryFace_Step(u8 taskId)
// arg 1: initial wave offset // arg 1: initial wave offset
void AnimOrbitFast(struct Sprite *sprite) void AnimOrbitFast(struct Sprite *sprite)
{ {
sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2);
sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET);
sprite->affineAnimPaused = 1; sprite->affineAnimPaused = 1;
sprite->data[0] = gBattleAnimArgs[0]; sprite->data[0] = gBattleAnimArgs[0];
sprite->data[1] = gBattleAnimArgs[1]; sprite->data[1] = gBattleAnimArgs[1];
@@ -3449,8 +3491,8 @@ static void AnimOrbitFastStep(struct Sprite *sprite)
// arg 0: initial wave offset // arg 0: initial wave offset
void AnimOrbitScatter(struct Sprite *sprite) void AnimOrbitScatter(struct Sprite *sprite)
{ {
sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2);
sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET);
sprite->data[0] = Sin(gBattleAnimArgs[0], 10); sprite->data[0] = Sin(gBattleAnimArgs[0], 10);
sprite->data[1] = Cos(gBattleAnimArgs[0], 7); sprite->data[1] = Cos(gBattleAnimArgs[0], 7);
sprite->callback = AnimOrbitScatterStep; sprite->callback = AnimOrbitScatterStep;
@@ -3474,8 +3516,8 @@ static void AnimSpitUpOrb_Step(struct Sprite *sprite)
void AnimSpitUpOrb(struct Sprite *sprite) void AnimSpitUpOrb(struct Sprite *sprite)
{ {
sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2);
sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET);
sprite->data[0] = Sin(gBattleAnimArgs[0], 10); sprite->data[0] = Sin(gBattleAnimArgs[0], 10);
sprite->data[1] = Cos(gBattleAnimArgs[0], 7); sprite->data[1] = Cos(gBattleAnimArgs[0], 7);
sprite->data[2] = gBattleAnimArgs[1]; sprite->data[2] = gBattleAnimArgs[1];
@@ -3497,6 +3539,7 @@ void AnimEyeSparkle(struct Sprite *sprite)
void AnimAngel(struct Sprite *sprite) void AnimAngel(struct Sprite *sprite)
{ {
s16 var0; s16 var0;
if (!sprite->data[0]) if (!sprite->data[0])
{ {
sprite->pos1.x += gBattleAnimArgs[0]; sprite->pos1.x += gBattleAnimArgs[0];
@@ -3612,13 +3655,13 @@ void AnimMovementWaves(struct Sprite *sprite)
{ {
if (!gBattleAnimArgs[0]) if (!gBattleAnimArgs[0])
{ {
sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2);
sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET);
} }
else else
{ {
sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, 2); sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2);
sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, 3); sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET);
} }
if (!gBattleAnimArgs[1]) if (!gBattleAnimArgs[1])
@@ -3666,8 +3709,8 @@ void AnimJaggedMusicNote(struct Sprite *sprite)
if (GetBattlerSide(battler) == B_SIDE_OPPONENT) if (GetBattlerSide(battler) == B_SIDE_OPPONENT)
gBattleAnimArgs[1] *= -1; gBattleAnimArgs[1] *= -1;
sprite->pos1.x = GetBattlerSpriteCoord(battler, 2) + gBattleAnimArgs[1]; sprite->pos1.x = GetBattlerSpriteCoord(battler, BATTLER_COORD_X_2) + gBattleAnimArgs[1];
sprite->pos1.y = GetBattlerSpriteCoord(battler, 3) + gBattleAnimArgs[2]; sprite->pos1.y = GetBattlerSpriteCoord(battler, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[2];
sprite->data[0] = 0; sprite->data[0] = 0;
sprite->data[1] = (u16)sprite->pos1.x << 3; sprite->data[1] = (u16)sprite->pos1.x << 3;
sprite->data[2] = (u16)sprite->pos1.y << 3; sprite->data[2] = (u16)sprite->pos1.y << 3;
@@ -3799,8 +3842,8 @@ void AnimGuardRing(struct Sprite *sprite)
} }
else else
{ {
sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 0); sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X);
sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1) + 40; sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y) + 40;
} }
sprite->data[0] = 13; sprite->data[0] = 13;
+913 -1086
View File
File diff suppressed because it is too large Load Diff
+84 -94
View File
@@ -39,15 +39,11 @@
#define HIHALF(n) (((n) & 0xFFFF0000) >> 16) #define HIHALF(n) (((n) & 0xFFFF0000) >> 16)
#define LOHALF(n) ((n) & 0xFFFF) #define LOHALF(n) ((n) & 0xFFFF)
// IWRAM // RAM
EWRAM_DATA int gUnknown_3005424 = 0; EWRAM_DATA int gUnknown_3005424 = 0;
EWRAM_DATA u16 gUnknown_3005428 = 0; EWRAM_DATA u16 gUnknown_3005428 = 0;
EWRAM_DATA u16 gUnknown_300542C = 0; EWRAM_DATA u16 gUnknown_300542C = 0;
//extern u32 gUnknown_3005424;
//extern u32 gUnknown_3005428;
//extern u32 gUnknown_300542C;
// Function Declarations // Function Declarations
static void sub_80EEDF4(u8); static void sub_80EEDF4(u8);
static void sub_80EF1CC(u8); static void sub_80EF1CC(u8);
@@ -74,7 +70,7 @@ static void sub_80F05B4(u8);
static void sub_80F0278(struct Sprite *); static void sub_80F0278(struct Sprite *);
static void sub_80F0378(struct Sprite *); static void sub_80F0378(struct Sprite *);
static void sub_80F04B4(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 sub_80F0574(struct Sprite *sprite);
static void PokeBallOpenParticleAnimation_Step1(struct Sprite *); static void PokeBallOpenParticleAnimation_Step1(struct Sprite *);
static void PokeBallOpenParticleAnimation_Step2(struct Sprite *); static void PokeBallOpenParticleAnimation_Step2(struct Sprite *);
@@ -111,7 +107,7 @@ struct BallCaptureSuccessStarData
s8 unk2; s8 unk2;
}; };
static const struct BallCaptureSuccessStarData sBallCaptureSuccessStarData[] = //gUnknown_840BF3C static const struct BallCaptureSuccessStarData sBallCaptureSuccessStarData[] =
{ {
{ {
.xOffset = 10, .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_POKEBALL},
{gBattleAnimSpriteGfx_Particles, 0x100, TAG_PARTICLES_GREATBALL}, {gBattleAnimSpriteGfx_Particles, 0x100, TAG_PARTICLES_GREATBALL},
@@ -146,7 +142,7 @@ const struct CompressedSpriteSheet gBallParticleSpritesheets[] = //gUnknown_840B
{gBattleAnimSpriteGfx_Particles, 0x100, TAG_PARTICLES_PREMIERBALL}, {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_POKEBALL},
{gBattleAnimSpritePal_CircleImpact, TAG_PARTICLES_GREATBALL}, {gBattleAnimSpritePal_CircleImpact, TAG_PARTICLES_GREATBALL},
@@ -162,7 +158,7 @@ const struct CompressedSpritePalette gBallParticlePalettes[] = //gUnknown_840BFA
{gBattleAnimSpritePal_CircleImpact, TAG_PARTICLES_PREMIERBALL}, {gBattleAnimSpritePal_CircleImpact, TAG_PARTICLES_PREMIERBALL},
}; };
const union AnimCmd gAnim_RegularBall[] = //gAnimCmd_840C008 const union AnimCmd gAnim_RegularBall[] =
{ {
ANIMCMD_FRAME(0, 1), ANIMCMD_FRAME(0, 1),
ANIMCMD_FRAME(1, 1), ANIMCMD_FRAME(1, 1),
@@ -173,38 +169,38 @@ const union AnimCmd gAnim_RegularBall[] = //gAnimCmd_840C008
ANIMCMD_JUMP(0), ANIMCMD_JUMP(0),
}; };
const union AnimCmd gAnim_MasterBall[] = //gAnimCmd_840C024 const union AnimCmd gAnim_MasterBall[] =
{ {
ANIMCMD_FRAME(3, 1), ANIMCMD_FRAME(3, 1),
ANIMCMD_END, ANIMCMD_END,
}; };
const union AnimCmd gAnim_NetDiveBall[] = //gAnimCmd_840C02C const union AnimCmd gAnim_NetDiveBall[] =
{ {
ANIMCMD_FRAME(4, 1), ANIMCMD_FRAME(4, 1),
ANIMCMD_END, ANIMCMD_END,
}; };
const union AnimCmd gAnim_NestBall[] = //gAnimCmd_840C034 const union AnimCmd gAnim_NestBall[] =
{ {
ANIMCMD_FRAME(5, 1), ANIMCMD_FRAME(5, 1),
ANIMCMD_END, ANIMCMD_END,
}; };
const union AnimCmd gAnim_LuxuryPremierBall[] = //gAnimCmd_840C03C const union AnimCmd gAnim_LuxuryPremierBall[] =
{ {
ANIMCMD_FRAME(6, 4), ANIMCMD_FRAME(6, 4),
ANIMCMD_FRAME(7, 4), ANIMCMD_FRAME(7, 4),
ANIMCMD_JUMP(0), ANIMCMD_JUMP(0),
}; };
const union AnimCmd gAnim_UltraRepeatTimerBall[] = //gAnimCmd_840C048 const union AnimCmd gAnim_UltraRepeatTimerBall[] =
{ {
ANIMCMD_FRAME(7, 4), ANIMCMD_FRAME(7, 4),
ANIMCMD_END, ANIMCMD_END,
}; };
const union AnimCmd *const gAnims_BallParticles[] = //gSpriteAnimTable_840C050 const union AnimCmd *const gAnims_BallParticles[] =
{ {
gAnim_RegularBall, gAnim_RegularBall,
gAnim_MasterBall, gAnim_MasterBall,
@@ -214,7 +210,7 @@ const union AnimCmd *const gAnims_BallParticles[] = //gSpriteAnimTable_840C050
gAnim_UltraRepeatTimerBall, gAnim_UltraRepeatTimerBall,
}; };
const u8 gBallParticleAnimNums[] = //gUnknown_840C068 const u8 gBallParticleAnimNums[] =
{ {
[BALL_POKE] = 0, [BALL_POKE] = 0,
[BALL_GREAT] = 0, [BALL_GREAT] = 0,
@@ -230,7 +226,7 @@ const u8 gBallParticleAnimNums[] = //gUnknown_840C068
[BALL_PREMIER] = 4, [BALL_PREMIER] = 4,
}; };
const TaskFunc gBallParticleAnimationFuncs[] = //gUnknown_840C074 const TaskFunc gBallParticleAnimationFuncs[] =
{ {
PokeBallOpenParticleAnimation, PokeBallOpenParticleAnimation,
GreatBallOpenParticleAnimation, GreatBallOpenParticleAnimation,
@@ -246,7 +242,7 @@ const TaskFunc gBallParticleAnimationFuncs[] = //gUnknown_840C074
PremierBallOpenParticleAnimation, PremierBallOpenParticleAnimation,
}; };
const struct SpriteTemplate gBallParticlesSpriteTemplates[] = //gUnknown_840C0A4 const struct SpriteTemplate gBallParticlesSpriteTemplates[] =
{ {
{ {
.tileTag = TAG_PARTICLES_POKEBALL, .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_POKE] = RGB(31, 22, 30),
[BALL_GREAT] = RGB(16, 23, 30), [BALL_GREAT] = RGB(16, 23, 30),
@@ -373,7 +369,7 @@ const u16 gBallOpenFadeColors[] = //gUnknown_840C1C4
[BALL_LUXURY] = RGB(31, 17, 10), [BALL_LUXURY] = RGB(31, 17, 10),
[BALL_PREMIER] = RGB(31, 9, 10), [BALL_PREMIER] = RGB(31, 9, 10),
// Garbage data // Unused
RGB(0, 0, 0), RGB(0, 0, 0),
RGB(1, 16, 0), RGB(1, 16, 0),
RGB(3, 0, 1), RGB(3, 0, 1),
@@ -384,7 +380,7 @@ const u16 gBallOpenFadeColors[] = //gUnknown_840C1C4
RGB(4, 0, 0), RGB(4, 0, 0),
}; };
const struct SpriteTemplate gPokeblockSpriteTemplate = //gUnknown_840C1EC const struct SpriteTemplate gPokeblockSpriteTemplate =
{ {
.tileTag = ANIM_TAG_POKEBLOCK, .tileTag = ANIM_TAG_POKEBLOCK,
.paletteTag = ANIM_TAG_POKEBLOCK, .paletteTag = ANIM_TAG_POKEBLOCK,
@@ -401,7 +397,8 @@ const union AnimCmd gUnknown_840C204[] =
ANIMCMD_END, ANIMCMD_END,
}; };
const union AnimCmd *const gSpriteAnimTable_840C20C[] = { const union AnimCmd *const gSpriteAnimTable_840C20C[] =
{
gUnknown_840C204, gUnknown_840C204,
}; };
@@ -439,7 +436,6 @@ void sub_80EEC0C(u8 taskId)
SetAnimBgAttribute(1, BG_ANIM_SCREEN_SIZE, 0); SetAnimBgAttribute(1, BG_ANIM_SCREEN_SIZE, 0);
SetAnimBgAttribute(1, BG_ANIM_AREA_OVERFLOW_MODE, 1); SetAnimBgAttribute(1, BG_ANIM_AREA_OVERFLOW_MODE, 1);
SetAnimBgAttribute(1, BG_ANIM_CHAR_BASE_BLOCK, 1); SetAnimBgAttribute(1, BG_ANIM_CHAR_BASE_BLOCK, 1);
healthBoxSpriteId = gHealthboxSpriteIds[battler]; healthBoxSpriteId = gHealthboxSpriteIds[battler];
spriteId1 = gSprites[healthBoxSpriteId].oam.affineParam; spriteId1 = gSprites[healthBoxSpriteId].oam.affineParam;
spriteId2 = gSprites[healthBoxSpriteId].data[5]; spriteId2 = gSprites[healthBoxSpriteId].data[5];
@@ -454,12 +450,10 @@ void sub_80EEC0C(u8 taskId)
gSprites[spriteId4].oam.objMode = ST_OAM_OBJ_WINDOW; gSprites[spriteId4].oam.objMode = ST_OAM_OBJ_WINDOW;
gSprites[spriteId3].callback = SpriteCallbackDummy; gSprites[spriteId3].callback = SpriteCallbackDummy;
gSprites[spriteId4].callback = SpriteCallbackDummy; gSprites[spriteId4].callback = SpriteCallbackDummy;
sub_80752A0(&unknownStruct); sub_80752A0(&unknownStruct);
AnimLoadCompressedBgTilemap(unknownStruct.bgId, gUnknown_D2EC24_Tilemap); AnimLoadCompressedBgTilemap(unknownStruct.bgId, gUnknown_D2EC24_Tilemap);
AnimLoadCompressedBgGfx(unknownStruct.bgId, gUnknown_D2EC24_Gfx, unknownStruct.tilesOffset); AnimLoadCompressedBgGfx(unknownStruct.bgId, gUnknown_D2EC24_Gfx, unknownStruct.tilesOffset);
LoadCompressedPalette(gCureBubblesPal, unknownStruct.paletteId << 4, 32); LoadCompressedPalette(gCureBubblesPal, unknownStruct.paletteId << 4, 32);
gBattle_BG1_X = -gSprites[spriteId3].pos1.x + 32; gBattle_BG1_X = -gSprites[spriteId3].pos1.x + 32;
gBattle_BG1_Y = -gSprites[spriteId3].pos1.y - 32; gBattle_BG1_Y = -gSprites[spriteId3].pos1.y - 32;
gTasks[taskId].data[1] = 640; gTasks[taskId].data[1] = 640;
@@ -539,12 +533,10 @@ void sub_80EEFC8(u8 *paletteId1, u8 *paletteId2, u8 battler)
spriteId2 = gSprites[healthBoxSpriteId].data[5]; spriteId2 = gSprites[healthBoxSpriteId].data[5];
*paletteId1 = AllocSpritePalette(0xD709); *paletteId1 = AllocSpritePalette(0xD709);
*paletteId2 = AllocSpritePalette(0xD70A); *paletteId2 = AllocSpritePalette(0xD70A);
offset1 = (gSprites[healthBoxSpriteId].oam.paletteNum * 16) + 0x100; offset1 = (gSprites[healthBoxSpriteId].oam.paletteNum * 16) + 0x100;
offset2 = (gSprites[spriteId2].oam.paletteNum * 16) + 0x100; offset2 = (gSprites[spriteId2].oam.paletteNum * 16) + 0x100;
LoadPalette(&gPlttBufferUnfaded[offset1], *paletteId1 * 16 + 0x100, 0x20); LoadPalette(&gPlttBufferUnfaded[offset1], *paletteId1 * 16 + 0x100, 0x20);
LoadPalette(&gPlttBufferUnfaded[offset2], *paletteId2 * 16 + 0x100, 0x20); LoadPalette(&gPlttBufferUnfaded[offset2], *paletteId2 * 16 + 0x100, 0x20);
gSprites[healthBoxSpriteId].oam.paletteNum = *paletteId1; gSprites[healthBoxSpriteId].oam.paletteNum = *paletteId1;
gSprites[spriteId1].oam.paletteNum = *paletteId1; gSprites[spriteId1].oam.paletteNum = *paletteId1;
gSprites[spriteId2].oam.paletteNum = *paletteId2; gSprites[spriteId2].oam.paletteNum = *paletteId2;
@@ -553,6 +545,7 @@ void sub_80EEFC8(u8 *paletteId1, u8 *paletteId2, u8 battler)
void sub_80EF0B4(u8 taskId) void sub_80EF0B4(u8 taskId)
{ {
u8 paletteId1, paletteId2; u8 paletteId1, paletteId2;
sub_80EEFC8(&paletteId1, &paletteId2, gBattleAnimAttacker); sub_80EEFC8(&paletteId1, &paletteId2, gBattleAnimAttacker);
DestroyAnimVisualTask(taskId); DestroyAnimVisualTask(taskId);
} }
@@ -566,7 +559,6 @@ void sub_80EF0E0(u8 battler)
healthBoxSpriteId = gHealthboxSpriteIds[battler]; healthBoxSpriteId = gHealthboxSpriteIds[battler];
spriteId1 = gSprites[healthBoxSpriteId].oam.affineParam; spriteId1 = gSprites[healthBoxSpriteId].oam.affineParam;
spriteId2 = gSprites[healthBoxSpriteId].data[5]; spriteId2 = gSprites[healthBoxSpriteId].data[5];
FreeSpritePaletteByTag(0xD709); FreeSpritePaletteByTag(0xD709);
FreeSpritePaletteByTag(0xD70A); FreeSpritePaletteByTag(0xD70A);
paletteId1 = IndexOfSpritePaletteTag(0xD6FF); paletteId1 = IndexOfSpritePaletteTag(0xD6FF);
@@ -672,8 +664,8 @@ void sub_80EF344(u8 taskId)
switch (gTasks[taskId].data[0]) switch (gTasks[taskId].data[0])
{ {
case 0: case 0:
x = GetBattlerSpriteCoord(gBattleAnimAttacker, 0); x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X);
y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1); y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y);
priority = gSprites[spriteId].oam.priority; priority = gSprites[spriteId].oam.priority;
subpriority = gSprites[spriteId].subpriority; subpriority = gSprites[spriteId].subpriority;
gTasks[taskId].data[10] = LaunchBallStarsTask(x, y + 32, priority, subpriority, ballId); 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) void sub_80EF490(u8 taskId)
{ {
u8 ballId = ItemIdToBallId(gLastUsedItem); u8 ballId = ItemIdToBallId(gLastUsedItem);
LoadBallGfx(ballId); LoadBallGfx(ballId);
DestroyAnimVisualTask(taskId); DestroyAnimVisualTask(taskId);
} }
@@ -698,6 +691,7 @@ void sub_80EF490(u8 taskId)
void sub_80EF4B8(u8 taskId) void sub_80EF4B8(u8 taskId)
{ {
u8 ballId = ItemIdToBallId(gLastUsedItem); u8 ballId = ItemIdToBallId(gLastUsedItem);
FreeBallGfx(ballId); FreeBallGfx(ballId);
DestroyAnimVisualTask(taskId); DestroyAnimVisualTask(taskId);
} }
@@ -705,17 +699,17 @@ void sub_80EF4B8(u8 taskId)
void AnimTask_IsBallBlockedByTrainerOrDodged(u8 taskId) void AnimTask_IsBallBlockedByTrainerOrDodged(u8 taskId)
{ {
switch (gBattleSpritesDataPtr->animationData->ballThrowCaseId) switch (gBattleSpritesDataPtr->animationData->ballThrowCaseId)
{ {
case BALL_TRAINER_BLOCK: case BALL_TRAINER_BLOCK:
gBattleAnimArgs[ARG_RET_ID] = -1; gBattleAnimArgs[ARG_RET_ID] = -1;
break; break;
case BALL_GHOST_DODGE: case BALL_GHOST_DODGE:
gBattleAnimArgs[ARG_RET_ID] = -2; gBattleAnimArgs[ARG_RET_ID] = -2;
break; break;
default: default:
gBattleAnimArgs[ARG_RET_ID] = 0; gBattleAnimArgs[ARG_RET_ID] = 0;
break; break;
} }
DestroyAnimVisualTask(taskId); DestroyAnimVisualTask(taskId);
} }
@@ -760,8 +754,8 @@ void sub_80EF5AC(u8 taskId)
ballId = ItemIdToBallId(gLastUsedItem); ballId = ItemIdToBallId(gLastUsedItem);
spriteId = CreateSprite(&gBallSpriteTemplates[ballId], 32, 80, 29); spriteId = CreateSprite(&gBallSpriteTemplates[ballId], 32, 80, 29);
gSprites[spriteId].data[0] = 34; gSprites[spriteId].data[0] = 34;
gSprites[spriteId].data[1] = GetBattlerSpriteCoord(gBattleAnimTarget, 0); gSprites[spriteId].data[1] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X);
gSprites[spriteId].data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 1) - 16; gSprites[spriteId].data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y) - 16;
gSprites[spriteId].callback = sub_80EF8C0; gSprites[spriteId].callback = sub_80EF8C0;
gBattleSpritesDataPtr->animationData->field_9_x2 = gSprites[gBattlerSpriteIds[gBattleAnimTarget]].invisible; gBattleSpritesDataPtr->animationData->field_9_x2 = gSprites[gBattlerSpriteIds[gBattleAnimTarget]].invisible;
gTasks[taskId].data[0] = spriteId; gTasks[taskId].data[0] = spriteId;
@@ -771,6 +765,7 @@ void sub_80EF5AC(u8 taskId)
static void sub_80EF698(u8 taskId) static void sub_80EF698(u8 taskId)
{ {
u8 spriteId = gTasks[taskId].data[0]; u8 spriteId = gTasks[taskId].data[0];
if ((u16)gSprites[spriteId].data[0] == 0xFFFF) if ((u16)gSprites[spriteId].data[0] == 0xFFFF)
DestroyAnimVisualTask(taskId); DestroyAnimVisualTask(taskId);
} }
@@ -791,16 +786,16 @@ void sub_80EF6D4(u8 taskId)
{ {
x = 23; x = 23;
y = 11; y = 11;
if (gSaveBlock2Ptr->playerGender == FEMALE) if (gSaveBlock2Ptr->playerGender == FEMALE)
y = 13; y = 13;
} }
ballId = ItemIdToBallId(gLastUsedItem); ballId = ItemIdToBallId(gLastUsedItem);
subpriority = GetBattlerSpriteSubpriority(GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT)) + 1; subpriority = GetBattlerSpriteSubpriority(GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT)) + 1;
spriteId = CreateSprite(&gBallSpriteTemplates[ballId], x | 32, y | 80, subpriority); spriteId = CreateSprite(&gBallSpriteTemplates[ballId], x | 32, y | 80, subpriority);
gSprites[spriteId].data[0] = 34; gSprites[spriteId].data[0] = 34;
gSprites[spriteId].data[1] = GetBattlerSpriteCoord(gBattleAnimTarget, 0); gSprites[spriteId].data[1] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X);
gSprites[spriteId].data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 1) - 16; gSprites[spriteId].data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y) - 16;
gSprites[spriteId].callback = SpriteCallbackDummy; gSprites[spriteId].callback = SpriteCallbackDummy;
gSprites[gBattlerSpriteIds[GetBattlerAtPosition(B_POSITION_PLAYER_LEFT)]].callback = sub_8012354; gSprites[gBattlerSpriteIds[GetBattlerAtPosition(B_POSITION_PLAYER_LEFT)]].callback = sub_8012354;
gTasks[taskId].data[0] = spriteId; gTasks[taskId].data[0] = spriteId;
@@ -831,6 +826,7 @@ static void sub_80EF8C0(struct Sprite *sprite)
{ {
u16 temp = sprite->data[1]; u16 temp = sprite->data[1];
u16 temp2 = sprite->data[2]; u16 temp2 = sprite->data[2];
sprite->data[1] = sprite->pos1.x; sprite->data[1] = sprite->pos1.x;
sprite->data[2] = temp; sprite->data[2] = temp;
sprite->data[3] = sprite->pos1.y; sprite->data[3] = sprite->pos1.y;
@@ -851,10 +847,10 @@ static void sub_80EF8F0(struct Sprite *sprite)
{ {
sprite->callback = sub_80F0478; sprite->callback = sub_80F0478;
} }
else if (gBattleSpritesDataPtr->animationData->ballThrowCaseId == BALL_GHOST_DODGE) else if (gBattleSpritesDataPtr->animationData->ballThrowCaseId == BALL_GHOST_DODGE)
{ {
sprite->callback = sub_80F052C; sprite->callback = GhostBallDodge;
} }
else else
{ {
StartSpriteAnim(sprite, 1); StartSpriteAnim(sprite, 1);
@@ -898,7 +894,6 @@ static void sub_80EFA0C(struct Sprite *sprite)
spriteId = gBattlerSpriteIds[gBattleAnimTarget]; spriteId = gBattlerSpriteIds[gBattleAnimTarget];
taskId = sprite->data[5]; taskId = sprite->data[5];
if (++gTasks[taskId].data[1] == 11) if (++gTasks[taskId].data[1] == 11)
PlaySE(SE_SUIKOMU); PlaySE(SE_SUIKOMU);
@@ -960,7 +955,6 @@ static void sub_80EFB9C(struct Sprite *sprite)
int bounceCount; int bounceCount;
lastBounce = 0; lastBounce = 0;
switch (sprite->data[3] & 0xFF) switch (sprite->data[3] & 0xFF)
{ {
case 0: case 0:
@@ -1330,7 +1324,6 @@ static void sub_80F02B0(struct Sprite *sprite)
StartSpriteAnim(sprite, 1); StartSpriteAnim(sprite, 1);
StartSpriteAffineAnim(sprite, 0); StartSpriteAffineAnim(sprite, 0);
sprite->callback = sub_80F0378; sprite->callback = sub_80F0378;
ballId = ItemIdToBallId(gLastUsedItem); ballId = ItemIdToBallId(gLastUsedItem);
switch (ballId) switch (ballId)
{ {
@@ -1393,11 +1386,11 @@ static void sub_80F04B4(struct Sprite *sprite)
{ {
s16 var0 = sprite->data[0] + 0x800; s16 var0 = sprite->data[0] + 0x800;
s16 var1 = sprite->data[1] + 0x680; s16 var1 = sprite->data[1] + 0x680;
sprite->pos2.x -= var1 >> 8; sprite->pos2.x -= var1 >> 8;
sprite->pos2.y += var0 >> 8; sprite->pos2.y += var0 >> 8;
sprite->data[0] = (sprite->data[0] + 0x800) & 0xFF; sprite->data[0] = (sprite->data[0] + 0x800) & 0xFF;
sprite->data[1] = (sprite->data[1] + 0x680) & 0xFF; sprite->data[1] = (sprite->data[1] + 0x680) & 0xFF;
if (sprite->pos1.y + sprite->pos2.y > 160 if (sprite->pos1.y + sprite->pos2.y > 160
|| sprite->pos1.x + sprite->pos2.x < -8) || sprite->pos1.x + sprite->pos2.x < -8)
{ {
@@ -1408,35 +1401,34 @@ static void sub_80F04B4(struct Sprite *sprite)
} }
} }
// GhostBallDodge static void GhostBallDodge(struct Sprite *sprite)
static void sub_80F052C(struct Sprite *sprite)
{ {
sprite->pos1.x += sprite->pos2.x; sprite->pos1.x += sprite->pos2.x;
sprite->pos1.y += sprite->pos2.y; sprite->pos1.y += sprite->pos2.y;
sprite->pos2.x = sprite->pos2.y = 0; sprite->pos2.x = sprite->pos2.y = 0;
sprite->data[0] = 0x22; sprite->data[0] = 0x22;
sprite->data[1] = sprite->pos1.x; sprite->data[1] = sprite->pos1.x;
sprite->data[2] = sprite->pos1.x - 8; sprite->data[2] = sprite->pos1.x - 8;
sprite->data[3] = sprite->pos1.y; sprite->data[3] = sprite->pos1.y;
sprite->data[4] = 0x90; sprite->data[4] = 0x90;
sprite->data[5] = 0x20; sprite->data[5] = 0x20;
InitAnimArcTranslation(sprite); InitAnimArcTranslation(sprite);
TranslateAnimVerticalArc(sprite); TranslateAnimVerticalArc(sprite);
sprite->callback = sub_80F0574; sprite->callback = sub_80F0574;
} }
static void sub_80F0574(struct Sprite *sprite) static void sub_80F0574(struct Sprite *sprite)
{ {
if (!TranslateAnimVerticalArc(sprite)) if (!TranslateAnimVerticalArc(sprite))
{ {
if ((sprite->pos1.y + sprite->pos2.y) < 65) if ((sprite->pos1.y + sprite->pos2.y) < 65)
return; return;
} }
sprite->data[0] = 0; sprite->data[0] = 0;
sprite->callback = sub_80F018C; sprite->callback = sub_80F018C;
gDoingBattleAnim = FALSE; gDoingBattleAnim = FALSE;
UpdateOamPriorityInAllHealthboxes(1); UpdateOamPriorityInAllHealthboxes(1);
} }
static void sub_80F05B4(u8 ballId) 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[4] = subpriority;
gTasks[taskId].data[15] = ballId; gTasks[taskId].data[15] = ballId;
PlaySE(SE_BOWA2); PlaySE(SE_BOWA2);
return taskId; return taskId;
} }
@@ -1875,10 +1866,10 @@ static void DestroyBallOpenAnimationParticle(struct Sprite *sprite)
if (gBattleSpritesDataPtr->animationData->field_A == 0) if (gBattleSpritesDataPtr->animationData->field_A == 0)
{ {
for (j = 0; j < POKEBALL_COUNT; j++) for (j = 0; j < POKEBALL_COUNT; j++)
{ {
FreeSpriteTilesByTag(gBallParticleSpritesheets[j].tag); FreeSpriteTilesByTag(gBallParticleSpritesheets[j].tag);
FreeSpritePaletteByTag(gBallParticlePalettes[j].tag); FreeSpritePaletteByTag(gBallParticlePalettes[j].tag);
} }
DestroySprite(sprite); DestroySprite(sprite);
} }
@@ -2126,8 +2117,8 @@ static void sub_80F181C(u8 taskId)
return; return;
battler = gTasks[taskId].data[0]; battler = gTasks[taskId].data[0];
x = GetBattlerSpriteCoord(battler, 0); x = GetBattlerSpriteCoord(battler, BATTLER_COORD_X);
y = GetBattlerSpriteCoord(battler, 1); y = GetBattlerSpriteCoord(battler, BATTLER_COORD_Y);
state = gTasks[taskId].data[11]; state = gTasks[taskId].data[11];
if (state == 0) if (state == 0)
{ {
@@ -2244,8 +2235,8 @@ static void sub_80F1B3C(struct Sprite *sprite)
{ {
InitSpritePosToAnimAttacker(sprite, 0); InitSpritePosToAnimAttacker(sprite, 0);
sprite->data[0] = 30; sprite->data[0] = 30;
sprite->data[2] = GetBattlerSpriteCoord(GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT), 0) + gBattleAnimArgs[2]; sprite->data[2] = GetBattlerSpriteCoord(GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT), BATTLER_COORD_X) + gBattleAnimArgs[2];
sprite->data[4] = GetBattlerSpriteCoord(GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT), 1) + gBattleAnimArgs[3]; sprite->data[4] = GetBattlerSpriteCoord(GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT), BATTLER_COORD_Y) + gBattleAnimArgs[3];
sprite->data[5] = -32; sprite->data[5] = -32;
InitAnimArcTranslation(sprite); InitAnimArcTranslation(sprite);
gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].callback = sub_8012354; gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].callback = sub_8012354;
@@ -2260,7 +2251,7 @@ static void sub_80F1BCC(struct Sprite *sprite)
static void sub_80F1C04(struct Sprite *sprite) static void sub_80F1C04(struct Sprite *sprite)
{ {
if (TranslateAnimHorizontalArc(sprite)) //TranslateAnimArc? if (TranslateAnimHorizontalArc(sprite))
{ {
sprite->data[0] = 0; sprite->data[0] = 0;
sprite->invisible = 1; sprite->invisible = 1;
@@ -2299,15 +2290,14 @@ void sub_80F1C8C(u8 taskId)
void sub_80F1CE4(u8 taskId) void sub_80F1CE4(u8 taskId)
{ {
if (gBattleCommunication[MULTISTRING_CHOOSER] > 2) if (gBattleCommunication[MULTISTRING_CHOOSER] > 2)
gBattleAnimArgs[7] = 0; gBattleAnimArgs[7] = 0;
else else
gBattleAnimArgs[7] = gBattleCommunication[MULTISTRING_CHOOSER]; gBattleAnimArgs[7] = gBattleCommunication[MULTISTRING_CHOOSER];
DestroyAnimVisualTask(taskId); DestroyAnimVisualTask(taskId);
} }
// 080F1D14
void AnimTask_GetTrappedMoveAnimId(u8 taskId) void AnimTask_GetTrappedMoveAnimId(u8 taskId)
{ {
if (gBattleSpritesDataPtr->animationData->animArg == MOVE_FIRE_SPIN) if (gBattleSpritesDataPtr->animationData->animArg == MOVE_FIRE_SPIN)
+3 -5
View File
@@ -26,8 +26,6 @@ static void sub_8078380(struct Sprite *sprite);
extern const struct CompressedSpriteSheet gBattleAnimPicTable[]; extern const struct CompressedSpriteSheet gBattleAnimPicTable[];
extern const struct CompressedSpritePalette gBattleAnimPaletteTable[]; extern const struct CompressedSpritePalette gBattleAnimPaletteTable[];
extern const u8 *const gBattleAnims_StatusConditions[]; 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[] = static const union AnimCmd gUnknown_83BF3E0[] =
{ {
@@ -205,8 +203,7 @@ const struct SpriteTemplate gSpriteTemplate_83BF514 =
.callback = sub_8076ED8, .callback = sub_8076ED8,
}; };
//const u8 gUnknown_83BF52C[] = _("TASK OVER\nタスクがオーバーしました"); //wont compile...? const u8 gUnknown_83BF52C[] = _("TASK OVER\nタスクがオ-バ-しました");
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};
static const struct Subsprite gSubsprites_83BF544[] = static const struct Subsprite gSubsprites_83BF544[] =
{ {
@@ -284,7 +281,6 @@ static u8 sub_8078178(u8 battlerId, bool8 b)
return taskId; return taskId;
} }
// Functions
static void sub_80782BC(u8 taskId) static void sub_80782BC(u8 taskId)
{ {
if (gTasks[taskId].data[2] == 2) if (gTasks[taskId].data[2] == 2)
@@ -361,11 +357,13 @@ void sub_80783FC(u8 taskId)
if (IsContest()) if (IsContest())
x -= 6; x -= 6;
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_ALL); SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_ALL);
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0, 16)); SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0, 16));
spriteId = CreateSprite(&gUnknown_83BF55C, x, y, 4); spriteId = CreateSprite(&gUnknown_83BF55C, x, y, 4);
if (GetSpriteTileStartByTag(ANIM_TAG_ICE_CUBE) == 0xFFFF) if (GetSpriteTileStartByTag(ANIM_TAG_ICE_CUBE) == 0xFFFF)
gSprites[spriteId].invisible = TRUE; gSprites[spriteId].invisible = TRUE;
SetSubspriteTables(&gSprites[spriteId], gUnknown_83BF554); SetSubspriteTables(&gSprites[spriteId], gUnknown_83BF554);
gTasks[taskId].data[15] = spriteId; gTasks[taskId].data[15] = spriteId;
gTasks[taskId].func = sub_80784D8; gTasks[taskId].func = sub_80784D8;