diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/battle_anim_effects_1.c | 7 | ||||
-rw-r--r-- | src/battle_anim_effects_2.c | 5 | ||||
-rw-r--r-- | src/battle_anim_effects_3.c | 261 | ||||
-rw-r--r-- | src/battle_anim_special.c | 69 | ||||
-rw-r--r-- | src/battle_anim_status_effects.c | 25 |
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 |