summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/battle_anim_effects_1.c7
-rw-r--r--src/battle_anim_effects_2.c5
-rw-r--r--src/battle_anim_effects_3.c261
-rw-r--r--src/battle_anim_special.c69
-rw-r--r--src/battle_anim_status_effects.c25
5 files changed, 154 insertions, 213 deletions
diff --git a/src/battle_anim_effects_1.c b/src/battle_anim_effects_1.c
index 9d820b628..ff0927f88 100644
--- a/src/battle_anim_effects_1.c
+++ b/src/battle_anim_effects_1.c
@@ -13,7 +13,6 @@
#include "sound.h"
#include "trig.h"
#include "util.h"
-#include "constants/rgb.h"
#include "constants/songs.h"
// RAM
@@ -4373,7 +4372,7 @@ static void AnimLockOnTargetStep4(struct Sprite* sprite)
sprite->data[1] = 0;
}
- BlendPalettes(sub_80A75AC(1, 1, 1, 1, 1, 0, 0), sprite->data[1], RGB(31, 31, 31));
+ BlendPalettes(sub_8075BE8(1, 1, 1, 1, 1, 0, 0), sprite->data[1], RGB(31, 31, 31));
if (sprite->data[1] == 16)
{
int pal;
@@ -5029,7 +5028,7 @@ void AnimTask_FadeScreenBlueStep(u8);
void AnimTask_FadeScreenBlue(u8 taskId)
{
- int a = sub_80A75AC(1, 0, 0, 0, 0, 0, 0) & 0xFFFF;
+ int a = sub_8075BE8(1, 0, 0, 0, 0, 0, 0) & 0xFFFF;
int b;
int c;
int d;
@@ -5044,7 +5043,7 @@ void AnimTask_FadeScreenBlue(u8 taskId)
gTasks[taskId].data[7] = 13;
gTasks[taskId].data[8] = 14;
gTasks[taskId].data[9] = 15;
- b = sub_80A76C4(1, 1, 1, 1);
+ b = sub_8075CB8(1, 1, 1, 1);
c = a | b;
StorePointerInVars(&gTasks[taskId].data[14], &gTasks[taskId].data[15], (void*)c);
b = b | (0x10000 << IndexOfSpritePaletteTag(ANIM_TAG_MOON));
diff --git a/src/battle_anim_effects_2.c b/src/battle_anim_effects_2.c
index 32ed2fba9..cea915921 100644
--- a/src/battle_anim_effects_2.c
+++ b/src/battle_anim_effects_2.c
@@ -13,7 +13,6 @@
#include "sound.h"
#include "trig.h"
#include "util.h"
-#include "constants/rgb.h"
#include "constants/songs.h"
void sub_80A6E48(struct Sprite *);
@@ -344,7 +343,7 @@ const struct SpriteTemplate gWaterPulseRingSpriteTemplate = //gUnknown_83E3CE8
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gWaterPulseRingAffineAnimTable,
- .callback = AnimWaterPulseRing,
+ .callback = sub_80AC6D8,
};
const struct SpriteTemplate gEggThrowSpriteTemplate = //gUnknown_83E3D00
@@ -3096,7 +3095,7 @@ static void FakeOutStep2(u8 taskId)
{
gTasks[taskId].data[11] = 0x88;
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG3 | BLDCNT_EFFECT_LIGHTEN);
- BlendPalettes(sub_80A75AC(1, 0, 0, 0, 0, 0, 0), 16, RGB(31, 31, 31));
+ BlendPalettes(sub_8075BE8(1, 0, 0, 0, 0, 0, 0), 16, RGB(31, 31, 31));
}
else if (gTasks[taskId].data[10] > 4)
{
diff --git a/src/battle_anim_effects_3.c b/src/battle_anim_effects_3.c
index 426d39056..ab8b3f20a 100644
--- a/src/battle_anim_effects_3.c
+++ b/src/battle_anim_effects_3.c
@@ -3,7 +3,6 @@
#include "battle.h"
#include "battle_anim.h"
#include "bg.h"
-#include "contest.h"
#include "data.h"
#include "decompress.h"
#include "dma3.h"
@@ -19,7 +18,6 @@
#include "trig.h"
#include "util.h"
#include "constants/battle_anim.h"
-#include "constants/rgb.h"
#include "constants/songs.h"
#include "constants/species.h"
#include "constants/weather.h"
@@ -122,6 +120,10 @@ static void AnimRecycleStep(struct Sprite *);
static void AnimTask_SlackOffSquishStep(u8);
// Data
+extern const u32 gUnknown_8D2A8C0[];
+extern const u32 gUnknown_8D2A808[];
+extern const u32 gUnknown_8D2A8A8[];
+
const union AnimCmd gScratchAnimCmds[] = //83FEDE4
{
ANIMCMD_FRAME(0, 4),
@@ -468,8 +470,8 @@ const union AffineAnimCmd *const gTriAttackTriangleAffineAnimTable[] = //83FF0D4
const struct SpriteTemplate gTriAttackTriangleSpriteTemplate = //83FF0D8
{
- .tileTag = ANIM_TAG_TRI_ATTACK_TRIANGLE,
- .paletteTag = ANIM_TAG_TRI_ATTACK_TRIANGLE,
+ .tileTag = ANIM_TAG_TRI_FORCE_TRIANGLE,
+ .paletteTag = ANIM_TAG_TRI_FORCE_TRIANGLE,
.oam = &gOamData_AffineDouble_ObjNormal_64x64,
.anims = gTriAttackTriangleAnimTable,
.images = NULL,
@@ -719,7 +721,7 @@ const struct SpriteTemplate gSweetScentPetalSpriteTemplate = //83FF324
.callback = AnimSweetScentPetal,
};
-const u16 gUnknown_83FF33C[] = INCBIN_U16("graphics/unknown/unk_83FF33C.gbapal"); //Unused
+const u16 gUnknown_83FF33C[] = INCBIN_U16("graphics/battle_anims/unk_83FF33C.gbapal"); //Unused
const union AnimCmd gPainSplitAnimCmds[] = //83FF35C
{
@@ -1214,7 +1216,7 @@ static void AnimBlackSmokeStep(struct Sprite *sprite)
void AnimTask_SmokescreenImpact(u8 taskId)
{
- SmokescreenImpact(
+ SmokescreenImpact( //sub_804A76C
GetBattlerSpriteCoord(gBattleAnimTarget, 2) + 8,
GetBattlerSpriteCoord(gBattleAnimTarget, 3) + 8,
0);
@@ -2288,8 +2290,7 @@ void AnimTask_TransformMon(u8 taskId)
break;
case 2:
HandleSpeciesGfxDataChange(gBattleAnimAttacker, gBattleAnimTarget, gTasks[taskId].data[10]);
- sub_80A6BFC(&animBg, gBattleAnimAttacker);
-
+ sub_8075300(&animBg, gBattleAnimAttacker);
if (IsContest())
position = 0;
else
@@ -2297,40 +2298,8 @@ void AnimTask_TransformMon(u8 taskId)
src = gMonSpritesGfxPtr->sprites[position] + (gBattleMonForms[gBattleAnimAttacker] << 11);
dest = animBg.bgTiles;
- CpuCopy32(src, dest, 0x800);
+ CpuSet(src, dest, 0x4000200);
LoadBgTiles(1, animBg.bgTiles, 0x800, animBg.tilesOffset);
- if (IsContest())
- {
- if (IsSpeciesNotUnown(gContestResources->field_18->species) != IsSpeciesNotUnown(gContestResources->field_18->unk2))
- {
- bgTilemap = (u16 *)animBg.bgTilemap;
- for (i = 0; i < 8; i++)
- {
- for (j = 0; j < 4; j++)
- {
- u16 temp = bgTilemap[j + i * 0x20];
- bgTilemap[j + i * 0x20] = bgTilemap[(7 - j) + i * 0x20];
- bgTilemap[(7 - j) + i * 0x20] = temp;
- }
- }
-
- for (i = 0; i < 8; i++)
- {
- for (j = 0; j < 8; j++)
- {
- bgTilemap[j + i * 0x20] ^= 0x400;
- }
- }
- }
-
- if (IsSpeciesNotUnown(gContestResources->field_18->unk2))
- gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].affineAnims = gUnknown_082FF6C0;
- else
- gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].affineAnims = gUnknown_082FF694;
-
- StartSpriteAffineAnim(&gSprites[gBattlerSpriteIds[gBattleAnimAttacker]], 0);
- }
-
gTasks[taskId].data[0]++;
break;
case 3:
@@ -2392,13 +2361,13 @@ void AnimTask_MorningSunLightBeam(u8 taskId)
if (!IsContest())
SetAnimBgAttribute(1, BG_ANIM_CHAR_BASE_BLOCK, 1);
- sub_80752A0
- sub_807543C
- sub_80753B4 //AnimLoadCompressedBgGfx(animBg.bgId, gUnknown_08C2A634, animBg.tilesOffset);
+ sub_80752A0(&animBg);
+ AnimLoadCompressedBgTilemap(animBg.bgId, gUnknown_8D2A8C0);
+ AnimLoadCompressedBgGfx(animBg.bgId, gUnknown_8D2A808, animBg.tilesOffset);
LoadCompressedPalette(gUnknown_8D2A8A8, animBg.paletteId * 16, 32);
if (IsContest())
{
- sub_80730C0(animBg.paletteId, [sp+4 ???], 0, 0);
+ sub_80730C0(animBg.paletteId, animBg.bgTilemap, 0, 0);
gBattle_BG1_X = -56;
}
else
@@ -2410,30 +2379,6 @@ void AnimTask_MorningSunLightBeam(u8 taskId)
}
gBattle_BG1_Y = 0;
-
- /*
- sub_80752A0(&animBg);
- sub_80A6D60(&animBg, &gUnknown_08C2A6EC, 0);
-
- if (IsContest())
- {
- gBattle_BG1_X = -56;
- gBattle_BG1_Y = 0;
- }
- else
- {
- if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
- gBattle_BG1_X = -135;
- else
- gBattle_BG1_X = -10;
-
- gBattle_BG1_Y = 0;
- }
- */
-
-
-
-
gTasks[taskId].data[10] = gBattle_BG1_X;
gTasks[taskId].data[11] = gBattle_BG1_Y;
@@ -2594,21 +2539,16 @@ void AnimTask_DoomDesireLightBeam(u8 taskId)
SetAnimBgAttribute(1, BG_ANIM_PRIORITY, 1);
if (!IsContest())
SetAnimBgAttribute(1, BG_ANIM_CHAR_BASE_BLOCK, 1);
-
- /*
- sub_80752A0(&animBg);
- sub_80A6D60(&animBg, &gUnknown_08C2A6EC, 0);
- */
-
- sub_80752A0( ,
- sub_807543C( , gUnknown_8D2A8C0
- sub_80753B4( , gUnknown_8D2A808
- LoadCompressedPalette(gUnknown_8D2A808
- //...
+ sub_80752A0(&animBg);
+ AnimLoadCompressedBgTilemap(animBg.bgId, gUnknown_8D2A8C0);
+ AnimLoadCompressedBgGfx(animBg.bgId, gUnknown_8D2A808, animBg.tilesOffset);
+ LoadCompressedPalette(gUnknown_8D2A8A8, animBg.paletteId * 16, 32);
+
if (IsContest())
{
- gBattle_BG1_X = -56;
+ sub_80730C0(animBg.paletteId, animBg.bgTilemap, 0, 0);
+ gBattle_BG1_X = -56;
gBattle_BG1_Y = 0;
}
else
@@ -2636,8 +2576,6 @@ void AnimTask_DoomDesireLightBeam(u8 taskId)
gBattle_BG1_Y = 0;
}
- //AnimLoadCompressedBgGfx(animBg.bgId, gUnknown_08C2A634, animBg.tilesOffset);
- //LoadCompressedPalette(gUnknown_08C2A6D4, animBg.paletteId * 16, 32);
gTasks[taskId].data[10] = gBattle_BG1_X;
gTasks[taskId].data[11] = gBattle_BG1_Y;
gTasks[taskId].data[0]++;
@@ -3229,62 +3167,51 @@ void AnimTask_RolePlaySilhouette(u8 taskId)
s16 coord1, coord2;
GetAnimBattlerSpriteId(ANIM_ATTACKER);
- if (IsContest())
- {
- isBackPic = 1;
- personality = gContestResources->field_18->unk10;
- otId = gContestResources->field_18->unkC;
- species = gContestResources->field_18->unk2;
- xOffset = 20;
- priority = GetBattlerSpriteBGPriority(gBattleAnimAttacker);
- }
- else
- {
- if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
- {
- isBackPic = 0;
- personality = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimTarget]], MON_DATA_PERSONALITY);
- otId = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimTarget]], MON_DATA_OT_ID);
- if (gBattleSpritesDataPtr->battlerData[gBattleAnimTarget].transformSpecies == SPECIES_NONE)
- {
- if (GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER)
- species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimTarget]], MON_DATA_SPECIES);
- else
- species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleAnimTarget]], MON_DATA_SPECIES);
- }
- else
- {
- species = gBattleSpritesDataPtr->battlerData[gBattleAnimTarget].transformSpecies;
- }
- xOffset = 20;
- priority = GetBattlerSpriteBGPriority(gBattleAnimAttacker);
- }
- else
- {
- isBackPic = 1;
- personality = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleAnimTarget]], MON_DATA_PERSONALITY);
- otId = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleAnimTarget]], MON_DATA_OT_ID);
- if (gBattleSpritesDataPtr->battlerData[gBattleAnimTarget].transformSpecies == SPECIES_NONE)
- {
- if (GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER)
- species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimTarget]], MON_DATA_SPECIES);
- else
- species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleAnimTarget]], MON_DATA_SPECIES);
- }
- else
- {
- species = gBattleSpritesDataPtr->battlerData[gBattleAnimTarget].transformSpecies;
- }
+ if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
+ {
+ isBackPic = 0;
+ personality = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimTarget]], MON_DATA_PERSONALITY);
+ otId = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimTarget]], MON_DATA_OT_ID);
+ if (gBattleSpritesDataPtr->battlerData[gBattleAnimTarget].transformSpecies == SPECIES_NONE)
+ {
+ if (GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER)
+ species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimTarget]], MON_DATA_SPECIES);
+ else
+ species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleAnimTarget]], MON_DATA_SPECIES);
+ }
+ else
+ {
+ species = gBattleSpritesDataPtr->battlerData[gBattleAnimTarget].transformSpecies;
+ }
- xOffset = -20;
- priority = GetBattlerSpriteBGPriority(gBattleAnimAttacker);
- }
- }
+ xOffset = 20;
+ priority = GetBattlerSpriteBGPriority(gBattleAnimAttacker);
+ }
+ else
+ {
+ isBackPic = 1;
+ personality = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleAnimTarget]], MON_DATA_PERSONALITY);
+ otId = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleAnimTarget]], MON_DATA_OT_ID);
+ if (gBattleSpritesDataPtr->battlerData[gBattleAnimTarget].transformSpecies == SPECIES_NONE)
+ {
+ if (GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER)
+ species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimTarget]], MON_DATA_SPECIES);
+ else
+ species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleAnimTarget]], MON_DATA_SPECIES);
+ }
+ else
+ {
+ species = gBattleSpritesDataPtr->battlerData[gBattleAnimTarget].transformSpecies;
+ }
+
+ xOffset = -20;
+ priority = GetBattlerSpriteBGPriority(gBattleAnimAttacker);
+ }
coord1 = GetBattlerSpriteCoord(gBattleAnimAttacker, 0);
coord2 = GetBattlerSpriteCoord(gBattleAnimAttacker, 1);
- spriteId = sub_80A8394(species, isBackPic, 0, coord1 + xOffset, coord2, 5, personality, otId, gBattleAnimTarget, 1);
+ spriteId = sub_80768D0(species, isBackPic, 0, coord1 + xOffset, coord2, 5, personality, otId, gBattleAnimTarget, 1);
gSprites[spriteId].oam.priority = priority;
gSprites[spriteId].oam.objMode = ST_OAM_OBJ_BLEND;
@@ -5056,46 +4983,34 @@ void AnimTask_SnatchOpposingMonMove(u8 taskId)
}
break;
case 1:
- if (IsContest())
- {
- personality = gContestResources->field_18->unk8;
- otId = gContestResources->field_18->unkC;
- species = gContestResources->field_18->species;
- subpriority = GetBattlerSpriteSubpriority(gBattleAnimAttacker);
- isBackPic = 0;
- x = -32;
- }
- else
- {
- if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER)
- {
- personality = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_PERSONALITY);
- otId = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_OT_ID);
- if (gBattleSpritesDataPtr->battlerData[gBattleAnimAttacker].transformSpecies == SPECIES_NONE)
- species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_SPECIES);
- else
- species = gBattleSpritesDataPtr->battlerData[gBattleAnimAttacker].transformSpecies;
-
- subpriority = gSprites[GetAnimBattlerSpriteId(ANIM_TARGET)].subpriority + 1;
- isBackPic = 0;
- x = 272;
- }
- else
- {
- personality = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_PERSONALITY);
- otId = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_OT_ID);
- if (gBattleSpritesDataPtr->battlerData[gBattleAnimAttacker].transformSpecies == SPECIES_NONE)
- species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_SPECIES);
- else
- species = gBattleSpritesDataPtr->battlerData[gBattleAnimAttacker].transformSpecies;
-
- subpriority = gSprites[GetAnimBattlerSpriteId(ANIM_TARGET)].subpriority - 1;
- isBackPic = 1;
- x = -32;
- }
- }
+ if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER)
+ {
+ personality = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_PERSONALITY);
+ otId = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_OT_ID);
+ if (gBattleSpritesDataPtr->battlerData[gBattleAnimAttacker].transformSpecies == SPECIES_NONE)
+ species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_SPECIES);
+ else
+ species = gBattleSpritesDataPtr->battlerData[gBattleAnimAttacker].transformSpecies;
+
+ subpriority = gSprites[GetAnimBattlerSpriteId(ANIM_TARGET)].subpriority + 1;
+ isBackPic = 0;
+ x = 272;
+ }
+ else
+ {
+ personality = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_PERSONALITY);
+ otId = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_OT_ID);
+ if (gBattleSpritesDataPtr->battlerData[gBattleAnimAttacker].transformSpecies == SPECIES_NONE)
+ species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_SPECIES);
+ else
+ species = gBattleSpritesDataPtr->battlerData[gBattleAnimAttacker].transformSpecies;
+
+ subpriority = gSprites[GetAnimBattlerSpriteId(ANIM_TARGET)].subpriority - 1;
+ isBackPic = 1;
+ x = -32;
+ }
- spriteId2 = sub_80A8394(species, isBackPic, 0, x, GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y), subpriority, personality, otId, gBattleAnimAttacker, 0);
+ spriteId2 = sub_80768D0(species, isBackPic, 0, x, GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y), subpriority, personality, otId, gBattleAnimAttacker, 0);
if (gBattleSpritesDataPtr->battlerData[gBattleAnimAttacker].transformSpecies != SPECIES_NONE)
BlendPalette((gSprites[spriteId2].oam.paletteNum * 16) | 0x100, 16, 6, RGB_WHITE);
diff --git a/src/battle_anim_special.c b/src/battle_anim_special.c
index d0d40a6d8..a93913b82 100644
--- a/src/battle_anim_special.c
+++ b/src/battle_anim_special.c
@@ -1,6 +1,7 @@
#include "global.h"
#include "battle.h"
#include "battle_anim.h"
+#include "battle_main.h"
#include "battle_controllers.h"
#include "battle_interface.h"
#include "decompress.h"
@@ -19,7 +20,6 @@
#include "constants/items.h"
#include "constants/moves.h"
#include "constants/songs.h"
-#include "constants/rgb.h"
// Defines
#define TAG_PARTICLES_POKEBALL 55020
@@ -35,6 +35,9 @@
#define TAG_PARTICLES_LUXURYBALL 55030
#define TAG_PARTICLES_PREMIERBALL 55031
+#define HIHALF(n) (((n) & 0xFFFF0000) >> 16)
+#define LOHALF(n) ((n) & 0xFFFF)
+
// IWRAM
EWRAM_DATA int gUnknown_3005424 = 0;
EWRAM_DATA u16 gUnknown_3005428 = 0;
@@ -66,6 +69,8 @@ static void sub_80F05B4(u8);
static void sub_80F0278(struct Sprite *);
static void sub_80F0378(struct Sprite *);
static void sub_80F04B4(struct Sprite *);
+static void sub_80F052C(struct Sprite *sprite);
+static void sub_80F0574(struct Sprite *sprite);
static void PokeBallOpenParticleAnimation_Step1(struct Sprite *);
static void PokeBallOpenParticleAnimation_Step2(struct Sprite *);
static void DestroyBallOpenAnimationParticle(struct Sprite *);
@@ -94,6 +99,10 @@ static void PremierBallOpenParticleAnimation(u8);
static void sub_80F1B3C(struct Sprite *);
// Data
+extern const u32 gUnknown_8D2EC24[];
+extern const u32 gUnknown_8D2EC70[];
+extern const struct SpriteTemplate gBallSpriteTemplates[]; //for now
+
struct BallCaptureSuccessStarData
{
s8 xOffset;
@@ -445,9 +454,9 @@ void sub_80EEC0C(u8 taskId)
gSprites[spriteId3].callback = SpriteCallbackDummy;
gSprites[spriteId4].callback = SpriteCallbackDummy;
- sub_80A6B30(&unknownStruct);
- AnimLoadCompressedBgTilemap(unknownStruct.bgId, gUnknown_08C2EA9C);
- AnimLoadCompressedBgGfx(unknownStruct.bgId, gUnknown_08C2EA50, unknownStruct.tilesOffset);
+ sub_80752A0(&unknownStruct);
+ AnimLoadCompressedBgTilemap(unknownStruct.bgId, gUnknown_8D2EC70);
+ AnimLoadCompressedBgGfx(unknownStruct.bgId, gUnknown_8D2EC24, unknownStruct.tilesOffset);
LoadCompressedPalette(gCureBubblesPal, unknownStruct.paletteId << 4, 32);
gBattle_BG1_X = -gSprites[spriteId3].pos1.x + 32;
@@ -492,7 +501,7 @@ static void sub_80EEDF4(u8 taskId)
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gTasks[taskId].data[12], 16 - gTasks[taskId].data[12]));
if (gTasks[taskId].data[12] == 0)
{
- sub_80A477C(0);
+ sub_8073128(0);
gBattle_WIN0H = 0;
gBattle_WIN0V = 0;
SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG_ALL | WININ_WIN1_OBJ | WININ_WIN1_CLR);
@@ -518,7 +527,7 @@ static void sub_80EEDF4(u8 taskId)
}
}
-static void sub_80EEFC8(u8 *paletteId1, u8 *paletteId2, u8 battler)
+void sub_80EEFC8(u8 *paletteId1, u8 *paletteId2, u8 battler)
{
u8 healthBoxSpriteId;
u8 spriteId1, spriteId2;
@@ -547,7 +556,7 @@ void sub_80EF0B4(u8 taskId)
DestroyAnimVisualTask(taskId);
}
-static void sub_80EF0E0(u8 battler)
+void sub_80EF0E0(u8 battler)
{
u8 healthBoxSpriteId;
u8 spriteId1, spriteId2;
@@ -666,8 +675,8 @@ void sub_80EF344(u8 taskId)
y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1);
priority = gSprites[spriteId].oam.priority;
subpriority = gSprites[spriteId].subpriority;
- gTasks[taskId].data[10] = AnimateBallOpenParticles(x, y + 32, priority, subpriority, ballId);
- selectedPalettes = sub_80A75AC(1, 0, 0, 0, 0, 0, 0);
+ gTasks[taskId].data[10] = LaunchBallStarsTask(x, y + 32, priority, subpriority, ballId);
+ selectedPalettes = sub_8075BE8(1, 0, 0, 0, 0, 0, 0);
gTasks[taskId].data[11] = LaunchBallFadeMonTask(0, gBattleAnimAttacker, selectedPalettes, ballId);
gTasks[taskId].data[0]++;
break;
@@ -764,25 +773,27 @@ void sub_80EF6D4(u8 taskId)
u8 subpriority;
u8 spriteId;
- if (gBattleTypeFlags & BATTLE_TYPE_WALLY_TUTORIAL)
+ if (gBattleTypeFlags & BATTLE_TYPE_OLD_MAN_TUTORIAL)
{
- x = 32;
+ x = 28;
y = 11;
}
else
{
x = 23;
- y = 5;
+ y = 11;
+ if (gSaveBlock2Ptr->playerGender == FEMALE)
+ y = 13;
}
ballId = ItemIdToBallId(gLastUsedItem);
subpriority = GetBattlerSpriteSubpriority(GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT)) + 1;
- spriteId = CreateSprite(&gBallSpriteTemplates[ballId], x + 32, y | 80, subpriority);
+ spriteId = CreateSprite(&gBallSpriteTemplates[ballId], x | 32, y | 80, subpriority);
gSprites[spriteId].data[0] = 34;
gSprites[spriteId].data[1] = GetBattlerSpriteCoord(gBattleAnimTarget, 0);
gSprites[spriteId].data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 1) - 16;
gSprites[spriteId].callback = SpriteCallbackDummy;
- gSprites[gBattlerSpriteIds[GetBattlerAtPosition(B_POSITION_PLAYER_LEFT)]].callback = sub_8039E84;
+ gSprites[gBattlerSpriteIds[GetBattlerAtPosition(B_POSITION_PLAYER_LEFT)]].callback = sub_8012354;
gTasks[taskId].data[0] = spriteId;
gTasks[taskId].func = sub_80EF7EC;
}
@@ -853,7 +864,7 @@ static void sub_80EF8F0(struct Sprite *sprite)
switch (ballId)
{
case 0 ... POKEBALL_COUNT - 1:
- AnimateBallOpenParticles(sprite->pos1.x, sprite->pos1.y - 5, 1, 28, ballId);
+ LaunchBallStarsTask(sprite->pos1.x, sprite->pos1.y - 5, 1, 28, ballId);
LaunchBallFadeMonTask(0, gBattleAnimTarget, 14, ballId);
break;
}
@@ -1185,7 +1196,7 @@ static void sub_80EFFC4(struct Sprite *sprite)
sprite->data[4]++;
if (sprite->data[4] == 40)
{
- PlaySE(SE_RG_GETTING);
+ PlaySE(SE_GETTING);
BlendPalettes(0x10000 << sprite->oam.paletteNum, 6, RGB(0, 0, 0));
sub_80F01B8(sprite);
}
@@ -1198,7 +1209,7 @@ static void sub_80EFFC4(struct Sprite *sprite)
gDoingBattleAnim = 0;
UpdateOamPriorityInAllHealthboxes(1);
m4aMPlayAllStop();
- PlaySE(MUS_RG_FAN6);
+ PlaySE(MUS_FAN6);
}
else if (sprite->data[4] == 315)
{
@@ -1315,7 +1326,7 @@ static void sub_80F02B0(struct Sprite *sprite)
switch (ballId)
{
case 0 ... POKEBALL_COUNT - 1:
- AnimateBallOpenParticles(sprite->pos1.x, sprite->pos1.y - 5, 1, 28, ballId);
+ LaunchBallStarsTask(sprite->pos1.x, sprite->pos1.y - 5, 1, 28, ballId);
LaunchBallFadeMonTask(1, gBattleAnimTarget, 14, ballId);
break;
}
@@ -1391,7 +1402,23 @@ static void sub_80F04B4(struct Sprite *sprite)
// GhostBallDodge
static void sub_80F052C(struct Sprite *sprite)
{
- // to do
+ s16 x;
+ s16 y;
+
+ x = sprite->pos1.x + sprite->pos2.x;
+ sprite->pos1.x = x;
+ y = sprite->pos1.y + sprite->pos2.y;
+ sprite->pos1.y = y;
+ sprite->pos2.x = sprite->pos2.y = 0;
+ sprite->data[0] = 0x22;
+ sprite->data[1] = x;
+ sprite->data[2] = x - 8;
+ sprite->data[3] = y;
+ sprite->data[4] = 0x90;
+ sprite->data[5] = 0x20;
+ InitAnimArcTranslation(sprite);
+ TranslateAnimVerticalArc(sprite);
+ sprite->callback = sub_80F0574;
}
static void sub_80F0574(struct Sprite *sprite)
@@ -1410,7 +1437,7 @@ static void sub_80F05B4(u8 ballId)
}
}
-u8 AnimateBallOpenParticles(u8 x, u8 y, u8 priority, u8 subpriority, u8 ballId)
+u8 LaunchBallStarsTask(u8 x, u8 y, u8 priority, u8 subpriority, u8 ballId)
{
u8 taskId;
@@ -2217,7 +2244,7 @@ static void sub_80F1B3C(struct Sprite *sprite)
sprite->data[4] = GetBattlerSpriteCoord(GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT), 1) + gBattleAnimArgs[3];
sprite->data[5] = -32;
InitAnimArcTranslation(sprite);
- gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].callback = sub_8039E84;
+ gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].callback = sub_8012354;
sprite->callback = sub_80F1BCC;
}
diff --git a/src/battle_anim_status_effects.c b/src/battle_anim_status_effects.c
index 582dd20a5..91c1fabec 100644
--- a/src/battle_anim_status_effects.c
+++ b/src/battle_anim_status_effects.c
@@ -9,7 +9,7 @@
#include "trig.h"
#include "util.h"
#include "constants/battle_anim.h"
-#include "constants/rgb.h"
+#include "constants/pokemon.h"
// Function Declarations
static u8 sub_8078178(u8 battlerId, bool8 b);
@@ -51,7 +51,7 @@ const struct SpriteTemplate gSpriteTemplate_83BF3F8 =
.anims = gSpriteAnimTable_83BF3F4,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
- .callback = sub_80A8AEC,
+ .callback = sub_8076F58,
};
const struct SpriteTemplate gSpriteTemplate_83BF410 =
@@ -62,7 +62,7 @@ const struct SpriteTemplate gSpriteTemplate_83BF410 =
.anims = gSpriteAnimTable_83BF3F4,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
- .callback = sub_80A8A6C,
+ .callback = sub_8076ED8,
};
static const union AnimCmd gUnknown_83BF428[] =
@@ -84,7 +84,7 @@ const struct SpriteTemplate gSpriteTemplate_83BF434 =
.anims = gSpriteAnimTable_83BF430,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
- .callback = sub_80A8E30,
+ .callback = sub_807729C,
};
const struct SpriteTemplate gSpriteTemplate_83BF44C =
@@ -95,7 +95,7 @@ const struct SpriteTemplate gSpriteTemplate_83BF44C =
.anims = gSpriteAnimTable_83BF430,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
- .callback = sub_80A8EE4,
+ .callback = sub_8077350,
};
static const union AnimCmd gUnknown_83BF464[] =
@@ -121,7 +121,7 @@ const struct SpriteTemplate gSpriteTemplate_83BF480 =
.anims = gSpriteAnimTable_83BF47C,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
- .callback = sub_80A8B64,
+ .callback = sub_8076FD0,
};
const struct SpriteTemplate gSpriteTemplate_83BF498 =
@@ -132,7 +132,7 @@ const struct SpriteTemplate gSpriteTemplate_83BF498 =
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
- .callback = sub_80A8AEC,
+ .callback = sub_8076F58,
};
static const union AnimCmd gUnknown_83BF4B0[] =
@@ -168,7 +168,7 @@ const struct SpriteTemplate gSpriteTemplate_83BF4D4 =
.anims = gSpriteAniimTable_83BF4C8,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
- .callback = sub_80A8AEC,
+ .callback = sub_8076F58,
};
static const union AnimCmd gUnknown_83BF4EC[] =
@@ -202,10 +202,11 @@ const struct SpriteTemplate gSpriteTemplate_83BF514 =
.anims = gSpriteAnimTable_83BF4F4,
.images = NULL,
.affineAnims = gSpriteAffineAnimTable_83BF510,
- .callback = sub_80A8A6C,
+ .callback = sub_8076ED8,
};
-static const u32 gUnknown_83BF52C = _("TASK OVER\nタスクがオーバーしました$");
+const u8 gUnknown_83BF52C[] = _("TASK OVER\n");
+const u8 gUnknown_83BF536[] = {0x60, 0x5D, 0x58, 0x37, 0x55, 0xAE, 0x96, 0xAE, 0x0C, 0x1F, 0x0C, 0x10, 0xFF}; //
static const struct Subsprite gSubsprites_83BF544[] =
{
@@ -510,8 +511,8 @@ void AnimTask_StatsChange(u8 taskId)
gBattleAnimArgs[2] = 0;
gBattleAnimArgs[3] = 0;
gBattleAnimArgs[4] = sharply;
- gTasks[taskId].func = sub_8116EB4;
- sub_8116EB4(taskId);
+ gTasks[taskId].func = sub_80BB088;
+ sub_80BB088(taskId);
}
#undef CASE