diff options
Diffstat (limited to 'src')
74 files changed, 5032 insertions, 5854 deletions
diff --git a/src/anim_mon_front_pics.c b/src/anim_mon_front_pics.c index d764e10ac..e36cf3492 100644 --- a/src/anim_mon_front_pics.c +++ b/src/anim_mon_front_pics.c @@ -1,6 +1,6 @@ #include "global.h" -const u32 gMonFrontPic_CircledQuestionMark[] = INCBIN_U32("graphics/pokemon/circled_question_mark/anim_front.4bpp.lz"); +const u32 gMonFrontPic_CircledQuestionMark[] = INCBIN_U32("graphics/pokemon/question_mark/circled/anim_front.4bpp.lz"); const u32 gMonFrontPic_Bulbasaur[] = INCBIN_U32("graphics/pokemon/bulbasaur/anim_front.4bpp.lz"); const u32 gMonFrontPic_Ivysaur[] = INCBIN_U32("graphics/pokemon/ivysaur/anim_front.4bpp.lz"); @@ -203,7 +203,7 @@ const u32 gMonFrontPic_Umbreon[] = INCBIN_U32("graphics/pokemon/umbreon/anim_fro const u32 gMonFrontPic_Murkrow[] = INCBIN_U32("graphics/pokemon/murkrow/anim_front.4bpp.lz"); const u32 gMonFrontPic_Slowking[] = INCBIN_U32("graphics/pokemon/slowking/anim_front.4bpp.lz"); const u32 gMonFrontPic_Misdreavus[] = INCBIN_U32("graphics/pokemon/misdreavus/anim_front.4bpp.lz"); -const u32 gMonFrontPic_UnownA[] = INCBIN_U32("graphics/pokemon/unown/anim_front_a.4bpp.lz"); +const u32 gMonFrontPic_UnownA[] = INCBIN_U32("graphics/pokemon/unown/a/anim_front.4bpp.lz"); const u32 gMonFrontPic_Wobbuffet[] = INCBIN_U32("graphics/pokemon/wobbuffet/anim_front.4bpp.lz"); const u32 gMonFrontPic_Girafarig[] = INCBIN_U32("graphics/pokemon/girafarig/anim_front.4bpp.lz"); const u32 gMonFrontPic_Pineco[] = INCBIN_U32("graphics/pokemon/pineco/anim_front.4bpp.lz"); @@ -255,7 +255,7 @@ const u32 gMonFrontPic_Lugia[] = INCBIN_U32("graphics/pokemon/lugia/anim_front.4 const u32 gMonFrontPic_HoOh[] = INCBIN_U32("graphics/pokemon/ho_oh/anim_front.4bpp.lz"); const u32 gMonFrontPic_Celebi[] = INCBIN_U32("graphics/pokemon/celebi/anim_front.4bpp.lz"); -const u32 gMonFrontPic_DoubleQuestionMark[] = INCBIN_U32("graphics/pokemon/double_question_mark/anim_front.4bpp.lz"); +const u32 gMonFrontPic_DoubleQuestionMark[] = INCBIN_U32("graphics/pokemon/question_mark/double/anim_front.4bpp.lz"); const u32 gMonFrontPic_Treecko[] = INCBIN_U32("graphics/pokemon/treecko/anim_front.4bpp.lz"); const u32 gMonFrontPic_Grovyle[] = INCBIN_U32("graphics/pokemon/grovyle/anim_front.4bpp.lz"); @@ -395,30 +395,30 @@ const u32 gMonFrontPic_Chimecho[] = INCBIN_U32("graphics/pokemon/chimecho/anim_f const u32 gMonFrontPic_Egg[] = INCBIN_U32("graphics/pokemon/egg/anim_front.4bpp.lz"); -const u32 gMonFrontPic_UnownB[] = INCBIN_U32("graphics/pokemon/unown/anim_front_b.4bpp.lz"); -const u32 gMonFrontPic_UnownC[] = INCBIN_U32("graphics/pokemon/unown/anim_front_c.4bpp.lz"); -const u32 gMonFrontPic_UnownD[] = INCBIN_U32("graphics/pokemon/unown/anim_front_d.4bpp.lz"); -const u32 gMonFrontPic_UnownE[] = INCBIN_U32("graphics/pokemon/unown/anim_front_e.4bpp.lz"); -const u32 gMonFrontPic_UnownF[] = INCBIN_U32("graphics/pokemon/unown/anim_front_f.4bpp.lz"); -const u32 gMonFrontPic_UnownG[] = INCBIN_U32("graphics/pokemon/unown/anim_front_g.4bpp.lz"); -const u32 gMonFrontPic_UnownH[] = INCBIN_U32("graphics/pokemon/unown/anim_front_h.4bpp.lz"); -const u32 gMonFrontPic_UnownI[] = INCBIN_U32("graphics/pokemon/unown/anim_front_i.4bpp.lz"); -const u32 gMonFrontPic_UnownJ[] = INCBIN_U32("graphics/pokemon/unown/anim_front_j.4bpp.lz"); -const u32 gMonFrontPic_UnownK[] = INCBIN_U32("graphics/pokemon/unown/anim_front_k.4bpp.lz"); -const u32 gMonFrontPic_UnownL[] = INCBIN_U32("graphics/pokemon/unown/anim_front_l.4bpp.lz"); -const u32 gMonFrontPic_UnownM[] = INCBIN_U32("graphics/pokemon/unown/anim_front_m.4bpp.lz"); -const u32 gMonFrontPic_UnownN[] = INCBIN_U32("graphics/pokemon/unown/anim_front_n.4bpp.lz"); -const u32 gMonFrontPic_UnownO[] = INCBIN_U32("graphics/pokemon/unown/anim_front_o.4bpp.lz"); -const u32 gMonFrontPic_UnownP[] = INCBIN_U32("graphics/pokemon/unown/anim_front_p.4bpp.lz"); -const u32 gMonFrontPic_UnownQ[] = INCBIN_U32("graphics/pokemon/unown/anim_front_q.4bpp.lz"); -const u32 gMonFrontPic_UnownR[] = INCBIN_U32("graphics/pokemon/unown/anim_front_r.4bpp.lz"); -const u32 gMonFrontPic_UnownS[] = INCBIN_U32("graphics/pokemon/unown/anim_front_s.4bpp.lz"); -const u32 gMonFrontPic_UnownT[] = INCBIN_U32("graphics/pokemon/unown/anim_front_t.4bpp.lz"); -const u32 gMonFrontPic_UnownU[] = INCBIN_U32("graphics/pokemon/unown/anim_front_u.4bpp.lz"); -const u32 gMonFrontPic_UnownV[] = INCBIN_U32("graphics/pokemon/unown/anim_front_v.4bpp.lz"); -const u32 gMonFrontPic_UnownW[] = INCBIN_U32("graphics/pokemon/unown/anim_front_w.4bpp.lz"); -const u32 gMonFrontPic_UnownX[] = INCBIN_U32("graphics/pokemon/unown/anim_front_x.4bpp.lz"); -const u32 gMonFrontPic_UnownY[] = INCBIN_U32("graphics/pokemon/unown/anim_front_y.4bpp.lz"); -const u32 gMonFrontPic_UnownZ[] = INCBIN_U32("graphics/pokemon/unown/anim_front_z.4bpp.lz"); -const u32 gMonFrontPic_UnownExclamationMark[] = INCBIN_U32("graphics/pokemon/unown/anim_front_exclamation_mark.4bpp.lz"); -const u32 gMonFrontPic_UnownQuestionMark[] = INCBIN_U32("graphics/pokemon/unown/anim_front_question_mark.4bpp.lz"); +const u32 gMonFrontPic_UnownB[] = INCBIN_U32("graphics/pokemon/unown/b/anim_front.4bpp.lz"); +const u32 gMonFrontPic_UnownC[] = INCBIN_U32("graphics/pokemon/unown/c/anim_front.4bpp.lz"); +const u32 gMonFrontPic_UnownD[] = INCBIN_U32("graphics/pokemon/unown/d/anim_front.4bpp.lz"); +const u32 gMonFrontPic_UnownE[] = INCBIN_U32("graphics/pokemon/unown/e/anim_front.4bpp.lz"); +const u32 gMonFrontPic_UnownF[] = INCBIN_U32("graphics/pokemon/unown/f/anim_front.4bpp.lz"); +const u32 gMonFrontPic_UnownG[] = INCBIN_U32("graphics/pokemon/unown/g/anim_front.4bpp.lz"); +const u32 gMonFrontPic_UnownH[] = INCBIN_U32("graphics/pokemon/unown/h/anim_front.4bpp.lz"); +const u32 gMonFrontPic_UnownI[] = INCBIN_U32("graphics/pokemon/unown/i/anim_front.4bpp.lz"); +const u32 gMonFrontPic_UnownJ[] = INCBIN_U32("graphics/pokemon/unown/j/anim_front.4bpp.lz"); +const u32 gMonFrontPic_UnownK[] = INCBIN_U32("graphics/pokemon/unown/k/anim_front.4bpp.lz"); +const u32 gMonFrontPic_UnownL[] = INCBIN_U32("graphics/pokemon/unown/l/anim_front.4bpp.lz"); +const u32 gMonFrontPic_UnownM[] = INCBIN_U32("graphics/pokemon/unown/m/anim_front.4bpp.lz"); +const u32 gMonFrontPic_UnownN[] = INCBIN_U32("graphics/pokemon/unown/n/anim_front.4bpp.lz"); +const u32 gMonFrontPic_UnownO[] = INCBIN_U32("graphics/pokemon/unown/o/anim_front.4bpp.lz"); +const u32 gMonFrontPic_UnownP[] = INCBIN_U32("graphics/pokemon/unown/p/anim_front.4bpp.lz"); +const u32 gMonFrontPic_UnownQ[] = INCBIN_U32("graphics/pokemon/unown/q/anim_front.4bpp.lz"); +const u32 gMonFrontPic_UnownR[] = INCBIN_U32("graphics/pokemon/unown/r/anim_front.4bpp.lz"); +const u32 gMonFrontPic_UnownS[] = INCBIN_U32("graphics/pokemon/unown/s/anim_front.4bpp.lz"); +const u32 gMonFrontPic_UnownT[] = INCBIN_U32("graphics/pokemon/unown/t/anim_front.4bpp.lz"); +const u32 gMonFrontPic_UnownU[] = INCBIN_U32("graphics/pokemon/unown/u/anim_front.4bpp.lz"); +const u32 gMonFrontPic_UnownV[] = INCBIN_U32("graphics/pokemon/unown/v/anim_front.4bpp.lz"); +const u32 gMonFrontPic_UnownW[] = INCBIN_U32("graphics/pokemon/unown/w/anim_front.4bpp.lz"); +const u32 gMonFrontPic_UnownX[] = INCBIN_U32("graphics/pokemon/unown/x/anim_front.4bpp.lz"); +const u32 gMonFrontPic_UnownY[] = INCBIN_U32("graphics/pokemon/unown/y/anim_front.4bpp.lz"); +const u32 gMonFrontPic_UnownZ[] = INCBIN_U32("graphics/pokemon/unown/z/anim_front.4bpp.lz"); +const u32 gMonFrontPic_UnownExclamationMark[] = INCBIN_U32("graphics/pokemon/unown/exclamation_mark/anim_front.4bpp.lz"); +const u32 gMonFrontPic_UnownQuestionMark[] = INCBIN_U32("graphics/pokemon/unown/question_mark/anim_front.4bpp.lz"); diff --git a/src/battle_anim.c b/src/battle_anim.c index becc12d56..32a917cb4 100644 --- a/src/battle_anim.c +++ b/src/battle_anim.c @@ -112,7 +112,7 @@ EWRAM_DATA static u16 sAnimMoveIndex = 0; // Set but unused. EWRAM_DATA u8 gBattleAnimAttacker = 0; EWRAM_DATA u8 gBattleAnimTarget = 0; EWRAM_DATA u16 gAnimBattlerSpecies[MAX_BATTLERS_COUNT] = {0}; -EWRAM_DATA u8 gUnknown_02038440 = 0; +EWRAM_DATA u8 gAnimCustomPanning = 0; const struct OamData gOamData_AffineOff_ObjNormal_8x8 = { @@ -1821,7 +1821,7 @@ void ClearBattleAnimationVars(void) sAnimMoveIndex = 0; gBattleAnimAttacker = 0; gBattleAnimTarget = 0; - gUnknown_02038440 = 0; + gAnimCustomPanning = 0; } void DoMoveAnim(u16 move) @@ -2715,7 +2715,8 @@ static void ScriptCmd_goto(void) sBattleAnimScriptPtr = T2_READ_PTR(sBattleAnimScriptPtr); } -// Uses of this function that rely on a TRUE return are expecting inBattle to not be ticked as defined in contest behavior. As a result, if misused, this function cannot reliably discern between field and contest status and could result in undefined behavior. +// Uses of this function that rely on a TRUE return are expecting inBattle to not be ticked as defined in contest behavior. +// As a result, if misused, this function cannot reliably discern between field and contest status and could result in undefined behavior. bool8 IsContest(void) { if (!gMain.inBattle) diff --git a/src/bug.c b/src/battle_anim_bug.c index 207000fb8..ea3df8098 100644 --- a/src/bug.c +++ b/src/battle_anim_bug.c @@ -4,90 +4,90 @@ #include "trig.h" #include "constants/rgb.h" -void sub_8110368(struct Sprite *); -void sub_8110438(struct Sprite *); -void AnimTranslateWebThread(struct Sprite *); -void sub_81105B4(struct Sprite *); -void sub_811067C(struct Sprite *); -void AnimTranslateStinger(struct Sprite *); -void AnimMissileArc(struct Sprite *); -void sub_8110994(struct Sprite *); -static void sub_811057C(struct Sprite *); -static void sub_8110630(struct Sprite *); -static void sub_81106A4(struct Sprite *); -static void sub_8110700(struct Sprite *); -static void AnimMissileArcStep(struct Sprite *); - -const union AffineAnimCmd gUnknown_08596938[] = +static void AnimMegahornHorn(struct Sprite *); +static void AnimLeechLifeNeedle(struct Sprite *); +static void AnimTranslateWebThread(struct Sprite *); +static void AnimTranslateWebThread_Step(struct Sprite *); +static void AnimStringWrap(struct Sprite *); +static void AnimStringWrap_Step(struct Sprite *); +static void AnimSpiderWeb(struct Sprite *); +static void AnimSpiderWeb_Step(struct Sprite *); +static void AnimSpiderWeb_End(struct Sprite *); +static void AnimTranslateStinger(struct Sprite *); +static void AnimMissileArc(struct Sprite *); +static void AnimMissileArc_Step(struct Sprite *); +static void AnimTailGlowOrb(struct Sprite *); + +static const union AffineAnimCmd sAffineAnim_MegahornHorn_0[] = { AFFINEANIMCMD_FRAME(0x100, 0x100, 30, 0), AFFINEANIMCMD_END, }; -const union AffineAnimCmd gUnknown_08596948[] = +static const union AffineAnimCmd sAffineAnim_MegahornHorn_1[] = { AFFINEANIMCMD_FRAME(0x100, 0x100, -99, 0), AFFINEANIMCMD_END, }; -const union AffineAnimCmd gUnknown_08596958[] = +static const union AffineAnimCmd sAffineAnim_MegahornHorn_2[] = { AFFINEANIMCMD_FRAME(0x100, 0x100, 94, 0), AFFINEANIMCMD_END, }; -const union AffineAnimCmd *const gUnknown_08596968[] = +static const union AffineAnimCmd *const sAffineAnims_MegahornHorn[] = { - gUnknown_08596938, - gUnknown_08596948, - gUnknown_08596958, + sAffineAnim_MegahornHorn_0, + sAffineAnim_MegahornHorn_1, + sAffineAnim_MegahornHorn_2, }; -const struct SpriteTemplate gUnknown_08596974 = +const struct SpriteTemplate gMegahornHornSpriteTemplate = { .tileTag = ANIM_TAG_HORN_HIT_2, .paletteTag = ANIM_TAG_HORN_HIT_2, .oam = &gOamData_AffineDouble_ObjNormal_32x16, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_08596968, - .callback = sub_8110368, + .affineAnims = sAffineAnims_MegahornHorn, + .callback = AnimMegahornHorn, }; -const union AffineAnimCmd gUnknown_0859698C[] = +static const union AffineAnimCmd sAffineAnim_LeechLifeNeedle_0[] = { AFFINEANIMCMD_FRAME(0x0, 0x0, -33, 1), AFFINEANIMCMD_END, }; -const union AffineAnimCmd gUnknown_0859699C[] = +static const union AffineAnimCmd sAffineAnim_LeechLifeNeedle_1[] = { AFFINEANIMCMD_FRAME(0x0, 0x0, 96, 1), AFFINEANIMCMD_END, }; -const union AffineAnimCmd gUnknown_085969AC[] = +static const union AffineAnimCmd sAffineAnim_LeechLifeNeedle_2[] = { AFFINEANIMCMD_FRAME(0x0, 0x0, -96, 1), AFFINEANIMCMD_END, }; -const union AffineAnimCmd *const gUnknown_085969BC[] = +static const union AffineAnimCmd *const sAffineAnims_LeechLifeNeedle[] = { - gUnknown_0859698C, - gUnknown_0859699C, - gUnknown_085969AC, + sAffineAnim_LeechLifeNeedle_0, + sAffineAnim_LeechLifeNeedle_1, + sAffineAnim_LeechLifeNeedle_2, }; -const struct SpriteTemplate gUnknown_085969C8 = +const struct SpriteTemplate gLeechLifeNeedleSpriteTemplate = { .tileTag = ANIM_TAG_NEEDLE, .paletteTag = ANIM_TAG_NEEDLE, .oam = &gOamData_AffineNormal_ObjNormal_16x16, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_085969BC, - .callback = sub_8110438, + .affineAnims = sAffineAnims_LeechLifeNeedle, + .callback = AnimLeechLifeNeedle, }; const struct SpriteTemplate gWebThreadSpriteTemplate = @@ -101,7 +101,7 @@ const struct SpriteTemplate gWebThreadSpriteTemplate = .callback = AnimTranslateWebThread, }; -const struct SpriteTemplate gUnknown_085969F8 = +const struct SpriteTemplate gStringWrapSpriteTemplate = { .tileTag = ANIM_TAG_STRING, .paletteTag = ANIM_TAG_STRING, @@ -109,19 +109,19 @@ const struct SpriteTemplate gUnknown_085969F8 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_81105B4, + .callback = AnimStringWrap, }; -const union AffineAnimCmd gUnknown_08596A10[] = +static const union AffineAnimCmd sAffineAnim_SpiderWeb[] = { AFFINEANIMCMD_FRAME(0x10, 0x10, 0, 0), AFFINEANIMCMD_FRAME(0x6, 0x6, 0, 1), AFFINEANIMCMD_JUMP(1), }; -const union AffineAnimCmd *const gUnknown_08596A28[] = +static const union AffineAnimCmd *const sAffineAnims_SpiderWeb[] = { - gUnknown_08596A10, + sAffineAnim_SpiderWeb, }; const struct SpriteTemplate gSpiderWebSpriteTemplate = @@ -131,8 +131,8 @@ const struct SpriteTemplate gSpiderWebSpriteTemplate = .oam = &gOamData_AffineDouble_ObjBlend_64x64, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_08596A28, - .callback = sub_811067C, + .affineAnims = sAffineAnims_SpiderWeb, + .callback = AnimSpiderWeb, }; const struct SpriteTemplate gLinearStingerSpriteTemplate = @@ -168,7 +168,7 @@ const struct SpriteTemplate gIcicleSpearSpriteTemplate = .callback = AnimMissileArc, }; -const union AffineAnimCmd gUnknown_08596A8C[] = +static const union AffineAnimCmd sAffineAnim_TailGlowOrb[] = { AFFINEANIMCMD_FRAME(0x10, 0x10, 0, 0), AFFINEANIMCMD_FRAME(0x8, 0x8, 0, 18), @@ -179,23 +179,23 @@ const union AffineAnimCmd gUnknown_08596A8C[] = AFFINEANIMCMD_END, }; -const union AffineAnimCmd *const gUnknown_08596AC4[] = +static const union AffineAnimCmd *const sAffineAnims_TailGlowOrb[] = { - gUnknown_08596A8C, + sAffineAnim_TailGlowOrb, }; -const struct SpriteTemplate gUnknown_08596AC8 = +const struct SpriteTemplate gTailGlowOrbSpriteTemplate = { .tileTag = ANIM_TAG_CIRCLE_OF_LIGHT, .paletteTag = ANIM_TAG_CIRCLE_OF_LIGHT, .oam = &gOamData_AffineNormal_ObjBlend_64x64, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_08596AC4, - .callback = sub_8110994, + .affineAnims = sAffineAnims_TailGlowOrb, + .callback = AnimTailGlowOrb, }; -void sub_8110368(struct Sprite *sprite) +static void AnimMegahornHorn(struct Sprite *sprite) { if (IsContest()) { @@ -223,7 +223,7 @@ void sub_8110368(struct Sprite *sprite) StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); } -void sub_8110438(struct Sprite *sprite) +static void AnimLeechLifeNeedle(struct Sprite *sprite) { if (IsContest()) { @@ -254,7 +254,7 @@ void sub_8110438(struct Sprite *sprite) // arg 2: controls the left-to-right movement // arg 3: amplitude // arg 4: if targets both opponents -void AnimTranslateWebThread(struct Sprite *sprite) +static void AnimTranslateWebThread(struct Sprite *sprite) { if (IsContest()) gBattleAnimArgs[2] /= 2; @@ -276,10 +276,10 @@ void AnimTranslateWebThread(struct Sprite *sprite) sub_80A6FD4(sprite); sprite->data[5] = gBattleAnimArgs[3]; - sprite->callback = sub_811057C; + sprite->callback = AnimTranslateWebThread_Step; } -static void sub_811057C(struct Sprite *sprite) +static void AnimTranslateWebThread_Step(struct Sprite *sprite) { if (AnimTranslateLinear(sprite)) { @@ -291,7 +291,8 @@ static void sub_811057C(struct Sprite *sprite) sprite->data[6] = (sprite->data[6] + 13) & 0xFF; } -void sub_81105B4(struct Sprite *sprite) +// Second stage of String Shot +static void AnimStringWrap(struct Sprite *sprite) { SetAverageBattlerPositions(gBattleAnimTarget, 0, &sprite->pos1.x, &sprite->pos1.y); if (GetBattlerSide(gBattleAnimAttacker)) @@ -303,10 +304,10 @@ void sub_81105B4(struct Sprite *sprite) if (!GetBattlerSide(gBattleAnimTarget)) sprite->pos1.y += 8; - sprite->callback = sub_8110630; + sprite->callback = AnimStringWrap_Step; } -static void sub_8110630(struct Sprite *sprite) +static void AnimStringWrap_Step(struct Sprite *sprite) { if (++sprite->data[0] == 3) { @@ -320,16 +321,16 @@ static void sub_8110630(struct Sprite *sprite) } } -void sub_811067C(struct Sprite *sprite) +static void AnimSpiderWeb(struct Sprite *sprite) { SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND); SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(16, 0)); sprite->data[0] = 16; - sprite->callback = sub_81106A4; + sprite->callback = AnimSpiderWeb_Step; } -static void sub_81106A4(struct Sprite *sprite) +static void AnimSpiderWeb_Step(struct Sprite *sprite) { if (sprite->data[2] < 20) { @@ -343,12 +344,12 @@ static void sub_81106A4(struct Sprite *sprite) if (sprite->data[0] == 0) { sprite->invisible = TRUE; - sprite->callback = sub_8110700; + sprite->callback = AnimSpiderWeb_End; } } } -static void sub_8110700(struct Sprite *sprite) +static void AnimSpiderWeb_End(struct Sprite *sprite) { SetGpuReg(REG_OFFSET_BLDCNT, 0); SetGpuReg(REG_OFFSET_BLDALPHA, 0); @@ -362,7 +363,7 @@ static void sub_8110700(struct Sprite *sprite) // arg 2: target x pixel offset // arg 3: target y pixel offset // arg 4: duration -void AnimTranslateStinger(struct Sprite *sprite) +static void AnimTranslateStinger(struct Sprite *sprite) { s16 lVarX, lVarY; u16 rot; @@ -419,7 +420,7 @@ void AnimTranslateStinger(struct Sprite *sprite) // arg 3: target y pixel offset // arg 4: duration // arg 5: wave amplitude -void AnimMissileArc(struct Sprite *sprite) +static void AnimMissileArc(struct Sprite *sprite) { InitSpritePosToAnimAttacker(sprite, 1); @@ -432,11 +433,11 @@ void AnimMissileArc(struct Sprite *sprite) sprite->data[5] = gBattleAnimArgs[5]; InitAnimArcTranslation(sprite); - sprite->callback = AnimMissileArcStep; + sprite->callback = AnimMissileArc_Step; sprite->invisible = TRUE; } -static void AnimMissileArcStep(struct Sprite *sprite) +static void AnimMissileArc_Step(struct Sprite *sprite) { sprite->invisible = FALSE; @@ -473,9 +474,9 @@ static void AnimMissileArcStep(struct Sprite *sprite) } } -void sub_8110994(struct Sprite *sprite) +static void AnimTailGlowOrb(struct Sprite *sprite) { - if (gBattleAnimArgs[0] == 0) + if (gBattleAnimArgs[0] == ANIM_ATTACKER) { sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3) + 18; diff --git a/src/dark.c b/src/battle_anim_dark.c index 63a893b67..dc3e8c83c 100644 --- a/src/dark.c +++ b/src/battle_anim_dark.c @@ -9,22 +9,23 @@ #include "util.h" #include "constants/rgb.h" -void sub_81138D4(struct Sprite *); -void sub_81139DC(struct Sprite *); -void sub_8113A90(struct Sprite *); -void sub_81144BC(struct Sprite *); -static void sub_811375C(u8); -static void sub_811381C(u8); +static void sub_81138D4(struct Sprite *); +static void AnimBite(struct Sprite *); +static void AnimTearDrop(struct Sprite *); +static void AnimClawSlash(struct Sprite *); +static void AnimTask_AttackerFadeToInvisible_Step(u8); +static void AnimTask_AttackerFadeFromInvisible_Step(u8); static void sub_8113950(struct Sprite *); -static void sub_8113A18(struct Sprite *); -static void sub_8113A58(struct Sprite *); -static void sub_8113B90(struct Sprite *); -static void sub_8113D60(u8); -static void sub_81140C8(u8); +static void AnimBite_Step1(struct Sprite *); +static void AnimBite_Step2(struct Sprite *); +static void AnimTearDrop_Step(struct Sprite *); +static void AnimTask_MoveAttackerMementoShadow_Step(u8); +static void AnimTask_MoveTargetMementoShadow_Step(u8); static void sub_8114244(struct Task *); static void sub_8114374(u8); -static void sub_8114748(u8); +static void AnimTask_MetallicShine_Step(u8); +// Unused const struct SpriteTemplate gUnknown_08596FC8 = { .tileTag = ANIM_TAG_TIED_BAG, @@ -36,120 +37,120 @@ const struct SpriteTemplate gUnknown_08596FC8 = .callback = sub_81138D4, }; -const union AffineAnimCmd gUnknown_08596FE0[] = +static const union AffineAnimCmd sAffineAnim_Bite_0[] = { AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 1), AFFINEANIMCMD_END, }; -const union AffineAnimCmd gUnknown_08596FF0[] = +static const union AffineAnimCmd sAffineAnim_Bite_1[] = { AFFINEANIMCMD_FRAME(0x0, 0x0, 32, 1), AFFINEANIMCMD_END, }; -const union AffineAnimCmd gUnknown_08597000[] = +static const union AffineAnimCmd sAffineAnim_Bite_2[] = { AFFINEANIMCMD_FRAME(0x0, 0x0, 64, 1), AFFINEANIMCMD_END, }; -const union AffineAnimCmd gUnknown_08597010[] = +static const union AffineAnimCmd sAffineAnim_Bite_3[] = { AFFINEANIMCMD_FRAME(0x0, 0x0, 96, 1), AFFINEANIMCMD_END, }; -const union AffineAnimCmd gUnknown_08597020[] = +static const union AffineAnimCmd sAffineAnim_Bite_4[] = { AFFINEANIMCMD_FRAME(0x0, 0x0, -128, 1), AFFINEANIMCMD_END, }; -const union AffineAnimCmd gUnknown_08597030[] = +static const union AffineAnimCmd sAffineAnim_Bite_5[] = { AFFINEANIMCMD_FRAME(0x0, 0x0, -96, 1), AFFINEANIMCMD_END, }; -const union AffineAnimCmd gUnknown_08597040[] = +static const union AffineAnimCmd sAffineAnim_Bite_6[] = { AFFINEANIMCMD_FRAME(0x0, 0x0, -64, 1), AFFINEANIMCMD_END, }; -const union AffineAnimCmd gUnknown_08597050[] = +static const union AffineAnimCmd sAffineAnim_Bite_7[] = { AFFINEANIMCMD_FRAME(0x0, 0x0, -32, 1), AFFINEANIMCMD_END, }; -const union AffineAnimCmd *const gUnknown_08597060[] = +const union AffineAnimCmd *const gAffineAnims_Bite[] = { - gUnknown_08596FE0, - gUnknown_08596FF0, - gUnknown_08597000, - gUnknown_08597010, - gUnknown_08597020, - gUnknown_08597030, - gUnknown_08597040, - gUnknown_08597050, + sAffineAnim_Bite_0, + sAffineAnim_Bite_1, + sAffineAnim_Bite_2, + sAffineAnim_Bite_3, + sAffineAnim_Bite_4, + sAffineAnim_Bite_5, + sAffineAnim_Bite_6, + sAffineAnim_Bite_7, }; -const struct SpriteTemplate gUnknown_08597080 = +const struct SpriteTemplate gSharpTeethSpriteTemplate = { .tileTag = ANIM_TAG_SHARP_TEETH, .paletteTag = ANIM_TAG_SHARP_TEETH, .oam = &gOamData_AffineNormal_ObjBlend_64x64, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_08597060, - .callback = sub_81139DC, + .affineAnims = gAffineAnims_Bite, + .callback = AnimBite, }; -const struct SpriteTemplate gUnknown_08597098 = +const struct SpriteTemplate gClampJawSpriteTemplate = { .tileTag = ANIM_TAG_CLAMP, .paletteTag = ANIM_TAG_CLAMP, .oam = &gOamData_AffineNormal_ObjBlend_64x64, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_08597060, - .callback = sub_81139DC, + .affineAnims = gAffineAnims_Bite, + .callback = AnimBite, }; -const union AffineAnimCmd gUnknown_085970B0[] = +static const union AffineAnimCmd sAffineAnim_TearDrop_0[] = { AFFINEANIMCMD_FRAME(0xC0, 0xC0, 80, 0), AFFINEANIMCMD_FRAME(0x0, 0x0, -2, 8), AFFINEANIMCMD_END, }; -const union AffineAnimCmd gUnknown_085970C8[] = +static const union AffineAnimCmd sAffineAnim_TearDrop_1[] = { AFFINEANIMCMD_FRAME(0xC0, 0xC0, -80, 0), AFFINEANIMCMD_FRAME(0x0, 0x0, 2, 8), AFFINEANIMCMD_END, }; -const union AffineAnimCmd *const gUnknown_085970E0[] = +static const union AffineAnimCmd *const sAffineAnims_TearDrop[] = { - gUnknown_085970B0, - gUnknown_085970C8, + sAffineAnim_TearDrop_0, + sAffineAnim_TearDrop_1, }; -const struct SpriteTemplate gUnknown_085970E8 = +const struct SpriteTemplate gTearDropSpriteTemplate = { .tileTag = ANIM_TAG_SMALL_BUBBLES, .paletteTag = ANIM_TAG_SMALL_BUBBLES, .oam = &gOamData_AffineNormal_ObjNormal_16x16, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_085970E0, - .callback = sub_8113A90, + .affineAnims = sAffineAnims_TearDrop, + .callback = AnimTearDrop, }; -const union AnimCmd gUnknown_08597100[] = +static const union AnimCmd sAnim_ClawSlash_0[] = { ANIMCMD_FRAME(0, 4), ANIMCMD_FRAME(16, 4), @@ -159,7 +160,7 @@ const union AnimCmd gUnknown_08597100[] = ANIMCMD_END, }; -const union AnimCmd gUnknown_08597118[] = +static const union AnimCmd sAnim_ClawSlash_1[] = { ANIMCMD_FRAME(0, 4, .hFlip = TRUE), ANIMCMD_FRAME(16, 4, .hFlip = TRUE), @@ -169,24 +170,24 @@ const union AnimCmd gUnknown_08597118[] = ANIMCMD_END, }; -const union AnimCmd *const gUnknown_08597130[] = +static const union AnimCmd *const sAnims_ClawSlash[] = { - gUnknown_08597100, - gUnknown_08597118, + sAnim_ClawSlash_0, + sAnim_ClawSlash_1, }; -const struct SpriteTemplate gBattleAnimSpriteTemplate_8597138 = +const struct SpriteTemplate gClawSlashSpriteTemplate = { .tileTag = ANIM_TAG_CLAW_SLASH, .paletteTag = ANIM_TAG_CLAW_SLASH, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_08597130, + .anims = sAnims_ClawSlash, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_81144BC, + .callback = AnimClawSlash, }; -void sub_81136E8(u8 taskId) +void AnimTask_AttackerFadeToInvisible(u8 taskId) { int battler; gTasks[taskId].data[0] = gBattleAnimArgs[0]; @@ -198,10 +199,10 @@ void sub_81136E8(u8 taskId) else SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND | BLDCNT_TGT1_BG2); - gTasks[taskId].func = sub_811375C; + gTasks[taskId].func = AnimTask_AttackerFadeToInvisible_Step; } -static void sub_811375C(u8 taskId) +static void AnimTask_AttackerFadeToInvisible_Step(u8 taskId) { u8 blendA = gTasks[taskId].data[1] >> 8; u8 blendB = gTasks[taskId].data[1]; @@ -214,7 +215,7 @@ static void sub_811375C(u8 taskId) gTasks[taskId].data[2] = 0; if (blendA == 16) { - gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].invisible = 1; + gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].invisible = TRUE; DestroyAnimVisualTask(taskId); } } @@ -224,15 +225,15 @@ static void sub_811375C(u8 taskId) } } -void sub_81137E4(u8 taskId) +void AnimTask_AttackerFadeFromInvisible(u8 taskId) { gTasks[taskId].data[0] = gBattleAnimArgs[0]; gTasks[taskId].data[1] = BLDALPHA_BLEND(0, 16); - gTasks[taskId].func = sub_811381C; + gTasks[taskId].func = AnimTask_AttackerFadeFromInvisible_Step; SetGpuReg(REG_OFFSET_BLDALPHA, gTasks[taskId].data[1]); } -static void sub_811381C(u8 taskId) +static void AnimTask_AttackerFadeFromInvisible_Step(u8 taskId) { u8 blendA = gTasks[taskId].data[1] >> 8; u8 blendB = gTasks[taskId].data[1]; @@ -256,7 +257,7 @@ static void sub_811381C(u8 taskId) } } -void sub_8113888(u8 taskId) +void AnimTask_InitAttackerFadeFromInvisible(u8 taskId) { SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0, 16)); if (GetBattlerSpriteBGPriorityRank(gBattleAnimAttacker) == 1) @@ -267,7 +268,7 @@ void sub_8113888(u8 taskId) DestroyAnimVisualTask(taskId); } -void sub_81138D4(struct Sprite *sprite) +static void sub_81138D4(struct Sprite *sprite) { sprite->data[1] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); @@ -310,7 +311,8 @@ static void sub_8113950(struct Sprite *sprite) DestroyAnimSprite(sprite); } -void sub_81139DC(struct Sprite *sprite) +// Move sprite inward for Bite/Crunch and Clamp +static void AnimBite(struct Sprite *sprite) { sprite->pos1.x += gBattleAnimArgs[0]; sprite->pos1.y += gBattleAnimArgs[1]; @@ -318,20 +320,20 @@ void sub_81139DC(struct Sprite *sprite) sprite->data[0] = gBattleAnimArgs[3]; sprite->data[1] = gBattleAnimArgs[4]; sprite->data[2] = gBattleAnimArgs[5]; - sprite->callback = sub_8113A18; + sprite->callback = AnimBite_Step1; } -static void sub_8113A18(struct Sprite *sprite) +static void AnimBite_Step1(struct Sprite *sprite) { sprite->data[4] += sprite->data[0]; sprite->data[5] += sprite->data[1]; sprite->pos2.x = sprite->data[4] >> 8; sprite->pos2.y = sprite->data[5] >> 8; if (++sprite->data[3] == sprite->data[2]) - sprite->callback = sub_8113A58; + sprite->callback = AnimBite_Step2; } -static void sub_8113A58(struct Sprite *sprite) +static void AnimBite_Step2(struct Sprite *sprite) { sprite->data[4] -= sprite->data[0]; sprite->data[5] -= sprite->data[1]; @@ -341,12 +343,13 @@ static void sub_8113A58(struct Sprite *sprite) DestroySpriteAndMatrix(sprite); } -void sub_8113A90(struct Sprite *sprite) +// Launches a tear drop away from the battler. Used by Fake Tears +static void AnimTearDrop(struct Sprite *sprite) { u8 battler; s8 xOffset; - if (gBattleAnimArgs[0] == 0) + if (gBattleAnimArgs[0] == ANIM_ATTACKER) battler = gBattleAnimAttacker; else battler = gBattleAnimTarget; @@ -384,16 +387,16 @@ void sub_8113A90(struct Sprite *sprite) sprite->data[5] = -12; InitAnimArcTranslation(sprite); - sprite->callback = sub_8113B90; + sprite->callback = AnimTearDrop_Step; } -static void sub_8113B90(struct Sprite *sprite) +static void AnimTearDrop_Step(struct Sprite *sprite) { if (TranslateAnimHorizontalArc(sprite)) DestroySpriteAndMatrix(sprite); } -void sub_8113BAC(u8 taskId) +void AnimTask_MoveAttackerMementoShadow(u8 taskId) { struct ScanlineEffectParams scanlineParams; struct BattleAnimBgData animBg; @@ -461,10 +464,10 @@ void sub_8113BAC(u8 taskId) gBattle_WIN0H = (task->data[14] << 8) | task->data[15]; gBattle_WIN0V = 160; - task->func = sub_8113D60; + task->func = AnimTask_MoveAttackerMementoShadow_Step; } -static void sub_8113D60(u8 taskId) +static void AnimTask_MoveAttackerMementoShadow_Step(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -522,7 +525,7 @@ static void sub_8113D60(u8 taskId) } } -void sub_8113E78(u8 taskId) +void AnimTask_MoveTargetMementoShadow(u8 taskId) { struct BattleAnimBgData animBg; struct ScanlineEffectParams scanlineParams; @@ -625,12 +628,12 @@ void sub_8113E78(u8 taskId) task->data[1] = 0; task->data[2] = 0; SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(12, 8)); - task->func = sub_81140C8; + task->func = AnimTask_MoveTargetMementoShadow_Step; break; } } -static void sub_81140C8(u8 taskId) +static void AnimTask_MoveTargetMementoShadow_Step(u8 taskId) { u8 pos; u16 i; @@ -768,16 +771,16 @@ static void sub_8114374(u8 priority) } } -void sub_81143C0(u8 taskId) +void AnimTask_InitMementoShadow(u8 taskId) { u8 toBG2 = GetBattlerSpriteBGPriorityRank(gBattleAnimAttacker) ^ 1 ? 1 : 0; MoveBattlerSpriteToBG(gBattleAnimAttacker, toBG2, TRUE); - gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].invisible = 0; + gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].invisible = FALSE; if (IsBattlerSpriteVisible(BATTLE_PARTNER(gBattleAnimAttacker))) { MoveBattlerSpriteToBG(gBattleAnimAttacker ^ 2, toBG2 ^ 1, TRUE); - gSprites[gBattlerSpriteIds[gBattleAnimAttacker ^ 2]].invisible = 0; + gSprites[gBattlerSpriteIds[gBattleAnimAttacker ^ 2]].invisible = FALSE; } DestroyAnimVisualTask(taskId); @@ -794,7 +797,8 @@ void sub_8114470(u8 taskId) DestroyAnimVisualTask(taskId); } -void sub_81144BC(struct Sprite *sprite) +// Animates a deep slash from a claw. Used by Metal Claw, Dragon Claw, and Crush Claw +static void AnimClawSlash(struct Sprite *sprite) { sprite->pos1.x += gBattleAnimArgs[0]; sprite->pos1.y += gBattleAnimArgs[1]; @@ -877,10 +881,10 @@ void AnimTask_MetallicShine(u8 taskId) gTasks[taskId].data[2] = gBattleAnimArgs[1]; gTasks[taskId].data[3] = gBattleAnimArgs[2]; gTasks[taskId].data[6] = priorityChanged; - gTasks[taskId].func = sub_8114748; + gTasks[taskId].func = AnimTask_MetallicShine_Step; } -static void sub_8114748(u8 taskId) +static void AnimTask_MetallicShine_Step(u8 taskId) { struct BattleAnimBgData animBg; u16 paletteNum; @@ -898,7 +902,7 @@ static void sub_8114748(u8 taskId) spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER); paletteNum = 16 + gSprites[spriteId].oam.paletteNum; if (gTasks[taskId].data[1] == 0) - SetGreyscaleOrOriginalPalette(paletteNum, 1); + SetGreyscaleOrOriginalPalette(paletteNum, TRUE); DestroySprite(&gSprites[gTasks[taskId].data[0]]); sub_80A6B30(&animBg); @@ -925,7 +929,7 @@ static void sub_8114748(u8 taskId) // Changes battler's palette to either greyscale or original. // arg0: which battler -// arg1: 0 grayscale, 1 original +// arg1: FALSE grayscale, TRUE original void AnimTask_SetGreyscaleOrOriginalPal(u8 taskId) { u8 spriteId; @@ -935,10 +939,10 @@ void AnimTask_SetGreyscaleOrOriginalPal(u8 taskId) switch (gBattleAnimArgs[0]) { - case 0: - case 1: - case 2: - case 3: + case ANIM_ATTACKER: + case ANIM_TARGET: + case ANIM_ATK_PARTNER: + case ANIM_DEF_PARTNER: spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); break; case 4: @@ -977,13 +981,13 @@ void AnimTask_SetGreyscaleOrOriginalPal(u8 taskId) DestroyAnimVisualTask(taskId); } -void sub_8114960(u8 taskId) +void GetIsDoomDesireHitTurn(u8 taskId) { if (gAnimMoveTurn < 2) - gBattleAnimArgs[7] = 0; + gBattleAnimArgs[ARG_RET_ID] = FALSE; if (gAnimMoveTurn == 2) - gBattleAnimArgs[7] = 1; + gBattleAnimArgs[ARG_RET_ID] = TRUE; DestroyAnimVisualTask(taskId); } diff --git a/src/dragon.c b/src/battle_anim_dragon.c index fa91156d4..1d426cac7 100644 --- a/src/dragon.c +++ b/src/battle_anim_dragon.c @@ -5,19 +5,19 @@ #include "trig.h" #include "constants/rgb.h" -void sub_8113064(struct Sprite *); -void sub_81131B4(struct Sprite *); -void sub_8113224(struct Sprite *); -void sub_8113250(struct Sprite *); -void sub_81135EC(struct Sprite *); -static void sub_81132E0(struct Sprite *); -static void sub_81134B8(u8); +static void AnimOutrageFlame(struct Sprite *); +static void AnimDragonRageFirePlume(struct Sprite *); +static void AnimDragonFireToTarget(struct Sprite *); +static void AnimDragonDanceOrb(struct Sprite *); +static void AnimDragonDanceOrb_Step(struct Sprite *); +static void AnimOverheatFlame(struct Sprite *); +static void AnimOverheatFlame_Step(struct Sprite *); +static void AnimTask_DragonDanceWaver_Step(u8); static void sub_8113574(struct Task *); -static void sub_811369C(struct Sprite *); EWRAM_DATA static u16 gUnknown_0203A100[7] = {0}; -const union AnimCmd gUnknown_08596E60[] = +static const union AnimCmd gUnknown_08596E60[] = { ANIMCMD_FRAME(0, 4), ANIMCMD_FRAME(16, 4), @@ -27,12 +27,12 @@ const union AnimCmd gUnknown_08596E60[] = ANIMCMD_JUMP(0), }; -const union AnimCmd *const gUnknown_08596E78[] = +static const union AnimCmd *const gUnknown_08596E78[] = { gUnknown_08596E60, }; -const struct SpriteTemplate gBattleAnimSpriteTemplate_8596E7C = +const struct SpriteTemplate gOutrageFlameSpriteTemplate = { .tileTag = ANIM_TAG_SMALL_EMBER, .paletteTag = ANIM_TAG_SMALL_EMBER, @@ -40,10 +40,10 @@ const struct SpriteTemplate gBattleAnimSpriteTemplate_8596E7C = .anims = gUnknown_08596E78, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8113064, + .callback = AnimOutrageFlame, }; -const union AnimCmd gUnknown_08596E94[] = +static const union AnimCmd sAnim_DragonBreathFire_0[] = { ANIMCMD_FRAME(16, 3), ANIMCMD_FRAME(32, 3), @@ -51,7 +51,7 @@ const union AnimCmd gUnknown_08596E94[] = ANIMCMD_JUMP(0), }; -const union AnimCmd gUnknown_08596EA4[] = +static const union AnimCmd sAnim_DragonBreathFire_1[] = { ANIMCMD_FRAME(16, 3, .vFlip = TRUE, .hFlip = TRUE), ANIMCMD_FRAME(32, 3, .vFlip = TRUE, .hFlip = TRUE), @@ -59,44 +59,44 @@ const union AnimCmd gUnknown_08596EA4[] = ANIMCMD_JUMP(0), }; -const union AnimCmd *const gUnknown_08596EB4[] = +static const union AnimCmd *const sAnims_DragonBreathFire[] = { - gUnknown_08596E94, - gUnknown_08596EA4, + sAnim_DragonBreathFire_0, + sAnim_DragonBreathFire_1, }; -const union AffineAnimCmd gUnknown_08596EBC[] = +static const union AffineAnimCmd sAffineAnim_DragonBreathFire_0[] = { AFFINEANIMCMD_FRAME(0x50, 0x50, 127, 0), AFFINEANIMCMD_FRAME(0xD, 0xD, 0, 100), AFFINEANIMCMD_END, }; -const union AffineAnimCmd gUnknown_08596ED4[] = +static const union AffineAnimCmd sAffineAnim_DragonBreathFire_1[] = { AFFINEANIMCMD_FRAME(0x50, 0x50, 0, 0), AFFINEANIMCMD_FRAME(0xD, 0xD, 0, 100), AFFINEANIMCMD_END, }; -const union AffineAnimCmd *const gUnknown_08596EEC[] = +static const union AffineAnimCmd *const sAffineAnims_DragonBreathFire[] = { - gUnknown_08596EBC, - gUnknown_08596ED4, + sAffineAnim_DragonBreathFire_0, + sAffineAnim_DragonBreathFire_1, }; -const struct SpriteTemplate gUnknown_08596EF4 = +const struct SpriteTemplate gDragonBreathFireSpriteTemplate = { .tileTag = ANIM_TAG_SMALL_EMBER, .paletteTag = ANIM_TAG_SMALL_EMBER, .oam = &gOamData_AffineDouble_ObjNormal_32x32, - .anims = gUnknown_08596EB4, + .anims = sAnims_DragonBreathFire, .images = NULL, - .affineAnims = gUnknown_08596EEC, - .callback = sub_8113224, + .affineAnims = sAffineAnims_DragonBreathFire, + .callback = AnimDragonFireToTarget, }; -const union AnimCmd gUnknown_08596F0C[] = +static const union AnimCmd sAnim_DragonRageFirePlume[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_FRAME(16, 5), @@ -106,23 +106,23 @@ const union AnimCmd gUnknown_08596F0C[] = ANIMCMD_END, }; -const union AnimCmd *const gUnknown_08596F24[] = +static const union AnimCmd *const sAnims_DragonRageFirePlume[] = { - gUnknown_08596F0C, + sAnim_DragonRageFirePlume, }; -const struct SpriteTemplate gUnknown_08596F28 = +const struct SpriteTemplate gDragonRageFirePlumeSpriteTemplate = { .tileTag = ANIM_TAG_FIRE_PLUME, .paletteTag = ANIM_TAG_FIRE_PLUME, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_08596F24, + .anims = sAnims_DragonRageFirePlume, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_81131B4, + .callback = AnimDragonRageFirePlume, }; -const union AnimCmd gUnknown_08596F40[] = +static const union AnimCmd sAnim_DragonRageFire[] = { ANIMCMD_FRAME(16, 3), ANIMCMD_FRAME(32, 3), @@ -130,42 +130,42 @@ const union AnimCmd gUnknown_08596F40[] = ANIMCMD_JUMP(0), }; -const union AnimCmd *const gUnknown_08596F50[] = +static const union AnimCmd *const sAnims_DragonRageFire[] = { - gUnknown_08596F40, - gUnknown_08596F40, + sAnim_DragonRageFire, + sAnim_DragonRageFire, }; -const union AffineAnimCmd gUnknown_08596F58[] = +static const union AffineAnimCmd sAffineAnim_DragonRageFire_0[] = { AFFINEANIMCMD_FRAME(0x64, 0x64, 127, 1), AFFINEANIMCMD_END, }; -const union AffineAnimCmd gUnknown_08596F68[] = +static const union AffineAnimCmd sAffineAnim_DragonRageFire_1[] = { AFFINEANIMCMD_FRAME(0x64, 0x64, 0, 1), AFFINEANIMCMD_END, }; -const union AffineAnimCmd *const gUnknown_08596F78[] = +static const union AffineAnimCmd *const sAffineAnims_DragonRageFire[] = { - gUnknown_08596F58, - gUnknown_08596F68, + sAffineAnim_DragonRageFire_0, + sAffineAnim_DragonRageFire_1, }; -const struct SpriteTemplate gUnknown_08596F80 = +const struct SpriteTemplate gDragonRageFireSpitSpriteTemplate = { .tileTag = ANIM_TAG_SMALL_EMBER, .paletteTag = ANIM_TAG_SMALL_EMBER, .oam = &gOamData_AffineDouble_ObjNormal_32x32, - .anims = gUnknown_08596F50, + .anims = sAnims_DragonRageFire, .images = NULL, - .affineAnims = gUnknown_08596F78, - .callback = sub_8113224, + .affineAnims = sAffineAnims_DragonRageFire, + .callback = AnimDragonFireToTarget, }; -const struct SpriteTemplate gUnknown_08596F98 = +const struct SpriteTemplate gDragonDanceOrbSpriteTemplate = { .tileTag = ANIM_TAG_HOLLOW_ORB, .paletteTag = ANIM_TAG_HOLLOW_ORB, @@ -173,10 +173,10 @@ const struct SpriteTemplate gUnknown_08596F98 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8113250, + .callback = AnimDragonDanceOrb, }; -const struct SpriteTemplate gUnknown_08596FB0 = +const struct SpriteTemplate gOverheatFlameSpriteTemplate = { .tileTag = ANIM_TAG_SMALL_EMBER, .paletteTag = ANIM_TAG_SMALL_EMBER, @@ -184,10 +184,10 @@ const struct SpriteTemplate gUnknown_08596FB0 = .anims = gUnknown_08596E78, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_81135EC, + .callback = AnimOverheatFlame, }; -void sub_8113064(struct Sprite *sprite) +static void AnimOutrageFlame(struct Sprite *sprite) { sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); @@ -207,7 +207,7 @@ void sub_8113064(struct Sprite *sprite) sprite->data[1] = gBattleAnimArgs[3]; sprite->data[3] = gBattleAnimArgs[4]; sprite->data[5] = gBattleAnimArgs[5]; - sprite->invisible = 1; + sprite->invisible = TRUE; StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix); sprite->callback = TranslateSpriteLinearAndFlicker; } @@ -238,7 +238,7 @@ static void sub_8113100(struct Sprite *sprite) StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix); } -void sub_81131B4(struct Sprite *sprite) +static void AnimDragonRageFirePlume(struct Sprite *sprite) { if (gBattleAnimArgs[0] == 0) { @@ -257,7 +257,8 @@ void sub_81131B4(struct Sprite *sprite) StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix); } -void sub_8113224(struct Sprite *sprite) +// For Dragon Breath and Dragon Rage +static void AnimDragonFireToTarget(struct Sprite *sprite) { if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) StartSpriteAffineAnim(sprite, 1); @@ -265,7 +266,7 @@ void sub_8113224(struct Sprite *sprite) sub_8113100(sprite); } -void sub_8113250(struct Sprite *sprite) +static void AnimDragonDanceOrb(struct Sprite *sprite) { u16 r5; u16 r0; @@ -282,10 +283,10 @@ void sub_8113250(struct Sprite *sprite) sprite->data[7] = r0 / 2; sprite->pos2.x = Cos(sprite->data[6], sprite->data[7]); sprite->pos2.y = Sin(sprite->data[6], sprite->data[7]); - sprite->callback = sub_81132E0; + sprite->callback = AnimDragonDanceOrb_Step; } -static void sub_81132E0(struct Sprite *sprite) +static void AnimDragonDanceOrb_Step(struct Sprite *sprite) { switch (sprite->data[0]) { @@ -323,7 +324,9 @@ static void sub_81132E0(struct Sprite *sprite) } } -void sub_81133E8(u8 taskId) +// Wavers the attacker back and forth. Progressing vertical wave of scanline shifts +// Used by Dragon Dance +void AnimTask_DragonDanceWaver(u8 taskId) { struct ScanlineEffectParams sp; struct Task *task = &gTasks[taskId]; @@ -356,10 +359,10 @@ void sub_81133E8(u8 taskId) } ScanlineEffect_SetParams(sp); - task->func = sub_81134B8; + task->func = AnimTask_DragonDanceWaver_Step; } -static void sub_81134B8(u8 taskId) +static void AnimTask_DragonDanceWaver_Step(u8 taskId) { struct Task *task = &gTasks[taskId]; switch (task->data[0]) @@ -410,7 +413,7 @@ static void sub_8113574(struct Task *task) task->data[5] = (task->data[5] + 9) & 0xFF; } -void sub_81135EC(struct Sprite *sprite) +static void AnimOverheatFlame(struct Sprite *sprite) { int r6 = (gBattleAnimArgs[2] * 3) / 5; int i; @@ -421,12 +424,12 @@ void sub_81135EC(struct Sprite *sprite) sprite->pos1.x += sprite->data[1] * gBattleAnimArgs[0]; sprite->pos1.y += sprite->data[2] * gBattleAnimArgs[0]; sprite->data[3] = gBattleAnimArgs[3]; - sprite->callback = sub_811369C; + sprite->callback = AnimOverheatFlame_Step; for (i = 0; i < 7; i++) gUnknown_0203A100[i] = sprite->data[i]; } -static void sub_811369C(struct Sprite *sprite) +static void AnimOverheatFlame_Step(struct Sprite *sprite) { sprite->data[4] += sprite->data[1]; sprite->data[5] += sprite->data[2]; diff --git a/src/battle_anim_effects_1.c b/src/battle_anim_effects_1.c index 1efb29ecd..516c58e55 100644 --- a/src/battle_anim_effects_1.c +++ b/src/battle_anim_effects_1.c @@ -18,137 +18,139 @@ EWRAM_DATA s16 gUnknown_0203A0F8[4] = {0}; -void AnimMovePowderParticle(struct Sprite *); -void AnimPowerAbsorptionOrb(struct Sprite *); -void AnimSolarbeamBigOrb(struct Sprite *); -void AnimSolarbeamSmallOrb(struct Sprite *); -void AnimAbsorptionOrb(struct Sprite *); -void AnimHyperBeamOrb(struct Sprite *); -void AnimSporeParticle(struct Sprite *); -void AnimPetalDanceBigFlower(struct Sprite *); -void AnimPetalDanceSmallFlower(struct Sprite *); -void AnimRazorLeafParticle(struct Sprite *); -void AnimLeechSeed(struct Sprite *); -void AnimTranslateLinearSingleSineWave(struct Sprite *); -void AnimMoveTwisterParticle(struct Sprite *); -void AnimConstrictBinding(struct Sprite *); -void AnimMimicOrb(struct Sprite *); -void AnimIngrainRoot(struct Sprite *); -void AnimFrenzyPlantRoot(struct Sprite *); -void AnimIngrainOrb(struct Sprite *); -void AnimPresent(struct Sprite *); -void AnimKnockOffItem(struct Sprite *); -void AnimPresentHealParticle(struct Sprite *); -void AnimItemSteal(struct Sprite *); -void AnimTrickBag(struct Sprite *); -void AnimFlyingParticle(struct Sprite *); -void AnimNeedleArmSpike(struct Sprite *); -void sub_81009F8(struct Sprite *); -void AnimWhipHit(struct Sprite *); -void sub_8100A94(struct Sprite *); -void AnimCuttingSlice(struct Sprite *); -void AnimAirCutterSlice(struct Sprite *); -void sub_8100E1C(struct Sprite *); -void AnimProtect(struct Sprite *); -void AnimMilkBottle(struct Sprite *); -void AnimGrantingStars(struct Sprite *); -void AnimSparkingStars(struct Sprite *); -void sub_8101440(struct Sprite *); -void AnimSleepLetterZ(struct Sprite *); -void AnimLockOnTarget(struct Sprite *); -void AnimLockOnMoveTarget(struct Sprite *); -void AnimBowMon(struct Sprite *); -void sub_8101B90(struct Sprite *); -void AnimSlashSlice(struct Sprite *); -void AnimFalseSwipeSlice(struct Sprite *); -void AnimFalseSwipePositionedSlice(struct Sprite *); -void AnimEndureEnergy(struct Sprite *); -void AnimSharpenSphere(struct Sprite *); -void AnimConversion(struct Sprite *); -void AnimConversion2(struct Sprite *); -void AnimMoon(struct Sprite *); -void AnimMoonlightSparkle(struct Sprite *); -void AnimHornHit(struct Sprite *); -void AnimSuperFang(struct Sprite *); -void AnimWavyMusicNotes(struct Sprite *); -void AnimFlyingMusicNotes(struct Sprite *); -void AnimBellyDrumHand(struct Sprite *); -void AnimSlowFlyingMusicNotes(struct Sprite *); -void AnimThoughtBubble(struct Sprite *); -void AnimMetronomeFinger(struct Sprite *); -void AnimFollowMeFinger(struct Sprite *); -void AnimTauntFinger(struct Sprite *); -static void AnimMovePowderParticleStep(struct Sprite *); -static void AnimSolarbeamSmallOrbStep(struct Sprite *); -static void AnimAbsorptionOrbStep(struct Sprite *); -static void AnimHyperBeamOrbStep(struct Sprite *); -static void AnimLeechSeedStep(struct Sprite *); +static void AnimMovePowderParticle(struct Sprite *); +static void AnimMovePowderParticle_Step(struct Sprite *); +static void AnimPowerAbsorptionOrb(struct Sprite *); +static void AnimSolarbeamBigOrb(struct Sprite *); +static void AnimSolarbeamSmallOrb(struct Sprite *); +static void AnimSolarbeamSmallOrb_Step(struct Sprite *); +static void AnimAbsorptionOrb(struct Sprite *); +static void AnimAbsorptionOrb_Step(struct Sprite *); +static void AnimHyperBeamOrb(struct Sprite *); +static void AnimHyperBeamOrb_Step(struct Sprite *); +static void AnimSporeParticle(struct Sprite *); +static void AnimSporeParticle_Step(struct Sprite *); +static void AnimPetalDanceBigFlower(struct Sprite *); +static void AnimPetalDanceBigFlower_Step(struct Sprite *); +static void AnimPetalDanceSmallFlower(struct Sprite *); +static void AnimPetalDanceSmallFlower_Step(struct Sprite *); +static void AnimRazorLeafParticle(struct Sprite *); +static void AnimRazorLeafParticle_Step1(struct Sprite *); +static void AnimRazorLeafParticle_Step2(struct Sprite *); +static void AnimLeechSeed(struct Sprite *); +static void AnimLeechSeed_Step(struct Sprite *); static void AnimLeechSeedSprouts(struct Sprite *); -static void AnimSporeParticleStep(struct Sprite *); -static void AnimPetalDanceBigFlowerStep(struct Sprite *); -static void AnimPetalDanceSmallFlowerStep(struct Sprite *); -static void AnimRazorLeafParticleStep1(struct Sprite *); -static void AnimRazorLeafParticleStep2(struct Sprite *); -static void AnimTranslateLinearSingleSineWaveStep(struct Sprite *); -static void AnimMoveTwisterParticleStep(struct Sprite *); -static void AnimConstrictBindingStep1(struct Sprite *); -static void AnimConstrictBindingStep2(struct Sprite *); -static void AnimTask_DuplicateAndShrinkToPosStep1(u8); -static void AnimTask_DuplicateAndShrinkToPosStep2(u8); -static void AnimItemStealStep3(struct Sprite *); +static void AnimTranslateLinearSingleSineWave(struct Sprite *); +static void AnimTranslateLinearSingleSineWave_Step(struct Sprite *); +static void AnimConstrictBinding(struct Sprite *); +static void AnimConstrictBinding_Step1(struct Sprite *); +static void AnimConstrictBinding_Step2(struct Sprite *); +static void AnimMimicOrb(struct Sprite *); +static void AnimIngrainRoot(struct Sprite *); +static void AnimFrenzyPlantRoot(struct Sprite *); static void AnimRootFlickerOut(struct Sprite *); -static void AnimTrickBagStep1(struct Sprite *); -static void AnimTrickBagStep2(struct Sprite *); -static void AnimTrickBagStep3(struct Sprite *); -static void AnimTask_LeafBladeStep(u8); -static s16 LeafBladeGetPosFactor(struct Sprite *); -static void AnimTask_LeafBladeStep2(struct Task *, u8); -static void AnimTask_LeafBladeStep2_Callback(struct Sprite *); -static void AnimFlyingParticleStep(struct Sprite *); -static void AnimNeedleArmSpikeStep(struct Sprite *); -static void AnimSliceStep(struct Sprite *); +static void AnimIngrainOrb(struct Sprite *); +static void AnimPresent(struct Sprite *); +static void AnimKnockOffItem(struct Sprite *); +static void AnimPresentHealParticle(struct Sprite *); +static void AnimItemSteal(struct Sprite *); +static void AnimItemSteal_Step1(struct Sprite *); +static void AnimItemSteal_Step2(struct Sprite *); +static void AnimItemSteal_Step3(struct Sprite *); +static void AnimTrickBag(struct Sprite *); +static void AnimTrickBag_Step1(struct Sprite *); +static void AnimTrickBag_Step2(struct Sprite *); +static void AnimTrickBag_Step3(struct Sprite *); +static void AnimFlyingParticle(struct Sprite *); +static void AnimFlyingParticle_Step(struct Sprite *); +static void AnimNeedleArmSpike(struct Sprite *); +static void AnimNeedleArmSpike_Step(struct Sprite *); +static void sub_81009F8(struct Sprite *); +static void AnimWhipHit(struct Sprite *); +static void sub_8100A94(struct Sprite *); +static void AnimCuttingSlice(struct Sprite *); +static void AnimAirCutterSlice(struct Sprite *); +static void AnimSlice_Step(struct Sprite *); +static void sub_8100E1C(struct Sprite *); static void sub_8100E80(struct Sprite *); -static void AnimProtectStep(struct Sprite *); -static void AnimMilkBottleStep1(struct Sprite *); -static void AnimMilkBottleStep2(struct Sprite *, int, int); +static void AnimProtect(struct Sprite *); +static void AnimProtect_Step(struct Sprite *); +static void AnimMilkBottle(struct Sprite *); +static void AnimMilkBottle_Step1(struct Sprite *); +static void AnimMilkBottle_Step2(struct Sprite *, int, int); +static void AnimGrantingStars(struct Sprite *); +static void AnimSparkingStars(struct Sprite *); +static void sub_8101440(struct Sprite *); static void sub_81014A0(struct Sprite *); -static void AnimSleepLetterZStep(struct Sprite *); -static void AnimLockOnTargetStep1(struct Sprite *); -static void AnimLockOnTargetStep2(struct Sprite *); -static void AnimLockOnTargetStep3(struct Sprite *); -static void AnimLockOnTargetStep4(struct Sprite *); -static void AnimLockOnTargetStep5(struct Sprite *); -static void AnimLockOnTargetStep6(struct Sprite *); -static void AnimBowMonStep1(struct Sprite *); -static void AnimBowMonStep1_Callback(struct Sprite *); -static void AnimBowMonStep2(struct Sprite *); -static void AnimBowMonStep3(struct Sprite *); -static void AnimBowMonStep4(struct Sprite *); -static void AnimBowMonStep3_Callback(struct Sprite *); +static void AnimSleepLetterZ(struct Sprite *); +static void AnimSleepLetterZ_Step(struct Sprite *); +static void AnimLockOnTarget(struct Sprite *); +static void AnimLockOnTarget_Step1(struct Sprite *); +static void AnimLockOnTarget_Step2(struct Sprite *); +static void AnimLockOnTarget_Step3(struct Sprite *); +static void AnimLockOnTarget_Step4(struct Sprite *); +static void AnimLockOnTarget_Step5(struct Sprite *); +static void AnimLockOnTarget_Step6(struct Sprite *); +static void AnimLockOnMoveTarget(struct Sprite *); +static void AnimBowMon(struct Sprite *); +static void AnimBowMon_Step1(struct Sprite *); +static void AnimBowMon_Step1_Callback(struct Sprite *); +static void AnimBowMon_Step2(struct Sprite *); +static void AnimBowMon_Step3(struct Sprite *); +static void AnimBowMon_Step4(struct Sprite *); +static void AnimBowMon_Step3_Callback(struct Sprite *); +static void sub_8101B90(struct Sprite *); static void sub_8101BA0(struct Sprite *); +static void AnimSlashSlice(struct Sprite *); +static void AnimFalseSwipeSlice(struct Sprite *); +static void AnimFalseSwipeSlice_Step1(struct Sprite *); +static void AnimFalseSwipeSlice_Step2(struct Sprite *); +static void AnimFalseSwipeSlice_Step3(struct Sprite *); +static void AnimFalseSwipePositionedSlice(struct Sprite *); +static void AnimEndureEnergy(struct Sprite *); +static void AnimEndureEnergy_Step(struct Sprite *); +static void AnimSharpenSphere(struct Sprite *); +static void AnimSharpenSphere_Step(struct Sprite *); +static void AnimConversion(struct Sprite *); +static void AnimConversion2(struct Sprite *); +static void AnimConversion2_Step(struct Sprite *); +static void AnimMoon(struct Sprite *); +static void AnimMoon_Step(struct Sprite *); +static void AnimMoonlightSparkle(struct Sprite *); +static void AnimMoonlightSparkle_Step(struct Sprite *); +static void AnimHornHit(struct Sprite *); +static void AnimHornHit_Step(struct Sprite *); +static void AnimSuperFang(struct Sprite *); +static void AnimWavyMusicNotes(struct Sprite *); +static void AnimWavyMusicNotes_Step(struct Sprite *); +static void AnimWavyMusicNotesGetNextPos(s16, s16, s16 *, s16 *, s8); +static void AnimFlyingMusicNotes(struct Sprite *); +static void AnimFlyingMusicNotes_Step(struct Sprite *); +static void AnimBellyDrumHand(struct Sprite *); +static void AnimSlowFlyingMusicNotes(struct Sprite *); +static void AnimSlowFlyingMusicNotes_Step(struct Sprite *); +static void AnimThoughtBubble(struct Sprite *); +static void AnimThoughtBubble_Step(struct Sprite *); +static void AnimMetronomeFinger(struct Sprite *); +static void AnimMetronomeFinger_Step(struct Sprite *); +static void AnimFollowMeFinger(struct Sprite *); +static void AnimFollowMeFinger_Step1(struct Sprite *); +static void AnimFollowMeFinger_Step2(struct Sprite *); +static void AnimTauntFinger(struct Sprite *); +static void AnimTauntFinger_Step1(struct Sprite *); +static void AnimTauntFinger_Step2(struct Sprite *); +static void AnimMoveTwisterParticle_Step(struct Sprite *); +static void AnimTask_MoonlightEndFade_Step(u8 taskId); +static void AnimTask_LeafBlade_Step(u8); +static void AnimTask_DuplicateAndShrinkToPos_Step1(u8); +static void AnimTask_DuplicateAndShrinkToPos_Step2(u8); +static s16 LeafBladeGetPosFactor(struct Sprite *); +static void AnimTask_LeafBlade_Step2(struct Task *, u8); +static void AnimTask_LeafBlade_Step2_Callback(struct Sprite *); static void AnimTask_SkullBashPositionSet(u8); static void AnimTask_SkullBashPositionReset(u8); -static void AnimFalseSwipeSliceStep1(struct Sprite *); -static void AnimFalseSwipeSliceStep2(struct Sprite *); -static void AnimFalseSwipeSliceStep3(struct Sprite *); -static void AnimEndureEnergyStep(struct Sprite *); -static void AnimSharpenSphereStep(struct Sprite *); -static void AnimConversion2Step(struct Sprite *); -static void AnimMoonStep(struct Sprite *); -static void AnimMoonlightSparkleStep(struct Sprite *); -static void AnimHornHitStep(struct Sprite *); -static void AnimTask_DoubleTeamStep(u8); -static void AnimTask_DoubleTeamCallback(struct Sprite *); -static void AnimWavyMusicNotesGetNextPos(s16, s16, s16 *, s16 *, s8); -static void AnimWavyMusicNotesStep(struct Sprite *); -static void AnimFlyingMusicNotesStep(struct Sprite *); -static void AnimSlowFlyingMusicNotesStep(struct Sprite *); -static void AnimThoughtBubbleStep(struct Sprite *); -static void AnimMetronomeFingerStep(struct Sprite *); -static void AnimFollowMeFingerStep1(struct Sprite *); -static void AnimFollowMeFingerStep2(struct Sprite *); -static void AnimTauntFingerStep1(struct Sprite *); -static void AnimTauntFingerStep2(struct Sprite *); +static void AnimTask_DoubleTeam_Step(u8); +static void AnimDoubleTeam(struct Sprite *); const union AnimCmd gPowderParticlesAnimCmds[] = { @@ -513,7 +515,7 @@ const struct SpriteTemplate gRazorLeafParticleSpriteTemplate = .callback = AnimRazorLeafParticle, }; -const struct SpriteTemplate gTwisterLeafParticleSpriteTemplate = +const struct SpriteTemplate gTwisterLeafSpriteTemplate = { .tileTag = ANIM_TAG_LEAF, .paletteTag = ANIM_TAG_LEAF, @@ -1328,7 +1330,7 @@ const struct SpriteTemplate gUnknown_08592AC4 = .callback = sub_8100E1C, }; -const struct SpriteTemplate gUnknown_08592ADC = +const struct SpriteTemplate gProtectSpriteTemplate = { .tileTag = ANIM_TAG_PROTECT, .paletteTag = ANIM_TAG_PROTECT, @@ -2189,7 +2191,7 @@ const struct SpriteTemplate gTauntFingerSpriteTemplate = // arg 3: vertical movement speed (sub-pixel value) // arg 4: wave amplitude // arg 5: wave speed -void AnimMovePowderParticle(struct Sprite* sprite) +static void AnimMovePowderParticle(struct Sprite* sprite) { sprite->pos1.x += gBattleAnimArgs[0]; sprite->pos1.y += gBattleAnimArgs[1]; @@ -2206,10 +2208,10 @@ void AnimMovePowderParticle(struct Sprite* sprite) } sprite->data[4] = gBattleAnimArgs[5]; - sprite->callback = AnimMovePowderParticleStep; + sprite->callback = AnimMovePowderParticle_Step; } -static void AnimMovePowderParticleStep(struct Sprite* sprite) +static void AnimMovePowderParticle_Step(struct Sprite* sprite) { if (sprite->data[0] > 0) { @@ -2229,7 +2231,7 @@ static void AnimMovePowderParticleStep(struct Sprite* sprite) // arg 0: initial x pixel offset // arg 1: initial y pixel offset // arg 2: duration -void AnimPowerAbsorptionOrb(struct Sprite* sprite) +static void AnimPowerAbsorptionOrb(struct Sprite* sprite) { InitSpritePosToAnimAttacker(sprite, TRUE); sprite->data[0] = gBattleAnimArgs[2]; @@ -2244,7 +2246,7 @@ void AnimPowerAbsorptionOrb(struct Sprite* sprite) // arg 1: initial y pixel offset // arg 2: duration // arg 3: sprite anim number -void AnimSolarbeamBigOrb(struct Sprite* sprite) +static void AnimSolarbeamBigOrb(struct Sprite* sprite) { InitSpritePosToAnimAttacker(sprite, TRUE); StartSpriteAnim(sprite, gBattleAnimArgs[3]); @@ -2261,7 +2263,7 @@ void AnimSolarbeamBigOrb(struct Sprite* sprite) // arg 1: initial y pixel offset // arg 2: duration // arg 3: initial wave offset -void AnimSolarbeamSmallOrb(struct Sprite* sprite) +static void AnimSolarbeamSmallOrb(struct Sprite* sprite) { InitSpritePosToAnimAttacker(sprite, TRUE); sprite->data[0] = gBattleAnimArgs[2]; @@ -2271,11 +2273,11 @@ void AnimSolarbeamSmallOrb(struct Sprite* sprite) sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); InitAnimLinearTranslation(sprite); sprite->data[5] = gBattleAnimArgs[3]; - sprite->callback = AnimSolarbeamSmallOrbStep; + sprite->callback = AnimSolarbeamSmallOrb_Step; sprite->callback(sprite); } -static void AnimSolarbeamSmallOrbStep(struct Sprite* sprite) +static void AnimSolarbeamSmallOrb_Step(struct Sprite* sprite) { if (AnimTranslateLinear(sprite)) { @@ -2319,7 +2321,7 @@ void AnimTask_CreateSmallSolarbeamOrbs(u8 taskId) // arg 1: initial y pixel offset // arg 2: wave amplitude // arg 3: wave period (lower means faster wave) -void AnimAbsorptionOrb(struct Sprite* sprite) +static void AnimAbsorptionOrb(struct Sprite* sprite) { InitSpritePosToAnimTarget(sprite, TRUE); sprite->data[0] = gBattleAnimArgs[3]; @@ -2327,10 +2329,10 @@ void AnimAbsorptionOrb(struct Sprite* sprite) sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); sprite->data[5] = gBattleAnimArgs[2]; InitAnimArcTranslation(sprite); - sprite->callback = AnimAbsorptionOrbStep; + sprite->callback = AnimAbsorptionOrb_Step; } -static void AnimAbsorptionOrbStep(struct Sprite* sprite) +static void AnimAbsorptionOrb_Step(struct Sprite* sprite) { if (TranslateAnimHorizontalArc(sprite)) DestroyAnimSprite(sprite); @@ -2338,7 +2340,7 @@ static void AnimAbsorptionOrbStep(struct Sprite* sprite) // Moves an orb in a wave-like fashion towards the target mon. The wave's // properties and the sprite anim are randomly determined. -void AnimHyperBeamOrb(struct Sprite* sprite) +static void AnimHyperBeamOrb(struct Sprite* sprite) { u16 speed; u16 animNum = Random2(); @@ -2360,11 +2362,11 @@ void AnimHyperBeamOrb(struct Sprite* sprite) InitAnimFastLinearTranslationWithSpeed(sprite); sprite->data[5] = Random2() & 0xFF; sprite->data[6] = sprite->subpriority; - sprite->callback = AnimHyperBeamOrbStep; + sprite->callback = AnimHyperBeamOrb_Step; sprite->callback(sprite); } -static void AnimHyperBeamOrbStep(struct Sprite* sprite) +static void AnimHyperBeamOrb_Step(struct Sprite* sprite) { if (AnimFastTranslateLinear(sprite)) { @@ -2391,7 +2393,7 @@ static void AnimHyperBeamOrbStep(struct Sprite* sprite) // arg 3: target y pixel offset // arg 4: duration // arg 5: wave amplitude -void AnimLeechSeed(struct Sprite* sprite) +static void AnimLeechSeed(struct Sprite* sprite) { InitSpritePosToAnimAttacker(sprite, TRUE); if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) @@ -2402,14 +2404,14 @@ void AnimLeechSeed(struct Sprite* sprite) sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y) + gBattleAnimArgs[3]; sprite->data[5] = gBattleAnimArgs[5]; InitAnimArcTranslation(sprite); - sprite->callback = AnimLeechSeedStep; + sprite->callback = AnimLeechSeed_Step; } -static void AnimLeechSeedStep(struct Sprite* sprite) +static void AnimLeechSeed_Step(struct Sprite* sprite) { if (TranslateAnimHorizontalArc(sprite)) { - sprite->invisible = 1; + sprite->invisible = TRUE; sprite->data[0] = 10; sprite->callback = WaitAnimForDuration; StoreSpriteCallbackInData6(sprite, AnimLeechSeedSprouts); @@ -2418,7 +2420,7 @@ static void AnimLeechSeedStep(struct Sprite* sprite) static void AnimLeechSeedSprouts(struct Sprite* sprite) { - sprite->invisible = 0; + sprite->invisible = FALSE; StartSpriteAnim(sprite, 1); sprite->data[0] = 60; sprite->callback = WaitAnimForDuration; @@ -2433,7 +2435,7 @@ static void AnimLeechSeedSprouts(struct Sprite* sprite) // arg 2: initial wave offset // arg 3: duration // arg 4: blend (0 = off, 1 = on) -void AnimSporeParticle(struct Sprite* sprite) +static void AnimSporeParticle(struct Sprite* sprite) { InitSpritePosToAnimTarget(sprite, TRUE); StartSpriteAnim(sprite, gBattleAnimArgs[4]); @@ -2442,11 +2444,11 @@ void AnimSporeParticle(struct Sprite* sprite) sprite->data[0] = gBattleAnimArgs[3]; sprite->data[1] = gBattleAnimArgs[2]; - sprite->callback = AnimSporeParticleStep; + sprite->callback = AnimSporeParticle_Step; sprite->callback(sprite); } -static void AnimSporeParticleStep(struct Sprite* sprite) +static void AnimSporeParticle_Step(struct Sprite* sprite) { sprite->pos2.x = Sin(sprite->data[1], 32); sprite->pos2.y = Cos(sprite->data[1], -3) + ((sprite->data[2] += 24) >> 8); @@ -2495,7 +2497,7 @@ void AnimTask_SporeDoubleBattle(u8 taskId) // arg 1: initial y pixel offset // arg 2: target y pixel offset // arg 3: duration -void AnimPetalDanceBigFlower(struct Sprite* sprite) +static void AnimPetalDanceBigFlower(struct Sprite* sprite) { InitSpritePosToAnimAttacker(sprite, FALSE); sprite->data[0] = gBattleAnimArgs[3]; @@ -2505,11 +2507,11 @@ void AnimPetalDanceBigFlower(struct Sprite* sprite) sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[2]; InitAnimLinearTranslation(sprite); sprite->data[5] = 0x40; - sprite->callback = AnimPetalDanceBigFlowerStep; + sprite->callback = AnimPetalDanceBigFlower_Step; sprite->callback(sprite); } -static void AnimPetalDanceBigFlowerStep(struct Sprite* sprite) +static void AnimPetalDanceBigFlower_Step(struct Sprite* sprite) { if (!AnimTranslateLinear(sprite)) { @@ -2533,7 +2535,7 @@ static void AnimPetalDanceBigFlowerStep(struct Sprite* sprite) // arg 1: initial y pixel offset // arg 2: target y pixel offset // arg 3: duration -void AnimPetalDanceSmallFlower(struct Sprite* sprite) +static void AnimPetalDanceSmallFlower(struct Sprite* sprite) { InitSpritePosToAnimAttacker(sprite, TRUE); sprite->data[0] = gBattleAnimArgs[3]; @@ -2543,11 +2545,11 @@ void AnimPetalDanceSmallFlower(struct Sprite* sprite) sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimAttacker, 3) + gBattleAnimArgs[2]; InitAnimLinearTranslation(sprite); sprite->data[5] = 0x40; - sprite->callback = AnimPetalDanceSmallFlowerStep; + sprite->callback = AnimPetalDanceSmallFlower_Step; sprite->callback(sprite); } -static void AnimPetalDanceSmallFlowerStep(struct Sprite* sprite) +static void AnimPetalDanceSmallFlower_Step(struct Sprite* sprite) { if (!AnimTranslateLinear(sprite)) { @@ -2568,17 +2570,17 @@ static void AnimPetalDanceSmallFlowerStep(struct Sprite* sprite) // arg 0: upward x delta per frame // arg 1: upward y delta per frame // arg 2: upward duration -void AnimRazorLeafParticle(struct Sprite* sprite) +static void AnimRazorLeafParticle(struct Sprite* sprite) { sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); sprite->data[0] = gBattleAnimArgs[0]; sprite->data[1] = gBattleAnimArgs[1]; sprite->data[2] = gBattleAnimArgs[2]; - sprite->callback = AnimRazorLeafParticleStep1; + sprite->callback = AnimRazorLeafParticle_Step1; } -static void AnimRazorLeafParticleStep1(struct Sprite* sprite) +static void AnimRazorLeafParticle_Step1(struct Sprite* sprite) { if (!sprite->data[2]) { @@ -2594,7 +2596,7 @@ static void AnimRazorLeafParticleStep1(struct Sprite* sprite) sprite->data[1] = 0; sprite->data[2] = 0; } - sprite->callback = AnimRazorLeafParticleStep2; + sprite->callback = AnimRazorLeafParticle_Step2; } else { @@ -2604,7 +2606,7 @@ static void AnimRazorLeafParticleStep1(struct Sprite* sprite) } } -static void AnimRazorLeafParticleStep2(struct Sprite* sprite) +static void AnimRazorLeafParticle_Step2(struct Sprite* sprite) { if (GetBattlerSide(gBattleAnimAttacker)) sprite->pos2.x = -Sin(sprite->data[0], 25); @@ -2631,7 +2633,7 @@ static void AnimRazorLeafParticleStep2(struct Sprite* sprite) // arg 4: translation duration // arg 5: wave amplitude // arg 6: target between double battle opponents (boolean) -void AnimTranslateLinearSingleSineWave(struct Sprite* sprite) +static void AnimTranslateLinearSingleSineWave(struct Sprite* sprite) { InitSpritePosToAnimAttacker(sprite, TRUE); if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) @@ -2657,10 +2659,10 @@ void AnimTranslateLinearSingleSineWave(struct Sprite* sprite) else sprite->data[0] = 0; - sprite->callback = AnimTranslateLinearSingleSineWaveStep; + sprite->callback = AnimTranslateLinearSingleSineWave_Step; } -static void AnimTranslateLinearSingleSineWaveStep(struct Sprite* sprite) +static void AnimTranslateLinearSingleSineWave_Step(struct Sprite* sprite) { bool8 destroy = FALSE; s16 a = sprite->data[0]; @@ -2709,10 +2711,10 @@ void AnimMoveTwisterParticle(struct Sprite* sprite) sprite->data[2] = gBattleAnimArgs[2]; sprite->data[3] = gBattleAnimArgs[3]; sprite->data[4] = gBattleAnimArgs[4]; - sprite->callback = AnimMoveTwisterParticleStep; + sprite->callback = AnimMoveTwisterParticle_Step; } -static void AnimMoveTwisterParticleStep(struct Sprite* sprite) +static void AnimMoveTwisterParticle_Step(struct Sprite* sprite) { if (sprite->data[1] == 0xFF) { @@ -2745,17 +2747,17 @@ static void AnimMoveTwisterParticleStep(struct Sprite* sprite) // arg 1: initial y pixel offset // arg 2: affine anim num // arg 3: num squeezes -void AnimConstrictBinding(struct Sprite* sprite) +static void AnimConstrictBinding(struct Sprite* sprite) { InitSpritePosToAnimTarget(sprite, FALSE); sprite->affineAnimPaused = 1; StartSpriteAffineAnim(sprite, gBattleAnimArgs[2]); sprite->data[6] = gBattleAnimArgs[2]; sprite->data[7] = gBattleAnimArgs[3]; - sprite->callback = AnimConstrictBindingStep1; + sprite->callback = AnimConstrictBinding_Step1; } -static void AnimConstrictBindingStep1(struct Sprite* sprite) +static void AnimConstrictBinding_Step1(struct Sprite* sprite) { u8 spriteId; @@ -2764,11 +2766,11 @@ static void AnimConstrictBindingStep1(struct Sprite* sprite) sprite->affineAnimPaused = 0; spriteId = GetAnimBattlerSpriteId(ANIM_TARGET); sprite->data[0] = 0x100; - sprite->callback = AnimConstrictBindingStep2; + sprite->callback = AnimConstrictBinding_Step2; } } -static void AnimConstrictBindingStep2(struct Sprite* sprite) +static void AnimConstrictBinding_Step2(struct Sprite* sprite) { u8 spriteId = GetAnimBattlerSpriteId(ANIM_TARGET); if (!sprite->data[2]) @@ -2791,7 +2793,7 @@ static void AnimConstrictBindingStep2(struct Sprite* sprite) } } -void sub_80FF458(u8 taskId) +void AnimTask_ShrinkTargetCopy(u8 taskId) { u8 spriteId = GetAnimBattlerSpriteId(ANIM_TARGET); if (gSprites[spriteId].invisible) @@ -2809,11 +2811,11 @@ void sub_80FF458(u8 taskId) gTasks[taskId].data[0] = gBattleAnimArgs[0]; gTasks[taskId].data[1] = gBattleAnimArgs[1]; gTasks[taskId].data[11] = 0x100; - gTasks[taskId].func = AnimTask_DuplicateAndShrinkToPosStep1; + gTasks[taskId].func = AnimTask_DuplicateAndShrinkToPos_Step1; } } -static void AnimTask_DuplicateAndShrinkToPosStep1(u8 taskId) +static void AnimTask_DuplicateAndShrinkToPos_Step1(u8 taskId) { u8 spriteId = GetAnimBattlerSpriteId(ANIM_TARGET); gTasks[taskId].data[10] += gTasks[taskId].data[0]; @@ -2827,11 +2829,11 @@ static void AnimTask_DuplicateAndShrinkToPosStep1(u8 taskId) if (--gTasks[taskId].data[1] == 0) { gTasks[taskId].data[0] = 0; - gTasks[taskId].func = AnimTask_DuplicateAndShrinkToPosStep2; + gTasks[taskId].func = AnimTask_DuplicateAndShrinkToPos_Step2; } } -static void AnimTask_DuplicateAndShrinkToPosStep2(u8 taskId) +static void AnimTask_DuplicateAndShrinkToPos_Step2(u8 taskId) { if ((u16)gBattleAnimArgs[7] == 0xFFFF) { @@ -2862,7 +2864,7 @@ static void AnimTask_DuplicateAndShrinkToPosStep2(u8 taskId) // Moves an orb from the target mon to the attacking mon. // arg 0: initial x pixel offset // arg 1: initial y pixel offset -void AnimMimicOrb(struct Sprite* sprite) +static void AnimMimicOrb(struct Sprite* sprite) { switch (sprite->data[0]) { @@ -2872,11 +2874,11 @@ void AnimMimicOrb(struct Sprite* sprite) sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X) + gBattleAnimArgs[0]; sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y) + gBattleAnimArgs[1]; - sprite->invisible = 1; + sprite->invisible = TRUE; sprite->data[0]++; break; case 1: - sprite->invisible = 0; + sprite->invisible = FALSE; if (sprite->affineAnimEnded) { ChangeSpriteAffineAnim(sprite, 1); @@ -2896,7 +2898,7 @@ void AnimMimicOrb(struct Sprite* sprite) // arg 2: sprite subpriority offset // arg 3: sprite anim num // arg 4: duration -void AnimIngrainRoot(struct Sprite* sprite) +static void AnimIngrainRoot(struct Sprite* sprite) { if (!sprite->data[0]) { @@ -2921,7 +2923,7 @@ void AnimIngrainRoot(struct Sprite* sprite) // arg 3: sprite subpriority offset // arg 4: sprite anum num // arg 5: duration -void AnimFrenzyPlantRoot(struct Sprite *sprite) +static void AnimFrenzyPlantRoot(struct Sprite *sprite) { s16 attackerX = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); s16 attackerY = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); @@ -2959,7 +2961,7 @@ static void AnimRootFlickerOut(struct Sprite* sprite) // arg 2: horizontal velocity // arg 3: wave amplitude // arg 4: duration -void AnimIngrainOrb(struct Sprite* sprite) +static void AnimIngrainOrb(struct Sprite* sprite) { if (!sprite->data[0]) { @@ -3018,7 +3020,7 @@ bool8 moveAlongLinearPath(struct Sprite* sprite) return FALSE; } -void AnimItemStealStep2(struct Sprite* sprite) +static void AnimItemSteal_Step2(struct Sprite* sprite) { if (sprite->data[0] == 10) StartSpriteAffineAnim(sprite, 1); @@ -3028,7 +3030,7 @@ void AnimItemStealStep2(struct Sprite* sprite) DestroyAnimSprite(sprite); } -static void AnimItemStealStep1(struct Sprite* sprite) +static void AnimItemSteal_Step1(struct Sprite* sprite) { sprite->data[0] += sprite->data[3] * 128 / sprite->data[4]; if (sprite->data[0] >= 128) @@ -3042,11 +3044,11 @@ static void AnimItemStealStep1(struct Sprite* sprite) { sprite->pos2.y = 0; sprite->data[0] = 0; - sprite->callback = AnimItemStealStep2; + sprite->callback = AnimItemSteal_Step2; } } -void AnimPresent(struct Sprite* sprite) +static void AnimPresent(struct Sprite* sprite) { s16 targetX; s16 targetY; @@ -3069,7 +3071,7 @@ void AnimPresent(struct Sprite* sprite) } sprite->data[4] = 60; - sprite->callback = AnimItemStealStep1; + sprite->callback = AnimItemSteal_Step1; } static void sub_80FFB90(struct Sprite* sprite) @@ -3092,7 +3094,7 @@ static void sub_80FFB90(struct Sprite* sprite) } } -void AnimKnockOffItem(struct Sprite* sprite) +static void AnimKnockOffItem(struct Sprite* sprite) { s16 targetY = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y); if (GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER) @@ -3102,7 +3104,7 @@ void AnimKnockOffItem(struct Sprite* sprite) sub_80FF9B8(sprite, 40); sprite->data[3] = 3; sprite->data[4] = 60; - sprite->callback = AnimItemStealStep1; + sprite->callback = AnimItemSteal_Step1; } else { @@ -3123,7 +3125,7 @@ void AnimKnockOffItem(struct Sprite* sprite) // arg 1: initial y pixel offset // arg 2: vertical velocity // arg 3: unused -void AnimPresentHealParticle(struct Sprite* sprite) +static void AnimPresentHealParticle(struct Sprite* sprite) { if (!sprite->data[0]) { @@ -3137,7 +3139,7 @@ void AnimPresentHealParticle(struct Sprite* sprite) DestroyAnimSprite(sprite); } -void AnimItemSteal(struct Sprite* sprite) +static void AnimItemSteal(struct Sprite* sprite) { s16 attackerX; s16 attackerY; @@ -3160,10 +3162,10 @@ void AnimItemSteal(struct Sprite* sprite) } sprite->data[4] = 60; - sprite->callback = AnimItemStealStep3; + sprite->callback = AnimItemSteal_Step3; } -static void AnimItemStealStep3(struct Sprite* sprite) +static void AnimItemSteal_Step3(struct Sprite* sprite) { int zero; sprite->data[0] += ((sprite->data[3] * 128) / sprite->data[4]); @@ -3182,7 +3184,7 @@ static void AnimItemStealStep3(struct Sprite* sprite) { sprite->pos2.y = 0; sprite->data[0] = 0; - sprite->callback = AnimItemStealStep2; + sprite->callback = AnimItemSteal_Step2; PlaySE12WithPanning(SE_W145B, BattleAnimAdjustPanning(-64)); } } @@ -3190,7 +3192,7 @@ static void AnimItemStealStep3(struct Sprite* sprite) // Moves a bag in a circular motion. // arg 0: y position // arg 1: initial wave offset -void AnimTrickBag(struct Sprite* sprite) +static void AnimTrickBag(struct Sprite* sprite) { int a; int b; @@ -3219,7 +3221,7 @@ void AnimTrickBag(struct Sprite* sprite) sprite->data[4] = 20; sprite->pos2.x = Cos(sprite->data[1], 60); sprite->pos2.y = Sin(sprite->data[1], 20); - sprite->callback = AnimTrickBagStep1; + sprite->callback = AnimTrickBag_Step1; if (sprite->data[1] > 0 && sprite->data[1] < 192) sprite->subpriority = 31; else @@ -3227,7 +3229,7 @@ void AnimTrickBag(struct Sprite* sprite) } } -static void AnimTrickBagStep1(struct Sprite* sprite) +static void AnimTrickBag_Step1(struct Sprite* sprite) { switch (sprite->data[3]) { @@ -3251,20 +3253,20 @@ static void AnimTrickBagStep1(struct Sprite* sprite) { sprite->data[0] = 0; sprite->data[2] = 0; - sprite->callback = AnimTrickBagStep2; + sprite->callback = AnimTrickBag_Step2; } break; } } -static void AnimTrickBagStep2(struct Sprite* sprite) +static void AnimTrickBag_Step2(struct Sprite* sprite) { if (sprite->data[2] == gTrickBagCoordinates[sprite->data[0]][1]) { if (gTrickBagCoordinates[sprite->data[0]][2] == 127) { sprite->data[0] = 0; - sprite->callback = AnimTrickBagStep3; + sprite->callback = AnimTrickBag_Step3; } sprite->data[2] = 0; @@ -3287,7 +3289,7 @@ static void AnimTrickBagStep2(struct Sprite* sprite) } } -static void AnimTrickBagStep3(struct Sprite* sprite) +static void AnimTrickBag_Step3(struct Sprite* sprite) { if (sprite->data[0] > 20) DestroyAnimSprite(sprite); @@ -3319,10 +3321,10 @@ void AnimTask_LeafBlade(u8 taskId) gSprites[task->data[2]].data[4] = task->data[7] + (task->data[11] / 2 + 10) * task->data[5]; gSprites[task->data[2]].data[5] = LeafBladeGetPosFactor(&gSprites[task->data[2]]); InitAnimArcTranslation(&gSprites[task->data[2]]); - task->func = AnimTask_LeafBladeStep; + task->func = AnimTask_LeafBlade_Step; } -static void AnimTask_LeafBladeStep(u8 taskId) +static void AnimTask_LeafBlade_Step(u8 taskId) { struct Task* task = &gTasks[taskId]; struct Sprite* sprite = &gSprites[task->data[2]]; @@ -3330,7 +3332,7 @@ static void AnimTask_LeafBladeStep(u8 taskId) switch (a) { case 4: - AnimTask_LeafBladeStep2(task, taskId); + AnimTask_LeafBlade_Step2(task, taskId); if (TranslateAnimHorizontalArc(sprite)) { task->data[15] = 5; @@ -3338,7 +3340,7 @@ static void AnimTask_LeafBladeStep(u8 taskId) } break; case 8: - AnimTask_LeafBladeStep2(task, taskId); + AnimTask_LeafBlade_Step2(task, taskId); if (TranslateAnimHorizontalArc(sprite)) { task->data[15] = 9; @@ -3346,7 +3348,7 @@ static void AnimTask_LeafBladeStep(u8 taskId) } break; case 0: - AnimTask_LeafBladeStep2(task, taskId); + AnimTask_LeafBlade_Step2(task, taskId); if (TranslateAnimHorizontalArc(sprite)) { task->data[15] = 1; @@ -3372,7 +3374,7 @@ static void AnimTask_LeafBladeStep(u8 taskId) task->data[0]++; break; case 2: - AnimTask_LeafBladeStep2(task, taskId); + AnimTask_LeafBlade_Step2(task, taskId); if (TranslateAnimHorizontalArc(sprite)) { task->data[15] = 3; @@ -3415,7 +3417,7 @@ static void AnimTask_LeafBladeStep(u8 taskId) task->data[0]++; break; case 6: - AnimTask_LeafBladeStep2(task, taskId); + AnimTask_LeafBlade_Step2(task, taskId); if (TranslateAnimHorizontalArc(sprite)) { task->data[15] = 7; @@ -3458,7 +3460,7 @@ static void AnimTask_LeafBladeStep(u8 taskId) task->data[0]++; break; case 10: - AnimTask_LeafBladeStep2(task, taskId); + AnimTask_LeafBlade_Step2(task, taskId); if (TranslateAnimHorizontalArc(sprite)) { task->data[15] = 11; @@ -3486,7 +3488,7 @@ static void AnimTask_LeafBladeStep(u8 taskId) break; } case 12: - AnimTask_LeafBladeStep2(task, taskId); + AnimTask_LeafBlade_Step2(task, taskId); if (TranslateAnimHorizontalArc(sprite)) { DestroySprite(sprite); @@ -3516,7 +3518,7 @@ static s16 LeafBladeGetPosFactor(struct Sprite* sprite) return var; } -static void AnimTask_LeafBladeStep2(struct Task* task, u8 taskId) +static void AnimTask_LeafBlade_Step2(struct Task* task, u8 taskId) { task->data[14]++; if (task->data[14] > 0) @@ -3537,12 +3539,12 @@ static void AnimTask_LeafBladeStep2(struct Task* task, u8 taskId) gTasks[taskId].data[13]++; StartSpriteAnim(&gSprites[spriteId], task->data[3]); gSprites[spriteId].subpriority = task->data[4]; - gSprites[spriteId].callback = AnimTask_LeafBladeStep2_Callback; + gSprites[spriteId].callback = AnimTask_LeafBlade_Step2_Callback; } } } -static void AnimTask_LeafBladeStep2_Callback(struct Sprite* sprite) +static void AnimTask_LeafBlade_Step2_Callback(struct Sprite* sprite) { sprite->data[0]++; if (sprite->data[0] > 1) @@ -3558,7 +3560,7 @@ static void AnimTask_LeafBladeStep2_Callback(struct Sprite* sprite) } } -void AnimFlyingParticle(struct Sprite* sprite) +static void AnimFlyingParticle(struct Sprite* sprite) { u8 battler; if (!gBattleAnimArgs[6]) @@ -3603,10 +3605,10 @@ void AnimFlyingParticle(struct Sprite* sprite) break; } - sprite->callback = AnimFlyingParticleStep; + sprite->callback = AnimFlyingParticle_Step; } -static void AnimFlyingParticleStep(struct Sprite* sprite) +static void AnimFlyingParticle_Step(struct Sprite* sprite) { int a = sprite->data[7]; sprite->data[7]++; @@ -3627,7 +3629,7 @@ static void AnimFlyingParticleStep(struct Sprite* sprite) DestroySpriteAndMatrix(sprite); } -void sub_81007C4(u8 taskId) +void AnimTask_CycleMagicalLeafPal(u8 taskId) { struct Task* task = &gTasks[taskId]; switch (task->data[0]) @@ -3657,7 +3659,7 @@ void sub_81007C4(u8 taskId) DestroyAnimVisualTask(taskId); } -void AnimNeedleArmSpike(struct Sprite* sprite) +static void AnimNeedleArmSpike(struct Sprite* sprite) { u8 a; u8 b; @@ -3709,11 +3711,11 @@ void AnimNeedleArmSpike(struct Sprite* sprite) c -= 0x8000; TrySetSpriteRotScale(sprite, 0, 0x100, 0x100, c); - sprite->callback = AnimNeedleArmSpikeStep; + sprite->callback = AnimNeedleArmSpike_Step; } } -static void AnimNeedleArmSpikeStep(struct Sprite* sprite) +static void AnimNeedleArmSpike_Step(struct Sprite* sprite) { if (sprite->data[0]) { @@ -3735,7 +3737,7 @@ static void sub_81009DC(struct Sprite* sprite) DestroyAnimSprite(sprite); } -void sub_81009F8(struct Sprite* sprite) +static void sub_81009F8(struct Sprite* sprite) { if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) { @@ -3752,7 +3754,7 @@ void sub_81009F8(struct Sprite* sprite) StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); } -void AnimWhipHit(struct Sprite* sprite) +static void AnimWhipHit(struct Sprite* sprite) { if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) StartSpriteAnim(sprite, 1); @@ -3762,7 +3764,7 @@ void AnimWhipHit(struct Sprite* sprite) sprite->pos1.y += gBattleAnimArgs[1]; } -void sub_8100A94(struct Sprite* sprite) +static void sub_8100A94(struct Sprite* sprite) { sprite->pos1.x += gBattleAnimArgs[0]; sprite->pos1.y += gBattleAnimArgs[1]; @@ -3780,14 +3782,14 @@ void sub_8100A94(struct Sprite* sprite) // arg 0: initial x pixel offset // arg 1: initial y pixel offset // arg 2: slice direction; 0 = right-to-left, 1 = left-to-right -void AnimCuttingSlice(struct Sprite* sprite) +static void AnimCuttingSlice(struct Sprite* sprite) { sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, 0); sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, 1); if (GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER) sprite->pos1.y += 8; - sprite->callback = AnimSliceStep; + sprite->callback = AnimSlice_Step; if (gBattleAnimArgs[2] == 0) { sprite->pos1.x += gBattleAnimArgs[0]; @@ -3806,7 +3808,7 @@ void AnimCuttingSlice(struct Sprite* sprite) sprite->data[1] = -sprite->data[1]; } -void AnimAirCutterSlice(struct Sprite* sprite) +static void AnimAirCutterSlice(struct Sprite* sprite) { u8 a; u8 b; @@ -3837,7 +3839,7 @@ void AnimAirCutterSlice(struct Sprite* sprite) if (GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER) sprite->pos1.y += 8; - sprite->callback = AnimSliceStep; + sprite->callback = AnimSlice_Step; if (gBattleAnimArgs[2] == 0) { sprite->pos1.x += gBattleAnimArgs[0]; @@ -3856,7 +3858,7 @@ void AnimAirCutterSlice(struct Sprite* sprite) sprite->data[1] = -sprite->data[1]; } -static void AnimSliceStep(struct Sprite* sprite) +static void AnimSlice_Step(struct Sprite* sprite) { sprite->data[3] += sprite->data[1]; sprite->data[4] += sprite->data[2]; @@ -3883,15 +3885,15 @@ void unref_sub_8100D38(struct Sprite* sprite) { if (sprite->data[3] & 1) { - sprite->invisible = 0; - gSprites[sprite->data[0]].invisible = 0; - gSprites[sprite->data[1]].invisible = 0; + sprite->invisible = FALSE; + gSprites[sprite->data[0]].invisible = FALSE; + gSprites[sprite->data[1]].invisible = FALSE; } else { - sprite->invisible = 1; - gSprites[sprite->data[0]].invisible = 1; - gSprites[sprite->data[1]].invisible = 1; + sprite->invisible = TRUE; + gSprites[sprite->data[0]].invisible = TRUE; + gSprites[sprite->data[1]].invisible = TRUE; } sprite->data[2] = 0; @@ -3910,7 +3912,7 @@ void unref_sub_8100D38(struct Sprite* sprite) } } -void sub_8100E1C(struct Sprite* sprite) +static void sub_8100E1C(struct Sprite* sprite) { sprite->data[0] = gBattleAnimArgs[2]; if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) @@ -3943,7 +3945,7 @@ static void sub_8100E80(struct Sprite* sprite) DestroyAnimSprite(sprite); } -void AnimProtect(struct Sprite* sprite) +static void AnimProtect(struct Sprite* sprite) { if (IsContest()) gBattleAnimArgs[1] += 8; @@ -3960,10 +3962,10 @@ void AnimProtect(struct Sprite* sprite) sprite->data[7] = 16; SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND); SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(16 - sprite->data[7], sprite->data[7])); - sprite->callback = AnimProtectStep; + sprite->callback = AnimProtect_Step; } -static void AnimProtectStep(struct Sprite *sprite) +static void AnimProtect_Step(struct Sprite *sprite) { int a; int i; @@ -4000,13 +4002,13 @@ static void AnimProtectStep(struct Sprite *sprite) SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(16 - sprite->data[7], sprite->data[7])); if (sprite->data[7] == 16) { - sprite->invisible = 1; + sprite->invisible = TRUE; sprite->callback = DestroyAnimSpriteAndDisableBlend; } } } -void AnimMilkBottle(struct Sprite* sprite) +static void AnimMilkBottle(struct Sprite* sprite) { sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, 2); sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, 3) + 0xFFE8; @@ -4019,10 +4021,10 @@ void AnimMilkBottle(struct Sprite* sprite) sprite->data[7] = 16; SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND); SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(sprite->data[6], sprite->data[7])); - sprite->callback = AnimMilkBottleStep1; + sprite->callback = AnimMilkBottle_Step1; } -static void AnimMilkBottleStep1(struct Sprite* sprite) +static void AnimMilkBottle_Step1(struct Sprite* sprite) { switch (sprite->data[0]) { @@ -4055,7 +4057,7 @@ static void AnimMilkBottleStep1(struct Sprite* sprite) } break; case 2: - AnimMilkBottleStep2(sprite, 16, 4); + AnimMilkBottle_Step2(sprite, 16, 4); if (++sprite->data[1] > 2) { sprite->data[1] = 0; @@ -4084,7 +4086,7 @@ static void AnimMilkBottleStep1(struct Sprite* sprite) } break; case 3: - sprite->invisible = 1; + sprite->invisible = TRUE; sprite->data[0]++; break; case 4: @@ -4095,7 +4097,7 @@ static void AnimMilkBottleStep1(struct Sprite* sprite) } } -static void AnimMilkBottleStep2(struct Sprite* sprite, int unk1, int unk2) +static void AnimMilkBottle_Step2(struct Sprite* sprite, int unk1, int unk2) { if (sprite->data[3] <= 11) sprite->data[4] += 2; @@ -4116,7 +4118,7 @@ static void AnimMilkBottleStep2(struct Sprite* sprite, int unk1, int unk2) sprite->data[3] = 0; } -void AnimGrantingStars(struct Sprite* sprite) +static void AnimGrantingStars(struct Sprite* sprite) { if (!gBattleAnimArgs[2]) SetSpriteCoordsToAnimAttackerCoords(sprite); @@ -4130,7 +4132,7 @@ void AnimGrantingStars(struct Sprite* sprite) sprite->callback = TranslateSpriteLinearFixedPoint; } -void AnimSparkingStars(struct Sprite* sprite) +static void AnimSparkingStars(struct Sprite* sprite) { u8 battler; if (!gBattleAnimArgs[2]) @@ -4167,7 +4169,7 @@ void AnimSparkingStars(struct Sprite* sprite) sprite->callback = TranslateSpriteLinearFixedPoint; } -void sub_8101440(struct Sprite* sprite) +static void sub_8101440(struct Sprite* sprite) { SetSpriteCoordsToAnimAttackerCoords(sprite); if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) @@ -4198,7 +4200,7 @@ static void sub_81014A0(struct Sprite* sprite) DestroyAnimSprite(sprite); } -void AnimSleepLetterZ(struct Sprite* sprite) +static void AnimSleepLetterZ(struct Sprite* sprite) { SetSpriteCoordsToAnimAttackerCoords(sprite); if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) @@ -4215,10 +4217,10 @@ void AnimSleepLetterZ(struct Sprite* sprite) StartSpriteAffineAnim(sprite, 1); } - sprite->callback = AnimSleepLetterZStep; + sprite->callback = AnimSleepLetterZ_Step; } -static void AnimSleepLetterZStep(struct Sprite* sprite) +static void AnimSleepLetterZ_Step(struct Sprite* sprite) { sprite->pos2.y = -(sprite->data[0] / 0x28); sprite->pos2.x = sprite->data[4] / 10; @@ -4228,23 +4230,23 @@ static void AnimSleepLetterZStep(struct Sprite* sprite) DestroySpriteAndMatrix(sprite); } -void AnimLockOnTarget(struct Sprite* sprite) +static void AnimLockOnTarget(struct Sprite* sprite) { sprite->pos1.x -= 32; sprite->pos1.y -= 32; sprite->data[0] = 20; sprite->callback = WaitAnimForDuration; - StoreSpriteCallbackInData6(sprite, AnimLockOnTargetStep1); + StoreSpriteCallbackInData6(sprite, AnimLockOnTarget_Step1); } -static void AnimLockOnTargetStep1(struct Sprite* sprite) +static void AnimLockOnTarget_Step1(struct Sprite* sprite) { switch (sprite->data[5] & 1) { case 0: sprite->data[0] = 1; sprite->callback = WaitAnimForDuration; - StoreSpriteCallbackInData6(sprite, AnimLockOnTargetStep1); + StoreSpriteCallbackInData6(sprite, AnimLockOnTarget_Step1); break; case 1: sprite->pos1.x += sprite->pos2.x; @@ -4255,7 +4257,7 @@ static void AnimLockOnTargetStep1(struct Sprite* sprite) sprite->data[2] = sprite->pos1.x + gInclineMonCoordTable[sprite->data[5] >> 8][0]; sprite->data[4] = sprite->pos1.y + gInclineMonCoordTable[sprite->data[5] >> 8][1]; sprite->callback = StartAnimLinearTranslation; - StoreSpriteCallbackInData6(sprite, AnimLockOnTargetStep2); + StoreSpriteCallbackInData6(sprite, AnimLockOnTarget_Step2); sprite->data[5] += 0x100; PlaySE12WithPanning(SE_W199, BattleAnimAdjustPanning(63)); break; @@ -4264,21 +4266,21 @@ static void AnimLockOnTargetStep1(struct Sprite* sprite) sprite->data[5] ^= 1; } -static void AnimLockOnTargetStep2(struct Sprite* sprite) +static void AnimLockOnTarget_Step2(struct Sprite* sprite) { if ((sprite->data[5] >> 8) == 4) { sprite->data[0] = 10; sprite->callback = WaitAnimForDuration; - StoreSpriteCallbackInData6(sprite, AnimLockOnTargetStep3); + StoreSpriteCallbackInData6(sprite, AnimLockOnTarget_Step3); } else { - sprite->callback = AnimLockOnTargetStep1; + sprite->callback = AnimLockOnTarget_Step1; } } -static void AnimLockOnTargetStep3(struct Sprite* sprite) +static void AnimLockOnTarget_Step3(struct Sprite* sprite) { s16 a; s16 b; @@ -4288,7 +4290,7 @@ static void AnimLockOnTargetStep3(struct Sprite* sprite) sprite->data[1] = 0; sprite->data[2] = 0; sprite->callback = WaitAnimForDuration; - StoreSpriteCallbackInData6(sprite, AnimLockOnTargetStep4); + StoreSpriteCallbackInData6(sprite, AnimLockOnTarget_Step4); } else { @@ -4320,11 +4322,11 @@ static void AnimLockOnTargetStep3(struct Sprite* sprite) sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2) + a; sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3) + b; sprite->callback = StartAnimLinearTranslation; - StoreSpriteCallbackInData6(sprite, AnimLockOnTargetStep5); + StoreSpriteCallbackInData6(sprite, AnimLockOnTarget_Step5); } } -static void AnimLockOnTargetStep4(struct Sprite* sprite) +static void AnimLockOnTarget_Step4(struct Sprite* sprite) { if (sprite->data[2] == 0) { @@ -4347,21 +4349,21 @@ static void AnimLockOnTargetStep4(struct Sprite* sprite) } else if (sprite->data[1] == 0) { - sprite->callback = AnimLockOnTargetStep5; + sprite->callback = AnimLockOnTarget_Step5; } } -static void AnimLockOnTargetStep5(struct Sprite* sprite) +static void AnimLockOnTarget_Step5(struct Sprite* sprite) { if ((u16)gBattleAnimArgs[7] == 0xFFFF) { sprite->data[1] = 0; sprite->data[0] = 0; - sprite->callback = AnimLockOnTargetStep6; + sprite->callback = AnimLockOnTarget_Step6; } } -static void AnimLockOnTargetStep6(struct Sprite* sprite) +static void AnimLockOnTarget_Step6(struct Sprite* sprite) { if (sprite->data[0] % 3 == 0) { @@ -4374,7 +4376,7 @@ static void AnimLockOnTargetStep6(struct Sprite* sprite) DestroyAnimSprite(sprite); } -void AnimLockOnMoveTarget(struct Sprite* sprite) +static void AnimLockOnMoveTarget(struct Sprite* sprite) { sprite->oam.affineParam = gBattleAnimArgs[0]; if ((s16)sprite->oam.affineParam == 1) @@ -4406,38 +4408,38 @@ void AnimLockOnMoveTarget(struct Sprite* sprite) sprite->callback(sprite); } -void AnimBowMon(struct Sprite* sprite) +static void AnimBowMon(struct Sprite* sprite) { - sprite->invisible = 1; + sprite->invisible = TRUE; sprite->data[0] = 0; switch (gBattleAnimArgs[0]) { case 0: - sprite->callback = AnimBowMonStep1; + sprite->callback = AnimBowMon_Step1; break; case 1: - sprite->callback = AnimBowMonStep2; + sprite->callback = AnimBowMon_Step2; break; case 2: - sprite->callback = AnimBowMonStep3; + sprite->callback = AnimBowMon_Step3; break; default: - sprite->callback = AnimBowMonStep4; + sprite->callback = AnimBowMon_Step4; break; } } -static void AnimBowMonStep1(struct Sprite* sprite) +static void AnimBowMon_Step1(struct Sprite* sprite) { sprite->data[0] = 6; sprite->data[1] = (GetBattlerSide(gBattleAnimAttacker)) ? 2 : -2; sprite->data[2] = 0; sprite->data[3] = gBattlerSpriteIds[gBattleAnimAttacker]; - StoreSpriteCallbackInData6(sprite, AnimBowMonStep1_Callback); + StoreSpriteCallbackInData6(sprite, AnimBowMon_Step1_Callback); sprite->callback = TranslateMonSpriteLinear; } -static void AnimBowMonStep1_Callback(struct Sprite* sprite) +static void AnimBowMon_Step1_Callback(struct Sprite* sprite) { if (sprite->data[0] == 0) { @@ -4453,30 +4455,30 @@ static void AnimBowMonStep1_Callback(struct Sprite* sprite) if (++sprite->data[0] > 3) { sprite->data[0] = 0; - sprite->callback = AnimBowMonStep4; + sprite->callback = AnimBowMon_Step4; } } -static void AnimBowMonStep2(struct Sprite* sprite) +static void AnimBowMon_Step2(struct Sprite* sprite) { sprite->data[0] = 4; sprite->data[1] = (GetBattlerSide(gBattleAnimAttacker)) ? -3 : 3; sprite->data[2] = 0; sprite->data[3] = gBattlerSpriteIds[gBattleAnimAttacker]; - StoreSpriteCallbackInData6(sprite, AnimBowMonStep4); + StoreSpriteCallbackInData6(sprite, AnimBowMon_Step4); sprite->callback = TranslateMonSpriteLinear; } -static void AnimBowMonStep3(struct Sprite* sprite) +static void AnimBowMon_Step3(struct Sprite* sprite) { if (++sprite->data[0] > 8) { sprite->data[0] = 0; - sprite->callback = AnimBowMonStep3_Callback; + sprite->callback = AnimBowMon_Step3_Callback; } } -static void AnimBowMonStep3_Callback(struct Sprite* sprite) +static void AnimBowMon_Step3_Callback(struct Sprite* sprite) { if (sprite->data[0] == 0) { @@ -4500,16 +4502,16 @@ static void AnimBowMonStep3_Callback(struct Sprite* sprite) if (++sprite->data[0] > 2) { ResetSpriteRotScale(sprite->data[3]); - sprite->callback = AnimBowMonStep4; + sprite->callback = AnimBowMon_Step4; } } -static void AnimBowMonStep4(struct Sprite* sprite) +static void AnimBowMon_Step4(struct Sprite* sprite) { DestroyAnimSprite(sprite); } -void sub_8101B90(struct Sprite *sprite) +static void sub_8101B90(struct Sprite *sprite) { sprite->data[0] = 0; sprite->callback = sub_8101BA0; @@ -4698,7 +4700,7 @@ static void AnimTask_SkullBashPositionReset(u8 taskId) } } -void AnimSlashSlice(struct Sprite* sprite) +static void AnimSlashSlice(struct Sprite* sprite) { if (gBattleAnimArgs[0] == 0) { @@ -4713,48 +4715,48 @@ void AnimSlashSlice(struct Sprite* sprite) sprite->data[0] = 0; sprite->data[1] = 0; - StoreSpriteCallbackInData6(sprite, AnimFalseSwipeSliceStep3); + StoreSpriteCallbackInData6(sprite, AnimFalseSwipeSlice_Step3); sprite->callback = RunStoredCallbackWhenAnimEnds; } -void AnimFalseSwipeSlice(struct Sprite* sprite) +static void AnimFalseSwipeSlice(struct Sprite* sprite) { sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, 2) + 0xFFD0; sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, 3); - StoreSpriteCallbackInData6(sprite, AnimFalseSwipeSliceStep1); + StoreSpriteCallbackInData6(sprite, AnimFalseSwipeSlice_Step1); sprite->callback = RunStoredCallbackWhenAnimEnds; } -void AnimFalseSwipePositionedSlice(struct Sprite* sprite) +static void AnimFalseSwipePositionedSlice(struct Sprite* sprite) { sprite->pos1.x = sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, 2) + 0xFFD0 + gBattleAnimArgs[0]; sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, 3); StartSpriteAnim(sprite, 1); sprite->data[0] = 0; sprite->data[1] = 0; - sprite->callback = AnimFalseSwipeSliceStep3; + sprite->callback = AnimFalseSwipeSlice_Step3; } -static void AnimFalseSwipeSliceStep1(struct Sprite* sprite) +static void AnimFalseSwipeSlice_Step1(struct Sprite* sprite) { if (++sprite->data[0] > 8) { sprite->data[0] = 12; sprite->data[1] = 8; sprite->data[2] = 0; - StoreSpriteCallbackInData6(sprite, AnimFalseSwipeSliceStep2); + StoreSpriteCallbackInData6(sprite, AnimFalseSwipeSlice_Step2); sprite->callback = TranslateSpriteLinear; } } -static void AnimFalseSwipeSliceStep2(struct Sprite* sprite) +static void AnimFalseSwipeSlice_Step2(struct Sprite* sprite) { sprite->data[0] = 0; sprite->data[1] = 0; - sprite->callback = AnimFalseSwipeSliceStep3; + sprite->callback = AnimFalseSwipeSlice_Step3; } -static void AnimFalseSwipeSliceStep3(struct Sprite* sprite) +static void AnimFalseSwipeSlice_Step3(struct Sprite* sprite) { if (++sprite->data[0] > 1) { @@ -4765,7 +4767,7 @@ static void AnimFalseSwipeSliceStep3(struct Sprite* sprite) } } -void AnimEndureEnergy(struct Sprite* sprite) +static void AnimEndureEnergy(struct Sprite* sprite) { if (gBattleAnimArgs[0] == 0) { @@ -4780,10 +4782,10 @@ void AnimEndureEnergy(struct Sprite* sprite) sprite->data[0] = 0; sprite->data[1] = gBattleAnimArgs[3]; - sprite->callback = AnimEndureEnergyStep; + sprite->callback = AnimEndureEnergy_Step; } -static void AnimEndureEnergyStep(struct Sprite* sprite) +static void AnimEndureEnergy_Step(struct Sprite* sprite) { if (++sprite->data[0] > sprite->data[1]) { @@ -4796,7 +4798,7 @@ static void AnimEndureEnergyStep(struct Sprite* sprite) DestroyAnimSprite(sprite); } -void AnimSharpenSphere(struct Sprite* sprite) +static void AnimSharpenSphere(struct Sprite* sprite) { sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3) - 12; @@ -4806,10 +4808,10 @@ void AnimSharpenSphere(struct Sprite* sprite) sprite->data[3] = 0; sprite->data[4] = 0; sprite->data[5] = BattleAnimAdjustPanning(-64); - sprite->callback = AnimSharpenSphereStep; + sprite->callback = AnimSharpenSphere_Step; } -static void AnimSharpenSphereStep(struct Sprite* sprite) +static void AnimSharpenSphere_Step(struct Sprite* sprite) { if (++sprite->data[0] >= sprite->data[1]) { @@ -4833,7 +4835,7 @@ static void AnimSharpenSphereStep(struct Sprite* sprite) DestroyAnimSprite(sprite); } -void AnimConversion(struct Sprite* sprite) +static void AnimConversion(struct Sprite* sprite) { if (sprite->data[0] == 0) { @@ -4873,15 +4875,15 @@ void AnimTask_ConversionAlphaBlend(u8 taskId) } } -void AnimConversion2(struct Sprite* sprite) +static void AnimConversion2(struct Sprite* sprite) { InitSpritePosToAnimTarget(sprite, FALSE); sprite->animPaused = 1; sprite->data[0] = gBattleAnimArgs[2]; - sprite->callback = AnimConversion2Step; + sprite->callback = AnimConversion2_Step; } -static void AnimConversion2Step(struct Sprite* sprite) +static void AnimConversion2_Step(struct Sprite* sprite) { if (sprite->data[0]) { @@ -4934,7 +4936,7 @@ void unref_sub_81024A8(u8 taskId) DestroyAnimVisualTask(taskId); } -void AnimMoon(struct Sprite* sprite) +static void AnimMoon(struct Sprite* sprite) { if (IsContest()) { @@ -4950,16 +4952,16 @@ void AnimMoon(struct Sprite* sprite) sprite->oam.shape = SPRITE_SHAPE(64x64); sprite->oam.size = SPRITE_SIZE(64x64); sprite->data[0] = 0; - sprite->callback = AnimMoonStep; + sprite->callback = AnimMoon_Step; } -static void AnimMoonStep(struct Sprite* sprite) +static void AnimMoon_Step(struct Sprite* sprite) { if (sprite->data[0]) DestroyAnimSprite(sprite); } -void AnimMoonlightSparkle(struct Sprite* sprite) +static void AnimMoonlightSparkle(struct Sprite* sprite) { sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2) + gBattleAnimArgs[0]; sprite->pos1.y = gBattleAnimArgs[1]; @@ -4968,10 +4970,10 @@ void AnimMoonlightSparkle(struct Sprite* sprite) sprite->data[2] = 0; sprite->data[3] = 0; sprite->data[4] = 1; - sprite->callback = AnimMoonlightSparkleStep; + sprite->callback = AnimMoonlightSparkle_Step; } -static void AnimMoonlightSparkleStep(struct Sprite* sprite) +static void AnimMoonlightSparkle_Step(struct Sprite* sprite) { if (++sprite->data[1] > 1) { @@ -4987,10 +4989,7 @@ static void AnimMoonlightSparkleStep(struct Sprite* sprite) DestroyAnimSprite(sprite); } -void AnimTask_FadeScreenBlueStep(u8); - - -void AnimTask_FadeScreenBlue(u8 taskId) +void AnimTask_MoonlightEndFade(u8 taskId) { int a = sub_80A75AC(1, 0, 0, 0, 0, 0, 0) & 0xFFFF; int b; @@ -5013,11 +5012,11 @@ void AnimTask_FadeScreenBlue(u8 taskId) b = b | (0x10000 << IndexOfSpritePaletteTag(ANIM_TAG_MOON)); d = IndexOfSpritePaletteTag(ANIM_TAG_GREEN_SPARKLE); BeginNormalPaletteFade((0x10000 << d) | b, 0, 0, 16, RGB(27, 29, 31)); - gTasks[taskId].func = AnimTask_FadeScreenBlueStep; + gTasks[taskId].func = AnimTask_MoonlightEndFade_Step; gTasks[taskId].func(taskId); } -void AnimTask_FadeScreenBlueStep(u8 taskId) +static void AnimTask_MoonlightEndFade_Step(u8 taskId) { struct Task* task = &gTasks[taskId]; switch (task->data[0]) @@ -5095,7 +5094,7 @@ void AnimTask_FadeScreenBlueStep(u8 taskId) } } -void AnimHornHit(struct Sprite* sprite) +static void AnimHornHit(struct Sprite* sprite) { if (gBattleAnimArgs[2] < 2) gBattleAnimArgs[2] = 2; @@ -5139,10 +5138,10 @@ void AnimHornHit(struct Sprite* sprite) sprite->oam.matrixNum = (ST_OAM_HFLIP | ST_OAM_VFLIP); } - sprite->callback = AnimHornHitStep; + sprite->callback = AnimHornHit_Step; } -static void AnimHornHitStep(struct Sprite* sprite) +static void AnimHornHit_Step(struct Sprite* sprite) { sprite->data[2] += sprite->data[3]; sprite->data[4] += sprite->data[5]; @@ -5181,19 +5180,19 @@ void AnimTask_DoubleTeam(u8 taskId) gSprites[obj].data[0] = 0; gSprites[obj].data[1] = i << 7; gSprites[obj].data[2] = taskId; - gSprites[obj].callback = AnimTask_DoubleTeamCallback; + gSprites[obj].callback = AnimDoubleTeam; task->data[3]++; i++; } - task->func = AnimTask_DoubleTeamStep; + task->func = AnimTask_DoubleTeam_Step; if (GetBattlerSpriteBGPriorityRank(gBattleAnimAttacker) == 1) ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_BG1_ON); else ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_BG2_ON); } -static void AnimTask_DoubleTeamStep(u8 taskId) +static void AnimTask_DoubleTeam_Step(u8 taskId) { struct Task* task = &gTasks[taskId]; if (!task->data[3]) @@ -5208,7 +5207,7 @@ static void AnimTask_DoubleTeamStep(u8 taskId) } } -static void AnimTask_DoubleTeamCallback(struct Sprite* sprite) +static void AnimDoubleTeam(struct Sprite* sprite) { if (++sprite->data[3] > 1) { @@ -5230,7 +5229,7 @@ static void AnimTask_DoubleTeamCallback(struct Sprite* sprite) } } -void AnimSuperFang(struct Sprite* sprite) +static void AnimSuperFang(struct Sprite* sprite) { StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); sprite->callback = RunStoredCallbackWhenAnimEnds; @@ -5273,7 +5272,7 @@ void AnimTask_MusicNotesClearRainbowBlend(u8 taskId) DestroyAnimVisualTask(taskId); } -void AnimWavyMusicNotes(struct Sprite* sprite) +static void AnimWavyMusicNotes(struct Sprite* sprite) { u8 index; u8 a; @@ -5300,7 +5299,7 @@ void AnimWavyMusicNotes(struct Sprite* sprite) sprite->data[4] = sprite->pos1.x << 4; sprite->data[5] = sprite->pos1.y << 4; AnimWavyMusicNotesGetNextPos(a - sprite->pos1.x, b - sprite->pos1.y, &sprite->data[6], &sprite->data[7], 40); - sprite->callback = AnimWavyMusicNotesStep; + sprite->callback = AnimWavyMusicNotes_Step; } static void AnimWavyMusicNotesGetNextPos(s16 a, s16 b, s16* c, s16* d, s8 e) @@ -5319,7 +5318,7 @@ static void AnimWavyMusicNotesGetNextPos(s16 a, s16 b, s16* c, s16* d, s8 e) *d = (b << 8) / g; } -static void AnimWavyMusicNotesStep(struct Sprite* sprite) +static void AnimWavyMusicNotes_Step(struct Sprite* sprite) { s16 y, yDelta; u8 index; @@ -5352,7 +5351,7 @@ static void AnimWavyMusicNotesStep(struct Sprite* sprite) } } -void AnimFlyingMusicNotes(struct Sprite* sprite) +static void AnimFlyingMusicNotes(struct Sprite* sprite) { if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_OPPONENT) gBattleAnimArgs[1] *= -1; @@ -5366,10 +5365,10 @@ void AnimFlyingMusicNotes(struct Sprite* sprite) sprite->data[5] = sprite->pos1.y << 4; sprite->data[6] = (gBattleAnimArgs[1] << 4) / 5; sprite->data[7] = (gBattleAnimArgs[2] << 7) / 5; - sprite->callback = AnimFlyingMusicNotesStep; + sprite->callback = AnimFlyingMusicNotes_Step; } -static void AnimFlyingMusicNotesStep(struct Sprite* sprite) +static void AnimFlyingMusicNotes_Step(struct Sprite* sprite) { sprite->data[4] += sprite->data[6]; sprite->data[5] += sprite->data[7]; @@ -5388,7 +5387,7 @@ static void AnimFlyingMusicNotesStep(struct Sprite* sprite) DestroySpriteAndMatrix(sprite); } -void AnimBellyDrumHand(struct Sprite* sprite) +static void AnimBellyDrumHand(struct Sprite* sprite) { s16 a; if (gBattleAnimArgs[0] == 1) @@ -5427,10 +5426,10 @@ void AnimSlowFlyingMusicNotes(struct Sprite* sprite) sprite->data[4] = sprite->data[3] - 40; InitAnimLinearTranslation(sprite); sprite->data[5] = gBattleAnimArgs[3]; - sprite->callback = AnimSlowFlyingMusicNotesStep; + sprite->callback = AnimSlowFlyingMusicNotes_Step; } -static void AnimSlowFlyingMusicNotesStep(struct Sprite* sprite) +static void AnimSlowFlyingMusicNotes_Step(struct Sprite* sprite) { if (AnimTranslateLinear(sprite) == 0) { @@ -5459,7 +5458,7 @@ void SetSpriteNextToMonHead(u8 battler, struct Sprite* sprite) sprite->pos1.y = GetBattlerSpriteCoord(battler, 3) - (s16)GetBattlerSpriteCoordAttr(battler, BATTLER_COORD_ATTR_HEIGHT) / 4; } -void AnimThoughtBubble(struct Sprite* sprite) +static void AnimThoughtBubble(struct Sprite* sprite) { u8 a; u8 battler; @@ -5473,11 +5472,11 @@ void AnimThoughtBubble(struct Sprite* sprite) sprite->data[0] = gBattleAnimArgs[1]; sprite->data[1] = a + 2; StartSpriteAnim(sprite, a); - StoreSpriteCallbackInData6(sprite, AnimThoughtBubbleStep); + StoreSpriteCallbackInData6(sprite, AnimThoughtBubble_Step); sprite->callback = RunStoredCallbackWhenAnimEnds; } -static void AnimThoughtBubbleStep(struct Sprite* sprite) +static void AnimThoughtBubble_Step(struct Sprite* sprite) { if (--sprite->data[0] == 0) { @@ -5487,7 +5486,7 @@ static void AnimThoughtBubbleStep(struct Sprite* sprite) } } -void AnimMetronomeFinger(struct Sprite* sprite) +static void AnimMetronomeFinger(struct Sprite* sprite) { u8 battler; if (gBattleAnimArgs[0] == 0) @@ -5497,11 +5496,11 @@ void AnimMetronomeFinger(struct Sprite* sprite) SetSpriteNextToMonHead(battler, sprite); sprite->data[0] = 0; - StoreSpriteCallbackInData6(sprite, AnimMetronomeFingerStep); + StoreSpriteCallbackInData6(sprite, AnimMetronomeFinger_Step); sprite->callback = RunStoredCallbackWhenAffineAnimEnds; } -static void AnimMetronomeFingerStep(struct Sprite* sprite) +static void AnimMetronomeFinger_Step(struct Sprite* sprite) { if (++sprite->data[0] > 16) { @@ -5511,7 +5510,7 @@ static void AnimMetronomeFingerStep(struct Sprite* sprite) } } -void AnimFollowMeFinger(struct Sprite* sprite) +static void AnimFollowMeFinger(struct Sprite* sprite) { u8 battler; if (gBattleAnimArgs[0] == 0) @@ -5529,17 +5528,17 @@ void AnimFollowMeFinger(struct Sprite* sprite) sprite->data[2] = sprite->subpriority; sprite->data[3] = sprite->subpriority + 4; sprite->data[4] = 0; - StoreSpriteCallbackInData6(sprite, AnimFollowMeFingerStep1); + StoreSpriteCallbackInData6(sprite, AnimFollowMeFinger_Step1); sprite->callback = RunStoredCallbackWhenAffineAnimEnds; } -static void AnimFollowMeFingerStep1(struct Sprite* sprite) +static void AnimFollowMeFinger_Step1(struct Sprite* sprite) { if (++sprite->data[4] > 12) - sprite->callback = AnimFollowMeFingerStep2; + sprite->callback = AnimFollowMeFinger_Step2; } -static void AnimFollowMeFingerStep2(struct Sprite* sprite) +static void AnimFollowMeFinger_Step2(struct Sprite* sprite) { s16 x1, x2; @@ -5549,7 +5548,7 @@ static void AnimFollowMeFingerStep2(struct Sprite* sprite) if (--sprite->data[0] == 0) { sprite->pos2.x = 0; - sprite->callback = AnimMetronomeFingerStep; + sprite->callback = AnimMetronomeFinger_Step; return; } else @@ -5569,7 +5568,7 @@ static void AnimFollowMeFingerStep2(struct Sprite* sprite) sprite->pos2.x = (x1 >> 3) + (x2 >> 1); } -void AnimTauntFinger(struct Sprite* sprite) +static void AnimTauntFinger(struct Sprite* sprite) { u8 battler; if (gBattleAnimArgs[0] == 0) @@ -5589,21 +5588,21 @@ void AnimTauntFinger(struct Sprite* sprite) sprite->data[0] = 3; } - sprite->callback = AnimTauntFingerStep1; + sprite->callback = AnimTauntFinger_Step1; } -static void AnimTauntFingerStep1(struct Sprite* sprite) +static void AnimTauntFinger_Step1(struct Sprite* sprite) { if (++sprite->data[1] > 10) { sprite->data[1] = 0; StartSpriteAnim(sprite, sprite->data[0]); - StoreSpriteCallbackInData6(sprite, AnimTauntFingerStep2); + StoreSpriteCallbackInData6(sprite, AnimTauntFinger_Step2); sprite->callback = RunStoredCallbackWhenAnimEnds; } } -static void AnimTauntFingerStep2(struct Sprite* sprite) +static void AnimTauntFinger_Step2(struct Sprite* sprite) { if (++sprite->data[1] > 5) DestroyAnimSprite(sprite); diff --git a/src/battle_anim_effects_2.c b/src/battle_anim_effects_2.c index dcbcced39..cf85e697a 100755 --- a/src/battle_anim_effects_2.c +++ b/src/battle_anim_effects_2.c @@ -16,70 +16,43 @@ #include "constants/rgb.h" #include "constants/songs.h" -void sub_8103448(struct Sprite *); -void sub_8103498(struct Sprite *); -void sub_810358C(struct Sprite *); -void sub_8103620(struct Sprite *); -void Anim_KinesisZapEnergy(struct Sprite *); -void Anim_SwordsDanceBlade(struct Sprite *); -void AnimSonicBoomProjectile(struct Sprite *); -void AnimAirWaveProjectile(struct Sprite *); -void sub_8103FE8(struct Sprite *); -void AnimCoinThrow(struct Sprite *); -void AnimFallingCoin(struct Sprite *); -void AnimBulletSeed(struct Sprite *); -void AnimRazorWindTornado(struct Sprite *); -void AnimViceGripPincer(struct Sprite *); -void AnimGuillotinePincer(struct Sprite *); -void AnimBreathPuff(struct Sprite *); -void AnimAngerMark(struct Sprite *); -void AnimPencil(struct Sprite *); -void AnimBlendThinRing(struct Sprite *); -void AnimHyperVoiceRing(struct Sprite *); -void AnimUproarRing(struct Sprite *); -void AnimSoftBoiledEgg(struct Sprite *); -void AnimSpeedDust(struct Sprite *); -void AnimHealBellMusicNote(struct Sprite *); -void AnimMagentaHeart(struct Sprite *); -void AnimRedHeartProjectile(struct Sprite *); -void AnimParticuleBurst(struct Sprite *); -void AnimRedHeartRising(struct Sprite *); -void AnimOrbitFast(struct Sprite *); -void AnimOrbitScatter(struct Sprite *); -void AnimSpitUpOrb(struct Sprite *); -void AnimEyeSparkle(struct Sprite *); -void AnimAngel(struct Sprite *); -void AnimPinkHeart(struct Sprite *); -void AnimDevil(struct Sprite *); -void AnimFurySwipes(struct Sprite *); -void AnimMovmentWaves(struct Sprite *); -void AnimJaggedMusicNote(struct Sprite *); -void AnimPerishSongMusicNote2(struct Sprite *); -void AnimPerishSongMusicNote(struct Sprite *); -void AnimGuardRing(struct Sprite *); +static void sub_8103448(struct Sprite *); +static void sub_8103498(struct Sprite *); static void sub_81034D8(struct Sprite *); +static void sub_810358C(struct Sprite *); +static void sub_8103620(struct Sprite *); static void sub_8103658(struct Sprite *); static void sub_8103680(struct Sprite *); -static void AnimTask_WithdrawStep(u8); -static void AnimSwordsDanceBladeStep(struct Sprite *); +static void AnimKinesisZapEnergy(struct Sprite *); +static void AnimSwordsDanceBlade(struct Sprite *); +static void AnimSwordsDanceBlade_Step(struct Sprite *); +static void AnimSonicBoomProjectile(struct Sprite *); +static void AnimAirWaveProjectile(struct Sprite *); +static void AnimAirWaveProjectile_Step1(struct Sprite *sprite); +static void AnimAirWaveProjectile_Step2(struct Sprite *sprite); +static void sub_8103FE8(struct Sprite *); static void sub_8104018(struct Sprite *); +static void AnimCoinThrow(struct Sprite *); +static void AnimFallingCoin(struct Sprite *); static void AnimFallingCoin_Step(struct Sprite *); +static void AnimBulletSeed(struct Sprite *); static void AnimBulletSeed_Step1(struct Sprite *); static void AnimBulletSeed_Step2(struct Sprite *); -static void AnimViceGripPincerStep(struct Sprite *); -static void AnimGuillotinePincerStep1(struct Sprite *); -static void AnimGuillotinePincerStep2(struct Sprite *); -static void AnimGuillotinePincerStep3(struct Sprite *); -static void AnimTask_GrowAndGreyscaleStep(u8); -static void AnimTask_MinimizeStep1(u8); -static void CreateMinimizeSprite(struct Task *, u8); -static void ClonedMinizeSprite_Step(struct Sprite *); -static void AnimTask_SplashStep(u8); -static void AnimTask_GrowAndShrinkStep(u8); -static void ThrashMoveMonStep(u8); -static void ThrashMoveMon(u8); -static void AnimTask_SketchDrawMon(u8); +static void AnimRazorWindTornado(struct Sprite *); +static void AnimViceGripPincer(struct Sprite *); +static void AnimViceGripPincer_Step(struct Sprite *); +static void AnimGuillotinePincer(struct Sprite *); +static void AnimGuillotinePincer_Step1(struct Sprite *); +static void AnimGuillotinePincer_Step2(struct Sprite *); +static void AnimGuillotinePincer_Step3(struct Sprite *); +static void AnimBreathPuff(struct Sprite *); +static void AnimAngerMark(struct Sprite *); +static void AnimPencil(struct Sprite *); static void AnimPencil_Step(struct Sprite *); +static void AnimBlendThinRing(struct Sprite *); +static void AnimHyperVoiceRing(struct Sprite *); +static void AnimUproarRing(struct Sprite *); +static void AnimSoftBoiledEgg(struct Sprite *); static void AnimSoftBoiledEgg_Step1(struct Sprite *); static void AnimSoftBoiledEgg_Step2(struct Sprite *); static void AnimSoftBoiledEgg_Step3(struct Sprite *); @@ -87,23 +60,53 @@ static void AnimSoftBoiledEgg_Step3_Callback1(struct Sprite *); static void AnimSoftBoiledEgg_Step3_Callback2(struct Sprite *); static void AnimSoftBoiledEgg_Step4(struct Sprite *); static void AnimSoftBoiledEgg_Step4_Callback(struct Sprite *); -static void StretchAttacker_Step(u8); -static void ExtremeSpeedImpact_Step(u8); -static void ExtremeSpeedMonReappear_Step(u8); -static void SpeedDust_Step1(u8); -static void FakeOutStep1(u8); -static void FakeOutStep2(u8); +static void AnimSpeedDust(struct Sprite *); +static void AnimHealBellMusicNote(struct Sprite *); +static void AnimMagentaHeart(struct Sprite *); +static void AnimRedHeartProjectile(struct Sprite *); static void AnimRedHeartProjectile_Step(struct Sprite *); +static void AnimRedHeartRising(struct Sprite *); static void AnimRedHeartRising_Step(struct Sprite *); -static void HeartsBackground_Step(u8); -static void ScaryFace_Step(u8); -static void AnimOrbitFastStep(struct Sprite *); -static void AnimOrbitScatterStep(struct Sprite *); +static void AnimOrbitFast(struct Sprite *); +static void AnimOrbitFast_Step(struct Sprite *); +static void AnimOrbitScatter(struct Sprite *); +static void AnimOrbitScatter_Step(struct Sprite *); +static void AnimSpitUpOrb(struct Sprite *); +static void AnimSpitUpOrb_Step(struct Sprite *sprite); +static void AnimEyeSparkle(struct Sprite *); +static void AnimEyeSparkle_Step(struct Sprite *sprite); +static void AnimAngel(struct Sprite *); +static void AnimPinkHeart(struct Sprite *); +static void AnimDevil(struct Sprite *); +static void AnimFurySwipes(struct Sprite *); +static void AnimMovmentWaves(struct Sprite *); static void AnimMovmentWaves_Step(struct Sprite *); -static void UproarDistortion_Step(u8); +static void AnimJaggedMusicNote(struct Sprite *); static void AnimJaggedMusicNote_Step(struct Sprite *); +static void AnimPerishSongMusicNote2(struct Sprite *); +static void AnimPerishSongMusicNote(struct Sprite *); static void AnimPerishSongMusicNote_Step1(struct Sprite *); static void AnimPerishSongMusicNote_Step2(struct Sprite *); +static void AnimGuardRing(struct Sprite *); +static void AnimTask_Withdraw_Step(u8); +static void AnimTask_GrowAndGreyscale_Step(u8); +static void AnimTask_Minimize_Step(u8); +static void CreateMinimizeSprite(struct Task *, u8); +static void ClonedMinizeSprite_Step(struct Sprite *); +static void AnimTask_Splash_Step(u8); +static void AnimTask_GrowAndShrink_Step(u8); +static void AnimTask_ThrashMoveMonHorizontal_Step(u8); +static void AnimTask_ThrashMoveMonVertical_Step(u8); +static void AnimTask_SketchDrawMon_Step(u8); +static void AnimTask_AttackerStretchAndDisappear_Step(u8); +static void AnimTask_ExtremeSpeedImpact_Step(u8); +static void AnimTask_ExtremeSpeedMonReappear_Step(u8); +static void AnimTask_SpeedDust_Step(u8); +static void AnimTask_FakeOut_Step1(u8); +static void AnimTask_FakeOut_Step2(u8); +static void AnimTask_HeartsBackground_Step(u8); +static void AnimTask_ScaryFace_Step(u8); +static void AnimTask_UproarDistortion_Step(u8); // Unused const struct SpriteTemplate gUnknown_08593264 = @@ -123,6 +126,7 @@ const union AnimCmd gUnknown_0859327C[] = ANIMCMD_END, }; +// Unused const union AnimCmd *const gUnknown_08593284[] = { gUnknown_0859327C, @@ -152,7 +156,6 @@ const struct SpriteTemplate gUnknown_085932A0 = .callback = sub_810358C, }; -extern const union AffineAnimCmd *const gUnknown_08597060[]; // Unused const struct SpriteTemplate gUnknown_085932B8 = { @@ -161,7 +164,7 @@ const struct SpriteTemplate gUnknown_085932B8 = .oam = &gOamData_AffineNormal_ObjBlend_64x64, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_08597060, + .affineAnims = gAffineAnims_Bite, .callback = sub_8103620, }; @@ -229,7 +232,7 @@ const struct SpriteTemplate gKinesisZapEnergySpriteTemplate = .anims = gKinesisZapEnergyAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = Anim_KinesisZapEnergy, + .callback = AnimKinesisZapEnergy, }; const union AffineAnimCmd gSwordsDanceBladeAffineAnimCmds[] = @@ -253,7 +256,7 @@ const struct SpriteTemplate gSwordsDanceBladeSpriteTemplate = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gSwordsDanceBladeAffineAnimTable, - .callback = Anim_SwordsDanceBlade, + .callback = AnimSwordsDanceBlade, }; const struct SpriteTemplate gSonicBoomSpriteTemplate = @@ -307,7 +310,7 @@ const union AffineAnimCmd *const gWaterPulseRingAffineAnimTable[] = gWaterPulseRingAffineAnimCmds, }; -const struct SpriteTemplate gSupersonicWaveSpriteTemplate = +const struct SpriteTemplate gSupersonicRingSpriteTemplate = { .tileTag = ANIM_TAG_GOLD_RING, .paletteTag = ANIM_TAG_GOLD_RING, @@ -318,7 +321,7 @@ const struct SpriteTemplate gSupersonicWaveSpriteTemplate = .callback = TranslateAnimSpriteToTargetMonLocation, }; -const struct SpriteTemplate gScreechWaveSpriteTemplate = +const struct SpriteTemplate gScreechRingSpriteTemplate = { .tileTag = ANIM_TAG_PURPLE_RING, .paletteTag = ANIM_TAG_PURPLE_RING, @@ -632,7 +635,7 @@ const struct SpriteTemplate gSnoreZSpriteTemplate = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = AnimSnoreZ, + .callback = AnimTravelDiagonally, }; const union AnimCmd gExplosionAnimCmds[] = @@ -877,7 +880,9 @@ const struct SpriteTemplate gBellSpriteTemplate = .callback = AnimSpriteOnMonPos, }; -const u16 gMusicNotePaletteTagsTable[] = +#define NUM_MUSIC_NOTE_PAL_TAGS 3 + +static const u16 sMusicNotePaletteTagsTable[NUM_MUSIC_NOTE_PAL_TAGS] = { ANIM_TAG_MUSIC_NOTES_2, ANIM_SPRITES_START - 1, @@ -906,7 +911,7 @@ const struct SpriteTemplate gMagentaHeartSpriteTemplate = .callback = AnimMagentaHeart, }; -const union AffineAnimCmd gUnknown_08593988[] = +static const union AffineAnimCmd sAffineAnims_StretchBattlerUp[] = { AFFINEANIMCMD_FRAME(0x000A, 0xFFF3, 0x00, 0x0A), AFFINEANIMCMD_FRAME(0xFFF6, 0x000D, 0x00, 0x0A), @@ -932,7 +937,7 @@ const struct SpriteTemplate gRedHeartBurstSpriteTemplate = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = AnimParticuleBurst, + .callback = AnimParticleBurst, }; const struct SpriteTemplate gRedHeartRisingSpriteTemplate = @@ -1161,7 +1166,7 @@ const struct SpriteTemplate gMovementWavesSpriteTemplate = .callback = AnimMovmentWaves, }; -const union AffineAnimCmd gUnknown_08593B98[] = +static const union AffineAnimCmd sAffineAnims_UproarDistortion[] = { AFFINEANIMCMD_FRAME(-12, 8, 0, 4), AFFINEANIMCMD_FRAME(20, -20, 0, 4), @@ -1257,7 +1262,7 @@ const struct SpriteTemplate gGuardRingSpriteTemplate = .callback = AnimGuardRing, }; -void sub_8103448(struct Sprite *sprite) +static void sub_8103448(struct Sprite *sprite) { SetSpriteCoordsToAnimAttackerCoords(sprite); SetAnimSpriteInitialXOffset(sprite, gBattleAnimArgs[0]); @@ -1271,7 +1276,7 @@ void sub_8103448(struct Sprite *sprite) sprite->callback(sprite); } -void sub_8103498(struct Sprite *sprite) +static void sub_8103498(struct Sprite *sprite) { u8 battler; if (gBattleAnimArgs[0] == 0) @@ -1321,7 +1326,7 @@ static void sub_810353C(struct Sprite *sprite) sprite->data[0]--; } -void sub_810358C(struct Sprite *sprite) +static void sub_810358C(struct Sprite *sprite) { u8 spriteId; sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); @@ -1337,10 +1342,10 @@ void sub_810358C(struct Sprite *sprite) sprite->data[1] = gBattleAnimArgs[3]; sprite->data[2] = spriteId; sprite->callback = sub_810353C; - sprite->invisible = 1; + sprite->invisible = TRUE; } -void sub_8103620(struct Sprite *sprite) +static void sub_8103620(struct Sprite *sprite) { InitSpritePosToAnimAttacker(sprite, TRUE); sprite->data[0] = gBattleAnimArgs[2]; @@ -1372,10 +1377,10 @@ static void sub_8103680(struct Sprite *sprite) void AnimTask_Withdraw(u8 taskId) { PrepareBattlerSpriteForRotScale(gBattlerSpriteIds[gBattleAnimAttacker], ST_OAM_OBJ_NORMAL); - gTasks[taskId].func = AnimTask_WithdrawStep; + gTasks[taskId].func = AnimTask_Withdraw_Step; } -static void AnimTask_WithdrawStep(u8 taskId) +static void AnimTask_Withdraw_Step(u8 taskId) { u8 spriteId = gBattlerSpriteIds[gBattleAnimAttacker]; s16 rotation; @@ -1424,7 +1429,7 @@ static void AnimTask_WithdrawStep(u8 taskId) // arg 0: x pixel offset // arg 1: y pixel offset // arg 2: vertical flip -void Anim_KinesisZapEnergy(struct Sprite *sprite) +static void AnimKinesisZapEnergy(struct Sprite *sprite) { SetSpriteCoordsToAnimAttackerCoords(sprite); if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) @@ -1452,14 +1457,14 @@ void Anim_KinesisZapEnergy(struct Sprite *sprite) // Animates a sword that rises into the air after a brief pause. // arg 0: x pixel offset // arg 1: y pixel offset -void Anim_SwordsDanceBlade(struct Sprite *sprite) +static void AnimSwordsDanceBlade(struct Sprite *sprite) { InitSpritePosToAnimAttacker(sprite, FALSE); sprite->callback = RunStoredCallbackWhenAffineAnimEnds; - StoreSpriteCallbackInData6(sprite, AnimSwordsDanceBladeStep); + StoreSpriteCallbackInData6(sprite, AnimSwordsDanceBlade_Step); } -static void AnimSwordsDanceBladeStep(struct Sprite *sprite) +static void AnimSwordsDanceBlade_Step(struct Sprite *sprite) { sprite->data[0] = 6; sprite->data[2] = sprite->pos1.x; @@ -1475,7 +1480,7 @@ static void AnimSwordsDanceBladeStep(struct Sprite *sprite) // arg 2: target x pixel offset // arg 3: target y pixel offset // arg 4: duration -void AnimSonicBoomProjectile(struct Sprite *sprite) +static void AnimSonicBoomProjectile(struct Sprite *sprite) { s16 targetXPos; s16 targetYPos; @@ -1550,7 +1555,7 @@ static void AnimAirWaveProjectile_Step1(struct Sprite *sprite) } } -void AnimAirWaveProjectile(struct Sprite *sprite) +static void AnimAirWaveProjectile(struct Sprite *sprite) { s16 a; s16 b; @@ -1733,7 +1738,7 @@ void AnimTask_AirCutterProjectile(u8 taskId) gTasks[taskId].func = AirCutterProjectileStep1; } -void sub_8103FE8(struct Sprite *sprite) +static void sub_8103FE8(struct Sprite *sprite) { InitSpritePosToAnimAttacker(sprite, FALSE); sprite->data[0] = 0x100 + (IndexOfSpritePaletteTag(gUnknown_085934A0.paletteTag) << 4); @@ -1760,7 +1765,7 @@ static void sub_8104018(struct Sprite *sprite) } } -void AnimCoinThrow(struct Sprite *sprite) +static void AnimCoinThrow(struct Sprite *sprite) { s16 r6; s16 r7; @@ -1783,7 +1788,7 @@ void AnimCoinThrow(struct Sprite *sprite) StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); } -void AnimFallingCoin(struct Sprite *sprite) +static void AnimFallingCoin(struct Sprite *sprite) { sprite->data[2] = -16; sprite->pos1.y += 8; @@ -1808,7 +1813,7 @@ static void AnimFallingCoin_Step(struct Sprite *sprite) } } -void AnimBulletSeed(struct Sprite *sprite) +static void AnimBulletSeed(struct Sprite *sprite) { InitSpritePosToAnimAttacker(sprite, TRUE); sprite->data[0] = 20; @@ -1867,7 +1872,7 @@ static void AnimBulletSeed_Step2(struct Sprite *sprite) // arg 4: initial wave offset // arg 5: wave period (higher means faster wave) // arg 6: duration -void AnimRazorWindTornado(struct Sprite *sprite) +static void AnimRazorWindTornado(struct Sprite *sprite) { InitSpritePosToAnimAttacker(sprite, FALSE); if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) @@ -1885,7 +1890,7 @@ void AnimRazorWindTornado(struct Sprite *sprite) // Animates a single pincer line that extends towards the center of the target mon. // arg 0: invert -void AnimViceGripPincer(struct Sprite *sprite) +static void AnimViceGripPincer(struct Sprite *sprite) { s16 startXOffset = 32; s16 startYOffset = -32; @@ -1906,10 +1911,10 @@ void AnimViceGripPincer(struct Sprite *sprite) sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) + endXOffset; sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) + endYOffset; sprite->callback = StartAnimLinearTranslation; - StoreSpriteCallbackInData6(sprite, AnimViceGripPincerStep); + StoreSpriteCallbackInData6(sprite, AnimViceGripPincer_Step); } -static void AnimViceGripPincerStep(struct Sprite *sprite) +static void AnimViceGripPincer_Step(struct Sprite *sprite) { if (sprite->animEnded) DestroyAnimSprite(sprite); @@ -1917,7 +1922,7 @@ static void AnimViceGripPincerStep(struct Sprite *sprite) // Animates a single pincer line that extends towards the center of the target mon, and then back out. // arg 0: animation id -void AnimGuillotinePincer(struct Sprite *sprite) +static void AnimGuillotinePincer(struct Sprite *sprite) { s16 startXOffset = 32; s16 startYOffset = -32; @@ -1942,10 +1947,10 @@ void AnimGuillotinePincer(struct Sprite *sprite) InitAnimLinearTranslation(sprite); sprite->data[5] = gBattleAnimArgs[0]; sprite->data[6] = sprite->data[0]; - sprite->callback = AnimGuillotinePincerStep1; + sprite->callback = AnimGuillotinePincer_Step1; } -static void AnimGuillotinePincerStep1(struct Sprite *sprite) +static void AnimGuillotinePincer_Step1(struct Sprite *sprite) { if (AnimTranslateLinear(sprite) && sprite->animEnded) { @@ -1960,11 +1965,11 @@ static void AnimGuillotinePincerStep1(struct Sprite *sprite) sprite->data[2] ^= 1; sprite->data[4] = 0; sprite->data[3] = 0; - sprite->callback = AnimGuillotinePincerStep2; + sprite->callback = AnimGuillotinePincer_Step2; } } -static void AnimGuillotinePincerStep2(struct Sprite *sprite) +static void AnimGuillotinePincer_Step2(struct Sprite *sprite) { if (sprite->data[3]) { @@ -1981,11 +1986,11 @@ static void AnimGuillotinePincerStep2(struct Sprite *sprite) sprite->data[3] = 0; sprite->animPaused = 0; StartSpriteAnim(sprite, sprite->data[5] ^ 1); - sprite->callback = AnimGuillotinePincerStep3; + sprite->callback = AnimGuillotinePincer_Step3; } } -static void AnimGuillotinePincerStep3(struct Sprite *sprite) +static void AnimGuillotinePincer_Step3(struct Sprite *sprite) { if (AnimTranslateLinear(sprite)) DestroyAnimSprite(sprite); @@ -2001,10 +2006,10 @@ void AnimTask_GrowAndGreyscale(u8 taskId) SetSpriteRotScale(spriteId, 0xD0, 0xD0, 0); SetGreyscaleOrOriginalPalette(gSprites[spriteId].oam.paletteNum + 16, FALSE); gTasks[taskId].data[0] = 80; - gTasks[taskId].func = AnimTask_GrowAndGreyscaleStep; + gTasks[taskId].func = AnimTask_GrowAndGreyscale_Step; } -static void AnimTask_GrowAndGreyscaleStep(u8 taskId) +static void AnimTask_GrowAndGreyscale_Step(u8 taskId) { if (--gTasks[taskId].data[0] == -1) { @@ -2031,10 +2036,10 @@ void AnimTask_Minimize(u8 taskId) task->data[5] = 0; task->data[6] = 0; task->data[7] = GetBattlerSpriteSubpriority(gBattleAnimAttacker); - task->func = AnimTask_MinimizeStep1; + task->func = AnimTask_Minimize_Step; } -static void AnimTask_MinimizeStep1(u8 taskId) +static void AnimTask_Minimize_Step(u8 taskId) { struct Task* task = &gTasks[taskId]; switch (task->data[1]) @@ -2159,11 +2164,11 @@ void AnimTask_Splash(u8 taskId) task->data[3] = 0; task->data[4] = 0; PrepareAffineAnimInTaskData(task, spriteId, gSplashEffectAffineAnimCmds); - task->func = AnimTask_SplashStep; + task->func = AnimTask_Splash_Step; } } -static void AnimTask_SplashStep(u8 taskId) +static void AnimTask_Splash_Step(u8 taskId) { struct Task* task = &gTasks[taskId]; switch (task->data[1]) @@ -2222,10 +2227,10 @@ void AnimTask_GrowAndShrink(u8 taskId) struct Task* task = &gTasks[taskId]; u8 spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER); PrepareAffineAnimInTaskData(task, spriteId, gGrowAndShrinkAffineAnimCmds); - task->func = AnimTask_GrowAndShrinkStep; + task->func = AnimTask_GrowAndShrink_Step; } -static void AnimTask_GrowAndShrinkStep(u8 taskId) +static void AnimTask_GrowAndShrink_Step(u8 taskId) { struct Task* task = &gTasks[taskId]; if (!RunAffineAnimFromTaskData(task)) @@ -2235,7 +2240,7 @@ static void AnimTask_GrowAndShrinkStep(u8 taskId) // Animates a little puff of the mon's breath. // Used by MOVE_SWAGGER and MOVE_BULK_UP // No args. -void AnimBreathPuff(struct Sprite *sprite) +static void AnimBreathPuff(struct Sprite *sprite) { if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) { @@ -2263,7 +2268,7 @@ void AnimBreathPuff(struct Sprite *sprite) // arg 0: target mon (0 = attacker, 1 = target) // arg 1: x pixel offset // arg 2: y pixel offset -void AnimAngerMark(struct Sprite *sprite) +static void AnimAngerMark(struct Sprite *sprite) { u8 battler; if (!gBattleAnimArgs[0]) @@ -2291,10 +2296,10 @@ void AnimTask_ThrashMoveMonHorizontal(u8 taskId) task->data[0] = spriteId; task->data[1] = 0; PrepareAffineAnimInTaskData(task, spriteId, gThrashMoveMonAffineAnimCmds); - task->func = ThrashMoveMonStep; + task->func = AnimTask_ThrashMoveMonHorizontal_Step; } -static void ThrashMoveMonStep(u8 taskId) +static void AnimTask_ThrashMoveMonHorizontal_Step(u8 taskId) { struct Task* task = &gTasks[taskId]; if (!RunAffineAnimFromTaskData(task)) @@ -2318,10 +2323,10 @@ void AnimTask_ThrashMoveMonVertical(u8 taskId) if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_OPPONENT) task->data[2] *= -1; - task->func = ThrashMoveMon; + task->func = AnimTask_ThrashMoveMonVertical_Step; } -static void ThrashMoveMon(u8 taskId) +static void AnimTask_ThrashMoveMonVertical_Step(u8 taskId) { struct Task* task = &gTasks[taskId]; if (++task->data[7] > 2) @@ -2372,7 +2377,7 @@ static void ThrashMoveMon(u8 taskId) } } -void sub_8104E74(u8 taskId) +void AnimTask_SketchDrawMon(u8 taskId) { struct Task* task = &gTasks[taskId]; struct ScanlineEffectParams params; @@ -2410,10 +2415,10 @@ void sub_8104E74(u8 taskId) params.initState = 1; params.unused9 = 0; ScanlineEffect_SetParams(params); - task->func = AnimTask_SketchDrawMon; + task->func = AnimTask_SketchDrawMon_Step; } -static void AnimTask_SketchDrawMon(u8 taskId) +static void AnimTask_SketchDrawMon_Step(u8 taskId) { struct Task* task = &gTasks[taskId]; @@ -2460,7 +2465,7 @@ static void AnimTask_SketchDrawMon(u8 taskId) } } -void AnimPencil(struct Sprite *sprite) +static void AnimPencil(struct Sprite *sprite) { sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, 0) - 16; sprite->pos1.y = GetBattlerYCoordWithElevation(gBattleAnimTarget) + 16; @@ -2486,7 +2491,7 @@ static void AnimPencil_Step(struct Sprite *sprite) } if (++sprite->data[1] > 16) { - sprite->invisible = 0; + sprite->invisible = FALSE; sprite->data[0]++; } break; @@ -2526,14 +2531,14 @@ static void AnimPencil_Step(struct Sprite *sprite) } if (++sprite->data[1] > 16) { - sprite->invisible = 0; + sprite->invisible = FALSE; DestroyAnimSprite(sprite); } break; } } -void AnimBlendThinRing(struct Sprite *sprite) +static void AnimBlendThinRing(struct Sprite *sprite) { u8 battler = 0; u16 sp0 = 0; @@ -2573,7 +2578,7 @@ void sub_8105284(struct Sprite *sprite) } } -void AnimHyperVoiceRing(struct Sprite *sprite) +static void AnimHyperVoiceRing(struct Sprite *sprite) { u16 r9 = 0; u16 r6 = 0; @@ -2658,7 +2663,7 @@ void AnimHyperVoiceRing(struct Sprite *sprite) sprite->callback(sprite); } -void AnimUproarRing(struct Sprite *sprite) +static void AnimUproarRing(struct Sprite *sprite) { u8 index = IndexOfSpritePaletteTag(ANIM_TAG_THIN_RING); if (index != 0xFF) @@ -2671,7 +2676,7 @@ void AnimUproarRing(struct Sprite *sprite) sprite->callback(sprite); } -void AnimSoftBoiledEgg(struct Sprite *sprite) +static void AnimSoftBoiledEgg(struct Sprite *sprite) { s16 r1; InitSpritePosToAnimAttacker(sprite, FALSE); @@ -2758,7 +2763,7 @@ static void AnimSoftBoiledEgg_Step4(struct Sprite *sprite) { if ((u16)gBattleAnimArgs[7] == 0xFFFF) { - sprite->invisible = 1; + sprite->invisible = TRUE; if (sprite->data[7] == 0) sprite->callback = AnimSoftBoiledEgg_Step4_Callback; else @@ -2773,22 +2778,23 @@ static void AnimSoftBoiledEgg_Step4_Callback(struct Sprite *sprite) DestroyAnimSprite(sprite); } -void AnimTask_StretchAttacker(u8 taskId) +// Used by Extremespeed +void AnimTask_AttackerStretchAndDisappear(u8 taskId) { struct Task* task = &gTasks[taskId]; u8 spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER); task->data[0] = spriteId; PrepareAffineAnimInTaskData(task, spriteId, gStretchAttackerAffineAnimCmds); - task->func = StretchAttacker_Step; + task->func = AnimTask_AttackerStretchAndDisappear_Step; } -static void StretchAttacker_Step(u8 taskId) +static void AnimTask_AttackerStretchAndDisappear_Step(u8 taskId) { struct Task* task = &gTasks[taskId]; if (!RunAffineAnimFromTaskData(task)) { gSprites[task->data[0]].pos2.y = 0; - gSprites[task->data[0]].invisible = 1; + gSprites[task->data[0]].invisible = TRUE; DestroyAnimVisualTask(taskId); } } @@ -2813,10 +2819,10 @@ void AnimTask_ExtremeSpeedImpact(u8 taskId) } task->data[15] = GetAnimBattlerSpriteId(ANIM_TARGET); - task->func = ExtremeSpeedImpact_Step; + task->func = AnimTask_ExtremeSpeedImpact_Step; } -static void ExtremeSpeedImpact_Step(u8 taskId) +static void AnimTask_ExtremeSpeedImpact_Step(u8 taskId) { struct Task* task = &gTasks[taskId]; @@ -2873,19 +2879,19 @@ void AnimTask_ExtremeSpeedMonReappear(u8 taskId) task->data[13] = 14; task->data[14] = 2; task->data[15] = GetAnimBattlerSpriteId(ANIM_ATTACKER); - task->func = ExtremeSpeedMonReappear_Step; + task->func = AnimTask_ExtremeSpeedMonReappear_Step; } -static void ExtremeSpeedMonReappear_Step(u8 taskId) +static void AnimTask_ExtremeSpeedMonReappear_Step(u8 taskId) { struct Task* task = &gTasks[taskId]; if (task->data[0] == 0 && ++task->data[1] > task->data[4]) { task->data[1] = 0; if (++task->data[2] & 1) - gSprites[task->data[15]].invisible = 0; + gSprites[task->data[15]].invisible = FALSE; else - gSprites[task->data[15]].invisible = 1; + gSprites[task->data[15]].invisible = TRUE; if (++task->data[3] >= task->data[13]) { @@ -2897,7 +2903,7 @@ static void ExtremeSpeedMonReappear_Step(u8 taskId) } else { - gSprites[task->data[15]].invisible = 0; + gSprites[task->data[15]].invisible = FALSE; DestroyAnimVisualTask(taskId); } } @@ -2919,10 +2925,10 @@ void AnimTask_SpeedDust(u8 taskId) task->data[13] = 0; task->data[14] = GetBattlerSpriteCoord(gBattleAnimAttacker, ANIM_ATTACKER); task->data[15] = GetBattlerSpriteCoord(gBattleAnimAttacker, ANIM_TARGET); - task->func = SpeedDust_Step1; + task->func = AnimTask_SpeedDust_Step; } -static void SpeedDust_Step1(u8 taskId) +static void AnimTask_SpeedDust_Step(u8 taskId) { struct Task* task = &gTasks[taskId]; switch (task->data[8]) @@ -2988,7 +2994,7 @@ static void SpeedDust_Step1(u8 taskId) } } -void AnimSpeedDust(struct Sprite *sprite) +static void AnimSpeedDust(struct Sprite *sprite) { sprite->invisible = gTasks[sprite->data[0]].data[5]; if (sprite->animEnded) @@ -2998,29 +3004,29 @@ void AnimSpeedDust(struct Sprite *sprite) } } -void sub_8105CB4(u8 taskId) +void AnimTask_LoadMusicNotesPals(u8 taskId) { int i; - u8 paletteNums[3]; + u8 paletteNums[NUM_MUSIC_NOTE_PAL_TAGS]; paletteNums[0] = IndexOfSpritePaletteTag(ANIM_TAG_MUSIC_NOTES_2); - for (i = 1; i < 3; i++) + for (i = 1; i < NUM_MUSIC_NOTE_PAL_TAGS; i++) paletteNums[i] = AllocSpritePalette(ANIM_SPRITES_START - i); - gMonSpritesGfxPtr->field_17C = AllocZeroed(0x2000); - LZDecompressWram(gBattleAnimSpritePal_MusicNotes2, gMonSpritesGfxPtr->field_17C); - for (i = 0; i < 3; i++) - LoadPalette(&gMonSpritesGfxPtr->field_17C[i * 32], (u16)((paletteNums[i] << 4) + 0x100), 32); + gMonSpritesGfxPtr->buffer = AllocZeroed(0x2000); + LZDecompressWram(gBattleAnimSpritePal_MusicNotes2, gMonSpritesGfxPtr->buffer); + for (i = 0; i < NUM_MUSIC_NOTE_PAL_TAGS; i++) + LoadPalette(&gMonSpritesGfxPtr->buffer[i * 32], (u16)((paletteNums[i] << 4) + 0x100), 32); - FREE_AND_SET_NULL(gMonSpritesGfxPtr->field_17C); + FREE_AND_SET_NULL(gMonSpritesGfxPtr->buffer); DestroyAnimVisualTask(taskId); } -void sub_8105D60(u8 taskId) +void AnimTask_FreeMusicNotesPals(u8 taskId) { int i; - for (i = 0; i < 3; i++) - FreeSpritePaletteByTag(gMusicNotePaletteTagsTable[i]); + for (i = 0; i < NUM_MUSIC_NOTE_PAL_TAGS; i++) + FreeSpritePaletteByTag(sMusicNotePaletteTagsTable[i]); DestroyAnimVisualTask(taskId); } @@ -3031,10 +3037,10 @@ static void SetMusicNotePalette(struct Sprite *sprite, u8 a, u8 b) tile = (b & 1); tile = ((-tile | tile) >> 31) & 32; sprite->oam.tileNum += tile + (a << 2); - sprite->oam.paletteNum = IndexOfSpritePaletteTag(gMusicNotePaletteTagsTable[b >> 1]); + sprite->oam.paletteNum = IndexOfSpritePaletteTag(sMusicNotePaletteTagsTable[b >> 1]); } -void AnimHealBellMusicNote(struct Sprite *sprite) +static void AnimHealBellMusicNote(struct Sprite *sprite) { InitSpritePosToAnimAttacker(sprite, FALSE); if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) @@ -3048,7 +3054,7 @@ void AnimHealBellMusicNote(struct Sprite *sprite) SetMusicNotePalette(sprite, gBattleAnimArgs[5], gBattleAnimArgs[6]); } -void AnimMagentaHeart(struct Sprite *sprite) +static void AnimMagentaHeart(struct Sprite *sprite) { if (++sprite->data[0] == 1) InitSpritePosToAnimAttacker(sprite, FALSE); @@ -3076,17 +3082,17 @@ void AnimTask_FakeOut(u8 taskId) SetGpuReg(REG_OFFSET_BLDY, 0x10); gTasks[taskId].data[0] = win0v; gTasks[taskId].data[1] = win0h; - gTasks[taskId].func = FakeOutStep1; + gTasks[taskId].func = AnimTask_FakeOut_Step1; } -static void FakeOutStep1(u8 taskId) +static void AnimTask_FakeOut_Step1(u8 taskId) { gTasks[taskId].data[0] += 13; gTasks[taskId].data[1] -= 13; if (gTasks[taskId].data[0] >= gTasks[taskId].data[1]) { gBattle_WIN0H = 0; - gTasks[taskId].func = FakeOutStep2; + gTasks[taskId].func = AnimTask_FakeOut_Step2; } else { @@ -3094,7 +3100,7 @@ static void FakeOutStep1(u8 taskId) } } -static void FakeOutStep2(u8 taskId) +static void AnimTask_FakeOut_Step2(u8 taskId) { if (++gTasks[taskId].data[10] == 5) { @@ -3114,12 +3120,12 @@ static void FakeOutStep2(u8 taskId) } } -void sub_8106020(u8 taskId) +void AnimTask_StretchTargetUp(u8 taskId) { u8 spriteId = GetAnimBattlerSpriteId(ANIM_TARGET); if (++gTasks[taskId].data[0] == 1) { - PrepareAffineAnimInTaskData(&gTasks[taskId], GetAnimBattlerSpriteId(1), gUnknown_08593988); + PrepareAffineAnimInTaskData(&gTasks[taskId], GetAnimBattlerSpriteId(ANIM_TARGET), sAffineAnims_StretchBattlerUp); gSprites[spriteId].pos2.x = 4; } else @@ -3134,12 +3140,12 @@ void sub_8106020(u8 taskId) } } -void sub_81060B0(u8 taskId) +void AnimTask_StretchAttackerUp(u8 taskId) { u8 spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER); if (++gTasks[taskId].data[0] == 1) { - PrepareAffineAnimInTaskData(&gTasks[taskId], GetAnimBattlerSpriteId(0), gUnknown_08593988); + PrepareAffineAnimInTaskData(&gTasks[taskId], GetAnimBattlerSpriteId(ANIM_ATTACKER), sAffineAnims_StretchBattlerUp); gSprites[spriteId].pos2.x = 4; } else @@ -3154,7 +3160,7 @@ void sub_81060B0(u8 taskId) } } -void AnimRedHeartProjectile(struct Sprite *sprite) +static void AnimRedHeartProjectile(struct Sprite *sprite) { InitSpritePosToAnimAttacker(sprite, TRUE); sprite->data[0] = 95; @@ -3179,7 +3185,7 @@ static void AnimRedHeartProjectile_Step(struct Sprite *sprite) } } -void AnimParticuleBurst(struct Sprite *sprite) +void AnimParticleBurst(struct Sprite *sprite) { if (sprite->data[0] == 0) { @@ -3201,7 +3207,7 @@ void AnimParticuleBurst(struct Sprite *sprite) } } -void AnimRedHeartRising(struct Sprite *sprite) +static void AnimRedHeartRising(struct Sprite *sprite) { sprite->pos1.x = gBattleAnimArgs[0]; sprite->pos1.y = 160; @@ -3243,13 +3249,13 @@ void AnimTask_HeartsBackground(u8 taskId) SetGpuReg(REG_OFFSET_BG1HOFS, gBattle_BG1_X); SetGpuReg(REG_OFFSET_BG1VOFS, gBattle_BG1_Y); sub_80A6B30(&animBg); - AnimLoadCompressedBgGfx(animBg.bgId, &gUnknown_08C232E0, animBg.tilesOffset); - sub_80A6D60(&animBg, &gUnknown_08C23D78, 0); - LoadCompressedPalette(&gUnknown_08C23D50, animBg.paletteId * 16, 32); - gTasks[taskId].func = HeartsBackground_Step; + AnimLoadCompressedBgGfx(animBg.bgId, &gBattleAnimBgImage_Attract, animBg.tilesOffset); + AnimLoadCompressedBgTilemapHandleContest(&animBg, &gBattleAnimBgTilemap_Attract, 0); + LoadCompressedPalette(&gBattleAnimBgPalette_Attract, animBg.paletteId * 16, 32); + gTasks[taskId].func = AnimTask_HeartsBackground_Step; } -static void HeartsBackground_Step(u8 taskId) +static void AnimTask_HeartsBackground_Step(u8 taskId) { struct BattleAnimBgData animBg; @@ -3322,18 +3328,18 @@ void AnimTask_ScaryFace(u8 taskId) SetGpuReg(REG_OFFSET_BG1VOFS, gBattle_BG1_Y); sub_80A6B30(&animBg); if (IsContest()) - sub_80A6D60(&animBg, &gBattleAnimBgTilemap_ScaryFaceContest, 0); + AnimLoadCompressedBgTilemapHandleContest(&animBg, &gBattleAnimBgTilemap_ScaryFaceContest, 0); else if (GetBattlerSide(gBattleAnimTarget) == B_SIDE_OPPONENT) - sub_80A6D60(&animBg, &gBattleAnimBgTilemap_ScaryFacePlayer, 0); + AnimLoadCompressedBgTilemapHandleContest(&animBg, &gBattleAnimBgTilemap_ScaryFacePlayer, 0); else - sub_80A6D60(&animBg, &gBattleAnimBgTilemap_ScaryFaceOpponent, 0); + AnimLoadCompressedBgTilemapHandleContest(&animBg, &gBattleAnimBgTilemap_ScaryFaceOpponent, 0); - AnimLoadCompressedBgGfx(animBg.bgId, gUnknown_08C249F8, animBg.tilesOffset); - LoadCompressedPalette(gUnknown_08C249D0, animBg.paletteId * 16, 32); - gTasks[taskId].func = ScaryFace_Step; + AnimLoadCompressedBgGfx(animBg.bgId, gBattleAnimBgImage_ScaryFace, animBg.tilesOffset); + LoadCompressedPalette(gBattleAnimBgPalette_ScaryFace, animBg.paletteId * 16, 32); + gTasks[taskId].func = AnimTask_ScaryFace_Step; } -static void ScaryFace_Step(u8 taskId) +static void AnimTask_ScaryFace_Step(u8 taskId) { struct BattleAnimBgData animBg; @@ -3394,7 +3400,7 @@ static void ScaryFace_Step(u8 taskId) // Used by MOVE_HIDDEN_POWER // arg 0: duration // arg 1: initial wave offset -void AnimOrbitFast(struct Sprite *sprite) +static void AnimOrbitFast(struct Sprite *sprite) { sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); @@ -3402,11 +3408,11 @@ void AnimOrbitFast(struct Sprite *sprite) sprite->data[0] = gBattleAnimArgs[0]; sprite->data[1] = gBattleAnimArgs[1]; sprite->data[7] = GetBattlerSpriteSubpriority(gBattleAnimAttacker); - sprite->callback = AnimOrbitFastStep; + sprite->callback = AnimOrbitFast_Step; sprite->callback(sprite); } -static void AnimOrbitFastStep(struct Sprite *sprite) +static void AnimOrbitFast_Step(struct Sprite *sprite) { if (sprite->data[1] >= 64 && sprite->data[1] <= 191) sprite->subpriority = sprite->data[7] + 1; @@ -3445,16 +3451,16 @@ static void AnimOrbitFastStep(struct Sprite *sprite) // Moves orbs away from the mon, based on where they are in their orbit. // Used in MOVE_HIDDEN_POWER. // arg 0: initial wave offset -void AnimOrbitScatter(struct Sprite *sprite) +static void AnimOrbitScatter(struct Sprite *sprite) { sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); sprite->data[0] = Sin(gBattleAnimArgs[0], 10); sprite->data[1] = Cos(gBattleAnimArgs[0], 7); - sprite->callback = AnimOrbitScatterStep; + sprite->callback = AnimOrbitScatter_Step; } -static void AnimOrbitScatterStep(struct Sprite *sprite) +static void AnimOrbitScatter_Step(struct Sprite *sprite) { sprite->pos2.x += sprite->data[0]; sprite->pos2.y += sprite->data[1]; @@ -3470,7 +3476,7 @@ static void AnimSpitUpOrb_Step(struct Sprite *sprite) DestroyAnimSprite(sprite); } -void AnimSpitUpOrb(struct Sprite *sprite) +static void AnimSpitUpOrb(struct Sprite *sprite) { sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); @@ -3480,19 +3486,19 @@ void AnimSpitUpOrb(struct Sprite *sprite) sprite->callback = AnimSpitUpOrb_Step; } -static void sub_810699C(struct Sprite *sprite) +static void AnimEyeSparkle_Step(struct Sprite *sprite) { if (sprite->animEnded) DestroyAnimSprite(sprite); } -void AnimEyeSparkle(struct Sprite *sprite) +static void AnimEyeSparkle(struct Sprite *sprite) { InitSpritePosToAnimAttacker(sprite, TRUE); - sprite->callback = sub_810699C; + sprite->callback = AnimEyeSparkle_Step; } -void AnimAngel(struct Sprite *sprite) +static void AnimAngel(struct Sprite *sprite) { s16 var0; if (!sprite->data[0]) @@ -3530,7 +3536,7 @@ static void sub_8106A64(struct Sprite *sprite) DestroyAnimSprite(sprite); } -void AnimPinkHeart(struct Sprite *sprite) +static void AnimPinkHeart(struct Sprite *sprite) { if (sprite->data[0] == 0) { @@ -3556,7 +3562,7 @@ void AnimPinkHeart(struct Sprite *sprite) } } -void AnimDevil(struct Sprite *sprite) +static void AnimDevil(struct Sprite *sprite) { if (sprite->data[3] == 0) { @@ -3585,7 +3591,7 @@ void AnimDevil(struct Sprite *sprite) DestroyAnimSprite(sprite); } -void AnimFurySwipes(struct Sprite *sprite) +static void AnimFurySwipes(struct Sprite *sprite) { if (sprite->data[0] == 0) { @@ -3600,7 +3606,7 @@ void AnimFurySwipes(struct Sprite *sprite) } } -void AnimMovmentWaves(struct Sprite *sprite) +static void AnimMovmentWaves(struct Sprite *sprite) { if (!gBattleAnimArgs[2]) { @@ -3646,17 +3652,17 @@ void AnimTask_UproarDistortion(u8 taskId) { u8 spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); - PrepareAffineAnimInTaskData(&gTasks[taskId], spriteId, gUnknown_08593B98); - gTasks[taskId].func = UproarDistortion_Step; + PrepareAffineAnimInTaskData(&gTasks[taskId], spriteId, sAffineAnims_UproarDistortion); + gTasks[taskId].func = AnimTask_UproarDistortion_Step; } -static void UproarDistortion_Step(u8 taskId) +static void AnimTask_UproarDistortion_Step(u8 taskId) { if (!RunAffineAnimFromTaskData(&gTasks[taskId])) DestroyAnimVisualTask(taskId); } -void AnimJaggedMusicNote(struct Sprite *sprite) +static void AnimJaggedMusicNote(struct Sprite *sprite) { int var1; u8 battler = !gBattleAnimArgs[0] ? gBattleAnimAttacker : gBattleAnimTarget; @@ -3694,12 +3700,12 @@ static void AnimJaggedMusicNote_Step(struct Sprite *sprite) DestroyAnimSprite(sprite); } -void AnimPerishSongMusicNote2(struct Sprite *sprite) +static void AnimPerishSongMusicNote2(struct Sprite *sprite) { if (!sprite->data[0]) { sprite->data[1] = 120 - gBattleAnimArgs[0]; - sprite->invisible = 1; + sprite->invisible = TRUE; } if (++sprite->data[0] == sprite->data[1]) @@ -3709,7 +3715,7 @@ void AnimPerishSongMusicNote2(struct Sprite *sprite) DestroyAnimSprite(sprite); } -void AnimPerishSongMusicNote(struct Sprite *sprite) +static void AnimPerishSongMusicNote(struct Sprite *sprite) { int index; int var2; @@ -3786,7 +3792,7 @@ static void AnimPerishSongMusicNote_Step2(struct Sprite *sprite) } } -void AnimGuardRing(struct Sprite *sprite) +static void AnimGuardRing(struct Sprite *sprite) { if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE) && IsBattlerSpriteVisible(BATTLE_PARTNER(gBattleAnimAttacker))) { @@ -3811,12 +3817,12 @@ void AnimGuardRing(struct Sprite *sprite) void AnimTask_IsFuryCutterHitRight(u8 taskId) { - gBattleAnimArgs[7] = gAnimDisableStructPtr->furyCutterCounter & 1; + gBattleAnimArgs[ARG_RET_ID] = gAnimDisableStructPtr->furyCutterCounter & 1; DestroyAnimVisualTask(taskId); } void AnimTask_GetFuryCutterHitCount(u8 taskId) { - gBattleAnimArgs[7] = gAnimDisableStructPtr->furyCutterCounter; + gBattleAnimArgs[ARG_RET_ID] = gAnimDisableStructPtr->furyCutterCounter; DestroyAnimVisualTask(taskId); } diff --git a/src/battle_anim_effects_3.c b/src/battle_anim_effects_3.c index 1778ce881..fd68bbd37 100755 --- a/src/battle_anim_effects_3.c +++ b/src/battle_anim_effects_3.c @@ -26,100 +26,101 @@ extern const struct SpriteTemplate gThoughtBubbleSpriteTemplate; -void AnimBlackSmoke(struct Sprite *); -void AnimWhiteHalo(struct Sprite *); -void AnimTealAlert(struct Sprite *); -void AnimMeanLookEye(struct Sprite *); -void AnimSpikes(struct Sprite *); -void AnimLeer(struct Sprite *); -void AnimLetterZ(struct Sprite *); -void AnimFang(struct Sprite *); -void AnimSpotlight(struct Sprite *); -void AnimClappingHand(struct Sprite *); -void AnimClappingHand2(struct Sprite *); -void AnimRapidSpin(struct Sprite *); -void AnimTriAttackTriangle(struct Sprite *); -void AnimBatonPassPokeball(struct Sprite *); -void AnimWishStar(struct Sprite *); -void AnimMiniTwinklingStar(struct Sprite *); -void AnimSwallowBlueOrb(struct Sprite *); -void AnimGreenStar(struct Sprite *); -void AnimWeakFrustrationAngerMark(struct Sprite *); -void AnimSweetScentPetal(struct Sprite *); -void AnimPainSplitProjectile(struct Sprite *); -void AnimFlatterConfetti(struct Sprite *); -void AnimFlatterSpotlight(struct Sprite *); -void AnimReversalOrb(struct Sprite *); -void AnimYawnCloud(struct Sprite *); -void AnimSmokeBallEscapeCloud(struct Sprite *); -void AnimFacadeSweatDrop(struct Sprite *); -void AnimRoarNoiseLine(struct Sprite *); -void AnimGlareEyeDot(struct Sprite *); -void AnimAssistPawprint(struct Sprite *); -void AnimSmellingSaltsHand(struct Sprite *); -void AnimSmellingSaltExclamation(struct Sprite *); -void AnimHelpingHandClap(struct Sprite *); -void AnimForesightMagnifyingGlass(struct Sprite *); -void AnimMeteorMashStar(struct Sprite *); -void AnimBlockX(struct Sprite *); -void sub_815FE80(struct Sprite *); -void AnimParticuleBurst(struct Sprite *); -void AnimKnockOffStrike(struct Sprite *); -void AnimRecycle(struct Sprite *); -static void AnimBlackSmokeStep(struct Sprite *); +static void AnimBlackSmoke(struct Sprite *); +static void AnimBlackSmoke_Step(struct Sprite *); +static void AnimWhiteHalo(struct Sprite *); static void AnimWhiteHalo_Step1(struct Sprite *); static void AnimWhiteHalo_Step2(struct Sprite *); +static void AnimTealAlert(struct Sprite *); +static void AnimMeanLookEye(struct Sprite *); static void AnimMeanLookEye_Step1(struct Sprite *); static void AnimMeanLookEye_Step2(struct Sprite *); static void AnimMeanLookEye_Step3(struct Sprite *); static void AnimMeanLookEye_Step4(struct Sprite *); -static void SetPsychicBackground_Step(u8); -static void FadeScreenToWhite_Step(u8); +static void AnimSpikes(struct Sprite *); static void AnimSpikes_Step1(struct Sprite *); static void AnimSpikes_Step2(struct Sprite *); +static void AnimLeer(struct Sprite *); +static void AnimLetterZ(struct Sprite *); +static void AnimFang(struct Sprite *); +static void AnimSpotlight(struct Sprite *); static void AnimSpotlight_Step1(struct Sprite *); static void AnimSpotlight_Step2(struct Sprite *); +static void AnimClappingHand(struct Sprite *); static void AnimClappingHand_Step(struct Sprite *); +static void AnimClappingHand2(struct Sprite *); +static void AnimRapidSpin(struct Sprite *); static void AnimRapidSpin_Step(struct Sprite *); -static void RapinSpinMonElevation_Step(u8); -static void TormentAttacker_Step(u8); -static void TormentAttacker_Callback(struct Sprite *); +static void AnimTriAttackTriangle(struct Sprite *); +static void AnimBatonPassPokeball(struct Sprite *); +static void AnimWishStar(struct Sprite *); static void AnimWishStar_Step(struct Sprite *); +static void AnimMiniTwinklingStar(struct Sprite *); static void AnimMiniTwinklingStar_Step(struct Sprite *); +static void AnimSwallowBlueOrb(struct Sprite *); +static void AnimGreenStar(struct Sprite *); static void AnimGreenStar_Step1(struct Sprite *); static void AnimGreenStar_Step2(struct Sprite *); static void AnimGreenStar_Callback(struct Sprite *); -static void AnimTask_RockMonBackAndForthStep(u8); -static void AnimSweetScentPetalStep(struct Sprite *); -static void AnimTask_FlailMovementStep(u8); -static void AnimFlatterConfettiStep(struct Sprite *); -static void AnimFlatterSpotlightStep(struct Sprite *); -static void AnimReversalOrbStep(struct Sprite *); -static void AnimTask_RolePlaySilhouetteStep1(u8); -static void AnimTask_RolePlaySilhouetteStep2(u8); -static void AnimTask_AcidArmorStep(u8); -static void AnimTask_DeepInhaleStep(u8); -static void AnimYawnCloudStep(struct Sprite *); -static void AnimTask_SquishAndSweatDropletsStep(u8); +static void AnimWeakFrustrationAngerMark(struct Sprite *); +static void AnimSweetScentPetal(struct Sprite *); +static void AnimSweetScentPetal_Step(struct Sprite *); +static void AnimPainSplitProjectile(struct Sprite *); +static void AnimFlatterConfetti(struct Sprite *); +static void AnimFlatterConfetti_Step(struct Sprite *); +static void AnimFlatterSpotlight(struct Sprite *); +static void AnimFlatterSpotlight_Step(struct Sprite *); +static void AnimReversalOrb(struct Sprite *); +static void AnimReversalOrb_Step(struct Sprite *); +static void AnimYawnCloud(struct Sprite *); +static void AnimYawnCloud_Step(struct Sprite *); +static void AnimSmokeBallEscapeCloud(struct Sprite *); +static void AnimFacadeSweatDrop(struct Sprite *); +static void AnimRoarNoiseLine(struct Sprite *); +static void AnimRoarNoiseLine_Step(struct Sprite *); +static void AnimGlareEyeDot(struct Sprite *); +static void AnimAssistPawprint(struct Sprite *); +static void AnimSmellingSaltsHand(struct Sprite *); +static void AnimSmellingSaltsHand_Step(struct Sprite *); +static void AnimSmellingSaltExclamation(struct Sprite *); +static void AnimSmellingSaltExclamation_Step(struct Sprite *); +static void AnimHelpingHandClap(struct Sprite *); +static void AnimHelpingHandClap_Step(struct Sprite *); +static void AnimForesightMagnifyingGlass(struct Sprite *); +static void AnimForesightMagnifyingGlass_Step(struct Sprite *); +static void AnimMeteorMashStar(struct Sprite *); +static void AnimMeteorMashStar_Step(struct Sprite *sprite); +static void AnimBlockX(struct Sprite *); +static void AnimBlockX_Step(struct Sprite *); +static void sub_815FE80(struct Sprite *); +static void AnimKnockOffStrike(struct Sprite *); +static void AnimKnockOffStrike_Step(struct Sprite *sprite); +static void AnimRecycle(struct Sprite *); +static void AnimRecycle_Step(struct Sprite *); +static void SetPsychicBackground_Step(u8); +static void FadeScreenToWhite_Step(u8); +static void RapinSpinMonElevation_Step(u8); +static void TormentAttacker_Step(u8); +static void TormentAttacker_Callback(struct Sprite *); +static void AnimTask_RockMonBackAndForth_Step(u8); +static void AnimTask_FlailMovement_Step(u8); +static void AnimTask_RolePlaySilhouette_Step1(u8); +static void AnimTask_RolePlaySilhouette_Step2(u8); +static void AnimTask_AcidArmor_Step(u8); +static void AnimTask_DeepInhale_Step(u8); +static void AnimTask_SquishAndSweatDroplets_Step(u8); static void CreateSweatDroplets(u8, bool8); -static void AnimTask_FacadeColorBlendStep(u8); -static void AnimRoarNoiseLineStep(struct Sprite *); -static void AnimTask_GlareEyeDotsStep(u8); +static void AnimTask_FacadeColorBlend_Step(u8); +static void AnimTask_GlareEyeDots_Step(u8); static void GetGlareEyeDotCoords(s16, s16, s16, s16, u8, u8, s16 *, s16 *); -static void AnimTask_BarrageBallStep(u8); -static void AnimSmellingSaltsHand_Step(struct Sprite *); -static void AnimTask_SmellingSaltsSquishStep(u8); -static void AnimSmellingSaltExclamationStep(struct Sprite *); -static void AnimHelpingHandClapStep(struct Sprite *); -static void AnimTask_HelpingHandAttackerMovementStep(u8); -static void AnimForesightMagnifyingGlassStep(struct Sprite *); +static void AnimTask_BarrageBall_Step(u8); +static void AnimTask_SmellingSaltsSquish_Step(u8); +static void AnimTask_HelpingHandAttackerMovement_Step(u8); static void AnimTask_MonToSubstituteDoll(u8); -static void AnimBlockXStep(struct Sprite *); static void AnimTask_OdorSleuthMovementWaitFinish(u8); static void MoveOdorSleuthClone(struct Sprite *); -static void AnimTask_TeeterDanceMovementStep(u8); -static void AnimRecycleStep(struct Sprite *); -static void AnimTask_SlackOffSquishStep(u8); +static void AnimTask_TeeterDanceMovement_Step(u8); +static void AnimTask_SlackOffSquish_Step(u8); const union AnimCmd gScratchAnimCmds[] = { @@ -1079,7 +1080,7 @@ const struct SpriteTemplate gUnknown_085CE8F4 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = AnimParticuleBurst, + .callback = AnimParticleBurst, }; const struct SpriteTemplate gBlockXSpriteTemplate = @@ -1179,7 +1180,7 @@ const union AffineAnimCmd gSlackOffSquishAffineAnimCmds[] = AFFINEANIMCMD_END, }; -void AnimBlackSmoke(struct Sprite *sprite) +static void AnimBlackSmoke(struct Sprite *sprite) { sprite->pos1.x += gBattleAnimArgs[0]; sprite->pos1.y += gBattleAnimArgs[1]; @@ -1190,10 +1191,10 @@ void AnimBlackSmoke(struct Sprite *sprite) sprite->data[0] = -gBattleAnimArgs[2]; sprite->data[1] = gBattleAnimArgs[4]; - sprite->callback = AnimBlackSmokeStep; + sprite->callback = AnimBlackSmoke_Step; } -static void AnimBlackSmokeStep(struct Sprite *sprite) +static void AnimBlackSmoke_Step(struct Sprite *sprite) { if (sprite->data[1] > 0) { @@ -1217,7 +1218,7 @@ void AnimTask_SmokescreenImpact(u8 taskId) DestroyAnimVisualTask(taskId); } -void AnimWhiteHalo(struct Sprite *sprite) +static void AnimWhiteHalo(struct Sprite *sprite) { sprite->data[0] = 90; sprite->callback = WaitAnimForDuration; @@ -1232,7 +1233,7 @@ static void AnimWhiteHalo_Step1(struct Sprite *sprite) SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(sprite->data[1], 16 - sprite->data[1])); if (--sprite->data[1] < 0) { - sprite->invisible = 1; + sprite->invisible = TRUE; sprite->callback = AnimWhiteHalo_Step2; } } @@ -1244,7 +1245,7 @@ static void AnimWhiteHalo_Step2(struct Sprite *sprite) DestroyAnimSprite(sprite); } -void AnimTealAlert(struct Sprite *sprite) +static void AnimTealAlert(struct Sprite *sprite) { u16 rotation; u8 x = GetBattlerSpriteCoord(gBattleAnimTarget, 2); @@ -1266,7 +1267,7 @@ void AnimTealAlert(struct Sprite *sprite) StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); } -void AnimMeanLookEye(struct Sprite *sprite) +static void AnimMeanLookEye(struct Sprite *sprite) { SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND); SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0, 16)); @@ -1292,7 +1293,7 @@ static void AnimMeanLookEye_Step1(struct Sprite *sprite) SetGpuReg(REG_OFFSET_BLDALPHA, 0); StartSpriteAffineAnim(sprite, 1); sprite->data[2] = 0; - sprite->invisible = 1; + sprite->invisible = TRUE; sprite->affineAnimPaused = 1; sprite->callback = AnimMeanLookEye_Step2; } @@ -1302,7 +1303,7 @@ static void AnimMeanLookEye_Step2(struct Sprite *sprite) { if (sprite->data[2]++ > 9) { - sprite->invisible = 0; + sprite->invisible = FALSE; sprite->affineAnimPaused = 0; if (sprite->affineAnimEnded) sprite->callback = AnimMeanLookEye_Step3; @@ -1359,7 +1360,7 @@ static void AnimMeanLookEye_Step4(struct Sprite *sprite) } if (sprite->data[0] == 0) - sprite->invisible = 1; + sprite->invisible = TRUE; if (sprite->data[0] < 0) { @@ -1426,7 +1427,7 @@ static void FadeScreenToWhite_Step(u8 taskId) DestroyTask(taskId); } -void AnimSpikes(struct Sprite *sprite) +static void AnimSpikes(struct Sprite *sprite) { u16 x; u16 y; @@ -1466,7 +1467,7 @@ static void AnimSpikes_Step2(struct Sprite *sprite) DestroyAnimSprite(sprite); } -void AnimLeer(struct Sprite *sprite) +static void AnimLeer(struct Sprite *sprite) { SetSpriteCoordsToAnimAttackerCoords(sprite); SetAnimSpriteInitialXOffset(sprite, gBattleAnimArgs[0]); @@ -1475,7 +1476,7 @@ void AnimLeer(struct Sprite *sprite) StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); } -void AnimLetterZ(struct Sprite *sprite) +static void AnimLetterZ(struct Sprite *sprite) { int var0; if (sprite->data[0] == 0) @@ -1513,7 +1514,7 @@ void AnimLetterZ(struct Sprite *sprite) DestroyAnimSprite(sprite); } -void AnimFang(struct Sprite *sprite) +static void AnimFang(struct Sprite *sprite) { if (sprite->animEnded) DestroyAnimSprite(sprite); @@ -1522,9 +1523,9 @@ void AnimFang(struct Sprite *sprite) void AnimTask_IsTargetPlayerSide(u8 taskId) { if (GetBattlerSide(gBattleAnimTarget) == B_SIDE_OPPONENT) - gBattleAnimArgs[7] = 0; + gBattleAnimArgs[ARG_RET_ID] = FALSE; else - gBattleAnimArgs[7] = 1; + gBattleAnimArgs[ARG_RET_ID] = TRUE; DestroyAnimVisualTask(taskId); } @@ -1532,14 +1533,14 @@ void AnimTask_IsTargetPlayerSide(u8 taskId) void AnimTask_IsHealingMove(u8 taskId) { if (gAnimMoveDmg > 0) - gBattleAnimArgs[7] = 0; + gBattleAnimArgs[ARG_RET_ID] = FALSE; else - gBattleAnimArgs[7] = 1; + gBattleAnimArgs[ARG_RET_ID] = TRUE; DestroyAnimVisualTask(taskId); } -void AnimSpotlight(struct Sprite *sprite) +static void AnimSpotlight(struct Sprite *sprite) { SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG_ALL | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR | WINOUT_WINOBJ_BG_ALL | WINOUT_WINOBJ_OBJ); SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_OBJWIN_ON); @@ -1551,7 +1552,7 @@ void AnimSpotlight(struct Sprite *sprite) InitSpritePosToAnimTarget(sprite, FALSE); sprite->oam.objMode = ST_OAM_OBJ_WINDOW; - sprite->invisible = 1; + sprite->invisible = TRUE; sprite->callback = AnimSpotlight_Step1; } @@ -1560,7 +1561,7 @@ static void AnimSpotlight_Step1(struct Sprite *sprite) switch (sprite->data[0]) { case 0: - sprite->invisible = 0; + sprite->invisible = FALSE; if (sprite->affineAnimEnded) sprite->data[0]++; break; @@ -1590,7 +1591,7 @@ static void AnimSpotlight_Step1(struct Sprite *sprite) case 5: if (sprite->affineAnimEnded) { - sprite->invisible = 1; + sprite->invisible = TRUE; sprite->callback = AnimSpotlight_Step2; } break; @@ -1604,7 +1605,7 @@ static void AnimSpotlight_Step2(struct Sprite *sprite) DestroyAnimSprite(sprite); } -void AnimClappingHand(struct Sprite *sprite) +static void AnimClappingHand(struct Sprite *sprite) { if (gBattleAnimArgs[3] == 0) { @@ -1665,7 +1666,7 @@ static void AnimClappingHand_Step(struct Sprite *sprite) DestroyAnimSprite(sprite); } -void AnimClappingHand2(struct Sprite *sprite) +static void AnimClappingHand2(struct Sprite *sprite) { sprite->oam.objMode = ST_OAM_OBJ_WINDOW; sprite->data[3] = 255; @@ -1706,7 +1707,7 @@ void AnimTask_RemoveSpotlight(u8 taskId) DestroyAnimVisualTask(taskId); } -void AnimRapidSpin(struct Sprite *sprite) +static void AnimRapidSpin(struct Sprite *sprite) { if (gBattleAnimArgs[0] == 0) { @@ -2013,7 +2014,7 @@ static void TormentAttacker_Callback(struct Sprite *sprite) } } -void AnimTriAttackTriangle(struct Sprite *sprite) +static void AnimTriAttackTriangle(struct Sprite *sprite) { if (sprite->data[0] == 0) InitSpritePosToAnimAttacker(sprite, FALSE); @@ -2022,13 +2023,13 @@ void AnimTriAttackTriangle(struct Sprite *sprite) { u16 var = sprite->data[0]; if ((var & 1) == 0) - sprite->invisible = 1; + sprite->invisible = TRUE; else - sprite->invisible = 0; + sprite->invisible = FALSE; } if (sprite->data[0] > 30) - sprite->invisible = 0; + sprite->invisible = FALSE; if (sprite->data[0] == 61) { @@ -2059,7 +2060,7 @@ void AnimTask_DefenseCurlDeformMon(u8 taskId) } } -void AnimBatonPassPokeball(struct Sprite *sprite) +static void AnimBatonPassPokeball(struct Sprite *sprite) { u8 spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER); @@ -2089,7 +2090,7 @@ void AnimBatonPassPokeball(struct Sprite *sprite) if (++sprite->data[3] == 9) { sprite->data[3] = 0; - gSprites[spriteId].invisible = 1; + gSprites[spriteId].invisible = TRUE; ResetSpriteRotScale(spriteId); sprite->data[0]++; } @@ -2102,7 +2103,7 @@ void AnimBatonPassPokeball(struct Sprite *sprite) } } -void AnimWishStar(struct Sprite *sprite) +static void AnimWishStar(struct Sprite *sprite) { if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) sprite->pos1.x = -16; @@ -2140,7 +2141,7 @@ static void AnimWishStar_Step(struct Sprite *sprite) DestroyAnimSprite(sprite); } -void AnimMiniTwinklingStar(struct Sprite *sprite) +static void AnimMiniTwinklingStar(struct Sprite *sprite) { u8 rand; s8 y; @@ -2172,11 +2173,11 @@ static void AnimMiniTwinklingStar_Step(struct Sprite *sprite) else { if (sprite->data[1] == 2) - sprite->invisible = 0; + sprite->invisible = FALSE; if (sprite->data[1] == 3) { - sprite->invisible = 1; + sprite->invisible = TRUE; sprite->data[1] = -1; } @@ -2215,7 +2216,7 @@ void AnimTask_SpitUpDeformMon(u8 taskId) } } -void AnimSwallowBlueOrb(struct Sprite *sprite) +static void AnimSwallowBlueOrb(struct Sprite *sprite) { switch (sprite->data[0]) { @@ -2363,11 +2364,11 @@ void AnimTask_TransformMon(u8 taskId) void AnimTask_IsMonInvisible(u8 taskId) { - gBattleAnimArgs[7] = gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].invisible; + gBattleAnimArgs[ARG_RET_ID] = gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].invisible; DestroyAnimVisualTask(taskId); } -void AnimTask_CastformGfxChange(u8 taskId) +void AnimTask_CastformGfxDataChange(u8 taskId) { HandleSpeciesGfxDataChange(gBattleAnimAttacker, gBattleAnimTarget, TRUE); DestroyAnimVisualTask(taskId); @@ -2388,7 +2389,7 @@ void AnimTask_MorningSunLightBeam(u8 taskId) SetAnimBgAttribute(1, BG_ANIM_CHAR_BASE_BLOCK, 1); sub_80A6B30(&animBg); - sub_80A6D60(&animBg, &gUnknown_08C2A6EC, 0); + AnimLoadCompressedBgTilemapHandleContest(&animBg, &gBattleAnimMaskTilemap_LightBeam, 0); if (IsContest()) { gBattle_BG1_X = -56; @@ -2404,8 +2405,8 @@ void AnimTask_MorningSunLightBeam(u8 taskId) gBattle_BG1_Y = 0; } - AnimLoadCompressedBgGfx(animBg.bgId, gUnknown_08C2A634, animBg.tilesOffset); - LoadCompressedPalette(gUnknown_08C2A6D4, animBg.paletteId * 16, 32); + AnimLoadCompressedBgGfx(animBg.bgId, gBattleAnimMaskImage_LightBeam, animBg.tilesOffset); + LoadCompressedPalette(gBattleAnimMaskPalette_LightBeam, animBg.paletteId * 16, 32); gTasks[taskId].data[10] = gBattle_BG1_X; gTasks[taskId].data[11] = gBattle_BG1_Y; @@ -2465,7 +2466,7 @@ void AnimTask_MorningSunLightBeam(u8 taskId) } } -void AnimGreenStar(struct Sprite *sprite) +static void AnimGreenStar(struct Sprite *sprite) { s16 xOffset; u8 spriteId1; @@ -2492,8 +2493,8 @@ void AnimGreenStar(struct Sprite *sprite) gSprites[spriteId2].data[2] = gBattleAnimArgs[1]; gSprites[spriteId1].data[7] = -1; gSprites[spriteId2].data[7] = -1; - gSprites[spriteId1].invisible = 1; - gSprites[spriteId2].invisible = 1; + gSprites[spriteId1].invisible = TRUE; + gSprites[spriteId2].invisible = TRUE; gSprites[spriteId1].callback = AnimGreenStar_Callback; gSprites[spriteId2].callback = AnimGreenStar_Callback; @@ -2510,19 +2511,19 @@ static void AnimGreenStar_Step1(struct Sprite *sprite) sprite->data[3] &= 0xFF; if (sprite->data[4] == 0 && sprite->pos2.y < -8) { - gSprites[sprite->data[6]].invisible = 0; + gSprites[sprite->data[6]].invisible = FALSE; sprite->data[4]++; } if (sprite->data[4] == 1 && sprite->pos2.y < -16) { - gSprites[sprite->data[7]].invisible = 0; + gSprites[sprite->data[7]].invisible = FALSE; sprite->data[4]++; } if (--sprite->data[1] == -1) { - sprite->invisible = 1; + sprite->invisible = TRUE; sprite->callback = AnimGreenStar_Step2; } } @@ -2548,7 +2549,7 @@ static void AnimGreenStar_Callback(struct Sprite *sprite) sprite->data[3] &= 0xFF; if (--sprite->data[1] == -1) { - sprite->invisible = 1; + sprite->invisible = TRUE; sprite->callback = SpriteCallbackDummy; } } @@ -2569,7 +2570,7 @@ void AnimTask_DoomDesireLightBeam(u8 taskId) SetAnimBgAttribute(1, BG_ANIM_CHAR_BASE_BLOCK, 1); sub_80A6B30(&animBg); - sub_80A6D60(&animBg, &gUnknown_08C2A6EC, 0); + AnimLoadCompressedBgTilemapHandleContest(&animBg, &gBattleAnimMaskTilemap_LightBeam, 0); if (IsContest()) { gBattle_BG1_X = -56; @@ -2600,8 +2601,8 @@ void AnimTask_DoomDesireLightBeam(u8 taskId) gBattle_BG1_Y = 0; } - AnimLoadCompressedBgGfx(animBg.bgId, gUnknown_08C2A634, animBg.tilesOffset); - LoadCompressedPalette(gUnknown_08C2A6D4, animBg.paletteId * 16, 32); + AnimLoadCompressedBgGfx(animBg.bgId, gBattleAnimMaskImage_LightBeam, animBg.tilesOffset); + LoadCompressedPalette(gBattleAnimMaskPalette_LightBeam, animBg.paletteId * 16, 32); gTasks[taskId].data[10] = gBattle_BG1_X; gTasks[taskId].data[11] = gBattle_BG1_Y; gTasks[taskId].data[0]++; @@ -2673,7 +2674,7 @@ void AnimTask_StrongFrustrationGrowAndShrink(u8 taskId) // Animates an anger mark near the mon's head. // arg 0: initial x pixel offset // arg 1: initial y pixel offset -void AnimWeakFrustrationAngerMark(struct Sprite *sprite) +static void AnimWeakFrustrationAngerMark(struct Sprite *sprite) { if (sprite->data[0] == 0) { @@ -2737,10 +2738,10 @@ void AnimTask_RockMonBackAndForth(u8 taskId) } PrepareBattlerSpriteForRotScale(task->data[15], ST_OAM_OBJ_NORMAL); - task->func = AnimTask_RockMonBackAndForthStep; + task->func = AnimTask_RockMonBackAndForth_Step; } -static void AnimTask_RockMonBackAndForthStep(u8 taskId) +static void AnimTask_RockMonBackAndForth_Step(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -2798,7 +2799,7 @@ static void AnimTask_RockMonBackAndForthStep(u8 taskId) // arg 0: initial y pixel offset // arg 1: sprite anim num // arg 2: unused -void AnimSweetScentPetal(struct Sprite *sprite) +static void AnimSweetScentPetal(struct Sprite *sprite) { if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) { @@ -2813,10 +2814,10 @@ void AnimSweetScentPetal(struct Sprite *sprite) sprite->data[2] = gBattleAnimArgs[2]; StartSpriteAnim(sprite, gBattleAnimArgs[1]); - sprite->callback = AnimSweetScentPetalStep; + sprite->callback = AnimSweetScentPetal_Step; } -static void AnimSweetScentPetalStep(struct Sprite *sprite) +static void AnimSweetScentPetal_Step(struct Sprite *sprite) { sprite->data[0] += 3; if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) @@ -2857,10 +2858,10 @@ void AnimTask_FlailMovement(u8 taskId) task->data[15] = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); PrepareBattlerSpriteForRotScale(task->data[15], ST_OAM_OBJ_NORMAL); - task->func = AnimTask_FlailMovementStep; + task->func = AnimTask_FlailMovement_Step; } -static void AnimTask_FlailMovementStep(u8 taskId) +static void AnimTask_FlailMovement_Step(u8 taskId) { int temp; struct Task *task = &gTasks[taskId]; @@ -2935,7 +2936,7 @@ static void AnimTask_FlailMovementStep(u8 taskId) // arg 0: initial x pixel offset // arg 1: initial y pixel offset // arg 2: which battler -void AnimPainSplitProjectile(struct Sprite *sprite) +static void AnimPainSplitProjectile(struct Sprite *sprite) { if (!sprite->data[0]) { @@ -3031,7 +3032,7 @@ void AnimTask_PainSplitMovement(u8 taskId) // Move a piece of confetti in a slightly-random speed across the screen. // arg 0: which battler the confetti starts from -void AnimFlatterConfetti(struct Sprite *sprite) +static void AnimFlatterConfetti(struct Sprite *sprite) { u8 tileOffset; int rand1; @@ -3059,10 +3060,10 @@ void AnimFlatterConfetti(struct Sprite *sprite) sprite->pos1.x = 248; sprite->pos1.y = 104; - sprite->callback = AnimFlatterConfettiStep; + sprite->callback = AnimFlatterConfetti_Step; } -static void AnimFlatterConfettiStep(struct Sprite *sprite) +static void AnimFlatterConfetti_Step(struct Sprite *sprite) { if (sprite->data[2] == 0) { @@ -3088,7 +3089,7 @@ static void AnimFlatterConfettiStep(struct Sprite *sprite) // arg 0: initial x pixel offset // arg 1: initial y pixel offset // arg 2: duration of fully-opened spotlight -void AnimFlatterSpotlight(struct Sprite *sprite) +static void AnimFlatterSpotlight(struct Sprite *sprite) { SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG_ALL | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR | WINOUT_WINOBJ_BG_ALL | WINOUT_WINOBJ_OBJ); SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_OBJWIN_ON); @@ -3100,16 +3101,16 @@ void AnimFlatterSpotlight(struct Sprite *sprite) sprite->data[0] = gBattleAnimArgs[2]; InitSpritePosToAnimTarget(sprite, FALSE); sprite->oam.objMode = ST_OAM_OBJ_WINDOW; - sprite->invisible = 1; - sprite->callback = AnimFlatterSpotlightStep; + sprite->invisible = TRUE; + sprite->callback = AnimFlatterSpotlight_Step; } -static void AnimFlatterSpotlightStep(struct Sprite *sprite) +static void AnimFlatterSpotlight_Step(struct Sprite *sprite) { switch (sprite->data[1]) { case 0: - sprite->invisible = 0; + sprite->invisible = FALSE; if (sprite->affineAnimEnded) sprite->data[1]++; break; @@ -3123,7 +3124,7 @@ static void AnimFlatterSpotlightStep(struct Sprite *sprite) case 2: if (sprite->affineAnimEnded) { - sprite->invisible = 1; + sprite->invisible = TRUE; sprite->data[1]++; } break; @@ -3138,17 +3139,17 @@ static void AnimFlatterSpotlightStep(struct Sprite *sprite) // Spins an orb around the attacking mon, while its path radius grows and shrinks. // arg 0: duration // arg 1: initial wave offset -void AnimReversalOrb(struct Sprite *sprite) +static void AnimReversalOrb(struct Sprite *sprite) { sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); sprite->data[0] = gBattleAnimArgs[0]; sprite->data[1] = gBattleAnimArgs[1]; - sprite->callback = AnimReversalOrbStep; + sprite->callback = AnimReversalOrb_Step; sprite->callback(sprite); } -static void AnimReversalOrbStep(struct Sprite *sprite) +static void AnimReversalOrb_Step(struct Sprite *sprite) { sprite->pos2.x = Sin(sprite->data[1], sprite->data[2] >> 8); sprite->pos2.y = Cos(sprite->data[1], sprite->data[3] >> 8); @@ -3258,10 +3259,10 @@ void AnimTask_RolePlaySilhouette(u8 taskId) SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gTasks[taskId].data[1], 16 - gTasks[taskId].data[1])); gTasks[taskId].data[0] = spriteId; - gTasks[taskId].func = AnimTask_RolePlaySilhouetteStep1; + gTasks[taskId].func = AnimTask_RolePlaySilhouette_Step1; } -static void AnimTask_RolePlaySilhouetteStep1(u8 taskId) +static void AnimTask_RolePlaySilhouette_Step1(u8 taskId) { if (gTasks[taskId].data[10]++ > 1) { @@ -3272,12 +3273,12 @@ static void AnimTask_RolePlaySilhouetteStep1(u8 taskId) { gTasks[taskId].data[10] = 256; gTasks[taskId].data[11] = 256; - gTasks[taskId].func = AnimTask_RolePlaySilhouetteStep2; + gTasks[taskId].func = AnimTask_RolePlaySilhouette_Step2; } } } -static void AnimTask_RolePlaySilhouetteStep2(u8 taskId) +static void AnimTask_RolePlaySilhouette_Step2(u8 taskId) { u8 spriteId = gTasks[taskId].data[0]; gTasks[taskId].data[10] -= 16; @@ -3353,10 +3354,10 @@ void AnimTask_AcidArmor(u8 taskId) scanlineParams.initState = 1; scanlineParams.unused9 = 0; ScanlineEffect_SetParams(scanlineParams); - task->func = AnimTask_AcidArmorStep; + task->func = AnimTask_AcidArmor_Step; } -static void AnimTask_AcidArmorStep(u8 taskId) +static void AnimTask_AcidArmor_Step(u8 taskId) { struct Task *task; s16 var1; @@ -3478,10 +3479,10 @@ void AnimTask_DeepInhale(u8 taskId) task->data[0] = 0; task->data[15] = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); PrepareAffineAnimInTaskData(&gTasks[taskId], task->data[15], gDeepInhaleAffineAnimCmds); - task->func = AnimTask_DeepInhaleStep; + task->func = AnimTask_DeepInhale_Step; } -static void AnimTask_DeepInhaleStep(u8 taskId) +static void AnimTask_DeepInhale_Step(u8 taskId) { u16 var0; @@ -3530,7 +3531,7 @@ static void UpdateYawnCloudPosition(struct Sprite *sprite) // Drifts a cloud in a wavy path towards the target mon. // arg 0: which affine anim -void AnimYawnCloud(struct Sprite *sprite) +static void AnimYawnCloud(struct Sprite *sprite) { s16 destX = sprite->pos1.x; s16 destY = sprite->pos1.y; @@ -3539,10 +3540,10 @@ void AnimYawnCloud(struct Sprite *sprite) StartSpriteAffineAnim(sprite, gBattleAnimArgs[0]); InitYawnCloudPosition(sprite, sprite->pos1.x, sprite->pos1.y, destX, destY, 64); sprite->data[0] = 0; - sprite->callback = AnimYawnCloudStep; + sprite->callback = AnimYawnCloud_Step; } -static void AnimYawnCloudStep(struct Sprite *sprite) +static void AnimYawnCloud_Step(struct Sprite *sprite) { int index; @@ -3567,8 +3568,8 @@ static void AnimYawnCloudStep(struct Sprite *sprite) // arg 0: ? // arg 1: initial x pixel offset // arg 2: initial y pixel offset -// arg 3: ? -void AnimSmokeBallEscapeCloud(struct Sprite *sprite) +// arg 3: time until destroyed +static void AnimSmokeBallEscapeCloud(struct Sprite *sprite) { sprite->data[0] = gBattleAnimArgs[3]; StartSpriteAffineAnim(sprite, gBattleAnimArgs[0]); @@ -3577,7 +3578,7 @@ void AnimSmokeBallEscapeCloud(struct Sprite *sprite) sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2) + gBattleAnimArgs[1]; sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[2]; - sprite->callback = sub_810E2C8; + sprite->callback = DestroyAnimSpriteAfterTimer; } static void sub_815D8D8(u8 taskId) @@ -3683,7 +3684,7 @@ static void sub_815DA20(u8 taskId) } } -void sub_815DB90(u8 taskId) +void AnimTask_SlideMonForFocusBand(u8 taskId) { gTasks[taskId].data[15] = gBattlerSpriteIds[gBattleAnimAttacker]; gTasks[taskId].data[14] = gBattleAnimArgs[0]; @@ -3742,10 +3743,10 @@ void AnimTask_SquishAndSweatDroplets(u8 taskId) task->data[6] = GetBattlerSpriteSubpriority(battler); task->data[15] = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); PrepareAffineAnimInTaskData(task, task->data[15], gFacadeSquishAffineAnimCmds); - task->func = AnimTask_SquishAndSweatDropletsStep; + task->func = AnimTask_SquishAndSweatDroplets_Step; } -static void AnimTask_SquishAndSweatDropletsStep(u8 taskId) +static void AnimTask_SquishAndSweatDroplets_Step(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -3821,7 +3822,7 @@ static void CreateSweatDroplets(u8 taskId, bool8 arg1) } } -void AnimFacadeSweatDrop(struct Sprite *sprite) +static void AnimFacadeSweatDrop(struct Sprite *sprite) { sprite->pos1.x += sprite->data[1]; sprite->pos1.y += sprite->data[2]; @@ -3843,10 +3844,10 @@ void AnimTask_FacadeColorBlend(u8 taskId) gTasks[taskId].data[1] = gBattleAnimArgs[1]; spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); gTasks[taskId].data[2] = 0x100 + gSprites[spriteId].oam.paletteNum * 16; - gTasks[taskId].func = AnimTask_FacadeColorBlendStep; + gTasks[taskId].func = AnimTask_FacadeColorBlend_Step; } -static void AnimTask_FacadeColorBlendStep(u8 taskId) +static void AnimTask_FacadeColorBlend_Step(u8 taskId) { if (gTasks[taskId].data[1]) { @@ -3863,7 +3864,8 @@ static void AnimTask_FacadeColorBlendStep(u8 taskId) } } -void sub_815DFCC(u8 taskId) +// The sliding circle effect used by Refresh and Aromatherapy +void AnimTask_StatusClearedEffect(u8 taskId) { sub_8117854( taskId, @@ -3883,7 +3885,7 @@ void sub_815DFCC(u8 taskId) // arg 0: initial x pixel offset // arg 1: initial y pixel offset // arg 2: which direction (0 = upward, 1 = downward, 2 = horizontal) -void AnimRoarNoiseLine(struct Sprite *sprite) +static void AnimRoarNoiseLine(struct Sprite *sprite) { if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_OPPONENT) gBattleAnimArgs[0] = -gBattleAnimArgs[0]; @@ -3913,10 +3915,10 @@ void AnimRoarNoiseLine(struct Sprite *sprite) sprite->hFlip = 1; } - sprite->callback = AnimRoarNoiseLineStep; + sprite->callback = AnimRoarNoiseLine_Step; } -static void AnimRoarNoiseLineStep(struct Sprite *sprite) +static void AnimRoarNoiseLine_Step(struct Sprite *sprite) { sprite->data[6] += sprite->data[0]; sprite->data[7] += sprite->data[1]; @@ -3953,10 +3955,10 @@ void AnimTask_GlareEyeDots(u8 taskId) task->data[12] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET) - GetBattlerSpriteCoordAttr(gBattleAnimAttacker, BATTLER_COORD_ATTR_HEIGHT) / 4; task->data[13] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); task->data[14] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); - task->func = AnimTask_GlareEyeDotsStep; + task->func = AnimTask_GlareEyeDots_Step; } -static void AnimTask_GlareEyeDotsStep(u8 taskId) +static void AnimTask_GlareEyeDots_Step(u8 taskId) { u8 i; s16 x, y; @@ -4050,7 +4052,7 @@ static void GetGlareEyeDotCoords(s16 arg0, s16 arg1, s16 arg2, s16 arg3, u8 arg4 *y = y2 >> 8; } -void AnimGlareEyeDot(struct Sprite *sprite) +static void AnimGlareEyeDot(struct Sprite *sprite) { if (++sprite->data[0] > 36) { @@ -4065,7 +4067,7 @@ void AnimGlareEyeDot(struct Sprite *sprite) // arg 2: destination x position // arg 3: destination y position // arg 4: duration -void AnimAssistPawprint(struct Sprite *sprite) +static void AnimAssistPawprint(struct Sprite *sprite) { sprite->pos1.x = gBattleAnimArgs[0]; sprite->pos1.y = gBattleAnimArgs[1]; @@ -4097,7 +4099,7 @@ void AnimTask_BarrageBall(u8 taskId) if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_OPPONENT) StartSpriteAffineAnim(&gSprites[task->data[15]], 1); - task->func = AnimTask_BarrageBallStep; + task->func = AnimTask_BarrageBall_Step; } else { @@ -4105,7 +4107,7 @@ void AnimTask_BarrageBall(u8 taskId) } } -static void AnimTask_BarrageBallStep(u8 taskId) +static void AnimTask_BarrageBall_Step(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -4152,7 +4154,7 @@ static void AnimTask_BarrageBallStep(u8 taskId) // arg 0: which battler // arg 1: horizontal flip // arg 2: num squishes -void AnimSmellingSaltsHand(struct Sprite *sprite) +static void AnimSmellingSaltsHand(struct Sprite *sprite) { u8 battler; @@ -4238,11 +4240,11 @@ void AnimTask_SmellingSaltsSquish(u8 taskId) gTasks[taskId].data[0] = gBattleAnimArgs[1]; gTasks[taskId].data[15] = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); PrepareAffineAnimInTaskData(&gTasks[taskId], gTasks[taskId].data[15], gSmellingSaltsSquishAffineAnimCmds); - gTasks[taskId].func = AnimTask_SmellingSaltsSquishStep; + gTasks[taskId].func = AnimTask_SmellingSaltsSquish_Step; } } -static void AnimTask_SmellingSaltsSquishStep(u8 taskId) +static void AnimTask_SmellingSaltsSquish_Step(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -4275,7 +4277,7 @@ static void AnimTask_SmellingSaltsSquishStep(u8 taskId) // arg 0: which mon // arg 1: blink delay // arg 2: number of blinks -void AnimSmellingSaltExclamation(struct Sprite *sprite) +static void AnimSmellingSaltExclamation(struct Sprite *sprite) { if (gBattleAnimArgs[0] == ANIM_ATTACKER) { @@ -4295,10 +4297,10 @@ void AnimSmellingSaltExclamation(struct Sprite *sprite) sprite->data[1] = gBattleAnimArgs[1]; sprite->data[2] = 0; sprite->data[3] = gBattleAnimArgs[2]; - sprite->callback = AnimSmellingSaltExclamationStep; + sprite->callback = AnimSmellingSaltExclamation_Step; } -static void AnimSmellingSaltExclamationStep(struct Sprite *sprite) +static void AnimSmellingSaltExclamation_Step(struct Sprite *sprite) { if (++sprite->data[0] >= sprite->data[1]) { @@ -4313,7 +4315,7 @@ static void AnimSmellingSaltExclamationStep(struct Sprite *sprite) // Claps a hand several times. // arg 0: which hand // arg 1: -void AnimHelpingHandClap(struct Sprite *sprite) +static void AnimHelpingHandClap(struct Sprite *sprite) { if (gBattleAnimArgs[0] == 0) { @@ -4328,10 +4330,10 @@ void AnimHelpingHandClap(struct Sprite *sprite) } sprite->pos1.y = 56; - sprite->callback = AnimHelpingHandClapStep; + sprite->callback = AnimHelpingHandClap_Step; } -static void AnimHelpingHandClapStep(struct Sprite *sprite) +static void AnimHelpingHandClap_Step(struct Sprite *sprite) { switch (sprite->data[0]) { @@ -4445,10 +4447,10 @@ void AnimTask_HelpingHandAttackerMovement(u8 taskId) task->data[14] = 1; } - task->func = AnimTask_HelpingHandAttackerMovementStep; + task->func = AnimTask_HelpingHandAttackerMovement_Step; } -static void AnimTask_HelpingHandAttackerMovementStep(u8 taskId) +static void AnimTask_HelpingHandAttackerMovement_Step(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -4532,7 +4534,7 @@ static void AnimTask_HelpingHandAttackerMovementStep(u8 taskId) // Moves a magnifying glass around in straight lines. // arg 0: magnifying glass target mon -void AnimForesightMagnifyingGlass(struct Sprite *sprite) +static void AnimForesightMagnifyingGlass(struct Sprite *sprite) { if (gBattleAnimArgs[0] == ANIM_ATTACKER) { @@ -4549,10 +4551,10 @@ void AnimForesightMagnifyingGlass(struct Sprite *sprite) sprite->oam.priority = GetBattlerSpriteBGPriority(sprite->data[7]); sprite->oam.objMode = ST_OAM_OBJ_BLEND; - sprite->callback = AnimForesightMagnifyingGlassStep; + sprite->callback = AnimForesightMagnifyingGlass_Step; } -static void AnimForesightMagnifyingGlassStep(struct Sprite *sprite) +static void AnimForesightMagnifyingGlass_Step(struct Sprite *sprite) { u16 x, y; @@ -4644,7 +4646,7 @@ static void AnimForesightMagnifyingGlassStep(struct Sprite *sprite) SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(sprite->data[1], sprite->data[2])); if (++sprite->data[0] == 32) { - sprite->invisible = 1; + sprite->invisible = TRUE; sprite->data[5]++; } break; @@ -4654,7 +4656,7 @@ static void AnimForesightMagnifyingGlassStep(struct Sprite *sprite) } } -static void AnimMeteorMashStarStep(struct Sprite *sprite) +static void AnimMeteorMashStar_Step(struct Sprite *sprite) { sprite->pos2.x = ((sprite->data[2] - sprite->data[0]) * sprite->data[5]) / sprite->data[4]; sprite->pos2.y = ((sprite->data[3] - sprite->data[1]) * sprite->data[5]) / sprite->data[4]; @@ -4678,7 +4680,7 @@ static void AnimMeteorMashStarStep(struct Sprite *sprite) // arg 2: destination x pixel offset // arg 3: destination y pixel offset // arg 4: duration -void AnimMeteorMashStar(struct Sprite *sprite) +static void AnimMeteorMashStar(struct Sprite *sprite) { s16 y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); // unused local variable s16 x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); // unused local variable @@ -4699,7 +4701,7 @@ void AnimMeteorMashStar(struct Sprite *sprite) sprite->data[4] = gBattleAnimArgs[4]; sprite->pos1.x = sprite->data[0]; sprite->pos1.y = sprite->data[1]; - sprite->callback = AnimMeteorMashStarStep; + sprite->callback = AnimMeteorMashStar_Step; } void AnimTask_MonToSubstitute(u8 taskId) @@ -4723,7 +4725,7 @@ void AnimTask_MonToSubstitute(u8 taskId) { gTasks[taskId].data[3] = 0; ResetSpriteRotScale(spriteId); - gSprites[spriteId].invisible = 1; + gSprites[spriteId].invisible = TRUE; gTasks[taskId].data[0]++; } } @@ -4752,7 +4754,7 @@ static void AnimTask_MonToSubstituteDoll(u8 taskId) case 0: gSprites[spriteId].pos2.y = -200; gSprites[spriteId].pos2.x = 200; - gSprites[spriteId].invisible = 0; + gSprites[spriteId].invisible = FALSE; gTasks[taskId].data[10] = 0; gTasks[taskId].data[0]++; break; @@ -4798,7 +4800,7 @@ static void AnimTask_MonToSubstituteDoll(u8 taskId) // Moves down an X that flickers and disappears. // No args. -void AnimBlockX(struct Sprite *sprite) +static void AnimBlockX(struct Sprite *sprite) { s16 y; @@ -4815,10 +4817,10 @@ void AnimBlockX(struct Sprite *sprite) sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, 3); sprite->pos2.y = y; - sprite->callback = AnimBlockXStep; + sprite->callback = AnimBlockX_Step; } -static void AnimBlockXStep(struct Sprite *sprite) +static void AnimBlockX_Step(struct Sprite *sprite) { switch (sprite->data[0]) { @@ -4922,13 +4924,13 @@ void AnimTask_OdorSleuthMovement(u8 taskId) if (!gBattleSpritesDataPtr->battlerData[gBattleAnimTarget].invisible) { - gSprites[spriteId2].invisible = 0; - gSprites[spriteId1].invisible = 1; + gSprites[spriteId2].invisible = FALSE; + gSprites[spriteId1].invisible = TRUE; } else { - gSprites[spriteId2].invisible = 1; - gSprites[spriteId1].invisible = 1; + gSprites[spriteId2].invisible = TRUE; + gSprites[spriteId1].invisible = TRUE; } gSprites[spriteId2].oam.objMode = ST_OAM_OBJ_NORMAL; @@ -4983,15 +4985,15 @@ static void MoveOdorSleuthClone(struct Sprite *sprite) void AnimTask_GetReturnPowerLevel(u8 taskId) { - gBattleAnimArgs[7] = 0; + gBattleAnimArgs[ARG_RET_ID] = 0; if (gAnimFriendship < 60) - gBattleAnimArgs[7] = 0; + gBattleAnimArgs[ARG_RET_ID] = 0; if (gAnimFriendship > 60 && gAnimFriendship < 92) - gBattleAnimArgs[7] = 1; + gBattleAnimArgs[ARG_RET_ID] = 1; if (gAnimFriendship > 91 && gAnimFriendship < 201) - gBattleAnimArgs[7] = 2; + gBattleAnimArgs[ARG_RET_ID] = 2; if (gAnimFriendship > 200) - gBattleAnimArgs[7] = 3; + gBattleAnimArgs[ARG_RET_ID] = 3; DestroyAnimVisualTask(taskId); } @@ -5143,7 +5145,7 @@ void AnimTask_SnatchOpposingMonMove(u8 taskId) } } -void sub_815FE80(struct Sprite *sprite) +static void sub_815FE80(struct Sprite *sprite) { switch (sprite->data[7]) { @@ -5154,13 +5156,13 @@ void sub_815FE80(struct Sprite *sprite) sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y) + 16; sprite->data[0] = -32; sprite->data[7]++; - sprite->invisible = 0; + sprite->invisible = FALSE; if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_OPPONENT && !IsContest()) sprite->subpriority = gSprites[GetAnimBattlerSpriteId(ANIM_TARGET)].subpriority - 1; } else { - sprite->invisible = 1; + sprite->invisible = TRUE; } break; case 1: @@ -5260,10 +5262,10 @@ void AnimTask_TeeterDanceMovement(u8 taskId) task->data[11] = 0; task->data[10] = 1; task->data[12] = 0; - task->func = AnimTask_TeeterDanceMovementStep; + task->func = AnimTask_TeeterDanceMovement_Step; } -static void AnimTask_TeeterDanceMovementStep(u8 taskId) +static void AnimTask_TeeterDanceMovement_Step(u8 taskId) { struct Task *task = &gTasks[taskId]; switch (task->data[0]) @@ -5297,7 +5299,7 @@ static void AnimTask_TeeterDanceMovementStep(u8 taskId) } } -static void AnimKnockOffStrikeStep(struct Sprite *sprite) +static void AnimKnockOffStrike_Step(struct Sprite *sprite) { // These two cases are identical. if (GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER) @@ -5322,7 +5324,7 @@ static void AnimKnockOffStrikeStep(struct Sprite *sprite) // Animates a strike that swipes downard at the target mon. // arg 0: initial x pixel offset // arg 1: initial y pixel offset -void AnimKnockOffStrike(struct Sprite *sprite) +static void AnimKnockOffStrike(struct Sprite *sprite) { if (GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER) { @@ -5340,12 +5342,12 @@ void AnimKnockOffStrike(struct Sprite *sprite) sprite->pos1.y += gBattleAnimArgs[1]; } - sprite->callback = AnimKnockOffStrikeStep; + sprite->callback = AnimKnockOffStrike_Step; } // Gradually fades a rotating recyle arrow sprite in and back out. // No args. -void AnimRecycle(struct Sprite *sprite) +static void AnimRecycle(struct Sprite *sprite) { sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); sprite->pos1.y = GetBattlerSpriteCoordAttr(gBattleAnimAttacker, BATTLER_COORD_ATTR_TOP); @@ -5354,11 +5356,11 @@ void AnimRecycle(struct Sprite *sprite) sprite->data[6] = 0; sprite->data[7] = 16; - sprite->callback = AnimRecycleStep; + sprite->callback = AnimRecycle_Step; SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(sprite->data[6], sprite->data[7])); } -static void AnimRecycleStep(struct Sprite *sprite) +static void AnimRecycle_Step(struct Sprite *sprite) { switch (sprite->data[2]) { @@ -5420,15 +5422,15 @@ static void AnimRecycleStep(struct Sprite *sprite) void AnimTask_GetWeather(u8 taskId) { - gBattleAnimArgs[7] = ANIM_WEATHER_NONE; + gBattleAnimArgs[ARG_RET_ID] = ANIM_WEATHER_NONE; if (gWeatherMoveAnim & WEATHER_SUN_ANY) - gBattleAnimArgs[7] = ANIM_WEATHER_SUN; + gBattleAnimArgs[ARG_RET_ID] = ANIM_WEATHER_SUN; else if (gWeatherMoveAnim & WEATHER_RAIN_ANY) - gBattleAnimArgs[7] = ANIM_WEATHER_RAIN; + gBattleAnimArgs[ARG_RET_ID] = ANIM_WEATHER_RAIN; else if (gWeatherMoveAnim & WEATHER_SANDSTORM_ANY) - gBattleAnimArgs[7] = ANIM_WEATHER_SANDSTORM; + gBattleAnimArgs[ARG_RET_ID] = ANIM_WEATHER_SANDSTORM; else if (gWeatherMoveAnim & WEATHER_HAIL_ANY) - gBattleAnimArgs[7] = ANIM_WEATHER_HAIL; + gBattleAnimArgs[ARG_RET_ID] = ANIM_WEATHER_HAIL; DestroyAnimVisualTask(taskId); } @@ -5441,10 +5443,10 @@ void AnimTask_SlackOffSquish(u8 taskId) task->data[0] = 0; task->data[15] = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); PrepareAffineAnimInTaskData(task, task->data[15], gSlackOffSquishAffineAnimCmds); - task->func = AnimTask_SlackOffSquishStep; + task->func = AnimTask_SlackOffSquish_Step; } -static void AnimTask_SlackOffSquishStep(u8 taskId) +static void AnimTask_SlackOffSquish_Step(u8 taskId) { struct Task *task = &gTasks[taskId]; diff --git a/src/electric.c b/src/battle_anim_electric.c index 3344db7bf..c153dbc10 100644 --- a/src/electric.c +++ b/src/battle_anim_electric.c @@ -5,39 +5,39 @@ #include "constants/songs.h" #include "sound.h" -static void sub_810A1A8(struct Sprite *); -static void sub_810A1F8(struct Sprite *); +static void AnimLightning(struct Sprite *); +static void AnimLightning_Step(struct Sprite *); static void sub_810A214(struct Sprite *); static void sub_810A258(struct Sprite *); static void sub_810A274(struct Sprite *); -static void sub_810A308(struct Sprite *); -static void sub_810A46C(struct Sprite *); -static void sub_810A4F4(struct Sprite *); -static void sub_810A56C(struct Sprite *); -static void sub_810A5BC(struct Sprite *); -static void sub_810A628(struct Sprite *); -static void sub_810A6EC(struct Sprite *); -static void sub_810A75C(struct Sprite *); -static void sub_810A834(u8 taskId); -static void sub_810A9DC(struct Sprite *); -static void sub_810AA2C(struct Sprite *); -static void sub_810AAB0(struct Sprite *); -static void sub_810AB78(u8 taskId); -static void sub_810AC8C(struct Sprite *); -static void sub_810ACC0(struct Sprite *); -static void sub_810ACD8(struct Sprite *); -static void sub_810AD30(struct Sprite *); -static void sub_810AD98(struct Sprite *); -static void sub_810ADF8(struct Sprite *); +static void AnimSparkElectricity(struct Sprite *); +static void AnimZapCannonSpark(struct Sprite *); +static void AnimZapCannonSpark_Step(struct Sprite *); +static void AnimThunderboltOrb(struct Sprite *); +static void AnimThunderboltOrb_Step(struct Sprite *); +static void AnimSparkElectricityFlashing(struct Sprite *); +static void AnimSparkElectricityFlashing_Step(struct Sprite *); +static void AnimElectricity(struct Sprite *); +static void AnimTask_ElectricBolt_Step(u8 taskId); +static void AnimElectricBoltSegment(struct Sprite *); +static void AnimThunderWave(struct Sprite *); +static void AnimThunderWave_Step(struct Sprite *); +static void AnimTask_ElectricChargingParticles_Step(u8 taskId); +static void AnimElectricChargingParticles(struct Sprite *); +static void AnimElectricChargingParticles_Step(struct Sprite *); +static void AnimGrowingChargeOrb(struct Sprite *); +static void AnimElectricPuff(struct Sprite *); +static void AnimVoltTackleOrbSlide(struct Sprite *); +static void AnimVoltTackleOrbSlide_Step(struct Sprite *); static bool8 sub_810B154(struct Task *task, u8 taskId); -static void sub_810B1F0(struct Sprite *); -static void sub_810B23C(struct Sprite *); +static void AnimVoltTackleBolt(struct Sprite *); +static void AnimGrowingShockWaveOrb(struct Sprite *); static bool8 sub_810B430(struct Task *task, u8 taskId); -static void sub_810B51C(struct Sprite *); +static void AnimShockWaveProgressingBolt(struct Sprite *); static bool8 sub_810B614(struct Task *task, u8 taskId); static void sub_810B684(struct Sprite *sprite); -const union AnimCmd gUnknown_085956A4[] = +static const union AnimCmd sAnim_Lightning[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_FRAME(16, 5), @@ -47,23 +47,23 @@ const union AnimCmd gUnknown_085956A4[] = ANIMCMD_END, }; -const union AnimCmd *const gUnknown_085956BC[] = +static const union AnimCmd *const sAnims_Lightning[] = { - gUnknown_085956A4, + sAnim_Lightning, }; -const struct SpriteTemplate gUnknown_085956C0 = +const struct SpriteTemplate gLightningSpriteTemplate = { .tileTag = ANIM_TAG_LIGHTNING, .paletteTag = ANIM_TAG_LIGHTNING, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_085956BC, + .anims = sAnims_Lightning, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_810A1A8, + .callback = AnimLightning, }; -const union AffineAnimCmd gUnknown_085956D8[] = +static const union AffineAnimCmd gUnknown_085956D8[] = { AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0), AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 20), @@ -71,11 +71,12 @@ const union AffineAnimCmd gUnknown_085956D8[] = AFFINEANIMCMD_END, }; -const union AffineAnimCmd *const gUnknown_085956F8[] = +static const union AffineAnimCmd *const gUnknown_085956F8[] = { gUnknown_085956D8, }; +// Unused const struct SpriteTemplate gUnknown_085956FC = { .tileTag = ANIM_TAG_HANDS_AND_FEET, @@ -87,7 +88,7 @@ const struct SpriteTemplate gUnknown_085956FC = .callback = sub_810A214, }; -const union AnimCmd gUnknown_08595714[] = +static const union AnimCmd gUnknown_08595714[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_FRAME(16, 5), @@ -98,11 +99,12 @@ const union AnimCmd gUnknown_08595714[] = ANIMCMD_JUMP(0), }; -const union AnimCmd *const gUnknown_08595730[] = +static const union AnimCmd *const gUnknown_08595730[] = { gUnknown_08595714, }; +// Unused const struct SpriteTemplate gUnknown_08595734 = { .tileTag = ANIM_TAG_SHOCK, @@ -114,7 +116,7 @@ const struct SpriteTemplate gUnknown_08595734 = .callback = sub_810A274, }; -const struct SpriteTemplate gBattleAnimSpriteTemplate_859574C = +const struct SpriteTemplate gSparkElectricitySpriteTemplate = { .tileTag = ANIM_TAG_SPARK_2, .paletteTag = ANIM_TAG_SPARK_2, @@ -122,10 +124,10 @@ const struct SpriteTemplate gBattleAnimSpriteTemplate_859574C = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_810A308, + .callback = AnimSparkElectricity, }; -const struct SpriteTemplate gUnknown_08595764 = +const struct SpriteTemplate gZapCannonBallSpriteTemplate = { .tileTag = ANIM_TAG_BLACK_BALL_2, .paletteTag = ANIM_TAG_BLACK_BALL_2, @@ -136,29 +138,29 @@ const struct SpriteTemplate gUnknown_08595764 = .callback = TranslateAnimSpriteToTargetMonLocation, }; -const union AffineAnimCmd gUnknown_0859577C[] = +static const union AffineAnimCmd sAffineAnim_FlashingSpark[] = { AFFINEANIMCMD_FRAME(0x0, 0x0, 20, 1), AFFINEANIMCMD_JUMP(0), }; -const union AffineAnimCmd *const gUnknown_0859578C[] = +static const union AffineAnimCmd *const sAffineAnims_FlashingSpark[] = { - gUnknown_0859577C, + sAffineAnim_FlashingSpark, }; -const struct SpriteTemplate gUnknown_08595790 = +const struct SpriteTemplate gZapCannonSparkSpriteTemplate = { .tileTag = ANIM_TAG_SPARK_2, .paletteTag = ANIM_TAG_SPARK_2, .oam = &gOamData_AffineNormal_ObjNormal_16x16, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_0859578C, - .callback = sub_810A46C, + .affineAnims = sAffineAnims_FlashingSpark, + .callback = AnimZapCannonSpark, }; -const union AnimCmd gUnknown_085957A8[] = +static const union AnimCmd sAnim_ThunderboltOrb[] = { ANIMCMD_FRAME(0, 6), ANIMCMD_FRAME(16, 6), @@ -166,12 +168,12 @@ const union AnimCmd gUnknown_085957A8[] = ANIMCMD_JUMP(0), }; -const union AnimCmd *const gUnknown_085957B8[] = +static const union AnimCmd *const sAnims_ThunderboltOrb[] = { - gUnknown_085957A8, + sAnim_ThunderboltOrb, }; -const union AffineAnimCmd gUnknown_085957BC[] = +static const union AffineAnimCmd sAffineAnim_ThunderboltOrb[] = { AFFINEANIMCMD_FRAME(0xE8, 0xE8, 0, 0), AFFINEANIMCMD_FRAME(0xFFF8, 0xFFF8, 0, 10), @@ -179,31 +181,31 @@ const union AffineAnimCmd gUnknown_085957BC[] = AFFINEANIMCMD_JUMP(1), }; -const union AffineAnimCmd *const gUnknown_085957DC[] = +static const union AffineAnimCmd *const sAffineAnims_ThunderboltOrb[] = { - gUnknown_085957BC, + sAffineAnim_ThunderboltOrb, }; -const struct SpriteTemplate gBattleAnimSpriteTemplate_85957E0 = +const struct SpriteTemplate gThunderboltOrbSpriteTemplate = { .tileTag = ANIM_TAG_SHOCK_3, .paletteTag = ANIM_TAG_SHOCK_3, .oam = &gOamData_AffineNormal_ObjNormal_32x32, - .anims = gUnknown_085957B8, + .anims = sAnims_ThunderboltOrb, .images = NULL, - .affineAnims = gUnknown_085957DC, - .callback = sub_810A5BC, + .affineAnims = sAffineAnims_ThunderboltOrb, + .callback = AnimThunderboltOrb, }; -const struct SpriteTemplate gBattleAnimSpriteTemplate_85957F8 = +const struct SpriteTemplate gSparkElectricityFlashingSpriteTemplate = { .tileTag = ANIM_TAG_SPARK_2, .paletteTag = ANIM_TAG_SPARK_2, .oam = &gOamData_AffineNormal_ObjNormal_16x16, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_0859578C, - .callback = sub_810A628, + .affineAnims = sAffineAnims_FlashingSpark, + .callback = AnimSparkElectricityFlashing, }; const struct SpriteTemplate gElectricitySpriteTemplate = @@ -214,10 +216,10 @@ const struct SpriteTemplate gElectricitySpriteTemplate = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_810A75C, + .callback = AnimElectricity, }; -const struct SpriteTemplate gUnknown_08595828 = +const struct SpriteTemplate gElectricBoltSegmentSpriteTemplate = { .tileTag = ANIM_TAG_SPARK, .paletteTag = ANIM_TAG_SPARK, @@ -225,10 +227,10 @@ const struct SpriteTemplate gUnknown_08595828 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_810A9DC, + .callback = AnimElectricBoltSegment, }; -const struct SpriteTemplate gUnknown_08595840 = +const struct SpriteTemplate gThunderWaveSpriteTemplate = { .tileTag = ANIM_TAG_SPARK_H, .paletteTag = ANIM_TAG_SPARK_H, @@ -236,10 +238,10 @@ const struct SpriteTemplate gUnknown_08595840 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_810AA2C, + .callback = AnimThunderWave, }; -const s8 gUnknown_08595858[][2] = +static const s8 sElectricChargingParticleCoordOffsets[][2] = { { 58, -60}, {-56, -36}, @@ -259,7 +261,7 @@ const s8 gUnknown_08595858[][2] = { 48, 48}, }; -const union AnimCmd gUnknown_08595878[] = +static const union AnimCmd sAnim_ElectricChargingParticles_0[] = { ANIMCMD_FRAME(3, 1), ANIMCMD_FRAME(2, 1), @@ -268,7 +270,7 @@ const union AnimCmd gUnknown_08595878[] = ANIMCMD_END, }; -const union AnimCmd gUnknown_0859588C[] = +static const union AnimCmd sAnim_ElectricChargingParticles_1[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_FRAME(1, 5), @@ -277,24 +279,24 @@ const union AnimCmd gUnknown_0859588C[] = ANIMCMD_END, }; -const union AnimCmd *const gUnknown_085958A0[] = +static const union AnimCmd *const sAnims_ElectricChargingParticles[] = { - gUnknown_08595878, - gUnknown_0859588C, + sAnim_ElectricChargingParticles_0, + sAnim_ElectricChargingParticles_1, }; -const struct SpriteTemplate gUnknown_085958A8 = +const struct SpriteTemplate gElectricChargingParticlesSpriteTemplate = { .tileTag = ANIM_TAG_ELECTRIC_ORBS, .paletteTag = ANIM_TAG_ELECTRIC_ORBS, .oam = &gOamData_AffineOff_ObjNormal_8x8, - .anims = gUnknown_085958A0, + .anims = sAnims_ElectricChargingParticles, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy, }; -const union AffineAnimCmd gUnknown_085958C0[] = +static const union AffineAnimCmd sAffineAnim_GrowingElectricOrb_0[] = { AFFINEANIMCMD_FRAME(0x10, 0x10, 0, 0), AFFINEANIMCMD_FRAME(0x4, 0x4, 0, 60), @@ -306,7 +308,7 @@ const union AffineAnimCmd gUnknown_085958C0[] = AFFINEANIMCMD_END, }; -const union AffineAnimCmd gUnknown_08595900[] = +static const union AffineAnimCmd sAffineAnim_GrowingElectricOrb_1[] = { AFFINEANIMCMD_FRAME(0x10, 0x10, 0, 0), AFFINEANIMCMD_FRAME(0x8, 0x8, 0, 30), @@ -316,7 +318,7 @@ const union AffineAnimCmd gUnknown_08595900[] = AFFINEANIMCMD_JUMP(3), }; -const union AffineAnimCmd gUnknown_08595930[] = +static const union AffineAnimCmd sAffineAnim_GrowingElectricOrb_2[] = { AFFINEANIMCMD_FRAME(0x10, 0x10, 0, 0), AFFINEANIMCMD_FRAME(0x8, 0x8, 0, 30), @@ -324,25 +326,25 @@ const union AffineAnimCmd gUnknown_08595930[] = AFFINEANIMCMD_END, }; -const union AffineAnimCmd *const gUnknown_08595950[] = +static const union AffineAnimCmd *const sAffineAnims_GrowingElectricOrb[] = { - gUnknown_085958C0, - gUnknown_08595900, - gUnknown_08595930, + sAffineAnim_GrowingElectricOrb_0, + sAffineAnim_GrowingElectricOrb_1, + sAffineAnim_GrowingElectricOrb_2, }; -const struct SpriteTemplate gUnknown_0859595C = +const struct SpriteTemplate gGrowingChargeOrbSpriteTemplate = { .tileTag = ANIM_TAG_CIRCLE_OF_LIGHT, .paletteTag = ANIM_TAG_CIRCLE_OF_LIGHT, .oam = &gOamData_AffineNormal_ObjBlend_64x64, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_08595950, - .callback = sub_810ACD8, + .affineAnims = sAffineAnims_GrowingElectricOrb, + .callback = AnimGrowingChargeOrb, }; -const union AnimCmd gUnknown_08595974[] = +static const union AnimCmd sAnim_ElectricPuff[] = { ANIMCMD_FRAME(0, 3), ANIMCMD_FRAME(16, 3), @@ -351,99 +353,99 @@ const union AnimCmd gUnknown_08595974[] = ANIMCMD_END, }; -const union AnimCmd *const gUnknown_08595988[] = +static const union AnimCmd *const sAnims_ElectricPuff[] = { - gUnknown_08595974, + sAnim_ElectricPuff, }; -const struct SpriteTemplate gUnknown_0859598C = +const struct SpriteTemplate gElectricPuffSpriteTemplate = { .tileTag = ANIM_TAG_ELECTRICITY, .paletteTag = ANIM_TAG_ELECTRICITY, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_08595988, + .anims = sAnims_ElectricPuff, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_810AD30, + .callback = AnimElectricPuff, }; -const struct SpriteTemplate gUnknown_085959A4 = +const struct SpriteTemplate gVoltTackleOrbSlideSpriteTemplate = { .tileTag = ANIM_TAG_CIRCLE_OF_LIGHT, .paletteTag = ANIM_TAG_CIRCLE_OF_LIGHT, .oam = &gOamData_AffineNormal_ObjBlend_64x64, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_08595950, - .callback = sub_810AD98, + .affineAnims = sAffineAnims_GrowingElectricOrb, + .callback = AnimVoltTackleOrbSlide, }; -const union AnimCmd gUnknown_085959BC[] = +static const union AnimCmd sAnim_VoltTackleBolt_0[] = { ANIMCMD_FRAME(0, 3), ANIMCMD_END, }; -const union AnimCmd gUnknown_085959C4[] = +static const union AnimCmd sAnim_VoltTackleBolt_1[] = { ANIMCMD_FRAME(2, 3), ANIMCMD_END, }; -const union AnimCmd gUnknown_085959CC[] = +static const union AnimCmd sAnim_VoltTackleBolt_2[] = { ANIMCMD_FRAME(4, 3), ANIMCMD_END, }; -const union AnimCmd gUnknown_085959D4[] = +static const union AnimCmd sAnim_VoltTackleBolt_3[] = { ANIMCMD_FRAME(6, 3), ANIMCMD_END, }; -const union AnimCmd *const gUnknown_085959DC[] = +static const union AnimCmd *const sAnims_VoltTackleBolt[] = { - gUnknown_085959BC, - gUnknown_085959C4, - gUnknown_085959CC, - gUnknown_085959D4, + sAnim_VoltTackleBolt_0, + sAnim_VoltTackleBolt_1, + sAnim_VoltTackleBolt_2, + sAnim_VoltTackleBolt_3, }; -const union AffineAnimCmd gUnknown_085959EC[] = +static const union AffineAnimCmd sAffineAnim_VoltTackleBolt[] = { AFFINEANIMCMD_FRAME(0x100, 0x100, 64, 0), AFFINEANIMCMD_END, }; -const union AffineAnimCmd *const gUnknown_085959FC[] = +static const union AffineAnimCmd *const sAffineAnims_VoltTackleBolt[] = { - gUnknown_085959EC, + sAffineAnim_VoltTackleBolt, }; -const struct SpriteTemplate gUnknown_08595A00 = +const struct SpriteTemplate gVoltTackleBoltSpriteTemplate = { .tileTag = ANIM_TAG_SPARK, .paletteTag = ANIM_TAG_SPARK, .oam = &gOamData_AffineDouble_ObjNormal_8x16, - .anims = gUnknown_085959DC, + .anims = sAnims_VoltTackleBolt, .images = NULL, - .affineAnims = gUnknown_085959FC, - .callback = sub_810B1F0, + .affineAnims = sAffineAnims_VoltTackleBolt, + .callback = AnimVoltTackleBolt, }; -const struct SpriteTemplate gUnknown_08595A18 = +const struct SpriteTemplate gGrowingShockWaveOrbSpriteTemplate = { .tileTag = ANIM_TAG_CIRCLE_OF_LIGHT, .paletteTag = ANIM_TAG_CIRCLE_OF_LIGHT, .oam = &gOamData_AffineNormal_ObjBlend_64x64, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_08595950, - .callback = sub_810B23C, + .affineAnims = sAffineAnims_GrowingElectricOrb, + .callback = AnimGrowingShockWaveOrb, }; -const struct SpriteTemplate gUnknown_08595A30 = +const struct SpriteTemplate gShockWaveProgressingBoltSpriteTemplate = { .tileTag = ANIM_TAG_SPARK, .paletteTag = ANIM_TAG_SPARK, @@ -451,10 +453,10 @@ const struct SpriteTemplate gUnknown_08595A30 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_810B51C, + .callback = AnimShockWaveProgressingBolt, }; -static void sub_810A1A8(struct Sprite *sprite) +static void AnimLightning(struct Sprite *sprite) { if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) sprite->pos1.x -= gBattleAnimArgs[0]; @@ -462,10 +464,10 @@ static void sub_810A1A8(struct Sprite *sprite) sprite->pos1.x += gBattleAnimArgs[0]; sprite->pos1.y += gBattleAnimArgs[1]; - sprite->callback = sub_810A1F8; + sprite->callback = AnimLightning_Step; } -static void sub_810A1F8(struct Sprite *sprite) +static void AnimLightning_Step(struct Sprite *sprite) { if (sprite->animEnded) DestroyAnimSprite(sprite); @@ -510,7 +512,7 @@ static void sub_810A274(struct Sprite *sprite) sprite->callback = TranslateSpriteInCircleOverDuration; } -static void sub_810A308(struct Sprite *sprite) +static void AnimSparkElectricity(struct Sprite *sprite) { u8 battler; u32 matrixNum; @@ -518,20 +520,20 @@ static void sub_810A308(struct Sprite *sprite) switch (gBattleAnimArgs[4]) { - case 0: + case ANIM_ATTACKER: battler = gBattleAnimAttacker; break; - case 1: + case ANIM_TARGET: default: battler = gBattleAnimTarget; break; - case 2: + case ANIM_ATK_PARTNER: if (!IsBattlerSpriteVisible(BATTLE_PARTNER(gBattleAnimAttacker))) battler = gBattleAnimAttacker; else battler = BATTLE_PARTNER(gBattleAnimAttacker); break; - case 3: + case ANIM_DEF_PARTNER: if (IsBattlerSpriteVisible(BATTLE_PARTNER(gBattleAnimAttacker))) battler = BATTLE_PARTNER(gBattleAnimTarget); else @@ -564,10 +566,10 @@ static void sub_810A308(struct Sprite *sprite) gOamMatrices[matrixNum].c = -sineVal; sprite->data[0] = gBattleAnimArgs[3]; - sprite->callback = sub_810E2C8; + sprite->callback = DestroyAnimSpriteAfterTimer; } -static void sub_810A46C(struct Sprite *sprite) +static void AnimZapCannonSpark(struct Sprite *sprite) { InitSpritePosToAnimAttacker(sprite, 1); sprite->data[0] = gBattleAnimArgs[3]; @@ -580,11 +582,11 @@ static void sub_810A46C(struct Sprite *sprite) sprite->data[6] = gBattleAnimArgs[5]; sprite->data[7] = gBattleAnimArgs[4]; sprite->oam.tileNum += gBattleAnimArgs[6] * 4; - sprite->callback = sub_810A4F4; - sub_810A4F4(sprite); + sprite->callback = AnimZapCannonSpark_Step; + AnimZapCannonSpark_Step(sprite); } -static void sub_810A4F4(struct Sprite *sprite) +static void AnimZapCannonSpark_Step(struct Sprite *sprite) { if (!AnimTranslateLinear(sprite)) { @@ -598,7 +600,7 @@ static void sub_810A4F4(struct Sprite *sprite) DestroyAnimSprite(sprite); } -static void sub_810A56C(struct Sprite *sprite) +static void AnimThunderboltOrb_Step(struct Sprite *sprite) { if (--sprite->data[5] == -1) { @@ -609,7 +611,7 @@ static void sub_810A56C(struct Sprite *sprite) DestroyAnimSprite(sprite); } -static void sub_810A5BC(struct Sprite *sprite) +static void AnimThunderboltOrb(struct Sprite *sprite) { if (IsContest() || GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER) gBattleAnimArgs[1] = -gBattleAnimArgs[1]; @@ -619,10 +621,10 @@ static void sub_810A5BC(struct Sprite *sprite) sprite->data[3] = gBattleAnimArgs[0]; sprite->data[4] = gBattleAnimArgs[3]; sprite->data[5] = gBattleAnimArgs[3]; - sprite->callback = sub_810A56C; + sprite->callback = AnimThunderboltOrb_Step; } -static void sub_810A628(struct Sprite *sprite) +static void AnimSparkElectricityFlashing(struct Sprite *sprite) { u8 battler; @@ -644,24 +646,25 @@ static void sub_810A628(struct Sprite *sprite) sprite->data[7] = gBattleAnimArgs[4]; sprite->oam.tileNum += gBattleAnimArgs[6] * 4; - sprite->callback = sub_810A6EC; + sprite->callback = AnimSparkElectricityFlashing_Step; sprite->callback(sprite); } -static void sub_810A6EC(struct Sprite *sprite) +static void AnimSparkElectricityFlashing_Step(struct Sprite *sprite) { sprite->pos2.x = Sin(sprite->data[7], sprite->data[5]); sprite->pos2.y = Cos(sprite->data[7], sprite->data[5]); sprite->data[7] = (sprite->data[7] + sprite->data[6]) & 0xFF; if (sprite->data[7] % sprite->data[4] == 0) - sprite->invisible ^= 1; + sprite->invisible ^= TRUE; if (sprite->data[0]-- <= 0) DestroyAnimSprite(sprite); } -static void sub_810A75C(struct Sprite *sprite) +// Electricity arcs around the target. Used for Paralysis and various electric move hits +static void AnimElectricity(struct Sprite *sprite) { InitSpritePosToAnimTarget(sprite, FALSE); sprite->oam.tileNum += gBattleAnimArgs[3] * 4; @@ -676,15 +679,16 @@ static void sub_810A75C(struct Sprite *sprite) StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); } -void sub_810A7DC(u8 taskId) +// The vertical falling thunder bolt used in Thunder Wave/Shock/Bolt +void AnimTask_ElectricBolt(u8 taskId) { gTasks[taskId].data[0] = GetBattlerSpriteCoord(gBattleAnimTarget, 0) + gBattleAnimArgs[0]; gTasks[taskId].data[1] = GetBattlerSpriteCoord(gBattleAnimTarget, 1) + gBattleAnimArgs[1]; gTasks[taskId].data[2] = gBattleAnimArgs[2]; - gTasks[taskId].func = sub_810A834; + gTasks[taskId].func = AnimTask_ElectricBolt_Step; } -static void sub_810A834(u8 taskId) +static void AnimTask_ElectricBolt_Step(u8 taskId) { u16 r8; u16 r2; @@ -712,30 +716,30 @@ static void sub_810A834(u8 taskId) { case 0: r12 *= 1; - spriteId = CreateSprite(&gUnknown_08595828, x, y + r12, 2); + spriteId = CreateSprite(&gElectricBoltSegmentSpriteTemplate, x, y + r12, 2); r7++; break; case 2: r12 *= 2; r8 += r2; - spriteId = CreateSprite(&gUnknown_08595828, x, y + r12, 2); + spriteId = CreateSprite(&gElectricBoltSegmentSpriteTemplate, x, y + r12, 2); r7++; break; case 4: r12 *= 3; r8 += r2 * 2; - spriteId = CreateSprite(&gUnknown_08595828, x, y + r12, 2); + spriteId = CreateSprite(&gElectricBoltSegmentSpriteTemplate, x, y + r12, 2); r7++; break; case 6: r12 *= 4; r8 += r2 * 3; - spriteId = CreateSprite(&gUnknown_08595828, x, y + r12, 2); + spriteId = CreateSprite(&gElectricBoltSegmentSpriteTemplate, x, y + r12, 2); r7++; break; case 8: r12 *= 5; - spriteId = CreateSprite(&gUnknown_08595828, x, y + r12, 2); + spriteId = CreateSprite(&gElectricBoltSegmentSpriteTemplate, x, y + r12, 2); r7++; break; case 10: @@ -753,7 +757,7 @@ static void sub_810A834(u8 taskId) gTasks[taskId].data[10]++; } -static void sub_810A9DC(struct Sprite *sprite) +static void AnimElectricBoltSegment(struct Sprite *sprite) { if (!sprite->data[0]) { @@ -769,20 +773,21 @@ static void sub_810A9DC(struct Sprite *sprite) DestroySprite(sprite); } -static void sub_810AA2C(struct Sprite *sprite) +// The horizontal bands of electricity used in Thunder Wave +static void AnimThunderWave(struct Sprite *sprite) { u8 spriteId; sprite->pos1.x += gBattleAnimArgs[0]; sprite->pos1.y += gBattleAnimArgs[1]; - spriteId = CreateSprite(&gUnknown_08595840, sprite->pos1.x + 32, sprite->pos1.y, sprite->subpriority); + spriteId = CreateSprite(&gThunderWaveSpriteTemplate, sprite->pos1.x + 32, sprite->pos1.y, sprite->subpriority); gSprites[spriteId].oam.tileNum += 8; gAnimVisualTaskCount++; - gSprites[spriteId].callback = sub_810AAB0; - sprite->callback = sub_810AAB0; + gSprites[spriteId].callback = AnimThunderWave_Step; + sprite->callback = AnimThunderWave_Step; } -static void sub_810AAB0(struct Sprite *sprite) +static void AnimThunderWave_Step(struct Sprite *sprite) { if (++sprite->data[0] == 3) { @@ -794,11 +799,12 @@ static void sub_810AAB0(struct Sprite *sprite) DestroyAnimSprite(sprite); } -void sub_810AAFC(u8 taskId) +// Animates small electric orbs moving from around the battler inward. For Charge/Shock Wave +void AnimTask_ElectricChargingParticles(u8 taskId) { struct Task *task = &gTasks[taskId]; - if (!gBattleAnimArgs[0]) + if (gBattleAnimArgs[0] == ANIM_ATTACKER) { task->data[14] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); task->data[15] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); @@ -817,10 +823,10 @@ void sub_810AAFC(u8 taskId) task->data[11] = gBattleAnimArgs[3]; task->data[12] = 0; task->data[13] = gBattleAnimArgs[2]; - task->func = sub_810AB78; + task->func = AnimTask_ElectricChargingParticles_Step; } -void sub_810AB78(u8 taskId) +static void AnimTask_ElectricChargingParticles_Step(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -830,12 +836,12 @@ void sub_810AB78(u8 taskId) { u8 spriteId; task->data[12] = 0; - spriteId = CreateSprite(&gUnknown_085958A8, task->data[14], task->data[15], 2); + spriteId = CreateSprite(&gElectricChargingParticlesSpriteTemplate, task->data[14], task->data[15], 2); if (spriteId != MAX_SPRITES) { struct Sprite *sprite = &gSprites[spriteId]; - sprite->pos1.x += gUnknown_08595858[task->data[9]][0]; - sprite->pos1.y += gUnknown_08595858[task->data[9]][1]; + sprite->pos1.x += sElectricChargingParticleCoordOffsets[task->data[9]][0]; + sprite->pos1.y += sElectricChargingParticleCoordOffsets[task->data[9]][1]; sprite->data[0] = 40 - task->data[8] * 5; sprite->data[1] = sprite->pos1.x; @@ -845,7 +851,7 @@ void sub_810AB78(u8 taskId) sprite->data[5] = taskId; InitAnimLinearTranslation(sprite); - StoreSpriteCallbackInData6(sprite, sub_810ACC0); + StoreSpriteCallbackInData6(sprite, AnimElectricChargingParticles); sprite->callback = RunStoredCallbackWhenAnimEnds; if (++task->data[9] > 15) @@ -867,7 +873,7 @@ void sub_810AB78(u8 taskId) DestroyAnimVisualTask(taskId); } -static void sub_810AC8C(struct Sprite *sprite) +static void AnimElectricChargingParticles_Step(struct Sprite *sprite) { if (AnimTranslateLinear(sprite)) { @@ -876,15 +882,15 @@ static void sub_810AC8C(struct Sprite *sprite) } } -static void sub_810ACC0(struct Sprite *sprite) +static void AnimElectricChargingParticles(struct Sprite *sprite) { StartSpriteAnim(sprite, 1); - sprite->callback = sub_810AC8C; + sprite->callback = AnimElectricChargingParticles_Step; } -static void sub_810ACD8(struct Sprite *sprite) +static void AnimGrowingChargeOrb(struct Sprite *sprite) { - if (!gBattleAnimArgs[0]) + if (gBattleAnimArgs[0] == ANIM_ATTACKER) { sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); @@ -899,9 +905,10 @@ static void sub_810ACD8(struct Sprite *sprite) sprite->callback = RunStoredCallbackWhenAffineAnimEnds; } -static void sub_810AD30(struct Sprite *sprite) +// The quick electric burst at the end of Charge / during the Volt Tackle hit +static void AnimElectricPuff(struct Sprite *sprite) { - if (!gBattleAnimArgs[0]) + if (gBattleAnimArgs[0] == ANIM_ATTACKER) { sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); @@ -918,21 +925,22 @@ static void sub_810AD30(struct Sprite *sprite) sprite->callback = RunStoredCallbackWhenAnimEnds; } -static void sub_810AD98(struct Sprite *sprite) +// Creates an orb of electricity that grows then slides off-screen. The attacker slides with it +static void AnimVoltTackleOrbSlide(struct Sprite *sprite) { StartSpriteAffineAnim(sprite, 1); sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); - sprite->data[6] = GetAnimBattlerSpriteId(0); + sprite->data[6] = GetAnimBattlerSpriteId(ANIM_ATTACKER); sprite->data[7] = 16; if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_OPPONENT) sprite->data[7] *= -1; - sprite->callback = sub_810ADF8; + sprite->callback = AnimVoltTackleOrbSlide_Step; } -static void sub_810ADF8(struct Sprite *sprite) +static void AnimVoltTackleOrbSlide_Step(struct Sprite *sprite) { switch (sprite->data[0]) { @@ -948,14 +956,14 @@ static void sub_810ADF8(struct Sprite *sprite) } } -void sub_810AE5C(u8 taskId) +void AnimTask_VoltTackleAttackerReappear(u8 taskId) { struct Task *task = &gTasks[taskId]; switch (task->data[0]) { case 0: - task->data[15] = GetAnimBattlerSpriteId(0); + task->data[15] = GetAnimBattlerSpriteId(ANIM_ATTACKER); task->data[14] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) { @@ -998,12 +1006,13 @@ void sub_810AE5C(u8 taskId) } break; case 3: - gSprites[task->data[15]].invisible = 0; + gSprites[task->data[15]].invisible = FALSE; DestroyAnimVisualTask(taskId); } } -void sub_810AFCC(u8 taskId) +// The horizontal bolts of electricity for Volt Tackle +void AnimTask_VoltTackleBolt(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -1079,7 +1088,7 @@ void sub_810AFCC(u8 taskId) static bool8 sub_810B154(struct Task *task, u8 taskId) { - u8 spriteId = CreateSprite(&gUnknown_08595A00, task->data[3], task->data[5], 35); + u8 spriteId = CreateSprite(&gVoltTackleBoltSpriteTemplate, task->data[3], task->data[5], 35); if (spriteId != MAX_SPRITES) { gSprites[spriteId].data[6] = taskId; @@ -1107,7 +1116,7 @@ static bool8 sub_810B154(struct Task *task, u8 taskId) } } -static void sub_810B1F0(struct Sprite *sprite) +static void AnimVoltTackleBolt(struct Sprite *sprite) { if (++sprite->data[0] > 12) { @@ -1117,7 +1126,7 @@ static void sub_810B1F0(struct Sprite *sprite) } } -static void sub_810B23C(struct Sprite *sprite) +static void AnimGrowingShockWaveOrb(struct Sprite *sprite) { switch (sprite->data[0]) { @@ -1134,7 +1143,8 @@ static void sub_810B23C(struct Sprite *sprite) } } -void sub_810B29C(u8 taskId) +// Thin bolt of electricity that moves up and down toward the target. Used by Shock Wave +void AnimTask_ShockWaveProgressingBolt(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -1214,7 +1224,7 @@ void sub_810B29C(u8 taskId) static bool8 sub_810B430(struct Task *task, u8 taskId) { - u8 spriteId = CreateSprite(&gUnknown_08595A30, task->data[6], task->data[7], 35); + u8 spriteId = CreateSprite(&gShockWaveProgressingBoltSpriteTemplate, task->data[6], task->data[7], 35); if (spriteId != MAX_SPRITES) { gSprites[spriteId].oam.tileNum += task->data[4]; @@ -1249,7 +1259,8 @@ static bool8 sub_810B430(struct Task *task, u8 taskId) } } -static void sub_810B51C(struct Sprite *sprite) +// Just runs timer for sprite. See AnimTask_ShockWaveProgressingBolt +static void AnimShockWaveProgressingBolt(struct Sprite *sprite) { if (++sprite->data[0] > 12) { @@ -1258,7 +1269,7 @@ static void sub_810B51C(struct Sprite *sprite) } } -void sub_810B55C(u8 taskId) +void AnimTask_ShockWaveLightning(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -1293,7 +1304,7 @@ void sub_810B55C(u8 taskId) bool8 sub_810B614(struct Task *task, u8 taskId) { - u8 spriteId = CreateSprite(&gUnknown_085956C0, task->data[13], task->data[14], task->data[12]); + u8 spriteId = CreateSprite(&gLightningSpriteTemplate, task->data[13], task->data[14], task->data[12]); if (spriteId != MAX_SPRITES) { diff --git a/src/fight.c b/src/battle_anim_fight.c index 0c4b5a3fa..5211860e0 100644 --- a/src/fight.c +++ b/src/battle_anim_fight.c @@ -6,38 +6,40 @@ #include "trig.h" #include "constants/rgb.h" -void unc_080B08A0(struct Sprite *); -void sub_810CE68(struct Sprite *); -void sub_810CEB4(struct Sprite *); -void AnimBasicFistOrFoot(struct Sprite *); -void sub_810CF30(struct Sprite *); -void sub_810D10C(struct Sprite *); -void sub_810D1B4(struct Sprite *); -void AnimSpinningKickOrPunch(struct Sprite *); -void AnimStompFoot(struct Sprite *); -void sub_810D37C(struct Sprite *); -void sub_810D40C(struct Sprite *); -void sub_810D4F4(struct Sprite *); -void sub_810D608(struct Sprite *); -void sub_810D714(struct Sprite *); -void sub_810D874(struct Sprite *); -void sub_810D984(struct Sprite *); -void sub_810DA10(struct Sprite *); -void sub_810DA7C(struct Sprite *); -static void sub_810D0B8(struct Sprite *); -static void sub_810D164(struct Sprite *); -static void sub_810D240(struct Sprite *); +static void unc_080B08A0(struct Sprite *); +static void AnimSlideHandOrFootToTarget(struct Sprite *); +static void AnimJumpKick(struct Sprite *); +static void AnimBasicFistOrFoot(struct Sprite *); +static void AnimFistOrFootRandomPos(struct Sprite *); +static void AnimFistOrFootRandomPos_Step(struct Sprite *); +static void AnimCrossChopHand(struct Sprite *); +static void AnimCrossChopHand_Step(struct Sprite *); +static void AnimSlidingKick(struct Sprite *); +static void AnimSlidingKick_Step(struct Sprite *); +static void AnimSpinningKickOrPunch(struct Sprite *); +static void AnimStompFoot(struct Sprite *); +static void AnimStompFoot_Step(struct Sprite *); +static void AnimStompFoot_End(struct Sprite *); +static void AnimDizzyPunchDuck(struct Sprite *); +static void AnimBrickBreakWall(struct Sprite *); +static void AnimBrickBreakWall_Step(struct Sprite *); +static void AnimBrickBreakWallShard(struct Sprite *); +static void AnimBrickBreakWallShard_Step(struct Sprite *); +static void AnimSuperpowerOrb(struct Sprite *); +static void AnimSuperpowerOrb_Step(struct Sprite *); +static void AnimSuperpowerRock(struct Sprite *); +static void AnimSuperpowerRock_Step1(struct Sprite *); +static void AnimSuperpowerRock_Step2(struct Sprite *); +static void AnimSuperpowerFireball(struct Sprite *); +static void AnimArmThrustHit(struct Sprite *); +static void AnimArmThrustHit_Step(struct Sprite *sprite); +static void AnimRevengeScratch(struct Sprite *); +static void AnimFocusPunchFist(struct Sprite *); static void AnimSpinningKickOrPunchFinish(struct Sprite *); -static void AnimStompFootStep(struct Sprite *); -static void AnimStompFootEnd(struct Sprite *); -static void sub_810D47C(struct Sprite *); -static void sub_810D5DC(struct Sprite *); -static void sub_810D6A8(struct Sprite *); -static void sub_810D770(struct Sprite *); -static void sub_810D830(struct Sprite *); extern struct SpriteTemplate gBasicHitSplatSpriteTemplate; +// Unused const struct SpriteTemplate gUnknown_08595E14 = { .tileTag = ANIM_TAG_HUMANOID_FOOT, @@ -49,73 +51,73 @@ const struct SpriteTemplate gUnknown_08595E14 = .callback = unc_080B08A0, }; -const union AnimCmd gUnknown_08595E2C[] = +static const union AnimCmd sAnim_HandOrFoot[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_08595E34[] = +static const union AnimCmd sAnim_SlidingKick_0[] = { ANIMCMD_FRAME(16, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_08595E3C[] = +static const union AnimCmd sAnim_SlidingKick_1[] = { ANIMCMD_FRAME(32, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_08595E44[] = +static const union AnimCmd sAnim_CrossChopHand_0[] = { ANIMCMD_FRAME(48, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_08595E4C[] = +static const union AnimCmd sAnim_CrossChopHand_1[] = { ANIMCMD_FRAME(48, 1, .hFlip = TRUE), ANIMCMD_END, }; -const union AnimCmd *const gUnknown_08595E54[] = +static const union AnimCmd *const sAnims_HandOrFoot[] = { - gUnknown_08595E2C, + sAnim_HandOrFoot, }; -const union AnimCmd *const gUnknown_08595E58[] = +static const union AnimCmd *const sAnims_SlidingKick[] = { - gUnknown_08595E34, - gUnknown_08595E3C, + sAnim_SlidingKick_0, + sAnim_SlidingKick_1, }; -const union AnimCmd *const gUnknown_08595E60[] = +static const union AnimCmd *const sAnims_CrossChopHand[] = { - gUnknown_08595E44, - gUnknown_08595E4C, + sAnim_CrossChopHand_0, + sAnim_CrossChopHand_1, }; -const struct SpriteTemplate gUnknown_08595E68 = +const struct SpriteTemplate gKarateChopSpriteTemplate = { .tileTag = ANIM_TAG_HANDS_AND_FEET, .paletteTag = ANIM_TAG_HANDS_AND_FEET, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_08595E54, + .anims = sAnims_HandOrFoot, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_810CE68, + .callback = AnimSlideHandOrFootToTarget, }; -const struct SpriteTemplate gUnknown_08595E80 = +const struct SpriteTemplate gJumpKickSpriteTemplate = { .tileTag = ANIM_TAG_HANDS_AND_FEET, .paletteTag = ANIM_TAG_HANDS_AND_FEET, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_08595E54, + .anims = sAnims_HandOrFoot, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_810CEB4, + .callback = AnimJumpKick, }; const struct SpriteTemplate gFistFootSpriteTemplate = @@ -123,78 +125,79 @@ const struct SpriteTemplate gFistFootSpriteTemplate = .tileTag = ANIM_TAG_HANDS_AND_FEET, .paletteTag = ANIM_TAG_HANDS_AND_FEET, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_08595E54, + .anims = sAnims_HandOrFoot, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimBasicFistOrFoot, }; -const struct SpriteTemplate gUnknown_08595EB0 = +const struct SpriteTemplate gFistFootRandomPosSpriteTemplate = { .tileTag = ANIM_TAG_HANDS_AND_FEET, .paletteTag = ANIM_TAG_HANDS_AND_FEET, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_08595E54, + .anims = sAnims_HandOrFoot, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_810CF30, + .callback = AnimFistOrFootRandomPos, }; -const struct SpriteTemplate gUnknown_08595EC8 = +const struct SpriteTemplate gCrossChopHandSpriteTemplate = { .tileTag = ANIM_TAG_HANDS_AND_FEET, .paletteTag = ANIM_TAG_HANDS_AND_FEET, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_08595E60, + .anims = sAnims_CrossChopHand, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_810D10C, + .callback = AnimCrossChopHand, }; -const struct SpriteTemplate gUnknown_08595EE0 = +const struct SpriteTemplate gSlidingKickSpriteTemplate = { .tileTag = ANIM_TAG_HANDS_AND_FEET, .paletteTag = ANIM_TAG_HANDS_AND_FEET, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_08595E58, + .anims = sAnims_SlidingKick, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_810D1B4, + .callback = AnimSlidingKick, }; -const union AffineAnimCmd gUnknown_08595EF8[] = +static const union AffineAnimCmd sAffineAnim_SpinningHandOrFoot[] = { AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0), AFFINEANIMCMD_FRAME(0xFFF8, 0xFFF8, 20, 1), AFFINEANIMCMD_JUMP(1), }; -const union AffineAnimCmd *const gUnknown_08595F10[] = +static const union AffineAnimCmd *const sAffineAnims_SpinningHandOrFoot[] = { - gUnknown_08595EF8, + sAffineAnim_SpinningHandOrFoot, }; -const struct SpriteTemplate gUnknown_08595F14 = +// Blaze Kick / Meteor Mash +const struct SpriteTemplate gSpinningHandOrFootSpriteTemplate = { .tileTag = ANIM_TAG_HANDS_AND_FEET, .paletteTag = ANIM_TAG_HANDS_AND_FEET, .oam = &gOamData_AffineDouble_ObjNormal_32x32, - .anims = gUnknown_08595E54, + .anims = sAnims_HandOrFoot, .images = NULL, - .affineAnims = gUnknown_08595F10, + .affineAnims = sAffineAnims_SpinningHandOrFoot, .callback = AnimSpinningKickOrPunch, }; -const union AffineAnimCmd gUnknown_08595F2C[] = +static const union AffineAnimCmd sAffineAnim_MegaPunchKick[] = { AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0), AFFINEANIMCMD_FRAME(0xFFFC, 0xFFFC, 20, 1), AFFINEANIMCMD_JUMP(1), }; -const union AffineAnimCmd *const gUnknown_08595F44[] = +static const union AffineAnimCmd *const sAffineAnims_MegaPunchKick[] = { - gUnknown_08595F2C, + sAffineAnim_MegaPunchKick, }; const struct SpriteTemplate gMegaPunchKickSpriteTemplate = @@ -202,24 +205,24 @@ const struct SpriteTemplate gMegaPunchKickSpriteTemplate = .tileTag = ANIM_TAG_HANDS_AND_FEET, .paletteTag = ANIM_TAG_HANDS_AND_FEET, .oam = &gOamData_AffineDouble_ObjNormal_32x32, - .anims = gUnknown_08595E54, + .anims = sAnims_HandOrFoot, .images = NULL, - .affineAnims = gUnknown_08595F44, + .affineAnims = sAffineAnims_MegaPunchKick, .callback = AnimSpinningKickOrPunch, }; -const struct SpriteTemplate gUnknown_08595F60 = +const struct SpriteTemplate gStompFootSpriteTemplate = { .tileTag = ANIM_TAG_HANDS_AND_FEET, .paletteTag = ANIM_TAG_HANDS_AND_FEET, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_08595E58, + .anims = sAnims_SlidingKick, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimStompFoot, }; -const struct SpriteTemplate gUnknown_08595F78 = +const struct SpriteTemplate gDizzyPunchDuckSpriteTemplate = { .tileTag = ANIM_TAG_DUCK, .paletteTag = ANIM_TAG_DUCK, @@ -227,10 +230,10 @@ const struct SpriteTemplate gUnknown_08595F78 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_810D37C, + .callback = AnimDizzyPunchDuck, }; -const struct SpriteTemplate gUnknown_08595F90 = +const struct SpriteTemplate gBrickBreakWallSpriteTemplate = { .tileTag = ANIM_TAG_BLUE_LIGHT_WALL, .paletteTag = ANIM_TAG_BLUE_LIGHT_WALL, @@ -238,10 +241,10 @@ const struct SpriteTemplate gUnknown_08595F90 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_810D40C, + .callback = AnimBrickBreakWall, }; -const struct SpriteTemplate gUnknown_08595FA8 = +const struct SpriteTemplate gBrickBreakWallShardSpriteTemplate = { .tileTag = ANIM_TAG_TORN_METAL, .paletteTag = ANIM_TAG_TORN_METAL, @@ -249,10 +252,10 @@ const struct SpriteTemplate gUnknown_08595FA8 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_810D4F4, + .callback = AnimBrickBreakWallShard, }; -const union AffineAnimCmd gUnknown_08595FC0[] = +static const union AffineAnimCmd sAffineAnim_SuperpowerOrb[] = { AFFINEANIMCMD_FRAME(0x20, 0x20, 0, 0), AFFINEANIMCMD_FRAME(0x4, 0x4, 0, 64), @@ -261,23 +264,23 @@ const union AffineAnimCmd gUnknown_08595FC0[] = AFFINEANIMCMD_JUMP(2), }; -const union AffineAnimCmd *const gUnknown_08595FE8[] = +static const union AffineAnimCmd *const sAffineAnims_SuperpowerOrb[] = { - gUnknown_08595FC0, + sAffineAnim_SuperpowerOrb, }; -const struct SpriteTemplate gUnknown_08595FEC = +const struct SpriteTemplate gSuperpowerOrbSpriteTemplate = { .tileTag = ANIM_TAG_CIRCLE_OF_LIGHT, .paletteTag = ANIM_TAG_CIRCLE_OF_LIGHT, .oam = &gOamData_AffineDouble_ObjBlend_64x64, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_08595FE8, - .callback = sub_810D608, + .affineAnims = sAffineAnims_SuperpowerOrb, + .callback = AnimSuperpowerOrb, }; -const struct SpriteTemplate gUnknown_08596004 = +const struct SpriteTemplate gSuperpowerRockSpriteTemplate = { .tileTag = ANIM_TAG_FLAT_ROCK, .paletteTag = ANIM_TAG_FLAT_ROCK, @@ -285,10 +288,10 @@ const struct SpriteTemplate gUnknown_08596004 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_810D714, + .callback = AnimSuperpowerRock, }; -const struct SpriteTemplate gUnknown_0859601C = +const struct SpriteTemplate gSuperpowerFireballSpriteTemplate = { .tileTag = ANIM_TAG_METEOR, .paletteTag = ANIM_TAG_METEOR, @@ -296,21 +299,21 @@ const struct SpriteTemplate gUnknown_0859601C = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_810D874, + .callback = AnimSuperpowerFireball, }; -const struct SpriteTemplate gUnknown_08596034 = +const struct SpriteTemplate gArmThrustHandSpriteTemplate = { .tileTag = ANIM_TAG_HANDS_AND_FEET, .paletteTag = ANIM_TAG_HANDS_AND_FEET, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_08595E54, + .anims = sAnims_HandOrFoot, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_810D984, + .callback = AnimArmThrustHit, }; -const union AnimCmd gUnknown_0859604C[] = +static const union AnimCmd sAnim_RevengeSmallScratch_0[] = { ANIMCMD_FRAME(0, 4), ANIMCMD_FRAME(16, 4), @@ -318,7 +321,7 @@ const union AnimCmd gUnknown_0859604C[] = ANIMCMD_END, }; -const union AnimCmd gUnknown_0859605C[] = +static const union AnimCmd sAnim_RevengeSmallScratch_1[] = { ANIMCMD_FRAME(0, 4, .vFlip = TRUE), ANIMCMD_FRAME(16, 4, .vFlip = TRUE), @@ -326,7 +329,7 @@ const union AnimCmd gUnknown_0859605C[] = ANIMCMD_END, }; -const union AnimCmd gUnknown_0859606C[] = +static const union AnimCmd sAnim_RevengeSmallScratch_2[] = { ANIMCMD_FRAME(0, 4, .hFlip = TRUE), ANIMCMD_FRAME(16, 4, .hFlip = TRUE), @@ -334,87 +337,87 @@ const union AnimCmd gUnknown_0859606C[] = ANIMCMD_END, }; -const union AnimCmd *const gUnknown_0859607C[] = +static const union AnimCmd *const sAnims_RevengeSmallScratch[] = { - gUnknown_0859604C, - gUnknown_0859605C, - gUnknown_0859606C, + sAnim_RevengeSmallScratch_0, + sAnim_RevengeSmallScratch_1, + sAnim_RevengeSmallScratch_2, }; -const struct SpriteTemplate gUnknown_08596088 = +const struct SpriteTemplate gRevengeSmallScratchSpriteTemplate = { .tileTag = ANIM_TAG_PURPLE_SCRATCH, .paletteTag = ANIM_TAG_PURPLE_SCRATCH, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_0859607C, + .anims = sAnims_RevengeSmallScratch, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_810DA10, + .callback = AnimRevengeScratch, }; -const union AnimCmd gUnknown_085960A0[] = +static const union AnimCmd sAnim_RevengeBigScratch_0[] = { ANIMCMD_FRAME(0, 6), ANIMCMD_FRAME(64, 6), ANIMCMD_END, }; -const union AnimCmd gUnknown_085960AC[] = +static const union AnimCmd sAnim_RevengeBigScratch_1[] = { ANIMCMD_FRAME(0, 6, .vFlip = TRUE, .hFlip = TRUE), ANIMCMD_FRAME(64, 6, .vFlip = TRUE, .hFlip = TRUE), ANIMCMD_END, }; -const union AnimCmd gUnknown_085960B8[] = +static const union AnimCmd sAnim_RevengeBigScratch_2[] = { ANIMCMD_FRAME(0, 6, .hFlip = TRUE), ANIMCMD_FRAME(64, 6, .hFlip = TRUE), ANIMCMD_END, }; -const union AnimCmd *const gUnknown_085960C4[] = +static const union AnimCmd *const sAnims_RevengeBigScratch[] = { - gUnknown_085960A0, - gUnknown_085960AC, - gUnknown_085960B8, + sAnim_RevengeBigScratch_0, + sAnim_RevengeBigScratch_1, + sAnim_RevengeBigScratch_2, }; -const struct SpriteTemplate gUnknown_085960D0 = +const struct SpriteTemplate gRevengeBigScratchSpriteTemplate = { .tileTag = ANIM_TAG_PURPLE_SWIPE, .paletteTag = ANIM_TAG_PURPLE_SWIPE, .oam = &gOamData_AffineOff_ObjNormal_64x64, - .anims = gUnknown_085960C4, + .anims = sAnims_RevengeBigScratch, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_810DA10, + .callback = AnimRevengeScratch, }; -const union AffineAnimCmd gUnknown_085960E8[] = +static const union AffineAnimCmd sAffineAnim_FocusPunchFist[] = { AFFINEANIMCMD_FRAME(0x200, 0x200, 0, 0), AFFINEANIMCMD_FRAME(0xFFE0, 0xFFE0, 0, 8), AFFINEANIMCMD_END, }; -const union AffineAnimCmd *const gUnknown_08596100[] = +static const union AffineAnimCmd *const sAffineAnims_FocusPunchFist[] = { - gUnknown_085960E8, + sAffineAnim_FocusPunchFist, }; -const struct SpriteTemplate gUnknown_08596104 = +const struct SpriteTemplate gFocusPunchFistSpriteTemplate = { .tileTag = ANIM_TAG_HANDS_AND_FEET, .paletteTag = ANIM_TAG_HANDS_AND_FEET, .oam = &gOamData_AffineDouble_ObjNormal_32x32, - .anims = gUnknown_08595E54, + .anims = sAnims_HandOrFoot, .images = NULL, - .affineAnims = gUnknown_08596100, - .callback = sub_810DA7C, + .affineAnims = sAffineAnims_FocusPunchFist, + .callback = AnimFocusPunchFist, }; -void unc_080B08A0(struct Sprite *sprite) +static void unc_080B08A0(struct Sprite *sprite) { SetAnimSpriteInitialXOffset(sprite, gBattleAnimArgs[0]); sprite->pos1.y += gBattleAnimArgs[1]; @@ -423,7 +426,7 @@ void unc_080B08A0(struct Sprite *sprite) StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); } -void sub_810CE68(struct Sprite *sprite) +static void AnimSlideHandOrFootToTarget(struct Sprite *sprite) { if (gBattleAnimArgs[7] == 1 && GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) { @@ -433,10 +436,10 @@ void sub_810CE68(struct Sprite *sprite) StartSpriteAnim(sprite, gBattleAnimArgs[6]); gBattleAnimArgs[6] = 0; - AnimSnoreZ(sprite); + AnimTravelDiagonally(sprite); } -void sub_810CEB4(struct Sprite *sprite) +static void AnimJumpKick(struct Sprite *sprite) { if (IsContest()) { @@ -444,7 +447,7 @@ void sub_810CEB4(struct Sprite *sprite) gBattleAnimArgs[3] = -gBattleAnimArgs[3]; } - sub_810CE68(sprite); + AnimSlideHandOrFootToTarget(sprite); } // Displays a basic fist or foot sprite for a given duration. @@ -454,7 +457,7 @@ void sub_810CEB4(struct Sprite *sprite) // arg 2: duration // arg 3: ? (todo: related to initial pixel offsets) // arg 4: anim num -void AnimBasicFistOrFoot(struct Sprite *sprite) +static void AnimBasicFistOrFoot(struct Sprite *sprite) { StartSpriteAnim(sprite, gBattleAnimArgs[4]); @@ -468,7 +471,7 @@ void AnimBasicFistOrFoot(struct Sprite *sprite) StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); } -void sub_810CF30(struct Sprite *sprite) +static void AnimFistOrFootRandomPos(struct Sprite *sprite) { u8 battler; s16 xMod, yMod; @@ -511,10 +514,10 @@ void sub_810CF30(struct Sprite *sprite) gSprites[sprite->data[7]].callback = SpriteCallbackDummy; } - sprite->callback = sub_810D0B8; + sprite->callback = AnimFistOrFootRandomPos_Step; } -static void sub_810D0B8(struct Sprite *sprite) +static void AnimFistOrFootRandomPos_Step(struct Sprite *sprite) { if (sprite->data[0] == 0) { @@ -532,7 +535,7 @@ static void sub_810D0B8(struct Sprite *sprite) } } -void sub_810D10C(struct Sprite *sprite) +static void AnimCrossChopHand(struct Sprite *sprite) { InitSpritePosToAnimTarget(sprite, TRUE); sprite->data[0] = 30; @@ -549,10 +552,10 @@ void sub_810D10C(struct Sprite *sprite) sprite->data[4] = sprite->pos1.y - 20; sprite->callback = StartAnimLinearTranslation; - StoreSpriteCallbackInData6(sprite, sub_810D164); + StoreSpriteCallbackInData6(sprite, AnimCrossChopHand_Step); } -static void sub_810D164(struct Sprite *sprite) +static void AnimCrossChopHand_Step(struct Sprite *sprite) { if (++sprite->data[5] == 11) { @@ -569,7 +572,8 @@ static void sub_810D164(struct Sprite *sprite) } } -void sub_810D1B4(struct Sprite *sprite) +// Rolling Kick / Low Kick +static void AnimSlidingKick(struct Sprite *sprite) { if (BATTLE_PARTNER(gBattleAnimAttacker) == gBattleAnimTarget && GetBattlerPosition(gBattleAnimTarget) < B_POSITION_PLAYER_RIGHT) gBattleAnimArgs[0] *= -1; @@ -591,10 +595,10 @@ void sub_810D1B4(struct Sprite *sprite) sprite->data[6] = gBattleAnimArgs[4]; sprite->data[7] = 0; - sprite->callback = sub_810D240; + sprite->callback = AnimSlidingKick_Step; } -static void sub_810D240(struct Sprite *sprite) +static void AnimSlidingKick_Step(struct Sprite *sprite) { if (!AnimTranslateLinear(sprite)) { @@ -613,7 +617,7 @@ static void sub_810D240(struct Sprite *sprite) // arg 1: initial y pixel offset // arg 2: anim num // arg 3: spin duration -void AnimSpinningKickOrPunch(struct Sprite *sprite) +static void AnimSpinningKickOrPunch(struct Sprite *sprite) { InitSpritePosToAnimTarget(sprite, TRUE); StartSpriteAnim(sprite, gBattleAnimArgs[2]); @@ -637,15 +641,15 @@ static void AnimSpinningKickOrPunchFinish(struct Sprite *sprite) // arg 0: initial x pixel offset // arg 1: initial y pixel offset // arg 2: initial wait duration -void AnimStompFoot(struct Sprite *sprite) +static void AnimStompFoot(struct Sprite *sprite) { InitSpritePosToAnimTarget(sprite, TRUE); sprite->data[0] = gBattleAnimArgs[2]; - sprite->callback = AnimStompFootStep; + sprite->callback = AnimStompFoot_Step; } -static void AnimStompFootStep(struct Sprite *sprite) +static void AnimStompFoot_Step(struct Sprite *sprite) { if (--sprite->data[0] == -1) { @@ -654,11 +658,11 @@ static void AnimStompFootStep(struct Sprite *sprite) sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3); sprite->callback = StartAnimLinearTranslation; - StoreSpriteCallbackInData6(sprite, AnimStompFootEnd); + StoreSpriteCallbackInData6(sprite, AnimStompFoot_End); } } -static void AnimStompFootEnd(struct Sprite *sprite) +static void AnimStompFoot_End(struct Sprite *sprite) { sprite->data[0] = 15; @@ -666,7 +670,7 @@ static void AnimStompFootEnd(struct Sprite *sprite) StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); } -void sub_810D37C(struct Sprite *sprite) +static void AnimDizzyPunchDuck(struct Sprite *sprite) { if (sprite->data[0] == 0) { @@ -690,9 +694,10 @@ void sub_810D37C(struct Sprite *sprite) } } -void sub_810D40C(struct Sprite *sprite) +// The wall that appears when Brick Break is going to shatter the target's defensive wall +static void AnimBrickBreakWall(struct Sprite *sprite) { - if (gBattleAnimArgs[0] == 0) + if (gBattleAnimArgs[0] == ANIM_ATTACKER) { sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 0); sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1); @@ -710,10 +715,10 @@ void sub_810D40C(struct Sprite *sprite) sprite->data[1] = gBattleAnimArgs[3]; sprite->data[2] = gBattleAnimArgs[4]; sprite->data[3] = 0; - sprite->callback = sub_810D47C; + sprite->callback = AnimBrickBreakWall_Step; } -static void sub_810D47C(struct Sprite *sprite) +static void AnimBrickBreakWall_Step(struct Sprite *sprite) { switch (sprite->data[0]) { @@ -743,9 +748,10 @@ static void sub_810D47C(struct Sprite *sprite) } } -void sub_810D4F4(struct Sprite *sprite) +// Piece of shattered defensive wall flies off. Used by Brick Break when the target has a defensive wall +static void AnimBrickBreakWallShard(struct Sprite *sprite) { - if (gBattleAnimArgs[0] == 0) + if (gBattleAnimArgs[0] == ANIM_ATTACKER) { sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 0) + gBattleAnimArgs[2]; sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1) + gBattleAnimArgs[3]; @@ -782,10 +788,10 @@ void sub_810D4F4(struct Sprite *sprite) return; } - sprite->callback = sub_810D5DC; + sprite->callback = AnimBrickBreakWallShard_Step; } -static void sub_810D5DC(struct Sprite *sprite) +static void AnimBrickBreakWallShard_Step(struct Sprite *sprite) { sprite->pos1.x += sprite->data[6]; sprite->pos1.y += sprite->data[7]; @@ -794,9 +800,9 @@ static void sub_810D5DC(struct Sprite *sprite) DestroyAnimSprite(sprite); } -void sub_810D608(struct Sprite *sprite) +static void AnimSuperpowerOrb(struct Sprite *sprite) { - if (gBattleAnimArgs[0] == 0) + if (gBattleAnimArgs[0] == ANIM_ATTACKER) { sprite->pos1.x = GetBattlerSpriteCoord(gBattlerAttacker, 2); sprite->pos1.y = GetBattlerSpriteCoord(gBattlerAttacker, 3); @@ -812,10 +818,10 @@ void sub_810D608(struct Sprite *sprite) sprite->data[0] = 0; sprite->data[1] = 12; sprite->data[2] = 8; - sprite->callback = sub_810D6A8; + sprite->callback = AnimSuperpowerOrb_Step; } -static void sub_810D6A8(struct Sprite *sprite) +static void AnimSuperpowerOrb_Step(struct Sprite *sprite) { if (++sprite->data[0] == 180) { @@ -833,7 +839,8 @@ static void sub_810D6A8(struct Sprite *sprite) } } -void sub_810D714(struct Sprite *sprite) +// Floating rock that flies off to hit the target. Used by Superpower +static void AnimSuperpowerRock(struct Sprite *sprite) { sprite->pos1.x = gBattleAnimArgs[0]; sprite->pos1.y = 120; @@ -844,10 +851,10 @@ void sub_810D714(struct Sprite *sprite) sprite->data[6] = gBattleAnimArgs[1]; sprite->oam.tileNum += gBattleAnimArgs[2] * 4; - sprite->callback = sub_810D770; + sprite->callback = AnimSuperpowerRock_Step1; } -static void sub_810D770(struct Sprite *sprite) +static void AnimSuperpowerRock_Step1(struct Sprite *sprite) { void *var0; @@ -876,11 +883,11 @@ static void sub_810D770(struct Sprite *sprite) sprite->data[2] = sprite->pos1.x << 4; sprite->data[3] = sprite->pos1.y << 4; - sprite->callback = sub_810D830; + sprite->callback = AnimSuperpowerRock_Step2; } } -static void sub_810D830(struct Sprite *sprite) +static void AnimSuperpowerRock_Step2(struct Sprite *sprite) { u16 edgeX; @@ -894,11 +901,11 @@ static void sub_810D830(struct Sprite *sprite) DestroyAnimSprite(sprite); } -void sub_810D874(struct Sprite *sprite) +static void AnimSuperpowerFireball(struct Sprite *sprite) { u8 battler; - if (gBattleAnimArgs[0] == 0) + if (gBattleAnimArgs[0] == ANIM_ATTACKER) { sprite->pos1.x = GetBattlerSpriteCoord(gBattlerAttacker, 2); sprite->pos1.y = GetBattlerSpriteCoord(gBattlerAttacker, 3); @@ -927,7 +934,7 @@ void sub_810D874(struct Sprite *sprite) sprite->callback = sub_80A6F98; } -static void sub_810D960(struct Sprite *sprite) +static void AnimArmThrustHit_Step(struct Sprite *sprite) { if (sprite->data[0] == sprite->data[4]) DestroyAnimSprite(sprite); @@ -935,7 +942,7 @@ static void sub_810D960(struct Sprite *sprite) sprite->data[0]++; } -void sub_810D984(struct Sprite *sprite) +static void AnimArmThrustHit(struct Sprite *sprite) { u8 turn; @@ -959,12 +966,12 @@ void sub_810D984(struct Sprite *sprite) StartSpriteAnim(sprite, sprite->data[1]); sprite->pos2.x = sprite->data[2]; sprite->pos2.y = sprite->data[3]; - sprite->callback = sub_810D960; + sprite->callback = AnimArmThrustHit_Step; } -void sub_810DA10(struct Sprite *sprite) +static void AnimRevengeScratch(struct Sprite *sprite) { - if (gBattleAnimArgs[2] == 0) + if (gBattleAnimArgs[2] == ANIM_ATTACKER) InitSpritePosToAnimAttacker(sprite, 0); else InitSpritePosToAnimTarget(sprite, FALSE); @@ -982,7 +989,8 @@ void sub_810DA10(struct Sprite *sprite) StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); } -void sub_810DA7C(struct Sprite *sprite) +// Fist shrinks toward target and shakes +static void AnimFocusPunchFist(struct Sprite *sprite) { if (sprite->affineAnimEnded) { @@ -993,7 +1001,7 @@ void sub_810DA7C(struct Sprite *sprite) } } -void sub_810DABC(u8 taskId) +void AnimTask_MoveSkyUppercutBg(u8 taskId) { struct Task *task = &gTasks[taskId]; diff --git a/src/fire.c b/src/battle_anim_fire.c index 2a12c26cc..f02ecae19 100644 --- a/src/fire.c +++ b/src/battle_anim_fire.c @@ -7,39 +7,39 @@ #include "task.h" #include "trig.h" -static void sub_8108EC8(struct Sprite *); -static void sub_8108F08(struct Sprite *); -static void sub_8108F4C(struct Sprite *); -static void sub_8108FBC(struct Sprite *); +static void AnimFireSpiralInward(struct Sprite *); +static void AnimFireSpread(struct Sprite *); +static void AnimFirePlume(struct Sprite *); +static void AnimLargeFlame(struct Sprite *); static void sub_8109028(struct Sprite *); static void sub_8109064(struct Sprite *); static void sub_81090D8(struct Sprite *); -static void sub_810916C(struct Sprite *); +static void AnimSunlight(struct Sprite *); static void AnimEmberFlare(struct Sprite *); -static void sub_8109200(struct Sprite *); +static void AnimBurnFlame(struct Sprite *); static void AnimFireRing(struct Sprite *); -static void AnimFireRingStep1(struct Sprite *); -static void AnimFireRingStep2(struct Sprite *); -static void AnimFireRingStep3(struct Sprite *); +static void AnimFireRing_Step1(struct Sprite *); +static void AnimFireRing_Step2(struct Sprite *); +static void AnimFireRing_Step3(struct Sprite *); static void UpdateFireRingCircleOffset(struct Sprite *); static void AnimFireCross(struct Sprite *); -static void sub_81093A4(struct Sprite *); -static void sub_81093E4(struct Sprite *); -static void sub_810940C(struct Sprite *); -static void sub_81094D0(u8 taskId); -static void sub_81097B4(u8 spriteId, u8 taskId, u8 a3); -static void sub_81098EC(struct Sprite *); -static u16 sub_8109930(u8 spriteId); -static void sub_8109984(struct Sprite *sprite, s16 x, s16 y); -static void sub_81099A0(struct Sprite *); -static void sub_8109A10(struct Sprite *); -static void sub_8109A64(struct Sprite *); -static void sub_8109AFC(struct Sprite *); -static void sub_8109C4C(struct Sprite *); -static void sub_8109CB0(struct Sprite *); -static void sub_8109E2C(u8 taskId); - -const union AnimCmd gUnknown_08595340[] = +static void AnimFireSpiralOutward(struct Sprite *); +static void AnimFireSpiralOutward_Step1(struct Sprite *); +static void AnimFireSpiralOutward_Step2(struct Sprite *); +static void AnimTask_EruptionLaunchRocks_Step(u8 taskId); +static void CreateEruptionLaunchRocks(u8 spriteId, u8 taskId, u8 a3); +static void AnimEruptionLaunchRock(struct Sprite *); +static u16 GetEruptionLaunchRockInitialYPos(u8 spriteId); +static void InitEruptionLaunchRockCoordData(struct Sprite *sprite, s16 x, s16 y); +static void UpdateEruptionLaunchRockPos(struct Sprite *); +static void AnimEruptionFallingRock(struct Sprite *); +static void AnimEruptionFallingRock_Step(struct Sprite *); +static void AnimWillOWispOrb(struct Sprite *); +static void AnimWillOWispOrb_Step(struct Sprite *); +static void AnimWillOWispFire(struct Sprite *); +static void AnimTask_MoveHeatWaveTargets_Step(u8 taskId); + +static const union AnimCmd sAnim_FireSpiralSpread_0[] = { ANIMCMD_FRAME(16, 4), ANIMCMD_FRAME(32, 4), @@ -47,7 +47,7 @@ const union AnimCmd gUnknown_08595340[] = ANIMCMD_JUMP(0), }; -const union AnimCmd gUnknown_08595350[] = +static const union AnimCmd sAnim_FireSpiralSpread_1[] = { ANIMCMD_FRAME(16, 4, .vFlip = TRUE, .hFlip = TRUE), ANIMCMD_FRAME(32, 4, .vFlip = TRUE, .hFlip = TRUE), @@ -55,35 +55,35 @@ const union AnimCmd gUnknown_08595350[] = ANIMCMD_JUMP(0), }; -const union AnimCmd *const gUnknown_08595360[] = +static const union AnimCmd *const sAnims_FireSpiralSpread[] = { - gUnknown_08595340, - gUnknown_08595350, + sAnim_FireSpiralSpread_0, + sAnim_FireSpiralSpread_1, }; -const struct SpriteTemplate gUnknown_08595368 = +const struct SpriteTemplate gFireSpiralInwardSpriteTemplate = { .tileTag = ANIM_TAG_SMALL_EMBER, .paletteTag = ANIM_TAG_SMALL_EMBER, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_08595360, + .anims = sAnims_FireSpiralSpread, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8108EC8, + .callback = AnimFireSpiralInward, }; -const struct SpriteTemplate gUnknown_08595380 = +const struct SpriteTemplate gFireSpreadSpriteTemplate = { .tileTag = ANIM_TAG_SMALL_EMBER, .paletteTag = ANIM_TAG_SMALL_EMBER, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_08595360, + .anims = sAnims_FireSpiralSpread, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8108F08, + .callback = AnimFireSpread, }; -const union AnimCmd gUnknown_08595398[] = +static const union AnimCmd sAnim_LargeFlame[] = { ANIMCMD_FRAME(0, 3), ANIMCMD_FRAME(16, 3), @@ -96,12 +96,12 @@ const union AnimCmd gUnknown_08595398[] = ANIMCMD_JUMP(0), }; -const union AnimCmd *const gUnknown_085953BC[] = +static const union AnimCmd *const sAnims_LargeFlame[] = { - gUnknown_08595398, + sAnim_LargeFlame, }; -const union AnimCmd gUnknown_085953C0[] = +static const union AnimCmd sAnim_FirePlume[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_FRAME(16, 5), @@ -111,68 +111,69 @@ const union AnimCmd gUnknown_085953C0[] = ANIMCMD_JUMP(0), }; -const union AnimCmd *const gUnknown_085953D8[] = +static const union AnimCmd *const sAnims_FirePlume[] = { - gUnknown_085953C0, + sAnim_FirePlume, }; -const union AffineAnimCmd gUnknown_085953DC[] = +static const union AffineAnimCmd sAffineAnim_LargeFlame[] = { AFFINEANIMCMD_FRAME(0x32, 0x100, 0, 0), AFFINEANIMCMD_FRAME(0x20, 0x0, 0, 7), AFFINEANIMCMD_END, }; -const union AffineAnimCmd *const gUnknown_085953F4[] = +static const union AffineAnimCmd *const sAffineAnims_LargeFlame[] = { - gUnknown_085953DC, + sAffineAnim_LargeFlame, }; -const struct SpriteTemplate gUnknown_085953F8 = +const struct SpriteTemplate gLargeFlameSpriteTemplate = { .tileTag = ANIM_TAG_FIRE, .paletteTag = ANIM_TAG_FIRE, .oam = &gOamData_AffineNormal_ObjNormal_32x32, - .anims = gUnknown_085953BC, + .anims = sAnims_LargeFlame, .images = NULL, - .affineAnims = gUnknown_085953F4, - .callback = sub_8108FBC, + .affineAnims = sAffineAnims_LargeFlame, + .callback = AnimLargeFlame, }; -const struct SpriteTemplate gUnknown_08595410 = +const struct SpriteTemplate gLargeFlameScatterSpriteTemplate = { .tileTag = ANIM_TAG_FIRE, .paletteTag = ANIM_TAG_FIRE, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_085953BC, + .anims = sAnims_LargeFlame, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8108FBC, + .callback = AnimLargeFlame, }; -const struct SpriteTemplate gUnknown_08595428 = +const struct SpriteTemplate gFirePlumeSpriteTemplate = { .tileTag = ANIM_TAG_FIRE_PLUME, .paletteTag = ANIM_TAG_FIRE_PLUME, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_085953D8, + .anims = sAnims_FirePlume, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8108F4C, + .callback = AnimFirePlume, }; +// Unused const struct SpriteTemplate gUnknown_08595440 = { .tileTag = ANIM_TAG_SMALL_EMBER, .paletteTag = ANIM_TAG_SMALL_EMBER, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_085953D8, + .anims = sAnims_FirePlume, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8108F4C, + .callback = AnimFirePlume, }; -const union AnimCmd gUnknown_08595458[] = +static const union AnimCmd gUnknown_08595458[] = { ANIMCMD_FRAME(16, 6), ANIMCMD_FRAME(32, 6), @@ -180,11 +181,12 @@ const union AnimCmd gUnknown_08595458[] = ANIMCMD_JUMP(0), }; -const union AnimCmd *const gUnknown_08595468[] = +static const union AnimCmd *const gUnknown_08595468[] = { gUnknown_08595458, }; +// Unused const struct SpriteTemplate gUnknown_0859546C = { .tileTag = ANIM_TAG_SMALL_EMBER, @@ -196,30 +198,30 @@ const struct SpriteTemplate gUnknown_0859546C = .callback = sub_8109064, }; -const union AffineAnimCmd gUnknown_08595484[] = +static const union AffineAnimCmd sAffineAnim_SunlightRay[] = { AFFINEANIMCMD_FRAME(0x50, 0x50, 0, 0), AFFINEANIMCMD_FRAME(0x2, 0x2, 10, 1), AFFINEANIMCMD_JUMP(1), }; -const union AffineAnimCmd *const gUnknown_0859549C[] = +static const union AffineAnimCmd *const sAffineAnims_SunlightRay[] = { - gUnknown_08595484, + sAffineAnim_SunlightRay, }; -const struct SpriteTemplate gUnknown_085954A0 = +const struct SpriteTemplate gSunlightRaySpriteTemplate = { .tileTag = ANIM_TAG_SUNLIGHT, .paletteTag = ANIM_TAG_SUNLIGHT, .oam = &gOamData_AffineNormal_ObjBlend_32x32, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_0859549C, - .callback = sub_810916C, + .affineAnims = sAffineAnims_SunlightRay, + .callback = AnimSunlight, }; -const union AnimCmd gUnknown_085954B8[] = +static const union AnimCmd sAnim_BasicFire[] = { ANIMCMD_FRAME(0, 4), ANIMCMD_FRAME(16, 4), @@ -229,9 +231,9 @@ const union AnimCmd gUnknown_085954B8[] = ANIMCMD_JUMP(0), }; -const union AnimCmd *const gUnknown_085954D0[] = +const union AnimCmd *const gAnims_BasicFire[] = { - gUnknown_085954B8, + sAnim_BasicFire, }; const struct SpriteTemplate gEmberSpriteTemplate = @@ -250,98 +252,99 @@ const struct SpriteTemplate gEmberFlareSpriteTemplate = .tileTag = ANIM_TAG_SMALL_EMBER, .paletteTag = ANIM_TAG_SMALL_EMBER, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_085954D0, + .anims = gAnims_BasicFire, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimEmberFlare, }; -const struct SpriteTemplate gUnknown_08595504 = +const struct SpriteTemplate gBurnFlameSpriteTemplate = { .tileTag = ANIM_TAG_SMALL_EMBER, .paletteTag = ANIM_TAG_SMALL_EMBER, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_085954D0, + .anims = gAnims_BasicFire, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8109200, + .callback = AnimBurnFlame, }; -const struct SpriteTemplate gUnknown_0859551C = +const struct SpriteTemplate gFireBlastRingSpriteTemplate = { .tileTag = ANIM_TAG_SMALL_EMBER, .paletteTag = ANIM_TAG_SMALL_EMBER, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_085954D0, + .anims = gAnims_BasicFire, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimFireRing, }; -const union AnimCmd gUnknown_08595534[] = +static const union AnimCmd sAnim_FireBlastCross[] = { ANIMCMD_FRAME(32, 6), ANIMCMD_FRAME(48, 6), ANIMCMD_JUMP(0), }; -const union AnimCmd *const gUnknown_08595540[] = +static const union AnimCmd *const sAnims_FireBlastCross[] = { - gUnknown_08595534, + sAnim_FireBlastCross, }; -const union AffineAnimCmd gUnknown_08595544[] = +static const union AffineAnimCmd gUnknown_08595544[] = { AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 1), AFFINEANIMCMD_END, }; -const union AffineAnimCmd gUnknown_08595554[] = +static const union AffineAnimCmd gUnknown_08595554[] = { AFFINEANIMCMD_FRAME(0xA0, 0xA0, 0, 0), AFFINEANIMCMD_END, }; -const union AffineAnimCmd *const gUnknown_08595564[] = +// Unused +static const union AffineAnimCmd *const gUnknown_08595564[] = { gUnknown_08595544, gUnknown_08595554, }; -const struct SpriteTemplate gUnknown_0859556C = +const struct SpriteTemplate gFireBlastCrossSpriteTemplate = { .tileTag = ANIM_TAG_SMALL_EMBER, .paletteTag = ANIM_TAG_SMALL_EMBER, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_08595540, + .anims = sAnims_FireBlastCross, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimFireCross, }; -const struct SpriteTemplate gBattleAnimSpriteTemplate_8595584 = +const struct SpriteTemplate gFireSpiralOutwardSpriteTemplate = { .tileTag = ANIM_TAG_SMALL_EMBER, .paletteTag = ANIM_TAG_SMALL_EMBER, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_085954D0, + .anims = gAnims_BasicFire, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_81093A4, + .callback = AnimFireSpiralOutward, }; -const struct SpriteTemplate gUnknown_0859559C = +const struct SpriteTemplate gWeatherBallFireDownSpriteTemplate = { .tileTag = ANIM_TAG_SMALL_EMBER, .paletteTag = ANIM_TAG_SMALL_EMBER, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_085954D0, + .anims = gAnims_BasicFire, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80A8EE4, + .callback = AnimWeatherBallDown, }; -const struct SpriteTemplate gUnknown_085955B4 = +const struct SpriteTemplate gEruptionLaunchRockSpriteTemplate = { .tileTag = ANIM_TAG_WARM_ROCK, .paletteTag = ANIM_TAG_WARM_ROCK, @@ -349,11 +352,10 @@ const struct SpriteTemplate gUnknown_085955B4 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_81098EC, + .callback = AnimEruptionLaunchRock, }; -// gHeatedRockCoords -const s16 gUnknown_085955CC[][2] = +static const s16 sEruptionLaunchRockCoords[][2] = { {-2, -5}, {-1, -1}, @@ -364,7 +366,7 @@ const s16 gUnknown_085955CC[][2] = { 4, -7}, }; -const struct SpriteTemplate gUnknown_085955E8 = +const struct SpriteTemplate gEruptionFallingRockSpriteTemplate = { .tileTag = ANIM_TAG_WARM_ROCK, .paletteTag = ANIM_TAG_WARM_ROCK, @@ -372,10 +374,10 @@ const struct SpriteTemplate gUnknown_085955E8 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8109A10, + .callback = AnimEruptionFallingRock, }; -const union AnimCmd gUnknown_08595600[] = +static const union AnimCmd sAnim_WillOWispOrb_0[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_FRAME(4, 5), @@ -384,44 +386,44 @@ const union AnimCmd gUnknown_08595600[] = ANIMCMD_JUMP(0), }; -const union AnimCmd gUnknown_08595614[] = +static const union AnimCmd sAnim_WillOWispOrb_1[] = { ANIMCMD_FRAME(16, 5), ANIMCMD_END, }; -const union AnimCmd gUnknown_0859561C[] = +static const union AnimCmd sAnim_WillOWispOrb_2[] = { ANIMCMD_FRAME(20, 5), ANIMCMD_END, }; -const union AnimCmd gUnknown_08595624[] = +static const union AnimCmd sAnim_WillOWispOrb_3[] = { ANIMCMD_FRAME(20, 5), ANIMCMD_END, }; -const union AnimCmd *const gUnknown_0859562C[] = +static const union AnimCmd *const sAnims_WillOWispOrb[] = { - gUnknown_08595600, - gUnknown_08595614, - gUnknown_0859561C, - gUnknown_08595624, + sAnim_WillOWispOrb_0, + sAnim_WillOWispOrb_1, + sAnim_WillOWispOrb_2, + sAnim_WillOWispOrb_3, }; -const struct SpriteTemplate gUnknown_0859563C = +const struct SpriteTemplate gWillOWispOrbSpriteTemplate = { .tileTag = ANIM_TAG_WISP_ORB, .paletteTag = ANIM_TAG_WISP_ORB, .oam = &gOamData_AffineOff_ObjNormal_16x16, - .anims = gUnknown_0859562C, + .anims = sAnims_WillOWispOrb, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8109AFC, + .callback = AnimWillOWispOrb, }; -const union AnimCmd gUnknown_08595654[] = +static const union AnimCmd sAnim_WillOWispFire[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_FRAME(16, 5), @@ -430,33 +432,37 @@ const union AnimCmd gUnknown_08595654[] = ANIMCMD_JUMP(0), }; -const union AnimCmd *const gUnknown_08595668[] = +static const union AnimCmd *const sAnims_WillOWispFire[] = { - gUnknown_08595654, + sAnim_WillOWispFire, }; -const struct SpriteTemplate gUnknown_0859566C = +const struct SpriteTemplate gWillOWispFireSpriteTemplate = { .tileTag = ANIM_TAG_WISP_FIRE, .paletteTag = ANIM_TAG_WISP_FIRE, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_08595668, + .anims = sAnims_WillOWispFire, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8109CB0, + .callback = AnimWillOWispFire, }; -const s8 gUnknown_08595684[16] = +// Directions for shaking up/down or left/right in AnimTask_ShakeTargetInPattern +// Only first 10 values are ever accessed. +// First pattern results in larger shakes, second results in faster oscillation +static const s8 sShakeDirsPattern0[16] = { -1, -1, 0, 1, 1, 0, 0, -1, -1, 1, 1, 0, 0, -1, 0, 1, }; -const s8 gUnknown_08595694[16] = +static const s8 sShakeDirsPattern1[16] = { -1, 0, 1, 0, -1, 1, 0, -1, 0, 1, 0, -1, 0, 1, 0, 1, }; -static void sub_8108EC8(struct Sprite *sprite) +// For the first stage of Fire Punch +static void AnimFireSpiralInward(struct Sprite *sprite) { sprite->data[0] = gBattleAnimArgs[0]; sprite->data[1] = 0x3C; @@ -470,7 +476,8 @@ static void sub_8108EC8(struct Sprite *sprite) sprite->callback(sprite); } -static void sub_8108F08(struct Sprite *sprite) +// For the impact spread of fire sprites for moves like Blaze Kick or Fire Punch +static void AnimFireSpread(struct Sprite *sprite) { SetAnimSpriteInitialXOffset(sprite, gBattleAnimArgs[0]); @@ -483,7 +490,7 @@ static void sub_8108F08(struct Sprite *sprite) StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); } -static void sub_8108F4C(struct Sprite *sprite) +static void AnimFirePlume(struct Sprite *sprite) { SetSpriteCoordsToAnimAttackerCoords(sprite); @@ -507,7 +514,7 @@ static void sub_8108F4C(struct Sprite *sprite) sprite->callback = sub_8109028; } -static void sub_8108FBC(struct Sprite *sprite) +static void AnimLargeFlame(struct Sprite *sprite) { if (GetBattlerSide(gBattleAnimAttacker)) { @@ -592,8 +599,8 @@ static void sub_81090D8(struct Sprite *sprite) } } -//sunlight -static void sub_810916C(struct Sprite *sprite) +// Sunlight from Sunny Day / sunny weather +static void AnimSunlight(struct Sprite *sprite) { sprite->pos1.x = 0; sprite->pos1.y = 0; @@ -622,16 +629,16 @@ static void AnimEmberFlare(struct Sprite *sprite) || gBattleAnimAttacker == GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT))) gBattleAnimArgs[2] = -gBattleAnimArgs[2]; - sprite->callback = AnimSnoreZ; + sprite->callback = AnimTravelDiagonally; sprite->callback(sprite); } -static void sub_8109200(struct Sprite *sprite) +static void AnimBurnFlame(struct Sprite *sprite) { gBattleAnimArgs[0] = -gBattleAnimArgs[0]; gBattleAnimArgs[2] = -gBattleAnimArgs[2]; - sprite->callback = AnimSnoreZ; + sprite->callback = AnimTravelDiagonally; } // Animates the a fire sprite in the first-half of the MOVE_FIRE_BLAST @@ -649,10 +656,10 @@ void AnimFireRing(struct Sprite *sprite) sprite->data[7] = gBattleAnimArgs[2]; sprite->data[0] = 0; - sprite->callback = AnimFireRingStep1; + sprite->callback = AnimFireRing_Step1; } -static void AnimFireRingStep1(struct Sprite *sprite) +static void AnimFireRing_Step1(struct Sprite *sprite) { UpdateFireRingCircleOffset(sprite); @@ -666,11 +673,11 @@ static void AnimFireRingStep1(struct Sprite *sprite) InitAnimLinearTranslation(sprite); - sprite->callback = AnimFireRingStep2; + sprite->callback = AnimFireRing_Step2; } } -static void AnimFireRingStep2(struct Sprite *sprite) +static void AnimFireRing_Step2(struct Sprite *sprite) { if (AnimTranslateLinear(sprite)) { @@ -681,7 +688,7 @@ static void AnimFireRingStep2(struct Sprite *sprite) sprite->pos2.y = 0; sprite->pos2.x = 0; - sprite->callback = AnimFireRingStep3; + sprite->callback = AnimFireRing_Step3; sprite->callback(sprite); } else @@ -693,7 +700,7 @@ static void AnimFireRingStep2(struct Sprite *sprite) } } -static void AnimFireRingStep3(struct Sprite *sprite) +static void AnimFireRing_Step3(struct Sprite *sprite) { UpdateFireRingCircleOffset(sprite); @@ -729,7 +736,7 @@ static void AnimFireCross(struct Sprite *sprite) sprite->callback = TranslateSpriteLinear; } -static void sub_81093A4(struct Sprite *sprite) +static void AnimFireSpiralOutward(struct Sprite *sprite) { InitSpritePosToAnimAttacker(sprite, 1); @@ -739,21 +746,21 @@ static void sub_81093A4(struct Sprite *sprite) sprite->invisible = TRUE; sprite->callback = WaitAnimForDuration; - StoreSpriteCallbackInData6(sprite, sub_81093E4); + StoreSpriteCallbackInData6(sprite, AnimFireSpiralOutward_Step1); } -static void sub_81093E4(struct Sprite *sprite) +static void AnimFireSpiralOutward_Step1(struct Sprite *sprite) { sprite->invisible = FALSE; sprite->data[0] = sprite->data[1]; sprite->data[1] = 0; - sprite->callback = sub_810940C; + sprite->callback = AnimFireSpiralOutward_Step2; sprite->callback(sprite); } -static void sub_810940C(struct Sprite *sprite) +static void AnimFireSpiralOutward_Step2(struct Sprite *sprite) { sprite->pos2.x = Sin(sprite->data[1], sprite->data[2] >> 8); sprite->pos2.y = Cos(sprite->data[1], sprite->data[2] >> 8); @@ -765,11 +772,12 @@ static void sub_810940C(struct Sprite *sprite) DestroyAnimSprite(sprite); } -void sub_8109460(u8 taskId) // initialize animation task for Move_ERUPTION? +// Animates first stage of Eruption where the attacker squishes and launches rocks away from themself +void AnimTask_EruptionLaunchRocks(u8 taskId) { struct Task *task = &gTasks[taskId]; - task->data[15] = GetAnimBattlerSpriteId(0); + task->data[15] = GetAnimBattlerSpriteId(ANIM_ATTACKER); task->data[0] = 0; task->data[1] = 0; @@ -781,10 +789,10 @@ void sub_8109460(u8 taskId) // initialize animation task for Move_ERUPTION? PrepareBattlerSpriteForRotScale(task->data[15], ST_OAM_OBJ_NORMAL); - task->func = sub_81094D0; + task->func = AnimTask_EruptionLaunchRocks_Step; } -static void sub_81094D0(u8 taskId) // animate Move_ERUPTION? +static void AnimTask_EruptionLaunchRocks_Step(u8 taskId) // animate Move_ERUPTION? { struct Task *task = &gTasks[taskId]; @@ -840,7 +848,7 @@ static void sub_81094D0(u8 taskId) // animate Move_ERUPTION? case 3: if (!sub_80A80C8(task)) { - sub_81097B4(task->data[15], taskId, 6); + CreateEruptionLaunchRocks(task->data[15], taskId, 6); task->data[0]++; } @@ -895,12 +903,12 @@ static void sub_81094D0(u8 taskId) // animate Move_ERUPTION? } } -static void sub_81097B4(u8 spriteId, u8 taskId, u8 a3) +static void CreateEruptionLaunchRocks(u8 spriteId, u8 taskId, u8 a3) { u16 i, j; s8 sign; - u16 y = sub_8109930(spriteId); + u16 y = GetEruptionLaunchRockInitialYPos(spriteId); u16 x = gSprites[spriteId].pos1.x; if(!GetBattlerSide(gBattleAnimAttacker)) @@ -916,7 +924,7 @@ static void sub_81097B4(u8 spriteId, u8 taskId, u8 a3) for (i = 0, j = 0; i <= 6; i++) { - u8 spriteId = CreateSprite(&gUnknown_085955B4, x, y, 2); + u8 spriteId = CreateSprite(&gEruptionLaunchRockSpriteTemplate, x, y, 2); if (spriteId != 0x40) { @@ -924,8 +932,8 @@ static void sub_81097B4(u8 spriteId, u8 taskId, u8 a3) if (++j >= 5) j = 0; - //gHeatedRockCoords - sub_8109984(&gSprites[spriteId], gUnknown_085955CC[i][0] * sign, gUnknown_085955CC[i][1]); + + InitEruptionLaunchRockCoordData(&gSprites[spriteId], sEruptionLaunchRockCoords[i][0] * sign, sEruptionLaunchRockCoords[i][1]); gSprites[spriteId].data[6] = taskId; gSprites[spriteId].data[7] = a3; @@ -934,9 +942,9 @@ static void sub_81097B4(u8 spriteId, u8 taskId, u8 a3) } } -static void sub_81098EC(struct Sprite *sprite) +static void AnimEruptionLaunchRock(struct Sprite *sprite) { - sub_81099A0(sprite); + UpdateEruptionLaunchRockPos(sprite); if (sprite->invisible) { @@ -945,23 +953,23 @@ static void sub_81098EC(struct Sprite *sprite) } } -static u16 sub_8109930(u8 spriteId) +static u16 GetEruptionLaunchRockInitialYPos(u8 spriteId) { - u16 var1 = gSprites[spriteId].pos1.y + gSprites[spriteId].pos2.y + gSprites[spriteId].centerToCornerVecY; + u16 y = gSprites[spriteId].pos1.y + gSprites[spriteId].pos2.y + gSprites[spriteId].centerToCornerVecY; if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) { - var1 = ((var1 << 16) + 0x4A0000) >> 16; + y = ((y << 16) + 0x4A0000) >> 16; } else { - var1 = ((var1 << 16) + 0x2C0000) >> 16; + y = ((y << 16) + 0x2C0000) >> 16; } - return var1; + return y; } -static void sub_8109984(struct Sprite *sprite, s16 x, s16 y) +static void InitEruptionLaunchRockCoordData(struct Sprite *sprite, s16 x, s16 y) { sprite->data[0] = 0; sprite->data[1] = 0; @@ -971,7 +979,7 @@ static void sub_8109984(struct Sprite *sprite, s16 x, s16 y) sprite->data[5] = y * 8; } -static void sub_81099A0(struct Sprite *sprite) +static void UpdateEruptionLaunchRockPos(struct Sprite *sprite) { int var1; if (++sprite->data[0] > 2) @@ -991,7 +999,7 @@ static void sub_81099A0(struct Sprite *sprite) sprite->invisible = TRUE; } -static void sub_8109A10(struct Sprite *sprite) +static void AnimEruptionFallingRock(struct Sprite *sprite) { sprite->pos1.x = gBattleAnimArgs[0]; sprite->pos1.y = gBattleAnimArgs[1]; @@ -1003,10 +1011,10 @@ static void sub_8109A10(struct Sprite *sprite) sprite->data[7] = gBattleAnimArgs[3]; sprite->oam.tileNum += gBattleAnimArgs[4] * 16; - sprite->callback = sub_8109A64; + sprite->callback = AnimEruptionFallingRock_Step; } -static void sub_8109A64(struct Sprite *sprite) +static void AnimEruptionFallingRock_Step(struct Sprite *sprite) { switch (sprite->data[0]) { @@ -1049,8 +1057,7 @@ static void sub_8109A64(struct Sprite *sprite) } } -//wisp orb -static void sub_8109AFC(struct Sprite *sprite) +static void AnimWillOWispOrb(struct Sprite *sprite) { switch (sprite->data[0]) { @@ -1109,13 +1116,13 @@ static void sub_8109AFC(struct Sprite *sprite) sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3); sub_80A6FD4(sprite); - sprite->callback = sub_8109C4C; + sprite->callback = AnimWillOWispOrb_Step; } break; } } -static void sub_8109C4C(struct Sprite *sprite) +static void AnimWillOWispOrb_Step(struct Sprite *sprite) { s16 initialData5; s16 newData5; @@ -1129,7 +1136,7 @@ static void sub_8109C4C(struct Sprite *sprite) if ((initialData5 == 0 || initialData5 > 196) && newData5 > 0 && sprite->data[7] == 0) { - PlaySE12WithPanning(SE_W172, gUnknown_02038440); + PlaySE12WithPanning(SE_W172, gAnimCustomPanning); } } else @@ -1138,8 +1145,7 @@ static void sub_8109C4C(struct Sprite *sprite) } } -//wisp fire -void sub_8109CB0(struct Sprite *sprite) +static void AnimWillOWispFire(struct Sprite *sprite) { if (!sprite->data[0]) { @@ -1177,19 +1183,19 @@ void sub_8109CB0(struct Sprite *sprite) DestroyAnimSprite(sprite); } -void sub_8109DBC(u8 taskId) +void AnimTask_MoveHeatWaveTargets(u8 taskId) { struct Task *task = &gTasks[taskId]; task->data[12] = !GetBattlerSide(gBattleAnimAttacker) ? 1 : -1; task->data[13] = IsBattlerSpriteVisible(gBattleAnimTarget ^ 2) + 1; - task->data[14] = GetAnimBattlerSpriteId(1); - task->data[15] = GetAnimBattlerSpriteId(3); + task->data[14] = GetAnimBattlerSpriteId(ANIM_TARGET); + task->data[15] = GetAnimBattlerSpriteId(ANIM_DEF_PARTNER); - task->func = sub_8109E2C; + task->func = AnimTask_MoveHeatWaveTargets_Step; } -static void sub_8109E2C(u8 taskId) +static void AnimTask_MoveHeatWaveTargets_Step(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -1287,33 +1293,40 @@ void AnimTask_BlendBackground(u8 taskId) DestroyAnimVisualTask(taskId); } -void sub_810A094(u8 taskId) +#define tShakeNum data[0] +#define tMaxShakes data[1] +#define tShakeOffset data[2] // Never read, gBattleAnimArgs[1] is used directly instead +#define tVertical data[3] +#define tPatternId data[4] + +// Shakes target horizontally or vertically tMaxShakes times, following a set pattern of alternations +void AnimTask_ShakeTargetInPattern(u8 taskId) { - s8 unk; + s8 dir; u8 spriteId; - if (gTasks[taskId].data[0] == 0) + if (gTasks[taskId].tShakeNum == 0) { - gTasks[taskId].data[1] = gBattleAnimArgs[0]; - gTasks[taskId].data[2] = gBattleAnimArgs[1]; - gTasks[taskId].data[3] = gBattleAnimArgs[2]; - gTasks[taskId].data[4] = gBattleAnimArgs[3]; + gTasks[taskId].tMaxShakes = gBattleAnimArgs[0]; + gTasks[taskId].tShakeOffset = gBattleAnimArgs[1]; + gTasks[taskId].tVertical = gBattleAnimArgs[2]; + gTasks[taskId].tPatternId = gBattleAnimArgs[3]; } - gTasks[taskId].data[0]++; + gTasks[taskId].tShakeNum++; spriteId = gBattlerSpriteIds[gBattleAnimTarget]; - if (!gTasks[taskId].data[4]) - unk = gUnknown_08595684[gTasks[taskId].data[0] % 10]; + if (gTasks[taskId].tPatternId == 0) + dir = sShakeDirsPattern0[gTasks[taskId].tShakeNum % 10]; else - unk = gUnknown_08595694[gTasks[taskId].data[0] % 10]; + dir = sShakeDirsPattern1[gTasks[taskId].tShakeNum % 10]; - if (gTasks[taskId].data[3] == 1) - gSprites[spriteId].pos2.y = gBattleAnimArgs[1] * unk < 0 ? -(gBattleAnimArgs[1] * unk) : gBattleAnimArgs[1] * unk; + if (gTasks[taskId].tVertical == TRUE) + gSprites[spriteId].pos2.y = gBattleAnimArgs[1] * dir < 0 ? -(gBattleAnimArgs[1] * dir) : gBattleAnimArgs[1] * dir; else - gSprites[spriteId].pos2.x = gBattleAnimArgs[1] * unk; + gSprites[spriteId].pos2.x = gBattleAnimArgs[1] * dir; - if (gTasks[taskId].data[0] == gTasks[taskId].data[1]) + if (gTasks[taskId].tShakeNum == gTasks[taskId].tMaxShakes) { gSprites[spriteId].pos2.x = 0; gSprites[spriteId].pos2.y = 0; diff --git a/src/flying.c b/src/battle_anim_flying.c index 774018f0f..5179c1364 100644 --- a/src/flying.c +++ b/src/battle_anim_flying.c @@ -6,39 +6,38 @@ #include "constants/rgb.h" #include "random.h" -extern const struct SpriteTemplate gUnknown_085973E8; - -void sub_810DE70(struct Sprite *); -void sub_810DFA8(struct Sprite *); -void sub_810E044(struct Sprite *); -void sub_810E13C(struct Sprite *); -void sub_810E1C8(struct Sprite *); -void sub_810E314(struct Sprite *); -void sub_810E520(struct Sprite *); -void sub_810EB40(struct Sprite *); -void sub_810EA4C(struct Sprite *); -void sub_810EAA0(struct Sprite *); -void sub_810EC34(struct Sprite *); -void sub_810EC94(struct Sprite *); -void sub_810ED28(struct Sprite *); -void sub_810ED70(struct Sprite *); -void sub_810EDD0(struct Sprite *); -void sub_810EE14(struct Sprite *); -void sub_810EEF8(struct Sprite *); -void sub_810EFA8(struct Sprite *); -void sub_810F004(struct Sprite *); -void sub_810F018(struct Sprite *); -void sub_810F084(struct Sprite *); -void sub_810F140(struct Sprite *); - -static void sub_810DE98(struct Sprite *); -static void sub_810DF18(u8); -static void sub_810E028(struct Sprite *); -static void sub_810E184(struct Sprite *); -static void sub_810E24C(struct Sprite *); - - -const struct SpriteTemplate gUnknown_08596270 = +extern const struct SpriteTemplate gFlashingHitSplatSpriteTemplate; + +static void AnimEllipticalGust(struct Sprite *); +static void AnimEllipticalGust_Step(struct Sprite *); +static void AnimGustToTarget(struct Sprite *); +static void AnimGustToTarget_Step(struct Sprite *); +static void AnimAirWaveCrescent(struct Sprite *); +static void AnimFlyBallUp(struct Sprite *); +static void AnimFlyBallUp_Step(struct Sprite *); +static void AnimFlyBallAttack(struct Sprite *); +static void AnimFlyBallAttack_Step(struct Sprite *); +static void AnimFallingFeather(struct Sprite *); +static void sub_810E520(struct Sprite *); +static void sub_810EB40(struct Sprite *); +static void sub_810EA4C(struct Sprite *); +static void AnimWhirlwindLine(struct Sprite *); +static void AnimBounceBallShrink(struct Sprite *); +static void AnimBounceBallLand(struct Sprite *); +static void AnimDiveBall(struct Sprite *); +static void AnimDiveBall_Step1(struct Sprite *); +static void AnimDiveBall_Step2(struct Sprite *); +static void AnimDiveWaterSplash(struct Sprite *); +static void AnimSprayWaterDroplet(struct Sprite *); +static void AnimSprayWaterDroplet_Step(struct Sprite *); +static void sub_810F004(struct Sprite *); +static void sub_810F018(struct Sprite *); +static void AnimSkyAttackBird(struct Sprite *); +static void AnimSkyAttackBird_Step(struct Sprite *); +static void AnimTask_AnimateGustTornadoPalette_Step(u8); + + +const struct SpriteTemplate gEllipticalGustSpriteTemplate = { .tileTag = ANIM_TAG_GUST, .paletteTag = ANIM_TAG_GUST, @@ -46,33 +45,33 @@ const struct SpriteTemplate gUnknown_08596270 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_810DE70, + .callback = AnimEllipticalGust, }; -const union AffineAnimCmd gUnknown_08596288[] = +static const union AffineAnimCmd sAffineAnim_GustToTarget[] = { AFFINEANIMCMD_FRAME(0x10, 0x100, 0, 0), AFFINEANIMCMD_FRAME(0xA, 0x0, 0, 24), AFFINEANIMCMD_END, }; -const union AffineAnimCmd *const gUnknown_085962A0[] = +static const union AffineAnimCmd *const sAffineAnims_GustToTarget[] = { - gUnknown_08596288, + sAffineAnim_GustToTarget, }; -const struct SpriteTemplate gBattleAnimSpriteTemplate_85962A4 = +const struct SpriteTemplate gGustToTargetSpriteTemplate = { .tileTag = ANIM_TAG_GUST, .paletteTag = ANIM_TAG_GUST, .oam = &gOamData_AffineNormal_ObjNormal_32x64, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_085962A0, - .callback = sub_810DFA8, + .affineAnims = sAffineAnims_GustToTarget, + .callback = AnimGustToTarget, }; -const union AnimCmd gUnknown_085962BC[] = +static const union AnimCmd sAffineAnim_AirWaveCrescent[] = { ANIMCMD_FRAME(0, 3), ANIMCMD_FRAME(0, 3, .hFlip = TRUE), @@ -81,23 +80,23 @@ const union AnimCmd gUnknown_085962BC[] = ANIMCMD_JUMP(0), }; -const union AnimCmd *const gUnknown_085962D0[] = +static const union AnimCmd *const sAffineAnims_AirWaveCrescent[] = { - gUnknown_085962BC, + sAffineAnim_AirWaveCrescent, }; -const struct SpriteTemplate gUnknown_085962D4 = +const struct SpriteTemplate gAirWaveCrescentSpriteTemplate = { .tileTag = ANIM_TAG_AIR_WAVE_2, .paletteTag = ANIM_TAG_AIR_WAVE_2, .oam = &gOamData_AffineOff_ObjNormal_32x16, - .anims = gUnknown_085962D0, + .anims = sAffineAnims_AirWaveCrescent, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_810E044, + .callback = AnimAirWaveCrescent, }; -const union AffineAnimCmd gUnknown_085962EC[] = +static const union AffineAnimCmd sAffineAnim_FlyBallUp[] = { AFFINEANIMCMD_FRAME(0x10, 0x100, 0, 0), AFFINEANIMCMD_FRAME(0x28, 0x0, 0, 6), @@ -106,78 +105,78 @@ const union AffineAnimCmd gUnknown_085962EC[] = AFFINEANIMCMD_END, }; -const union AffineAnimCmd *const gUnknown_08596314[] = +static const union AffineAnimCmd *const sAffineAnims_FlyBallUp[] = { - gUnknown_085962EC, + sAffineAnim_FlyBallUp, }; -const union AffineAnimCmd gUnknown_08596318[] = +static const union AffineAnimCmd sAffineAnim_FlyBallAttack_0[] = { AFFINEANIMCMD_FRAME(0x0, 0x0, 50, 1), AFFINEANIMCMD_END, }; -const union AffineAnimCmd gUnknown_08596328[] = +static const union AffineAnimCmd sAffineAnim_FlyBallAttack_1[] = { AFFINEANIMCMD_FRAME(0x0, 0x0, -40, 1), AFFINEANIMCMD_END, }; -const union AffineAnimCmd *const gUnknown_08596338[] = +static const union AffineAnimCmd *const sAffineAnims_FlyBallAttack[] = { - gUnknown_08596318, - gUnknown_08596328, + sAffineAnim_FlyBallAttack_0, + sAffineAnim_FlyBallAttack_1, }; -const struct SpriteTemplate gUnknown_08596340 = +const struct SpriteTemplate gFlyBallUpSpriteTemplate = { .tileTag = ANIM_TAG_ROUND_SHADOW, .paletteTag = ANIM_TAG_ROUND_SHADOW, .oam = &gOamData_AffineDouble_ObjNormal_64x64, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_08596314, - .callback = sub_810E13C, + .affineAnims = sAffineAnims_FlyBallUp, + .callback = AnimFlyBallUp, }; -const struct SpriteTemplate gUnknown_08596358 = +const struct SpriteTemplate gFlyBallAttackSpriteTemplate = { .tileTag = ANIM_TAG_ROUND_SHADOW, .paletteTag = ANIM_TAG_ROUND_SHADOW, .oam = &gOamData_AffineNormal_ObjNormal_64x64, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_08596338, - .callback = sub_810E1C8, + .affineAnims = sAffineAnims_FlyBallAttack, + .callback = AnimFlyBallAttack, }; -const union AnimCmd gUnknown_08596370[] = +static const union AnimCmd sAnim_FallingFeather_0[] = { ANIMCMD_FRAME(0, 0), ANIMCMD_END, }; -const union AnimCmd gUnknown_08596378[] = +static const union AnimCmd sAnim_FallingFeather_1[] = { ANIMCMD_FRAME(16, 0, .hFlip = TRUE), ANIMCMD_END, }; -const union AnimCmd *const gUnknown_08596380[] = +static const union AnimCmd *const sAnims_FallingFeather[] = { - gUnknown_08596370, - gUnknown_08596378, + sAnim_FallingFeather_0, + sAnim_FallingFeather_1, }; -const struct SpriteTemplate gUnknown_08596388 = +const struct SpriteTemplate gFallingFeatherSpriteTemplate = { .tileTag = ANIM_TAG_WHITE_FEATHER, .paletteTag = ANIM_TAG_WHITE_FEATHER, .oam = &gOamData_AffineNormal_ObjNormal_32x32, - .anims = gUnknown_08596380, + .anims = sAnims_FallingFeather, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_810E314, + .callback = AnimFallingFeather, }; const struct SpriteTemplate gUnknown_085963A0 = @@ -191,7 +190,7 @@ const struct SpriteTemplate gUnknown_085963A0 = .callback = sub_810EA4C, }; -const union AnimCmd gUnknown_085963B8[] = +static const union AnimCmd sAnim_WhirlwindLines[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_FRAME(8, 1), @@ -201,23 +200,23 @@ const union AnimCmd gUnknown_085963B8[] = ANIMCMD_END, }; -const union AnimCmd *const gUnknown_085963D0[] = +static const union AnimCmd *const sAnims_WhirlwindLines[] = { - gUnknown_085963B8, + sAnim_WhirlwindLines, }; -const struct SpriteTemplate gUnknown_085963D4 = +const struct SpriteTemplate gWhirlwindLineSpriteTemplate = { .tileTag = ANIM_TAG_WHIRLWIND_LINES, .paletteTag = ANIM_TAG_WHIRLWIND_LINES, .oam = &gOamData_AffineOff_ObjNormal_32x16, - .anims = gUnknown_085963D0, + .anims = sAnims_WhirlwindLines, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_810EAA0, + .callback = AnimWhirlwindLine, }; -const union AffineAnimCmd gUnknown_085963EC[] = +static const union AffineAnimCmd sAffineAnim_BounceBallShrink[] = { AFFINEANIMCMD_FRAME(0x10, 0x100, 0, 0), AFFINEANIMCMD_FRAME(0x28, 0x0, 0, 6), @@ -227,45 +226,45 @@ const union AffineAnimCmd gUnknown_085963EC[] = AFFINEANIMCMD_END, }; -const union AffineAnimCmd *const gUnknown_0859641C[] = +static const union AffineAnimCmd *const sAffineAnims_BounceBallShrink[] = { - gUnknown_085963EC, + sAffineAnim_BounceBallShrink, }; -const struct SpriteTemplate gUnknown_08596420 = +const struct SpriteTemplate gBounceBallShrinkSpriteTemplate = { .tileTag = ANIM_TAG_ROUND_SHADOW, .paletteTag = ANIM_TAG_ROUND_SHADOW, .oam = &gOamData_AffineDouble_ObjNormal_64x64, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_0859641C, - .callback = sub_810EC34, + .affineAnims = sAffineAnims_BounceBallShrink, + .callback = AnimBounceBallShrink, }; -const union AffineAnimCmd gUnknown_08596438[] = +static const union AffineAnimCmd sAffineAnim_BounceBallLand[] = { AFFINEANIMCMD_FRAME(0xA0, 0x100, 0, 0), AFFINEANIMCMD_END, }; -const union AffineAnimCmd *const gUnknown_08596448[] = +static const union AffineAnimCmd *const sAffineAnims_BounceBallLand[] = { - gUnknown_08596438, + sAffineAnim_BounceBallLand, }; -const struct SpriteTemplate gUnknown_0859644C = +const struct SpriteTemplate gBounceBallLandSpriteTemplate = { .tileTag = ANIM_TAG_ROUND_SHADOW, .paletteTag = ANIM_TAG_ROUND_SHADOW, .oam = &gOamData_AffineDouble_ObjNormal_64x64, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_08596448, - .callback = sub_810EC94, + .affineAnims = sAffineAnims_BounceBallLand, + .callback = AnimBounceBallLand, }; -const union AffineAnimCmd gUnknown_08596464[] = +static const union AffineAnimCmd sAffineAnim_DiveBall[] = { AFFINEANIMCMD_FRAME(0x10, 0x100, 0, 0), AFFINEANIMCMD_FRAME(0x28, 0x0, 0, 6), @@ -274,23 +273,23 @@ const union AffineAnimCmd gUnknown_08596464[] = AFFINEANIMCMD_END, }; -const union AffineAnimCmd *const gUnknown_0859648C[] = +static const union AffineAnimCmd *const sAffineAnims_DiveBall[] = { - gUnknown_08596464, + sAffineAnim_DiveBall, }; -const struct SpriteTemplate gUnknown_08596490 = +const struct SpriteTemplate gDiveBallSpriteTemplate = { .tileTag = ANIM_TAG_ROUND_SHADOW, .paletteTag = ANIM_TAG_ROUND_SHADOW, .oam = &gOamData_AffineDouble_ObjNormal_64x64, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_0859648C, - .callback = sub_810ED28, + .affineAnims = sAffineAnims_DiveBall, + .callback = AnimDiveBall, }; -const union AffineAnimCmd gUnknown_085964A8[] = +static const union AffineAnimCmd gUnknown_085964A8[] = { AFFINEANIMCMD_FRAME(0x100, 0x0, 0, 0), AFFINEANIMCMD_FRAME(0x0, 0x20, 0, 12), @@ -298,12 +297,13 @@ const union AffineAnimCmd gUnknown_085964A8[] = AFFINEANIMCMD_END, }; -const union AffineAnimCmd *const gUnknown_085964C8[] = +// Unused +static const union AffineAnimCmd *const gUnknown_085964C8[] = { gUnknown_085964A8, }; -const struct SpriteTemplate gUnknown_085964CC = +const struct SpriteTemplate gDiveWaterSplashSpriteTemplate = { .tileTag = ANIM_TAG_SPLASH, .paletteTag = ANIM_TAG_SPLASH, @@ -311,10 +311,10 @@ const struct SpriteTemplate gUnknown_085964CC = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_810EE14, + .callback = AnimDiveWaterSplash, }; -const struct SpriteTemplate gUnknown_085964E4 = +const struct SpriteTemplate gSprayWaterDropletSpriteTemplate = { .tileTag = ANIM_TAG_SWEAT_BEAD, .paletteTag = ANIM_TAG_SWEAT_BEAD, @@ -322,7 +322,7 @@ const struct SpriteTemplate gUnknown_085964E4 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_810EEF8, + .callback = AnimSprayWaterDroplet, }; const struct SpriteTemplate gUnknown_085964FC = @@ -336,7 +336,7 @@ const struct SpriteTemplate gUnknown_085964FC = .callback = sub_810F004, }; -const struct SpriteTemplate gUnknown_08596514 = +const struct SpriteTemplate gSkyAttackBirdSpriteTemplate = { .tileTag = ANIM_TAG_BIRD, .paletteTag = ANIM_TAG_BIRD, @@ -344,20 +344,20 @@ const struct SpriteTemplate gUnknown_08596514 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_810F084, + .callback = AnimSkyAttackBird, }; -void sub_810DE70(struct Sprite *sprite) +static void AnimEllipticalGust(struct Sprite *sprite) { InitSpritePosToAnimTarget(sprite, FALSE); sprite->pos1.y += 20; sprite->data[1] = 191; - sprite->callback = sub_810DE98; + sprite->callback = AnimEllipticalGust_Step; sprite->callback(sprite); } -static void sub_810DE98(struct Sprite *sprite) +static void AnimEllipticalGust_Step(struct Sprite *sprite) { sprite->pos2.x = Sin(sprite->data[1], 32); sprite->pos2.y = Cos(sprite->data[1], 8); @@ -367,15 +367,16 @@ static void sub_810DE98(struct Sprite *sprite) DestroyAnimSprite(sprite); } -void sub_810DED8(u8 taskId) +// Animates the palette on the gust tornado to make it look like its spinning +void AnimTask_AnimateGustTornadoPalette(u8 taskId) { gTasks[taskId].data[0] = gBattleAnimArgs[1]; gTasks[taskId].data[1] = gBattleAnimArgs[0]; gTasks[taskId].data[2] = IndexOfSpritePaletteTag(ANIM_TAG_GUST); - gTasks[taskId].func = sub_810DF18; + gTasks[taskId].func = AnimTask_AnimateGustTornadoPalette_Step; } -static void sub_810DF18(u8 taskId) +static void AnimTask_AnimateGustTornadoPalette_Step(u8 taskId) { u8 data2; u16 temp; @@ -402,7 +403,7 @@ static void sub_810DF18(u8 taskId) DestroyAnimVisualTask(taskId); } -void sub_810DFA8(struct Sprite *sprite) +static void AnimGustToTarget(struct Sprite *sprite) { InitSpritePosToAnimAttacker(sprite, TRUE); if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) @@ -415,16 +416,16 @@ void sub_810DFA8(struct Sprite *sprite) sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[3]; InitAnimLinearTranslation(sprite); sprite->callback = RunStoredCallbackWhenAffineAnimEnds; - StoreSpriteCallbackInData6(sprite, sub_810E028); + StoreSpriteCallbackInData6(sprite, AnimGustToTarget_Step); } -static void sub_810E028(struct Sprite *sprite) +static void AnimGustToTarget_Step(struct Sprite *sprite) { if (AnimTranslateLinear(sprite)) DestroyAnimSprite(sprite); } -void sub_810E044(struct Sprite *sprite) +static void AnimAirWaveCrescent(struct Sprite *sprite) { if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) { @@ -464,16 +465,16 @@ void sub_810E044(struct Sprite *sprite) SeekSpriteAnim(sprite, gBattleAnimArgs[5]); } -void sub_810E13C(struct Sprite *sprite) +static void AnimFlyBallUp(struct Sprite *sprite) { InitSpritePosToAnimAttacker(sprite, TRUE); sprite->data[0] = gBattleAnimArgs[2]; sprite->data[1] = gBattleAnimArgs[3]; - sprite->callback = sub_810E184; - gSprites[GetAnimBattlerSpriteId(ANIM_ATTACKER)].invisible = 1; + sprite->callback = AnimFlyBallUp_Step; + gSprites[GetAnimBattlerSpriteId(ANIM_ATTACKER)].invisible = TRUE; } -static void sub_810E184(struct Sprite *sprite) +static void AnimFlyBallUp_Step(struct Sprite *sprite) { if (sprite->data[0] > 0) { @@ -489,7 +490,7 @@ static void sub_810E184(struct Sprite *sprite) DestroyAnimSprite(sprite); } -void sub_810E1C8(struct Sprite *sprite) +static void AnimFlyBallAttack(struct Sprite *sprite) { if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) { @@ -510,10 +511,10 @@ void sub_810E1C8(struct Sprite *sprite) sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); InitAnimLinearTranslation(sprite); - sprite->callback = sub_810E24C; + sprite->callback = AnimFlyBallAttack_Step; } -static void sub_810E24C(struct Sprite *sprite) +static void AnimFlyBallAttack_Step(struct Sprite *sprite) { sprite->data[0] = 1; AnimTranslateLinear(sprite); @@ -528,12 +529,12 @@ static void sub_810E24C(struct Sprite *sprite) || sprite->pos1.x + sprite->pos2.x > 272 || sprite->pos1.y + sprite->pos2.y > 160) { - gSprites[GetAnimBattlerSpriteId(ANIM_ATTACKER)].invisible = 0; + gSprites[GetAnimBattlerSpriteId(ANIM_ATTACKER)].invisible = FALSE; DestroyAnimSprite(sprite); } } -void sub_810E2C8(struct Sprite *sprite) +void DestroyAnimSpriteAfterTimer(struct Sprite *sprite) { if (sprite->data[0]-- <= 0) { @@ -566,7 +567,7 @@ struct FeatherDanceData u16 unkE_1:15; }; -void sub_810E314(struct Sprite *sprite) +static void AnimFallingFeather(struct Sprite *sprite) { u8 battler, matrixNum, sinIndex; s16 spriteCoord, sinVal; @@ -652,7 +653,7 @@ void sub_810E314(struct Sprite *sprite) sprite->callback = sub_810E520; } -void sub_810E520(struct Sprite *sprite) +static void sub_810E520(struct Sprite *sprite) { u8 matrixNum, sinIndex; s16 sinVal = 0; @@ -898,12 +899,12 @@ void sub_810E520(struct Sprite *sprite) if (sprite->pos1.y + sprite->pos2.y >= data->unkE_1) { sprite->data[0] = 0; - sprite->callback = sub_810E2C8; + sprite->callback = DestroyAnimSpriteAfterTimer; } } } -void sub_810EA4C(struct Sprite *sprite) +static void sub_810EA4C(struct Sprite *sprite) { sprite->oam.priority = GetBattlerSpriteBGPriority(gBattleAnimTarget); sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); @@ -911,18 +912,18 @@ void sub_810EA4C(struct Sprite *sprite) sprite->callback = TranslateAnimSpriteToTargetMonLocation; } -void sub_810EAA0(struct Sprite * sprite) +static void AnimWhirlwindLine(struct Sprite * sprite) { u16 arg; u8 mult; - if (!gBattleAnimArgs[2]) + if (gBattleAnimArgs[2] == ANIM_ATTACKER) InitSpritePosToAnimAttacker(sprite, 0); else InitSpritePosToAnimTarget(sprite, FALSE); - if ((!gBattleAnimArgs[2] && !GetBattlerSide(gBattleAnimAttacker)) - || (gBattleAnimArgs[2] == 1 && !GetBattlerSide(gBattleAnimTarget))) + if ((gBattleAnimArgs[2] == ANIM_ATTACKER && !GetBattlerSide(gBattleAnimAttacker)) + || (gBattleAnimArgs[2] == ANIM_TARGET && !GetBattlerSide(gBattleAnimTarget))) { sprite->pos1.x += 8; } @@ -939,7 +940,7 @@ void sub_810EAA0(struct Sprite * sprite) sprite->callback = sub_810EB40; } -void sub_810EB40(struct Sprite *sprite) +static void sub_810EB40(struct Sprite *sprite) { sprite->pos2.x += sprite->data[1] >> 8; @@ -954,7 +955,7 @@ void sub_810EB40(struct Sprite *sprite) DestroyAnimSprite(sprite); } -void sub_810EB88(u8 task) +void AnimTask_DrillPeckHitSplats(u8 task) { if (!(gTasks[task].data[0] % 32)) { @@ -965,7 +966,7 @@ void sub_810EB88(u8 task) gBattleAnimArgs[2] = 1; gBattleAnimArgs[3] = 3; - CreateSpriteAndAnimate(&gUnknown_085973E8, + CreateSpriteAndAnimate(&gFlashingHitSplatSpriteTemplate, GetBattlerSpriteCoord(gBattleAnimTarget, 2), GetBattlerSpriteCoord(gBattleAnimTarget, 3), 3); @@ -977,13 +978,13 @@ void sub_810EB88(u8 task) DestroyAnimVisualTask(task); } -void sub_810EC34(struct Sprite *sprite) +static void AnimBounceBallShrink(struct Sprite *sprite) { switch (sprite->data[0]) { case 0: InitSpritePosToAnimAttacker(sprite, 1); - gSprites[GetAnimBattlerSpriteId(0)].invisible = 1; + gSprites[GetAnimBattlerSpriteId(ANIM_ATTACKER)].invisible = TRUE; ++sprite->data[0]; break; case 1: @@ -993,7 +994,7 @@ void sub_810EC34(struct Sprite *sprite) } } -void sub_810EC94(struct Sprite *sprite) +static void AnimBounceBallLand(struct Sprite *sprite) { switch (sprite->data[0]) { @@ -1011,23 +1012,23 @@ void sub_810EC94(struct Sprite *sprite) sprite->pos2.y -= 10; if (sprite->pos1.y + sprite->pos2.y < -32) { - gSprites[GetAnimBattlerSpriteId(0)].invisible = 0; + gSprites[GetAnimBattlerSpriteId(ANIM_ATTACKER)].invisible = FALSE; DestroyAnimSprite(sprite); } break; } } -void sub_810ED28(struct Sprite *sprite) +static void AnimDiveBall(struct Sprite *sprite) { InitSpritePosToAnimAttacker(sprite, 1); sprite->data[0] = gBattleAnimArgs[2]; sprite->data[1] = gBattleAnimArgs[3]; - sprite->callback = sub_810ED70; - gSprites[GetAnimBattlerSpriteId(0)].invisible = 1; + sprite->callback = AnimDiveBall_Step1; + gSprites[GetAnimBattlerSpriteId(ANIM_ATTACKER)].invisible = TRUE; } -void sub_810ED70(struct Sprite *sprite) +void AnimDiveBall_Step1(struct Sprite *sprite) { if (sprite->data[0] > 0) { @@ -1040,24 +1041,24 @@ void sub_810ED70(struct Sprite *sprite) } else { - sprite->invisible = 1; + sprite->invisible = TRUE; if (sprite->data[3]++ > 20) - sprite->callback = sub_810EDD0; + sprite->callback = AnimDiveBall_Step2; } } -void sub_810EDD0(struct Sprite *sprite) +static void AnimDiveBall_Step2(struct Sprite *sprite) { sprite->pos2.y += sprite->data[2] >> 8; if (sprite->pos1.y + sprite->pos2.y > -32) - sprite->invisible = 0; + sprite->invisible = FALSE; if (sprite->pos2.y > 0) DestroyAnimSprite(sprite); } -void sub_810EE14(struct Sprite *sprite) +static void AnimDiveWaterSplash(struct Sprite *sprite) { u32 matrixNum; int t1, t2; @@ -1111,7 +1112,8 @@ void sub_810EE14(struct Sprite *sprite) } } -void sub_810EEF8(struct Sprite *sprite) +// Launches a water droplet away from the specified battler. Used by Astonish and Dive +static void AnimSprayWaterDroplet(struct Sprite *sprite) { int v1 = 0x1ff & Random2(); int v2 = 0x7f & Random2(); @@ -1142,10 +1144,10 @@ void sub_810EEF8(struct Sprite *sprite) sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, 1) + 32; } - sprite->callback = sub_810EFA8; + sprite->callback = AnimSprayWaterDroplet_Step; } -void sub_810EFA8(struct Sprite *sprite) +static void AnimSprayWaterDroplet_Step(struct Sprite *sprite) { if (sprite->data[2] == 0) { @@ -1168,14 +1170,14 @@ void sub_810EFA8(struct Sprite *sprite) DestroyAnimSprite(sprite); } -void sub_810F004(struct Sprite *sprite) +static void sub_810F004(struct Sprite *sprite) { sprite->data[6] = 0; sprite->data[7] = 64; sprite->callback = sub_810F018; } -void sub_810F018(struct Sprite *sprite) +static void sub_810F018(struct Sprite *sprite) { switch (sprite->data[0]) { @@ -1194,7 +1196,7 @@ void sub_810F018(struct Sprite *sprite) } } -void sub_810F084(struct Sprite *sprite) +static void AnimSkyAttackBird(struct Sprite *sprite) { u16 rotation; s16 posx = sprite->pos1.x; @@ -1214,10 +1216,10 @@ void sub_810F084(struct Sprite *sprite) TrySetSpriteRotScale(sprite, 1, 0x100, 0x100, rotation); - sprite->callback = sub_810F140; + sprite->callback = AnimSkyAttackBird_Step; } -void sub_810F140(struct Sprite *sprite) +void AnimSkyAttackBird_Step(struct Sprite *sprite) { sprite->data[4] += sprite->data[6]; sprite->data[5] += sprite->data[7]; @@ -1234,13 +1236,13 @@ void unref_sub_810F184(u8 taskId) { if (gBattleAnimArgs[0] == 0) { - u8 spriteId = GetAnimBattlerSpriteId(0); - gSprites[spriteId].invisible = 1; + u8 spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER); + gSprites[spriteId].invisible = TRUE; } else { - u8 spriteId = GetAnimBattlerSpriteId(0); - gSprites[spriteId].invisible = 0; + u8 spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER); + gSprites[spriteId].invisible = FALSE; } DestroyAnimVisualTask(taskId); } diff --git a/src/ghost.c b/src/battle_anim_ghost.c index 93c442b92..b8de6b0e1 100644 --- a/src/ghost.c +++ b/src/battle_anim_ghost.c @@ -10,62 +10,62 @@ #include "trig.h" #include "util.h" -static void sub_811160C(struct Sprite *); -static void sub_8111674(struct Sprite *); -static void sub_81116E8(struct Sprite *); +static void AnimConfuseRayBallBounce(struct Sprite *); +static void AnimConfuseRayBallBounce_Step1(struct Sprite *); +static void AnimConfuseRayBallBounce_Step2(struct Sprite *); static void sub_8111764(struct Sprite *); -static void sub_81117F4(struct Sprite *); -static void sub_8111814(struct Sprite *); -static void sub_8111914(u8 taskId); -static void sub_811196C(u8 taskId); -static void InitAnimShadowBall(struct Sprite *); -static void AnimShadowBallStep(struct Sprite *); -static void sub_8111B9C(struct Sprite *); -static void sub_8111BB4(struct Sprite *); -static void sub_8111D78(u8 taskId); -static void sub_8111E78(u8 taskId); -static void sub_81120DC(u8 taskId); -static void sub_8112170(u8 taskId); -static void sub_8112264(struct Sprite *); -static void sub_8112384(struct Sprite *); -static void sub_81125E0(u8 taskId); -static void sub_811280C(u8 taskId); -static void sub_8112994(u8 taskId); -static void sub_81129F0(struct Sprite *); -static void sub_8112A4C(struct Sprite *); -static void sub_8112ACC(struct Sprite *); -static void sub_8112B44(struct Sprite *); -static void sub_8112B78(struct Sprite *); -static void sub_8112C4C(struct Sprite *); -static void sub_8112D10(u8 taskId); -static void sub_8112E9C(struct Sprite *); +static void AnimConfuseRayBallSpiral(struct Sprite *); +static void AnimConfuseRayBallSpiral_Step(struct Sprite *); +static void AnimTask_NightShadeClone_Step1(u8 taskId); +static void AnimTask_NightShadeClone_Step2(u8 taskId); +static void AnimShadowBall(struct Sprite *); +static void AnimShadowBall_Step(struct Sprite *); +static void AnimLick(struct Sprite *); +static void AnimLick_Step(struct Sprite *); +static void AnimTask_NightmareClone_Step(u8 taskId); +static void AnimTask_SpiteTargetShadow_Step1(u8 taskId); +static void AnimTask_SpiteTargetShadow_Step2(u8 taskId); +static void AnimTask_SpiteTargetShadow_Step3(u8 taskId); +static void AnimDestinyBondWhiteShadow(struct Sprite *); +static void AnimDestinyBondWhiteShadow_Step(struct Sprite *); +static void AnimTask_DestinyBondWhiteShadow_Step(u8 taskId); +static void AnimTask_CurseStretchingBlackBg_Step1(u8 taskId); +static void AnimTask_CurseStretchingBlackBg_Step2(u8 taskId); +static void AnimCurseNail(struct Sprite *); +static void AnimCurseNail_Step1(struct Sprite *); +static void AnimCurseNail_Step2(struct Sprite *); +static void AnimCurseNail_End(struct Sprite *); +static void AnimGhostStatusSprite(struct Sprite *); +static void AnimGhostStatusSprite_Step(struct Sprite *); +static void AnimTask_GrudgeFlames_Step(u8 taskId); +static void AnimGrudgeFlame(struct Sprite *); static void sub_8112F60(struct Sprite *); static void sub_8112FB8(struct Sprite *); -const union AffineAnimCmd gUnknown_08596CF8[] = +static const union AffineAnimCmd sAffineAnim_ConfuseRayBallBounce[] = { AFFINEANIMCMD_FRAME(0x1E, 0x1E, 10, 5), AFFINEANIMCMD_FRAME(0xFFE2, 0xFFE2, 10, 5), AFFINEANIMCMD_JUMP(0), }; -const union AffineAnimCmd *const gUnknown_08596D10[] = +static const union AffineAnimCmd *const sAffineAnims_ConfuseRayBallBounce[] = { - gUnknown_08596CF8, + sAffineAnim_ConfuseRayBallBounce, }; -const struct SpriteTemplate gUnknown_08596D14 = +const struct SpriteTemplate gConfuseRayBallBounceSpriteTemplate = { .tileTag = ANIM_TAG_YELLOW_BALL, .paletteTag = ANIM_TAG_YELLOW_BALL, .oam = &gOamData_AffineDouble_ObjNormal_16x16, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_08596D10, - .callback = sub_811160C, + .affineAnims = sAffineAnims_ConfuseRayBallBounce, + .callback = AnimConfuseRayBallBounce, }; -const struct SpriteTemplate gUnknown_08596D2C = +const struct SpriteTemplate gConfuseRayBallSpiralSpriteTemplate = { .tileTag = ANIM_TAG_YELLOW_BALL, .paletteTag = ANIM_TAG_YELLOW_BALL, @@ -73,18 +73,18 @@ const struct SpriteTemplate gUnknown_08596D2C = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_81117F4, + .callback = AnimConfuseRayBallSpiral, }; -const union AffineAnimCmd gUnknown_08596D44[] = +static const union AffineAnimCmd sAffineAnim_ShadowBall[] = { AFFINEANIMCMD_FRAME(0x0, 0x0, 10, 1), AFFINEANIMCMD_JUMP(0), }; -const union AffineAnimCmd *const gUnknown_08596D54[] = +static const union AffineAnimCmd *const sAffineAnims_ShadowBall[] = { - gUnknown_08596D44, + sAffineAnim_ShadowBall, }; const struct SpriteTemplate gShadowBallSpriteTemplate = @@ -94,11 +94,11 @@ const struct SpriteTemplate gShadowBallSpriteTemplate = .oam = &gOamData_AffineNormal_ObjNormal_32x32, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_08596D54, - .callback = InitAnimShadowBall, + .affineAnims = sAffineAnims_ShadowBall, + .callback = AnimShadowBall, }; -const union AnimCmd gUnknown_08596D70[] = +static const union AnimCmd sAnim_Lick[] = { ANIMCMD_FRAME(0, 2), ANIMCMD_FRAME(8, 2), @@ -108,34 +108,35 @@ const union AnimCmd gUnknown_08596D70[] = ANIMCMD_END, }; -const union AnimCmd *const gUnknown_08596D88[] = +static const union AnimCmd *const sAnims_Lick[] = { - gUnknown_08596D70, + sAnim_Lick, }; -const struct SpriteTemplate gUnknown_08596D8C = +const struct SpriteTemplate gLickSpriteTemplate = { .tileTag = ANIM_TAG_LICK, .paletteTag = ANIM_TAG_LICK, .oam = &gOamData_AffineOff_ObjNormal_16x32, - .anims = gUnknown_08596D88, + .anims = sAnims_Lick, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8111B9C, + .callback = AnimLick, }; -const union AffineAnimCmd gUnknown_08596DA4[] = +static const union AffineAnimCmd gUnknown_08596DA4[] = { AFFINEANIMCMD_FRAME(0x200, 0x200, 0, 0), AFFINEANIMCMD_END, }; -const union AffineAnimCmd *const gUnknown_08596DB4[] = +// Unused +static const union AffineAnimCmd *const gUnknown_08596DB4[] = { gUnknown_08596DA4, }; -const struct SpriteTemplate gUnknown_08596DB8 = +const struct SpriteTemplate gDestinyBondWhiteShadowSpriteTemplate = { .tileTag = ANIM_TAG_WHITE_SHADOW, .paletteTag = ANIM_TAG_WHITE_SHADOW, @@ -143,10 +144,10 @@ const struct SpriteTemplate gUnknown_08596DB8 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8112264, + .callback = AnimDestinyBondWhiteShadow, }; -const struct SpriteTemplate gUnknown_08596DD0 = +const struct SpriteTemplate gCurseNailSpriteTemplate = { .tileTag = ANIM_TAG_NAIL, .paletteTag = ANIM_TAG_NAIL, @@ -154,10 +155,10 @@ const struct SpriteTemplate gUnknown_08596DD0 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_81129F0, + .callback = AnimCurseNail, }; -const struct SpriteTemplate gBattleAnimSpriteTemplate_8596DE8 = +const struct SpriteTemplate gCurseGhostSpriteTemplate = { .tileTag = ANIM_TAG_GHOSTLY_SPIRIT, .paletteTag = ANIM_TAG_GHOSTLY_SPIRIT, @@ -165,10 +166,10 @@ const struct SpriteTemplate gBattleAnimSpriteTemplate_8596DE8 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8112B78, + .callback = AnimGhostStatusSprite, }; -const struct SpriteTemplate gBattleAnimSpriteTemplate_8596E00 = +const struct SpriteTemplate gNightmareDevilSpriteTemplate = { .tileTag = ANIM_TAG_DEVIL, .paletteTag = ANIM_TAG_DEVIL, @@ -176,10 +177,10 @@ const struct SpriteTemplate gBattleAnimSpriteTemplate_8596E00 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8112B78, + .callback = AnimGhostStatusSprite, }; -const union AnimCmd gUnknown_08596E18[] = +static const union AnimCmd sAnim_GrudgeFlame[] = { ANIMCMD_FRAME(0, 4), ANIMCMD_FRAME(8, 4), @@ -188,22 +189,23 @@ const union AnimCmd gUnknown_08596E18[] = ANIMCMD_JUMP(0), }; -const union AnimCmd *const gUnknown_08596E2C[] = +static const union AnimCmd *const sAnims_GrudgeFlame[] = { - gUnknown_08596E18, + sAnim_GrudgeFlame, }; -const struct SpriteTemplate gUnknown_08596E30 = +const struct SpriteTemplate gGrudgeFlameSpriteTemplate = { .tileTag = ANIM_TAG_PURPLE_FLAME, .paletteTag = ANIM_TAG_PURPLE_FLAME, .oam = &gOamData_AffineOff_ObjBlend_16x32, - .anims = gUnknown_08596E2C, + .anims = sAnims_GrudgeFlame, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8112E9C, + .callback = AnimGrudgeFlame, }; +// Unused const struct SpriteTemplate gUnknown_08596E48 = { .tileTag = 0, @@ -215,7 +217,7 @@ const struct SpriteTemplate gUnknown_08596E48 = .callback = sub_8112F60, }; -static void sub_811160C(struct Sprite *sprite) +static void AnimConfuseRayBallBounce(struct Sprite *sprite) { InitSpritePosToAnimAttacker(sprite, 1); sprite->data[0] = gBattleAnimArgs[2]; @@ -224,20 +226,20 @@ static void sub_811160C(struct Sprite *sprite) sprite->data[3] = sprite->pos1.y; sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3); sub_80A6FD4(sprite); - sprite->callback = sub_8111674; + sprite->callback = AnimConfuseRayBallBounce_Step1; sprite->data[6] = 16; SetGpuReg(REG_OFFSET_BLDCNT, (BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_ALL)); SetGpuReg(REG_OFFSET_BLDALPHA, sprite->data[6]); } -static void sub_8111674(struct Sprite *sprite) +static void AnimConfuseRayBallBounce_Step1(struct Sprite *sprite) { s16 r0; s16 r2; sub_8111764(sprite); if (AnimTranslateLinear(sprite)) { - sprite->callback = sub_81116E8; + sprite->callback = AnimConfuseRayBallBounce_Step2; return; } @@ -250,10 +252,10 @@ static void sub_8111674(struct Sprite *sprite) return; if (r0 <= 0) return; - PlaySE12WithPanning(SE_W109, gUnknown_02038440); + PlaySE12WithPanning(SE_W109, gAnimCustomPanning); } -static void sub_81116E8(struct Sprite *sprite) +static void AnimConfuseRayBallBounce_Step2(struct Sprite *sprite) { s16 r2; s16 r0; @@ -311,14 +313,14 @@ static void sub_8111764(struct Sprite *sprite) } } -static void sub_81117F4(struct Sprite *sprite) +static void AnimConfuseRayBallSpiral(struct Sprite *sprite) { InitSpritePosToAnimTarget(sprite, TRUE); - sprite->callback = sub_8111814; + sprite->callback = AnimConfuseRayBallSpiral_Step; sprite->callback(sprite); } -static void sub_8111814(struct Sprite *sprite) +static void AnimConfuseRayBallSpiral_Step(struct Sprite *sprite) { u16 temp1; sprite->pos2.x = Sin(sprite->data[0], 32); @@ -336,12 +338,13 @@ static void sub_8111814(struct Sprite *sprite) DestroyAnimSprite(sprite); } -void sub_811188C(u8 taskId) +// Creates a large transparent clone of the attacker centered on their position which shrinks to original size +void AnimTask_NightShadeClone(u8 taskId) { u8 spriteId; SetGpuReg(REG_OFFSET_BLDCNT, (BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_ALL)); SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0, 0x10)); - spriteId = GetAnimBattlerSpriteId(0); + spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER); PrepareBattlerSpriteForRotScale(spriteId, ST_OAM_OBJ_BLEND); SetSpriteRotScale(spriteId, 128, 128, 0); gSprites[spriteId].invisible = FALSE; @@ -349,10 +352,10 @@ void sub_811188C(u8 taskId) gTasks[taskId].data[1] = *gBattleAnimArgs; gTasks[taskId].data[2] = 0; gTasks[taskId].data[3] = 16; - gTasks[taskId].func = sub_8111914; + gTasks[taskId].func = AnimTask_NightShadeClone_Step1; } -static void sub_8111914(u8 taskId) +static void AnimTask_NightShadeClone_Step1(u8 taskId) { gTasks[taskId].data[10] += 1; if (gTasks[taskId].data[10] == 3) @@ -364,11 +367,11 @@ static void sub_8111914(u8 taskId) if (gTasks[taskId].data[2] != 9) return; - gTasks[taskId].func = sub_811196C; + gTasks[taskId].func = AnimTask_NightShadeClone_Step2; } } -static void sub_811196C(u8 taskId) +static void AnimTask_NightShadeClone_Step2(u8 taskId) { u8 spriteId; if (gTasks[taskId].data[1] > 0) @@ -377,7 +380,7 @@ static void sub_811196C(u8 taskId) return; } - spriteId = GetAnimBattlerSpriteId(0); + spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER); gTasks[taskId].data[0] += 8; if (gTasks[taskId].data[0] <= 0xFF) { @@ -397,7 +400,7 @@ static void sub_811196C(u8 taskId) // arg 0: duration step 1 (attacker -> center) // arg 1: duration step 2 (spin center) // arg 2: duration step 3 (center -> target) -static void InitAnimShadowBall(struct Sprite *sprite) +static void AnimShadowBall(struct Sprite *sprite) { s16 oldPosX = sprite->pos1.x; s16 oldPosY = sprite->pos1.y; @@ -412,10 +415,10 @@ static void InitAnimShadowBall(struct Sprite *sprite) sprite->data[5] = sprite->pos1.y << 4; sprite->data[6] = ((oldPosX - sprite->pos1.x) << 4) / (gBattleAnimArgs[0] << 1); sprite->data[7] = ((oldPosY - sprite->pos1.y) << 4) / (gBattleAnimArgs[0] << 1); - sprite->callback = AnimShadowBallStep; + sprite->callback = AnimShadowBall_Step; } -static void AnimShadowBallStep(struct Sprite *sprite) +static void AnimShadowBall_Step(struct Sprite *sprite) { switch (sprite->data[0]) { @@ -459,13 +462,13 @@ static void AnimShadowBallStep(struct Sprite *sprite) } } -static void sub_8111B9C(struct Sprite *sprite) +static void AnimLick(struct Sprite *sprite) { InitSpritePosToAnimTarget(sprite, TRUE); - sprite->callback = sub_8111BB4; + sprite->callback = AnimLick_Step; } -static void sub_8111BB4(struct Sprite *sprite) +static void AnimLick_Step(struct Sprite *sprite) { bool8 r5 = FALSE; bool8 r6 = FALSE; @@ -512,12 +515,13 @@ static void sub_8111BB4(struct Sprite *sprite) } } -void sub_8111C50(u8 taskId) +// Creates a transparent clone of the target which drifts up and away to the side +void AnimTask_NightmareClone(u8 taskId) { struct Task *task; task = &gTasks[taskId]; - task->data[0] = CloneBattlerSpriteWithBlend(1); + task->data[0] = CloneBattlerSpriteWithBlend(ANIM_TARGET); if (task->data[0] < 0) { DestroyAnimVisualTask(taskId); @@ -544,10 +548,10 @@ void sub_8111C50(u8 taskId) gSprites[task->data[0]].data[4] = 0; StoreSpriteCallbackInData6(&gSprites[task->data[0]], SpriteCallbackDummy); gSprites[task->data[0]].callback = TranslateSpriteLinearFixedPoint; - task->func = sub_8111D78; + task->func = AnimTask_NightmareClone_Step; } -static void sub_8111D78(u8 taskId) +static void AnimTask_NightmareClone_Step(u8 taskId) { struct Task *task; @@ -584,17 +588,18 @@ static void sub_8111D78(u8 taskId) } } -void sub_8111E50(u8 taskId) +// Creates a blended copy of the target that wavers in front of them +void AnimTask_SpiteTargetShadow(u8 taskId) { struct Task *task; task = &gTasks[taskId]; task->data[15] = 0; - task->func = sub_8111E78; + task->func = AnimTask_SpiteTargetShadow_Step1; task->func(taskId); } -static void sub_8111E78(u8 taskId) +static void AnimTask_SpiteTargetShadow_Step1(u8 taskId) { s16 startLine; struct Task *task = &gTasks[taskId]; @@ -610,7 +615,7 @@ static void sub_8111E78(u8 taskId) } else { - task->data[0] = CloneBattlerSpriteWithBlend(1); + task->data[0] = CloneBattlerSpriteWithBlend(ANIM_TARGET); if (task->data[0] < 0) { FreeSpritePaletteByTag(ANIM_TAG_BENT_SPOON); @@ -626,7 +631,7 @@ static void sub_8111E78(u8 taskId) task->data[1] = 0; task->data[2] = 0; task->data[3] = 16; - task->data[13] = GetAnimBattlerSpriteId(1); + task->data[13] = GetAnimBattlerSpriteId(ANIM_TARGET); task->data[4] = (gSprites[task->data[13]].oam.paletteNum + 16) * 16; if (position == 1) { u16 mask = DISPCNT_BG1_ON; @@ -674,7 +679,7 @@ static void sub_8111E78(u8 taskId) else SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_BG2_ON); - task->func = sub_81120DC; + task->func = AnimTask_SpiteTargetShadow_Step2; task->data[15]++; break; default: @@ -683,7 +688,7 @@ static void sub_8111E78(u8 taskId) } } -static void sub_81120DC(u8 taskId) +static void AnimTask_SpiteTargetShadow_Step2(u8 taskId) { struct Task *task = &gTasks[taskId]; task->data[1]++; @@ -698,12 +703,12 @@ static void sub_81120DC(u8 taskId) if (task->data[1] == 128) { task->data[15] = 0; - task->func = sub_8112170; + task->func = AnimTask_SpiteTargetShadow_Step3; task->func(taskId); } } -static void sub_8112170(u8 taskId) +static void AnimTask_SpiteTargetShadow_Step3(u8 taskId) { struct Task *task = &gTasks[taskId]; u8 rank = GetBattlerSpriteBGPriorityRank(gBattleAnimTarget); @@ -712,7 +717,7 @@ static void sub_8112170(u8 taskId) { case 0: gScanlineEffect.state = 3; - task->data[14] = GetAnimBattlerSpriteId(1); + task->data[14] = GetAnimBattlerSpriteId(ANIM_TARGET); if (rank == 1) ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_BG1_ON); else @@ -739,7 +744,7 @@ static void sub_8112170(u8 taskId) task->data[15]++; } -static void sub_8112264(struct Sprite *sprite) +static void AnimDestinyBondWhiteShadow(struct Sprite *sprite) { s16 battler1X, battler1Y; s16 battler2X, battler2Y; @@ -772,11 +777,11 @@ static void sub_8112264(struct Sprite *sprite) sprite->oam.priority = 2; sprite->pos1.x = battler1X; sprite->pos1.y = battler1Y; - sprite->callback = sub_8112384; - sprite->invisible = 1; + sprite->callback = AnimDestinyBondWhiteShadow_Step; + sprite->invisible = TRUE; } -static void sub_8112384(struct Sprite *sprite) +static void AnimDestinyBondWhiteShadow_Step(struct Sprite *sprite) { if (sprite->data[4]) { @@ -789,7 +794,7 @@ static void sub_8112384(struct Sprite *sprite) } } -void sub_81123C4(u8 taskId) +void AnimTask_DestinyBondWhiteShadow(u8 taskId) { struct Task *task; s16 battler; @@ -811,13 +816,13 @@ void sub_81123C4(u8 taskId) baseY = GetBattlerSpriteCoordAttr(gBattleAnimAttacker, BATTLER_COORD_ATTR_BOTTOM); if (!IsContest()) { - for (battler = 0; battler < 4; battler++) + for (battler = 0; battler < MAX_BATTLERS_COUNT; battler++) { if (battler != gBattleAnimAttacker && battler != (gBattleAnimAttacker ^ 2) && IsBattlerSpriteVisible(battler)) { - spriteId = CreateSprite(&gUnknown_08596DB8, baseX, baseY, 55); + spriteId = CreateSprite(&gDestinyBondWhiteShadowSpriteTemplate, baseX, baseY, 55); if (spriteId != MAX_SPRITES) { x = GetBattlerSpriteCoord(battler, 2); @@ -829,7 +834,7 @@ void sub_81123C4(u8 taskId) gSprites[spriteId].data[4] = gBattleAnimArgs[1]; gSprites[spriteId].data[5] = x; gSprites[spriteId].data[6] = y; - gSprites[spriteId].callback = sub_8112384; + gSprites[spriteId].callback = AnimDestinyBondWhiteShadow_Step; task->data[task->data[12] + 13] = spriteId; task->data[12]++; @@ -839,7 +844,7 @@ void sub_81123C4(u8 taskId) } else { - spriteId = CreateSprite(&gUnknown_08596DB8, baseX, baseY, 55); + spriteId = CreateSprite(&gDestinyBondWhiteShadowSpriteTemplate, baseX, baseY, 55); if (spriteId != MAX_SPRITES) { x = 48; @@ -851,17 +856,17 @@ void sub_81123C4(u8 taskId) gSprites[spriteId].data[4] = gBattleAnimArgs[1]; gSprites[spriteId].data[5] = x; gSprites[spriteId].data[6] = y; - gSprites[spriteId].callback = sub_8112384; + gSprites[spriteId].callback = AnimDestinyBondWhiteShadow_Step; task->data[13] = spriteId; task->data[12] = 1; } } - task->func = sub_81125E0; + task->func = AnimTask_DestinyBondWhiteShadow_Step; } -static void sub_81125E0(u8 taskId) +static void AnimTask_DestinyBondWhiteShadow_Step(u8 taskId) { u16 i; struct Task *task = &gTasks[taskId]; @@ -938,7 +943,7 @@ static void sub_81125E0(u8 taskId) } } -void sub_8112758(u8 taskId) +void AnimTask_CurseStretchingBlackBg(u8 taskId) { s16 startX, startY; s16 leftDistance, topDistance, bottomDistance, rightDistance; @@ -971,10 +976,10 @@ void sub_8112758(u8 taskId) gTasks[taskId].data[4] = bottomDistance; gTasks[taskId].data[5] = startX; gTasks[taskId].data[6] = startY; - gTasks[taskId].func = sub_811280C; + gTasks[taskId].func = AnimTask_CurseStretchingBlackBg_Step1; } -static void sub_811280C(u8 taskId) +static void AnimTask_CurseStretchingBlackBg_Step1(u8 taskId) { s16 step; s16 leftDistance, rightDistance, topDistance, bottomDistance; @@ -1006,14 +1011,14 @@ static void sub_811280C(u8 taskId) bottom = 112; selectedPalettes = sub_80A75AC(1, 0, 0, 0, 0, 0, 0); BeginNormalPaletteFade(selectedPalettes, 0, 16, 16, RGB(0, 0, 0)); - gTasks[taskId].func = sub_8112994; + gTasks[taskId].func = AnimTask_CurseStretchingBlackBg_Step2; } gBattle_WIN0H = (left << 8) | right; gBattle_WIN0V = (top << 8) | bottom; } -static void sub_8112994(u8 taskId) +static void AnimTask_CurseStretchingBlackBg_Step2(u8 taskId) { if (!gPaletteFade.active) { @@ -1029,7 +1034,7 @@ static void sub_8112994(u8 taskId) } } -static void sub_81129F0(struct Sprite *sprite) +static void AnimCurseNail(struct Sprite *sprite) { s16 xDelta; s16 xDelta2; @@ -1050,10 +1055,10 @@ static void sub_81129F0(struct Sprite *sprite) sprite->pos1.x += xDelta; sprite->data[1] = xDelta2; sprite->data[0] = 60; - sprite->callback = sub_8112A4C; + sprite->callback = AnimCurseNail_Step1; } -static void sub_8112A4C(struct Sprite *sprite) +static void AnimCurseNail_Step1(struct Sprite *sprite) { u16 var0; @@ -1074,7 +1079,7 @@ static void sub_8112A4C(struct Sprite *sprite) { sprite->data[0] = 30; sprite->callback = WaitAnimForDuration; - StoreSpriteCallbackInData6(sprite, sub_8112ACC); + StoreSpriteCallbackInData6(sprite, AnimCurseNail_Step2); } else { @@ -1084,7 +1089,7 @@ static void sub_8112A4C(struct Sprite *sprite) } } -static void sub_8112ACC(struct Sprite *sprite) +static void AnimCurseNail_Step2(struct Sprite *sprite) { if (sprite->data[0] == 0) { @@ -1105,13 +1110,13 @@ static void sub_8112ACC(struct Sprite *sprite) SetGpuReg(REG_OFFSET_BLDALPHA, (16 - sprite->data[2]) | (sprite->data[2] << 8)); if (sprite->data[2] == 16) { - sprite->invisible = 1; - sprite->callback = sub_8112B44; + sprite->invisible = TRUE; + sprite->callback = AnimCurseNail_End; } } } -static void sub_8112B44(struct Sprite *sprite) +static void AnimCurseNail_End(struct Sprite *sprite) { SetGpuReg(REG_OFFSET_BLDCNT, 0); SetGpuReg(REG_OFFSET_BLDALPHA, 0); @@ -1120,7 +1125,7 @@ static void sub_8112B44(struct Sprite *sprite) DestroyAnimSprite(sprite); } -static void sub_8112B78(struct Sprite *sprite) +static void AnimGhostStatusSprite(struct Sprite *sprite) { u16 coeffB; u16 coeffA; @@ -1156,20 +1161,20 @@ static void sub_8112B78(struct Sprite *sprite) sprite->data[6] = BLDALPHA_BLEND(coeffA, coeffB); if (coeffB == 16 && coeffA == 0) { - sprite->invisible = 1; - sprite->callback = sub_8112C4C; + sprite->invisible = TRUE; + sprite->callback = AnimGhostStatusSprite_Step; } } } -static void sub_8112C4C(struct Sprite *sprite) +static void AnimGhostStatusSprite_Step(struct Sprite *sprite) { SetGpuReg(REG_OFFSET_BLDCNT, 0); SetGpuReg(REG_OFFSET_BLDALPHA, 0); DestroyAnimSprite(sprite); } -void sub_8112C6C(u8 taskId) +void AnimTask_GrudgeFlames(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -1186,10 +1191,10 @@ void sub_8112C6C(u8 taskId) SetGpuReg(REG_OFFSET_BLDCNT, (BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_ALL)); SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0, 0x10)); task->data[8] = 0; - task->func = sub_8112D10; + task->func = AnimTask_GrudgeFlames_Step; } -static void sub_8112D10(u8 taskId) +static void AnimTask_GrudgeFlames_Step(u8 taskId) { u16 i; u8 spriteId; @@ -1200,7 +1205,7 @@ static void sub_8112D10(u8 taskId) case 0: for (i = 0; i < 6; i++) { - spriteId = CreateSprite(&gUnknown_08596E30, task->data[9], task->data[10], task->data[6]); + spriteId = CreateSprite(&gGrudgeFlameSpriteTemplate, task->data[9], task->data[10], task->data[6]); if (spriteId != MAX_SPRITES) { gSprites[spriteId].data[0] = taskId; @@ -1274,7 +1279,7 @@ static void sub_8112D10(u8 taskId) } } -static void sub_8112E9C(struct Sprite *sprite) +static void AnimGrudgeFlame(struct Sprite *sprite) { u16 index; @@ -1304,7 +1309,7 @@ static void sub_8112E9C(struct Sprite *sprite) static void sub_8112F60(struct Sprite *sprite) { - sprite->invisible = 1; + sprite->invisible = TRUE; sprite->data[5] = gBattlerSpriteIds[gBattleAnimAttacker]; sprite->data[0] = 128; sprite->data[1] = 10; diff --git a/src/ground.c b/src/battle_anim_ground.c index 36dbd31f3..875ecbd75 100644 --- a/src/ground.c +++ b/src/battle_anim_ground.c @@ -6,72 +6,72 @@ #include "trig.h" #include "constants/rgb.h" -void AnimBonemerangProjectile(struct Sprite *); -void AnimBoneHitProjectile(struct Sprite *); -void AnimDirtScatter(struct Sprite *); -void AnimMudSportDirt(struct Sprite *); -void AnimFissureDirtPlumeParticle(struct Sprite *); -void AnimDigDirtMound(struct Sprite *); -static void AnimBonemerangProjectileStep(struct Sprite *); -static void AnimBonemerangProjectileEnd(struct Sprite *); +static void AnimBonemerangProjectile(struct Sprite *); +static void AnimBoneHitProjectile(struct Sprite *); +static void AnimDirtScatter(struct Sprite *); +static void AnimMudSportDirt(struct Sprite *); +static void AnimDirtPlumeParticle(struct Sprite *); +static void AnimDirtPlumeParticle_Step(struct Sprite *); +static void AnimDigDirtMound(struct Sprite *); +static void AnimBonemerangProjectile_Step(struct Sprite *); +static void AnimBonemerangProjectile_End(struct Sprite *); static void AnimMudSportDirtRising(struct Sprite *); static void AnimMudSportDirtFalling(struct Sprite *); -static void sub_8114CFC(u8); -static void sub_8114EB4(u8); -static void sub_8114F54(u8); -static void sub_8114FD8(u8); +static void AnimTask_DigBounceMovement(u8); +static void AnimTask_DigEndBounceMovementSetInvisible(u8); +static void AnimTask_DigSetVisibleUnderground(u8); +static void AnimTask_DigRiseUpFromHole(u8); static void sub_81150E0(u8, s16, s16); -static void AnimFissureDirtPlumeParticleStep(struct Sprite *); -static void sub_81153AC(u8); -static void sub_81154A4(u8); -static void sub_8115588(struct Task *); +static void AnimTask_ShakeTerrain(u8); +static void AnimTask_ShakeBattlers(u8); +static void SetBattlersXOffsetForShake(struct Task *); static void sub_81156D0(u8); -const union AffineAnimCmd gUnknown_08597150[] = +static const union AffineAnimCmd sAffineAnim_Bonemerang[] = { AFFINEANIMCMD_FRAME(0x0, 0x0, 15, 1), AFFINEANIMCMD_JUMP(0), }; -const union AffineAnimCmd gUnknown_08597160[] = +static const union AffineAnimCmd sAffineAnim_SpinningBone[] = { AFFINEANIMCMD_FRAME(0x0, 0x0, 20, 1), AFFINEANIMCMD_JUMP(0), }; -const union AffineAnimCmd *const gUnknown_08597170[] = +static const union AffineAnimCmd *const sAffineAnims_Bonemerang[] = { - gUnknown_08597150, + sAffineAnim_Bonemerang, }; -const union AffineAnimCmd *const gUnknown_08597174[] = +static const union AffineAnimCmd *const sAffineAnims_SpinningBone[] = { - gUnknown_08597160, + sAffineAnim_SpinningBone, }; -const struct SpriteTemplate gUnknown_08597178 = +const struct SpriteTemplate gBonemerangSpriteTemplate = { .tileTag = ANIM_TAG_BONE, .paletteTag = ANIM_TAG_BONE, .oam = &gOamData_AffineNormal_ObjNormal_32x32, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_08597170, + .affineAnims = sAffineAnims_Bonemerang, .callback = AnimBonemerangProjectile, }; -const struct SpriteTemplate gUnknown_08597190 = +const struct SpriteTemplate gSpinningBoneSpriteTemplate = { .tileTag = ANIM_TAG_BONE, .paletteTag = ANIM_TAG_BONE, .oam = &gOamData_AffineNormal_ObjNormal_32x32, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_08597174, + .affineAnims = sAffineAnims_SpinningBone, .callback = AnimBoneHitProjectile, }; -const struct SpriteTemplate gUnknown_085971A8 = +const struct SpriteTemplate gSandAttackDirtSpriteTemplate = { .tileTag = ANIM_TAG_MUD_SAND, .paletteTag = ANIM_TAG_MUD_SAND, @@ -82,29 +82,29 @@ const struct SpriteTemplate gUnknown_085971A8 = .callback = AnimDirtScatter, }; -const union AnimCmd gUnknown_085971C0[] = +static const union AnimCmd sAnim_MudSlapMud[] = { ANIMCMD_FRAME(1, 1), ANIMCMD_END, }; -const union AnimCmd *const gUnknown_085971C8[] = +static const union AnimCmd *const sAnims_MudSlapMud[] = { - gUnknown_085971C0, + sAnim_MudSlapMud, }; -const struct SpriteTemplate gUnknown_085971CC = +const struct SpriteTemplate gMudSlapMudSpriteTemplate = { .tileTag = ANIM_TAG_MUD_SAND, .paletteTag = ANIM_TAG_MUD_SAND, .oam = &gOamData_AffineOff_ObjNormal_16x16, - .anims = gUnknown_085971C8, + .anims = sAnims_MudSlapMud, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimDirtScatter, }; -const struct SpriteTemplate gUnknown_085971E4 = +const struct SpriteTemplate gMudsportMudSpriteTemplate = { .tileTag = ANIM_TAG_MUD_SAND, .paletteTag = ANIM_TAG_MUD_SAND, @@ -115,7 +115,7 @@ const struct SpriteTemplate gUnknown_085971E4 = .callback = AnimMudSportDirt, }; -const struct SpriteTemplate gUnknown_085971FC = +const struct SpriteTemplate gDirtPlumeSpriteTemplate = { .tileTag = ANIM_TAG_MUD_SAND, .paletteTag = ANIM_TAG_MUD_SAND, @@ -123,10 +123,10 @@ const struct SpriteTemplate gUnknown_085971FC = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = AnimFissureDirtPlumeParticle, + .callback = AnimDirtPlumeParticle, }; -const struct SpriteTemplate gUnknown_08597214 = +const struct SpriteTemplate gDirtMoundSpriteTemplate = { .tileTag = ANIM_TAG_DIRT_MOUND, .paletteTag = ANIM_TAG_DIRT_MOUND, @@ -139,7 +139,7 @@ const struct SpriteTemplate gUnknown_08597214 = // Moves a bone projectile towards the target mon, which moves like // a boomerang. After hitting the target mon, it comes back to the user. -void AnimBonemerangProjectile(struct Sprite *sprite) +static void AnimBonemerangProjectile(struct Sprite *sprite) { sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); @@ -148,10 +148,10 @@ void AnimBonemerangProjectile(struct Sprite *sprite) sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3); sprite->data[5] = -40; InitAnimArcTranslation(sprite); - sprite->callback = AnimBonemerangProjectileStep; + sprite->callback = AnimBonemerangProjectile_Step; } -static void AnimBonemerangProjectileStep(struct Sprite *sprite) +static void AnimBonemerangProjectile_Step(struct Sprite *sprite) { if (TranslateAnimHorizontalArc(sprite)) { @@ -164,11 +164,11 @@ static void AnimBonemerangProjectileStep(struct Sprite *sprite) sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); sprite->data[5] = 40; InitAnimArcTranslation(sprite); - sprite->callback = AnimBonemerangProjectileEnd; + sprite->callback = AnimBonemerangProjectile_End; } } -static void AnimBonemerangProjectileEnd(struct Sprite *sprite) +static void AnimBonemerangProjectile_End(struct Sprite *sprite) { if (TranslateAnimHorizontalArc(sprite)) DestroyAnimSprite(sprite); @@ -181,7 +181,7 @@ static void AnimBonemerangProjectileEnd(struct Sprite *sprite) // arg 2: target x pixel offset // arg 3: target y pixel offset // arg 4: duration -void AnimBoneHitProjectile(struct Sprite *sprite) +static void AnimBoneHitProjectile(struct Sprite *sprite) { InitSpritePosToAnimTarget(sprite, TRUE); if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) @@ -200,7 +200,7 @@ void AnimBoneHitProjectile(struct Sprite *sprite) // arg 2: duration // arg 3: target x pixel offset // arg 4: target y pixel offset -void AnimDirtScatter(struct Sprite *sprite) +static void AnimDirtScatter(struct Sprite *sprite) { u8 targetXPos, targetYPos; s16 xOffset, yOffset; @@ -229,7 +229,7 @@ void AnimDirtScatter(struct Sprite *sprite) // arg 0: 0 = dirt is rising into the air, 1 = dirt is falling down // arg 1: initial x pixel offset // arg 2: initial y pixel offset -void AnimMudSportDirt(struct Sprite *sprite) +static void AnimMudSportDirt(struct Sprite *sprite) { sprite->oam.tileNum++; if (gBattleAnimArgs[0] == 0) @@ -285,19 +285,19 @@ static void AnimMudSportDirtFalling(struct Sprite *sprite) } } -void sub_8114CBC(u8 taskId) +void AnimTask_DigDownMovement(u8 taskId) { struct Task *task = &gTasks[taskId]; - if (gBattleAnimArgs[0] == 0) - task->func = sub_8114CFC; + if (gBattleAnimArgs[0] == FALSE) + task->func = AnimTask_DigBounceMovement; else - task->func = sub_8114EB4; + task->func = AnimTask_DigEndBounceMovementSetInvisible; task->func(taskId); } -static void sub_8114CFC(u8 taskId) +static void AnimTask_DigBounceMovement(u8 taskId) { u8 var0; struct Task *task = &gTasks[taskId]; @@ -305,7 +305,7 @@ static void sub_8114CFC(u8 taskId) switch (task->data[0]) { case 0: - task->data[10] = GetAnimBattlerSpriteId(0); + task->data[10] = GetAnimBattlerSpriteId(ANIM_ATTACKER); task->data[11] = GetBattlerSpriteBGPriorityRank(gBattleAnimAttacker); if (task->data[11] == 1) { @@ -324,7 +324,7 @@ static void sub_8114CFC(u8 taskId) if (task->data[14] < 0) task->data[14] = 0; - gSprites[task->data[10]].invisible = 1; + gSprites[task->data[10]].invisible = TRUE; task->data[0]++; break; case 1: @@ -363,15 +363,15 @@ static void sub_8114CFC(u8 taskId) break; case 4: DestroyAnimVisualTask(taskId); - gSprites[task->data[10]].invisible = 1; + gSprites[task->data[10]].invisible = TRUE; break; } } -static void sub_8114EB4(u8 taskId) +static void AnimTask_DigEndBounceMovementSetInvisible(u8 taskId) { - u8 spriteId = GetAnimBattlerSpriteId(0); - gSprites[spriteId].invisible = 1; + u8 spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER); + gSprites[spriteId].invisible = TRUE; gSprites[spriteId].pos2.x = 0; gSprites[spriteId].pos2.y = 0; @@ -383,27 +383,27 @@ static void sub_8114EB4(u8 taskId) DestroyAnimVisualTask(taskId); } -void sub_8114F14(u8 taskId) +void AnimTask_DigUpMovement(u8 taskId) { struct Task *task = &gTasks[taskId]; - if (gBattleAnimArgs[0] == 0) - task->func = sub_8114F54; + if (gBattleAnimArgs[0] == FALSE) + task->func = AnimTask_DigSetVisibleUnderground; else - task->func = sub_8114FD8; + task->func = AnimTask_DigRiseUpFromHole; task->func(taskId); } -static void sub_8114F54(u8 taskId) +static void AnimTask_DigSetVisibleUnderground(u8 taskId) { struct Task *task = &gTasks[taskId]; switch (task->data[0]) { case 0: - task->data[10] = GetAnimBattlerSpriteId(0); - gSprites[task->data[10]].invisible = 0; + task->data[10] = GetAnimBattlerSpriteId(ANIM_ATTACKER); + gSprites[task->data[10]].invisible = FALSE; gSprites[task->data[10]].pos2.x = 0; gSprites[task->data[10]].pos2.y = 160 - gSprites[task->data[10]].pos1.y; task->data[0]++; @@ -413,7 +413,7 @@ static void sub_8114F54(u8 taskId) } } -static void sub_8114FD8(u8 taskId) +static void AnimTask_DigRiseUpFromHole(u8 taskId) { u8 var0; struct Task *task = &gTasks[taskId]; @@ -421,7 +421,7 @@ static void sub_8114FD8(u8 taskId) switch (task->data[0]) { case 0: - task->data[10] = GetAnimBattlerSpriteId(0); + task->data[10] = GetAnimBattlerSpriteId(ANIM_ATTACKER); task->data[11] = GetBattlerSpriteBGPriorityRank(gBattleAnimAttacker); if (task->data[11] == 1) task->data[12] = gBattle_BG1_X; @@ -501,7 +501,7 @@ static void sub_81150E0(u8 useBG1, s16 y, s16 endY) // arg 3: target y offset // arg 4: wave amplitude // arg 5: duration -void AnimFissureDirtPlumeParticle(struct Sprite *sprite) +void AnimDirtPlumeParticle(struct Sprite *sprite) { s8 battler; s16 xOffset; @@ -525,10 +525,10 @@ void AnimFissureDirtPlumeParticle(struct Sprite *sprite) sprite->data[4] = sprite->pos1.y + gBattleAnimArgs[3]; sprite->data[5] = gBattleAnimArgs[4]; InitAnimArcTranslation(sprite); - sprite->callback = AnimFissureDirtPlumeParticleStep; + sprite->callback = AnimDirtPlumeParticle_Step; } -static void AnimFissureDirtPlumeParticleStep(struct Sprite *sprite) +static void AnimDirtPlumeParticle_Step(struct Sprite *sprite) { if (TranslateAnimHorizontalArc(sprite)) DestroyAnimSprite(sprite); @@ -540,7 +540,7 @@ static void AnimFissureDirtPlumeParticleStep(struct Sprite *sprite) // arg 0: which mon (0 = attacker, 1 = target) // arg 1: oam tile num (0 = left half of image, 1 = right half of image) // arg 2: duration -void AnimDigDirtMound(struct Sprite *sprite) +static void AnimDigDirtMound(struct Sprite *sprite) { s8 battler; @@ -557,168 +557,192 @@ void AnimDigDirtMound(struct Sprite *sprite) sprite->callback = WaitAnimForDuration; } -void sub_81152DC(u8 taskId) + +#define tState data[0] +#define tDelay data[1] +#define tTimer data[2] +#define tMaxTime data[3] +#define tbattlerSpriteIds(i) data[9 + (i)] +#define tNumBattlers data[13] // AnimTask_ShakeBattlers +#define tInitialX data[13] // AnimTask_ShakeTerrain +#define tHorizOffset data[14] +#define tInitHorizOffset data[15] + +// Shakes battler(s) or the battle terrain back and forth horizontally. Used by e.g. Earthquake, Eruption +// arg0: What to shake. 0-3 for any specific battler, MAX_BATTLERS_COUNT for all battlers, MAX_BATTLERS_COUNT + 1 for the terrain +// arg1: Shake intensity, used to calculate horizontal pixel offset (if 0, use move power instead) +// arg2: Length of time to shake for +void AnimTask_HorizontalShake(u8 taskId) { u16 i; struct Task *task = &gTasks[taskId]; - if (gBattleAnimArgs[1]) - task->data[14] = task->data[15] = gBattleAnimArgs[1] + 3; + if (gBattleAnimArgs[1] != 0) + task->tHorizOffset = task->tInitHorizOffset = gBattleAnimArgs[1] + 3; else - task->data[14] = task->data[15] = (gAnimMovePower / 10) + 3; + task->tHorizOffset = task->tInitHorizOffset = (gAnimMovePower / 10) + 3; - task->data[3] = gBattleAnimArgs[2]; + task->tMaxTime = gBattleAnimArgs[2]; switch (gBattleAnimArgs[0]) { - case 5: - task->data[13] = gBattle_BG3_X; - task->func = sub_81153AC; + case MAX_BATTLERS_COUNT + 1: // Shake terrain + task->tInitialX = gBattle_BG3_X; + task->func = AnimTask_ShakeTerrain; break; - case 4: - task->data[13] = 0; + case MAX_BATTLERS_COUNT: // Shake all battlers + task->tNumBattlers = 0; for (i = 0; i < MAX_BATTLERS_COUNT; i++) { if (IsBattlerSpriteVisible(i)) { - task->data[task->data[13] + 9] = gBattlerSpriteIds[i]; - task->data[13]++; + task->tbattlerSpriteIds(task->tNumBattlers) = gBattlerSpriteIds[i]; + task->tNumBattlers++; } } - task->func = sub_81154A4; + task->func = AnimTask_ShakeBattlers; break; - default: - task->data[9] = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); - if (task->data[9] == 0xFF) + default: // Shake specific battler + task->tbattlerSpriteIds(0) = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); + if (task->tbattlerSpriteIds(0) == 0xFF) { DestroyAnimVisualTask(taskId); } else { - task->data[13] = 1; - task->func = sub_81154A4; + task->tNumBattlers = 1; + task->func = AnimTask_ShakeBattlers; } - break; } } -static void sub_81153AC(u8 taskId) +static void AnimTask_ShakeTerrain(u8 taskId) { struct Task *task = &gTasks[taskId]; - switch (task->data[0]) + switch (task->tState) { case 0: - if (++task->data[1] > 1) + if (++task->tDelay > 1) { - task->data[1] = 0; - if ((task->data[2] & 1) == 0) - gBattle_BG3_X = task->data[13] + task->data[15]; + task->tDelay = 0; + if ((task->tTimer & 1) == 0) + gBattle_BG3_X = task->tInitialX + task->tInitHorizOffset; else - gBattle_BG3_X = task->data[13] - task->data[15]; + gBattle_BG3_X = task->tInitialX - task->tInitHorizOffset; - if (++task->data[2] == task->data[3]) + if (++task->tTimer == task->tMaxTime) { - task->data[2] = 0; - task->data[14]--; - task->data[0]++; + task->tTimer = 0; + task->tHorizOffset--; + task->tState++; } } break; case 1: - if (++task->data[1] > 1) + if (++task->tDelay > 1) { - task->data[1] = 0; - if ((task->data[2] & 1) == 0) - gBattle_BG3_X = task->data[13] + task->data[14]; + task->tDelay = 0; + if ((task->tTimer & 1) == 0) + gBattle_BG3_X = task->tInitialX + task->tHorizOffset; else - gBattle_BG3_X = task->data[13] - task->data[14]; + gBattle_BG3_X = task->tInitialX - task->tHorizOffset; - if (++task->data[2] == 4) + if (++task->tTimer == 4) { - task->data[2] = 0; - if (--task->data[14] == 0) - task->data[0]++; + task->tTimer = 0; + if (--task->tHorizOffset == 0) + task->tState++; } } break; case 2: - gBattle_BG3_X = task->data[13]; + gBattle_BG3_X = task->tInitialX; DestroyAnimVisualTask(taskId); break; } } -static void sub_81154A4(u8 taskId) +static void AnimTask_ShakeBattlers(u8 taskId) { u16 i; struct Task *task = &gTasks[taskId]; - switch (task->data[0]) + switch (task->tState) { case 0: - if (++task->data[1] > 1) + if (++task->tDelay > 1) { - task->data[1] = 0; - sub_8115588(task); - if (++task->data[2] == task->data[3]) + task->tDelay = 0; + SetBattlersXOffsetForShake(task); + if (++task->tTimer == task->tMaxTime) { - task->data[2] = 0; - task->data[14]--; - task->data[0]++; + task->tTimer = 0; + task->tHorizOffset--; + task->tState++; } } break; case 1: - if (++task->data[1] > 1) + if (++task->tDelay > 1) { - task->data[1] = 0; - sub_8115588(task); - if (++task->data[2] == 4) + task->tDelay = 0; + SetBattlersXOffsetForShake(task); + if (++task->tTimer == 4) { - task->data[2] = 0; - if (--task->data[14] == 0) - task->data[0]++; + task->tTimer = 0; + if (--task->tHorizOffset == 0) + task->tState++; } } break; case 2: - for (i = 0; i < task->data[13]; i++) - gSprites[task->data[9 + i]].pos2.x = 0; + for (i = 0; i < task->tNumBattlers; i++) + gSprites[task->tbattlerSpriteIds(i)].pos2.x = 0; DestroyAnimVisualTask(taskId); break; } } -static void sub_8115588(struct Task *task) +static void SetBattlersXOffsetForShake(struct Task *task) { u16 i; u16 xOffset; - if ((task->data[2] & 1) == 0) - xOffset = (task->data[14] / 2) + (task->data[14] & 1); + if ((task->tTimer & 1) == 0) + xOffset = (task->tHorizOffset / 2) + (task->tHorizOffset & 1); else - xOffset = -(task->data[14] / 2); + xOffset = -(task->tHorizOffset / 2); - for (i = 0; i < task->data[13]; i++) + for (i = 0; i < task->tNumBattlers; i++) { - gSprites[task->data[9 + i]].pos2.x = xOffset; + gSprites[task->tbattlerSpriteIds(i)].pos2.x = xOffset; } } +#undef tState +#undef tDelay +#undef tTimer +#undef tMaxTime +#undef tbattlerSpriteIds +#undef tNumBattlers +#undef tInitialX +#undef tHorizOffset +#undef tInitHorizOffset + void AnimTask_IsPowerOver99(u8 taskId) { gBattleAnimArgs[15] = gAnimMovePower > 99; DestroyAnimVisualTask(taskId); } -void sub_8115628(u8 taskId) +void AnimTask_PositionFissureBgOnBattler(u8 taskId) { struct Task *newTask; - u8 battler = (gBattleAnimArgs[0] & 1) ? gBattleAnimTarget : gBattleAnimAttacker; + u8 battler = (gBattleAnimArgs[0] & ANIM_TARGET) ? gBattleAnimTarget : gBattleAnimAttacker; - if (gBattleAnimArgs[0] > 1) + if (gBattleAnimArgs[0] > ANIM_TARGET) battler ^= 2; newTask = &gTasks[CreateTask(sub_81156D0, gBattleAnimArgs[1])]; diff --git a/src/ice.c b/src/battle_anim_ice.c index cc8b1d333..24ddf3b32 100644 --- a/src/ice.c +++ b/src/battle_anim_ice.c @@ -14,54 +14,54 @@ #include "constants/rgb.h" struct HailStruct { - s32 unk0:10; - s32 unk1:10; - s32 unk2:8; + s32 x:10; + s32 y:10; + s32 bPosition:8; s32 unk3:4; }; static void sub_810B6C4(struct Sprite *); -void sub_810B848(struct Sprite *); -void AnimIcePunchSwirlingParticle(struct Sprite *); -void AnimIceBeamParticle(struct Sprite *); -void AnimIceEffectParticle(struct Sprite *); -void AnimFlickerIceEffectParticle(struct Sprite *); -void AnimSwirlingSnowball_Step1(struct Sprite *); -void AnimSwirlingSnowball_Step2(struct Sprite *); -void AnimSwirlingSnowball_Step3(struct Sprite *); -void AnimSwirlingSnowball_End(struct Sprite *); -void AnimMoveParticleBeyondTarget(struct Sprite *); -void AnimWiggleParticleTowardsTarget(struct Sprite *); -void AnimWaveFromCenterOfTarget(struct Sprite *); -void InitSwirlingFogAnim(struct Sprite *); -void AnimSwirlingFogAnim(struct Sprite *); -void AnimThrowMistBall(struct Sprite *); -void InitPoisonGasCloudAnim(struct Sprite *); -void MovePoisonGasCloud(struct Sprite *); -void AnimHailBegin(struct Sprite *); -void AnimHailContinue(struct Sprite *); -void InitIceBallAnim(struct Sprite *); -void AnimThrowIceBall(struct Sprite *); -void InitIceBallParticle(struct Sprite *); -void AnimIceBallParticle(struct Sprite *); -void AnimTask_Haze2(u8); -void AnimTask_OverlayFogTiles(u8); -void AnimTask_Hail2(u8); -bool8 GenerateHailParticle(u8 hailStructId, u8 affineAnimNum, u8 taskId, u8 c); - -const union AnimCmd gUnknown_08595A48[] = +static void sub_810B848(struct Sprite *); +static void AnimIcePunchSwirlingParticle(struct Sprite *); +static void AnimIceBeamParticle(struct Sprite *); +static void AnimIceEffectParticle(struct Sprite *); +static void AnimFlickerIceEffectParticle(struct Sprite *); +static void AnimSwirlingSnowball(struct Sprite *); +static void AnimSwirlingSnowball_Step1(struct Sprite *); +static void AnimSwirlingSnowball_Step2(struct Sprite *); +static void AnimSwirlingSnowball_End(struct Sprite *); +static void AnimMoveParticleBeyondTarget(struct Sprite *); +static void AnimWiggleParticleTowardsTarget(struct Sprite *); +static void AnimWaveFromCenterOfTarget(struct Sprite *); +static void InitSwirlingFogAnim(struct Sprite *); +static void AnimSwirlingFogAnim(struct Sprite *); +static void AnimThrowMistBall(struct Sprite *); +static void InitPoisonGasCloudAnim(struct Sprite *); +static void MovePoisonGasCloud(struct Sprite *); +static void AnimHailBegin(struct Sprite *); +static void AnimHailContinue(struct Sprite *); +static void InitIceBallAnim(struct Sprite *); +static void AnimThrowIceBall(struct Sprite *); +static void InitIceBallParticle(struct Sprite *); +static void AnimIceBallParticle(struct Sprite *); +static void AnimTask_Haze2(u8); +static void AnimTask_OverlayFogTiles(u8); +static void AnimTask_Hail2(u8); +static bool8 GenerateHailParticle(u8 hailStructId, u8 affineAnimNum, u8 taskId, u8 c); + +static const union AnimCmd gUnknown_08595A48[] = { ANIMCMD_FRAME(0, 5, .hFlip = TRUE), ANIMCMD_FRAME(1, 5, .hFlip = TRUE), ANIMCMD_JUMP(0), }; -const union AnimCmd *const gUnknown_08595A54[] = +static const union AnimCmd *const gUnknown_08595A54[] = { gUnknown_08595A48, }; -// unknown sprite template +// Unused const struct SpriteTemplate gUnknown_08595A58 = { .tileTag = ANIM_TAG_ICE_CRYSTALS, @@ -73,140 +73,141 @@ const struct SpriteTemplate gUnknown_08595A58 = .callback = sub_810B6C4, }; -const union AnimCmd gUnknown_08595A70[] = +static const union AnimCmd gUnknown_08595A70[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_08595A78[] = +static const union AnimCmd sAnim_IceCrystalLarge[] = { ANIMCMD_FRAME(4, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_08595A80[] = +static const union AnimCmd sAnim_IceCrystalSmall[] = { ANIMCMD_FRAME(6, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_08595A88[] = +static const union AnimCmd sAnim_Snowball[] = { ANIMCMD_FRAME(7, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_08595A90[] = +static const union AnimCmd sAnim_BlizzardIceCrystal[] = { ANIMCMD_FRAME(8, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_08595A98[] = +static const union AnimCmd sAnim_SmallBubblePair[] = { ANIMCMD_FRAME(12, 6), ANIMCMD_FRAME(13, 6), ANIMCMD_JUMP(0), }; -const union AnimCmd *const gUnknown_08595AA4[] = +// Unused +static const union AnimCmd *const gUnknown_08595AA4[] = { gUnknown_08595A70, }; -const union AnimCmd *const gUnknown_08595AA8[] = +static const union AnimCmd *const sAnims_IceCrystalLarge[] = { - gUnknown_08595A78, + sAnim_IceCrystalLarge, }; -const union AnimCmd *const gUnknown_08595AAC[] = +static const union AnimCmd *const sAnims_IceCrystalSmall[] = { - gUnknown_08595A80, + sAnim_IceCrystalSmall, }; -const union AnimCmd *const gUnknown_08595AB0[] = +static const union AnimCmd *const sAnims_Snowball[] = { - gUnknown_08595A88, + sAnim_Snowball, }; -const union AnimCmd *const gUnknown_08595AB4[] = +static const union AnimCmd *const sAnims_BlizzardIceCrystal[] = { - gUnknown_08595A90, + sAnim_BlizzardIceCrystal, }; -const union AnimCmd *const gUnknown_08595AB8[] = +const union AnimCmd *const gAnims_SmallBubblePair[] = { - gUnknown_08595A98, + sAnim_SmallBubblePair, }; -const union AffineAnimCmd gUnknown_08595ABC[] = +static const union AffineAnimCmd sAffineAnim_IceCrystalSpiralInwardLarge[] = { AFFINEANIMCMD_FRAME(0x0, 0x0, 40, 1), AFFINEANIMCMD_JUMP(0), }; -const union AffineAnimCmd *const gUnknown_08595ACC[] = +static const union AffineAnimCmd *const sAffineAnims_IceCrystalSpiralInwardLarge[] = { - gUnknown_08595ABC, + sAffineAnim_IceCrystalSpiralInwardLarge, }; -const struct SpriteTemplate gUnknown_08595AD0 = +const struct SpriteTemplate gIceCrystalSpiralInwardLarge = { .tileTag = ANIM_TAG_ICE_CRYSTALS, .paletteTag = ANIM_TAG_ICE_CRYSTALS, .oam = &gOamData_AffineDouble_ObjBlend_8x16, - .anims = gUnknown_08595AA8, + .anims = sAnims_IceCrystalLarge, .images = NULL, - .affineAnims = gUnknown_08595ACC, + .affineAnims = sAffineAnims_IceCrystalSpiralInwardLarge, .callback = AnimIcePunchSwirlingParticle, }; -const struct SpriteTemplate gUnknown_08595AE8 = +const struct SpriteTemplate gIceCrystalSpiralInwardSmall = { .tileTag = ANIM_TAG_ICE_CRYSTALS, .paletteTag = ANIM_TAG_ICE_CRYSTALS, .oam = &gOamData_AffineOff_ObjBlend_8x8, - .anims = gUnknown_08595AAC, + .anims = sAnims_IceCrystalSmall, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimIcePunchSwirlingParticle, }; -const union AffineAnimCmd gUnknown_08595B00[] = +static const union AffineAnimCmd sAffineAnim_IceBeamInnerCrystal[] = { AFFINEANIMCMD_FRAME(0x0, 0x0, 10, 1), AFFINEANIMCMD_JUMP(0), }; -const union AffineAnimCmd *const gUnknown_08595B10[] = +static const union AffineAnimCmd *const sAffineAnims_IceBeamInnerCrystal[] = { - gUnknown_08595B00, + sAffineAnim_IceBeamInnerCrystal, }; -const struct SpriteTemplate gUnknown_08595B14 = +const struct SpriteTemplate gIceBeamInnerCrystalSpriteTemplate = { .tileTag = ANIM_TAG_ICE_CRYSTALS, .paletteTag = ANIM_TAG_ICE_CRYSTALS, .oam = &gOamData_AffineNormal_ObjBlend_8x16, - .anims = gUnknown_08595AA8, + .anims = sAnims_IceCrystalLarge, .images = NULL, - .affineAnims = gUnknown_08595B10, + .affineAnims = sAffineAnims_IceBeamInnerCrystal, .callback = AnimIceBeamParticle, }; -const struct SpriteTemplate gUnknown_08595B2C = +const struct SpriteTemplate gIceBeamOuterCrystalSpriteTemplate = { .tileTag = ANIM_TAG_ICE_CRYSTALS, .paletteTag = ANIM_TAG_ICE_CRYSTALS, .oam = &gOamData_AffineOff_ObjBlend_8x8, - .anims = gUnknown_08595AAC, + .anims = sAnims_IceCrystalSmall, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimIceBeamParticle, }; -const union AffineAnimCmd gUnknown_08595B44[] = +static const union AffineAnimCmd sAffineAnim_IceCrystalHit[] = { AFFINEANIMCMD_FRAME(0xCE, 0xCE, 0, 0), AFFINEANIMCMD_FRAME(0x5, 0x5, 0, 10), @@ -214,67 +215,67 @@ const union AffineAnimCmd gUnknown_08595B44[] = AFFINEANIMCMD_END, }; -const union AffineAnimCmd *const gUnknown_08595B64[] = +static const union AffineAnimCmd *const sAffineAnims_IceCrystalHit[] = { - gUnknown_08595B44, + sAffineAnim_IceCrystalHit, }; -const struct SpriteTemplate gUnknown_08595B68 = +const struct SpriteTemplate gIceCrystalHitLargeSpriteTemplate = { .tileTag = ANIM_TAG_ICE_CRYSTALS, .paletteTag = ANIM_TAG_ICE_CRYSTALS, .oam = &gOamData_AffineNormal_ObjBlend_8x16, - .anims = gUnknown_08595AA8, + .anims = sAnims_IceCrystalLarge, .images = NULL, - .affineAnims = gUnknown_08595B64, + .affineAnims = sAffineAnims_IceCrystalHit, .callback = AnimIceEffectParticle, }; -const struct SpriteTemplate gUnknown_08595B80 = +const struct SpriteTemplate gIceCrystalHitSmallSpriteTemplate = { .tileTag = ANIM_TAG_ICE_CRYSTALS, .paletteTag = ANIM_TAG_ICE_CRYSTALS, .oam = &gOamData_AffineNormal_ObjBlend_8x8, - .anims = gUnknown_08595AAC, + .anims = sAnims_IceCrystalSmall, .images = NULL, - .affineAnims = gUnknown_08595B64, + .affineAnims = sAffineAnims_IceCrystalHit, .callback = AnimIceEffectParticle, }; -const struct SpriteTemplate gUnknown_08595B98 = +const struct SpriteTemplate gSwirlingSnowballSpriteTemplate = { .tileTag = ANIM_TAG_ICE_CRYSTALS, .paletteTag = ANIM_TAG_ICE_CRYSTALS, .oam = &gOamData_AffineOff_ObjNormal_8x8, - .anims = gUnknown_08595AB0, + .anims = sAnims_Snowball, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = AnimSwirlingSnowball_Step1, + .callback = AnimSwirlingSnowball, }; -const struct SpriteTemplate gUnknown_08595BB0 = +const struct SpriteTemplate gBlizzardIceCrystalSpriteTemplate = { .tileTag = ANIM_TAG_ICE_CRYSTALS, .paletteTag = ANIM_TAG_ICE_CRYSTALS, .oam = &gOamData_AffineOff_ObjNormal_16x16, - .anims = gUnknown_08595AB4, + .anims = sAnims_BlizzardIceCrystal, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimMoveParticleBeyondTarget, }; -const struct SpriteTemplate gUnknown_08595BC8 = +const struct SpriteTemplate gPowderSnowSnowballSpriteTemplate = { .tileTag = ANIM_TAG_ICE_CRYSTALS, .paletteTag = ANIM_TAG_ICE_CRYSTALS, .oam = &gOamData_AffineOff_ObjNormal_8x8, - .anims = gUnknown_08595AB0, + .anims = sAnims_Snowball, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimMoveParticleBeyondTarget, }; -const union AnimCmd gUnknown_08595BE0[] = +static const union AnimCmd sAnim_IceGroundSpike[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_FRAME(2, 5), @@ -286,62 +287,62 @@ const union AnimCmd gUnknown_08595BE0[] = ANIMCMD_END, }; -const union AnimCmd *const gUnknown_08595C00[] = +static const union AnimCmd *const sAnims_IceGroundSpike[] = { - gUnknown_08595BE0, + sAnim_IceGroundSpike, }; -const struct SpriteTemplate gUnknown_08595C04 = +const struct SpriteTemplate gIceGroundSpikeSpriteTemplate = { .tileTag = ANIM_TAG_ICE_SPIKES, .paletteTag = ANIM_TAG_ICE_SPIKES, .oam = &gOamData_AffineOff_ObjBlend_8x16, - .anims = gUnknown_08595C00, + .anims = sAnims_IceGroundSpike, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimWaveFromCenterOfTarget, }; -const union AnimCmd gUnknown_08595C1C[] = +static const union AnimCmd sAnim_Cloud[] = { ANIMCMD_FRAME(0, 8), ANIMCMD_FRAME(8, 8), ANIMCMD_JUMP(0), }; -const union AnimCmd *const gUnknown_08595C28[] = +static const union AnimCmd *const sAnims_Cloud[] = { - gUnknown_08595C1C, + sAnim_Cloud, }; -const struct SpriteTemplate gUnknown_08595C2C = +const struct SpriteTemplate gMistCloudSpriteTemplate = { .tileTag = ANIM_TAG_MIST_CLOUD, .paletteTag = ANIM_TAG_MIST_CLOUD, .oam = &gOamData_AffineOff_ObjBlend_32x16, - .anims = gUnknown_08595C28, + .anims = sAnims_Cloud, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = InitSwirlingFogAnim, }; -const struct SpriteTemplate gUnknown_08595C44 = +const struct SpriteTemplate gSmogCloudSpriteTemplate = { .tileTag = ANIM_TAG_PURPLE_GAS_CLOUD, .paletteTag = ANIM_TAG_PURPLE_GAS_CLOUD, .oam = &gOamData_AffineOff_ObjBlend_32x16, - .anims = gUnknown_08595C28, + .anims = sAnims_Cloud, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = InitSwirlingFogAnim, }; -const u8 gUnknown_08595C5C[] = +static const u8 sUnknown_08595C5C[] = { 0, 1, 2, 2, 2, 2, 3, 4, 4, 4, 5, 6, 6, 6, 6, 7, 8, 8, 8, 9, }; -const struct SpriteTemplate gUnknown_08595C70 = +const struct SpriteTemplate gMistBallSpriteTemplate = { .tileTag = ANIM_TAG_SMALL_BUBBLES, .paletteTag = ANIM_TAG_SMALL_BUBBLES, @@ -352,101 +353,101 @@ const struct SpriteTemplate gUnknown_08595C70 = .callback = AnimThrowMistBall, }; -const u8 gUnknown_08595C88[] = +static const u8 sUnknown_08595C88[] = { 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 5, }; -const struct SpriteTemplate gUnknown_08595C9C = +const struct SpriteTemplate gPoisonGasCloudSpriteTemplate = { .tileTag = ANIM_TAG_PURPLE_GAS_CLOUD, .paletteTag = ANIM_TAG_PURPLE_GAS_CLOUD, .oam = &gOamData_AffineOff_ObjBlend_32x16, - .anims = gUnknown_08595C28, + .anims = sAnims_Cloud, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = InitPoisonGasCloudAnim, }; -const struct HailStruct gUnknown_08595CB4[] = -{ - {100, 120, 0, 2}, - {85, 120, 0, 0}, - {242, 120, 1, 1}, - {66, 120, 2, 1}, - {182, 120, 3, 0}, - {60, 120, 0, 2}, - {214, 120, 1, 0}, - {113, 120, 0, 1}, - {210, 120, 3, 1}, - {38, 120, 2, 0}, +static const struct HailStruct sHailCoordData[] = +{ + {.x = 100, .y = 120, .bPosition = B_POSITION_PLAYER_LEFT, .unk3 = 2}, + {.x = 85, .y = 120, .bPosition = B_POSITION_PLAYER_LEFT, .unk3 = 0}, + {.x = 242, .y = 120, .bPosition = B_POSITION_OPPONENT_LEFT, .unk3 = 1}, + {.x = 66, .y = 120, .bPosition = B_POSITION_PLAYER_RIGHT, .unk3 = 1}, + {.x = 182, .y = 120, .bPosition = B_POSITION_OPPONENT_RIGHT, .unk3 = 0}, + {.x = 60, .y = 120, .bPosition = B_POSITION_PLAYER_LEFT, .unk3 = 2}, + {.x = 214, .y = 120, .bPosition = B_POSITION_OPPONENT_LEFT, .unk3 = 0}, + {.x = 113, .y = 120, .bPosition = B_POSITION_PLAYER_LEFT, .unk3 = 1}, + {.x = 210, .y = 120, .bPosition = B_POSITION_OPPONENT_RIGHT, .unk3 = 1}, + {.x = 38, .y = 120, .bPosition = B_POSITION_PLAYER_RIGHT, .unk3 = 0}, }; -const union AffineAnimCmd gUnknown_08595CDC[] = +static const union AffineAnimCmd sAffineAnim_HailParticle_0[] = { AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0), AFFINEANIMCMD_END, }; -const union AffineAnimCmd gUnknown_08595CEC[] = +static const union AffineAnimCmd sAffineAnim_HailParticle_1[] = { AFFINEANIMCMD_FRAME(0xF0, 0xF0, 0, 0), AFFINEANIMCMD_END, }; -const union AffineAnimCmd gUnknown_08595CFC[] = +static const union AffineAnimCmd sAffineAnim_HailParticle_2[] = { AFFINEANIMCMD_FRAME(0xE0, 0xE0, 0, 0), AFFINEANIMCMD_END, }; -const union AffineAnimCmd gUnknown_08595D0C[] = +static const union AffineAnimCmd sAffineAnim_WeatherBallIceDown[] = { AFFINEANIMCMD_FRAME(0x150, 0x150, 0, 0), AFFINEANIMCMD_END, }; -const union AffineAnimCmd *const gUnknown_08595D1C[] = +static const union AffineAnimCmd *const sAffineAnims_HailParticle[] = { - gUnknown_08595CDC, - gUnknown_08595CEC, - gUnknown_08595CFC, + sAffineAnim_HailParticle_0, + sAffineAnim_HailParticle_1, + sAffineAnim_HailParticle_2, }; -const union AffineAnimCmd *const gUnknown_08595D28[] = +static const union AffineAnimCmd *const sAffineAnims_WeatherBallIceDown[] = { - gUnknown_08595D0C, + sAffineAnim_WeatherBallIceDown, }; -const struct SpriteTemplate gUnknown_08595D2C = +const struct SpriteTemplate gHailParticleSpriteTemplate = { .tileTag = ANIM_TAG_HAIL, .paletteTag = ANIM_TAG_HAIL, .oam = &gOamData_AffineNormal_ObjNormal_16x16, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_08595D1C, + .affineAnims = sAffineAnims_HailParticle, .callback = AnimHailBegin, }; -const struct SpriteTemplate gUnknown_08595D44 = +const struct SpriteTemplate gWeatherBallIceDownSpriteTemplate = { .tileTag = ANIM_TAG_HAIL, .paletteTag = ANIM_TAG_HAIL, .oam = &gOamData_AffineNormal_ObjNormal_16x16, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_08595D28, - .callback = sub_80A8EE4, + .affineAnims = sAffineAnims_WeatherBallIceDown, + .callback = AnimWeatherBallDown, }; -const union AnimCmd gUnknown_08595D5C[] = +static const union AnimCmd sAnim_IceBallChunk_0[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_08595D64[] = +static const union AnimCmd sAnim_IceBallChunk_1[] = { ANIMCMD_FRAME(16, 4), ANIMCMD_FRAME(32, 4), @@ -455,74 +456,74 @@ const union AnimCmd gUnknown_08595D64[] = ANIMCMD_END, }; -const union AnimCmd *const gUnknown_08595D78[] = +static const union AnimCmd *const sAnims_IceBallChunk[] = { - gUnknown_08595D5C, - gUnknown_08595D64, + sAnim_IceBallChunk_0, + sAnim_IceBallChunk_1, }; -const union AffineAnimCmd gUnknown_08595D80[] = +static const union AffineAnimCmd sAffineAnim_IceBallChunk_0[] = { AFFINEANIMCMD_FRAME(0xE0, 0xE0, 0, 0), AFFINEANIMCMD_END, }; -const union AffineAnimCmd gUnknown_08595D90[] = +static const union AffineAnimCmd sAffineAnim_IceBallChunk_1[] = { AFFINEANIMCMD_FRAME(0x118, 0x118, 0, 0), AFFINEANIMCMD_END, }; -const union AffineAnimCmd gUnknown_08595DA0[] = +static const union AffineAnimCmd sAffineAnim_IceBallChunk_2[] = { AFFINEANIMCMD_FRAME(0x150, 0x150, 0, 0), AFFINEANIMCMD_END, }; -const union AffineAnimCmd gUnknown_08595DB0[] = +static const union AffineAnimCmd sAffineAnim_IceBallChunk_3[] = { AFFINEANIMCMD_FRAME(0x180, 0x180, 0, 0), AFFINEANIMCMD_END, }; -const union AffineAnimCmd gUnknown_08595DC0[] = +static const union AffineAnimCmd sAffineAnim_IceBallChunk_4[] = { AFFINEANIMCMD_FRAME(0x1C0, 0x1C0, 0, 0), AFFINEANIMCMD_END, }; -const union AffineAnimCmd *const gUnknown_08595DD0[] = +static const union AffineAnimCmd *const sAffineAnims_IceBallChunk[] = { - gUnknown_08595D80, - gUnknown_08595D90, - gUnknown_08595DA0, - gUnknown_08595DB0, - gUnknown_08595DC0, + sAffineAnim_IceBallChunk_0, + sAffineAnim_IceBallChunk_1, + sAffineAnim_IceBallChunk_2, + sAffineAnim_IceBallChunk_3, + sAffineAnim_IceBallChunk_4, }; -const struct SpriteTemplate gUnknown_08595DE4 = +const struct SpriteTemplate gIceBallChunkSpriteTemplate = { .tileTag = ANIM_TAG_ICE_CHUNK, .paletteTag = ANIM_TAG_ICE_CHUNK, .oam = &gOamData_AffineDouble_ObjNormal_32x32, - .anims = gUnknown_08595D78, + .anims = sAnims_IceBallChunk, .images = NULL, - .affineAnims = gUnknown_08595DD0, + .affineAnims = sAffineAnims_IceBallChunk, .callback = InitIceBallAnim, }; -const struct SpriteTemplate gUnknown_08595DFC = +const struct SpriteTemplate gIceBallImpactShardSpriteTemplate = { .tileTag = ANIM_TAG_ICE_CRYSTALS, .paletteTag = ANIM_TAG_ICE_CRYSTALS, .oam = &gOamData_AffineOff_ObjNormal_8x8, - .anims = gUnknown_08595AAC, + .anims = sAnims_IceCrystalSmall, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = InitIceBallParticle, }; -// probably unused +// Unused static void sub_810B6C4(struct Sprite *sprite) { s16 targetX, targetY, attackerX, attackerY; @@ -562,7 +563,7 @@ static void sub_810B6C4(struct Sprite *sprite) sprite->callback = sub_810B848; } -void sub_810B848(struct Sprite *sprite) +static void sub_810B848(struct Sprite *sprite) { if (sprite->data[0] != 0) { @@ -583,7 +584,7 @@ void sub_810B848(struct Sprite *sprite) // Animates the swirling ice crystals in Ice Punch. // arg 0: initial position angle around circle (0-256) -void AnimIcePunchSwirlingParticle(struct Sprite *sprite) +static void AnimIcePunchSwirlingParticle(struct Sprite *sprite) { sprite->data[0] = gBattleAnimArgs[0]; sprite->data[1] = 60; @@ -601,7 +602,7 @@ void AnimIcePunchSwirlingParticle(struct Sprite *sprite) // arg 2: target x offset // arg 3: target y offset // arg 4: duration -void AnimIceBeamParticle(struct Sprite *sprite) +static void AnimIceBeamParticle(struct Sprite *sprite) { InitSpritePosToAnimAttacker(sprite, TRUE); sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); @@ -622,7 +623,7 @@ void AnimIceBeamParticle(struct Sprite *sprite) // arg 0: target x offset // arg 1: target y offset // arg 2: ??? unknown boolean -void AnimIceEffectParticle(struct Sprite *sprite) +static void AnimIceEffectParticle(struct Sprite *sprite) { if (gBattleAnimArgs[2] == 0) { @@ -642,7 +643,7 @@ void AnimIceEffectParticle(struct Sprite *sprite) sprite->callback = RunStoredCallbackWhenAffineAnimEnds; } -void AnimFlickerIceEffectParticle(struct Sprite *sprite) +static void AnimFlickerIceEffectParticle(struct Sprite *sprite) { sprite->invisible ^= 1; sprite->data[0] += 1; @@ -657,7 +658,7 @@ void AnimFlickerIceEffectParticle(struct Sprite *sprite) // arg 3: target y offset // arg 4: particle speed // arg 5: multiple targets? (boolean) -void AnimSwirlingSnowball_Step1(struct Sprite *sprite) +static void AnimSwirlingSnowball(struct Sprite *sprite) { int i; s16 tempDataHolder[8]; @@ -710,10 +711,10 @@ void AnimSwirlingSnowball_Step1(struct Sprite *sprite) sprite->data[i] = tempDataHolder[i]; sprite->callback = sub_80A718C; - StoreSpriteCallbackInData6(sprite, AnimSwirlingSnowball_Step2); + StoreSpriteCallbackInData6(sprite, AnimSwirlingSnowball_Step1); } -void AnimSwirlingSnowball_Step2(struct Sprite *sprite) +static void AnimSwirlingSnowball_Step1(struct Sprite *sprite) { s16 tempVar; @@ -728,11 +729,11 @@ void AnimSwirlingSnowball_Step2(struct Sprite *sprite) sprite->data[3] = Sin(sprite->data[0], tempVar); sprite->data[4] = Cos(sprite->data[0], 0xF); sprite->data[5] = 0; - sprite->callback = AnimSwirlingSnowball_Step3; + sprite->callback = AnimSwirlingSnowball_Step2; sprite->callback(sprite); } -void AnimSwirlingSnowball_Step3(struct Sprite *sprite) +static void AnimSwirlingSnowball_Step2(struct Sprite *sprite) { s16 tempVar; tempVar = GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER ? 20 : -20; @@ -756,7 +757,7 @@ void AnimSwirlingSnowball_Step3(struct Sprite *sprite) } } -void AnimSwirlingSnowball_End(struct Sprite *sprite) +static void AnimSwirlingSnowball_End(struct Sprite *sprite) { sprite->data[0] = 1; AnimFastTranslateLinear(sprite); @@ -777,7 +778,7 @@ void AnimSwirlingSnowball_End(struct Sprite *sprite) // arg 5: wave amplitude // arg 6: wave frequency // arg 7: multiple targets? (boolean) -void AnimMoveParticleBeyondTarget(struct Sprite *sprite) +static void AnimMoveParticleBeyondTarget(struct Sprite *sprite) { int i; s16 tempDataHolder[8]; @@ -835,7 +836,7 @@ void AnimMoveParticleBeyondTarget(struct Sprite *sprite) } // Moves particles in a sine wave towards the target. -void AnimWiggleParticleTowardsTarget(struct Sprite *sprite) +static void AnimWiggleParticleTowardsTarget(struct Sprite *sprite) { AnimFastTranslateLinear(sprite); if (sprite->data[0] == 0) @@ -856,7 +857,7 @@ void AnimWiggleParticleTowardsTarget(struct Sprite *sprite) // arg 0: initial x pixel offset // arg 1: initial y pixel offset // arg 2: ??? unknown boolean -void AnimWaveFromCenterOfTarget(struct Sprite *sprite) +static void AnimWaveFromCenterOfTarget(struct Sprite *sprite) { if (sprite->data[0] == 0) { @@ -891,7 +892,7 @@ void AnimWaveFromCenterOfTarget(struct Sprite *sprite) // arg 3: duration // arg 4: animate on opponent? (boolean) // arg 5: ??? unknown boolean -void InitSwirlingFogAnim(struct Sprite *sprite) +static void InitSwirlingFogAnim(struct Sprite *sprite) { s16 tempVar; u8 battler; @@ -959,7 +960,7 @@ void InitSwirlingFogAnim(struct Sprite *sprite) } // Animates swirling fog initialized by InitSwirlingFogAnim. -void AnimSwirlingFogAnim(struct Sprite *sprite) +static void AnimSwirlingFogAnim(struct Sprite *sprite) { if (!AnimTranslateLinear(sprite)) { @@ -979,8 +980,8 @@ void AnimSwirlingFogAnim(struct Sprite *sprite) } } -// Fades mons to black and places foggy overlay in Haze. -void AnimTask_Haze1(u8 taskId) +// Adds moving foggy overlay. Used by Haze. +void AnimTask_HazeScrollingFog(u8 taskId) { struct BattleAnimBgData animBg; @@ -999,13 +1000,13 @@ void AnimTask_Haze1(u8 taskId) sub_80A6B30(&animBg); LoadBgTiles(animBg.bgId, gWeatherFogHorizontalTiles, 0x800, animBg.tilesOffset); - sub_80A6D60(&animBg, gBattleAnimFogTilemap, 0); + AnimLoadCompressedBgTilemapHandleContest(&animBg, gBattleAnimFogTilemap, 0); LoadPalette(&gUnknown_083970E8, animBg.paletteId * 16, 32); gTasks[taskId].func = AnimTask_Haze2; } -void AnimTask_Haze2(u8 taskId) +static void AnimTask_Haze2(u8 taskId) { struct BattleAnimBgData animBg; @@ -1019,7 +1020,7 @@ void AnimTask_Haze2(u8 taskId) { gTasks[taskId].data[10] = 0; gTasks[taskId].data[9]++; - gTasks[taskId].data[11] = gUnknown_08595C5C[gTasks[taskId].data[9]]; + gTasks[taskId].data[11] = sUnknown_08595C5C[gTasks[taskId].data[9]]; SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gTasks[taskId].data[11], 16 - gTasks[taskId].data[11])); if (gTasks[taskId].data[11] == 9) @@ -1079,7 +1080,7 @@ void AnimTask_Haze2(u8 taskId) // arg 3: target y offset // arg 4: duration // arg 5: ??? unknown (seems to vibrate target mon somehow) -void AnimThrowMistBall(struct Sprite *sprite) +static void AnimThrowMistBall(struct Sprite *sprite) { sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); @@ -1106,14 +1107,14 @@ void AnimTask_LoadMistTiles(u8 taskId) sub_80A6B30(&animBg); LoadBgTiles(animBg.bgId, gWeatherFogHorizontalTiles, 0x800, animBg.tilesOffset); - sub_80A6D60(&animBg, gBattleAnimFogTilemap, 0); + AnimLoadCompressedBgTilemapHandleContest(&animBg, gBattleAnimFogTilemap, 0); LoadPalette(&gUnknown_083970E8, animBg.paletteId * 16, 32); gTasks[taskId].data[15] = -1; gTasks[taskId].func = AnimTask_OverlayFogTiles; } -void AnimTask_OverlayFogTiles(u8 taskId) +static void AnimTask_OverlayFogTiles(u8 taskId) { struct BattleAnimBgData animBg; @@ -1124,7 +1125,7 @@ void AnimTask_OverlayFogTiles(u8 taskId) { case 0: gTasks[taskId].data[9] += 1; - gTasks[taskId].data[11] = gUnknown_08595C88[gTasks[taskId].data[9]]; + gTasks[taskId].data[11] = sUnknown_08595C88[gTasks[taskId].data[9]]; SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gTasks[taskId].data[11], 17 - gTasks[taskId].data[11])); if (gTasks[taskId].data[11] == 5) { @@ -1183,7 +1184,7 @@ void AnimTask_OverlayFogTiles(u8 taskId) // arg 5: ??? unknown // arg 6: ??? unknown // arg 7: ??? unknown boolean -void InitPoisonGasCloudAnim(struct Sprite *sprite) +static void InitPoisonGasCloudAnim(struct Sprite *sprite) { sprite->data[0] = gBattleAnimArgs[0]; @@ -1230,7 +1231,7 @@ void InitPoisonGasCloudAnim(struct Sprite *sprite) sprite->callback = MovePoisonGasCloud; } -void MovePoisonGasCloud(struct Sprite *sprite) +static void MovePoisonGasCloud(struct Sprite *sprite) { int value; @@ -1329,15 +1330,14 @@ void MovePoisonGasCloud(struct Sprite *sprite) } } -// Creates Hail. -void AnimTask_Hail1(u8 taskId) +void AnimTask_Hail(u8 taskId) { struct Task *task = &gTasks[taskId]; task->func = AnimTask_Hail2; } -void AnimTask_Hail2(u8 taskId) +static void AnimTask_Hail2(u8 taskId) { struct Task *task = &gTasks[taskId]; switch (task->data[0]) @@ -1382,17 +1382,17 @@ void AnimTask_Hail2(u8 taskId) } } -bool8 GenerateHailParticle(u8 hailStructId, u8 affineAnimNum, u8 taskId, u8 c) +static bool8 GenerateHailParticle(u8 hailStructId, u8 affineAnimNum, u8 taskId, u8 c) { u8 id; s16 battlerX, battlerY; s16 spriteX; bool8 possibleBool = FALSE; - s8 unk = gUnknown_08595CB4[hailStructId].unk3; + s8 unk = sHailCoordData[hailStructId].unk3; if (unk != 2) { - id = GetBattlerAtPosition(gUnknown_08595CB4[hailStructId].unk2); + id = GetBattlerAtPosition(sHailCoordData[hailStructId].bPosition); if (IsBattlerSpriteVisible(id)) { possibleBool = TRUE; @@ -1412,17 +1412,17 @@ bool8 GenerateHailParticle(u8 hailStructId, u8 affineAnimNum, u8 taskId, u8 c) } else { - battlerX = (gUnknown_08595CB4[hailStructId].unk0); - battlerY = (gUnknown_08595CB4[hailStructId].unk1); + battlerX = (sHailCoordData[hailStructId].x); + battlerY = (sHailCoordData[hailStructId].y); } } else { - battlerX = (gUnknown_08595CB4[hailStructId].unk0); - battlerY = (gUnknown_08595CB4[hailStructId].unk1); + battlerX = (sHailCoordData[hailStructId].x); + battlerY = (sHailCoordData[hailStructId].y); } spriteX = battlerX - ((battlerY + 8) / 2); - id = CreateSprite(&gUnknown_08595D2C, spriteX, -8, 18); + id = CreateSprite(&gHailParticleSpriteTemplate, spriteX, -8, 18); if (id == MAX_SPRITES) { return FALSE; @@ -1440,7 +1440,7 @@ bool8 GenerateHailParticle(u8 hailStructId, u8 affineAnimNum, u8 taskId, u8 c) } } -void AnimHailBegin(struct Sprite *sprite) +static void AnimHailBegin(struct Sprite *sprite) { u8 spriteId; @@ -1452,7 +1452,7 @@ void AnimHailBegin(struct Sprite *sprite) if (sprite->data[0] == 1 && sprite->data[5] == 0) { - spriteId = CreateSprite(&gUnknown_08595B68, + spriteId = CreateSprite(&gIceCrystalHitLargeSpriteTemplate, sprite->data[3], sprite->data[4], sprite->subpriority); sprite->data[0] = spriteId; @@ -1474,7 +1474,7 @@ void AnimHailBegin(struct Sprite *sprite) } } -void AnimHailContinue(struct Sprite *sprite) +static void AnimHailContinue(struct Sprite *sprite) { if (++sprite->data[0] == 20) { @@ -1491,7 +1491,7 @@ void AnimHailContinue(struct Sprite *sprite) // arg 3: target y offset // arg 4: duration // arg 5: arc height (negative) -void InitIceBallAnim(struct Sprite *sprite) +static void InitIceBallAnim(struct Sprite *sprite) { u8 animNum = gAnimDisableStructPtr->rolloutTimerStartValue - gAnimDisableStructPtr->rolloutTimer - 1; @@ -1516,7 +1516,7 @@ void InitIceBallAnim(struct Sprite *sprite) } // Throws the ball of ice in Ice Ball. -void AnimThrowIceBall(struct Sprite *sprite) +static void AnimThrowIceBall(struct Sprite *sprite) { if (!TranslateAnimHorizontalArc(sprite)) return; @@ -1527,7 +1527,7 @@ void AnimThrowIceBall(struct Sprite *sprite) } // Initializes the particles that scatter at the end of the Ice Ball animation. -void InitIceBallParticle(struct Sprite *sprite) +static void InitIceBallParticle(struct Sprite *sprite) { s16 randA, randB; @@ -1546,7 +1546,7 @@ void InitIceBallParticle(struct Sprite *sprite) } // Animates the particles created by InitIceBallParticle. -void AnimIceBallParticle(struct Sprite *sprite) +static void AnimIceBallParticle(struct Sprite *sprite) { sprite->data[3] += sprite->data[1]; sprite->data[4] += sprite->data[2]; @@ -1562,8 +1562,7 @@ void AnimIceBallParticle(struct Sprite *sprite) DestroyAnimSprite(sprite); } -// Counter for Ice Ball. -void AnimTask_GetRolloutCounter(u8 taskId) +void AnimTask_GetIceBallCounter(u8 taskId) { u8 arg = gBattleAnimArgs[0]; diff --git a/src/battle_anim_mon_movement.c b/src/battle_anim_mon_movement.c index 250a0459f..e789e4680 100644 --- a/src/battle_anim_mon_movement.c +++ b/src/battle_anim_mon_movement.c @@ -6,27 +6,27 @@ #include "trig.h" // This file's functions. -void AnimTask_ShakeMonStep(u8 taskId); -void AnimTask_ShakeMon2Step(u8 taskId); -void AnimTask_ShakeMonInPlaceStep(u8 taskId); -void AnimTask_ShakeAndSinkMonStep(u8 taskId); -void sub_80D57B8(u8 taskId); +static void AnimTask_ShakeMon_Step(u8 taskId); +static void AnimTask_ShakeMon2_Step(u8 taskId); +static void AnimTask_ShakeMonInPlace_Step(u8 taskId); +static void AnimTask_ShakeAndSinkMon_Step(u8 taskId); +static void AnimTask_TranslateMonElliptical_Step(u8 taskId); static void DoHorizontalLunge(struct Sprite *sprite); static void ReverseHorizontalLungeDirection(struct Sprite *sprite); static void DoVerticalDip(struct Sprite *sprite); static void ReverseVerticalDipDirection(struct Sprite* sprite); static void SlideMonToOriginalPos(struct Sprite *sprite); -static void SlideMonToOriginalPosStep(struct Sprite *sprite); +static void SlideMonToOriginalPos_Step(struct Sprite *sprite); static void SlideMonToOffset(struct Sprite *sprite); -static void sub_80D5B48(struct Sprite *sprite); -static void sub_80D5C20(struct Sprite *sprite); -void AnimTask_WindUpLungePart1(u8 taskId); -void AnimTask_WindUpLungePart2(u8 taskId); -void AnimTask_SwayMonStep(u8 taskId); -void AnimTask_ScaleMonAndRestoreStep(u8 taskId); -void sub_80D6308(u8 taskId); -void sub_80D646C(u8 taskId); -void sub_80A8B3C(u8 taskId); +static void SlideMonToOffsetAndBack(struct Sprite *sprite); +static void SlideMonToOffsetAndBack_End(struct Sprite *sprite); +static void AnimTask_WindUpLunge_Step1(u8 taskId); +static void AnimTask_WindUpLunge_Step2(u8 taskId); +static void AnimTask_SwayMonStep(u8 taskId); +static void AnimTask_ScaleMonAndRestore_Step(u8 taskId); +static void AnimTask_RotateMonSpriteToSide_Step(u8 taskId); +static void AnimTask_ShakeTargetBasedOnMovePowerOrDmg_Step(u8 taskId); +static void AnimTask_SlideOffScreen_Step(u8 taskId); const struct SpriteTemplate gHorizontalLungeSpriteTemplate = { @@ -72,7 +72,7 @@ const struct SpriteTemplate gSlideMonToOffsetSpriteTemplate = .callback = SlideMonToOffset, }; -const struct SpriteTemplate gUnknown_0857FE88 = +const struct SpriteTemplate gSlideMonToOffsetAndBackSpriteTemplate = { .tileTag = 0, .paletteTag = 0, @@ -80,7 +80,7 @@ const struct SpriteTemplate gUnknown_0857FE88 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80D5B48, + .callback = SlideMonToOffsetAndBack, }; // Task to facilitate simple shaking of a pokemon's picture in battle. @@ -107,11 +107,11 @@ void AnimTask_ShakeMon(u8 taskId) gTasks[taskId].data[3] = gBattleAnimArgs[4]; gTasks[taskId].data[4] = gBattleAnimArgs[1]; gTasks[taskId].data[5] = gBattleAnimArgs[2]; - gTasks[taskId].func = AnimTask_ShakeMonStep; - AnimTask_ShakeMonStep(taskId); + gTasks[taskId].func = AnimTask_ShakeMon_Step; + AnimTask_ShakeMon_Step(taskId); } -void AnimTask_ShakeMonStep(u8 taskId) +static void AnimTask_ShakeMon_Step(u8 taskId) { if (gTasks[taskId].data[3] == 0) { @@ -159,7 +159,7 @@ void AnimTask_ShakeMon2(u8 taskId) bool8 destroy = FALSE; u8 battlerId; - if (gBattleAnimArgs[0] < 4) + if (gBattleAnimArgs[0] < MAX_BATTLERS_COUNT) { spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); if (spriteId == 0xff) @@ -211,11 +211,11 @@ void AnimTask_ShakeMon2(u8 taskId) gTasks[taskId].data[3] = gBattleAnimArgs[4]; gTasks[taskId].data[4] = gBattleAnimArgs[1]; gTasks[taskId].data[5] = gBattleAnimArgs[2]; - gTasks[taskId].func = AnimTask_ShakeMon2Step; + gTasks[taskId].func = AnimTask_ShakeMon2_Step; gTasks[taskId].func(taskId); } -void AnimTask_ShakeMon2Step(u8 taskId) +static void AnimTask_ShakeMon2_Step(u8 taskId) { if (gTasks[taskId].data[3] == 0) { @@ -270,11 +270,11 @@ void AnimTask_ShakeMonInPlace(u8 taskId) gTasks[taskId].data[4] = gBattleAnimArgs[4]; gTasks[taskId].data[5] = gBattleAnimArgs[1] * 2; gTasks[taskId].data[6] = gBattleAnimArgs[2] * 2; - gTasks[taskId].func = AnimTask_ShakeMonInPlaceStep; + gTasks[taskId].func = AnimTask_ShakeMonInPlace_Step; gTasks[taskId].func(taskId); } -void AnimTask_ShakeMonInPlaceStep(u8 taskId) +static void AnimTask_ShakeMonInPlace_Step(u8 taskId) { if (gTasks[taskId].data[3] == 0) { @@ -326,11 +326,11 @@ void AnimTask_ShakeAndSinkMon(u8 taskId) gTasks[taskId].data[2] = gBattleAnimArgs[2]; gTasks[taskId].data[3] = gBattleAnimArgs[3]; gTasks[taskId].data[4] = gBattleAnimArgs[4]; - gTasks[taskId].func = AnimTask_ShakeAndSinkMonStep; + gTasks[taskId].func = AnimTask_ShakeAndSinkMon_Step; gTasks[taskId].func(taskId); } -void AnimTask_ShakeAndSinkMonStep(u8 taskId) +static void AnimTask_ShakeAndSinkMon_Step(u8 taskId) { s16 x; u8 spriteId; @@ -383,11 +383,11 @@ void AnimTask_TranslateMonElliptical(u8 taskId) gTasks[taskId].data[2] = gBattleAnimArgs[2]; gTasks[taskId].data[3] = gBattleAnimArgs[3]; gTasks[taskId].data[4] = wavePeriod; - gTasks[taskId].func = sub_80D57B8; + gTasks[taskId].func = AnimTask_TranslateMonElliptical_Step; gTasks[taskId].func(taskId); } -void sub_80D57B8(u8 taskId) +static void AnimTask_TranslateMonElliptical_Step(u8 taskId) { u8 spriteId = gTasks[taskId].data[0]; gSprites[spriteId].pos2.x = Sin(gTasks[taskId].data[5], gTasks[taskId].data[1]); @@ -511,10 +511,10 @@ static void SlideMonToOriginalPos(struct Sprite *sprite) sprite->data[7] = gBattleAnimArgs[1]; sprite->data[7] |= monSpriteId << 8; - sprite->callback = SlideMonToOriginalPosStep; + sprite->callback = SlideMonToOriginalPos_Step; } -static void SlideMonToOriginalPosStep(struct Sprite *sprite) +static void SlideMonToOriginalPos_Step(struct Sprite *sprite) { s8 monSpriteId; u8 lo; @@ -584,19 +584,17 @@ static void SlideMonToOffset(struct Sprite *sprite) sprite->callback = TranslateMonSpriteLinearFixedPoint; } -static void sub_80D5B48(struct Sprite *sprite) +static void SlideMonToOffsetAndBack(struct Sprite *sprite) { u8 spriteId; u8 battlerId; sprite->invisible = TRUE; - if (!gBattleAnimArgs[0]) - { + + if (gBattleAnimArgs[0] == ANIM_ATTACKER) battlerId = gBattleAnimAttacker; - } else - { battlerId = gBattleAnimTarget; - } + spriteId = gBattlerSpriteIds[battlerId]; if (GetBattlerSide(battlerId)) { @@ -622,13 +620,13 @@ static void sub_80D5B48(struct Sprite *sprite) } else { - StoreSpriteCallbackInData6(sprite, sub_80D5C20); + StoreSpriteCallbackInData6(sprite, SlideMonToOffsetAndBack_End); } sprite->callback = TranslateMonSpriteLinearFixedPoint; } -static void sub_80D5C20(struct Sprite *sprite) +static void SlideMonToOffsetAndBack_End(struct Sprite *sprite) { gSprites[sprite->data[5]].pos2.x = 0; gSprites[sprite->data[5]].pos2.y = 0; @@ -661,10 +659,10 @@ void AnimTask_WindUpLunge(u8 taskId) gTasks[taskId].data[5] = (gBattleAnimArgs[5] << 8) / gBattleAnimArgs[6]; gTasks[taskId].data[6] = gBattleAnimArgs[6]; gTasks[taskId].data[7] = wavePeriod; - gTasks[taskId].func = AnimTask_WindUpLungePart1; + gTasks[taskId].func = AnimTask_WindUpLunge_Step1; } -void AnimTask_WindUpLungePart1(u8 taskId) +static void AnimTask_WindUpLunge_Step1(u8 taskId) { u8 spriteId; spriteId = gTasks[taskId].data[0]; @@ -674,11 +672,11 @@ void AnimTask_WindUpLungePart1(u8 taskId) gTasks[taskId].data[10] += gTasks[taskId].data[7]; if (--gTasks[taskId].data[3] == 0) { - gTasks[taskId].func = AnimTask_WindUpLungePart2; + gTasks[taskId].func = AnimTask_WindUpLunge_Step2; } } -void AnimTask_WindUpLungePart2(u8 taskId) +static void AnimTask_WindUpLunge_Step2(u8 taskId) { u8 spriteId; if (gTasks[taskId].data[4] > 0) @@ -698,16 +696,17 @@ void AnimTask_WindUpLungePart2(u8 taskId) } } -void sub_80D5DB0(u8 taskId) +// To move a mon off-screen when pushed out by Roar/Whirlwind +void AnimTask_SlideOffScreen(u8 taskId) { u8 spriteId; switch (gBattleAnimArgs[0]) { - case 0: - case 1: + case ANIM_ATTACKER: + case ANIM_TARGET: spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); break; - case 2: + case ANIM_ATK_PARTNER: if (!IsBattlerSpriteVisible(BATTLE_PARTNER(gBattleAnimAttacker))) { DestroyAnimVisualTask(taskId); @@ -715,7 +714,7 @@ void sub_80D5DB0(u8 taskId) } spriteId = gBattlerSpriteIds[BATTLE_PARTNER(gBattleAnimAttacker)]; break; - case 3: + case ANIM_DEF_PARTNER: if (!IsBattlerSpriteVisible(BATTLE_PARTNER(gBattleAnimTarget))) { DestroyAnimVisualTask(taskId); @@ -736,10 +735,10 @@ void sub_80D5DB0(u8 taskId) { gTasks[taskId].data[1] = -gBattleAnimArgs[1]; } - gTasks[taskId].func = sub_80A8B3C; + gTasks[taskId].func = AnimTask_SlideOffScreen_Step; } -void sub_80A8B3C(u8 taskId) +static void AnimTask_SlideOffScreen_Step(u8 taskId) { u8 spriteId = gTasks[taskId].data[0]; gSprites[spriteId].pos2.x += gTasks[taskId].data[1]; @@ -780,7 +779,7 @@ void AnimTask_SwayMon(u8 taskId) gTasks[taskId].func = AnimTask_SwayMonStep; } -void AnimTask_SwayMonStep(u8 taskId) +static void AnimTask_SwayMonStep(u8 taskId) { s16 sineValue; u8 spriteId; @@ -842,10 +841,10 @@ void AnimTask_ScaleMonAndRestore(u8 taskId) gTasks[taskId].data[4] = spriteId; gTasks[taskId].data[10] = 0x100; gTasks[taskId].data[11] = 0x100; - gTasks[taskId].func = AnimTask_ScaleMonAndRestoreStep; + gTasks[taskId].func = AnimTask_ScaleMonAndRestore_Step; } -void AnimTask_ScaleMonAndRestoreStep(u8 taskId) +static void AnimTask_ScaleMonAndRestore_Step(u8 taskId) { u8 spriteId; gTasks[taskId].data[10] += gTasks[taskId].data[0]; @@ -870,7 +869,7 @@ void AnimTask_ScaleMonAndRestoreStep(u8 taskId) } } -void sub_80D6134(u8 taskId) +void AnimTask_RotateMonSpriteToSide(u8 taskId) { u8 spriteId; spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[2]); @@ -911,17 +910,18 @@ void sub_80D6134(u8 taskId) gTasks[taskId].data[4] *= -1; } } - gTasks[taskId].func = sub_80D6308; + gTasks[taskId].func = AnimTask_RotateMonSpriteToSide_Step; } -void sub_80D622C(u8 taskId) +// Rotates mon to side and back to original position. For Peck and when a held item activates +void AnimTask_RotateMonToSideAndRestore(u8 taskId) { u8 spriteId; spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[2]); PrepareBattlerSpriteForRotScale(spriteId, ST_OAM_OBJ_NORMAL); gTasks[taskId].data[1] = 0; gTasks[taskId].data[2] = gBattleAnimArgs[0]; - if (gBattleAnimArgs[2] == 0) + if (gBattleAnimArgs[2] == ANIM_ATTACKER) { if (GetBattlerSide(gBattleAnimAttacker)) { @@ -949,10 +949,10 @@ void sub_80D622C(u8 taskId) gTasks[taskId].data[7] = 1; gTasks[taskId].data[3] *= -1; gTasks[taskId].data[4] *= -1; - gTasks[taskId].func = sub_80D6308; + gTasks[taskId].func = AnimTask_RotateMonSpriteToSide_Step; } -void sub_80D6308(u8 taskId) +static void AnimTask_RotateMonSpriteToSide_Step(u8 taskId) { gTasks[taskId].data[3] += gTasks[taskId].data[4]; SetSpriteRotScale(gTasks[taskId].data[5], 0x100, 0x100, gTasks[taskId].data[3]); @@ -979,7 +979,7 @@ void sub_80D6308(u8 taskId) } } -void sub_80D6388(u8 taskId) +void AnimTask_ShakeTargetBasedOnMovePowerOrDmg(u8 taskId) { if (!gBattleAnimArgs[0]) { @@ -1010,16 +1010,16 @@ void sub_80D6388(u8 taskId) gTasks[taskId].data[12] = 0; gTasks[taskId].data[10] = gBattleAnimArgs[3]; gTasks[taskId].data[11] = gBattleAnimArgs[4]; - gTasks[taskId].data[7] = GetAnimBattlerSpriteId(1); + gTasks[taskId].data[7] = GetAnimBattlerSpriteId(ANIM_TARGET); gTasks[taskId].data[8] = gSprites[gTasks[taskId].data[7]].pos2.x; gTasks[taskId].data[9] = gSprites[gTasks[taskId].data[7]].pos2.y; gTasks[taskId].data[0] = 0; gTasks[taskId].data[1] = gBattleAnimArgs[1]; gTasks[taskId].data[2] = gBattleAnimArgs[2]; - gTasks[taskId].func = sub_80D646C; + gTasks[taskId].func = AnimTask_ShakeTargetBasedOnMovePowerOrDmg_Step; } -void sub_80D646C(u8 taskId) +static void AnimTask_ShakeTargetBasedOnMovePowerOrDmg_Step(u8 taskId) { struct Task *task = &gTasks[taskId]; if (++task->data[0] > task->data[1]) diff --git a/src/battle_anim_mons.c b/src/battle_anim_mons.c index b356d57e0..861c5f6ca 100644 --- a/src/battle_anim_mons.c +++ b/src/battle_anim_mons.c @@ -34,7 +34,7 @@ static void AnimThrowProjectile_Step(struct Sprite *sprite); static void sub_80A8DFC(struct Sprite *sprite); static void sub_80A8E88(struct Sprite *sprite); static u16 GetBattlerYDeltaFromSpriteId(u8 spriteId); -static void AnimTask_BlendMonInAndOutSetup(struct Task *task); +static void AnimTask_BlendPalInAndOutSetup(struct Task *task); static void sub_80A7AFC(u8 taskId); static void sub_80A8CAC(u8 taskId); static void AnimTask_BlendMonInAndOutStep(u8 taskId); @@ -958,7 +958,7 @@ void AnimLoadCompressedBgTilemap(u32 bgId, const void *src) CopyBgTilemapBufferToVram(bgId); } -void sub_80A6D60(struct BattleAnimBgData *unk, const void *src, u32 arg2) +void AnimLoadCompressedBgTilemapHandleContest(struct BattleAnimBgData *unk, const void *src, u32 arg2) { InitAnimBgTilemapBuffer(unk->bgId, src); if (IsContest() == TRUE) @@ -1532,7 +1532,7 @@ static void AnimThrowProjectile_Step(struct Sprite *sprite) DestroyAnimSprite(sprite); } -void AnimSnoreZ(struct Sprite *sprite) +void AnimTravelDiagonally(struct Sprite *sprite) { bool8 r4; u8 battlerId, coordType; @@ -1547,7 +1547,7 @@ void AnimSnoreZ(struct Sprite *sprite) r4 = FALSE; coordType = BATTLER_COORD_Y; } - if (!gBattleAnimArgs[5]) + if (gBattleAnimArgs[5] == ANIM_ATTACKER) { InitSpritePosToAnimAttacker(sprite, r4); battlerId = gBattleAnimAttacker; @@ -1594,7 +1594,8 @@ void obj_delete_but_dont_free_vram(struct Sprite *sprite) DestroySprite(sprite); } -void sub_80A7A74(u8 taskId) +// Only used to fade Moonlight moon sprite in +void AnimTask_AlphaFadeIn(u8 taskId) { s16 v1 = 0; s16 v2 = 0; @@ -1663,10 +1664,10 @@ void AnimTask_BlendMonInAndOut(u8 task) return; } gTasks[task].data[0] = (gSprites[spriteId].oam.paletteNum * 0x10) + 0x101; - AnimTask_BlendMonInAndOutSetup(&gTasks[task]); + AnimTask_BlendPalInAndOutSetup(&gTasks[task]); } -static void AnimTask_BlendMonInAndOutSetup(struct Task *task) +static void AnimTask_BlendPalInAndOutSetup(struct Task *task) { task->data[1] = gBattleAnimArgs[1]; task->data[2] = 0; @@ -1713,7 +1714,8 @@ static void AnimTask_BlendMonInAndOutStep(u8 taskId) } } -void sub_80A7CB4(u8 task) +// See AnimTask_BlendMonInAndOut. Same, but ANIM_TAG_* instead of mon +void AnimTask_BlendPalInAndOutByTag(u8 task) { u8 palette = IndexOfSpritePaletteTag(gBattleAnimArgs[0]); @@ -1723,7 +1725,7 @@ void sub_80A7CB4(u8 task) return; } gTasks[task].data[0] = (palette * 0x10) + 0x101; - AnimTask_BlendMonInAndOutSetup(&gTasks[task]); + AnimTask_BlendPalInAndOutSetup(&gTasks[task]); } void PrepareAffineAnimInTaskData(struct Task *task, u8 spriteId, const union AffineAnimCmd *affineAnimCmds) @@ -1944,7 +1946,7 @@ void AnimTask_GetFrustrationPowerLevel(u8 taskId) powerLevel = 2; else powerLevel = 3; - gBattleAnimArgs[7] = powerLevel; + gBattleAnimArgs[ARG_RET_ID] = powerLevel; DestroyAnimVisualTask(taskId); } @@ -2033,20 +2035,20 @@ u8 sub_80A8394(u16 species, bool8 isBackpic, u8 a3, s16 x, s16 y, u8 subpriority u16 sheet = LoadSpriteSheet(&sUnknown_08525FC0[a3]); u16 palette = AllocSpritePalette(sUnknown_08525F90[a3].paletteTag); - if (gMonSpritesGfxPtr != NULL && gMonSpritesGfxPtr->field_17C == NULL) - gMonSpritesGfxPtr->field_17C = AllocZeroed(0x2000); + if (gMonSpritesGfxPtr != NULL && gMonSpritesGfxPtr->buffer == NULL) + gMonSpritesGfxPtr->buffer = AllocZeroed(0x2000); if (!isBackpic) { LoadCompressedPalette(GetMonSpritePalFromSpeciesAndPersonality(species, trainerId, personality), (palette * 0x10) + 0x100, 0x20); if (a10 == 1 || sub_80688F8(5, battlerId) == 1 || gBattleSpritesDataPtr->battlerData[battlerId].transformSpecies != 0) LoadSpecialPokePic_DontHandleDeoxys(&gMonFrontPicTable[species], - gMonSpritesGfxPtr->field_17C, + gMonSpritesGfxPtr->buffer, species, personality, TRUE); else LoadSpecialPokePic_2(&gMonFrontPicTable[species], - gMonSpritesGfxPtr->field_17C, + gMonSpritesGfxPtr->buffer, species, personality, TRUE); @@ -2056,20 +2058,20 @@ u8 sub_80A8394(u16 species, bool8 isBackpic, u8 a3, s16 x, s16 y, u8 subpriority LoadCompressedPalette(GetMonSpritePalFromSpeciesAndPersonality(species, trainerId, personality), (palette * 0x10) + 0x100, 0x20); if (a10 == 1 || sub_80688F8(5, battlerId) == 1 || gBattleSpritesDataPtr->battlerData[battlerId].transformSpecies != 0) LoadSpecialPokePic_DontHandleDeoxys(&gMonBackPicTable[species], - gMonSpritesGfxPtr->field_17C, + gMonSpritesGfxPtr->buffer, species, personality, FALSE); else LoadSpecialPokePic_2(&gMonBackPicTable[species], - gMonSpritesGfxPtr->field_17C, + gMonSpritesGfxPtr->buffer, species, personality, FALSE); } - RequestDma3Copy(gMonSpritesGfxPtr->field_17C, (void *)(OBJ_VRAM0 + (sheet * 0x20)), 0x800, 1); - FREE_AND_SET_NULL(gMonSpritesGfxPtr->field_17C); + RequestDma3Copy(gMonSpritesGfxPtr->buffer, (void *)(OBJ_VRAM0 + (sheet * 0x20)), 0x800, 1); + FREE_AND_SET_NULL(gMonSpritesGfxPtr->buffer); if (!isBackpic) spriteId = CreateSprite(&sUnknown_08525F90[a3], x, y + gMonFrontPicCoords[species].y_offset, subpriority); @@ -2316,7 +2318,8 @@ void sub_80A8AEC(struct Sprite *sprite) sprite->callback = TranslateSpriteLinearAndFlicker; } -void sub_80A8B64(struct Sprite *sprite) +// Used by Detect/Disable +void AnimSpinningSparkle(struct Sprite *sprite) { SetSpriteCoordsToAnimAttackerCoords(sprite); if (GetBattlerSide(gBattleAnimAttacker)) @@ -2328,7 +2331,10 @@ void sub_80A8B64(struct Sprite *sprite) StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); } -void sub_80A8BC4(u8 taskId) +// Slides attacker to right and back with a cloned trace of the specified color +// arg0: Trace palette blend color +// arg1: Trace palette blend coeff +void AnimTask_AttackerPunchWithTrace(u8 taskId) { u16 src; u16 dest; @@ -2412,7 +2418,7 @@ static void sub_80A8DFC(struct Sprite *sprite) } } -void sub_80A8E30(struct Sprite *sprite) +void AnimWeatherBallUp(struct Sprite *sprite) { sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); @@ -2436,7 +2442,7 @@ static void sub_80A8E88(struct Sprite *sprite) DestroyAnimSprite(sprite); } -void sub_80A8EE4(struct Sprite *sprite) +void AnimWeatherBallDown(struct Sprite *sprite) { int x; sprite->data[0] = gBattleAnimArgs[2]; diff --git a/src/normal.c b/src/battle_anim_normal.c index 7864dd9a3..f7df9a4a9 100644 --- a/src/normal.c +++ b/src/battle_anim_normal.c @@ -6,37 +6,36 @@ #include "trig.h" #include "constants/rgb.h" -void AnimConfusionDuck(struct Sprite *); -void AnimSimplePaletteBlend(struct Sprite *); -u32 UnpackSelectedBattleAnimPalettes(s16); -void sub_81158A4(struct Sprite *); -void sub_81159B4(struct Sprite *); -void sub_81160A4(struct Sprite *); -void sub_8116388(struct Sprite *); -void sub_8116420(struct Sprite *); -void sub_8116458(struct Sprite *); -void sub_81164F0(struct Sprite *); -void sub_8116560(struct Sprite *); -void sub_81165A8(struct Sprite *); -static void AnimConfusionDuckStep(struct Sprite *); -static void AnimSimplePaletteBlendStep(struct Sprite *); -static void sub_81158F8(struct Sprite *); -static void sub_8115984(struct Sprite *); -static void sub_8115A54(u8, u8, u8); -static void sub_8115AA4(u8); -static void sub_8115BC8(u8, u8, u8); -static void sub_8115C18(u8); -static void sub_8115CD0(u8, u8, u8); -static void sub_8115D2C(u8); -static void sub_8115E00(u8); -static void sub_8115EB8(u8); -static void sub_8116148(struct Sprite *); -static void sub_81161F4(void); -static void sub_81162F8(u8); -static void sub_81163D0(struct Sprite *); -static void sub_81165E4(struct Sprite *); - -const union AnimCmd gUnknown_0859722C[] = +static void AnimConfusionDuck(struct Sprite *); +static void AnimSimplePaletteBlend(struct Sprite *); +static void AnimSimplePaletteBlend_Step(struct Sprite *); +static void AnimComplexPaletteBlend(struct Sprite *); +static void AnimComplexPaletteBlend_Step1(struct Sprite *); +static void AnimComplexPaletteBlend_Step2(struct Sprite *); +static void sub_81159B4(struct Sprite *); +static void AnimShakeMonOrBattleTerrain(struct Sprite *); +static void AnimShakeMonOrBattleTerrain_Step(struct Sprite *); +static void AnimShakeMonOrBattleTerrain_UpdateCoordOffsetEnabled(void); +static void AnimHitSplatBasic(struct Sprite *); +static void AnimHitSplatPersistent(struct Sprite *); +static void AnimHitSplatHandleInvert(struct Sprite *); +static void AnimHitSplatRandom(struct Sprite *); +static void AnimHitSplatOnMonEdge(struct Sprite *); +static void AnimCrossImpact(struct Sprite *); +static void AnimFlashingHitSplat(struct Sprite *); +static void AnimFlashingHitSplat_Step(struct Sprite *); +static void AnimConfusionDuck_Step(struct Sprite *); +static void BlendColorCycle(u8, u8, u8); +static void AnimTask_BlendColorCycleLoop(u8); +static void BlendColorCycleExclude(u8, u8, u8); +static void AnimTask_BlendColorCycleExcludeLoop(u8); +static void BlendColorCycleByTag(u8, u8, u8); +static void AnimTask_BlendColorCycleByTagLoop(u8); +static void AnimTask_FlashAnimTagWithColor_Step1(u8); +static void AnimTask_FlashAnimTagWithColor_Step2(u8); +static void AnimTask_ShakeBattleTerrain_Step(u8); + +static const union AnimCmd sAnim_ConfusionDuck_0[] = { ANIMCMD_FRAME(0, 8), ANIMCMD_FRAME(4, 8), @@ -45,7 +44,7 @@ const union AnimCmd gUnknown_0859722C[] = ANIMCMD_JUMP(0), }; -const union AnimCmd gUnknown_08597240[] = +static const union AnimCmd sAnim_ConfusionDuck_1[] = { ANIMCMD_FRAME(0, 8, .hFlip = TRUE), ANIMCMD_FRAME(4, 8), @@ -54,10 +53,10 @@ const union AnimCmd gUnknown_08597240[] = ANIMCMD_JUMP(0), }; -const union AnimCmd *const gUnknown_08597254[] = +static const union AnimCmd *const sAnims_ConfusionDuck[] = { - gUnknown_0859722C, - gUnknown_08597240, + sAnim_ConfusionDuck_0, + sAnim_ConfusionDuck_1, }; const struct SpriteTemplate gConfusionDuckSpriteTemplate = @@ -65,7 +64,7 @@ const struct SpriteTemplate gConfusionDuckSpriteTemplate = .tileTag = ANIM_TAG_DUCK, .paletteTag = ANIM_TAG_DUCK, .oam = &gOamData_AffineOff_ObjNormal_16x16, - .anims = gUnknown_08597254, + .anims = sAnims_ConfusionDuck, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimConfusionDuck, @@ -90,10 +89,10 @@ const struct SpriteTemplate gComplexPaletteBlendSpriteTemplate = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_81158A4, + .callback = AnimComplexPaletteBlend, }; -const union AnimCmd gUnknown_085972A4[] = +static const union AnimCmd gUnknown_085972A4[] = { ANIMCMD_FRAME(0, 3), ANIMCMD_FRAME(16, 3), @@ -103,11 +102,12 @@ const union AnimCmd gUnknown_085972A4[] = ANIMCMD_JUMP(0), }; -const union AnimCmd *const gUnknown_085972BC[] = +static const union AnimCmd *const gUnknown_085972BC[] = { gUnknown_085972A4, }; +// Unused const struct SpriteTemplate gUnknown_085972C0 = { .tileTag = ANIM_TAG_SPARKLE_4, @@ -119,7 +119,7 @@ const struct SpriteTemplate gUnknown_085972C0 = .callback = sub_81159B4, }; -const struct SpriteTemplate gBattleAnimSpriteTemplate_85972D8 = +const struct SpriteTemplate gShakeMonOrTerrainSpriteTemplate = { .tileTag = 0, .paletteTag = 0, @@ -127,42 +127,42 @@ const struct SpriteTemplate gBattleAnimSpriteTemplate_85972D8 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_81160A4, + .callback = AnimShakeMonOrBattleTerrain, }; -const union AffineAnimCmd gUnknown_085972F0[] = +static const union AffineAnimCmd sAffineAnim_HitSplat_0[] = { AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 8), AFFINEANIMCMD_END, }; -const union AffineAnimCmd gUnknown_08597300[] = +static const union AffineAnimCmd sAffineAnim_HitSplat_1[] = { AFFINEANIMCMD_FRAME(0xD8, 0xD8, 0, 0), AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 8), AFFINEANIMCMD_END, }; -const union AffineAnimCmd gUnknown_08597318[] = +static const union AffineAnimCmd sAffineAnim_HitSplat_2[] = { AFFINEANIMCMD_FRAME(0xB0, 0xB0, 0, 0), AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 8), AFFINEANIMCMD_END, }; -const union AffineAnimCmd gUnknown_08597330[] = +static const union AffineAnimCmd sAffineAnim_HitSplat_3[] = { AFFINEANIMCMD_FRAME(0x80, 0x80, 0, 0), AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 8), AFFINEANIMCMD_END, }; -const union AffineAnimCmd *const gUnknown_08597348[] = +static const union AffineAnimCmd *const sAffineAnims_HitSplat[] = { - gUnknown_085972F0, - gUnknown_08597300, - gUnknown_08597318, - gUnknown_08597330, + sAffineAnim_HitSplat_0, + sAffineAnim_HitSplat_1, + sAffineAnim_HitSplat_2, + sAffineAnim_HitSplat_3, }; const struct SpriteTemplate gBasicHitSplatSpriteTemplate = @@ -172,55 +172,55 @@ const struct SpriteTemplate gBasicHitSplatSpriteTemplate = .oam = &gOamData_AffineNormal_ObjBlend_32x32, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_08597348, - .callback = sub_8116388, + .affineAnims = sAffineAnims_HitSplat, + .callback = AnimHitSplatBasic, }; -const struct SpriteTemplate gBattleAnimSpriteTemplate_8597370 = +const struct SpriteTemplate gHandleInvertHitSplatSpriteTemplate = { .tileTag = ANIM_TAG_IMPACT, .paletteTag = ANIM_TAG_IMPACT, .oam = &gOamData_AffineNormal_ObjBlend_32x32, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_08597348, - .callback = sub_8116420, + .affineAnims = sAffineAnims_HitSplat, + .callback = AnimHitSplatHandleInvert, }; -const struct SpriteTemplate gUnknown_08597388 = +const struct SpriteTemplate gWaterHitSplatSpriteTemplate = { .tileTag = ANIM_TAG_WATER_IMPACT, .paletteTag = ANIM_TAG_WATER_IMPACT, .oam = &gOamData_AffineNormal_ObjBlend_32x32, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_08597348, - .callback = sub_8116388, + .affineAnims = sAffineAnims_HitSplat, + .callback = AnimHitSplatBasic, }; -const struct SpriteTemplate gUnknown_085973A0 = +const struct SpriteTemplate gRandomPosHitSplatSpriteTemplate = { .tileTag = ANIM_TAG_IMPACT, .paletteTag = ANIM_TAG_IMPACT, .oam = &gOamData_AffineNormal_ObjBlend_32x32, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_08597348, - .callback = sub_8116458, + .affineAnims = sAffineAnims_HitSplat, + .callback = AnimHitSplatRandom, }; -const struct SpriteTemplate gBattleAnimSpriteTemplate_85973B8 = +const struct SpriteTemplate gMonEdgeHitSplatSpriteTemplate = { .tileTag = ANIM_TAG_IMPACT, .paletteTag = ANIM_TAG_IMPACT, .oam = &gOamData_AffineNormal_ObjBlend_32x32, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_08597348, - .callback = sub_81164F0, + .affineAnims = sAffineAnims_HitSplat, + .callback = AnimHitSplatOnMonEdge, }; -const struct SpriteTemplate gUnknown_085973D0 = +const struct SpriteTemplate gCrossImpactSpriteTemplate = { .tileTag = ANIM_TAG_CROSS_IMPACT, .paletteTag = ANIM_TAG_CROSS_IMPACT, @@ -228,29 +228,29 @@ const struct SpriteTemplate gUnknown_085973D0 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8116560, + .callback = AnimCrossImpact, }; -const struct SpriteTemplate gUnknown_085973E8 = +const struct SpriteTemplate gFlashingHitSplatSpriteTemplate = { .tileTag = ANIM_TAG_IMPACT, .paletteTag = ANIM_TAG_IMPACT, .oam = &gOamData_AffineNormal_ObjNormal_32x32, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_08597348, - .callback = sub_81165A8, + .affineAnims = sAffineAnims_HitSplat, + .callback = AnimFlashingHitSplat, }; -const struct SpriteTemplate gUnknown_08597400 = +const struct SpriteTemplate gPersistHitSplatSpriteTemplate = { .tileTag = ANIM_TAG_IMPACT, .paletteTag = ANIM_TAG_IMPACT, .oam = &gOamData_AffineNormal_ObjBlend_32x32, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_08597348, - .callback = sub_81163D0, + .affineAnims = sAffineAnims_HitSplat, + .callback = AnimHitSplatPersistent, }; // Moves a spinning duck around the mon's head. @@ -259,7 +259,7 @@ const struct SpriteTemplate gUnknown_08597400 = // arg 2: initial wave offset // arg 3: wave period (higher means faster wave) // arg 4: duration -void AnimConfusionDuck(struct Sprite *sprite) +static void AnimConfusionDuck(struct Sprite *sprite) { sprite->pos1.x += gBattleAnimArgs[0]; sprite->pos1.y += gBattleAnimArgs[1]; @@ -277,11 +277,11 @@ void AnimConfusionDuck(struct Sprite *sprite) } sprite->data[3] = gBattleAnimArgs[4]; - sprite->callback = AnimConfusionDuckStep; + sprite->callback = AnimConfusionDuck_Step; sprite->callback(sprite); } -static void AnimConfusionDuckStep(struct Sprite *sprite) +static void AnimConfusionDuck_Step(struct Sprite *sprite) { sprite->pos2.x = Cos(sprite->data[0], 30); sprite->pos2.y = Sin(sprite->data[0], 10); @@ -302,12 +302,12 @@ static void AnimConfusionDuckStep(struct Sprite *sprite) // arg 2: start blend amount // arg 3: end blend amount // arg 4: blend color -void AnimSimplePaletteBlend(struct Sprite *sprite) +static void AnimSimplePaletteBlend(struct Sprite *sprite) { u32 selectedPalettes = UnpackSelectedBattleAnimPalettes(gBattleAnimArgs[0]); BeginNormalPaletteFade(selectedPalettes, gBattleAnimArgs[1], gBattleAnimArgs[2], gBattleAnimArgs[3], gBattleAnimArgs[4]); - sprite->invisible = 1; - sprite->callback = AnimSimplePaletteBlendStep; + sprite->invisible = TRUE; + sprite->callback = AnimSimplePaletteBlend_Step; } // Unpacks a bitfield and returns a bitmask of its selected palettes. @@ -331,13 +331,13 @@ u32 UnpackSelectedBattleAnimPalettes(s16 selector) return sub_80A75AC(battleBackground, attacker, target, attackerPartner, targetPartner, arg5, arg6); } -static void AnimSimplePaletteBlendStep(struct Sprite *sprite) +static void AnimSimplePaletteBlend_Step(struct Sprite *sprite) { if (!gPaletteFade.active) DestroyAnimSprite(sprite); } -void sub_81158A4(struct Sprite *sprite) +static void AnimComplexPaletteBlend(struct Sprite *sprite) { u32 selectedPalettes; @@ -352,11 +352,11 @@ void sub_81158A4(struct Sprite *sprite) selectedPalettes = UnpackSelectedBattleAnimPalettes(sprite->data[7]); BlendPalettes(selectedPalettes, gBattleAnimArgs[4], gBattleAnimArgs[3]); - sprite->invisible = 1; - sprite->callback = sub_81158F8; + sprite->invisible = TRUE; + sprite->callback = AnimComplexPaletteBlend_Step1; } -static void sub_81158F8(struct Sprite *sprite) +static void AnimComplexPaletteBlend_Step1(struct Sprite *sprite) { u32 selectedPalettes; @@ -371,7 +371,7 @@ static void sub_81158F8(struct Sprite *sprite) if (sprite->data[2] == 0) { - sprite->callback = sub_8115984; + sprite->callback = AnimComplexPaletteBlend_Step2; return; } @@ -386,7 +386,7 @@ static void sub_81158F8(struct Sprite *sprite) sprite->data[2]--; } -static void sub_8115984(struct Sprite *sprite) +static void AnimComplexPaletteBlend_Step2(struct Sprite *sprite) { u32 selectedPalettes; @@ -398,7 +398,7 @@ static void sub_8115984(struct Sprite *sprite) } } -void sub_81159B4(struct Sprite *sprite) +static void sub_81159B4(struct Sprite *sprite) { sprite->pos1.x += gBattleAnimArgs[0]; sprite->pos1.y += gBattleAnimArgs[1]; @@ -413,55 +413,71 @@ void sub_81159B4(struct Sprite *sprite) sprite->callback(sprite); } -void sub_8115A04(u8 taskId) -{ - gTasks[taskId].data[0] = gBattleAnimArgs[0]; - gTasks[taskId].data[1] = gBattleAnimArgs[1]; - gTasks[taskId].data[2] = gBattleAnimArgs[2]; - gTasks[taskId].data[3] = gBattleAnimArgs[3]; - gTasks[taskId].data[4] = gBattleAnimArgs[4]; - gTasks[taskId].data[5] = gBattleAnimArgs[5]; - gTasks[taskId].data[8] = 0; - sub_8115A54(taskId, 0, gTasks[taskId].data[4]); - gTasks[taskId].func = sub_8115AA4; -} - -static void sub_8115A54(u8 taskId, u8 initialBlendAmount, u8 targetBlendAmount) -{ - u32 selectedPalettes = UnpackSelectedBattleAnimPalettes(gTasks[taskId].data[0]); +// Task data for AnimTask_BlendColorCycle, AnimTask_BlendColorCycleExclude, and AnimTask_BlendColorCycleByTag +#define tPalSelector data[0] // AnimTask_BlendColorCycle +#define tPalTag data[0] // AnimTask_BlendColorCycleByTag +#define tDelay data[1] +#define tNumBlends data[2] +#define tInitialBlendY data[3] +#define tTargetBlendY data[4] +#define tBlendColor data[5] +#define tRestoreBlend data[8] +#define tPalSelectorHi data[9] +#define tPalSelectorLo data[10] + +// Blends mon/screen to designated color or back alternately tNumBlends times +// Many uses of this task only set a tNumBlends of 2, which has the effect of blending to a color and back once +void AnimTask_BlendColorCycle(u8 taskId) +{ + gTasks[taskId].tPalSelector = gBattleAnimArgs[0]; + gTasks[taskId].tDelay = gBattleAnimArgs[1]; + gTasks[taskId].tNumBlends = gBattleAnimArgs[2]; + gTasks[taskId].tInitialBlendY = gBattleAnimArgs[3]; + gTasks[taskId].tTargetBlendY = gBattleAnimArgs[4]; + gTasks[taskId].tBlendColor = gBattleAnimArgs[5]; + gTasks[taskId].tRestoreBlend = FALSE; + BlendColorCycle(taskId, 0, gTasks[taskId].tTargetBlendY); + gTasks[taskId].func = AnimTask_BlendColorCycleLoop; +} + +static void BlendColorCycle(u8 taskId, u8 startBlendAmount, u8 targetBlendAmount) +{ + u32 selectedPalettes = UnpackSelectedBattleAnimPalettes(gTasks[taskId].tPalSelector); BeginNormalPaletteFade( selectedPalettes, - gTasks[taskId].data[1], - initialBlendAmount, + gTasks[taskId].tDelay, + startBlendAmount, targetBlendAmount, - gTasks[taskId].data[5]); + gTasks[taskId].tBlendColor); - gTasks[taskId].data[2]--; - gTasks[taskId].data[8] ^= 1; + gTasks[taskId].tNumBlends--; + gTasks[taskId].tRestoreBlend ^= 1; } -static void sub_8115AA4(u8 taskId) +static void AnimTask_BlendColorCycleLoop(u8 taskId) { - u8 initialBlendAmount, targetBlendAmount; + u8 startBlendAmount, targetBlendAmount; if (!gPaletteFade.active) { - if (gTasks[taskId].data[2] > 0) + if (gTasks[taskId].tNumBlends > 0) { - if (gTasks[taskId].data[8] == 0) + if (!gTasks[taskId].tRestoreBlend) { - initialBlendAmount = gTasks[taskId].data[3]; - targetBlendAmount = gTasks[taskId].data[4]; + // Blend to designated color + startBlendAmount = gTasks[taskId].tInitialBlendY; + targetBlendAmount = gTasks[taskId].tTargetBlendY; } else { - initialBlendAmount = gTasks[taskId].data[4]; - targetBlendAmount = gTasks[taskId].data[3]; + // Blend back to original color + startBlendAmount = gTasks[taskId].tTargetBlendY; + targetBlendAmount = gTasks[taskId].tInitialBlendY; } - if (gTasks[taskId].data[2] == 1) + if (gTasks[taskId].tNumBlends == 1) targetBlendAmount = 0; - sub_8115A54(taskId, initialBlendAmount, targetBlendAmount); + BlendColorCycle(taskId, startBlendAmount, targetBlendAmount); } else { @@ -470,18 +486,19 @@ static void sub_8115AA4(u8 taskId) } } -void sub_8115B0C(u8 taskId) +// See AnimTask_BlendColorCycle. Same, but excludes Attacker and Target +void AnimTask_BlendColorCycleExclude(u8 taskId) { int battler; u32 selectedPalettes = 0; gTasks[taskId].data[0] = gBattleAnimArgs[0]; - gTasks[taskId].data[1] = gBattleAnimArgs[1]; - gTasks[taskId].data[2] = gBattleAnimArgs[2]; - gTasks[taskId].data[3] = gBattleAnimArgs[3]; - gTasks[taskId].data[4] = gBattleAnimArgs[4]; - gTasks[taskId].data[5] = gBattleAnimArgs[5]; - gTasks[taskId].data[8] = 0; + gTasks[taskId].tDelay = gBattleAnimArgs[1]; + gTasks[taskId].tNumBlends = gBattleAnimArgs[2]; + gTasks[taskId].tInitialBlendY = gBattleAnimArgs[3]; + gTasks[taskId].tTargetBlendY = gBattleAnimArgs[4]; + gTasks[taskId].tBlendColor = gBattleAnimArgs[5]; + gTasks[taskId].tRestoreBlend = 0; for (battler = 0; battler < gBattlersCount; battler++) { @@ -492,48 +509,50 @@ void sub_8115B0C(u8 taskId) if (gBattleAnimArgs[0] == 1) selectedPalettes |= 0xE; - gTasks[taskId].data[9] = selectedPalettes >> 16; - gTasks[taskId].data[10] = selectedPalettes & 0xFF; - sub_8115BC8(taskId, 0, gTasks[taskId].data[4]); - gTasks[taskId].func = sub_8115C18; + gTasks[taskId].tPalSelectorHi = selectedPalettes >> 16; + gTasks[taskId].tPalSelectorLo = selectedPalettes & 0xFF; + BlendColorCycleExclude(taskId, 0, gTasks[taskId].tTargetBlendY); + gTasks[taskId].func = AnimTask_BlendColorCycleExcludeLoop; } -static void sub_8115BC8(u8 taskId, u8 initialBlendAmount, u8 targetBlendAmount) +static void BlendColorCycleExclude(u8 taskId, u8 startBlendAmount, u8 targetBlendAmount) { - u32 selectedPalettes = ((u16)gTasks[taskId].data[9] << 16) | (u16)gTasks[taskId].data[10]; + u32 selectedPalettes = ((u16)gTasks[taskId].tPalSelectorHi << 16) | (u16)gTasks[taskId].tPalSelectorLo; BeginNormalPaletteFade( selectedPalettes, - gTasks[taskId].data[1], - initialBlendAmount, + gTasks[taskId].tDelay, + startBlendAmount, targetBlendAmount, - gTasks[taskId].data[5]); + gTasks[taskId].tBlendColor); - gTasks[taskId].data[2]--; - gTasks[taskId].data[8] ^= 1; + gTasks[taskId].tNumBlends--; + gTasks[taskId].tRestoreBlend ^= 1; } -static void sub_8115C18(u8 taskId) +static void AnimTask_BlendColorCycleExcludeLoop(u8 taskId) { - u8 initialBlendAmount, targetBlendAmount; + u8 startBlendAmount, targetBlendAmount; if (!gPaletteFade.active) { - if (gTasks[taskId].data[2] > 0) + if (gTasks[taskId].tNumBlends > 0) { - if (gTasks[taskId].data[8] == 0) + if (!gTasks[taskId].tRestoreBlend) { - initialBlendAmount = gTasks[taskId].data[3]; - targetBlendAmount = gTasks[taskId].data[4]; + // Blend to designated color + startBlendAmount = gTasks[taskId].tInitialBlendY; + targetBlendAmount = gTasks[taskId].tTargetBlendY; } else { - initialBlendAmount = gTasks[taskId].data[4]; - targetBlendAmount = gTasks[taskId].data[3]; + // Blend back to original color + startBlendAmount = gTasks[taskId].tTargetBlendY; + targetBlendAmount = gTasks[taskId].tInitialBlendY; } - if (gTasks[taskId].data[2] == 1) + if (gTasks[taskId].tNumBlends == 1) targetBlendAmount = 0; - sub_8115BC8(taskId, initialBlendAmount, targetBlendAmount); + BlendColorCycleExclude(taskId, startBlendAmount, targetBlendAmount); } else { @@ -542,58 +561,61 @@ static void sub_8115C18(u8 taskId) } } -void sub_8115C80(u8 taskId) +// See AnimTask_BlendColorCycle. Same, but selects palette by ANIM_TAG_* +void AnimTask_BlendColorCycleByTag(u8 taskId) { u8 paletteIndex; - gTasks[taskId].data[0] = gBattleAnimArgs[0]; - gTasks[taskId].data[1] = gBattleAnimArgs[1]; - gTasks[taskId].data[2] = gBattleAnimArgs[2]; - gTasks[taskId].data[3] = gBattleAnimArgs[3]; - gTasks[taskId].data[4] = gBattleAnimArgs[4]; - gTasks[taskId].data[5] = gBattleAnimArgs[5]; - gTasks[taskId].data[8] = 0; + gTasks[taskId].tPalTag = gBattleAnimArgs[0]; + gTasks[taskId].tDelay = gBattleAnimArgs[1]; + gTasks[taskId].tNumBlends = gBattleAnimArgs[2]; + gTasks[taskId].tInitialBlendY = gBattleAnimArgs[3]; + gTasks[taskId].tTargetBlendY = gBattleAnimArgs[4]; + gTasks[taskId].tBlendColor = gBattleAnimArgs[5]; + gTasks[taskId].tRestoreBlend = FALSE; - sub_8115CD0(taskId, 0, gTasks[taskId].data[4]); - gTasks[taskId].func = sub_8115D2C; + BlendColorCycleByTag(taskId, 0, gTasks[taskId].tTargetBlendY); + gTasks[taskId].func = AnimTask_BlendColorCycleByTagLoop; } -static void sub_8115CD0(u8 taskId, u8 initialBlendAmount, u8 targetBlendAmount) +static void BlendColorCycleByTag(u8 taskId, u8 startBlendAmount, u8 targetBlendAmount) { - u8 paletteIndex = IndexOfSpritePaletteTag(gTasks[taskId].data[0]); + u8 paletteIndex = IndexOfSpritePaletteTag(gTasks[taskId].tPalTag); BeginNormalPaletteFade( 1 << (paletteIndex + 16), - gTasks[taskId].data[1], - initialBlendAmount, + gTasks[taskId].tDelay, + startBlendAmount, targetBlendAmount, - gTasks[taskId].data[5]); + gTasks[taskId].tBlendColor); - gTasks[taskId].data[2]--; - gTasks[taskId].data[8] ^= 1; + gTasks[taskId].tNumBlends--; + gTasks[taskId].tRestoreBlend ^= 1; } -static void sub_8115D2C(u8 taskId) +static void AnimTask_BlendColorCycleByTagLoop(u8 taskId) { - u8 initialBlendAmount, targetBlendAmount; + u8 startBlendAmount, targetBlendAmount; if (!gPaletteFade.active) { - if (gTasks[taskId].data[2] > 0) + if (gTasks[taskId].tNumBlends > 0) { - if (gTasks[taskId].data[8] == 0) + if (!gTasks[taskId].tRestoreBlend) { - initialBlendAmount = gTasks[taskId].data[3]; - targetBlendAmount = gTasks[taskId].data[4]; + // Blend to designated color + startBlendAmount = gTasks[taskId].tInitialBlendY; + targetBlendAmount = gTasks[taskId].tTargetBlendY; } else { - initialBlendAmount = gTasks[taskId].data[4]; - targetBlendAmount = gTasks[taskId].data[3]; + // Blend back to original color + startBlendAmount = gTasks[taskId].tTargetBlendY; + targetBlendAmount = gTasks[taskId].tInitialBlendY; } - if (gTasks[taskId].data[2] == 1) + if (gTasks[taskId].tNumBlends == 1) targetBlendAmount = 0; - sub_8115CD0(taskId, initialBlendAmount, targetBlendAmount); + BlendColorCycleByTag(taskId, startBlendAmount, targetBlendAmount); } else { @@ -602,7 +624,19 @@ static void sub_8115D2C(u8 taskId) } } -void sub_8115D94(u8 taskId) +#undef tPalSelector +#undef tPalTag +#undef tDelay +#undef tNumBlends +#undef tInitialBlendY +#undef tTargetBlendY +#undef tBlendColor +#undef tRestoreBlend +#undef tPalSelectorHi +#undef tPalSelectorLo + +// Flashes the specified anim tag with given color. Used e.g. to flash the particles red in Hyper Beam +void AnimTask_FlashAnimTagWithColor(u8 taskId) { u8 paletteIndex; @@ -623,10 +657,10 @@ void sub_8115D94(u8 taskId) gBattleAnimArgs[4], gBattleAnimArgs[3]); - gTasks[taskId].func = sub_8115E00; + gTasks[taskId].func = AnimTask_FlashAnimTagWithColor_Step1; } -static void sub_8115E00(u8 taskId) +static void AnimTask_FlashAnimTagWithColor_Step1(u8 taskId) { u32 selectedPalettes; @@ -641,7 +675,7 @@ static void sub_8115E00(u8 taskId) if (gTasks[taskId].data[2] == 0) { - gTasks[taskId].func = sub_8115EB8; + gTasks[taskId].func = AnimTask_FlashAnimTagWithColor_Step2; return; } @@ -670,7 +704,7 @@ static void sub_8115E00(u8 taskId) gTasks[taskId].data[2]--; } -static void sub_8115EB8(u8 taskId) +static void AnimTask_FlashAnimTagWithColor_Step2(u8 taskId) { u32 selectedPalettes; @@ -682,7 +716,7 @@ static void sub_8115EB8(u8 taskId) } } -void sub_8115F10(u8 taskId) +void AnimTask_InvertScreenColor(u8 taskId) { u32 selectedPalettes = 0; u8 attackerBattler = gBattleAnimAttacker; @@ -746,11 +780,11 @@ void sub_8115F94(u8 taskId) } } -void sub_81160A4(struct Sprite *sprite) +static void AnimShakeMonOrBattleTerrain(struct Sprite *sprite) { u16 var0; - sprite->invisible = 1; + sprite->invisible = TRUE; sprite->data[0] = -gBattleAnimArgs[0]; sprite->data[1] = gBattleAnimArgs[1]; sprite->data[2] = gBattleAnimArgs[1]; @@ -776,12 +810,12 @@ void sub_81160A4(struct Sprite *sprite) sprite->data[5] = gBattleAnimArgs[3]; var0 = sprite->data[5] - 2; if (var0 < 2) - sub_81161F4(); + AnimShakeMonOrBattleTerrain_UpdateCoordOffsetEnabled(); - sprite->callback = sub_8116148; + sprite->callback = AnimShakeMonOrBattleTerrain_Step; } -static void sub_8116148(struct Sprite *sprite) +static void AnimShakeMonOrBattleTerrain_Step(struct Sprite *sprite) { u8 i; u16 var0; @@ -807,61 +841,73 @@ static void sub_8116148(struct Sprite *sprite) if (var0 < 2) { for (i = 0; i < gBattlersCount; i++) - gSprites[gBattlerSpriteIds[i]].coordOffsetEnabled = 0; + gSprites[gBattlerSpriteIds[i]].coordOffsetEnabled = FALSE; } DestroyAnimSprite(sprite); } } -static void sub_81161F4(void) +static void AnimShakeMonOrBattleTerrain_UpdateCoordOffsetEnabled(void) { - gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].coordOffsetEnabled = 0; - gSprites[gBattlerSpriteIds[gBattleAnimTarget]].coordOffsetEnabled = 0; + gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].coordOffsetEnabled = FALSE; + gSprites[gBattlerSpriteIds[gBattleAnimTarget]].coordOffsetEnabled = FALSE; if (gBattleAnimArgs[4] == 2) { - gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].coordOffsetEnabled = 1; - gSprites[gBattlerSpriteIds[gBattleAnimTarget]].coordOffsetEnabled = 1; + gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].coordOffsetEnabled = TRUE; + gSprites[gBattlerSpriteIds[gBattleAnimTarget]].coordOffsetEnabled = TRUE; } else { if (gBattleAnimArgs[4] == 0) - gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].coordOffsetEnabled = 1; + gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].coordOffsetEnabled = TRUE; else - gSprites[gBattlerSpriteIds[gBattleAnimTarget]].coordOffsetEnabled = 1; + gSprites[gBattlerSpriteIds[gBattleAnimTarget]].coordOffsetEnabled = TRUE; } } -void sub_81162A4(u8 taskId) -{ - gTasks[taskId].data[0] = gBattleAnimArgs[0]; - gTasks[taskId].data[1] = gBattleAnimArgs[1]; - gTasks[taskId].data[2] = gBattleAnimArgs[2]; - gTasks[taskId].data[3] = gBattleAnimArgs[3]; - gTasks[taskId].data[8] = gBattleAnimArgs[3]; +// Task data for AnimTask_ShakeBattleTerrain +#define tXOffset data[0] +#define tYOffset data[1] +#define tNumShakes data[2] +#define tTimer data[3] +#define tShakeDelay data[8] + +// Can shake battle terrain back and forth on the X or down and back to original pos on Y (cant shake up from orig pos) +// arg0: x offset of shake +// arg1: y offset of shake +// arg2: number of shakes +// arg3: time between shakes +void AnimTask_ShakeBattleTerrain(u8 taskId) +{ + gTasks[taskId].tXOffset = gBattleAnimArgs[0]; + gTasks[taskId].tYOffset = gBattleAnimArgs[1]; + gTasks[taskId].tNumShakes = gBattleAnimArgs[2]; + gTasks[taskId].tTimer = gBattleAnimArgs[3]; + gTasks[taskId].tShakeDelay = gBattleAnimArgs[3]; gBattle_BG3_X = gBattleAnimArgs[0]; gBattle_BG3_Y = gBattleAnimArgs[1]; - gTasks[taskId].func = sub_81162F8; + gTasks[taskId].func = AnimTask_ShakeBattleTerrain_Step; gTasks[taskId].func(taskId); } -static void sub_81162F8(u8 taskId) +static void AnimTask_ShakeBattleTerrain_Step(u8 taskId) { - if (gTasks[taskId].data[3] == 0) + if (gTasks[taskId].tTimer == 0) { - if (gBattle_BG3_X == gTasks[taskId].data[0]) - gBattle_BG3_X = -gTasks[taskId].data[0]; + if (gBattle_BG3_X == gTasks[taskId].tXOffset) + gBattle_BG3_X = -gTasks[taskId].tXOffset; else - gBattle_BG3_X = gTasks[taskId].data[0]; + gBattle_BG3_X = gTasks[taskId].tXOffset; - if (gBattle_BG3_Y == -gTasks[taskId].data[1]) + if (gBattle_BG3_Y == -gTasks[taskId].tYOffset) gBattle_BG3_Y = 0; else - gBattle_BG3_Y = -gTasks[taskId].data[1]; + gBattle_BG3_Y = -gTasks[taskId].tYOffset; - gTasks[taskId].data[3] = gTasks[taskId].data[8]; - if (--gTasks[taskId].data[2] == 0) + gTasks[taskId].tTimer = gTasks[taskId].tShakeDelay; + if (--gTasks[taskId].tNumShakes == 0) { gBattle_BG3_X = 0; gBattle_BG3_Y = 0; @@ -870,14 +916,20 @@ static void sub_81162F8(u8 taskId) } else { - gTasks[taskId].data[3]--; + gTasks[taskId].tTimer--; } } -void sub_8116388(struct Sprite *sprite) +#undef tXOffset +#undef tYOffset +#undef tNumShakes +#undef tTimer +#undef tShakeDelay + +static void AnimHitSplatBasic(struct Sprite *sprite) { StartSpriteAffineAnim(sprite, gBattleAnimArgs[3]); - if (gBattleAnimArgs[2] == 0) + if (gBattleAnimArgs[2] == ANIM_ATTACKER) InitSpritePosToAnimAttacker(sprite, 1); else InitSpritePosToAnimTarget(sprite, TRUE); @@ -886,34 +938,37 @@ void sub_8116388(struct Sprite *sprite) StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); } -static void sub_81163D0(struct Sprite *sprite) +// Same as basic hit splat but takes a length of time to persist for (arg4) +static void AnimHitSplatPersistent(struct Sprite *sprite) { StartSpriteAffineAnim(sprite, gBattleAnimArgs[3]); - if (gBattleAnimArgs[2] == 0) + if (gBattleAnimArgs[2] == ANIM_ATTACKER) InitSpritePosToAnimAttacker(sprite, 1); else InitSpritePosToAnimTarget(sprite, TRUE); sprite->data[0] = gBattleAnimArgs[4]; sprite->callback = RunStoredCallbackWhenAffineAnimEnds; - StoreSpriteCallbackInData6(sprite, sub_810E2C8); + StoreSpriteCallbackInData6(sprite, DestroyAnimSpriteAfterTimer); } -void sub_8116420(struct Sprite *sprite) +// For paired hit splats whose position is inverted when used by the opponent on the player. +// Used by Twineedle and Spike Cannon +static void AnimHitSplatHandleInvert(struct Sprite *sprite) { if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER && !IsContest()) gBattleAnimArgs[1] = -gBattleAnimArgs[1]; - sub_8116388(sprite); + AnimHitSplatBasic(sprite); } -void sub_8116458(struct Sprite *sprite) +static void AnimHitSplatRandom(struct Sprite *sprite) { if (gBattleAnimArgs[1] == -1) gBattleAnimArgs[1] = Random2() & 3; StartSpriteAffineAnim(sprite, gBattleAnimArgs[1]); - if (gBattleAnimArgs[0] == 0) + if (gBattleAnimArgs[0] == ANIM_ATTACKER) InitSpritePosToAnimAttacker(sprite, 0); else InitSpritePosToAnimTarget(sprite, FALSE); @@ -925,7 +980,7 @@ void sub_8116458(struct Sprite *sprite) sprite->callback = RunStoredCallbackWhenAffineAnimEnds; } -void sub_81164F0(struct Sprite *sprite) +static void AnimHitSplatOnMonEdge(struct Sprite *sprite) { sprite->data[0] = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); sprite->pos1.x = gSprites[sprite->data[0]].pos1.x + gSprites[sprite->data[0]].pos2.x; @@ -937,9 +992,9 @@ void sub_81164F0(struct Sprite *sprite) sprite->callback = RunStoredCallbackWhenAffineAnimEnds; } -void sub_8116560(struct Sprite *sprite) +static void AnimCrossImpact(struct Sprite *sprite) { - if (gBattleAnimArgs[2] == 0) + if (gBattleAnimArgs[2] == ANIM_ATTACKER) InitSpritePosToAnimAttacker(sprite, 1); else InitSpritePosToAnimTarget(sprite, TRUE); @@ -949,18 +1004,18 @@ void sub_8116560(struct Sprite *sprite) sprite->callback = WaitAnimForDuration; } -void sub_81165A8(struct Sprite *sprite) +static void AnimFlashingHitSplat(struct Sprite *sprite) { StartSpriteAffineAnim(sprite, gBattleAnimArgs[3]); - if (gBattleAnimArgs[2] == 0) + if (gBattleAnimArgs[2] == ANIM_ATTACKER) InitSpritePosToAnimAttacker(sprite, 1); else InitSpritePosToAnimTarget(sprite, TRUE); - sprite->callback = sub_81165E4; + sprite->callback = AnimFlashingHitSplat_Step; } -static void sub_81165E4(struct Sprite *sprite) +static void AnimFlashingHitSplat_Step(struct Sprite *sprite) { sprite->invisible ^= 1; if (sprite->data[0]++ > 12) diff --git a/src/poison.c b/src/battle_anim_poison.c index 42e7d6a58..bc5624249 100644 --- a/src/poison.c +++ b/src/battle_anim_poison.c @@ -3,19 +3,17 @@ #include "trig.h" #include "constants/rgb.h" -void sub_810DBAC(struct Sprite *); -void sub_810DC2C(struct Sprite *); -void sub_810DCD0(struct Sprite *); -void sub_810DD50(struct Sprite *); -void AnimBubbleEffect(struct Sprite *); -static void sub_810DC10(struct Sprite *); -static void sub_810DCB4(struct Sprite *); -static void sub_810DD24(struct Sprite *); -static void AnimBubbleEffectStep(struct Sprite *); - -extern const union AnimCmd *const gUnknown_08595200[]; - -const union AnimCmd gUnknown_0859611C[] = +static void AnimSludgeProjectile(struct Sprite *); +static void AnimSludgeProjectile_Step(struct Sprite *); +static void AnimAcidPoisonBubble(struct Sprite *); +static void AnimAcidPoisonBubble_Step(struct Sprite *); +static void AnimSludgeBombHitParticle(struct Sprite *); +static void AnimSludgeBombHitParticle_Step(struct Sprite *); +static void AnimAcidPoisonDroplet(struct Sprite *); +static void AnimBubbleEffect(struct Sprite *); +static void AnimBubbleEffect_Step(struct Sprite *); + +static const union AnimCmd sAnim_ToxicBubble[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_FRAME(8, 5), @@ -24,56 +22,56 @@ const union AnimCmd gUnknown_0859611C[] = ANIMCMD_END, }; -const union AnimCmd *const gUnknown_08596130[] = +static const union AnimCmd *const sAnims_ToxicBubble[] = { - gUnknown_0859611C, + sAnim_ToxicBubble, }; -const struct SpriteTemplate gUnknown_08596134 = +const struct SpriteTemplate gToxicBubbleSpriteTemplate = { .tileTag = ANIM_TAG_TOXIC_BUBBLE, .paletteTag = ANIM_TAG_TOXIC_BUBBLE, .oam = &gOamData_AffineOff_ObjNormal_16x32, - .anims = gUnknown_08596130, + .anims = sAnims_ToxicBubble, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimSpriteOnMonPos, }; -const union AnimCmd gUnknown_0859614C[] = +static const union AnimCmd sAnim_PoisonProjectile[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_08596154[] = +static const union AnimCmd sAnim_AcidPoisonDroplet[] = { ANIMCMD_FRAME(4, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_0859615C[] = +static const union AnimCmd sAnim_SludgeBombHit[] = { ANIMCMD_FRAME(8, 1), ANIMCMD_END, }; -const union AnimCmd *const gUnknown_08596164[] = +static const union AnimCmd *const sAnims_PoisonProjectile[] = { - gUnknown_0859614C, + sAnim_PoisonProjectile, }; -const union AnimCmd *const gUnknown_08596168[] = +static const union AnimCmd *const sAnims_AcidPoisonDroplet[] = { - gUnknown_08596154, + sAnim_AcidPoisonDroplet, }; -const union AnimCmd *const gUnknown_0859616C[] = +static const union AnimCmd *const sAnims_SludgeBombHit[] = { - gUnknown_0859615C, + sAnim_SludgeBombHit, }; -const union AffineAnimCmd gUnknown_08596170[] = +static const union AffineAnimCmd sAffineAnim_PoisonProjectile[] = { AFFINEANIMCMD_FRAME(0x160, 0x160, 0, 0), AFFINEANIMCMD_FRAME(0xFFF6, 0xFFF6, 0, 10), @@ -81,88 +79,88 @@ const union AffineAnimCmd gUnknown_08596170[] = AFFINEANIMCMD_JUMP(0), }; -const union AffineAnimCmd gUnknown_08596190[] = +static const union AffineAnimCmd sAffineAnim_SludgeBombHit[] = { AFFINEANIMCMD_FRAME(0xEC, 0xEC, 0, 0), AFFINEANIMCMD_END, }; -const union AffineAnimCmd *const gUnknown_085961A0[] = +static const union AffineAnimCmd *const sAffineAnims_PoisonProjectile[] = { - gUnknown_08596170, + sAffineAnim_PoisonProjectile, }; -const union AffineAnimCmd *const gUnknown_085961A4[] = +static const union AffineAnimCmd *const sAffineAnims_SludgeBombHit[] = { - gUnknown_08596190, + sAffineAnim_SludgeBombHit, }; -const struct SpriteTemplate gUnknown_085961A8 = +const struct SpriteTemplate gSludgeProjectileSpriteTemplate = { .tileTag = ANIM_TAG_POISON_BUBBLE, .paletteTag = ANIM_TAG_POISON_BUBBLE, .oam = &gOamData_AffineDouble_ObjNormal_16x16, - .anims = gUnknown_08596164, + .anims = sAnims_PoisonProjectile, .images = NULL, - .affineAnims = gUnknown_085961A0, - .callback = sub_810DBAC, + .affineAnims = sAffineAnims_PoisonProjectile, + .callback = AnimSludgeProjectile, }; -const struct SpriteTemplate gUnknown_085961C0 = +const struct SpriteTemplate gAcidPoisonBubbleSpriteTemplate = { .tileTag = ANIM_TAG_POISON_BUBBLE, .paletteTag = ANIM_TAG_POISON_BUBBLE, .oam = &gOamData_AffineDouble_ObjNormal_16x16, - .anims = gUnknown_08596164, + .anims = sAnims_PoisonProjectile, .images = NULL, - .affineAnims = gUnknown_085961A0, - .callback = sub_810DC2C, + .affineAnims = sAffineAnims_PoisonProjectile, + .callback = AnimAcidPoisonBubble, }; -const struct SpriteTemplate gUnknown_085961D8 = +const struct SpriteTemplate gSludgeBombHitParticleSpriteTemplate = { .tileTag = ANIM_TAG_POISON_BUBBLE, .paletteTag = ANIM_TAG_POISON_BUBBLE, .oam = &gOamData_AffineNormal_ObjNormal_16x16, - .anims = gUnknown_0859616C, + .anims = sAnims_SludgeBombHit, .images = NULL, - .affineAnims = gUnknown_085961A4, - .callback = sub_810DCD0, + .affineAnims = sAffineAnims_SludgeBombHit, + .callback = AnimSludgeBombHitParticle, }; -const union AffineAnimCmd gUnknown_085961F0[] = +static const union AffineAnimCmd sAffineAnim_AcidPoisonDroplet[] = { AFFINEANIMCMD_FRAME(0xFFF0, 0x10, 0, 6), AFFINEANIMCMD_FRAME(0x10, 0xFFF0, 0, 6), AFFINEANIMCMD_JUMP(0), }; -const union AffineAnimCmd *const gUnknown_08596208[] = +const union AffineAnimCmd *const gAffineAnims_Droplet[] = { - gUnknown_085961F0, + sAffineAnim_AcidPoisonDroplet, }; -const struct SpriteTemplate gUnknown_0859620C = +const struct SpriteTemplate gAcidPoisonDropletSpriteTemplate = { .tileTag = ANIM_TAG_POISON_BUBBLE, .paletteTag = ANIM_TAG_POISON_BUBBLE, .oam = &gOamData_AffineDouble_ObjNormal_16x16, - .anims = gUnknown_08596168, + .anims = sAnims_AcidPoisonDroplet, .images = NULL, - .affineAnims = gUnknown_08596208, - .callback = sub_810DD50, + .affineAnims = gAffineAnims_Droplet, + .callback = AnimAcidPoisonDroplet, }; -const union AffineAnimCmd gUnknown_08596224[] = +static const union AffineAnimCmd sAffineAnim_Bubble[] = { AFFINEANIMCMD_FRAME(0x9C, 0x9C, 0, 0), AFFINEANIMCMD_FRAME(0x5, 0x5, 0, 20), AFFINEANIMCMD_END, }; -const union AffineAnimCmd *const gUnknown_0859623C[] = +static const union AffineAnimCmd *const sAffineAnims_Bubble[] = { - gUnknown_08596224, + sAffineAnim_Bubble, }; const struct SpriteTemplate gPoisonBubbleSpriteTemplate = @@ -170,9 +168,9 @@ const struct SpriteTemplate gPoisonBubbleSpriteTemplate = .tileTag = ANIM_TAG_POISON_BUBBLE, .paletteTag = ANIM_TAG_POISON_BUBBLE, .oam = &gOamData_AffineNormal_ObjNormal_16x16, - .anims = gUnknown_08596164, + .anims = sAnims_PoisonProjectile, .images = NULL, - .affineAnims = gUnknown_0859623C, + .affineAnims = sAffineAnims_Bubble, .callback = AnimBubbleEffect, }; @@ -181,13 +179,13 @@ const struct SpriteTemplate gWaterBubbleSpriteTemplate = .tileTag = ANIM_TAG_SMALL_BUBBLES, .paletteTag = ANIM_TAG_SMALL_BUBBLES, .oam = &gOamData_AffineNormal_ObjBlend_16x16, - .anims = gUnknown_08595200, + .anims = gAnims_WaterBubble, .images = NULL, - .affineAnims = gUnknown_0859623C, + .affineAnims = sAffineAnims_Bubble, .callback = AnimBubbleEffect, }; -void sub_810DBAC(struct Sprite *sprite) +static void AnimSludgeProjectile(struct Sprite *sprite) { if (!gBattleAnimArgs[3]) StartSpriteAnim(sprite, 2); @@ -201,16 +199,16 @@ void sub_810DBAC(struct Sprite *sprite) InitAnimArcTranslation(sprite); - sprite->callback = sub_810DC10; + sprite->callback = AnimSludgeProjectile_Step; } -static void sub_810DC10(struct Sprite *sprite) +static void AnimSludgeProjectile_Step(struct Sprite *sprite) { if (TranslateAnimHorizontalArc(sprite)) DestroyAnimSprite(sprite); } -void sub_810DC2C(struct Sprite *sprite) +static void AnimAcidPoisonBubble(struct Sprite *sprite) { s16 l1, l2; if (!gBattleAnimArgs[3]) @@ -229,16 +227,16 @@ void sub_810DC2C(struct Sprite *sprite) InitAnimArcTranslation(sprite); - sprite->callback = sub_810DCB4; + sprite->callback = AnimAcidPoisonBubble_Step; } -static void sub_810DCB4(struct Sprite *sprite) +static void AnimAcidPoisonBubble_Step(struct Sprite *sprite) { if (TranslateAnimHorizontalArc(sprite)) DestroyAnimSprite(sprite); } -void sub_810DCD0(struct Sprite *sprite) +static void AnimSludgeBombHitParticle(struct Sprite *sprite) { sprite->data[0] = gBattleAnimArgs[2]; sprite->data[1] = sprite->pos1.x; @@ -251,10 +249,10 @@ void sub_810DCD0(struct Sprite *sprite) sprite->data[5] = sprite->data[1] / gBattleAnimArgs[2]; sprite->data[6] = sprite->data[2] / gBattleAnimArgs[2]; - sprite->callback = sub_810DD24; + sprite->callback = AnimSludgeBombHitParticle_Step; } -static void sub_810DD24(struct Sprite *sprite) +static void AnimSludgeBombHitParticle_Step(struct Sprite *sprite) { TranslateSpriteLinearFixedPoint(sprite); @@ -265,7 +263,7 @@ static void sub_810DD24(struct Sprite *sprite) DestroyAnimSprite(sprite); } -void sub_810DD50(struct Sprite *sprite) +static void AnimAcidPoisonDroplet(struct Sprite *sprite) { SetAverageBattlerPositions(gBattleAnimTarget, TRUE, &sprite->pos1.x, &sprite->pos1.y); @@ -289,7 +287,7 @@ void sub_810DD50(struct Sprite *sprite) // arg 0: initial x pixel offset // arg 1: initial y pixel offset // arg 2: 0 = single-target, 1 = multi-target -void AnimBubbleEffect(struct Sprite *sprite) +static void AnimBubbleEffect(struct Sprite *sprite) { if (!gBattleAnimArgs[2]) { @@ -306,10 +304,10 @@ void AnimBubbleEffect(struct Sprite *sprite) sprite->pos1.y += gBattleAnimArgs[1]; } - sprite->callback = AnimBubbleEffectStep; + sprite->callback = AnimBubbleEffect_Step; } -static void AnimBubbleEffectStep(struct Sprite *sprite) +static void AnimBubbleEffect_Step(struct Sprite *sprite) { sprite->data[0] = (sprite->data[0] + 0xB) & 0xFF; sprite->pos2.x = Sin(sprite->data[0], 4); diff --git a/src/psychic.c b/src/battle_anim_psychic.c index 656608740..7918698fc 100644 --- a/src/psychic.c +++ b/src/battle_anim_psychic.c @@ -8,51 +8,51 @@ #include "constants/rgb.h" #include "constants/songs.h" -void sub_810F1EC(struct Sprite *); -void sub_810F58C(struct Sprite *); -void sub_810F634(struct Sprite *); -void sub_810F6B0(struct Sprite *); -void sub_810FBA8(struct Sprite *); -void sub_810FDF0(struct Sprite *); -void sub_8110240(struct Sprite *); -static void sub_810F340(struct Sprite *); -static void sub_810F3C8(struct Sprite *); -static void sub_810F400(struct Sprite *); -static void sub_810F46C(struct Sprite *); -static void sub_810F524(struct Sprite *); -static void sub_810F740(struct Sprite *); -static void sub_810F774(struct Sprite *); -static void sub_810F810(u8); -static void sub_810F898(u8); -static void sub_810F9D4(u8); -static void sub_810FD3C(u8); -static void sub_810FF34(u8); -static void sub_8110134(u8); - -const union AffineAnimCmd gUnknown_0859652C[] = +static void AnimDefensiveWall(struct Sprite *); +static void AnimDefensiveWall_Step1(struct Sprite *); +static void AnimDefensiveWall_Step2(struct Sprite *); +static void AnimDefensiveWall_Step3(struct Sprite *); +static void AnimDefensiveWall_Step4(struct Sprite *); +static void AnimDefensiveWall_Step5(struct Sprite *); +static void AnimWallSparkle(struct Sprite *); +static void AnimBentSpoon(struct Sprite *); +static void AnimQuestionMark(struct Sprite *); +static void AnimQuestionMark_Step1(struct Sprite *); +static void AnimQuestionMark_Step2(struct Sprite *); +static void AnimRedX(struct Sprite *); +static void AnimSkillSwapOrb(struct Sprite *); +static void AnimPsychoBoost(struct Sprite *); +static void AnimTask_MeditateStretchAttacker_Step(u8); +static void AnimTask_Teleport_Step(u8); +static void AnimTask_ImprisonOrbs_Step(u8); +static void AnimTask_SkillSwap_Step(u8); +static void AnimTask_ExtrasensoryDistortion_Step(u8); +static void AnimTask_TransparentCloneGrowAndShrink_Step(u8); + +static const union AffineAnimCmd sAffineAnim_PsychUpSpiral[] = { AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0), AFFINEANIMCMD_FRAME(0xFFFE, 0xFFFE, -10, 120), AFFINEANIMCMD_END, }; -const union AffineAnimCmd *const gUnknown_08596544[] = +static const union AffineAnimCmd *const sAffineAnims_PsychUpSpiral[] = { - gUnknown_0859652C, + sAffineAnim_PsychUpSpiral, }; -const struct SpriteTemplate gUnknown_08596548 = +const struct SpriteTemplate gPsychUpSpiralSpriteTemplate = { .tileTag = ANIM_TAG_SPIRAL, .paletteTag = ANIM_TAG_SPIRAL, .oam = &gOamData_AffineNormal_ObjBlend_64x64, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_08596544, + .affineAnims = sAffineAnims_PsychUpSpiral, .callback = AnimSpriteOnMonPos, }; -const struct SpriteTemplate gUnknown_08596560 = +const struct SpriteTemplate gLightScreenWallSpriteTemplate = { .tileTag = ANIM_TAG_GREEN_LIGHT_WALL, .paletteTag = ANIM_TAG_GREEN_LIGHT_WALL, @@ -60,10 +60,10 @@ const struct SpriteTemplate gUnknown_08596560 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_810F1EC, + .callback = AnimDefensiveWall, }; -const struct SpriteTemplate gUnknown_08596578 = +const struct SpriteTemplate gReflectWallSpriteTemplate = { .tileTag = ANIM_TAG_BLUE_LIGHT_WALL, .paletteTag = ANIM_TAG_BLUE_LIGHT_WALL, @@ -71,10 +71,10 @@ const struct SpriteTemplate gUnknown_08596578 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_810F1EC, + .callback = AnimDefensiveWall, }; -const struct SpriteTemplate gUnknown_08596590 = +const struct SpriteTemplate gMirrorCoatWallSpriteTemplate = { .tileTag = ANIM_TAG_RED_LIGHT_WALL, .paletteTag = ANIM_TAG_RED_LIGHT_WALL, @@ -82,10 +82,10 @@ const struct SpriteTemplate gUnknown_08596590 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_810F1EC, + .callback = AnimDefensiveWall, }; -const struct SpriteTemplate gUnknown_085965A8 = +const struct SpriteTemplate gBarrierWallSpriteTemplate = { .tileTag = ANIM_TAG_GRAY_LIGHT_WALL, .paletteTag = ANIM_TAG_GRAY_LIGHT_WALL, @@ -93,10 +93,10 @@ const struct SpriteTemplate gUnknown_085965A8 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_810F1EC, + .callback = AnimDefensiveWall, }; -const struct SpriteTemplate gUnknown_085965C0 = +const struct SpriteTemplate gMagicCoatWallSpriteTemplate = { .tileTag = ANIM_TAG_ORANGE_LIGHT_WALL, .paletteTag = ANIM_TAG_ORANGE_LIGHT_WALL, @@ -104,10 +104,10 @@ const struct SpriteTemplate gUnknown_085965C0 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_810F1EC, + .callback = AnimDefensiveWall, }; -const union AnimCmd gUnknown_085965D8[] = +static const union AnimCmd sAnim_ReflectSparkle[] = { ANIMCMD_FRAME(0, 3), ANIMCMD_FRAME(16, 3), @@ -117,23 +117,23 @@ const union AnimCmd gUnknown_085965D8[] = ANIMCMD_END, }; -const union AnimCmd *const gUnknown_085965F0[] = +static const union AnimCmd *const sAnims_ReflectSparkle[] = { - gUnknown_085965D8, + sAnim_ReflectSparkle, }; -const struct SpriteTemplate gUnknown_085965F4 = +const struct SpriteTemplate gReflectSparkleSpriteTemplate = { .tileTag = ANIM_TAG_SPARKLE_4, .paletteTag = ANIM_TAG_SPARKLE_4, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_085965F0, + .anims = sAnims_ReflectSparkle, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_810F58C, + .callback = AnimWallSparkle, }; -const union AnimCmd gUnknown_0859660C[] = +static const union AnimCmd sAnim_SpecialScreenSparkle[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_FRAME(4, 5), @@ -142,23 +142,23 @@ const union AnimCmd gUnknown_0859660C[] = ANIMCMD_END, }; -const union AnimCmd *const gUnknown_08596620[] = +static const union AnimCmd *const sAnims_SpecialScreenSparkle[] = { - gUnknown_0859660C, + sAnim_SpecialScreenSparkle, }; -const struct SpriteTemplate gUnknown_08596624 = +const struct SpriteTemplate gSpecialScreenSparkleSpriteTemplate = { .tileTag = ANIM_TAG_SPARKLE_3, .paletteTag = ANIM_TAG_SPARKLE_3, .oam = &gOamData_AffineOff_ObjNormal_16x16, - .anims = gUnknown_08596620, + .anims = sAnims_SpecialScreenSparkle, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_810F58C, + .callback = AnimWallSparkle, }; -const struct SpriteTemplate gUnknown_0859663C = +const struct SpriteTemplate gGoldRingSpriteTemplate = { .tileTag = ANIM_TAG_GOLD_RING, .paletteTag = ANIM_TAG_GOLD_RING, @@ -169,7 +169,7 @@ const struct SpriteTemplate gUnknown_0859663C = .callback = TranslateAnimSpriteToTargetMonLocation, }; -const union AnimCmd gUnknown_08596654[] = +static const union AnimCmd sAnim_BentSpoon_0[] = { ANIMCMD_FRAME(8, 60, .hFlip = TRUE), ANIMCMD_FRAME(16, 5, .hFlip = TRUE), @@ -189,7 +189,7 @@ const union AnimCmd gUnknown_08596654[] = ANIMCMD_END, }; -const union AnimCmd gUnknown_08596694[] = +static const union AnimCmd sAnim_BentSpoon_1[] = { ANIMCMD_FRAME(8, 60), ANIMCMD_FRAME(16, 5), @@ -209,24 +209,24 @@ const union AnimCmd gUnknown_08596694[] = ANIMCMD_END, }; -const union AnimCmd *const gUnknown_085966D4[] = +static const union AnimCmd *const sAnims_BentSpoon[] = { - gUnknown_08596654, - gUnknown_08596694, + sAnim_BentSpoon_0, + sAnim_BentSpoon_1, }; -const struct SpriteTemplate gUnknown_085966DC = +const struct SpriteTemplate gBentSpoonSpriteTemplate = { .tileTag = ANIM_TAG_BENT_SPOON, .paletteTag = ANIM_TAG_BENT_SPOON, .oam = &gOamData_AffineOff_ObjNormal_16x32, - .anims = gUnknown_085966D4, + .anims = sAnims_BentSpoon, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_810F634, + .callback = AnimBentSpoon, }; -const union AnimCmd gUnknown_085966F4[] = +static const union AnimCmd sAnim_QuestionMark[] = { ANIMCMD_FRAME(0, 6), ANIMCMD_FRAME(16, 6), @@ -238,12 +238,12 @@ const union AnimCmd gUnknown_085966F4[] = ANIMCMD_END, }; -const union AnimCmd *const gUnknown_08596714[] = +static const union AnimCmd *const sAnims_QuestionMark[] = { - gUnknown_085966F4, + sAnim_QuestionMark, }; -const union AffineAnimCmd gUnknown_08596718[] = +static const union AffineAnimCmd sAffineAnim_QuestionMark[] = { AFFINEANIMCMD_FRAME(0, 0, 4, 4), AFFINEANIMCMD_FRAME(0, 0, -4, 8), @@ -252,23 +252,23 @@ const union AffineAnimCmd gUnknown_08596718[] = AFFINEANIMCMD_END, }; -const union AffineAnimCmd *const gUnknown_08596740[] = +static const union AffineAnimCmd *const sAffineAnims_QuestionMark[] = { - gUnknown_08596718, + sAffineAnim_QuestionMark, }; -const struct SpriteTemplate gUnknown_08596744 = +const struct SpriteTemplate gQuestionMarkSpriteTemplate = { .tileTag = ANIM_TAG_AMNESIA, .paletteTag = ANIM_TAG_AMNESIA, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_08596714, + .anims = sAnims_QuestionMark, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_810F6B0, + .callback = AnimQuestionMark, }; -const union AffineAnimCmd gUnknown_0859675C[] = +static const union AffineAnimCmd sAffineAnim_MeditateStretchAttacker[] = { AFFINEANIMCMD_FRAME(-8, 10, 0, 16), AFFINEANIMCMD_FRAME(18, -18, 0, 16), @@ -276,14 +276,14 @@ const union AffineAnimCmd gUnknown_0859675C[] = AFFINEANIMCMD_END, }; -const union AffineAnimCmd gUnknown_0859677C[] = +static const union AffineAnimCmd sAffineAnim_Teleport[] = { AFFINEANIMCMD_FRAME(64, -4, 0, 20), AFFINEANIMCMD_FRAME(0, 0, 0, -56), AFFINEANIMCMD_END, }; -const struct SpriteTemplate gUnknown_08596794 = +const struct SpriteTemplate gImprisonOrbSpriteTemplate = { .tileTag = ANIM_TAG_HOLLOW_ORB, .paletteTag = ANIM_TAG_HOLLOW_ORB, @@ -294,25 +294,25 @@ const struct SpriteTemplate gUnknown_08596794 = .callback = SpriteCallbackDummy, }; -const struct SpriteTemplate gUnknown_085967AC = +const struct SpriteTemplate gRedXSpriteTemplate = { - .tileTag = 10250, - .paletteTag = 10250, + .tileTag = ANIM_TAG_X_SIGN, + .paletteTag = ANIM_TAG_X_SIGN, .oam = &gOamData_AffineOff_ObjNormal_64x64, .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_810FBA8, + .callback = AnimRedX, }; -const union AffineAnimCmd gUnknown_085967C4[] = +static const union AffineAnimCmd sAffineAnim_SkillSwapOrb_0[] = { AFFINEANIMCMD_FRAME(0xFFF8, 0xFFF8, 0, 8), AFFINEANIMCMD_FRAME(0x8, 0x8, 0, 8), AFFINEANIMCMD_JUMP(0), }; -const union AffineAnimCmd gUnknown_085967DC[] = +static const union AffineAnimCmd sAffineAnim_SkillSwapOrb_1[] = { AFFINEANIMCMD_FRAME(0xF0, 0xF0, 0, 0), AFFINEANIMCMD_FRAME(0xFFF8, 0xFFF8, 0, 6), @@ -321,7 +321,7 @@ const union AffineAnimCmd gUnknown_085967DC[] = AFFINEANIMCMD_JUMP(1), }; -const union AffineAnimCmd gUnknown_08596804[] = +static const union AffineAnimCmd sAffineAnim_SkillSwapOrb_2[] = { AFFINEANIMCMD_FRAME(0xD0, 0xD0, 0, 0), AFFINEANIMCMD_FRAME(0xFFF8, 0xFFF8, 0, 4), @@ -330,7 +330,7 @@ const union AffineAnimCmd gUnknown_08596804[] = AFFINEANIMCMD_JUMP(1), }; -const union AffineAnimCmd gUnknown_0859682C[] = +static const union AffineAnimCmd sAffineAnim_SkillSwapOrb_3[] = { AFFINEANIMCMD_FRAME(0xB0, 0xB0, 0, 0), AFFINEANIMCMD_FRAME(0xFFF8, 0xFFF8, 0, 2), @@ -339,49 +339,49 @@ const union AffineAnimCmd gUnknown_0859682C[] = AFFINEANIMCMD_JUMP(1), }; -const union AffineAnimCmd *const gUnknown_08596854[] = +static const union AffineAnimCmd *const sAffineAnims_SkillSwapOrb[] = { - gUnknown_085967C4, - gUnknown_085967DC, - gUnknown_08596804, - gUnknown_0859682C, + sAffineAnim_SkillSwapOrb_0, + sAffineAnim_SkillSwapOrb_1, + sAffineAnim_SkillSwapOrb_2, + sAffineAnim_SkillSwapOrb_3, }; -const struct SpriteTemplate gUnknown_08596864 = +const struct SpriteTemplate gSkillSwapOrbSpriteTemplate = { .tileTag = ANIM_TAG_BLUEGREEN_ORB, .paletteTag = ANIM_TAG_BLUEGREEN_ORB, .oam = &gOamData_AffineNormal_ObjNormal_16x16, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_08596854, - .callback = sub_810FDF0, + .affineAnims = sAffineAnims_SkillSwapOrb, + .callback = AnimSkillSwapOrb, }; -const union AffineAnimCmd gUnknown_0859687C[] = +static const union AffineAnimCmd sAffineAnim_LusterPurgeCircle[] = { AFFINEANIMCMD_FRAME(0x20, 0x20, 0, 0), AFFINEANIMCMD_FRAME(0x4, 0x4, 0, 120), AFFINEANIMCMD_END_ALT(1), }; -const union AffineAnimCmd *const gUnknown_08596894[] = +static const union AffineAnimCmd *const sAffineAnims_LusterPurgeCircle[] = { - gUnknown_0859687C, + sAffineAnim_LusterPurgeCircle, }; -const struct SpriteTemplate gUnknown_08596898 = +const struct SpriteTemplate gLusterPurgeCircleSpriteTemplate = { .tileTag = ANIM_TAG_WHITE_CIRCLE_OF_LIGHT, .paletteTag = ANIM_TAG_WHITE_CIRCLE_OF_LIGHT, .oam = &gOamData_AffineDouble_ObjBlend_64x64, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_08596894, + .affineAnims = sAffineAnims_LusterPurgeCircle, .callback = AnimSpriteOnMonPos, }; -const union AffineAnimCmd gUnknown_085968B0[] = +static const union AffineAnimCmd sAffineAnim_PsychoBoostOrb_0[] = { AFFINEANIMCMD_FRAME(0x20, 0x20, 0, 0), AFFINEANIMCMD_FRAME(0x10, 0x10, 0, 17), @@ -396,30 +396,31 @@ const union AffineAnimCmd gUnknown_085968B0[] = AFFINEANIMCMD_END, }; -const union AffineAnimCmd gUnknown_08596908[] = +static const union AffineAnimCmd sAffineAnim_PsychoBoostOrb_1[] = { AFFINEANIMCMD_FRAME(0xFFEC, 0x18, 0, 15), AFFINEANIMCMD_END, }; -const union AffineAnimCmd *const gUnknown_08596918[] = +static const union AffineAnimCmd *const sAffineAnims_PsychoBoostOrb[] = { - gUnknown_085968B0, - gUnknown_08596908, + sAffineAnim_PsychoBoostOrb_0, + sAffineAnim_PsychoBoostOrb_1, }; -const struct SpriteTemplate gUnknown_08596920 = +const struct SpriteTemplate gPsychoBoostOrbSpriteTemplate = { .tileTag = ANIM_TAG_CIRCLE_OF_LIGHT, .paletteTag = ANIM_TAG_CIRCLE_OF_LIGHT, .oam = &gOamData_AffineDouble_ObjBlend_64x64, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_08596918, - .callback = sub_8110240, + .affineAnims = sAffineAnims_PsychoBoostOrb, + .callback = AnimPsychoBoost, }; -void sub_810F1EC(struct Sprite *sprite) +// For the rectangular wall sprite used by Reflect, Mirror Coat, etc +static void AnimDefensiveWall(struct Sprite *sprite) { u8 isContest = IsContest(); @@ -472,16 +473,16 @@ void sub_810F1EC(struct Sprite *sprite) if (isContest) { sprite->pos1.y += 9; - sprite->callback = sub_810F3C8; + sprite->callback = AnimDefensiveWall_Step2; sprite->callback(sprite); } else { - sprite->callback = sub_810F340; + sprite->callback = AnimDefensiveWall_Step1; } } -static void sub_810F340(struct Sprite *sprite) +static void AnimDefensiveWall_Step1(struct Sprite *sprite) { u8 battler = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); if (!sprite->data[7]) @@ -491,26 +492,26 @@ static void sub_810F340(struct Sprite *sprite) } if (IsBattlerSpriteVisible(battler)) - gSprites[gBattlerSpriteIds[battler]].invisible = 1; + gSprites[gBattlerSpriteIds[battler]].invisible = TRUE; battler = BATTLE_PARTNER(battler); if (IsBattlerSpriteVisible(battler)) - gSprites[gBattlerSpriteIds[battler]].invisible = 1; + gSprites[gBattlerSpriteIds[battler]].invisible = TRUE; - sprite->callback = sub_810F3C8; + sprite->callback = AnimDefensiveWall_Step2; sprite->callback(sprite); } -static void sub_810F3C8(struct Sprite *sprite) +static void AnimDefensiveWall_Step2(struct Sprite *sprite) { SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(sprite->data[3], 16 - sprite->data[3])); if (sprite->data[3] == 13) - sprite->callback = sub_810F400; + sprite->callback = AnimDefensiveWall_Step3; else sprite->data[3]++; } -static void sub_810F400(struct Sprite *sprite) +static void AnimDefensiveWall_Step3(struct Sprite *sprite) { u16 color; u16 startOffset; @@ -528,11 +529,11 @@ static void sub_810F400(struct Sprite *sprite) gPlttBufferFaded[startOffset + 1] = color; if (++sprite->data[2] == 16) - sprite->callback = sub_810F46C; + sprite->callback = AnimDefensiveWall_Step4; } } -static void sub_810F46C(struct Sprite *sprite) +static void AnimDefensiveWall_Step4(struct Sprite *sprite) { SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(sprite->data[3], 16 - sprite->data[3])); @@ -544,19 +545,19 @@ static void sub_810F46C(struct Sprite *sprite) u8 battler = battlerCopy = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); if (IsBattlerSpriteVisible(battler)) - gSprites[gBattlerSpriteIds[battler]].invisible = 0; + gSprites[gBattlerSpriteIds[battler]].invisible = FALSE; battler = BATTLE_PARTNER(battlerCopy); if (IsBattlerSpriteVisible(battler)) - gSprites[gBattlerSpriteIds[battler]].invisible = 0; + gSprites[gBattlerSpriteIds[battler]].invisible = FALSE; } - sprite->invisible = 1; - sprite->callback = sub_810F524; + sprite->invisible = TRUE; + sprite->callback = AnimDefensiveWall_Step5; } } -static void sub_810F524(struct Sprite *sprite) +static void AnimDefensiveWall_Step5(struct Sprite *sprite) { if (!IsContest()) { @@ -577,7 +578,8 @@ static void sub_810F524(struct Sprite *sprite) sprite->callback = DestroyAnimSprite; } -void sub_810F58C(struct Sprite *sprite) +// Animates the sparkle that appears during Reflect or Light Screen/Mirror Coat +static void AnimWallSparkle(struct Sprite *sprite) { if (sprite->data[0] == 0) { @@ -601,7 +603,7 @@ void sub_810F58C(struct Sprite *sprite) } else { - if (gBattleAnimArgs[2] == 0) + if (gBattleAnimArgs[2] == ANIM_ATTACKER) InitSpritePosToAnimAttacker(sprite, respectMonPicOffsets); else InitSpritePosToAnimTarget(sprite, respectMonPicOffsets); @@ -616,7 +618,7 @@ void sub_810F58C(struct Sprite *sprite) } } -void sub_810F634(struct Sprite *sprite) +static void AnimBentSpoon(struct Sprite *sprite) { sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); @@ -639,7 +641,8 @@ void sub_810F634(struct Sprite *sprite) sprite->callback = RunStoredCallbackWhenAnimEnds; } -void sub_810F6B0(struct Sprite *sprite) +// Used by Amnesia +static void AnimQuestionMark(struct Sprite *sprite) { s16 x = GetBattlerSpriteCoordAttr(gBattleAnimAttacker, BATTLER_COORD_ATTR_WIDTH) / 2; s16 y = GetBattlerSpriteCoordAttr(gBattleAnimAttacker, BATTLER_COORD_ATTR_HEIGHT) / -2; @@ -653,20 +656,20 @@ void sub_810F6B0(struct Sprite *sprite) if (sprite->pos1.y < 16) sprite->pos1.y = 16; - StoreSpriteCallbackInData6(sprite, sub_810F740); + StoreSpriteCallbackInData6(sprite, AnimQuestionMark_Step1); sprite->callback = RunStoredCallbackWhenAnimEnds; } -static void sub_810F740(struct Sprite *sprite) +static void AnimQuestionMark_Step1(struct Sprite *sprite) { sprite->oam.affineMode = ST_OAM_AFFINE_NORMAL; - sprite->affineAnims = gUnknown_08596740; + sprite->affineAnims = sAffineAnims_QuestionMark; sprite->data[0] = 0; InitSpriteAffineAnim(sprite); - sprite->callback = sub_810F774; + sprite->callback = AnimQuestionMark_Step2; } -static void sub_810F774(struct Sprite *sprite) +static void AnimQuestionMark_Step2(struct Sprite *sprite) { switch (sprite->data[0]) { @@ -686,22 +689,22 @@ static void sub_810F774(struct Sprite *sprite) } } -void sub_810F7D4(u8 taskId) +void AnimTask_MeditateStretchAttacker(u8 taskId) { struct Task *task = &gTasks[taskId]; u8 spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER); task->data[0] = spriteId; - PrepareAffineAnimInTaskData(task, spriteId, gUnknown_0859675C); - task->func = sub_810F810; + PrepareAffineAnimInTaskData(task, spriteId, sAffineAnim_MeditateStretchAttacker); + task->func = AnimTask_MeditateStretchAttacker_Step; } -static void sub_810F810(u8 taskId) +static void AnimTask_MeditateStretchAttacker_Step(u8 taskId) { if (!RunAffineAnimFromTaskData(&gTasks[taskId])) DestroyAnimVisualTask(taskId); } -void sub_810F83C(u8 taskId) +void AnimTask_Teleport(u8 taskId) { struct Task *task = &gTasks[taskId]; u8 spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER); @@ -710,11 +713,11 @@ void sub_810F83C(u8 taskId) task->data[2] = 0; task->data[3] = GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER ? 4 : 8; - PrepareAffineAnimInTaskData(task, task->data[0], gUnknown_0859677C); - task->func = sub_810F898; + PrepareAffineAnimInTaskData(task, task->data[0], sAffineAnim_Teleport); + task->func = AnimTask_Teleport_Step; } -static void sub_810F898(u8 taskId) +static void AnimTask_Teleport_Step(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -733,7 +736,7 @@ static void sub_810F898(u8 taskId) } else { - gSprites[task->data[0]].invisible = 1; + gSprites[task->data[0]].invisible = TRUE; gSprites[task->data[0]].pos1.x = 272; ResetSpriteRotScale(task->data[0]); DestroyAnimVisualTask(taskId); @@ -742,7 +745,7 @@ static void sub_810F898(u8 taskId) } } -void sub_810F940(u8 taskId) +void AnimTask_ImprisonOrbs(u8 taskId) { u16 var0, var1; @@ -760,10 +763,10 @@ void sub_810F940(u8 taskId) SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND); SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(16, 0)); - task->func = sub_810F9D4; + task->func = AnimTask_ImprisonOrbs_Step; } -static void sub_810F9D4(u8 taskId) +static void AnimTask_ImprisonOrbs_Step(u8 taskId) { u16 i; u8 spriteId; @@ -775,7 +778,7 @@ static void sub_810F9D4(u8 taskId) if (++task->data[1] > 8) { task->data[1] = 0; - spriteId = CreateSprite(&gUnknown_08596794, task->data[13], task->data[14], 0); + spriteId = CreateSprite(&gImprisonOrbSpriteTemplate, task->data[13], task->data[14], 0); task->data[task->data[2] + 8] = spriteId; if (spriteId != MAX_SPRITES) { @@ -844,9 +847,9 @@ static void sub_810FB60(struct Sprite *sprite) sprite->data[1]++; } -void sub_810FBA8(struct Sprite *sprite) +static void AnimRedX(struct Sprite *sprite) { - if (gBattleAnimArgs[0] == 0) + if (gBattleAnimArgs[0] == ANIM_ATTACKER) { sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); @@ -856,13 +859,13 @@ void sub_810FBA8(struct Sprite *sprite) sprite->callback = sub_810FB60; } -void sub_810FBF0(u8 taskId) +void AnimTask_SkillSwap(u8 taskId) { struct Task *task = &gTasks[taskId]; if (IsContest()) { - if (gBattleAnimArgs[0] == 1) + if (gBattleAnimArgs[0] == ANIM_TARGET) { task->data[10] = -10; task->data[11] = GetBattlerSpriteCoordAttr(gBattleAnimTarget, BATTLER_COORD_ATTR_RIGHT) - 8; @@ -900,10 +903,10 @@ void sub_810FBF0(u8 taskId) } task->data[1] = 6; - task->func = sub_810FD3C; + task->func = AnimTask_SkillSwap_Step; } -static void sub_810FD3C(u8 taskId) +static void AnimTask_SkillSwap_Step(u8 taskId) { u8 spriteId; struct Task *task = &gTasks[taskId]; @@ -914,7 +917,7 @@ static void sub_810FD3C(u8 taskId) if (++task->data[1] > 6) { task->data[1] = 0; - spriteId = CreateSprite(&gUnknown_08596864, task->data[11], task->data[12], 0); + spriteId = CreateSprite(&gSkillSwapOrbSpriteTemplate, task->data[11], task->data[12], 0); if (spriteId != 64) { gSprites[spriteId].data[0] = 16; @@ -937,7 +940,7 @@ static void sub_810FD3C(u8 taskId) } } -void sub_810FDF0(struct Sprite *sprite) +static void AnimSkillSwapOrb(struct Sprite *sprite) { if (TranslateAnimHorizontalArc(sprite)) { @@ -946,7 +949,9 @@ void sub_810FDF0(struct Sprite *sprite) } } -void sub_810FE14(u8 taskId) +// The scanline effect that distorts the target during Extrasensory by segmenting the mon vertically and shifting the slices +// arg0: Stage. Stage 0 is a slight right distortion, 1 is a medium left distortion, and 2 is a severe right distortion +void AnimTask_ExtrasensoryDistortion(u8 taskId) { s16 i; u8 yOffset; @@ -1004,10 +1009,10 @@ void sub_810FE14(u8 taskId) scanlineParams.initState = 1; scanlineParams.unused9 = 0; ScanlineEffect_SetParams(scanlineParams); - task->func = sub_810FF34; + task->func = AnimTask_ExtrasensoryDistortion_Step; } -static void sub_810FF34(u8 taskId) +static void AnimTask_ExtrasensoryDistortion_Step(u8 taskId) { s16 sineIndex, i; struct Task *task = &gTasks[taskId]; @@ -1044,7 +1049,9 @@ static void sub_810FF34(u8 taskId) } } -void sub_8110034(u8 taskId) +// Creates a cloned transparent sprite of the battler that grows and then shrinks back to original size. Used by Extrasensory +// arg0: battler +void AnimTask_TransparentCloneGrowAndShrink(u8 taskId) { s16 spriteId; s16 matrixNum; @@ -1075,10 +1082,10 @@ void sub_8110034(u8 taskId) task->data[13] = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); task->data[14] = matrixNum; task->data[15] = spriteId; - task->func = sub_8110134; + task->func = AnimTask_TransparentCloneGrowAndShrink_Step; } -static void sub_8110134(u8 taskId) +static void AnimTask_TransparentCloneGrowAndShrink_Step(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -1111,7 +1118,7 @@ static void sub_8110134(u8 taskId) } } -void sub_8110240(struct Sprite *sprite) +static void AnimPsychoBoost(struct Sprite *sprite) { switch (sprite->data[0]) { @@ -1144,7 +1151,7 @@ void sub_8110240(struct Sprite *sprite) if (sprite->data[1] == 0) { sprite->data[0]++; - sprite->invisible = 1; + sprite->invisible = TRUE; } } diff --git a/src/rock.c b/src/battle_anim_rock.c index 28566f1b7..1f22d2976 100644 --- a/src/rock.c +++ b/src/battle_anim_rock.c @@ -9,75 +9,72 @@ #include "constants/rgb.h" #include "constants/songs.h" -extern const union AnimCmd *const gUnknown_085950E0[]; -extern const union AnimCmd *const gUnknown_085954D0[]; - -void sub_81109F0(struct Sprite *); -void sub_8110AB4(struct Sprite *); -void AnimDirtParticleAcrossScreen(struct Sprite *); -void AnimRaiseSprite(struct Sprite *); -void sub_81110A4(u8 taskId); -void sub_811131C(struct Sprite *); -void sub_8111388(struct Sprite *); -void sub_8111418(struct Sprite *); -void sub_8111444(struct Sprite *); -void sub_8110B38(struct Sprite *); -static void sub_8110A70(struct Sprite *); -static void sub_8110B80(struct Sprite *sprite); -static void sub_8110CB0(u8 taskId); +static void AnimFallingRock(struct Sprite *); +static void AnimFallingRock_Step(struct Sprite *); +static void AnimRockFragment(struct Sprite *); +static void AnimFlyingSandCrescent(struct Sprite *); +static void AnimRaiseSprite(struct Sprite *); +static void AnimTask_Rollout_Step(u8 taskId); +static void AnimRolloutParticle(struct Sprite *); +static void AnimRockTomb(struct Sprite *); +static void AnimRockTomb_Step(struct Sprite *sprite); +static void AnimRockBlastRock(struct Sprite *); +static void AnimRockScatter(struct Sprite *); +static void AnimRockScatter_Step(struct Sprite *sprite); +static void AnimParticleInVortex(struct Sprite *); +static void AnimParticleInVortex_Step(struct Sprite *sprite); +static void AnimTask_LoadSandstormBackground_Step(u8 taskId); static void sub_8111214(struct Task *task); -static u8 sub_811135C(void); -static void sub_81113C8(struct Sprite *sprite); -static void sub_811149C(struct Sprite *sprite); +static u8 GetRolloutCounter(void); -const union AnimCmd gUnknown_08596AE0[] = +static const union AnimCmd sAnim_FlyingRock_0[] = { ANIMCMD_FRAME(32, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_08596AE8[] = +static const union AnimCmd sAnim_FlyingRock_1[] = { ANIMCMD_FRAME(48, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_08596AF0[] = +static const union AnimCmd sAnim_FlyingRock_2[] = { ANIMCMD_FRAME(64, 1), ANIMCMD_END, }; -const union AnimCmd *const gUnknown_08596AF8[] = +static const union AnimCmd *const sAnims_FlyingRock[] = { - gUnknown_08596AE0, - gUnknown_08596AE8, - gUnknown_08596AF0, + sAnim_FlyingRock_0, + sAnim_FlyingRock_1, + sAnim_FlyingRock_2, }; -const struct SpriteTemplate gUnknown_08596B04 = +const struct SpriteTemplate gFallingRockSpriteTemplate = { .tileTag = ANIM_TAG_ROCKS, .paletteTag = ANIM_TAG_ROCKS, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_08596AF8, + .anims = sAnims_FlyingRock, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_81109F0, + .callback = AnimFallingRock, }; -const struct SpriteTemplate gUnknown_08596B1C = +const struct SpriteTemplate gRockFragmentSpriteTemplate = { .tileTag = ANIM_TAG_ROCKS, .paletteTag = ANIM_TAG_ROCKS, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_08596AF8, + .anims = sAnims_FlyingRock, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8110AB4, + .callback = AnimRockFragment, }; -const struct SpriteTemplate gUnknown_08596B34 = +const struct SpriteTemplate gSwirlingDirtSpriteTemplate = { .tileTag = ANIM_TAG_MUD_SAND, .paletteTag = ANIM_TAG_MUD_SAND, @@ -85,10 +82,10 @@ const struct SpriteTemplate gUnknown_08596B34 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8110B38, + .callback = AnimParticleInVortex, }; -const union AffineAnimCmd gUnknown_08596B4C[] = +static const union AffineAnimCmd sAffineAnim_Whirlpool[] = { AFFINEANIMCMD_FRAME(0xC0, 0xC0, 0, 0), AFFINEANIMCMD_FRAME(0x2, 0xFFFD, 0, 5), @@ -96,34 +93,34 @@ const union AffineAnimCmd gUnknown_08596B4C[] = AFFINEANIMCMD_JUMP(1), }; -const union AffineAnimCmd *const gUnknown_08596B6C[] = +static const union AffineAnimCmd *const sAffineAnims_Whirlpool[] = { - gUnknown_08596B4C, + sAffineAnim_Whirlpool, }; -const struct SpriteTemplate gUnknown_08596B70 = +const struct SpriteTemplate gWhirlpoolSpriteTemplate = { .tileTag = ANIM_TAG_WATER_ORB, .paletteTag = ANIM_TAG_WATER_ORB, .oam = &gOamData_AffineNormal_ObjBlend_16x16, - .anims = gUnknown_085950E0, + .anims = gAnims_WaterMudOrb, .images = NULL, - .affineAnims = gUnknown_08596B6C, - .callback = sub_8110B38, + .affineAnims = sAffineAnims_Whirlpool, + .callback = AnimParticleInVortex, }; -const struct SpriteTemplate gUnknown_08596B88 = +const struct SpriteTemplate gFireSpinSpriteTemplate = { .tileTag = ANIM_TAG_SMALL_EMBER, .paletteTag = ANIM_TAG_SMALL_EMBER, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_085954D0, + .anims = gAnims_BasicFire, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8110B38, + .callback = AnimParticleInVortex, }; -const struct SpriteTemplate gBattleAnimSpriteTemplate_8596BA0 = +const struct SpriteTemplate gFlyingSandCrescentSpriteTemplate = { .tileTag = ANIM_TAG_FLYING_DIRT, .paletteTag = ANIM_TAG_FLYING_DIRT, @@ -131,86 +128,86 @@ const struct SpriteTemplate gBattleAnimSpriteTemplate_8596BA0 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = AnimDirtParticleAcrossScreen, + .callback = AnimFlyingSandCrescent, }; -const struct Subsprite gUnknown_08596BB8[] = +static const struct Subsprite sFlyingSandSubsprites[] = { {.x = -16, .y = 0, .shape = SPRITE_SHAPE(32x16), .size = SPRITE_SIZE(32x16), .tileOffset = 0, .priority = 1}, {.x = 16, .y = 0, .shape = SPRITE_SHAPE(32x16), .size = SPRITE_SIZE(32x16), .tileOffset = 8, .priority = 1}, }; -const struct SubspriteTable gUnknown_08596BC0[] = +static const struct SubspriteTable sFlyingSandSubspriteTable[] = { - {ARRAY_COUNT(gUnknown_08596BB8), gUnknown_08596BB8}, + {ARRAY_COUNT(sFlyingSandSubsprites), sFlyingSandSubsprites}, }; -const union AnimCmd gUnknown_08596BC8[] = +static const union AnimCmd sAnim_BasicRock_0[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_08596BD0[] = +static const union AnimCmd sAnim_BasicRock_1[] = { ANIMCMD_FRAME(16, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_08596BD8[] = +static const union AnimCmd sAnim_WeatherBallRockDown_0[] = { ANIMCMD_FRAME(32, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_08596BE0[] = +static const union AnimCmd sAnim_WeatherBallRockDown_1[] = { ANIMCMD_FRAME(48, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_08596BE8[] = +static const union AnimCmd sAnim_TwisterRock_0[] = { ANIMCMD_FRAME(64, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_08596BF0[] = +static const union AnimCmd sAnim_TwisterRock_1[] = { ANIMCMD_FRAME(80, 1), ANIMCMD_END, }; -const union AnimCmd *const gUnknown_08596BF8[] = +static const union AnimCmd *const sAnims_BasicRock[] = { - gUnknown_08596BC8, - gUnknown_08596BD0, + sAnim_BasicRock_0, + sAnim_BasicRock_1, }; -const union AnimCmd *const gUnknown_08596C00[] = +static const union AnimCmd *const sAnims_WeatherBallRockDown[] = { - gUnknown_08596BD8, - gUnknown_08596BE0, + sAnim_WeatherBallRockDown_0, + sAnim_WeatherBallRockDown_1, }; -const union AnimCmd *const gUnknown_08596C08[] = +static const union AnimCmd *const sAnims_TwisterRock[] = { - gUnknown_08596BE8, - gUnknown_08596BF0, + sAnim_TwisterRock_0, + sAnim_TwisterRock_1, }; -const struct SpriteTemplate gUnknown_08596C10 = +const struct SpriteTemplate gAncientPowerRockSpriteTemplate = { .tileTag = ANIM_TAG_ROCKS, .paletteTag = ANIM_TAG_ROCKS, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_08596BF8, + .anims = sAnims_BasicRock, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimRaiseSprite, }; -const struct SpriteTemplate gUnknown_08596C28 = +const struct SpriteTemplate gRolloutMudSpriteTemplate = { .tileTag = ANIM_TAG_MUD_SAND, .paletteTag = ANIM_TAG_MUD_SAND, @@ -218,10 +215,10 @@ const struct SpriteTemplate gUnknown_08596C28 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_811131C, + .callback = AnimRolloutParticle, }; -const struct SpriteTemplate gUnknown_08596C40 = +const struct SpriteTemplate gRolloutRockSpriteTemplate = { .tileTag = ANIM_TAG_ROCKS, .paletteTag = ANIM_TAG_ROCKS, @@ -229,83 +226,83 @@ const struct SpriteTemplate gUnknown_08596C40 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_811131C, + .callback = AnimRolloutParticle, }; -const struct SpriteTemplate gUnknown_08596C58 = +const struct SpriteTemplate gRockTombRockSpriteTemplate = { .tileTag = ANIM_TAG_ROCKS, .paletteTag = ANIM_TAG_ROCKS, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_08596BF8, + .anims = sAnims_BasicRock, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8111388, + .callback = AnimRockTomb, }; -const union AffineAnimCmd gUnknown_08596C70[] = +static const union AffineAnimCmd sAffineAnim_BasicRock_0[] = { AFFINEANIMCMD_FRAME(0x0, 0x0, -5, 5), AFFINEANIMCMD_JUMP(0), }; -const union AffineAnimCmd gUnknown_08596C80[] = +static const union AffineAnimCmd sAffineAnim_BasicRock_1[] = { AFFINEANIMCMD_FRAME(0x0, 0x0, 5, 5), AFFINEANIMCMD_JUMP(0), }; -const union AffineAnimCmd *const gUnknown_08596C90[] = +static const union AffineAnimCmd *const sAffineAnims_BasicRock[] = { - gUnknown_08596C70, - gUnknown_08596C80, + sAffineAnim_BasicRock_0, + sAffineAnim_BasicRock_1, }; -const struct SpriteTemplate gUnknown_08596C98 = +const struct SpriteTemplate gRockBlastRockSpriteTemplate = { .tileTag = ANIM_TAG_ROCKS, .paletteTag = ANIM_TAG_ROCKS, .oam = &gOamData_AffineNormal_ObjNormal_32x32, - .anims = gUnknown_08596BF8, + .anims = sAnims_BasicRock, .images = NULL, - .affineAnims = gUnknown_08596C90, - .callback = sub_8111418, + .affineAnims = sAffineAnims_BasicRock, + .callback = AnimRockBlastRock, }; -const struct SpriteTemplate gUnknown_08596CB0 = +const struct SpriteTemplate gRockScatterSpriteTemplate = { .tileTag = ANIM_TAG_ROCKS, .paletteTag = ANIM_TAG_ROCKS, .oam = &gOamData_AffineNormal_ObjNormal_32x32, - .anims = gUnknown_08596BF8, + .anims = sAnims_BasicRock, .images = NULL, - .affineAnims = gUnknown_08596C90, - .callback = sub_8111444, + .affineAnims = sAffineAnims_BasicRock, + .callback = AnimRockScatter, }; -const struct SpriteTemplate gUnknown_08596CC8 = +const struct SpriteTemplate gTwisterRockSpriteTemplate = { .tileTag = ANIM_TAG_ROCKS, .paletteTag = ANIM_TAG_ROCKS, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_08596C08, + .anims = sAnims_TwisterRock, .images = NULL, - .affineAnims = gUnknown_08596C90, + .affineAnims = sAffineAnims_BasicRock, .callback = AnimMoveTwisterParticle, }; -const struct SpriteTemplate gUnknown_08596CE0 = +const struct SpriteTemplate gWeatherBallRockDownSpriteTemplate = { .tileTag = ANIM_TAG_ROCKS, .paletteTag = ANIM_TAG_ROCKS, .oam = &gOamData_AffineNormal_ObjNormal_32x32, - .anims = gUnknown_08596C00, + .anims = sAnims_WeatherBallRockDown, .images = NULL, - .affineAnims = gUnknown_08596C90, - .callback = sub_80A8EE4, + .affineAnims = sAffineAnims_BasicRock, + .callback = AnimWeatherBallDown, }; -void sub_81109F0(struct Sprite *sprite) +static void AnimFallingRock(struct Sprite *sprite) { if (gBattleAnimArgs[3] != 0) SetAverageBattlerPositions(gBattleAnimTarget, 0, &sprite->pos1.x, &sprite->pos1.y); @@ -323,12 +320,12 @@ void sub_81109F0(struct Sprite *sprite) sprite->data[4] = -70; sprite->data[5] = gBattleAnimArgs[2]; - StoreSpriteCallbackInData6(sprite, sub_8110A70); + StoreSpriteCallbackInData6(sprite, AnimFallingRock_Step); sprite->callback = TranslateSpriteInEllipseOverDuration; sprite->callback(sprite); } -static void sub_8110A70(struct Sprite *sprite) +static void AnimFallingRock_Step(struct Sprite *sprite) { sprite->pos1.x += sprite->data[5]; @@ -343,7 +340,8 @@ static void sub_8110A70(struct Sprite *sprite) sprite->callback(sprite); } -void sub_8110AB4(struct Sprite *sprite) +// Animates the rock particles that are shown on the impact for Rock Blast / Rock Smash +static void AnimRockFragment(struct Sprite *sprite) { StartSpriteAnim(sprite, gBattleAnimArgs[5]); AnimateSprite(sprite); @@ -369,9 +367,10 @@ void sub_8110AB4(struct Sprite *sprite) StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix); } -void sub_8110B38(struct Sprite *sprite) +// Swirls particle in vortex. Used for moves like Fire Spin or Sand Tomb +static void AnimParticleInVortex(struct Sprite *sprite) { - if (gBattleAnimArgs[6] == 0) + if (gBattleAnimArgs[6] == ANIM_ATTACKER) InitSpritePosToAnimAttacker(sprite, 0); else InitSpritePosToAnimTarget(sprite, FALSE); @@ -381,10 +380,10 @@ void sub_8110B38(struct Sprite *sprite) sprite->data[2] = gBattleAnimArgs[4]; sprite->data[3] = gBattleAnimArgs[5]; - sprite->callback = sub_8110B80; + sprite->callback = AnimParticleInVortex_Step; } -static void sub_8110B80(struct Sprite *sprite) +static void AnimParticleInVortex_Step(struct Sprite *sprite) { sprite->data[4] += sprite->data[1]; sprite->pos2.y = -(sprite->data[4] >> 8); @@ -417,18 +416,18 @@ void AnimTask_LoadSandstormBackground(u8 taskId) SetGpuReg(REG_OFFSET_BG1VOFS, gBattle_BG1_Y); sub_80A6B30(&animBg); - AnimLoadCompressedBgGfx(animBg.bgId, gUnknown_08D8D58C, animBg.tilesOffset); - sub_80A6D60(&animBg, gUnknown_08D8D410, 0); + AnimLoadCompressedBgGfx(animBg.bgId, gBattleAnimBgImage_Sandstorm, animBg.tilesOffset); + AnimLoadCompressedBgTilemapHandleContest(&animBg, gBattleAnimBgTilemap_Sandstorm, 0); LoadCompressedPalette(gBattleAnimSpritePal_FlyingDirt, animBg.paletteId * 16, 32); if (gBattleAnimArgs[0] && GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) var0 = 1; gTasks[taskId].data[0] = var0; - gTasks[taskId].func = sub_8110CB0; + gTasks[taskId].func = AnimTask_LoadSandstormBackground_Step; } -static void sub_8110CB0(u8 taskId) +static void AnimTask_LoadSandstormBackground_Step(u8 taskId) { struct BattleAnimBgData animBg; @@ -499,7 +498,7 @@ static void sub_8110CB0(u8 taskId) // arg 1: projectile speed // arg 2: y pixel drop // arg 3: ??? unknown (possibly a color bit) -void AnimDirtParticleAcrossScreen(struct Sprite *sprite) +static void AnimFlyingSandCrescent(struct Sprite *sprite) { if (sprite->data[0] == 0) { @@ -516,7 +515,7 @@ void AnimDirtParticleAcrossScreen(struct Sprite *sprite) } sprite->pos1.y = gBattleAnimArgs[0]; - SetSubspriteTables(sprite, gUnknown_08596BC0); + SetSubspriteTables(sprite, sFlyingSandSubspriteTable); sprite->data[1] = gBattleAnimArgs[1]; sprite->data[2] = gBattleAnimArgs[2]; sprite->data[0]++; @@ -550,7 +549,7 @@ void AnimDirtParticleAcrossScreen(struct Sprite *sprite) // arg 2: terminal y offset // arg 3: duration // arg 4: sprite size [1,5] -void AnimRaiseSprite(struct Sprite *sprite) +static void AnimRaiseSprite(struct Sprite *sprite) { StartSpriteAnim(sprite, gBattleAnimArgs[4]); InitSpritePosToAnimAttacker(sprite, 0); @@ -563,10 +562,10 @@ void AnimRaiseSprite(struct Sprite *sprite) StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); } -void sub_8110F74(u8 taskId) +void AnimTask_Rollout(u8 taskId) { u16 var0, var1, var2, var3; - u8 var4; + u8 rolloutCounter; int var5; s16 pan1, pan2; struct Task *task; @@ -581,11 +580,11 @@ void sub_8110F74(u8 taskId) if (BATTLE_PARTNER(gBattleAnimAttacker) == gBattleAnimTarget) var3 = var1; - var4 = sub_811135C(); - if (var4 == 1) + rolloutCounter = GetRolloutCounter(); + if (rolloutCounter == 1) task->data[8] = 32; else - task->data[8] = 48 - (var4 * 8); + task->data[8] = 48 - (rolloutCounter * 8); task->data[0] = 0; task->data[11] = 0; @@ -610,13 +609,13 @@ void sub_8110F74(u8 taskId) task->data[13] = pan1; task->data[14] = (pan2 - pan1) / task->data[8]; - task->data[1] = var4; - task->data[15] = GetAnimBattlerSpriteId(0); + task->data[1] = rolloutCounter; + task->data[15] = GetAnimBattlerSpriteId(ANIM_ATTACKER); - task->func = sub_81110A4; + task->func = AnimTask_Rollout_Step; } -void sub_81110A4(u8 taskId) +static void AnimTask_Rollout_Step(u8 taskId) { struct Task *task; @@ -684,28 +683,28 @@ void sub_81110A4(u8 taskId) static void sub_8111214(struct Task *task) { const struct SpriteTemplate *spriteTemplate; - int var0; + int tileOffset; u16 x, y; u8 spriteId; switch (task->data[1]) { case 1: - spriteTemplate = &gUnknown_08596C28; - var0 = 0; + spriteTemplate = &gRolloutMudSpriteTemplate; + tileOffset = 0; break; case 2: case 3: - spriteTemplate = &gUnknown_08596C40; - var0 = 80; + spriteTemplate = &gRolloutRockSpriteTemplate; + tileOffset = 80; break; case 4: - spriteTemplate = &gUnknown_08596C40; - var0 = 64; + spriteTemplate = &gRolloutRockSpriteTemplate; + tileOffset = 64; break; case 5: - spriteTemplate = &gUnknown_08596C40; - var0 = 48; + spriteTemplate = &gRolloutRockSpriteTemplate; + tileOffset = 48; break; default: return; @@ -722,7 +721,7 @@ static void sub_8111214(struct Task *task) gSprites[spriteId].data[2] = ((task->data[12] * 20) + x) + (task->data[1] * 3); gSprites[spriteId].data[4] = y; gSprites[spriteId].data[5] = -16 - (task->data[1] * 2); - gSprites[spriteId].oam.tileNum += var0; + gSprites[spriteId].oam.tileNum += tileOffset; InitAnimArcTranslation(&gSprites[spriteId]); task->data[11]++; @@ -731,11 +730,11 @@ static void sub_8111214(struct Task *task) task->data[12] *= -1; } -void sub_811131C(struct Sprite *sprite) +static void AnimRolloutParticle(struct Sprite *sprite) { if (TranslateAnimHorizontalArc(sprite)) { - u8 taskId = FindTaskIdByFunc(sub_81110A4); + u8 taskId = FindTaskIdByFunc(AnimTask_Rollout_Step); if (taskId != 0xFF) gTasks[taskId].data[11]--; @@ -743,7 +742,7 @@ void sub_811131C(struct Sprite *sprite) } } -static u8 sub_811135C(void) +static u8 GetRolloutCounter(void) { u8 retVal = gAnimDisableStructPtr->rolloutTimerStartValue - gAnimDisableStructPtr->rolloutTimer; u8 var0 = retVal - 1; @@ -753,7 +752,7 @@ static u8 sub_811135C(void) return retVal; } -void sub_8111388(struct Sprite *sprite) +static void AnimRockTomb(struct Sprite *sprite) { StartSpriteAnim(sprite, gBattleAnimArgs[4]); @@ -762,13 +761,13 @@ void sub_8111388(struct Sprite *sprite) sprite->data[3] -= gBattleAnimArgs[2]; sprite->data[0] = 3; sprite->data[1] = gBattleAnimArgs[3]; - sprite->callback = sub_81113C8; - sprite->invisible = 1; + sprite->callback = AnimRockTomb_Step; + sprite->invisible = TRUE; } -static void sub_81113C8(struct Sprite *sprite) +static void AnimRockTomb_Step(struct Sprite *sprite) { - sprite->invisible = 0; + sprite->invisible = FALSE; if (sprite->data[3] != 0) { sprite->pos2.y = sprite->data[2] + sprite->data[3]; @@ -786,7 +785,7 @@ static void sub_81113C8(struct Sprite *sprite) } } -void sub_8111418(struct Sprite *sprite) +static void AnimRockBlastRock(struct Sprite *sprite) { if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_OPPONENT) StartSpriteAffineAnim(sprite, 1); @@ -794,7 +793,7 @@ void sub_8111418(struct Sprite *sprite) TranslateAnimSpriteToTargetMonLocation(sprite); } -void sub_8111444(struct Sprite *sprite) +static void AnimRockScatter(struct Sprite *sprite) { sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, 0); sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, 1); @@ -806,10 +805,10 @@ void sub_8111444(struct Sprite *sprite) sprite->data[5] = gBattleAnimArgs[2]; StartSpriteAnim(sprite, gBattleAnimArgs[3]); - sprite->callback = sub_811149C; + sprite->callback = AnimRockScatter_Step; } -static void sub_811149C(struct Sprite *sprite) +static void AnimRockScatter_Step(struct Sprite *sprite) { sprite->data[0] += 8; sprite->data[3] += sprite->data[1]; @@ -825,20 +824,20 @@ static void sub_811149C(struct Sprite *sprite) void AnimTask_GetSeismicTossDamageLevel(u8 taskId) { if (gAnimMoveDmg < 33) - gBattleAnimArgs[7] = 0; + gBattleAnimArgs[ARG_RET_ID] = 0; if ((u32)gAnimMoveDmg - 33 < 33) - gBattleAnimArgs[7] = 1; + gBattleAnimArgs[ARG_RET_ID] = 1; if (gAnimMoveDmg > 65) - gBattleAnimArgs[7] = 2; + gBattleAnimArgs[ARG_RET_ID] = 2; DestroyAnimVisualTask(taskId); } -void sub_811152C(u8 taskId) +void AnimTask_MoveSeismicTossBg(u8 taskId) { if (gTasks[taskId].data[0] == 0) { - sub_80A6DAC(0); + sub_80A6DAC(FALSE); gTasks[taskId].data[1] = 200; } @@ -847,18 +846,18 @@ void sub_811152C(u8 taskId) if (gTasks[taskId].data[0] == 120) { - sub_80A6DAC(1); + sub_80A6DAC(TRUE); DestroyAnimVisualTask(taskId); } gTasks[taskId].data[0]++; } -void sub_8111590(u8 taskId) +void AnimTask_SeismicTossBgAccelerateDownAtEnd(u8 taskId) { if (gTasks[taskId].data[0] == 0) { - sub_80A6DAC(0); + sub_80A6DAC(FALSE); gTasks[taskId].data[0]++; gTasks[taskId].data[2] = gBattle_BG3_Y; } @@ -870,7 +869,7 @@ void sub_8111590(u8 taskId) if (gBattleAnimArgs[7] == 0xFFF) { gBattle_BG3_Y = 0; - sub_80A6DAC(1); + sub_80A6DAC(TRUE); DestroyAnimVisualTask(taskId); } } diff --git a/src/smokescreen.c b/src/battle_anim_smokescreen.c index 7d83251bc..a8c043e67 100644 --- a/src/smokescreen.c +++ b/src/battle_anim_smokescreen.c @@ -41,17 +41,17 @@ const u8 gUnknown_0831C604[] = [NATURE_QUIRKY] = 0, }; -static const struct CompressedSpriteSheet gSmokescreenImpactSpriteSheet = +static const struct CompressedSpriteSheet sSmokescreenImpactSpriteSheet = { .data = gSmokescreenImpactTiles, .size = 0x180, .tag = 55019 }; -static const struct CompressedSpritePalette gSmokescreenlImpactSpritePalette = +static const struct CompressedSpritePalette sSmokescreenImpactSpritePalette = { .data = gSmokescreenImpactPalette, .tag = 55019 }; -static const struct OamData gUnknown_0831C630 = +static const struct OamData sOamData_SmokescreenImpact = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -68,7 +68,7 @@ static const struct OamData gUnknown_0831C630 = .affineParam = 0 }; -static const union AnimCmd gUnknown_0831C638[] = +static const union AnimCmd sAnim_SmokescreenImpact_0[] = { ANIMCMD_FRAME(0, 4), ANIMCMD_FRAME(4, 4), @@ -76,7 +76,7 @@ static const union AnimCmd gUnknown_0831C638[] = ANIMCMD_END }; -static const union AnimCmd gUnknown_0831C648[] = +static const union AnimCmd sAnim_SmokescreenImpact_1[] = { ANIMCMD_FRAME(0, 4, .hFlip = TRUE), ANIMCMD_FRAME(4, 4, .hFlip = TRUE), @@ -84,7 +84,7 @@ static const union AnimCmd gUnknown_0831C648[] = ANIMCMD_END }; -static const union AnimCmd gUnknown_0831C658[] = +static const union AnimCmd sAnim_SmokescreenImpact_2[] = { ANIMCMD_FRAME(0, 4, .vFlip = TRUE), ANIMCMD_FRAME(4, 4, .vFlip = TRUE), @@ -92,7 +92,7 @@ static const union AnimCmd gUnknown_0831C658[] = ANIMCMD_END }; -static const union AnimCmd gUnknown_0831C668[] = +static const union AnimCmd sAnim_SmokescreenImpact_3[] = { ANIMCMD_FRAME(0, 4, .hFlip = TRUE, .vFlip = TRUE), ANIMCMD_FRAME(4, 4, .hFlip = TRUE, .vFlip = TRUE), @@ -100,20 +100,20 @@ static const union AnimCmd gUnknown_0831C668[] = ANIMCMD_END }; -static const union AnimCmd *const gUnknown_0831C678[] = +static const union AnimCmd *const sAnims_SmokescreenImpact[] = { - gUnknown_0831C638, - gUnknown_0831C648, - gUnknown_0831C658, - gUnknown_0831C668, + sAnim_SmokescreenImpact_0, + sAnim_SmokescreenImpact_1, + sAnim_SmokescreenImpact_2, + sAnim_SmokescreenImpact_3, }; -static const struct SpriteTemplate gSmokescreenImpactSpriteTemplate = +static const struct SpriteTemplate sSmokescreenImpactSpriteTemplate = { .tileTag = 55019, .paletteTag = 55019, - .oam = &gUnknown_0831C630, - .anims = gUnknown_0831C678, + .oam = &sOamData_SmokescreenImpact, + .anims = sAnims_SmokescreenImpact, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCB_DestroySprite @@ -158,34 +158,34 @@ u8 SmokescreenImpact(s16 x, s16 y, u8 a3) u8 spriteId1, spriteId2, spriteId3, spriteId4; struct Sprite *mainSprite; - if (GetSpriteTileStartByTag(gSmokescreenImpactSpriteSheet.tag) == 0xFFFF) + if (GetSpriteTileStartByTag(sSmokescreenImpactSpriteSheet.tag) == 0xFFFF) { - LoadCompressedSpriteSheetUsingHeap(&gSmokescreenImpactSpriteSheet); - LoadCompressedSpritePaletteUsingHeap(&gSmokescreenlImpactSpritePalette); + LoadCompressedSpriteSheetUsingHeap(&sSmokescreenImpactSpriteSheet); + LoadCompressedSpritePaletteUsingHeap(&sSmokescreenImpactSpritePalette); } mainSpriteId = CreateInvisibleSpriteWithCallback(SmokescreenImpact_Callback); mainSprite = &gSprites[mainSpriteId]; mainSprite->data[1] = a3; - spriteId1 = CreateSprite(&gSmokescreenImpactSpriteTemplate, x - 16, y - 16, 2); + spriteId1 = CreateSprite(&sSmokescreenImpactSpriteTemplate, x - 16, y - 16, 2); gSprites[spriteId1].data[0] = mainSpriteId; mainSprite->data[0]++; AnimateSprite(&gSprites[spriteId1]); - spriteId2 = CreateSprite(&gSmokescreenImpactSpriteTemplate, x, y - 16, 2); + spriteId2 = CreateSprite(&sSmokescreenImpactSpriteTemplate, x, y - 16, 2); gSprites[spriteId2].data[0] = mainSpriteId; mainSprite->data[0]++; StartSpriteAnim(&gSprites[spriteId2], 1); AnimateSprite(&gSprites[spriteId2]); - spriteId3 = CreateSprite(&gSmokescreenImpactSpriteTemplate, x - 16, y, 2); + spriteId3 = CreateSprite(&sSmokescreenImpactSpriteTemplate, x - 16, y, 2); gSprites[spriteId3].data[0] = mainSpriteId; mainSprite->data[0]++; StartSpriteAnim(&gSprites[spriteId3], 2); AnimateSprite(&gSprites[spriteId3]); - spriteId4 = CreateSprite(&gSmokescreenImpactSpriteTemplate, x, y, 2); + spriteId4 = CreateSprite(&sSmokescreenImpactSpriteTemplate, x, y, 2); gSprites[spriteId4].data[0] = mainSpriteId; mainSprite->data[0]++; StartSpriteAnim(&gSprites[spriteId4], 3); @@ -198,8 +198,8 @@ static void SmokescreenImpact_Callback(struct Sprite *sprite) { if (!sprite->data[0]) { - FreeSpriteTilesByTag(gSmokescreenImpactSpriteSheet.tag); - FreeSpritePaletteByTag(gSmokescreenlImpactSpritePalette.tag); + FreeSpriteTilesByTag(sSmokescreenImpactSpriteSheet.tag); + FreeSpritePaletteByTag(sSmokescreenImpactSpritePalette.tag); if (!sprite->data[1]) DestroySprite(sprite); else diff --git a/src/battle_anim_sound_tasks.c b/src/battle_anim_sound_tasks.c index 573feb41c..8efc987b8 100644 --- a/src/battle_anim_sound_tasks.c +++ b/src/battle_anim_sound_tasks.c @@ -10,10 +10,10 @@ // this file's functions static void sub_8158B98(u8 taskId); static void sub_8158C04(u8 taskId); -static void sub_8158D08(u8 taskId); -static void sub_8158FF4(u8 taskId); -static void sub_815913C(u8 taskId); -static void sub_8159308(u8 taskId); +static void SoundTask_LoopSEAdjustPanning_Step(u8 taskId); +static void SoundTask_PlayDoubleCry_Step(u8 taskId); +static void SoundTask_PlayCryWithEcho_Step(u8 taskId); +static void SoundTask_AdjustPanningVar_Step(u8 taskId); // task start void sub_8158B30(u8 taskId) @@ -73,7 +73,7 @@ static void sub_8158C04(u8 taskId) // task end // task start -void sub_8158C58(u8 taskId) +void SoundTask_LoopSEAdjustPanning(u8 taskId) { u16 songId = gBattleAnimArgs[0]; s8 targetPan = gBattleAnimArgs[2]; @@ -97,11 +97,11 @@ void sub_8158C58(u8 taskId) gTasks[taskId].data[11] = sourcePan; gTasks[taskId].data[12] = r9; - gTasks[taskId].func = sub_8158D08; - sub_8158D08(taskId); + gTasks[taskId].func = SoundTask_LoopSEAdjustPanning_Step; + SoundTask_LoopSEAdjustPanning_Step(taskId); } -static void sub_8158D08(u8 taskId) +static void SoundTask_LoopSEAdjustPanning_Step(u8 taskId) { if (gTasks[taskId].data[12]++ == gTasks[taskId].data[6]) { @@ -119,7 +119,7 @@ static void sub_8158D08(u8 taskId) u16 dPan, oldPan; gTasks[taskId].data[10] = 0; dPan = gTasks[taskId].data[3]; - oldPan = gTasks[taskId].data[11] ; + oldPan = gTasks[taskId].data[11]; gTasks[taskId].data[11] = dPan + oldPan; gTasks[taskId].data[11] = KeepPanInRange(gTasks[taskId].data[11], oldPan); } @@ -127,7 +127,7 @@ static void sub_8158D08(u8 taskId) // task end // task start -void sub_8158D8C(u8 taskId) +void SoundTask_PlayCryHighPitch(u8 taskId) { u16 species = 0; s8 pan = BattleAnimAdjustPanning(SOUND_PAN_ATTACKER); @@ -173,7 +173,7 @@ void sub_8158D8C(u8 taskId) // task end // task start -void sub_8158E9C(u8 taskId) +void SoundTask_PlayDoubleCry(u8 taskId) { u16 species = 0; s8 pan = BattleAnimAdjustPanning(SOUND_PAN_ATTACKER); @@ -222,7 +222,7 @@ void sub_8158E9C(u8 taskId) else PlayCry3(species, pan, 7); - gTasks[taskId].func = sub_8158FF4; + gTasks[taskId].func = SoundTask_PlayDoubleCry_Step; } else { @@ -230,7 +230,7 @@ void sub_8158E9C(u8 taskId) } } -static void sub_8158FF4(u8 taskId) +static void SoundTask_PlayDoubleCry_Step(u8 taskId) { u16 species = gTasks[taskId].data[1]; s8 pan = gTasks[taskId].data[2]; @@ -261,7 +261,7 @@ static void sub_8158FF4(u8 taskId) } // task end -void sub_8159078(u8 taskId) +void SoundTask_WaitForCry(u8 taskId) { if (gTasks[taskId].data[9] < 2) { @@ -275,7 +275,7 @@ void sub_8159078(u8 taskId) } // task start -void sub_81590B8(u8 taskId) +void SoundTask_PlayCryWithEcho(u8 taskId) { u16 species; s8 pan; @@ -292,12 +292,12 @@ void sub_81590B8(u8 taskId) gTasks[taskId].data[2] = pan; if (species != SPECIES_NONE) - gTasks[taskId].func = sub_815913C; + gTasks[taskId].func = SoundTask_PlayCryWithEcho_Step; else DestroyAnimVisualTask(taskId); } -static void sub_815913C(u8 taskId) +static void SoundTask_PlayCryWithEcho_Step(u8 taskId) { u16 species = gTasks[taskId].data[1]; s8 pan = gTasks[taskId].data[2]; @@ -332,7 +332,7 @@ static void sub_815913C(u8 taskId) } // task end -void sub_8159210(u8 taskId) +void SoundTask_PlaySE1WithPanning(u8 taskId) { u16 songId = gBattleAnimArgs[0]; s8 pan = BattleAnimAdjustPanning(gBattleAnimArgs[1]); @@ -341,7 +341,7 @@ void sub_8159210(u8 taskId) DestroyAnimVisualTask(taskId); } -void sub_8159244(u8 taskId) +void SoundTask_PlaySE2WithPanning(u8 taskId) { u16 songId = gBattleAnimArgs[0]; s8 pan = BattleAnimAdjustPanning(gBattleAnimArgs[1]); @@ -350,7 +350,9 @@ void sub_8159244(u8 taskId) DestroyAnimVisualTask(taskId); } -void sub_8159278(u8 taskId) +// Adjusts panning and assigns it to gAnimCustomPanning. Doesnt play sound. +// Used by Confuse Ray and Will-O-Wisp (see uses of gAnimCustomPanning) +void SoundTask_AdjustPanningVar(u8 taskId) { s8 targetPan = gBattleAnimArgs[1]; s8 panIncrement = gBattleAnimArgs[2]; @@ -367,11 +369,11 @@ void sub_8159278(u8 taskId) gTasks[taskId].data[10] = 0; gTasks[taskId].data[11] = sourcePan; - gTasks[taskId].func = sub_8159308; - sub_8159308(taskId); + gTasks[taskId].func = SoundTask_AdjustPanningVar_Step; + SoundTask_AdjustPanningVar_Step(taskId); } -void sub_8159308(u8 taskId) +static void SoundTask_AdjustPanningVar_Step(u8 taskId) { u16 panIncrement = gTasks[taskId].data[3]; @@ -384,7 +386,7 @@ void sub_8159308(u8 taskId) gTasks[taskId].data[11] = KeepPanInRange(gTasks[taskId].data[11], oldPan); } - gUnknown_02038440 = gTasks[taskId].data[11]; + gAnimCustomPanning = gTasks[taskId].data[11]; if (gTasks[taskId].data[11] == gTasks[taskId].data[2]) DestroyAnimVisualTask(taskId); } diff --git a/src/battle_anim_special.c b/src/battle_anim_special.c index 6ff5ee893..bf0d1d438 100755 --- a/src/battle_anim_special.c +++ b/src/battle_anim_special.c @@ -514,7 +514,7 @@ static void sub_8170660(u8 taskId) } } -static void sub_8170834(u8 *paletteId1, u8 *paletteId2, u8 battler) +static void LoadHealthboxPalsForLevelUp(u8 *paletteId1, u8 *paletteId2, u8 battler) { u8 healthBoxSpriteId; u8 spriteId1, spriteId2; @@ -536,14 +536,14 @@ static void sub_8170834(u8 *paletteId1, u8 *paletteId2, u8 battler) gSprites[spriteId2].oam.paletteNum = *paletteId2; } -void sub_8170920(u8 taskId) +void AnimTask_LoadHealthboxPalsForLevelUp(u8 taskId) { u8 paletteId1, paletteId2; - sub_8170834(&paletteId1, &paletteId2, gBattleAnimAttacker); + LoadHealthboxPalsForLevelUp(&paletteId1, &paletteId2, gBattleAnimAttacker); DestroyAnimVisualTask(taskId); } -static void sub_817094C(u8 battler) +static void FreeHealthboxPalsForLevelUp(u8 battler) { u8 healthBoxSpriteId; u8 spriteId1, spriteId2; @@ -562,13 +562,13 @@ static void sub_817094C(u8 battler) gSprites[spriteId2].oam.paletteNum = paletteId2; } -void sub_81709EC(u8 taskId) +void AnimTask_FreeHealthboxPalsForLevelUp(u8 taskId) { - sub_817094C(gBattleAnimAttacker); + FreeHealthboxPalsForLevelUp(gBattleAnimAttacker); DestroyAnimVisualTask(taskId); } -void sub_8170A0C(u8 taskId) +void AnimTask_FlashHealthboxOnLevelUp(u8 taskId) { gTasks[taskId].data[10] = gBattleAnimArgs[0]; gTasks[taskId].data[11] = gBattleAnimArgs[1]; @@ -612,7 +612,7 @@ static void sub_8170A38(u8 taskId) } } -void sub_8170B04(u8 taskId) +void AnimTask_SwitchOutShrinkMon(u8 taskId) { u8 spriteId; @@ -633,13 +633,13 @@ void sub_8170B04(u8 taskId) break; case 2: ResetSpriteRotScale(spriteId); - gSprites[spriteId].invisible = 1; + gSprites[spriteId].invisible = TRUE; DestroyAnimVisualTask(taskId); break; } } -void sub_8170BB0(u8 taskId) +void AnimTask_SwitchOutBallEffect(u8 taskId) { u8 spriteId; u16 ball; @@ -674,14 +674,14 @@ void sub_8170BB0(u8 taskId) } } -void sub_8170CFC(u8 taskId) +void AnimTask_LoadBallGfx(u8 taskId) { u8 ballId = ItemIdToBallId(gLastUsedItem); LoadBallGfx(ballId); DestroyAnimVisualTask(taskId); } -void sub_8170D24(u8 taskId) +void AnimTask_FreeBallGfx(u8 taskId) { u8 ballId = ItemIdToBallId(gLastUsedItem); FreeBallGfx(ballId); @@ -730,7 +730,7 @@ u8 ItemIdToBallId(u16 ballItem) } } -void sub_8170E04(u8 taskId) +void AnimTask_ThrowBall(u8 taskId) { u8 ballId; u8 spriteId; @@ -753,7 +753,8 @@ static void sub_8170EF0(u8 taskId) DestroyAnimVisualTask(taskId); } -void sub_8170F2C(u8 taskId) +// Safari Ball / Wally's ball throw +void AnimTask_ThrowBallSpecial(u8 taskId) { int x, y; u8 ballId; @@ -895,7 +896,7 @@ static void sub_8171240(struct Sprite *sprite) break; case 2: ResetSpriteRotScale(spriteId); - gSprites[spriteId].invisible = 1; + gSprites[spriteId].invisible = TRUE; gTasks[taskId].data[0]++; break; default: @@ -1228,7 +1229,7 @@ static void sub_81718D8(struct Sprite *sprite) } break; case 2: - sprite->invisible = 1; + sprite->invisible = TRUE; sprite->data[0]++; break; default: @@ -1312,7 +1313,7 @@ static void sub_8171AE4(struct Sprite *sprite) break; } - gSprites[gBattlerSpriteIds[gBattleAnimTarget]].invisible = 0; + gSprites[gBattlerSpriteIds[gBattleAnimTarget]].invisible = FALSE; StartSpriteAffineAnim(&gSprites[gBattlerSpriteIds[gBattleAnimTarget]], 1); AnimateSprite(&gSprites[gBattlerSpriteIds[gBattleAnimTarget]]); gSprites[gBattlerSpriteIds[gBattleAnimTarget]].data[1] = 0x1000; @@ -1323,7 +1324,7 @@ static void sub_8171BAC(struct Sprite *sprite) int next = FALSE; if (sprite->animEnded) - sprite->invisible = 1; + sprite->invisible = TRUE; if (gSprites[gBattlerSpriteIds[gBattleAnimTarget]].affineAnimEnded) { @@ -1910,7 +1911,8 @@ static void sub_8172B90(u8 taskId) } } -void sub_8172BF0(u8 taskId) +// arg0: TRUE to swap to mon, FALSE to swap to substitute +void AnimTask_SwapMonSpriteToFromSubstitute(u8 taskId) { u8 spriteId; u32 x; @@ -1968,7 +1970,7 @@ void sub_8172BF0(u8 taskId) } } -void sub_8172D98(u8 taskId) +void AnimTask_SubstituteFadeToInvisible(u8 taskId) { u8 spriteId; @@ -2008,7 +2010,7 @@ void AnimTask_IsAttackerBehindSubstitute(u8 taskId) DestroyAnimVisualTask(taskId); } -void AnimTask_TargetToEffectBattler(u8 taskId) +void AnimTask_SetTargetToEffectBattler(u8 taskId) { gBattleAnimTarget = gEffectBattler; DestroyAnimVisualTask(taskId); @@ -2103,7 +2105,7 @@ static void sub_8172FEC(u8 taskId) gSprites[spriteId].callback = sub_8173250; gSprites[spriteId].pos2.x = -32; gSprites[spriteId].pos2.y = 32; - gSprites[spriteId].invisible = 1; + gSprites[spriteId].invisible = TRUE; if (gTasks[taskId].data[11] == 0) { if (GetBattlerSide(battler) == B_SIDE_PLAYER) @@ -2161,7 +2163,7 @@ static void sub_8173250(struct Sprite *sprite) } else { - sprite->invisible = 0; + sprite->invisible = FALSE; sprite->pos2.x += 5; sprite->pos2.y -= 5; if (sprite->pos2.x > 32) @@ -2213,7 +2215,7 @@ static void sub_81733D4(struct Sprite *sprite) if (TranslateAnimHorizontalArc(sprite)) { sprite->data[0] = 0; - sprite->invisible = 1; + sprite->invisible = TRUE; sprite->callback = sub_8173400; } } @@ -2230,7 +2232,7 @@ static void sub_8173400(struct Sprite *sprite) } } -void sub_817345C(u8 taskId) +void AnimTask_SetAttackerTargetLeftPos(u8 taskId) { switch (gBattleAnimArgs[0]) { diff --git a/src/battle_anim_status_effects.c b/src/battle_anim_status_effects.c index 003b6d2ef..56a8afa53 100644 --- a/src/battle_anim_status_effects.c +++ b/src/battle_anim_status_effects.c @@ -19,10 +19,10 @@ extern const struct OamData gOamData_AffineOff_ObjBlend_64x64; // This file's functions. static void sub_80A9DB4(u8 taskId); -static void sub_80A9FD0(u8 taskId); -static void sub_80AA020(u8 taskId); -static void sub_80AA0D0(u8 taskId); -static void sub_80AA124(u8 taskId); +static void AnimTask_FrozenIceCube_Step1(u8 taskId); +static void AnimTask_FrozenIceCube_Step2(u8 taskId); +static void AnimTask_FrozenIceCube_Step3(u8 taskId); +static void AnimTask_FrozenIceCube_Step4(u8 taskId); static void Task_DoStatusAnimation(u8 taskId); static void sub_80A9E44(struct Sprite *sprite); static void sub_80A9E78(struct Sprite *sprite); @@ -42,6 +42,7 @@ static const union AnimCmd *const sSpriteAnimTable_853EDF8[] = sSpriteAnim_853EDE4 }; +// Unused const struct SpriteTemplate gUnknown_0853EDFC = { .tileTag = ANIM_TAG_ORB, @@ -53,6 +54,7 @@ const struct SpriteTemplate gUnknown_0853EDFC = .callback = sub_80A8AEC, }; +// Unused const struct SpriteTemplate gUnknown_0853EE14 = { .tileTag = ANIM_TAG_ORB, @@ -64,37 +66,37 @@ const struct SpriteTemplate gUnknown_0853EE14 = .callback = sub_80A8A6C, }; -static const union AnimCmd sSpriteAnim_853EE2C[] = +static const union AnimCmd sAnim_WeatherBallNormal[] = { ANIMCMD_FRAME(0, 3), ANIMCMD_JUMP(0) }; -static const union AnimCmd *const sSpriteAnimTable_853EE34[] = +static const union AnimCmd *const sAnims_WeatherBallNormal[] = { - sSpriteAnim_853EE2C + sAnim_WeatherBallNormal }; -const struct SpriteTemplate gUnknown_0853EE38 = +const struct SpriteTemplate gWeatherBallUpSpriteTemplate = { .tileTag = ANIM_TAG_WEATHER_BALL, .paletteTag = ANIM_TAG_WEATHER_BALL, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = sSpriteAnimTable_853EE34, + .anims = sAnims_WeatherBallNormal, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80A8E30, + .callback = AnimWeatherBallUp, }; -const struct SpriteTemplate gUnknown_0853EE50 = +const struct SpriteTemplate gWeatherBallNormalDownSpriteTemplate = { .tileTag = ANIM_TAG_WEATHER_BALL, .paletteTag = ANIM_TAG_WEATHER_BALL, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = sSpriteAnimTable_853EE34, + .anims = sAnims_WeatherBallNormal, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80A8EE4, + .callback = AnimWeatherBallDown, }; static const union AnimCmd sSpriteAnim_853EE68[] = @@ -112,7 +114,7 @@ static const union AnimCmd *const sSpriteAnimTable_853EE80[] = sSpriteAnim_853EE68 }; -const struct SpriteTemplate gUnknown_0853EE84 = +const struct SpriteTemplate gSpinningSparkleSpriteTemplate = { .tileTag = ANIM_TAG_SPARKLE_4, .paletteTag = ANIM_TAG_SPARKLE_4, @@ -120,9 +122,10 @@ const struct SpriteTemplate gUnknown_0853EE84 = .anims = sSpriteAnimTable_853EE80, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80A8B64, + .callback = AnimSpinningSparkle, }; +// Unused const struct SpriteTemplate gUnknown_0853EE9C = { .tileTag = ANIM_TAG_MONSTER_FOOT, @@ -159,6 +162,7 @@ static const union AnimCmd *const sSpriteAnimTable_853EECC[] = sSpriteAnim_853EEC4 }; +// Unused const struct SpriteTemplate gUnknown_0853EED8 = { .tileTag = ANIM_TAG_IMPACT, @@ -204,7 +208,7 @@ const struct SpriteTemplate gUnknown_0853EF18 = .callback = sub_80A8A6C, }; -static const struct Subsprite gUnknown_0853EF30[] = +static const struct Subsprite sFrozenIceCubeSubsprites[] = { { .x = -16, @@ -240,12 +244,12 @@ static const struct Subsprite gUnknown_0853EF30[] = }, }; -static const struct SubspriteTable gUnknown_0853EF40[] = +static const struct SubspriteTable sFrozenIceCubeSubspriteTable[] = { - {ARRAY_COUNT(gUnknown_0853EF30), gUnknown_0853EF30}, + {ARRAY_COUNT(sFrozenIceCubeSubsprites), sFrozenIceCubeSubsprites}, }; -static const struct SpriteTemplate gUnknown_0853EF48 = +static const struct SpriteTemplate gFrozenIceCubeSpriteTemplate = { .tileTag = ANIM_TAG_ICE_CUBE, .paletteTag = ANIM_TAG_ICE_CUBE, @@ -267,7 +271,7 @@ static const struct SpriteTemplate gUnknown_0853EF60 = .callback = sub_80A9E44, }; -// code +// Unused u8 sub_80A9C70(u8 battlerId, bool8 b) { u8 battlerSpriteId = gBattlerSpriteIds[battlerId]; @@ -376,7 +380,7 @@ static void sub_80A9E78(struct Sprite *sprite) } } -void sub_80A9EF4(u8 taskId) +void AnimTask_FrozenIceCube(u8 taskId) { s16 x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) - 32; s16 y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) - 36; @@ -386,20 +390,20 @@ void sub_80A9EF4(u8 taskId) x -= 6; SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_ALL); SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0, 16)); - spriteId = CreateSprite(&gUnknown_0853EF48, x, y, 4); + spriteId = CreateSprite(&gFrozenIceCubeSpriteTemplate, x, y, 4); if (GetSpriteTileStartByTag(ANIM_TAG_ICE_CUBE) == 0xFFFF) gSprites[spriteId].invisible = TRUE; - SetSubspriteTables(&gSprites[spriteId], gUnknown_0853EF40); + SetSubspriteTables(&gSprites[spriteId], sFrozenIceCubeSubspriteTable); gTasks[taskId].data[15] = spriteId; - gTasks[taskId].func = sub_80A9FD0; + gTasks[taskId].func = AnimTask_FrozenIceCube_Step1; } -static void sub_80A9FD0(u8 taskId) +static void AnimTask_FrozenIceCube_Step1(u8 taskId) { gTasks[taskId].data[1]++; if (gTasks[taskId].data[1] == 10) { - gTasks[taskId].func = sub_80AA020; + gTasks[taskId].func = AnimTask_FrozenIceCube_Step2; gTasks[taskId].data[1] = 0; } else @@ -410,7 +414,7 @@ static void sub_80A9FD0(u8 taskId) } } -static void sub_80AA020(u8 taskId) +static void AnimTask_FrozenIceCube_Step2(u8 taskId) { u8 palIndex = IndexOfSpritePaletteTag(ANIM_TAG_ICE_CUBE); @@ -436,19 +440,19 @@ static void sub_80AA020(u8 taskId) if (gTasks[taskId].data[4] == 2) { gTasks[taskId].data[1] = 9; - gTasks[taskId].func = sub_80AA0D0; + gTasks[taskId].func = AnimTask_FrozenIceCube_Step3; } } } } } -static void sub_80AA0D0(u8 taskId) +static void AnimTask_FrozenIceCube_Step3(u8 taskId) { gTasks[taskId].data[1]--; if (gTasks[taskId].data[1] == -1) { - gTasks[taskId].func = sub_80AA124; + gTasks[taskId].func = AnimTask_FrozenIceCube_Step4; gTasks[taskId].data[1] = 0; } else @@ -459,7 +463,7 @@ static void sub_80AA0D0(u8 taskId) } } -static void sub_80AA124(u8 taskId) +static void AnimTask_FrozenIceCube_Step4(u8 taskId) { gTasks[taskId].data[1]++; if (gTasks[taskId].data[1] == 37) diff --git a/src/battle_anim_utility_funcs.c b/src/battle_anim_utility_funcs.c index eff2bc3c7..dcef7d483 100644 --- a/src/battle_anim_utility_funcs.c +++ b/src/battle_anim_utility_funcs.c @@ -25,18 +25,18 @@ static EWRAM_DATA struct AnimStatsChangeData *sAnimStatsChangeData = {0}; static void StartBlendAnimSpriteColor(u8, u32); static void AnimTask_BlendSpriteColor_Step2(u8); -static void sub_81169A0(u8); -static void sub_81169F8(u8); -static void sub_8116AD0(struct Sprite*); -static void sub_8116D64(u8); +static void AnimTask_HardwarePaletteFade_Step(u8); +static void AnimTask_TraceMonBlended_Step(u8); +static void AnimMonTrace(struct Sprite*); +static void AnimTask_DrawFallingWhiteLinesOnAttacker_Step(u8); static void sub_8116F04(u8); static void sub_81170EC(u8); static void sub_81172EC(u8); -static void sub_8117500(u8); +static void AnimTask_Flash_Step(u8); static void sub_81175C4(u32, u16); -static void sub_81176D8(u8); +static void AnimTask_UpdateSlidingBg(u8); static void sub_8117A60(u8); -static void ExtremSpeedMoveTarget_Step(u8); +static void AnimTask_WaitAndRestoreVisibility(u8); const u16 gUnknown_08597418 = RGB(31, 31, 31); @@ -45,7 +45,7 @@ const u16 gUnknown_08597418 = RGB(31, 31, 31); const u8 gUnknown_0859741A[] = {REG_OFFSET_BG0CNT, REG_OFFSET_BG1CNT, REG_OFFSET_BG2CNT, REG_OFFSET_BG3CNT}; const u8 gUnknown_0859741E[] = {REG_OFFSET_BG0CNT, REG_OFFSET_BG1CNT, REG_OFFSET_BG2CNT, REG_OFFSET_BG3CNT}; -void sub_8116620(u8 taskId) +void AnimTask_BlendBattleAnimPal(u8 taskId) { u32 selectedPalettes = UnpackSelectedBattleAnimPalettes(gBattleAnimArgs[0]); selectedPalettes |= sub_80A76C4((gBattleAnimArgs[0] >> 7) & 1, @@ -55,7 +55,7 @@ void sub_8116620(u8 taskId) StartBlendAnimSpriteColor(taskId, selectedPalettes); } -void sub_8116664(u8 taskId) +void AnimTask_BlendBattleAnimPalExclude(u8 taskId) { u8 battler; u32 selectedPalettes; @@ -68,13 +68,13 @@ void sub_8116664(u8 taskId) case 2: selectedPalettes = 0; // fall through - case 0: + case ANIM_ATTACKER: animBattlers[0] = gBattleAnimAttacker; break; case 3: selectedPalettes = 0; // fall through - case 1: + case ANIM_TARGET: animBattlers[0] = gBattleAnimTarget; break; case 4: @@ -193,7 +193,7 @@ static void AnimTask_BlendSpriteColor_Step2(u8 taskId) } } -void sub_8116960(u8 taskId) +void AnimTask_HardwarePaletteFade(u8 taskId) { BeginHardwarePaletteFade( gBattleAnimArgs[0], @@ -202,16 +202,17 @@ void sub_8116960(u8 taskId) gBattleAnimArgs[3], gBattleAnimArgs[4]); - gTasks[taskId].func = sub_81169A0; + gTasks[taskId].func = AnimTask_HardwarePaletteFade_Step; } -static void sub_81169A0(u8 taskId) +static void AnimTask_HardwarePaletteFade_Step(u8 taskId) { if (!gPaletteFade.active) DestroyAnimVisualTask(taskId); } -void sub_81169C0(u8 taskId) +// Used to leave blended traces of a mon, usually to imply speed as in Agility or Aerial Ace +void AnimTask_TraceMonBlended(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -221,10 +222,10 @@ void sub_81169C0(u8 taskId) task->data[3] = gBattleAnimArgs[2]; task->data[4] = gBattleAnimArgs[3]; task->data[5] = 0; - task->func = sub_81169F8; + task->func = AnimTask_TraceMonBlended_Step; } -static void sub_81169F8(u8 taskId) +static void AnimTask_TraceMonBlended_Step(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -243,7 +244,7 @@ static void sub_81169F8(u8 taskId) gSprites[task->data[6]].data[0] = task->data[3]; gSprites[task->data[6]].data[1] = taskId; gSprites[task->data[6]].data[2] = 5; - gSprites[task->data[6]].callback = sub_8116AD0; + gSprites[task->data[6]].callback = AnimMonTrace; task->data[5]++; } @@ -257,7 +258,7 @@ static void sub_81169F8(u8 taskId) } } -static void sub_8116AD0(struct Sprite *sprite) +static void AnimMonTrace(struct Sprite *sprite) { if (sprite->data[0]) { @@ -270,7 +271,8 @@ static void sub_8116AD0(struct Sprite *sprite) } } -void sub_8116B14(u8 taskId) +// Only used by Curse for non-Ghost mons +void AnimTask_DrawFallingWhiteLinesOnAttacker(u8 taskId) { u16 species; int spriteId, newSpriteId; @@ -326,10 +328,10 @@ void sub_8116B14(u8 taskId) species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_SPECIES); } - spriteId = GetAnimBattlerSpriteId(0); + spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER); newSpriteId = sub_80A89C8(gBattleAnimAttacker, spriteId, species); sub_80A6B30(&unknownStruct); - sub_80A6D60(&unknownStruct, gUnknown_08C20684, 0); + AnimLoadCompressedBgTilemapHandleContest(&unknownStruct, gUnknown_08C20684, 0); AnimLoadCompressedBgGfx(unknownStruct.bgId, gUnknown_08C20668, unknownStruct.tilesOffset); LoadPalette(&gUnknown_08597418, unknownStruct.paletteId * 16 + 1, 2); @@ -337,10 +339,10 @@ void sub_8116B14(u8 taskId) gBattle_BG1_Y = -gSprites[spriteId].pos1.y + 32; gTasks[taskId].data[0] = newSpriteId; gTasks[taskId].data[6] = var0; - gTasks[taskId].func = sub_8116D64; + gTasks[taskId].func = AnimTask_DrawFallingWhiteLinesOnAttacker_Step; } -static void sub_8116D64(u8 taskId) +static void AnimTask_DrawFallingWhiteLinesOnAttacker_Step(u8 taskId) { struct BattleAnimBgData unknownStruct; struct Sprite *sprite; @@ -468,9 +470,9 @@ static void sub_81170EC(u8 taskId) sub_80A6B30(&unknownStruct); if (sAnimStatsChangeData->data[0] == 0) - sub_80A6D60(&unknownStruct, gBattleStatMask1_Tilemap, 0); + AnimLoadCompressedBgTilemapHandleContest(&unknownStruct, gBattleStatMask1_Tilemap, 0); else - sub_80A6D60(&unknownStruct, gBattleStatMask2_Tilemap, 0); + AnimLoadCompressedBgTilemapHandleContest(&unknownStruct, gBattleStatMask2_Tilemap, 0); AnimLoadCompressedBgGfx(unknownStruct.bgId, gBattleStatMask_Gfx, unknownStruct.tilesOffset); switch (sAnimStatsChangeData->data[1]) @@ -599,7 +601,7 @@ static void sub_81172EC(u8 taskId) } } -void sub_8117494(u8 taskId) +void AnimTask_Flash(u8 taskId) { u32 selectedPalettes = sub_80A76C4(1, 1, 1, 1); sub_81175C4(selectedPalettes, 0); @@ -611,10 +613,10 @@ void sub_8117494(u8 taskId) gTasks[taskId].data[0] = 0; gTasks[taskId].data[1] = 0; - gTasks[taskId].func = sub_8117500; + gTasks[taskId].func = AnimTask_Flash_Step; } -static void sub_8117500(u8 taskId) +static void AnimTask_Flash_Step(u8 taskId) { u16 i; struct Task *task = &gTasks[taskId]; @@ -681,7 +683,7 @@ static void sub_81175C4(u32 selectedPalettes, u16 color) } } -void sub_8117610(u8 taskId) +void AnimTask_BlendNonAttackerPalettes(u8 taskId) { u32 battler; int j; @@ -699,12 +701,12 @@ void sub_8117610(u8 taskId) StartBlendAnimSpriteColor(taskId, selectedPalettes); } -void sub_8117660(u8 taskId) +void AnimTask_StartSlidingBg(u8 taskId) { u8 newTaskId; sub_80A6DAC(0); - newTaskId = CreateTask(sub_81176D8, 5); + newTaskId = CreateTask(AnimTask_UpdateSlidingBg, 5); if (gBattleAnimArgs[2] && GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) { gBattleAnimArgs[0] = -gBattleAnimArgs[0]; @@ -718,7 +720,7 @@ void sub_8117660(u8 taskId) DestroyAnimVisualTask(taskId); } -static void sub_81176D8(u8 taskId) +static void AnimTask_UpdateSlidingBg(u8 taskId) { gTasks[taskId].data[10] += gTasks[taskId].data[1]; gTasks[taskId].data[11] += gTasks[taskId].data[2]; @@ -738,35 +740,39 @@ static void sub_81176D8(u8 taskId) void AnimTask_GetAttackerSide(u8 taskId) { - gBattleAnimArgs[7] = GetBattlerSide(gBattleAnimAttacker); + gBattleAnimArgs[ARG_RET_ID] = GetBattlerSide(gBattleAnimAttacker); DestroyAnimVisualTask(taskId); } void AnimTask_GetTargetSide(u8 taskId) { - gBattleAnimArgs[7] = GetBattlerSide(gBattleAnimTarget); + gBattleAnimArgs[ARG_RET_ID] = GetBattlerSide(gBattleAnimTarget); DestroyAnimVisualTask(taskId); } void AnimTask_GetTargetIsAttackerPartner(u8 taskId) { - gBattleAnimArgs[7] = BATTLE_PARTNER(gBattleAnimAttacker) == gBattleAnimTarget; + gBattleAnimArgs[ARG_RET_ID] = BATTLE_PARTNER(gBattleAnimAttacker) == gBattleAnimTarget; DestroyAnimVisualTask(taskId); } -void sub_81177E4(u8 taskId) +#define tInvisible gBattleAnimArgs[0]; + +// For hiding or subsequently revealing all other battlers +void AnimTask_SetAllNonAttackersInvisiblity(u8 taskId) { u16 battler; for (battler = 0; battler < MAX_BATTLERS_COUNT; battler++) { if (battler != gBattleAnimAttacker && IsBattlerSpriteVisible(battler)) - gSprites[gBattlerSpriteIds[battler]].invisible = gBattleAnimArgs[0]; + gSprites[gBattlerSpriteIds[battler]].invisible = tInvisible; } DestroyAnimVisualTask(taskId); } +#undef tInvisible void sub_8117854(u8 taskId, int unused, u16 arg2, u8 battler1, u8 arg4, u8 arg5, u8 arg6, u8 arg7, const u32 *gfx, const u32 *tilemap, const u32 *palette) { @@ -819,7 +825,7 @@ void sub_8117854(u8 taskId, int unused, u16 arg2, u8 battler1, u8 arg4, u8 arg5, spriteId2 = sub_80A89C8(battler2, gBattlerSpriteIds[battler2], species); sub_80A6B30(&unknownStruct); - sub_80A6D60(&unknownStruct, tilemap, 0); + AnimLoadCompressedBgTilemapHandleContest(&unknownStruct, tilemap, 0); AnimLoadCompressedBgGfx(unknownStruct.bgId, gfx, unknownStruct.tilesOffset); LoadCompressedPalette(palette, unknownStruct.paletteId * 16, 32); @@ -902,20 +908,19 @@ void AnimTask_GetBattleTerrain(u8 taskId) DestroyAnimVisualTask(taskId); } -void sub_8117C44(u8 taskId) +void AnimTask_AllocBackupPalBuffer(u8 taskId) { - gMonSpritesGfxPtr->field_17C = AllocZeroed(0x2000); + gMonSpritesGfxPtr->buffer = AllocZeroed(0x2000); DestroyAnimVisualTask(taskId); } -void sub_8117C70(u8 taskId) +void AnimTask_FreeBackupPalBuffer(u8 taskId) { - Free(gMonSpritesGfxPtr->field_17C); - gMonSpritesGfxPtr->field_17C = NULL; + FREE_AND_SET_NULL(gMonSpritesGfxPtr->buffer); DestroyAnimVisualTask(taskId); } -void sub_8117CA0(u8 taskId) +void AnimTask_CopyPalUnfadedToBackup(u8 taskId) { u32 selectedPalettes; int paletteIndex = 0; @@ -938,11 +943,11 @@ void sub_8117CA0(u8 taskId) paletteIndex = gBattleAnimTarget + 16; } - memcpy(&gMonSpritesGfxPtr->field_17C[gBattleAnimArgs[1] * 16], &gPlttBufferUnfaded[paletteIndex * 16], 32); + memcpy(&gMonSpritesGfxPtr->buffer[gBattleAnimArgs[1] * 16], &gPlttBufferUnfaded[paletteIndex * 16], 32); DestroyAnimVisualTask(taskId); } -void sub_8117D3C(u8 taskId) +void AnimTask_CopyPalUnfadedFromBackup(u8 taskId) { u32 selectedPalettes; int paletteIndex = 0; @@ -965,11 +970,11 @@ void sub_8117D3C(u8 taskId) paletteIndex = gBattleAnimTarget + 16; } - memcpy(&gPlttBufferUnfaded[paletteIndex * 16], &gMonSpritesGfxPtr->field_17C[gBattleAnimArgs[1] * 16], 32); + memcpy(&gPlttBufferUnfaded[paletteIndex * 16], &gMonSpritesGfxPtr->buffer[gBattleAnimArgs[1] * 16], 32); DestroyAnimVisualTask(taskId); } -void sub_8117DD8(u8 taskId) +void AnimTask_CopyPalFadedToUnfaded(u8 taskId) { u32 selectedPalettes; int paletteIndex = 0; @@ -999,14 +1004,14 @@ void sub_8117DD8(u8 taskId) void AnimTask_IsContest(u8 taskId) { if (IsContest()) - gBattleAnimArgs[7] = 1; + gBattleAnimArgs[ARG_RET_ID] = TRUE; else - gBattleAnimArgs[7] = 0; + gBattleAnimArgs[ARG_RET_ID] = FALSE; DestroyAnimVisualTask(taskId); } -void sub_8117E94(u8 taskId) +void AnimTask_SetAnimAttackerAndTargetForEffectTgt(u8 taskId) { gBattleAnimAttacker = gBattlerTarget; gBattleAnimTarget = gEffectBattler; @@ -1016,27 +1021,27 @@ void sub_8117E94(u8 taskId) void AnimTask_IsTargetSameSide(u8 taskId) { if (GetBattlerSide(gBattleAnimAttacker) == GetBattlerSide(gBattleAnimTarget)) - gBattleAnimArgs[7] = 1; + gBattleAnimArgs[ARG_RET_ID] = TRUE; else - gBattleAnimArgs[7] = 0; + gBattleAnimArgs[ARG_RET_ID] = FALSE; DestroyAnimVisualTask(taskId); } -void sub_8117F10(u8 taskId) +void AnimTask_SetAnimTargetToBattlerTarget(u8 taskId) { gBattleAnimTarget = gBattlerTarget; DestroyAnimVisualTask(taskId); } -void sub_8117F30(u8 taskId) +void AnimTask_SetAnimAttackerAndTargetForEffectAtk(u8 taskId) { gBattleAnimAttacker = gBattlerAttacker; gBattleAnimTarget = gEffectBattler; DestroyAnimVisualTask(taskId); } -void AnimTask_ExtremeSpeedMoveTarget(u8 taskId) +void AnimTask_SetAttackerInvisibleWaitForSignal(u8 taskId) { if (IsContest()) { @@ -1045,13 +1050,13 @@ void AnimTask_ExtremeSpeedMoveTarget(u8 taskId) else { gTasks[taskId].data[0] = gBattleSpritesDataPtr->battlerData[gBattleAnimAttacker].invisible; - gBattleSpritesDataPtr->battlerData[gBattleAnimAttacker].invisible = 1; - gTasks[taskId].func = ExtremSpeedMoveTarget_Step; + gBattleSpritesDataPtr->battlerData[gBattleAnimAttacker].invisible = TRUE; + gTasks[taskId].func = AnimTask_WaitAndRestoreVisibility; gAnimVisualTaskCount--; } } -static void ExtremSpeedMoveTarget_Step(u8 taskId) +static void AnimTask_WaitAndRestoreVisibility(u8 taskId) { if (gBattleAnimArgs[7] == 0x1000) { diff --git a/src/water.c b/src/battle_anim_water.c index a2fe4c56f..5810b6bdc 100644 --- a/src/water.c +++ b/src/battle_anim_water.c @@ -13,56 +13,52 @@ #include "constants/battle.h" #include "constants/rgb.h" -void sub_810721C(struct Sprite *); -void sub_8107228(struct Sprite *); -void sub_8107260(struct Sprite *); -void sub_8107380(struct Sprite *); -void sub_8107408(struct Sprite *); -void sub_8107430(struct Sprite *); -void sub_810744C(struct Sprite *); -void sub_81074E4(struct Sprite *); -void sub_81075EC(struct Sprite *); -void sub_8107674(struct Sprite *); -void sub_8107730(struct Sprite *); -void sub_81077A4(struct Sprite *); -void sub_81077C0(struct Sprite *); -void sub_8107894(struct Sprite *); -void sub_81078D0(struct Sprite *); -void sub_810790C(struct Sprite *); -void sub_8108034(struct Sprite *); -void sub_8108098(struct Sprite *); -void sub_810851C(struct Sprite *); -void sub_81087C0(struct Sprite *); -void sub_810886C(struct Sprite *); -void sub_8108B2C(struct Sprite *); -void sub_8108B94(struct Sprite *); -void sub_8108BE0(struct Sprite *); -void sub_8108C08(struct Sprite *); -void sub_8108C54(struct Sprite *); -void AnimWaterPulseRing_Step(struct Sprite *); -void sub_810756C(u8); -void sub_81076F4(u8); -void sub_8107B84(u8); -void sub_8107CC4(u8); -void sub_8107D58(u8); -void sub_8108140(u8); -void sub_810862C(u8); -void sub_8108978(u8); -u8 sub_8108384(void); -void sub_8108408(struct Task*, u8); -void sub_810871C(struct Task*, u8); -void sub_8108AC0(struct Task*); -void sub_8108D54(struct Sprite*, int, int); - -extern const union AffineAnimCmd *const gGrowingRingAffineAnimTable[]; -extern const union AffineAnimCmd *const gUnknown_08596208[]; -extern const union AnimCmd *const gUnknown_08595AB8[]; - -// what is this? +static void AnimRainDrop(struct Sprite *); +static void AnimRainDrop_Step(struct Sprite *); +static void AnimWaterBubbleProjectile(struct Sprite *); +static void AnimWaterBubbleProjectile_Step1(struct Sprite *); +static void AnimWaterBubbleProjectile_Step2(struct Sprite *); +static void AnimWaterBubbleProjectile_Step3(struct Sprite *); +static void AnimAuroraBeamRings(struct Sprite *); +static void AnimAuroraBeamRings_Step(struct Sprite *); +static void AnimToTargetInSinWave(struct Sprite *); +static void AnimToTargetInSinWave_Step(struct Sprite *); +static void AnimHydroCannonCharge(struct Sprite *); +static void AnimHydroCannonCharge_Step(struct Sprite *); +static void AnimHydroCannonBeam(struct Sprite *); +static void AnimWaterGunDroplet(struct Sprite *); +static void AnimSmallBubblePair(struct Sprite *); +static void AnimSmallBubblePair_Step(struct Sprite *); +static void AnimSmallDriftingBubbles(struct Sprite *); +static void AnimSmallDriftingBubbles_Step(struct Sprite *); +static void AnimSmallWaterOrb(struct Sprite *); +static void AnimWaterSpoutRain(struct Sprite *); +static void AnimWaterSpoutRainHit(struct Sprite *); +static void AnimWaterSportDroplet(struct Sprite *); +static void AnimWaterSportDroplet_Step(struct Sprite *); +static void AnimWaterPulseBubble(struct Sprite *); +static void AnimWaterPulseBubble_Step(struct Sprite *); +static void AnimWaterPulseRingBubble(struct Sprite *); +static void AnimWaterPulseRing_Step(struct Sprite *); +static void AnimTask_RotateAuroraRingColors_Step(u8); +static void AnimTask_RunSinAnimTimer(u8); +static void AnimTask_CreateSurfWave_Step1(u8); +static void AnimTask_CreateSurfWave_Step2(u8); +static void AnimTask_SurfWaveScanlineEffect(u8); +static void AnimTask_WaterSpoutLaunch_Step(u8); +static void AnimTask_WaterSpoutRain_Step(u8); +static u8 GetWaterSpoutPowerForAnim(void); +static void CreateWaterSpoutLaunchDroplets(struct Task*, u8); +static void CreateWaterSpoutRainDroplet(struct Task*, u8); +static void AnimTask_WaterSport_Step(u8); +static void CreateWaterSportDroplet(struct Task*); +static void CreateWaterPulseRingBubbles(struct Sprite*, int, int); + +// Both unused const u8 gUnknown_8593C80[] = INCBIN_U8("graphics/unknown/unknown_593C80.4bpp"); const u8 gUnknown_8593FFC[] = INCBIN_U8("graphics/unknown/unknown_593FFC.bin"); -const union AnimCmd gUnknown_08594FFC[] = +static const union AnimCmd sAnim_RainDrop[] = { ANIMCMD_FRAME(0, 2), ANIMCMD_FRAME(8, 2), @@ -74,35 +70,35 @@ const union AnimCmd gUnknown_08594FFC[] = ANIMCMD_END, }; -const union AnimCmd *const gUnknown_0859501C[] = +static const union AnimCmd *const sAnims_RainDrop[] = { - gUnknown_08594FFC, + sAnim_RainDrop, }; -const struct SpriteTemplate gUnknown_08595020 = +const struct SpriteTemplate gRainDropSpriteTemplate = { .tileTag = ANIM_TAG_RAIN_DROPS, .paletteTag = ANIM_TAG_RAIN_DROPS, .oam = &gOamData_AffineOff_ObjNormal_16x32, - .anims = gUnknown_0859501C, + .anims = sAnims_RainDrop, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_810721C, + .callback = AnimRainDrop, }; -const union AffineAnimCmd gUnknown_08595038[] = +static const union AffineAnimCmd sAffineAnim_WaterBubbleProjectile[] = { AFFINEANIMCMD_FRAME(0xFFFB, 0xFFFB, 0, 10), AFFINEANIMCMD_FRAME(0x5, 0x5, 0, 10), AFFINEANIMCMD_JUMP(0), }; -const union AffineAnimCmd *const gUnknown_08595050[] = +static const union AffineAnimCmd *const sAffineAnims_WaterBubbleProjectile[] = { - gUnknown_08595038, + sAffineAnim_WaterBubbleProjectile, }; -const union AnimCmd gUnknown_08595054[] = +static const union AnimCmd sAnim_WaterBubbleProjectile[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_FRAME(4, 5), @@ -110,65 +106,64 @@ const union AnimCmd gUnknown_08595054[] = ANIMCMD_END, }; -const union AnimCmd *const gUnknown_08595064[] = +static const union AnimCmd *const sAnims_WaterBubbleProjectile[] = { - gUnknown_08595054, + sAnim_WaterBubbleProjectile, }; -const struct SpriteTemplate gBattleAnimSpriteTemplate_8595068 = +const struct SpriteTemplate gWaterBubbleProjectileSpriteTemplate = { .tileTag = ANIM_TAG_BUBBLE, .paletteTag = ANIM_TAG_BUBBLE, .oam = &gOamData_AffineNormal_ObjBlend_16x16, - .anims = gUnknown_08595064, + .anims = sAnims_WaterBubbleProjectile, .images = NULL, - .affineAnims = gUnknown_08595050, - .callback = sub_8107260, + .affineAnims = sAffineAnims_WaterBubbleProjectile, + .callback = AnimWaterBubbleProjectile, }; -const union AnimCmd gUnknown_08595080[] = +static const union AnimCmd sAnim_AuroraBeamRing_0[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_08595088[] = +static const union AnimCmd sAnim_AuroraBeamRing_1[] = { ANIMCMD_FRAME(4, 1), ANIMCMD_END, }; -const union AnimCmd *const gUnknown_08595090[] = +static const union AnimCmd *const sAnims_AuroraBeamRing[] = { - gUnknown_08595080, - gUnknown_08595088, + sAnim_AuroraBeamRing_0, + sAnim_AuroraBeamRing_1, }; -const union AffineAnimCmd gUnknown_08595098[] = +static const union AffineAnimCmd sAffineAnim_AuroraBeamRing[] = { AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 1), AFFINEANIMCMD_FRAME(0x60, 0x60, 0, 1), AFFINEANIMCMD_END, }; -const union AffineAnimCmd *const gUnknown_085950B0[] = +static const union AffineAnimCmd *const sAffineAnims_AuroraBeamRing[] = { - gUnknown_08595098, + sAffineAnim_AuroraBeamRing, }; -// Multi-colored rings used in Aurora Beam. -const struct SpriteTemplate gUnknown_085950B4 = +const struct SpriteTemplate gAuroraBeamRingSpriteTemplate = { .tileTag = ANIM_TAG_RAINBOW_RINGS, .paletteTag = ANIM_TAG_RAINBOW_RINGS, .oam = &gOamData_AffineDouble_ObjNormal_8x16, - .anims = gUnknown_08595090, + .anims = sAnims_AuroraBeamRing, .images = NULL, - .affineAnims = gUnknown_085950B0, - .callback = sub_810744C, + .affineAnims = sAffineAnims_AuroraBeamRing, + .callback = AnimAuroraBeamRings, }; -const union AnimCmd gUnknown_085950CC[] = +static const union AnimCmd sAnim_WaterMudOrb[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_FRAME(4, 1), @@ -177,34 +172,34 @@ const union AnimCmd gUnknown_085950CC[] = ANIMCMD_JUMP(0), }; -const union AnimCmd *const gUnknown_085950E0[] = +const union AnimCmd *const gAnims_WaterMudOrb[] = { - gUnknown_085950CC, + sAnim_WaterMudOrb, }; -const struct SpriteTemplate gUnknown_085950E4 = +const struct SpriteTemplate gHydroPumpOrbSpriteTemplate = { .tileTag = ANIM_TAG_WATER_ORB, .paletteTag = ANIM_TAG_WATER_ORB, .oam = &gOamData_AffineOff_ObjBlend_16x16, - .anims = gUnknown_085950E0, + .anims = gAnims_WaterMudOrb, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_81075EC, + .callback = AnimToTargetInSinWave, }; -const struct SpriteTemplate gUnknown_085950FC = +const struct SpriteTemplate gMudShotOrbSpriteTemplate = { .tileTag = ANIM_TAG_BROWN_ORB, .paletteTag = ANIM_TAG_BROWN_ORB, .oam = &gOamData_AffineOff_ObjBlend_16x16, - .anims = gUnknown_085950E0, + .anims = gAnims_WaterMudOrb, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_81075EC, + .callback = AnimToTargetInSinWave, }; -const struct SpriteTemplate gUnknown_08595114 = +const struct SpriteTemplate gSignalBeamRedOrbSpriteTemplate = { .tileTag = ANIM_TAG_GLOWY_RED_ORB, .paletteTag = ANIM_TAG_GLOWY_RED_ORB, @@ -212,10 +207,10 @@ const struct SpriteTemplate gUnknown_08595114 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_81075EC, + .callback = AnimToTargetInSinWave, }; -const struct SpriteTemplate gUnknown_0859512C = +const struct SpriteTemplate gSignalBeamGreenOrbSpriteTemplate = { .tileTag = ANIM_TAG_GLOWY_GREEN_ORB, .paletteTag = ANIM_TAG_GLOWY_GREEN_ORB, @@ -223,10 +218,10 @@ const struct SpriteTemplate gUnknown_0859512C = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_81075EC, + .callback = AnimToTargetInSinWave, }; -const union AnimCmd gUnknown_08595144[] = +static const union AnimCmd sAnim_FlamethrowerFlame[] = { ANIMCMD_FRAME(16, 2), ANIMCMD_FRAME(32, 2), @@ -234,23 +229,23 @@ const union AnimCmd gUnknown_08595144[] = ANIMCMD_JUMP(0), }; -const union AnimCmd *const gUnknown_08595154[] = +static const union AnimCmd *const sAnims_FlamethrowerFlame[] = { - gUnknown_08595144, + sAnim_FlamethrowerFlame, }; -const struct SpriteTemplate gUnknown_08595158 = +const struct SpriteTemplate gFlamethrowerFlameSpriteTemplate = { .tileTag = ANIM_TAG_SMALL_EMBER, .paletteTag = ANIM_TAG_SMALL_EMBER, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_08595154, + .anims = sAnims_FlamethrowerFlame, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_81075EC, + .callback = AnimToTargetInSinWave, }; -const struct SpriteTemplate gUnknown_08595170 = +const struct SpriteTemplate gPsywaveRingSpriteTemplate = { .tileTag = ANIM_TAG_BLUE_RING, .paletteTag = ANIM_TAG_BLUE_RING, @@ -258,10 +253,10 @@ const struct SpriteTemplate gUnknown_08595170 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gGrowingRingAffineAnimTable, - .callback = sub_81075EC, + .callback = AnimToTargetInSinWave, }; -const union AffineAnimCmd gUnknown_08595188[] = +static const union AffineAnimCmd sAffineAnim_HydroCannonCharge[] = { AFFINEANIMCMD_FRAME(0x3, 0x3, 10, 50), AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 10), @@ -269,100 +264,100 @@ const union AffineAnimCmd gUnknown_08595188[] = AFFINEANIMCMD_END, }; -const union AffineAnimCmd gUnknown_085951A8[] = +static const union AffineAnimCmd sAffineAnim_HydroCannonBeam[] = { AFFINEANIMCMD_FRAME(0x150, 0x150, 0, 0), AFFINEANIMCMD_END, }; -const union AffineAnimCmd *const gUnknown_085951B8[] = +static const union AffineAnimCmd *const sAffineAnims_HydroCannonCharge[] = { - gUnknown_08595188, + sAffineAnim_HydroCannonCharge, }; -const union AffineAnimCmd *const gUnknown_085951BC[] = +static const union AffineAnimCmd *const sAffineAnims_HydroCannonBeam[] = { - gUnknown_085951A8, + sAffineAnim_HydroCannonBeam, }; -const struct SpriteTemplate gUnknown_085951C0 = +const struct SpriteTemplate gHydroCannonChargeSpriteTemplate = { .tileTag = ANIM_TAG_WATER_ORB, .paletteTag = ANIM_TAG_WATER_ORB, .oam = &gOamData_AffineDouble_ObjBlend_16x16, - .anims = gUnknown_085950E0, + .anims = gAnims_WaterMudOrb, .images = NULL, - .affineAnims = gUnknown_085951B8, - .callback = sub_8107730, + .affineAnims = sAffineAnims_HydroCannonCharge, + .callback = AnimHydroCannonCharge, }; -const struct SpriteTemplate gUnknown_085951D8 = +const struct SpriteTemplate gHydroCannonBeamSpriteTemplate = { .tileTag = ANIM_TAG_WATER_ORB, .paletteTag = ANIM_TAG_WATER_ORB, .oam = &gOamData_AffineDouble_ObjBlend_16x16, - .anims = gUnknown_085950E0, + .anims = gAnims_WaterMudOrb, .images = NULL, - .affineAnims = gUnknown_085951BC, - .callback = sub_81077C0, + .affineAnims = sAffineAnims_HydroCannonBeam, + .callback = AnimHydroCannonBeam, }; -const union AnimCmd gUnknown_085951F0[] = +static const union AnimCmd sAnim_WaterBubble[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_085951F8[] = +static const union AnimCmd sAnim_WaterGunDroplet[] = { ANIMCMD_FRAME(4, 1), ANIMCMD_END, }; -const union AnimCmd *const gUnknown_08595200[] = +const union AnimCmd *const gAnims_WaterBubble[] = { - gUnknown_085951F0, + sAnim_WaterBubble, }; -const union AnimCmd *const gUnknown_08595204[] = +static const union AnimCmd *const sAnims_WaterGunDroplet[] = { - gUnknown_085951F8, + sAnim_WaterGunDroplet, }; -const struct SpriteTemplate gUnknown_08595208 = +const struct SpriteTemplate gWaterGunProjectileSpriteTemplate = { .tileTag = ANIM_TAG_SMALL_BUBBLES, .paletteTag = ANIM_TAG_SMALL_BUBBLES, .oam = &gOamData_AffineOff_ObjBlend_16x16, - .anims = gUnknown_08595200, + .anims = gAnims_WaterBubble, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimThrowProjectile, }; -const struct SpriteTemplate gUnknown_08595220 = +const struct SpriteTemplate gWaterGunDropletSpriteTemplate = { .tileTag = ANIM_TAG_SMALL_BUBBLES, .paletteTag = ANIM_TAG_SMALL_BUBBLES, .oam = &gOamData_AffineDouble_ObjBlend_16x16, - .anims = gUnknown_08595204, + .anims = sAnims_WaterGunDroplet, .images = NULL, - .affineAnims = gUnknown_08596208, - .callback = sub_8107894, + .affineAnims = gAffineAnims_Droplet, + .callback = AnimWaterGunDroplet, }; -const struct SpriteTemplate gUnknown_08595238 = +const struct SpriteTemplate gSmallBubblePairSpriteTemplate = { - .tileTag = ANIM_TAG_ICE_CRYSTALS, + .tileTag = ANIM_TAG_ICE_CRYSTALS, // ice_crystals_4, which are bubbles .paletteTag = ANIM_TAG_ICE_CRYSTALS, .oam = &gOamData_AffineOff_ObjNormal_8x8, - .anims = gUnknown_08595AB8, + .anims = gAnims_SmallBubblePair, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_81078D0, + .callback = AnimSmallBubblePair, }; -const struct SpriteTemplate gUnknown_08595250 = +const struct SpriteTemplate gSmallDriftingBubblesSpriteTemplate = { .tileTag = ANIM_TAG_SMALL_BUBBLES, .paletteTag = ANIM_TAG_SMALL_BUBBLES, @@ -370,10 +365,11 @@ const struct SpriteTemplate gUnknown_08595250 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8108034, + .callback = AnimSmallDriftingBubbles, }; -const struct SpriteTemplate gUnknown_08595268 = +// Used by Water Spout / Water Sport +const struct SpriteTemplate gSmallWaterOrbSpriteTemplate = { .tileTag = ANIM_TAG_GLOWY_BLUE_ORB, .paletteTag = ANIM_TAG_GLOWY_BLUE_ORB, @@ -381,105 +377,103 @@ const struct SpriteTemplate gUnknown_08595268 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_810851C, + .callback = AnimSmallWaterOrb, }; -const union AnimCmd gUnknown_08595280[] = +static const union AnimCmd sAnim_WaterPulseBubble_0[] = { ANIMCMD_FRAME(8, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_08595288[] = +static const union AnimCmd sAnim_WaterPulseBubble_1[] = { ANIMCMD_FRAME(9, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_08595290[] = +static const union AnimCmd sAnim_WeatherBallWaterDown[] = { ANIMCMD_FRAME(4, 1), ANIMCMD_END, }; -const union AnimCmd *const gUnknown_08595298[] = +static const union AnimCmd *const sAnims_WaterPulseBubble[] = { - gUnknown_08595280, - gUnknown_08595288, + sAnim_WaterPulseBubble_0, + sAnim_WaterPulseBubble_1, }; -const union AnimCmd *const gUnknown_085952A0[] = +static const union AnimCmd *const sAnims_WeatherBallWaterDown[] = { - gUnknown_08595290, + sAnim_WeatherBallWaterDown, }; -const union AffineAnimCmd gUnknown_085952A4[] = +static const union AffineAnimCmd sAffineAnim_WaterPulseRingBubble_0[] = { AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0), AFFINEANIMCMD_FRAME(0xFFF6, 0xFFF6, 0, 15), AFFINEANIMCMD_END, }; -const union AffineAnimCmd gUnknown_085952BC[] = +static const union AffineAnimCmd sAffineAnim_WaterPulseRingBubble_1[] = { AFFINEANIMCMD_FRAME(0xE0, 0xE0, 0, 0), AFFINEANIMCMD_FRAME(0xFFF8, 0xFFF8, 0, 15), AFFINEANIMCMD_END, }; -const union AffineAnimCmd gUnknown_085952D4[] = +static const union AffineAnimCmd sAffineAnim_WeatherBallWaterDown[] = { AFFINEANIMCMD_FRAME(0x150, 0x150, 0, 0), AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 15), AFFINEANIMCMD_END, }; -const union AffineAnimCmd *const gUnknown_085952EC[] = +static const union AffineAnimCmd *const sAffineAnims_WaterPulseRingBubble[] = { - gUnknown_085952A4, - gUnknown_085952BC, + sAffineAnim_WaterPulseRingBubble_0, + sAffineAnim_WaterPulseRingBubble_1, }; -const union AffineAnimCmd *const gUnknown_085952F4[] = +static const union AffineAnimCmd *const sAffineAnims_WeatherBallWaterDown[] = { - gUnknown_085952D4, + sAffineAnim_WeatherBallWaterDown, }; -const struct SpriteTemplate gUnknown_085952F8 = +const struct SpriteTemplate gWaterPulseBubbleSpriteTemplate = { .tileTag = ANIM_TAG_SMALL_BUBBLES, .paletteTag = ANIM_TAG_SMALL_BUBBLES, .oam = &gOamData_AffineOff_ObjNormal_8x8, - .anims = gUnknown_08595298, + .anims = sAnims_WaterPulseBubble, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8108BE0, + .callback = AnimWaterPulseBubble, }; -const struct SpriteTemplate gUnknown_08595310 = +const struct SpriteTemplate gWaterPulseRingBubbleSpriteTemplate = { .tileTag = ANIM_TAG_SMALL_BUBBLES, .paletteTag = ANIM_TAG_SMALL_BUBBLES, .oam = &gOamData_AffineNormal_ObjNormal_8x8, - .anims = gUnknown_08595298, + .anims = sAnims_WaterPulseBubble, .images = NULL, - .affineAnims = gUnknown_085952EC, - .callback = sub_8108C54, + .affineAnims = sAffineAnims_WaterPulseRingBubble, + .callback = AnimWaterPulseRingBubble, }; -const struct SpriteTemplate gUnknown_08595328 = +const struct SpriteTemplate gWeatherBallWaterDownSpriteTemplate = { .tileTag = ANIM_TAG_SMALL_BUBBLES, .paletteTag = ANIM_TAG_SMALL_BUBBLES, .oam = &gOamData_AffineNormal_ObjNormal_16x16, - .anims = gUnknown_085952A0, + .anims = sAnims_WeatherBallWaterDown, .images = NULL, - .affineAnims = gUnknown_085952F4, - .callback = sub_80A8EE4, + .affineAnims = sAffineAnims_WeatherBallWaterDown, + .callback = AnimWeatherBallDown, }; -extern const struct SpriteTemplate gUnknown_08597388; - void AnimTask_CreateRaindrops(u8 taskId) { u8 x, y; @@ -495,18 +489,18 @@ void AnimTask_CreateRaindrops(u8 taskId) { x = Random2() % 240; y = Random2() % 80; - CreateSprite(&gUnknown_08595020, x, y, 4); + CreateSprite(&gRainDropSpriteTemplate, x, y, 4); } if (gTasks[taskId].data[0] == gTasks[taskId].data[3]) DestroyAnimVisualTask(taskId); } -void sub_810721C(struct Sprite *sprite) +static void AnimRainDrop(struct Sprite *sprite) { - sprite->callback = sub_8107228; + sprite->callback = AnimRainDrop_Step; } -void sub_8107228(struct Sprite *sprite) +static void AnimRainDrop_Step(struct Sprite *sprite) { if (++sprite->data[0] <= 13) { @@ -517,7 +511,8 @@ void sub_8107228(struct Sprite *sprite) DestroySprite(sprite); } -void sub_8107260(struct Sprite *sprite) +// For water bubbles that move to a dest, as in Bubble/Bubblebeam +static void AnimWaterBubbleProjectile(struct Sprite *sprite) { u8 spriteId; @@ -550,11 +545,11 @@ void sub_8107260(struct Sprite *sprite) gSprites[spriteId].data[2] = gBattleAnimArgs[5]; gSprites[spriteId].data[3] = (u8)gBattleAnimArgs[4] * 256; gSprites[spriteId].data[4] = gBattleAnimArgs[6]; - sprite->callback = sub_8107380; + sprite->callback = AnimWaterBubbleProjectile_Step1; sprite->callback(sprite); } -void sub_8107380(struct Sprite *sprite) +static void AnimWaterBubbleProjectile_Step1(struct Sprite *sprite) { u8 otherSpriteId = sprite->data[5]; u8 timer = gSprites[otherSpriteId].data[4]; @@ -571,26 +566,26 @@ void sub_8107380(struct Sprite *sprite) } else { - sprite->callback = sub_8107408; + sprite->callback = AnimWaterBubbleProjectile_Step2; DestroySprite(&gSprites[otherSpriteId]); } } -void sub_8107408(struct Sprite *sprite) +static void AnimWaterBubbleProjectile_Step2(struct Sprite *sprite) { sprite->animPaused = FALSE; sprite->callback = RunStoredCallbackWhenAnimEnds; - StoreSpriteCallbackInData6(sprite, sub_8107430); + StoreSpriteCallbackInData6(sprite, AnimWaterBubbleProjectile_Step3); } -void sub_8107430(struct Sprite *sprite) +static void AnimWaterBubbleProjectile_Step3(struct Sprite *sprite) { sprite->data[0] = 10; sprite->callback = WaitAnimForDuration; StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix); } -void sub_810744C(struct Sprite *sprite) +static void AnimAuroraBeamRings(struct Sprite *sprite) { s16 unkArg; @@ -605,14 +600,14 @@ void sub_810744C(struct Sprite *sprite) sprite->data[3] = sprite->pos1.y; sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3) + gBattleAnimArgs[3]; InitAnimLinearTranslation(sprite); - sprite->callback = sub_81074E4; + sprite->callback = AnimAuroraBeamRings_Step; sprite->affineAnimPaused = TRUE; sprite->callback(sprite); } -void sub_81074E4(struct Sprite *sprite) +static void AnimAuroraBeamRings_Step(struct Sprite *sprite) { - if ((u16)gBattleAnimArgs[ARG_RET_ID] == 0xFFFF) + if ((u16)gBattleAnimArgs[7] == 0xFFFF) { StartSpriteAnim(sprite, 1); sprite->affineAnimPaused = FALSE; @@ -621,15 +616,16 @@ void sub_81074E4(struct Sprite *sprite) DestroyAnimSprite(sprite); } -void sub_8107528(u8 taskId) +// Updates the palette on the rainbow rings used in Aurora Beam to make them appear to be rotating counterclockwise +void AnimTask_RotateAuroraRingColors(u8 taskId) { gTasks[taskId].data[0] = gBattleAnimArgs[0]; gTasks[taskId].data[2] = IndexOfSpritePaletteTag(ANIM_TAG_RAINBOW_RINGS) * 16 + 256; - gTasks[taskId].func = sub_810756C; + gTasks[taskId].func = AnimTask_RotateAuroraRingColors_Step; } #ifdef NONMATCHING -void sub_810756C(u8 taskId) +static void AnimTask_RotateAuroraRingColors_Step(u8 taskId) { int i; u16 palIndex; @@ -653,7 +649,7 @@ void sub_810756C(u8 taskId) } #else NAKED -void sub_810756C(u8 taskId) +static void AnimTask_RotateAuroraRingColors_Step(u8 taskId) { asm_unified("push {r4-r7,lr}\n\ lsls r0, 24\n\ @@ -721,7 +717,8 @@ _081075DE:\n\ } #endif -void sub_81075EC(struct Sprite *sprite) +// For animating undulating beam attacks (e.g. Flamethrower, Hydro Pump, Signal Beam) +static void AnimToTargetInSinWave(struct Sprite *sprite) { u16 retArg; @@ -734,8 +731,8 @@ void sub_81075EC(struct Sprite *sprite) InitAnimLinearTranslation(sprite); sprite->data[5] = 0xD200 / sprite->data[0]; sprite->data[7] = gBattleAnimArgs[3]; - retArg = gBattleAnimArgs[ARG_RET_ID]; - if (gBattleAnimArgs[ARG_RET_ID] > 127) + retArg = gBattleAnimArgs[7]; + if (gBattleAnimArgs[7] > 127) { sprite->data[6] = (retArg - 127) * 256; sprite->data[7] = -sprite->data[7]; @@ -744,11 +741,11 @@ void sub_81075EC(struct Sprite *sprite) { sprite->data[6] = retArg * 256; } - sprite->callback = sub_8107674; + sprite->callback = AnimToTargetInSinWave_Step; sprite->callback(sprite); } -void sub_8107674(struct Sprite *sprite) +static void AnimToTargetInSinWave_Step(struct Sprite *sprite) { if (AnimTranslateLinear(sprite)) DestroyAnimSprite(sprite); @@ -764,21 +761,22 @@ void sub_8107674(struct Sprite *sprite) } } -void sub_81076C8(u8 taskId) +void AnimTask_StartSinAnimTimer(u8 taskId) { gTasks[taskId].data[0] = gBattleAnimArgs[0]; - gBattleAnimArgs[ARG_RET_ID] = 0; - gTasks[taskId].func = sub_81076F4; + gBattleAnimArgs[7] = 0; + gTasks[taskId].func = AnimTask_RunSinAnimTimer; } -void sub_81076F4(u8 taskId) +static void AnimTask_RunSinAnimTimer(u8 taskId) { - gBattleAnimArgs[ARG_RET_ID] = (gBattleAnimArgs[ARG_RET_ID] + 3) & 0xFF; + gBattleAnimArgs[7] = (gBattleAnimArgs[7] + 3) & 0xFF; if (--gTasks[taskId].data[0] == 0) DestroyAnimVisualTask(taskId); } -void sub_8107730(struct Sprite *sprite) +// Flashing blue orbs grow in size near the attacker. First stage of Hydro Cannon +static void AnimHydroCannonCharge(struct Sprite *sprite) { u8 priority; @@ -804,16 +802,17 @@ void sub_8107730(struct Sprite *sprite) sprite->pos2.x = -10; sprite->subpriority = priority + 2; } - sprite->callback = sub_81077A4; + sprite->callback = AnimHydroCannonCharge_Step; } -void sub_81077A4(struct Sprite *sprite) +static void AnimHydroCannonCharge_Step(struct Sprite *sprite) { if (sprite->affineAnimEnded) DestroyAnimSprite(sprite); } -void sub_81077C0(struct Sprite *sprite) +// Flashing blue orbs move from the attacker to the target. Second stage of Hydro Cannon +static void AnimHydroCannonBeam(struct Sprite *sprite) { bool8 animType; u8 coordType; @@ -841,7 +840,8 @@ void sub_81077C0(struct Sprite *sprite) StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); } -void sub_8107894(struct Sprite *sprite) +// Water droplet appears and drips down. Used by Water Gun on impact +static void AnimWaterGunDroplet(struct Sprite *sprite) { InitSpritePosToAnimTarget(sprite, TRUE); sprite->data[0] = gBattleAnimArgs[4]; @@ -851,17 +851,17 @@ void sub_8107894(struct Sprite *sprite) StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); } -void sub_81078D0(struct Sprite *sprite) +static void AnimSmallBubblePair(struct Sprite *sprite) { - if (gBattleAnimArgs[3]) + if (gBattleAnimArgs[3] != ANIM_ATTACKER) InitSpritePosToAnimTarget(sprite, TRUE); else InitSpritePosToAnimAttacker(sprite, TRUE); sprite->data[7] = gBattleAnimArgs[2]; - sprite->callback = sub_810790C; + sprite->callback = AnimSmallBubblePair_Step; } -void sub_810790C(struct Sprite *sprite) +static void AnimSmallBubblePair_Step(struct Sprite *sprite) { sprite->data[0] = (sprite->data[0] + 11) & 0xFF; sprite->pos2.x = Sin(sprite->data[0], 4); @@ -886,20 +886,20 @@ void AnimTask_CreateSurfWave(u8 taskId) { SetAnimBgAttribute(1, BG_ANIM_CHAR_BASE_BLOCK, 1); if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_OPPONENT) - AnimLoadCompressedBgTilemap(animBg.bgId, gUnknown_08D95E00); + AnimLoadCompressedBgTilemap(animBg.bgId, gBattleAnimBgTilemap_SurfOpponent); else - AnimLoadCompressedBgTilemap(animBg.bgId, gUnknown_08D960D0); + AnimLoadCompressedBgTilemap(animBg.bgId, gBattleAnimBgTilemap_SurfPlayer); } else { - sub_80A6D60(&animBg, gUnknown_08D963A4, 1); + AnimLoadCompressedBgTilemapHandleContest(&animBg, gBattleAnimBgTilemap_SurfContest, 1); } AnimLoadCompressedBgGfx(animBg.bgId, gBattleAnimBgImage_Surf, animBg.tilesOffset); if (gBattleAnimArgs[0] == 0) LoadCompressedPalette(gBattleAnimBgPalette_Surf, animBg.paletteId * 16, 32); else LoadCompressedPalette(gBattleAnimBackgroundImageMuddyWater_Pal, animBg.paletteId * 16, 32); - taskId2 = CreateTask(sub_8107D58, gTasks[taskId].priority + 1); + taskId2 = CreateTask(AnimTask_SurfWaveScanlineEffect, gTasks[taskId].priority + 1); gTasks[taskId].data[15] = taskId2; gTasks[taskId2].data[0] = 0; gTasks[taskId2].data[1] = 0x1000; @@ -941,7 +941,7 @@ void AnimTask_CreateSurfWave(u8 taskId) gTasks[taskId2].data[5] = 0; } gTasks[taskId].data[6] = 1; - gTasks[taskId].func = sub_8107B84; + gTasks[taskId].func = AnimTask_CreateSurfWave_Step1; } #else NAKED @@ -990,22 +990,22 @@ void AnimTask_CreateSurfWave(u8 taskId) bne _081079D0\n\ mov r0, sp\n\ ldrb r0, [r0, 0x9]\n\ - ldr r1, =gUnknown_08D95E00\n\ + ldr r1, =gBattleAnimBgTilemap_SurfOpponent\n\ bl AnimLoadCompressedBgTilemap\n\ b _081079EA\n\ .pool\n\ _081079D0:\n\ mov r0, sp\n\ ldrb r0, [r0, 0x9]\n\ - ldr r1, =gUnknown_08D960D0\n\ + ldr r1, =gBattleAnimBgTilemap_SurfPlayer\n\ bl AnimLoadCompressedBgTilemap\n\ b _081079EA\n\ .pool\n\ _081079E0:\n\ - ldr r1, =gUnknown_08D963A4\n\ + ldr r1, =gBattleAnimBgTilemap_SurfContest\n\ mov r0, sp\n\ movs r2, 0x1\n\ - bl sub_80A6D60\n\ + bl AnimLoadCompressedBgTilemapHandleContest\n\ _081079EA:\n\ mov r0, sp\n\ ldrb r0, [r0, 0x9]\n\ @@ -1034,7 +1034,7 @@ _08107A24:\n\ movs r2, 0x20\n\ bl LoadCompressedPalette\n\ _08107A32:\n\ - ldr r0, =sub_8107D58\n\ + ldr r0, =AnimTask_SurfWaveScanlineEffect\n\ ldr r4, =gTasks\n\ mov r2, r10\n\ lsls r5, r2, 2\n\ @@ -1157,7 +1157,7 @@ _08107B58:\n\ adds r0, r1\n\ movs r1, 0x1\n\ strh r1, [r0, 0x14]\n\ - ldr r1, =sub_8107B84\n\ + ldr r1, =AnimTask_CreateSurfWave_Step1\n\ str r1, [r0]\n\ add sp, 0x10\n\ pop {r3-r5}\n\ @@ -1172,7 +1172,7 @@ _08107B58:\n\ #endif #ifdef NONMATCHING -void sub_8107B84(u8 taskId) +static void AnimTask_CreateSurfWave_Step1(u8 taskId) { struct BattleAnimBgData animBg; u8 i; @@ -1217,12 +1217,12 @@ void sub_8107B84(u8 taskId) if (!(gTasks[gTasks[taskId].data[15]].data[1] & 0x1F)) { gTasks[taskId].data[0] = gTasks[gTasks[taskId].data[15]].data[1] & 0x1F; - gTasks[taskId].func = sub_8107CC4; + gTasks[taskId].func = AnimTask_CreateSurfWave_Step2; } } #else NAKED -void sub_8107B84(u8 taskId) +static void AnimTask_CreateSurfWave_Step1(u8 taskId) { asm_unified("push {r4-r7,lr}\n\ sub sp, 0x10\n\ @@ -1371,7 +1371,7 @@ _08107C86:\n\ cmp r3, 0\n\ bne _08107CA8\n\ strh r3, [r2, 0x8]\n\ - ldr r0, =sub_8107CC4\n\ + ldr r0, =AnimTask_CreateSurfWave_Step2\n\ str r0, [r2]\n\ _08107CA8:\n\ add sp, 0x10\n\ @@ -1382,7 +1382,7 @@ _08107CA8:\n\ } #endif -void sub_8107CC4(u8 taskId) +static void AnimTask_CreateSurfWave_Step2(u8 taskId) { u16 *BGptrX = &gBattle_BG1_X; u16 *BGptrY = &gBattle_BG1_Y; @@ -1405,7 +1405,7 @@ void sub_8107CC4(u8 taskId) } } -void sub_8107D58(u8 taskId) +static void AnimTask_SurfWaveScanlineEffect(u8 taskId) { s16 i; struct ScanlineEffectParams params; @@ -1471,7 +1471,7 @@ void sub_8107D58(u8 taskId) } } -void sub_8108034(struct Sprite *sprite) +static void AnimSmallDriftingBubbles(struct Sprite *sprite) { s16 randData; s16 randData2; @@ -1484,10 +1484,10 @@ void sub_8108034(struct Sprite *sprite) randData2 = 256 - randData2; sprite->data[1] = randData; sprite->data[2] = randData2; - sprite->callback = sub_8108098; + sprite->callback = AnimSmallDriftingBubbles_Step; } -void sub_8108098(struct Sprite *sprite) +static void AnimSmallDriftingBubbles_Step(struct Sprite *sprite) { sprite->data[3] += sprite->data[1]; sprite->data[4] += sprite->data[2]; @@ -1500,18 +1500,18 @@ void sub_8108098(struct Sprite *sprite) DestroyAnimSprite(sprite); } -void sub_81080E4(u8 taskId) +void AnimTask_WaterSpoutLaunch(u8 taskId) { struct Task *task = &gTasks[taskId]; task->data[15] = GetAnimBattlerSpriteId(ANIM_ATTACKER); task->data[5] = gSprites[task->data[15]].pos1.y; - task->data[1] = sub_8108384(); + task->data[1] = GetWaterSpoutPowerForAnim(); PrepareBattlerSpriteForRotScale(task->data[15], ST_OAM_OBJ_NORMAL); - task->func = sub_8108140; + task->func = AnimTask_WaterSpoutLaunch_Step; } -void sub_8108140(u8 taskId) +static void AnimTask_WaterSpoutLaunch_Step(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -1560,7 +1560,7 @@ void sub_8108140(u8 taskId) } break; case 4: - sub_8108408(task, taskId); + CreateWaterSpoutLaunchDroplets(task, taskId); task->data[0]++; case 5: if (++task->data[3] > 1) @@ -1596,7 +1596,9 @@ void sub_8108140(u8 taskId) } } -u8 sub_8108384(void) +// Returns a value 0-3 relative to which quarter HP the attacker is in +// A higher number results in more water sprites during the Water Spout animation +static u8 GetWaterSpoutPowerForAnim(void) { u8 i; u16 hp; @@ -1628,7 +1630,7 @@ u8 sub_8108384(void) return 3; } -void sub_8108408(struct Task *task, u8 taskId) +static void CreateWaterSpoutLaunchDroplets(struct Task *task, u8 taskId) { s16 i; s16 attackerCoordX = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); @@ -1642,7 +1644,7 @@ void sub_8108408(struct Task *task, u8 taskId) increment = 1; for (i = 0; i < 20; i += increment) { - spriteId = CreateSprite(&gUnknown_08595268, attackerCoordX, attackerCoordY, subpriority); + spriteId = CreateSprite(&gSmallWaterOrbSpriteTemplate, attackerCoordX, attackerCoordY, subpriority); if (spriteId != MAX_SPRITES) { gSprites[spriteId].data[1] = i; @@ -1653,7 +1655,7 @@ void sub_8108408(struct Task *task, u8 taskId) gSprites[spriteId].data[6] = taskId; gSprites[spriteId].data[7] = 2; if (task->data[2] & 1) - sub_810851C(&gSprites[spriteId]); + AnimSmallWaterOrb(&gSprites[spriteId]); task->data[2]++; } trigIndex = (trigIndex + increment * 2); @@ -1661,7 +1663,7 @@ void sub_8108408(struct Task *task, u8 taskId) } } -void sub_810851C(struct Sprite *sprite) +static void AnimSmallWaterOrb(struct Sprite *sprite) { switch (sprite->data[0]) { @@ -1683,11 +1685,11 @@ void sub_810851C(struct Sprite *sprite) } } -void sub_81085C8(u8 taskId) +void AnimTask_WaterSpoutRain(u8 taskId) { struct Task *task = &gTasks[taskId]; - task->data[1] = sub_8108384(); + task->data[1] = GetWaterSpoutPowerForAnim(); if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) { task->data[4] = 136; @@ -1701,10 +1703,10 @@ void sub_81085C8(u8 taskId) task->data[5] = 98; task->data[7] = task->data[4] + 49; task->data[12] = task->data[1] * 5 + 5; - task->func = sub_810862C; + task->func = AnimTask_WaterSpoutRain_Step; } -void sub_810862C(u8 taskId) +static void AnimTask_WaterSpoutRain_Step(u8 taskId) { struct Task *task = &gTasks[taskId]; u8 taskId2; @@ -1715,21 +1717,21 @@ void sub_810862C(u8 taskId) if (++task->data[2] > 2) { task->data[2] = 0; - sub_810871C(task, taskId); + CreateWaterSpoutRainDroplet(task, taskId); } if (task->data[10] != 0 && task->data[13] == 0) { - gBattleAnimArgs[0] = 1; + gBattleAnimArgs[0] = ANIM_TARGET; gBattleAnimArgs[1] = 0; gBattleAnimArgs[2] = 12; - taskId2 = CreateTask(sub_81152DC, 80); + taskId2 = CreateTask(AnimTask_HorizontalShake, 80); if (taskId2 != 0xFF) { gTasks[taskId2].func(taskId2); gAnimVisualTaskCount++; } - gBattleAnimArgs[0] = 3; - taskId2 = CreateTask(sub_81152DC, 80); + gBattleAnimArgs[0] = ANIM_DEF_PARTNER; + taskId2 = CreateTask(AnimTask_HorizontalShake, 80); if (taskId2 != 0xFF) { gTasks[taskId2].func(taskId2); @@ -1747,14 +1749,14 @@ void sub_810862C(u8 taskId) } } -void sub_810871C(struct Task *task, u8 taskId) +static void CreateWaterSpoutRainDroplet(struct Task *task, u8 taskId) { u16 yPosArg = ((gSineTable[task->data[8]] + 3) >> 4) + task->data[6]; - u8 spriteId = CreateSprite(&gUnknown_08595268, task->data[7], 0, 0); + u8 spriteId = CreateSprite(&gSmallWaterOrbSpriteTemplate, task->data[7], 0, 0); if (spriteId != MAX_SPRITES) { - gSprites[spriteId].callback = sub_81087C0; + gSprites[spriteId].callback = AnimWaterSpoutRain; gSprites[spriteId].data[5] = yPosArg; gSprites[spriteId].data[6] = taskId; gSprites[spriteId].data[7] = 9; @@ -1762,10 +1764,10 @@ void sub_810871C(struct Task *task, u8 taskId) } task->data[11]++; task->data[8] = (task->data[8] + 39) & 0xFF; - task->data[7] = ((task->data[7] * 0x41c64e6d + 0x3039) % task->data[5]) + task->data[4]; + task->data[7] = (ISO_RANDOMIZE2(task->data[7]) % task->data[5]) + task->data[4]; } -void sub_81087C0(struct Sprite *sprite) +static void AnimWaterSpoutRain(struct Sprite *sprite) { if (sprite->data[0] == 0) { @@ -1773,20 +1775,20 @@ void sub_81087C0(struct Sprite *sprite) if (sprite->pos1.y >= sprite->data[5]) { gTasks[sprite->data[6]].data[10] = 1; - sprite->data[1] = CreateSprite(&gUnknown_08597388, sprite->pos1.x, sprite->pos1.y, 1); + sprite->data[1] = CreateSprite(&gWaterHitSplatSpriteTemplate, sprite->pos1.x, sprite->pos1.y, 1); if (sprite->data[1] != MAX_SPRITES) { StartSpriteAffineAnim(&gSprites[sprite->data[1]], 3); gSprites[sprite->data[1]].data[6] = sprite->data[6]; gSprites[sprite->data[1]].data[7] = sprite->data[7]; - gSprites[sprite->data[1]].callback = sub_810886C; + gSprites[sprite->data[1]].callback = AnimWaterSpoutRainHit; } DestroySprite(sprite); } } } -void sub_810886C(struct Sprite *sprite) +static void AnimWaterSpoutRainHit(struct Sprite *sprite) { if (++sprite->data[1] > 1) { @@ -1801,7 +1803,7 @@ void sub_810886C(struct Sprite *sprite) } } -void sub_81088E4(u8 taskId) +void AnimTask_WaterSport(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -1815,22 +1817,22 @@ void sub_81088E4(u8 taskId) task->data[9] = -32; task->data[1] = 0; task->data[0] = 0; - task->func = sub_8108978; + task->func = AnimTask_WaterSport_Step; } -void sub_8108978(u8 taskId) +static void AnimTask_WaterSport_Step(u8 taskId) { struct Task *task = &gTasks[taskId]; switch (task->data[0]) { case 0: - sub_8108AC0(task); + CreateWaterSportDroplet(task); if (task->data[10] != 0) task->data[0]++; break; case 1: - sub_8108AC0(task); + CreateWaterSportDroplet(task); if (++task->data[1] > 16) { task->data[1] = 0; @@ -1838,7 +1840,7 @@ void sub_8108978(u8 taskId) } break; case 2: - sub_8108AC0(task); + CreateWaterSportDroplet(task); task->data[5] += task->data[7] * 6; if (!(task->data[5] >= -16 && task->data[5] <= 256)) { @@ -1856,13 +1858,13 @@ void sub_8108978(u8 taskId) } break; case 3: - sub_8108AC0(task); + CreateWaterSportDroplet(task); task->data[6] -= task->data[7] * 2; if (++task->data[1] > 7) task->data[0]++; break; case 4: - sub_8108AC0(task); + CreateWaterSportDroplet(task); task->data[5] -= task->data[7] * 6; if (!(task->data[5] >= -16 && task->data[5] <= 256)) { @@ -1872,7 +1874,7 @@ void sub_8108978(u8 taskId) } break; case 5: - sub_8108AC0(task); + CreateWaterSportDroplet(task); task->data[6] -= task->data[7] * 2; if (++task->data[1] > 7) task->data[0] = 2; @@ -1887,14 +1889,14 @@ void sub_8108978(u8 taskId) } } -void sub_8108AC0(struct Task *task) +static void CreateWaterSportDroplet(struct Task *task) { u8 spriteId; if (++task->data[2] > 1) { task->data[2] = 0; - spriteId = CreateSprite(&gUnknown_08595268, task->data[3], task->data[4], 10); + spriteId = CreateSprite(&gSmallWaterOrbSpriteTemplate, task->data[3], task->data[4], 10); if (spriteId != MAX_SPRITES) { gSprites[spriteId].data[0] = 16; @@ -1902,13 +1904,13 @@ void sub_8108AC0(struct Task *task) gSprites[spriteId].data[4] = task->data[6]; gSprites[spriteId].data[5] = task->data[9]; InitAnimArcTranslation(&gSprites[spriteId]); - gSprites[spriteId].callback = sub_8108B2C; + gSprites[spriteId].callback = AnimWaterSportDroplet; task->data[8]++; } } } -void sub_8108B2C(struct Sprite *sprite) +static void AnimWaterSportDroplet(struct Sprite *sprite) { if (TranslateAnimHorizontalArc(sprite)) { @@ -1919,11 +1921,11 @@ void sub_8108B2C(struct Sprite *sprite) sprite->data[4] = (Random2() & 0x1F) - 16 + sprite->pos1.y; sprite->data[5] = ~(Random2() & 7); InitAnimArcTranslation(sprite); - sprite->callback = sub_8108B94; + sprite->callback = AnimWaterSportDroplet_Step; } } -void sub_8108B94(struct Sprite *sprite) +static void AnimWaterSportDroplet_Step(struct Sprite *sprite) { u16 i; @@ -1931,7 +1933,7 @@ void sub_8108B94(struct Sprite *sprite) { for (i = 0; i < NUM_TASKS; i++) { - if (gTasks[i].func == sub_8108978) + if (gTasks[i].func == AnimTask_WaterSport_Step) { gTasks[i].data[10] = 1; gTasks[i].data[8]--; @@ -1941,7 +1943,7 @@ void sub_8108B94(struct Sprite *sprite) } } -void sub_8108BE0(struct Sprite *sprite) +static void AnimWaterPulseBubble(struct Sprite *sprite) { sprite->pos1.x = gBattleAnimArgs[0]; sprite->pos1.y = gBattleAnimArgs[1]; @@ -1949,10 +1951,10 @@ void sub_8108BE0(struct Sprite *sprite) sprite->data[1] = gBattleAnimArgs[3]; sprite->data[2] = gBattleAnimArgs[4]; sprite->data[3] = gBattleAnimArgs[5]; - sprite->callback = sub_8108C08; + sprite->callback = AnimWaterPulseBubble_Step; } -void sub_8108C08(struct Sprite *sprite) +static void AnimWaterPulseBubble_Step(struct Sprite *sprite) { sprite->data[4] -= sprite->data[0]; sprite->pos2.y = sprite->data[4] / 10; @@ -1962,7 +1964,7 @@ void sub_8108C08(struct Sprite *sprite) DestroyAnimSprite(sprite); } -void sub_8108C54(struct Sprite *sprite) +static void AnimWaterPulseRingBubble(struct Sprite *sprite) { sprite->data[3] += sprite->data[1]; sprite->data[4] += sprite->data[2]; @@ -1985,7 +1987,7 @@ void AnimWaterPulseRing(struct Sprite *sprite) sprite->callback = AnimWaterPulseRing_Step; } -void AnimWaterPulseRing_Step(struct Sprite *sprite) +static void AnimWaterPulseRing_Step(struct Sprite *sprite) { int xDiff = sprite->data[1] - sprite->pos1.x; int yDiff = sprite->data[2] - sprite->pos1.y; @@ -1995,7 +1997,7 @@ void AnimWaterPulseRing_Step(struct Sprite *sprite) if (++sprite->data[5] == sprite->data[4]) { sprite->data[5] = 0; - sub_8108D54(sprite, xDiff, yDiff); + CreateWaterPulseRingBubbles(sprite, xDiff, yDiff); } if (sprite->data[3] == sprite->data[0]) DestroyAnimSprite(sprite); @@ -2003,7 +2005,7 @@ void AnimWaterPulseRing_Step(struct Sprite *sprite) } #ifdef NONMATCHING -void sub_8108D54(struct Sprite *sprite, int xDiff, int yDiff) +static void CreateWaterPulseRingBubbles(struct Sprite *sprite, int xDiff, int yDiff) { s16 something = sprite->data[0] / 2; s16 combinedX = sprite->pos1.x + sprite->pos2.x; @@ -2015,7 +2017,7 @@ void sub_8108D54(struct Sprite *sprite, int xDiff, int yDiff) for (i = 0; i <= 0; i++) { - spriteId = CreateSprite(&gUnknown_08595310, combinedX, combinedY + something, 130); + spriteId = CreateSprite(&gWaterPulseRingBubbleSpriteTemplate, combinedX, combinedY + something, 130); gSprites[spriteId].data[0] = 20; gSprites[spriteId].data[1] = randomSomethingY; gSprites[spriteId].subpriority = GetBattlerSpriteSubpriority(gBattleAnimAttacker) - 1; @@ -2026,7 +2028,7 @@ void sub_8108D54(struct Sprite *sprite, int xDiff, int yDiff) } for (i = 0; i <= 0; i++) { - spriteId = CreateSprite(&gUnknown_08595310, combinedX, combinedY - something, 130); + spriteId = CreateSprite(&gWaterPulseRingBubbleSpriteTemplate, combinedX, combinedY - something, 130); gSprites[spriteId].data[0] = 20; gSprites[spriteId].data[1] = randomSomethingY; gSprites[spriteId].subpriority = GetBattlerSpriteSubpriority(gBattleAnimAttacker) - 1; @@ -2038,7 +2040,7 @@ void sub_8108D54(struct Sprite *sprite, int xDiff, int yDiff) } #else NAKED -void sub_8108D54(struct Sprite *sprite, int xDiff, int yDiff) +static void CreateWaterPulseRingBubbles(struct Sprite *sprite, int xDiff, int yDiff) { asm_unified("push {r4-r7,lr}\n\ mov r7, r10\n\ @@ -2108,7 +2110,7 @@ void sub_8108D54(struct Sprite *sprite, int xDiff, int yDiff) lsls r1, 16\n\ mov r10, r1\n\ _08108DE2:\n\ - ldr r0, =gUnknown_08595310\n\ + ldr r0, =gWaterPulseRingBubbleSpriteTemplate\n\ mov r2, r8\n\ asrs r1, r2, 16\n\ mov r3, r10\n\ @@ -2163,7 +2165,7 @@ _08108E32:\n\ lsls r1, 16\n\ mov r10, r1\n\ _08108E58:\n\ - ldr r0, =gUnknown_08595310\n\ + ldr r0, =gWaterPulseRingBubbleSpriteTemplate\n\ mov r2, r8\n\ asrs r1, r2, 16\n\ mov r3, r10\n\ diff --git a/src/battle_gfx_sfx_util.c b/src/battle_gfx_sfx_util.c index 341cd4a6a..50001cebe 100644 --- a/src/battle_gfx_sfx_util.c +++ b/src/battle_gfx_sfx_util.c @@ -1226,8 +1226,8 @@ void FreeMonSpritesGfx(void) if (gMonSpritesGfxPtr == NULL) return; - if (gMonSpritesGfxPtr->field_17C != NULL) - FREE_AND_SET_NULL(gMonSpritesGfxPtr->field_17C); + if (gMonSpritesGfxPtr->buffer != NULL) + FREE_AND_SET_NULL(gMonSpritesGfxPtr->buffer); if (gMonSpritesGfxPtr->field_178 != NULL) FREE_AND_SET_NULL(gMonSpritesGfxPtr->field_178); diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 685626a85..cafb67688 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -2064,7 +2064,7 @@ static void Cmd_resultmessage(void) gPotentialItemEffectBattler = gBattlerTarget; gMoveResultFlags &= ~(MOVE_RESULT_FOE_ENDURED | MOVE_RESULT_FOE_HUNG_ON); BattleScriptPushCursor(); - gBattlescriptCurrInstr = BattleScript_HangedOnMsg; + gBattlescriptCurrInstr = BattleScript_FocusBandActivates; return; default: if (gMoveResultFlags & MOVE_RESULT_DOESNT_AFFECT_FOE) @@ -2093,7 +2093,7 @@ static void Cmd_resultmessage(void) gPotentialItemEffectBattler = gBattlerTarget; gMoveResultFlags &= ~(MOVE_RESULT_FOE_ENDURED | MOVE_RESULT_FOE_HUNG_ON); BattleScriptPushCursor(); - gBattlescriptCurrInstr = BattleScript_HangedOnMsg; + gBattlescriptCurrInstr = BattleScript_FocusBandActivates; return; } else if (gMoveResultFlags & MOVE_RESULT_FAILED) @@ -2895,16 +2895,16 @@ static void Cmd_seteffectwithchance(void) && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT)) { gBattleCommunication[MOVE_EFFECT_BYTE] &= ~(MOVE_EFFECT_CERTAIN); - SetMoveEffect(0, MOVE_EFFECT_CERTAIN); + SetMoveEffect(FALSE, MOVE_EFFECT_CERTAIN); } else if (Random() % 100 < percentChance && gBattleCommunication[MOVE_EFFECT_BYTE] && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT)) { if (percentChance >= 100) - SetMoveEffect(0, MOVE_EFFECT_CERTAIN); + SetMoveEffect(FALSE, MOVE_EFFECT_CERTAIN); else - SetMoveEffect(0, 0); + SetMoveEffect(FALSE, 0); } else { diff --git a/src/battle_setup.c b/src/battle_setup.c index eff57eae3..b44c7b9ec 100644 --- a/src/battle_setup.c +++ b/src/battle_setup.c @@ -1087,7 +1087,7 @@ const u8 *BattleSetup_ConfigureTrainerBattle(const u8 *data) { case TRAINER_BATTLE_SINGLE_NO_INTRO_TEXT: TrainerBattleLoadArgs(sOrdinaryNoIntroBattleParams, data); - return EventScript_DoTainerBattle; + return EventScript_DoNoIntroTrainerBattle; case TRAINER_BATTLE_DOUBLE: TrainerBattleLoadArgs(sDoubleBattleParams, data); SetMapVarsToTrainer(); diff --git a/src/battle_util.c b/src/battle_util.c index 4352a02c2..da3d50648 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -1009,7 +1009,7 @@ u8 DoBattlerEndTurnEffects(void) if (!(gBattleMons[gActiveBattler].status2 & STATUS2_CONFUSION)) { gBattleCommunication[MOVE_EFFECT_BYTE] = MOVE_EFFECT_CONFUSION | MOVE_EFFECT_AFFECTS_USER; - SetMoveEffect(1, 0); + SetMoveEffect(TRUE, 0); if (gBattleMons[gActiveBattler].status2 & STATUS2_CONFUSION) BattleScriptExecute(BattleScript_ThrashConfuses); effect++; @@ -3207,7 +3207,7 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) { gBattleCommunication[MOVE_EFFECT_BYTE] = MOVE_EFFECT_FLINCH; BattleScriptPushCursor(); - SetMoveEffect(0, 0); + SetMoveEffect(FALSE, 0); BattleScriptPop(); } break; diff --git a/src/berry_crush.c b/src/berry_crush.c index 49810f3b4..542888631 100755 --- a/src/berry_crush.c +++ b/src/berry_crush.c @@ -1400,495 +1400,75 @@ void sub_80219C8(u8 windowId, u8 left, u8 colorId, const u8 *string) AddTextPrinterParameterized3(windowId, 2, left, 0, sBerryCrushTextColorTable[colorId], 0, string); } -#ifdef NONMATCHING -void sub_8021A28(struct BerryCrushGame *sp0C, u8 sp10, u8 sp14, u8 r3) +void sub_8021A28(struct BerryCrushGame * sp0C, u8 sp10, u8 sp14, u8 sp18) { - s32 r6; - u8 i, j; - u8 sp18 = 0; + u8 r8; u8 sp1C = 0; - union BerryCrushGame_68 *sp20 = &sp0C->unk68; + u8 sp20 = 0; + u8 r2; + s32 r3; + u8 r7; + union BerryCrushGame_68 * sp24 = &sp0C->unk68; u32 xOffset; - u32 r8, r9, r4, r7, r3_; - u8 r10, r2; + s32 r6; - r3 -= 16; + sp18 -= 16; if (sp10 == 2) - r3 -= 42; - r6 = r3 - 14 * sp0C->unk9; + sp18 -= 42; + r6 = sp18 - 14 * sp0C->unk9; if (r6 > 0) r6 = r6 / 2 + 16; else r6 = 16; - i = 0; - while (i < sp0C->unk9) + + for (r8 = 0; r8 < sp0C->unk9; r6 += 14, ++r8) { DynamicPlaceholderTextUtil_Reset(); switch (sp10) { - default: // how can you write this twice?????? - r4 = sp14 - 4; - r10 = r6; - r9 = sp1C + 0xA2; - r8 = sp18; - r6 += 14; - ++i; - break; case 0: - sp18 = sp20->as_five_players.unk1C[0].unk4.as_2d_bytes[0][i]; - if (i != 0 && sp20->as_four_players.unk00.unk0C[0][i] != sp20->as_four_players.unk00.unk0C[0][i - 1]) - sp1C = i; - ConvertIntToDecimalStringN( - gStringVar4, - sp20->as_four_players.unk00.unk0C[sp10][i], - STR_CONV_MODE_RIGHT_ALIGN, - 4 - ); + sp1C = sp24->as_five_players.unk1C[0].unk4.as_2d_bytes[sp10][r8]; + if (r8 != 0 && sp24->as_four_players.unk00.unk0C[sp10][r8] != sp24->as_four_players.unk00.unk0C[sp10][r8 - 1]) + sp20 = r8; + ConvertIntToDecimalStringN(gStringVar4, sp24->as_four_players.unk00.unk0C[sp10][r8], STR_CONV_MODE_RIGHT_ALIGN, 4); StringAppend(gStringVar4, gUnknown_082F43B4[sp10]); - r4 = sp14 - 4; - r10 = r6; - r9 = sp1C + 0xA2; - r8 = sp18; - r6 += 14; - ++i; break; case 1: - sp18 = sp20->as_five_players.unk1C[0].unk4.as_2d_bytes[1][i]; - if (i != 0 && sp20->as_four_players.unk00.unk0C[1][i] != sp20->as_four_players.unk00.unk0C[1][i - 1]) - sp1C = i; - ConvertIntToDecimalStringN( - gStringVar1, - sp20->as_four_players.unk00.unk0C[sp10][i] >> 4, - STR_CONV_MODE_RIGHT_ALIGN, - 3 - ); - j = 0; - r3_ = 15 & (u8)sp20->as_four_players.unk00.unk0C[sp10][i]; - r4 = sp14 - 4; - r10 = r6; - r9 = sp1C + 0xA2; - r8 = sp18; - r6 += 14; - ++i; - for (; j < 4; ++j) - if (((r3_ >> (3 - j)) & 1) != 0) // why does it load constant 1 into r10? - r7 += gUnknown_082F334C[j]; - ConvertIntToDecimalStringN( - gStringVar2, - (u8)(r7 / 1000000), - STR_CONV_MODE_LEADING_ZEROS, - 2 - ); - StringExpandPlaceholders(gStringVar4, gText_XDotY); + sp1C = sp24->as_five_players.unk1C[0].unk4.as_2d_bytes[sp10][r8]; + if (r8 != 0 && sp24->as_four_players.unk00.unk0C[sp10][r8] != sp24->as_four_players.unk00.unk0C[sp10][r8 - 1]) + sp20 = r8; + ConvertIntToDecimalStringN(gStringVar1, sp24->as_four_players.unk00.unk0C[sp10][r8] >> 4, STR_CONV_MODE_RIGHT_ALIGN, 3); + r3 = 0; + r7 = sp24->as_four_players.unk00.unk0C[sp10][r8] & 15; + for (r2 = 0; r2 < 4; ++r2) + if ((r7 >> (3 - r2)) & 1) + r3 += gUnknown_082F334C[r2]; + r7 = r3 / 1000000u; + ConvertIntToDecimalStringN(gStringVar2, r7, STR_CONV_MODE_LEADING_ZEROS, 2); + StringExpandPlaceholders(gStringVar4, gUnknown_082F43B4[sp10]); break; case 2: - sp18 = i; - sp1C = i; - r2 = sp0C->unk68.as_four_players.others[i].unk0; - if (r2 > 43) + sp1C = r8; + sp20 = r8; + r2 = sp0C->unk68.as_five_players.unk1C[r8].unk14[12]; + if (r2 >= LAST_BERRY_INDEX - FIRST_BERRY_INDEX + 2) r2 = 0; - StringCopy(gStringVar1,gBerries[r2].name); - StringExpandPlaceholders(gStringVar4, gText_Var1Berry); - r4 = sp14 - 4; - r10 = r6; - r9 = sp1C + 0xA2; - r8 = i; - r6 += 14; - ++i; + StringCopy(gStringVar1, gBerries[r2].name); + StringExpandPlaceholders(gStringVar4, gUnknown_082F43B4[2]); break; } - xOffset = GetStringRightAlignXOffset(2, gStringVar4, r4); - AddTextPrinterParameterized3( - sp0C->unk138.unk82, - 2, - xOffset, - r10, - sBerryCrushTextColorTable[0], - 0, - gStringVar4 - ); - if (sp18 == sp0C->unk8) + xOffset = GetStringRightAlignXOffset(2, gStringVar4, sp14 - 4); + AddTextPrinterParameterized3(sp0C->unk138.unk82, 2, xOffset, r6, sBerryCrushTextColorTable[0], 0, gStringVar4); + if (sp1C == sp0C->unk8) StringCopy(gStringVar3, gText_1DotBlueF700); else StringCopy(gStringVar3, gText_1DotF700); - gStringVar3[0] = r9; - DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, PLAYER_UNK14(sp0C, r8)); + gStringVar3[0] = sp20 + CHAR_1; + DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, PLAYER_UNK14(sp0C, sp1C)); DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gStringVar3); - AddTextPrinterParameterized3( - sp0C->unk138.unk82, - 2, - 4, - r10, - sBerryCrushTextColorTable[0], - 0, - gStringVar4 - ); + AddTextPrinterParameterized3(sp0C->unk138.unk82, 2, 4, r6, sBerryCrushTextColorTable[0], 0, gStringVar4); } } -#else -NAKED -void sub_8021A28(struct BerryCrushGame *sp0C, u8 sp10, u8 sp14, u8 r3) -{ - asm_unified("\n\ - push {r4-r7,lr}\n\ - mov r7, r10\n\ - mov r6, r9\n\ - mov r5, r8\n\ - push {r5-r7}\n\ - sub sp, 0x2C\n\ - str r0, [sp, 0xC]\n\ - lsls r1, 24\n\ - lsrs r1, 24\n\ - str r1, [sp, 0x10]\n\ - lsls r2, 24\n\ - lsrs r2, 24\n\ - str r2, [sp, 0x14]\n\ - lsls r3, 24\n\ - movs r0, 0\n\ - str r0, [sp, 0x18]\n\ - movs r1, 0\n\ - str r1, [sp, 0x1C]\n\ - ldr r2, [sp, 0xC]\n\ - adds r2, 0x68\n\ - str r2, [sp, 0x20]\n\ - movs r4, 0xF0\n\ - lsls r4, 24\n\ - adds r3, r4\n\ - lsrs r3, 24\n\ - ldr r0, [sp, 0x10]\n\ - cmp r0, 0x2\n\ - bne _08021A68\n\ - adds r0, r3, 0\n\ - subs r0, 0x2A\n\ - lsls r0, 24\n\ - lsrs r3, r0, 24\n\ - _08021A68:\n\ - ldr r2, [sp, 0xC]\n\ - ldrb r1, [r2, 0x9]\n\ - lsls r0, r1, 3\n\ - subs r0, r1\n\ - lsls r0, 1\n\ - subs r6, r3, r0\n\ - cmp r6, 0\n\ - ble _08021A84\n\ - lsrs r0, r6, 31\n\ - adds r0, r6, r0\n\ - asrs r0, 1\n\ - adds r6, r0, 0\n\ - adds r6, 0x10\n\ - b _08021A86\n\ - _08021A84:\n\ - movs r6, 0x10\n\ - _08021A86:\n\ - movs r5, 0\n\ - ldr r3, [sp, 0xC]\n\ - ldrb r3, [r3, 0x9]\n\ - cmp r5, r3\n\ - bcc _08021A92\n\ - b _08021D14\n\ - _08021A92:\n\ - ldr r4, [sp, 0x10]\n\ - lsls r4, 2\n\ - str r4, [sp, 0x24]\n\ - _08021A98:\n\ - bl DynamicPlaceholderTextUtil_Reset\n\ - ldr r0, [sp, 0x10]\n\ - cmp r0, 0x1\n\ - beq _08021B48\n\ - cmp r0, 0x1\n\ - bgt _08021AC0\n\ - cmp r0, 0\n\ - beq _08021ADE\n\ - ldr r4, [sp, 0x14]\n\ - subs r4, 0x4\n\ - lsls r1, r6, 24\n\ - mov r10, r1\n\ - ldr r2, [sp, 0x1C]\n\ - adds r2, 0xA2\n\ - mov r9, r2\n\ - ldr r3, [sp, 0x18]\n\ - lsls r3, 5\n\ - mov r8, r3\n\ - b _08021C5A\n\ - _08021AC0:\n\ - ldr r4, [sp, 0x10]\n\ - cmp r4, 0x2\n\ - bne _08021AC8\n\ - b _08021C1C\n\ - _08021AC8:\n\ - ldr r4, [sp, 0x14]\n\ - subs r4, 0x4\n\ - lsls r0, r6, 24\n\ - mov r10, r0\n\ - ldr r1, [sp, 0x1C]\n\ - adds r1, 0xA2\n\ - mov r9, r1\n\ - ldr r2, [sp, 0x18]\n\ - lsls r2, 5\n\ - mov r8, r2\n\ - b _08021C5A\n\ - _08021ADE:\n\ - ldr r0, [sp, 0x20]\n\ - adds r0, 0x20\n\ - adds r0, r5\n\ - ldrb r0, [r0]\n\ - str r0, [sp, 0x18]\n\ - lsls r3, r5, 1\n\ - ldr r2, [sp, 0x20]\n\ - adds r2, 0xC\n\ - cmp r5, 0\n\ - beq _08021B04\n\ - adds r0, r2, r3\n\ - subs r1, r5, 0x1\n\ - lsls r1, 1\n\ - adds r1, r2, r1\n\ - ldrh r0, [r0]\n\ - ldrh r1, [r1]\n\ - cmp r0, r1\n\ - beq _08021B04\n\ - str r5, [sp, 0x1C]\n\ - _08021B04:\n\ - ldr r4, [sp, 0x24]\n\ - ldr r1, [sp, 0x10]\n\ - adds r0, r4, r1\n\ - lsls r0, 1\n\ - adds r0, r3, r0\n\ - adds r0, r2, r0\n\ - ldrh r1, [r0]\n\ - ldr r0, =gStringVar4\n\ - movs r2, 0x1\n\ - movs r3, 0x4\n\ - bl ConvertIntToDecimalStringN\n\ - ldr r0, =gUnknown_082F43B4\n\ - adds r0, r4, r0\n\ - ldr r1, [r0]\n\ - ldr r0, =gStringVar4\n\ - bl StringAppend\n\ - ldr r4, [sp, 0x14]\n\ - subs r4, 0x4\n\ - lsls r2, r6, 24\n\ - mov r10, r2\n\ - ldr r3, [sp, 0x1C]\n\ - adds r3, 0xA2\n\ - mov r9, r3\n\ - ldr r0, [sp, 0x18]\n\ - lsls r0, 5\n\ - mov r8, r0\n\ - b _08021C5A\n\ - .pool\n\ - _08021B48:\n\ - ldr r1, [sp, 0x20]\n\ - adds r0, r1, r5\n\ - adds r0, 0x28\n\ - ldrb r0, [r0]\n\ - str r0, [sp, 0x18]\n\ - lsls r3, r5, 1\n\ - adds r2, r1, 0\n\ - adds r2, 0xC\n\ - cmp r5, 0\n\ - beq _08021B72\n\ - adds r0, r3, 0\n\ - adds r0, 0xA\n\ - adds r0, r2, r0\n\ - adds r1, r3, 0\n\ - adds r1, 0x8\n\ - adds r1, r2, r1\n\ - ldrh r0, [r0]\n\ - ldrh r1, [r1]\n\ - cmp r0, r1\n\ - beq _08021B72\n\ - str r5, [sp, 0x1C]\n\ - _08021B72:\n\ - ldr r0, [sp, 0x24]\n\ - ldr r1, [sp, 0x10]\n\ - adds r4, r0, r1\n\ - lsls r4, 1\n\ - adds r4, r3, r4\n\ - adds r4, r2, r4\n\ - ldrh r1, [r4]\n\ - lsrs r1, 4\n\ - ldr r0, =gStringVar1\n\ - movs r2, 0x1\n\ - movs r3, 0x3\n\ - bl ConvertIntToDecimalStringN\n\ - movs r7, 0\n\ - ldrb r0, [r4]\n\ - movs r3, 0xF\n\ - ands r3, r0\n\ - movs r2, 0\n\ - ldr r4, [sp, 0x10]\n\ - lsls r4, 2\n\ - str r4, [sp, 0x28]\n\ - ldr r4, [sp, 0x14]\n\ - subs r4, 0x4\n\ - lsls r0, r6, 24\n\ - mov r10, r0\n\ - ldr r1, [sp, 0x1C]\n\ - adds r1, 0xA2\n\ - mov r9, r1\n\ - ldr r0, [sp, 0x18]\n\ - lsls r0, 5\n\ - mov r8, r0\n\ - adds r6, 0xE\n\ - adds r5, 0x1\n\ - ldr r1, =gUnknown_082F334C\n\ - mov r12, r1\n\ - _08021BB8:\n\ - movs r0, 0x3\n\ - subs r1, r0, r2\n\ - adds r0, r3, 0\n\ - asrs r0, r1\n\ - movs r1, 0x1\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _08021BD0\n\ - lsls r0, r2, 2\n\ - add r0, r12\n\ - ldr r0, [r0]\n\ - adds r7, r0\n\ - _08021BD0:\n\ - adds r0, r2, 0x1\n\ - lsls r0, 24\n\ - lsrs r2, r0, 24\n\ - cmp r2, 0x3\n\ - bls _08021BB8\n\ - adds r0, r7, 0\n\ - ldr r1, =0x000f4240\n\ - bl __udivsi3\n\ - lsls r0, 24\n\ - lsrs r3, r0, 24\n\ - ldr r0, =gStringVar2\n\ - adds r1, r3, 0\n\ - movs r2, 0x2\n\ - movs r3, 0x2\n\ - bl ConvertIntToDecimalStringN\n\ - ldr r0, =gUnknown_082F43B4\n\ - ldr r2, [sp, 0x28]\n\ - adds r0, r2, r0\n\ - ldr r1, [r0]\n\ - ldr r0, =gStringVar4\n\ - bl StringExpandPlaceholders\n\ - b _08021C5E\n\ - .pool\n\ - _08021C1C:\n\ - str r5, [sp, 0x18]\n\ - str r5, [sp, 0x1C]\n\ - lsls r7, r5, 5\n\ - ldr r3, [sp, 0xC]\n\ - adds r0, r3, r7\n\ - adds r0, 0xA4\n\ - ldrb r2, [r0]\n\ - cmp r2, 0x2B\n\ - bls _08021C30\n\ - movs r2, 0\n\ - _08021C30:\n\ - lsls r1, r2, 3\n\ - subs r1, r2\n\ - lsls r1, 2\n\ - ldr r0, =gBerries\n\ - adds r1, r0\n\ - ldr r0, =gStringVar1\n\ - bl StringCopy\n\ - ldr r0, =gUnknown_082F43B4\n\ - ldr r1, [r0, 0x8]\n\ - ldr r0, =gStringVar4\n\ - bl StringExpandPlaceholders\n\ - ldr r4, [sp, 0x14]\n\ - subs r4, 0x4\n\ - lsls r0, r6, 24\n\ - mov r10, r0\n\ - movs r1, 0xA2\n\ - adds r1, r5\n\ - mov r9, r1\n\ - mov r8, r7\n\ - _08021C5A:\n\ - adds r6, 0xE\n\ - adds r5, 0x1\n\ - _08021C5E:\n\ - movs r0, 0x2\n\ - ldr r1, =gStringVar4\n\ - adds r2, r4, 0\n\ - bl GetStringRightAlignXOffset\n\ - adds r2, r0, 0\n\ - ldr r3, [sp, 0xC]\n\ - movs r4, 0xDD\n\ - lsls r4, 1\n\ - adds r0, r3, r4\n\ - ldrb r0, [r0]\n\ - lsls r2, 24\n\ - lsrs r2, 24\n\ - mov r1, r10\n\ - lsrs r3, r1, 24\n\ - ldr r1, =sBerryCrushTextColorTable\n\ - str r1, [sp]\n\ - movs r4, 0\n\ - str r4, [sp, 0x4]\n\ - ldr r1, =gStringVar4\n\ - str r1, [sp, 0x8]\n\ - movs r1, 0x2\n\ - bl AddTextPrinterParameterized3\n\ - ldr r3, [sp, 0x18]\n\ - ldr r2, [sp, 0xC]\n\ - ldrb r2, [r2, 0x8]\n\ - cmp r3, r2\n\ - bne _08021CC0\n\ - ldr r0, =gStringVar3\n\ - ldr r1, =gText_1DotBlueF700\n\ - bl StringCopy\n\ - b _08021CC8\n\ - .pool\n\ - _08021CC0:\n\ - ldr r0, =gStringVar3\n\ - ldr r1, =gText_1DotF700\n\ - bl StringCopy\n\ - _08021CC8:\n\ - ldr r4, =gStringVar3\n\ - mov r3, r9\n\ - strb r3, [r4]\n\ - mov r1, r8\n\ - adds r1, 0x98\n\ - ldr r0, [sp, 0xC]\n\ - adds r1, r0, r1\n\ - movs r0, 0\n\ - bl DynamicPlaceholderTextUtil_SetPlaceholderPtr\n\ - ldr r0, =gStringVar4\n\ - adds r1, r4, 0\n\ - bl DynamicPlaceholderTextUtil_ExpandPlaceholders\n\ - ldr r1, [sp, 0xC]\n\ - movs r2, 0xDD\n\ - lsls r2, 1\n\ - adds r0, r1, r2\n\ - ldrb r0, [r0]\n\ - mov r4, r10\n\ - lsrs r3, r4, 24\n\ - ldr r1, =sBerryCrushTextColorTable\n\ - str r1, [sp]\n\ - movs r1, 0\n\ - str r1, [sp, 0x4]\n\ - ldr r2, =gStringVar4\n\ - str r2, [sp, 0x8]\n\ - movs r1, 0x2\n\ - movs r2, 0x4\n\ - bl AddTextPrinterParameterized3\n\ - lsls r0, r5, 24\n\ - lsrs r5, r0, 24\n\ - ldr r3, [sp, 0xC]\n\ - ldrb r3, [r3, 0x9]\n\ - cmp r5, r3\n\ - bcs _08021D14\n\ - b _08021A98\n\ - _08021D14:\n\ - add sp, 0x2C\n\ - pop {r3-r5}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - mov r10, r5\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .pool"); -} -#endif void sub_8021D34(struct BerryCrushGame *r8) { diff --git a/src/data/graphics/pokemon.h b/src/data/graphics/pokemon.h index 45e34030f..fd4d8b95d 100644 --- a/src/data/graphics/pokemon.h +++ b/src/data/graphics/pokemon.h @@ -1398,11 +1398,11 @@ const u32 gMonShinyPalette_Misdreavus[] = INCBIN_U32("graphics/pokemon/misdreavu const u8 gMonIcon_Misdreavus[] = INCBIN_U8("graphics/pokemon/misdreavus/icon.4bpp"); const u8 gMonFootprint_Misdreavus[] = INCBIN_U8("graphics/pokemon/misdreavus/footprint.1bpp"); -const u32 gMonStillFrontPic_UnownA[] = INCBIN_U32("graphics/pokemon/unown/front_a.4bpp.lz"); +const u32 gMonStillFrontPic_UnownA[] = INCBIN_U32("graphics/pokemon/unown/a/front.4bpp.lz"); const u32 gMonPalette_Unown[] = INCBIN_U32("graphics/pokemon/unown/normal.gbapal.lz"); -const u32 gMonBackPic_UnownA[] = INCBIN_U32("graphics/pokemon/unown/back_a.4bpp.lz"); +const u32 gMonBackPic_UnownA[] = INCBIN_U32("graphics/pokemon/unown/a/back.4bpp.lz"); const u32 gMonShinyPalette_Unown[] = INCBIN_U32("graphics/pokemon/unown/shiny.gbapal.lz"); -const u8 gMonIcon_UnownA[] = INCBIN_U8("graphics/pokemon/unown/icon_a.4bpp"); +const u8 gMonIcon_UnownA[] = INCBIN_U8("graphics/pokemon/unown/a/icon.4bpp"); const u8 gMonFootprint_Unown[] = INCBIN_U8("graphics/pokemon/unown/footprint.1bpp"); const u32 gMonStillFrontPic_Wobbuffet[] = INCBIN_U32("graphics/pokemon/wobbuffet/front.4bpp.lz"); @@ -1754,10 +1754,10 @@ const u32 gMonShinyPalette_Celebi[] = INCBIN_U32("graphics/pokemon/celebi/shiny. const u8 gMonIcon_Celebi[] = INCBIN_U8("graphics/pokemon/celebi/icon.4bpp"); const u8 gMonFootprint_Celebi[] = INCBIN_U8("graphics/pokemon/celebi/footprint.1bpp"); -const u32 gMonStillFrontPic_DoubleQuestionMark[] = INCBIN_U32("graphics/pokemon/double_question_mark/front.4bpp.lz"); -const u32 gMonPalette_DoubleQuestionMark[] = INCBIN_U32("graphics/pokemon/double_question_mark/normal.gbapal.lz"); -const u32 gMonBackPic_DoubleQuestionMark[] = INCBIN_U32("graphics/pokemon/double_question_mark/back.4bpp.lz"); -const u32 gMonShinyPalette_DoubleQuestionMark[] = INCBIN_U32("graphics/pokemon/double_question_mark/shiny.gbapal.lz"); +const u32 gMonStillFrontPic_DoubleQuestionMark[] = INCBIN_U32("graphics/pokemon/question_mark/double/front.4bpp.lz"); +const u32 gMonPalette_DoubleQuestionMark[] = INCBIN_U32("graphics/pokemon/question_mark/double/normal.gbapal.lz"); +const u32 gMonBackPic_DoubleQuestionMark[] = INCBIN_U32("graphics/pokemon/question_mark/double/back.4bpp.lz"); +const u32 gMonShinyPalette_DoubleQuestionMark[] = INCBIN_U32("graphics/pokemon/question_mark/double/shiny.gbapal.lz"); const u32 gMonStillFrontPic_Treecko[] = INCBIN_U32("graphics/pokemon/treecko/front.4bpp.lz"); const u32 gMonPalette_Treecko[] = INCBIN_U32("graphics/pokemon/treecko/normal.gbapal.lz"); @@ -2714,110 +2714,110 @@ const u8 gMonFootprint_Chimecho[] = INCBIN_U8("graphics/pokemon/chimecho/footpri const u32 gMonStillFrontPic_Egg[] = INCBIN_U32("graphics/pokemon/egg/front.4bpp.lz"); const u32 gMonPalette_Egg[] = INCBIN_U32("graphics/pokemon/egg/normal.gbapal.lz"); -const u32 gMonStillFrontPic_UnownB[] = INCBIN_U32("graphics/pokemon/unown/front_b.4bpp.lz"); -const u32 gMonBackPic_UnownB[] = INCBIN_U32("graphics/pokemon/unown/back_b.4bpp.lz"); -const u8 gMonIcon_UnownB[] = INCBIN_U8("graphics/pokemon/unown/icon_b.4bpp"); +const u32 gMonStillFrontPic_UnownB[] = INCBIN_U32("graphics/pokemon/unown/b/front.4bpp.lz"); +const u32 gMonBackPic_UnownB[] = INCBIN_U32("graphics/pokemon/unown/b/back.4bpp.lz"); +const u8 gMonIcon_UnownB[] = INCBIN_U8("graphics/pokemon/unown/b/icon.4bpp"); -const u32 gMonStillFrontPic_UnownC[] = INCBIN_U32("graphics/pokemon/unown/front_c.4bpp.lz"); -const u32 gMonBackPic_UnownC[] = INCBIN_U32("graphics/pokemon/unown/back_c.4bpp.lz"); -const u8 gMonIcon_UnownC[] = INCBIN_U8("graphics/pokemon/unown/icon_c.4bpp"); +const u32 gMonStillFrontPic_UnownC[] = INCBIN_U32("graphics/pokemon/unown/c/front.4bpp.lz"); +const u32 gMonBackPic_UnownC[] = INCBIN_U32("graphics/pokemon/unown/c/back.4bpp.lz"); +const u8 gMonIcon_UnownC[] = INCBIN_U8("graphics/pokemon/unown/c/icon.4bpp"); -const u32 gMonStillFrontPic_UnownD[] = INCBIN_U32("graphics/pokemon/unown/front_d.4bpp.lz"); -const u32 gMonBackPic_UnownD[] = INCBIN_U32("graphics/pokemon/unown/back_d.4bpp.lz"); -const u8 gMonIcon_UnownD[] = INCBIN_U8("graphics/pokemon/unown/icon_d.4bpp"); +const u32 gMonStillFrontPic_UnownD[] = INCBIN_U32("graphics/pokemon/unown/d/front.4bpp.lz"); +const u32 gMonBackPic_UnownD[] = INCBIN_U32("graphics/pokemon/unown/d/back.4bpp.lz"); +const u8 gMonIcon_UnownD[] = INCBIN_U8("graphics/pokemon/unown/d/icon.4bpp"); -const u32 gMonStillFrontPic_UnownE[] = INCBIN_U32("graphics/pokemon/unown/front_e.4bpp.lz"); -const u32 gMonBackPic_UnownE[] = INCBIN_U32("graphics/pokemon/unown/back_e.4bpp.lz"); -const u8 gMonIcon_UnownE[] = INCBIN_U8("graphics/pokemon/unown/icon_e.4bpp"); +const u32 gMonStillFrontPic_UnownE[] = INCBIN_U32("graphics/pokemon/unown/e/front.4bpp.lz"); +const u32 gMonBackPic_UnownE[] = INCBIN_U32("graphics/pokemon/unown/e/back.4bpp.lz"); +const u8 gMonIcon_UnownE[] = INCBIN_U8("graphics/pokemon/unown/e/icon.4bpp"); -const u32 gMonStillFrontPic_UnownF[] = INCBIN_U32("graphics/pokemon/unown/front_f.4bpp.lz"); -const u32 gMonBackPic_UnownF[] = INCBIN_U32("graphics/pokemon/unown/back_f.4bpp.lz"); -const u8 gMonIcon_UnownF[] = INCBIN_U8("graphics/pokemon/unown/icon_f.4bpp"); +const u32 gMonStillFrontPic_UnownF[] = INCBIN_U32("graphics/pokemon/unown/f/front.4bpp.lz"); +const u32 gMonBackPic_UnownF[] = INCBIN_U32("graphics/pokemon/unown/f/back.4bpp.lz"); +const u8 gMonIcon_UnownF[] = INCBIN_U8("graphics/pokemon/unown/f/icon.4bpp"); -const u32 gMonStillFrontPic_UnownG[] = INCBIN_U32("graphics/pokemon/unown/front_g.4bpp.lz"); -const u32 gMonBackPic_UnownG[] = INCBIN_U32("graphics/pokemon/unown/back_g.4bpp.lz"); -const u8 gMonIcon_UnownG[] = INCBIN_U8("graphics/pokemon/unown/icon_g.4bpp"); +const u32 gMonStillFrontPic_UnownG[] = INCBIN_U32("graphics/pokemon/unown/g/front.4bpp.lz"); +const u32 gMonBackPic_UnownG[] = INCBIN_U32("graphics/pokemon/unown/g/back.4bpp.lz"); +const u8 gMonIcon_UnownG[] = INCBIN_U8("graphics/pokemon/unown/g/icon.4bpp"); -const u32 gMonStillFrontPic_UnownH[] = INCBIN_U32("graphics/pokemon/unown/front_h.4bpp.lz"); -const u32 gMonBackPic_UnownH[] = INCBIN_U32("graphics/pokemon/unown/back_h.4bpp.lz"); -const u8 gMonIcon_UnownH[] = INCBIN_U8("graphics/pokemon/unown/icon_h.4bpp"); +const u32 gMonStillFrontPic_UnownH[] = INCBIN_U32("graphics/pokemon/unown/h/front.4bpp.lz"); +const u32 gMonBackPic_UnownH[] = INCBIN_U32("graphics/pokemon/unown/h/back.4bpp.lz"); +const u8 gMonIcon_UnownH[] = INCBIN_U8("graphics/pokemon/unown/h/icon.4bpp"); -const u32 gMonStillFrontPic_UnownI[] = INCBIN_U32("graphics/pokemon/unown/front_i.4bpp.lz"); -const u32 gMonBackPic_UnownI[] = INCBIN_U32("graphics/pokemon/unown/back_i.4bpp.lz"); -const u8 gMonIcon_UnownI[] = INCBIN_U8("graphics/pokemon/unown/icon_i.4bpp"); +const u32 gMonStillFrontPic_UnownI[] = INCBIN_U32("graphics/pokemon/unown/i/front.4bpp.lz"); +const u32 gMonBackPic_UnownI[] = INCBIN_U32("graphics/pokemon/unown/i/back.4bpp.lz"); +const u8 gMonIcon_UnownI[] = INCBIN_U8("graphics/pokemon/unown/i/icon.4bpp"); -const u32 gMonStillFrontPic_UnownJ[] = INCBIN_U32("graphics/pokemon/unown/front_j.4bpp.lz"); -const u32 gMonBackPic_UnownJ[] = INCBIN_U32("graphics/pokemon/unown/back_j.4bpp.lz"); -const u8 gMonIcon_UnownJ[] = INCBIN_U8("graphics/pokemon/unown/icon_j.4bpp"); +const u32 gMonStillFrontPic_UnownJ[] = INCBIN_U32("graphics/pokemon/unown/j/front.4bpp.lz"); +const u32 gMonBackPic_UnownJ[] = INCBIN_U32("graphics/pokemon/unown/j/back.4bpp.lz"); +const u8 gMonIcon_UnownJ[] = INCBIN_U8("graphics/pokemon/unown/j/icon.4bpp"); -const u32 gMonStillFrontPic_UnownK[] = INCBIN_U32("graphics/pokemon/unown/front_k.4bpp.lz"); -const u32 gMonBackPic_UnownK[] = INCBIN_U32("graphics/pokemon/unown/back_k.4bpp.lz"); -const u8 gMonIcon_UnownK[] = INCBIN_U8("graphics/pokemon/unown/icon_k.4bpp"); +const u32 gMonStillFrontPic_UnownK[] = INCBIN_U32("graphics/pokemon/unown/k/front.4bpp.lz"); +const u32 gMonBackPic_UnownK[] = INCBIN_U32("graphics/pokemon/unown/k/back.4bpp.lz"); +const u8 gMonIcon_UnownK[] = INCBIN_U8("graphics/pokemon/unown/k/icon.4bpp"); -const u32 gMonStillFrontPic_UnownL[] = INCBIN_U32("graphics/pokemon/unown/front_l.4bpp.lz"); -const u32 gMonBackPic_UnownL[] = INCBIN_U32("graphics/pokemon/unown/back_l.4bpp.lz"); -const u8 gMonIcon_UnownL[] = INCBIN_U8("graphics/pokemon/unown/icon_l.4bpp"); +const u32 gMonStillFrontPic_UnownL[] = INCBIN_U32("graphics/pokemon/unown/l/front.4bpp.lz"); +const u32 gMonBackPic_UnownL[] = INCBIN_U32("graphics/pokemon/unown/l/back.4bpp.lz"); +const u8 gMonIcon_UnownL[] = INCBIN_U8("graphics/pokemon/unown/l/icon.4bpp"); -const u32 gMonStillFrontPic_UnownM[] = INCBIN_U32("graphics/pokemon/unown/front_m.4bpp.lz"); -const u32 gMonBackPic_UnownM[] = INCBIN_U32("graphics/pokemon/unown/back_m.4bpp.lz"); -const u8 gMonIcon_UnownM[] = INCBIN_U8("graphics/pokemon/unown/icon_m.4bpp"); +const u32 gMonStillFrontPic_UnownM[] = INCBIN_U32("graphics/pokemon/unown/m/front.4bpp.lz"); +const u32 gMonBackPic_UnownM[] = INCBIN_U32("graphics/pokemon/unown/m/back.4bpp.lz"); +const u8 gMonIcon_UnownM[] = INCBIN_U8("graphics/pokemon/unown/m/icon.4bpp"); -const u32 gMonStillFrontPic_UnownN[] = INCBIN_U32("graphics/pokemon/unown/front_n.4bpp.lz"); -const u32 gMonBackPic_UnownN[] = INCBIN_U32("graphics/pokemon/unown/back_n.4bpp.lz"); -const u8 gMonIcon_UnownN[] = INCBIN_U8("graphics/pokemon/unown/icon_n.4bpp"); +const u32 gMonStillFrontPic_UnownN[] = INCBIN_U32("graphics/pokemon/unown/n/front.4bpp.lz"); +const u32 gMonBackPic_UnownN[] = INCBIN_U32("graphics/pokemon/unown/n/back.4bpp.lz"); +const u8 gMonIcon_UnownN[] = INCBIN_U8("graphics/pokemon/unown/n/icon.4bpp"); -const u32 gMonStillFrontPic_UnownO[] = INCBIN_U32("graphics/pokemon/unown/front_o.4bpp.lz"); -const u32 gMonBackPic_UnownO[] = INCBIN_U32("graphics/pokemon/unown/back_o.4bpp.lz"); -const u8 gMonIcon_UnownO[] = INCBIN_U8("graphics/pokemon/unown/icon_o.4bpp"); +const u32 gMonStillFrontPic_UnownO[] = INCBIN_U32("graphics/pokemon/unown/o/front.4bpp.lz"); +const u32 gMonBackPic_UnownO[] = INCBIN_U32("graphics/pokemon/unown/o/back.4bpp.lz"); +const u8 gMonIcon_UnownO[] = INCBIN_U8("graphics/pokemon/unown/o/icon.4bpp"); -const u32 gMonStillFrontPic_UnownP[] = INCBIN_U32("graphics/pokemon/unown/front_p.4bpp.lz"); -const u32 gMonBackPic_UnownP[] = INCBIN_U32("graphics/pokemon/unown/back_p.4bpp.lz"); -const u8 gMonIcon_UnownP[] = INCBIN_U8("graphics/pokemon/unown/icon_p.4bpp"); +const u32 gMonStillFrontPic_UnownP[] = INCBIN_U32("graphics/pokemon/unown/p/front.4bpp.lz"); +const u32 gMonBackPic_UnownP[] = INCBIN_U32("graphics/pokemon/unown/p/back.4bpp.lz"); +const u8 gMonIcon_UnownP[] = INCBIN_U8("graphics/pokemon/unown/p/icon.4bpp"); -const u32 gMonStillFrontPic_UnownQ[] = INCBIN_U32("graphics/pokemon/unown/front_q.4bpp.lz"); -const u32 gMonBackPic_UnownQ[] = INCBIN_U32("graphics/pokemon/unown/back_q.4bpp.lz"); -const u8 gMonIcon_UnownQ[] = INCBIN_U8("graphics/pokemon/unown/icon_q.4bpp"); +const u32 gMonStillFrontPic_UnownQ[] = INCBIN_U32("graphics/pokemon/unown/q/front.4bpp.lz"); +const u32 gMonBackPic_UnownQ[] = INCBIN_U32("graphics/pokemon/unown/q/back.4bpp.lz"); +const u8 gMonIcon_UnownQ[] = INCBIN_U8("graphics/pokemon/unown/q/icon.4bpp"); -const u32 gMonStillFrontPic_UnownR[] = INCBIN_U32("graphics/pokemon/unown/front_r.4bpp.lz"); -const u32 gMonBackPic_UnownR[] = INCBIN_U32("graphics/pokemon/unown/back_r.4bpp.lz"); -const u8 gMonIcon_UnownR[] = INCBIN_U8("graphics/pokemon/unown/icon_r.4bpp"); +const u32 gMonStillFrontPic_UnownR[] = INCBIN_U32("graphics/pokemon/unown/r/front.4bpp.lz"); +const u32 gMonBackPic_UnownR[] = INCBIN_U32("graphics/pokemon/unown/r/back.4bpp.lz"); +const u8 gMonIcon_UnownR[] = INCBIN_U8("graphics/pokemon/unown/r/icon.4bpp"); -const u32 gMonStillFrontPic_UnownS[] = INCBIN_U32("graphics/pokemon/unown/front_s.4bpp.lz"); -const u32 gMonBackPic_UnownS[] = INCBIN_U32("graphics/pokemon/unown/back_s.4bpp.lz"); -const u8 gMonIcon_UnownS[] = INCBIN_U8("graphics/pokemon/unown/icon_s.4bpp"); +const u32 gMonStillFrontPic_UnownS[] = INCBIN_U32("graphics/pokemon/unown/s/front.4bpp.lz"); +const u32 gMonBackPic_UnownS[] = INCBIN_U32("graphics/pokemon/unown/s/back.4bpp.lz"); +const u8 gMonIcon_UnownS[] = INCBIN_U8("graphics/pokemon/unown/s/icon.4bpp"); -const u32 gMonStillFrontPic_UnownT[] = INCBIN_U32("graphics/pokemon/unown/front_t.4bpp.lz"); -const u32 gMonBackPic_UnownT[] = INCBIN_U32("graphics/pokemon/unown/back_t.4bpp.lz"); -const u8 gMonIcon_UnownT[] = INCBIN_U8("graphics/pokemon/unown/icon_t.4bpp"); +const u32 gMonStillFrontPic_UnownT[] = INCBIN_U32("graphics/pokemon/unown/t/front.4bpp.lz"); +const u32 gMonBackPic_UnownT[] = INCBIN_U32("graphics/pokemon/unown/t/back.4bpp.lz"); +const u8 gMonIcon_UnownT[] = INCBIN_U8("graphics/pokemon/unown/t/icon.4bpp"); -const u32 gMonStillFrontPic_UnownU[] = INCBIN_U32("graphics/pokemon/unown/front_u.4bpp.lz"); -const u32 gMonBackPic_UnownU[] = INCBIN_U32("graphics/pokemon/unown/back_u.4bpp.lz"); -const u8 gMonIcon_UnownU[] = INCBIN_U8("graphics/pokemon/unown/icon_u.4bpp"); +const u32 gMonStillFrontPic_UnownU[] = INCBIN_U32("graphics/pokemon/unown/u/front.4bpp.lz"); +const u32 gMonBackPic_UnownU[] = INCBIN_U32("graphics/pokemon/unown/u/back.4bpp.lz"); +const u8 gMonIcon_UnownU[] = INCBIN_U8("graphics/pokemon/unown/u/icon.4bpp"); -const u32 gMonStillFrontPic_UnownV[] = INCBIN_U32("graphics/pokemon/unown/front_v.4bpp.lz"); -const u32 gMonBackPic_UnownV[] = INCBIN_U32("graphics/pokemon/unown/back_v.4bpp.lz"); -const u8 gMonIcon_UnownV[] = INCBIN_U8("graphics/pokemon/unown/icon_v.4bpp"); +const u32 gMonStillFrontPic_UnownV[] = INCBIN_U32("graphics/pokemon/unown/v/front.4bpp.lz"); +const u32 gMonBackPic_UnownV[] = INCBIN_U32("graphics/pokemon/unown/v/back.4bpp.lz"); +const u8 gMonIcon_UnownV[] = INCBIN_U8("graphics/pokemon/unown/v/icon.4bpp"); -const u32 gMonStillFrontPic_UnownW[] = INCBIN_U32("graphics/pokemon/unown/front_w.4bpp.lz"); -const u32 gMonBackPic_UnownW[] = INCBIN_U32("graphics/pokemon/unown/back_w.4bpp.lz"); -const u8 gMonIcon_UnownW[] = INCBIN_U8("graphics/pokemon/unown/icon_w.4bpp"); +const u32 gMonStillFrontPic_UnownW[] = INCBIN_U32("graphics/pokemon/unown/w/front.4bpp.lz"); +const u32 gMonBackPic_UnownW[] = INCBIN_U32("graphics/pokemon/unown/w/back.4bpp.lz"); +const u8 gMonIcon_UnownW[] = INCBIN_U8("graphics/pokemon/unown/w/icon.4bpp"); -const u32 gMonStillFrontPic_UnownX[] = INCBIN_U32("graphics/pokemon/unown/front_x.4bpp.lz"); -const u32 gMonBackPic_UnownX[] = INCBIN_U32("graphics/pokemon/unown/back_x.4bpp.lz"); -const u8 gMonIcon_UnownX[] = INCBIN_U8("graphics/pokemon/unown/icon_x.4bpp"); +const u32 gMonStillFrontPic_UnownX[] = INCBIN_U32("graphics/pokemon/unown/x/front.4bpp.lz"); +const u32 gMonBackPic_UnownX[] = INCBIN_U32("graphics/pokemon/unown/x/back.4bpp.lz"); +const u8 gMonIcon_UnownX[] = INCBIN_U8("graphics/pokemon/unown/x/icon.4bpp"); -const u32 gMonStillFrontPic_UnownY[] = INCBIN_U32("graphics/pokemon/unown/front_y.4bpp.lz"); -const u32 gMonBackPic_UnownY[] = INCBIN_U32("graphics/pokemon/unown/back_y.4bpp.lz"); -const u8 gMonIcon_UnownY[] = INCBIN_U8("graphics/pokemon/unown/icon_y.4bpp"); +const u32 gMonStillFrontPic_UnownY[] = INCBIN_U32("graphics/pokemon/unown/y/front.4bpp.lz"); +const u32 gMonBackPic_UnownY[] = INCBIN_U32("graphics/pokemon/unown/y/back.4bpp.lz"); +const u8 gMonIcon_UnownY[] = INCBIN_U8("graphics/pokemon/unown/y/icon.4bpp"); -const u32 gMonStillFrontPic_UnownZ[] = INCBIN_U32("graphics/pokemon/unown/front_z.4bpp.lz"); -const u32 gMonBackPic_UnownZ[] = INCBIN_U32("graphics/pokemon/unown/back_z.4bpp.lz"); -const u8 gMonIcon_UnownZ[] = INCBIN_U8("graphics/pokemon/unown/icon_z.4bpp"); +const u32 gMonStillFrontPic_UnownZ[] = INCBIN_U32("graphics/pokemon/unown/z/front.4bpp.lz"); +const u32 gMonBackPic_UnownZ[] = INCBIN_U32("graphics/pokemon/unown/z/back.4bpp.lz"); +const u8 gMonIcon_UnownZ[] = INCBIN_U8("graphics/pokemon/unown/z/icon.4bpp"); -const u32 gMonStillFrontPic_UnownExclamationMark[] = INCBIN_U32("graphics/pokemon/unown/front_exclamation_mark.4bpp.lz"); -const u32 gMonBackPic_UnownExclamationMark[] = INCBIN_U32("graphics/pokemon/unown/back_exclamation_mark.4bpp.lz"); -const u8 gMonIcon_UnownExclamationMark[] = INCBIN_U8("graphics/pokemon/unown/icon_exclamation_mark.4bpp"); +const u32 gMonStillFrontPic_UnownExclamationMark[] = INCBIN_U32("graphics/pokemon/unown/exclamation_mark/front.4bpp.lz"); +const u32 gMonBackPic_UnownExclamationMark[] = INCBIN_U32("graphics/pokemon/unown/exclamation_mark/back.4bpp.lz"); +const u8 gMonIcon_UnownExclamationMark[] = INCBIN_U8("graphics/pokemon/unown/exclamation_mark/icon.4bpp"); -const u32 gMonStillFrontPic_UnownQuestionMark[] = INCBIN_U32("graphics/pokemon/unown/front_question_mark.4bpp.lz"); -const u32 gMonBackPic_UnownQuestionMark[] = INCBIN_U32("graphics/pokemon/unown/back_question_mark.4bpp.lz"); -const u8 gMonIcon_UnownQuestionMark[] = INCBIN_U8("graphics/pokemon/unown/icon_question_mark.4bpp"); +const u32 gMonStillFrontPic_UnownQuestionMark[] = INCBIN_U32("graphics/pokemon/unown/question_mark/front.4bpp.lz"); +const u32 gMonBackPic_UnownQuestionMark[] = INCBIN_U32("graphics/pokemon/unown/question_mark/back.4bpp.lz"); +const u8 gMonIcon_UnownQuestionMark[] = INCBIN_U8("graphics/pokemon/unown/question_mark/icon.4bpp"); diff --git a/src/data/pokemon/base_stats.h b/src/data/pokemon/base_stats.h index 17e677967..2f493bc1b 100644 --- a/src/data/pokemon/base_stats.h +++ b/src/data/pokemon/base_stats.h @@ -1,5 +1,5 @@ -// Maximum value for a female Pokémon is 254 (MON_FEMALE) which is 100% female. -// 255 (MON_GENDERLESS) is reserved for genderless Pokémon. +// Maximum value for a female Pokémon is 254 (MON_FEMALE) which is 100% female. +// 255 (MON_GENDERLESS) is reserved for genderless Pokémon. #define PERCENT_FEMALE(percent) min(254, ((percent * 255) / 100)) #define OLD_UNOWN_BASE_STATS \ diff --git a/src/data/region_map/city_map_entries.h b/src/data/region_map/city_map_entries.h index 7b8361a7c..09689da5b 100644 --- a/src/data/region_map/city_map_entries.h +++ b/src/data/region_map/city_map_entries.h @@ -1,112 +1,112 @@ -const struct CityMapEntry gPokenavCityMaps[] = +static const struct CityMapEntry sPokenavCityMaps[NUM_CITY_MAPS] = { { - .mapSecId = 0, + .mapSecId = MAPSEC_LITTLEROOT_TOWN, .index = 0, .tilemap = gPokenavCityMap_Littleroot_0, }, { - .mapSecId = 1, + .mapSecId = MAPSEC_OLDALE_TOWN, .index = 0, .tilemap = gPokenavCityMap_Oldale_0, }, { - .mapSecId = 2, + .mapSecId = MAPSEC_DEWFORD_TOWN, .index = 0, .tilemap = gPokenavCityMap_Dewford_0, }, { - .mapSecId = 3, + .mapSecId = MAPSEC_LAVARIDGE_TOWN, .index = 0, .tilemap = gPokenavCityMap_Lavarige_0, }, { - .mapSecId = 4, + .mapSecId = MAPSEC_FALLARBOR_TOWN, .index = 0, .tilemap = gPokenavCityMap_Fallarbor_0, }, { - .mapSecId = 5, + .mapSecId = MAPSEC_VERDANTURF_TOWN, .index = 0, .tilemap = gPokenavCityMap_Verdanturf_0, }, { - .mapSecId = 6, + .mapSecId = MAPSEC_PACIFIDLOG_TOWN, .index = 0, .tilemap = gPokenavCityMap_Pacifidlog_0, }, { - .mapSecId = 7, + .mapSecId = MAPSEC_PETALBURG_CITY, .index = 0, .tilemap = gPokenavCityMap_Petalburg_0, }, { - .mapSecId = 8, + .mapSecId = MAPSEC_SLATEPORT_CITY, .index = 0, .tilemap = gPokenavCityMap_Slateport_0, }, { - .mapSecId = 8, + .mapSecId = MAPSEC_SLATEPORT_CITY, .index = 1, .tilemap = gPokenavCityMap_Slateport_1, }, { - .mapSecId = 9, + .mapSecId = MAPSEC_MAUVILLE_CITY, .index = 0, .tilemap = gPokenavCityMap_Mauville_0, }, { - .mapSecId = 9, + .mapSecId = MAPSEC_MAUVILLE_CITY, .index = 1, .tilemap = gPokenavCityMap_Mauville_1, }, { - .mapSecId = 10, + .mapSecId = MAPSEC_RUSTBORO_CITY, .index = 0, .tilemap = gPokenavCityMap_Rustboro_0, }, { - .mapSecId = 10, + .mapSecId = MAPSEC_RUSTBORO_CITY, .index = 1, .tilemap = gPokenavCityMap_Rustboro_1, }, { - .mapSecId = 11, + .mapSecId = MAPSEC_FORTREE_CITY, .index = 0, .tilemap = gPokenavCityMap_Fortree_0, }, { - .mapSecId = 12, + .mapSecId = MAPSEC_LILYCOVE_CITY, .index = 0, .tilemap = gPokenavCityMap_Lilycove_0, }, { - .mapSecId = 12, + .mapSecId = MAPSEC_LILYCOVE_CITY, .index = 1, .tilemap = gPokenavCityMap_Lilycove_1, }, { - .mapSecId = 13, + .mapSecId = MAPSEC_MOSSDEEP_CITY, .index = 0, .tilemap = gPokenavCityMap_Mossdeep_0, }, { - .mapSecId = 13, + .mapSecId = MAPSEC_MOSSDEEP_CITY, .index = 1, .tilemap = gPokenavCityMap_Mossdeep_1, }, { - .mapSecId = 14, + .mapSecId = MAPSEC_SOOTOPOLIS_CITY, .index = 0, .tilemap = gPokenavCityMap_Sootopolis_0, }, { - .mapSecId = 15, + .mapSecId = MAPSEC_EVER_GRANDE_CITY, .index = 0, .tilemap = gPokenavCityMap_EverGrande_0, }, { - .mapSecId = 15, + .mapSecId = MAPSEC_EVER_GRANDE_CITY, .index = 1, .tilemap = gPokenavCityMap_EverGrande_1, }, diff --git a/src/data/region_map/region_map_entries.h b/src/data/region_map/region_map_entries.h index b2d625c84..1d503d72f 100644 --- a/src/data/region_map/region_map_entries.h +++ b/src/data/region_map/region_map_entries.h @@ -374,7 +374,7 @@ const struct RegionMapLocation gRegionMapEntries[] = { [MAPSEC_SEVII_ISLE_22] = { 0, 0, 1, 1, sMapName_SeviiIsle22}, [MAPSEC_SEVII_ISLE_23] = { 0, 0, 1, 1, sMapName_SeviiIsle23}, [MAPSEC_SEVII_ISLE_24] = { 0, 0, 1, 1, sMapName_SeviiIsle24}, - [MAPSEC_NAVEL_ROCK] = { 0, 0, 1, 1, sMapName_NavelRock}, + [MAPSEC_NAVEL_ROCK_FRLG] = { 0, 0, 1, 1, sMapName_NavelRock}, [MAPSEC_MT_EMBER] = { 0, 0, 1, 1, sMapName_MtEmber}, [MAPSEC_BERRY_FOREST] = { 0, 0, 1, 1, sMapName_BerryForest}, [MAPSEC_ICEFALL_CAVE] = { 0, 0, 1, 1, sMapName_IcefallCave}, @@ -383,11 +383,11 @@ const struct RegionMapLocation gRegionMapEntries[] = { [MAPSEC_DOTTED_HOLE] = { 0, 0, 1, 1, sMapName_DottedHole}, [MAPSEC_LOST_CAVE] = { 0, 0, 1, 1, sMapName_LostCave}, [MAPSEC_PATTERN_BUSH] = { 0, 0, 1, 1, sMapName_PatternBush}, - [MAPSEC_ALTERING_CAVE] = { 0, 0, 1, 1, sMapName_AlteringCave}, + [MAPSEC_ALTERING_CAVE_FRLG] = { 0, 0, 1, 1, sMapName_AlteringCave}, [MAPSEC_TANOBY_CHAMBERS] = { 0, 0, 1, 1, sMapName_TanobyChambers}, [MAPSEC_THREE_ISLE_PATH] = { 0, 0, 1, 1, sMapName_ThreeIslePath}, [MAPSEC_TANOBY_KEY] = { 0, 0, 1, 1, sMapName_TanobyKey}, - [MAPSEC_BIRTH_ISLAND] = { 0, 0, 1, 1, sMapName_BirthIsland}, + [MAPSEC_BIRTH_ISLAND_FRLG] = { 0, 0, 1, 1, sMapName_BirthIsland}, [MAPSEC_MONEAN_CHAMBER] = { 0, 0, 1, 1, sMapName_MoneanChamber}, [MAPSEC_LIPTOO_CHAMBER] = { 0, 0, 1, 1, sMapName_LiptooChamber}, [MAPSEC_WEEPTH_CHAMBER] = { 0, 0, 1, 1, sMapName_WeepthChamber}, @@ -400,7 +400,7 @@ const struct RegionMapLocation gRegionMapEntries[] = { [MAPSEC_AQUA_HIDEOUT] = {19, 3, 1, 1, sMapName_AquaHideout}, [MAPSEC_MAGMA_HIDEOUT] = { 6, 3, 1, 1, sMapName_MagmaHideout}, [MAPSEC_MIRAGE_TOWER] = { 8, 2, 1, 1, sMapName_MirageTower}, - [MAPSEC_BIRTH_ISLAND_2] = { 0, 0, 1, 1, sMapName_BirthIsland}, + [MAPSEC_BIRTH_ISLAND] = { 0, 0, 1, 1, sMapName_BirthIsland}, [MAPSEC_FARAWAY_ISLAND] = { 0, 0, 1, 1, sMapName_FarawayIsland}, [MAPSEC_ARTISAN_CAVE] = {22, 12, 1, 1, sMapName_ArtisanCave}, [MAPSEC_MARINE_CAVE] = { 0, 0, 1, 1, sMapName_MarineCave}, @@ -410,8 +410,8 @@ const struct RegionMapLocation gRegionMapEntries[] = { [MAPSEC_UNDERWATER_UNK1] = {24, 3, 2, 2, sMapName_Underwater}, [MAPSEC_UNDERWATER_129] = {24, 10, 2, 1, sMapName_Underwater}, [MAPSEC_DESERT_UNDERPASS] = { 2, 0, 1, 1, sMapName_DesertUnderpass}, - [MAPSEC_ALTERING_CAVE_2] = { 6, 8, 1, 1, sMapName_AlteringCave}, - [MAPSEC_NAVEL_ROCK2] = { 0, 0, 1, 1, sMapName_NavelRock}, + [MAPSEC_ALTERING_CAVE] = { 6, 8, 1, 1, sMapName_AlteringCave}, + [MAPSEC_NAVEL_ROCK] = { 0, 0, 1, 1, sMapName_NavelRock}, [MAPSEC_TRAINER_HILL] = { 8, 4, 1, 1, sMapName_TrainerHill} }; diff --git a/src/dodrio_berry_picking.c b/src/dodrio_berry_picking.c index 958922067..40074e0af 100644 --- a/src/dodrio_berry_picking.c +++ b/src/dodrio_berry_picking.c @@ -2770,22 +2770,22 @@ struct UnkPacket2 u8 id; u8 unk1_0:4; u8 unk1_1:4; - u8 unk2_0:4; - u8 unk2_1:4; - u8 unk3_0:4; - u8 unk3_1:4; - u8 unk4_0:4; - u8 unk4_1:4; - u8 unk5_0:4; - u8 unk5_1:4; - u8 unk6_0:2; - u8 unk6_1:2; - u8 unk6_2:2; - u8 unk6_3:2; - u8 unk7_0:2; - u8 unk7_1:2; - u8 unk7_2:2; - u8 unk7_3:2; + u16 unk2_0:4; + u16 unk2_1:4; + u16 unk3_0:4; + u16 unk3_1:4; + u16 unk4_0:4; + u16 unk4_1:4; + u16 unk5_0:4; + u16 unk5_1:4; + u16 unk6_0:2; + u16 unk6_1:2; + u16 unk6_2:2; + u16 unk6_3:2; + u16 unk7_0:2; + u16 unk7_1:2; + u16 unk7_2:2; + u16 unk7_3:2; u8 unk8_0:2; u8 unk8_1:2; u8 unk8_2:2; @@ -2808,7 +2808,6 @@ struct UnkPacket2 u8 unkB_6:1; }; -#ifdef NONMATCHING static void sub_8027E30(struct DodrioSubstruct_31A0 *arg0, struct DodrioSubstruct_31A0_2C *arg1, struct DodrioSubstruct_31A0_2C *arg2, struct DodrioSubstruct_31A0_2C *arg3, struct DodrioSubstruct_31A0_2C *arg4, struct DodrioSubstruct_31A0_2C *arg5, u8 arg6, u32 arg7, u32 arg8) { struct UnkPacket2 packet; @@ -2860,422 +2859,6 @@ static void sub_8027E30(struct DodrioSubstruct_31A0 *arg0, struct DodrioSubstruc packet.unkB_0 = arg8; sub_800FE50(&packet); } -#else -NAKED -static void sub_8027E30(struct DodrioSubstruct_31A0 *arg0, struct DodrioSubstruct_31A0_2C *arg1, struct DodrioSubstruct_31A0_2C *arg2, struct DodrioSubstruct_31A0_2C *arg3, struct DodrioSubstruct_31A0_2C *arg4, struct DodrioSubstruct_31A0_2C *arg5, u8 arg6, u32 arg7, u32 arg8) -{ - asm_unified(" push {r4-r7,lr}\n\ - mov r7, r10\n\ - mov r6, r9\n\ - mov r5, r8\n\ - push {r5-r7}\n\ - sub sp, 0x20\n\ - ldr r4, [sp, 0x48]\n\ - lsls r4, 24\n\ - str r4, [sp, 0x1C]\n\ - movs r4, 0x14\n\ - adds r4, r0\n\ - mov r9, r4\n\ - mov r5, sp\n\ - movs r4, 0x2\n\ - strb r4, [r5]\n\ - mov r10, sp\n\ - mov r5, r9\n\ - ldrb r4, [r5, 0xB]\n\ - movs r7, 0xF\n\ - adds r5, r7, 0\n\ - ands r5, r4\n\ - mov r6, r10\n\ - ldrb r6, [r6, 0x1]\n\ - mov r8, r6\n\ - movs r4, 0x10\n\ - negs r4, r4\n\ - mov r6, r8\n\ - ands r4, r6\n\ - orrs r4, r5\n\ - mov r5, r10\n\ - strb r4, [r5, 0x1]\n\ - mov r8, sp\n\ - mov r6, r9\n\ - ldrb r5, [r6, 0xC]\n\ - lsls r5, 4\n\ - ands r4, r7\n\ - orrs r4, r5\n\ - mov r5, r8\n\ - strb r4, [r5, 0x1]\n\ - ldrb r5, [r6, 0xD]\n\ - movs r6, 0xF\n\ - ands r5, r6\n\ - mov r4, r10\n\ - ldrb r4, [r4, 0x2]\n\ - mov r8, r4\n\ - movs r4, 0x10\n\ - negs r4, r4\n\ - mov r6, r8\n\ - ands r4, r6\n\ - orrs r4, r5\n\ - mov r5, r10\n\ - strb r4, [r5, 0x2]\n\ - mov r8, sp\n\ - mov r6, r9\n\ - ldrb r5, [r6, 0xE]\n\ - lsls r5, 4\n\ - ands r4, r7\n\ - orrs r4, r5\n\ - mov r5, r8\n\ - strb r4, [r5, 0x2]\n\ - ldrb r5, [r6, 0xF]\n\ - movs r6, 0xF\n\ - ands r5, r6\n\ - mov r4, r10\n\ - ldrb r4, [r4, 0x3]\n\ - mov r8, r4\n\ - movs r4, 0x10\n\ - negs r4, r4\n\ - mov r6, r8\n\ - ands r4, r6\n\ - orrs r4, r5\n\ - mov r5, r10\n\ - strb r4, [r5, 0x3]\n\ - mov r8, sp\n\ - mov r6, r9\n\ - ldrb r5, [r6, 0x10]\n\ - lsls r5, 4\n\ - ands r4, r7\n\ - orrs r4, r5\n\ - mov r5, r8\n\ - strb r4, [r5, 0x3]\n\ - ldrb r5, [r6, 0x11]\n\ - movs r6, 0xF\n\ - ands r5, r6\n\ - mov r4, r10\n\ - ldrb r4, [r4, 0x4]\n\ - mov r8, r4\n\ - movs r4, 0x10\n\ - negs r4, r4\n\ - mov r6, r8\n\ - ands r4, r6\n\ - orrs r4, r5\n\ - mov r5, r10\n\ - strb r4, [r5, 0x4]\n\ - mov r8, sp\n\ - mov r6, r9\n\ - ldrb r5, [r6, 0x12]\n\ - lsls r5, 4\n\ - ands r4, r7\n\ - orrs r4, r5\n\ - mov r5, r8\n\ - strb r4, [r5, 0x4]\n\ - ldrb r4, [r6, 0x13]\n\ - movs r6, 0xF\n\ - ands r4, r6\n\ - mov r6, r8\n\ - ldrb r5, [r6, 0x5]\n\ - movs r6, 0x10\n\ - negs r6, r6\n\ - ands r6, r5\n\ - orrs r6, r4\n\ - str r6, [sp, 0xC]\n\ - mov r4, r8\n\ - strb r6, [r4, 0x5]\n\ - mov r5, sp\n\ - mov r6, r9\n\ - ldrb r4, [r6, 0x14]\n\ - lsls r4, 4\n\ - ldr r6, [sp, 0xC]\n\ - ands r6, r7\n\ - orrs r6, r4\n\ - strb r6, [r5, 0x5]\n\ - mov r7, sp\n\ - movs r4, 0x3\n\ - mov r8, r4\n\ - ldrb r0, [r0, 0x14]\n\ - mov r5, r8\n\ - ands r0, r5\n\ - ldrb r5, [r7, 0x6]\n\ - movs r6, 0x4\n\ - negs r6, r6\n\ - mov r10, r6\n\ - mov r4, r10\n\ - ands r4, r5\n\ - orrs r4, r0\n\ - strb r4, [r7, 0x6]\n\ - mov r5, r9\n\ - ldrb r0, [r5, 0x1]\n\ - mov r6, r8\n\ - ands r0, r6\n\ - lsls r0, 2\n\ - movs r5, 0xD\n\ - negs r5, r5\n\ - ands r5, r4\n\ - orrs r5, r0\n\ - strb r5, [r7, 0x6]\n\ - mov r0, r9\n\ - ldrb r4, [r0, 0x2]\n\ - ands r4, r6\n\ - lsls r4, 4\n\ - movs r0, 0x31\n\ - negs r0, r0\n\ - ands r0, r5\n\ - orrs r0, r4\n\ - strb r0, [r7, 0x6]\n\ - mov r5, sp\n\ - mov r6, r9\n\ - ldrb r4, [r6, 0x3]\n\ - lsls r4, 6\n\ - movs r6, 0x3F\n\ - ands r0, r6\n\ - orrs r0, r4\n\ - strb r0, [r5, 0x6]\n\ - mov r4, r9\n\ - ldrb r0, [r4, 0x4]\n\ - mov r5, r8\n\ - ands r0, r5\n\ - ldrb r5, [r7, 0x7]\n\ - mov r4, r10\n\ - ands r4, r5\n\ - orrs r4, r0\n\ - strb r4, [r7, 0x7]\n\ - mov r6, r9\n\ - ldrb r0, [r6, 0x5]\n\ - mov r5, r8\n\ - ands r0, r5\n\ - lsls r0, 2\n\ - movs r5, 0xD\n\ - negs r5, r5\n\ - ands r5, r4\n\ - orrs r5, r0\n\ - strb r5, [r7, 0x7]\n\ - ldrb r4, [r6, 0x6]\n\ - mov r6, r8\n\ - ands r4, r6\n\ - lsls r4, 4\n\ - movs r0, 0x31\n\ - negs r0, r0\n\ - ands r0, r5\n\ - orrs r0, r4\n\ - strb r0, [r7, 0x7]\n\ - mov r5, sp\n\ - mov r6, r9\n\ - ldrb r4, [r6, 0x7]\n\ - lsls r4, 6\n\ - movs r6, 0x3F\n\ - ands r0, r6\n\ - orrs r0, r4\n\ - strb r0, [r5, 0x7]\n\ - mov r8, sp\n\ - mov r0, r9\n\ - ldrb r4, [r0, 0x8]\n\ - movs r7, 0x3\n\ - adds r0, r7, 0\n\ - ands r0, r4\n\ - mov r4, r8\n\ - ldrb r5, [r4, 0x8]\n\ - mov r4, r10\n\ - ands r4, r5\n\ - orrs r4, r0\n\ - mov r5, r8\n\ - strb r4, [r5, 0x8]\n\ - mov r6, r9\n\ - ldrb r5, [r6, 0x9]\n\ - adds r0, r7, 0\n\ - ands r0, r5\n\ - lsls r0, 2\n\ - movs r5, 0xD\n\ - negs r5, r5\n\ - ands r5, r4\n\ - orrs r5, r0\n\ - mov r0, r8\n\ - strb r5, [r0, 0x8]\n\ - ldrb r0, [r1]\n\ - adds r4, r7, 0\n\ - ands r4, r0\n\ - lsls r4, 4\n\ - movs r0, 0x31\n\ - negs r0, r0\n\ - ands r0, r5\n\ - orrs r0, r4\n\ - mov r4, r8\n\ - strb r0, [r4, 0x8]\n\ - mov r5, sp\n\ - ldrb r4, [r2]\n\ - lsls r4, 6\n\ - movs r6, 0x3F\n\ - ands r0, r6\n\ - orrs r0, r4\n\ - strb r0, [r5, 0x8]\n\ - ldrb r4, [r3]\n\ - adds r0, r7, 0\n\ - ands r0, r4\n\ - ldrb r4, [r5, 0x9]\n\ - mov r6, r10\n\ - ands r6, r4\n\ - orrs r6, r0\n\ - mov r10, r6\n\ - strb r6, [r5, 0x9]\n\ - ldr r0, [sp, 0x40]\n\ - ldrb r4, [r0]\n\ - adds r0, r7, 0\n\ - ands r0, r4\n\ - lsls r0, 2\n\ - movs r4, 0xD\n\ - negs r4, r4\n\ - ands r6, r4\n\ - orrs r6, r0\n\ - str r6, [sp, 0x10]\n\ - strb r6, [r5, 0x9]\n\ - mov r4, sp\n\ - ldr r5, [sp, 0x44]\n\ - ldrb r0, [r5]\n\ - adds r6, r7, 0\n\ - ands r6, r0\n\ - lsls r0, r6, 4\n\ - subs r7, 0x34\n\ - ldr r5, [sp, 0x10]\n\ - ands r7, r5\n\ - orrs r7, r0\n\ - strb r7, [r4, 0x9]\n\ - mov r5, sp\n\ - ldrb r0, [r1, 0x4]\n\ - movs r6, 0x1\n\ - mov r12, r6\n\ - mov r4, r12\n\ - ands r4, r0\n\ - lsls r4, 6\n\ - movs r0, 0x41\n\ - negs r0, r0\n\ - mov r10, r0\n\ - ands r0, r7\n\ - orrs r0, r4\n\ - strb r0, [r5, 0x9]\n\ - ldrb r4, [r2, 0x4]\n\ - lsls r4, 7\n\ - movs r5, 0x7F\n\ - ands r0, r5\n\ - orrs r0, r4\n\ - mov r4, r8\n\ - strb r0, [r4, 0x9]\n\ - ldrb r4, [r3, 0x4]\n\ - mov r0, r12\n\ - ands r0, r4\n\ - mov r5, r8\n\ - ldrb r4, [r5, 0xA]\n\ - movs r7, 0x2\n\ - negs r7, r7\n\ - adds r5, r7, 0\n\ - ands r5, r4\n\ - orrs r5, r0\n\ - mov r6, r8\n\ - strb r5, [r6, 0xA]\n\ - mov r9, sp\n\ - ldr r4, [sp, 0x40]\n\ - ldrb r0, [r4, 0x4]\n\ - mov r4, r12\n\ - ands r4, r0\n\ - lsls r4, 1\n\ - movs r6, 0x3\n\ - negs r6, r6\n\ - mov r8, r6\n\ - mov r0, r8\n\ - ands r0, r5\n\ - orrs r0, r4\n\ - mov r4, r9\n\ - strb r0, [r4, 0xA]\n\ - ldr r6, [sp, 0x44]\n\ - ldrb r5, [r6, 0x4]\n\ - mov r4, r12\n\ - ands r4, r5\n\ - lsls r4, 2\n\ - movs r5, 0x5\n\ - negs r5, r5\n\ - ands r0, r5\n\ - orrs r0, r4\n\ - mov r4, r9\n\ - strb r0, [r4, 0xA]\n\ - mov r4, sp\n\ - ldrb r1, [r1, 0x8]\n\ - mov r0, r12\n\ - ands r0, r1\n\ - lsls r0, 2\n\ - ldrb r1, [r4, 0xB]\n\ - ands r5, r1\n\ - orrs r5, r0\n\ - strb r5, [r4, 0xB]\n\ - ldrb r1, [r2, 0x8]\n\ - mov r0, r12\n\ - ands r0, r1\n\ - lsls r0, 3\n\ - movs r1, 0x9\n\ - negs r1, r1\n\ - ands r1, r5\n\ - orrs r1, r0\n\ - strb r1, [r4, 0xB]\n\ - ldrb r2, [r3, 0x8]\n\ - mov r0, r12\n\ - ands r0, r2\n\ - lsls r0, 4\n\ - movs r2, 0x11\n\ - negs r2, r2\n\ - ands r2, r1\n\ - orrs r2, r0\n\ - strb r2, [r4, 0xB]\n\ - mov r3, sp\n\ - ldr r5, [sp, 0x40]\n\ - ldrb r0, [r5, 0x8]\n\ - mov r1, r12\n\ - ands r1, r0\n\ - lsls r1, 5\n\ - movs r0, 0x21\n\ - negs r0, r0\n\ - ands r0, r2\n\ - orrs r0, r1\n\ - strb r0, [r3, 0xB]\n\ - mov r2, sp\n\ - ldrb r1, [r6, 0x8]\n\ - mov r6, r12\n\ - ands r6, r1\n\ - lsls r1, r6, 6\n\ - mov r3, r10\n\ - ands r0, r3\n\ - orrs r0, r1\n\ - strb r0, [r2, 0xB]\n\ - ldr r4, [sp, 0x1C]\n\ - lsrs r3, r4, 21\n\ - ldrb r1, [r2, 0xA]\n\ - movs r0, 0x7\n\ - ands r0, r1\n\ - orrs r0, r3\n\ - strb r0, [r2, 0xA]\n\ - mov r1, sp\n\ - ldr r5, [sp, 0x4C]\n\ - movs r6, 0x1\n\ - ands r5, r6\n\ - lsls r2, r5, 1\n\ - ldrb r0, [r1, 0xB]\n\ - mov r3, r8\n\ - ands r3, r0\n\ - orrs r3, r2\n\ - mov r8, r3\n\ - strb r3, [r1, 0xB]\n\ - mov r0, sp\n\ - ldr r4, [sp, 0x50]\n\ - ands r4, r6\n\ - mov r5, r8\n\ - ands r5, r7\n\ - orrs r5, r4\n\ - strb r5, [r0, 0xB]\n\ - bl sub_800FE50\n\ - add sp, 0x20\n\ - pop {r3-r5}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - mov r10, r5\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ -"); -} -#endif static u32 sub_8028164(u32 unused, struct DodrioSubstruct_31A0 *arg0, struct DodrioSubstruct_31A0_2C *arg1, struct DodrioSubstruct_31A0_2C *arg2, struct DodrioSubstruct_31A0_2C *arg3, struct DodrioSubstruct_31A0_2C *arg4, struct DodrioSubstruct_31A0_2C *arg5, u8 *arg6, u32 *arg7, u32 *arg8) { diff --git a/src/field_effect.c b/src/field_effect.c index 7195f3f4a..c4e9fc40a 100644 --- a/src/field_effect.c +++ b/src/field_effect.c @@ -932,177 +932,47 @@ void FreeResourcesAndDestroySprite(struct Sprite *sprite, u8 spriteId) FreeAndDestroyMonPicSprite(spriteId); } -#ifdef NONMATCHING +// r, g, b are between 0 and 16 void MultiplyInvertedPaletteRGBComponents(u16 i, u8 r, u8 g, u8 b) { int curRed; int curGreen; int curBlue; + u16 outPal; - curRed = gPlttBufferUnfaded[i] & 0x1f; - curGreen = (gPlttBufferUnfaded[i] & (0x1f << 5)) >> 5; - curBlue = (gPlttBufferUnfaded[i] & (0x1f << 10)) >> 10; + outPal = gPlttBufferUnfaded[i]; + curRed = outPal & 0x1f; + curGreen = (outPal & (0x1f << 5)) >> 5; + curBlue = (outPal & (0x1f << 10)) >> 10; curRed += (((0x1f - curRed) * r) >> 4); curGreen += (((0x1f - curGreen) * g) >> 4); curBlue += (((0x1f - curBlue) * b) >> 4); - gPlttBufferFaded[i] = RGB(curRed, curGreen, curBlue); + outPal = curRed; + outPal |= curGreen << 5; + outPal |= curBlue << 10; + gPlttBufferFaded[i] = outPal; } +// r, g, b are between 0 and 16 void MultiplyPaletteRGBComponents(u16 i, u8 r, u8 g, u8 b) { int curRed; int curGreen; int curBlue; + u16 outPal; - curRed = gPlttBufferUnfaded[i] & 0x1f; - curGreen = (gPlttBufferUnfaded[i] & (0x1f << 5)) >> 5; - curBlue = (gPlttBufferUnfaded[i] & (0x1f << 10)) >> 10; + outPal = gPlttBufferUnfaded[i]; + curRed = outPal & 0x1f; + curGreen = (outPal & (0x1f << 5)) >> 5; + curBlue = (outPal & (0x1f << 10)) >> 10; curRed -= ((curRed * r) >> 4); curGreen -= ((curGreen * g) >> 4); curBlue -= ((curBlue * b) >> 4); - gPlttBufferFaded[i] = RGB(curRed, curGreen, curBlue); + outPal = curRed; + outPal |= curGreen << 5; + outPal |= curBlue << 10; + gPlttBufferFaded[i] = outPal; } -#else -NAKED -void MultiplyInvertedPaletteRGBComponents(u16 i, u8 r, u8 g, u8 b) -{ - asm(".syntax unified\n" - "\tpush {r4-r7,lr}\n" - "\tmov r7, r9\n" - "\tmov r6, r8\n" - "\tpush {r6,r7}\n" - "\tlsls r0, 16\n" - "\tlsls r1, 24\n" - "\tlsrs r1, 24\n" - "\tlsls r2, 24\n" - "\tlsrs r2, 24\n" - "\tlsls r3, 24\n" - "\tlsrs r3, 24\n" - "\tldr r4, _08085D00 @ =gPlttBufferUnfaded\n" - "\tlsrs r0, 15\n" - "\tadds r4, r0, r4\n" - "\tldrh r4, [r4]\n" - "\tmovs r5, 0x1F\n" - "\tmov r9, r5\n" - "\tmov r8, r4\n" - "\tmov r6, r8\n" - "\tands r6, r5\n" - "\tmov r8, r6\n" - "\tmovs r6, 0xF8\n" - "\tlsls r6, 2\n" - "\tands r6, r4\n" - "\tlsrs r6, 5\n" - "\tmovs r5, 0xF8\n" - "\tlsls r5, 7\n" - "\tands r4, r5\n" - "\tlsrs r4, 10\n" - "\tmov r7, r9\n" - "\tmov r5, r8\n" - "\tsubs r7, r5\n" - "\tmov r12, r7\n" - "\tmov r7, r12\n" - "\tmuls r7, r1\n" - "\tadds r1, r7, 0\n" - "\tasrs r1, 4\n" - "\tadd r8, r1\n" - "\tmov r5, r9\n" - "\tsubs r1, r5, r6\n" - "\tmuls r1, r2\n" - "\tasrs r1, 4\n" - "\tadds r6, r1\n" - "\tsubs r5, r4\n" - "\tmov r9, r5\n" - "\tmov r1, r9\n" - "\tmuls r1, r3\n" - "\tasrs r1, 4\n" - "\tadds r4, r1\n" - "\tmov r7, r8\n" - "\tlsls r7, 16\n" - "\tlsls r6, 21\n" - "\torrs r6, r7\n" - "\tlsls r4, 26\n" - "\torrs r4, r6\n" - "\tlsrs r4, 16\n" - "\tldr r1, _08085D04 @ =gPlttBufferFaded\n" - "\tadds r0, r1\n" - "\tstrh r4, [r0]\n" - "\tpop {r3,r4}\n" - "\tmov r8, r3\n" - "\tmov r9, r4\n" - "\tpop {r4-r7}\n" - "\tpop {r0}\n" - "\tbx r0\n" - "\t.align 2, 0\n" - "_08085D00: .4byte gPlttBufferUnfaded\n" - "_08085D04: .4byte gPlttBufferFaded\n" - ".syntax divided"); -} - -NAKED -void MultiplyPaletteRGBComponents(u16 i, u8 r, u8 g, u8 b) -{ - asm(".syntax unified\n" - "\tpush {r4-r6,lr}\n" - "\tmov r6, r8\n" - "\tpush {r6}\n" - "\tlsls r0, 16\n" - "\tlsls r1, 24\n" - "\tlsrs r1, 24\n" - "\tlsls r2, 24\n" - "\tlsrs r2, 24\n" - "\tlsls r3, 24\n" - "\tlsrs r3, 24\n" - "\tldr r4, _08085D78 @ =gPlttBufferUnfaded\n" - "\tlsrs r0, 15\n" - "\tadds r4, r0, r4\n" - "\tldrh r4, [r4]\n" - "\tmovs r5, 0x1F\n" - "\tmov r8, r5\n" - "\tmov r6, r8\n" - "\tands r6, r4\n" - "\tmov r8, r6\n" - "\tmovs r5, 0xF8\n" - "\tlsls r5, 2\n" - "\tands r5, r4\n" - "\tlsrs r5, 5\n" - "\tmovs r6, 0xF8\n" - "\tlsls r6, 7\n" - "\tands r4, r6\n" - "\tlsrs r4, 10\n" - "\tmov r6, r8\n" - "\tmuls r6, r1\n" - "\tadds r1, r6, 0\n" - "\tasrs r1, 4\n" - "\tmov r6, r8\n" - "\tsubs r6, r1\n" - "\tadds r1, r5, 0\n" - "\tmuls r1, r2\n" - "\tasrs r1, 4\n" - "\tsubs r5, r1\n" - "\tadds r1, r4, 0\n" - "\tmuls r1, r3\n" - "\tasrs r1, 4\n" - "\tsubs r4, r1\n" - "\tlsls r6, 16\n" - "\tlsls r5, 21\n" - "\torrs r5, r6\n" - "\tlsls r4, 26\n" - "\torrs r4, r5\n" - "\tlsrs r4, 16\n" - "\tldr r1, _08085D7C @ =gPlttBufferFaded\n" - "\tadds r0, r1\n" - "\tstrh r4, [r0]\n" - "\tpop {r3}\n" - "\tmov r8, r3\n" - "\tpop {r4-r6}\n" - "\tpop {r0}\n" - "\tbx r0\n" - "\t.align 2, 0\n" - "_08085D78: .4byte gPlttBufferUnfaded\n" - "_08085D7C: .4byte gPlttBufferFaded\n" - ".syntax divided"); -} -#endif bool8 FldEff_PokecenterHeal(void) { diff --git a/src/field_region_map.c b/src/field_region_map.c index 184c49b40..57f95f93e 100644 --- a/src/field_region_map.c +++ b/src/field_region_map.c @@ -13,13 +13,23 @@ #include "window.h" #include "constants/rgb.h" +/* + * This is the type of map shown when interacting with the metatiles for + * a wall-mounted Region Map (on the wall of the Pokemon Centers near the PC) + * It does not zoom, and pressing A or B closes the map + * + * For the region map in the pokenav, see pokenav_region_map.c + * For the region map in the pokedex, see pokdex_area_screen.c/pokedex_area_region_map.c + * For the fly map, and utility functions all of the maps use, see region_map.c + */ + // Static type declarations // Static RAM declarations static EWRAM_DATA struct { MainCallback callback; - u32 filler_004; + u32 unused; struct RegionMap regionMap; u16 state; } *sFieldRegionMapHandler = NULL; @@ -34,7 +44,7 @@ static void PrintRegionMapSecName(void); // .rodata -static const struct BgTemplate gUnknown_085E5068[] = { +static const struct BgTemplate sFieldRegionMapBgTemplates[] = { { .bg = 0, .charBaseIndex = 0, @@ -54,7 +64,7 @@ static const struct BgTemplate gUnknown_085E5068[] = { } }; -static const struct WindowTemplate gUnknown_085E5070[] = +static const struct WindowTemplate sFieldRegionMapWindowTemplates[] = { { .bg = 0, @@ -102,8 +112,8 @@ static void MCB2_InitRegionMapRegisters(void) ResetSpriteData(); FreeAllSpritePalettes(); ResetBgsAndClearDma3BusyFlags(0); - InitBgsFromTemplates(1, gUnknown_085E5068, 2); - InitWindows(gUnknown_085E5070); + InitBgsFromTemplates(1, sFieldRegionMapBgTemplates, ARRAY_COUNT(sFieldRegionMapBgTemplates)); + InitWindows(sFieldRegionMapWindowTemplates); DeactivateAllTextPrinters(); LoadUserWindowBorderGfx(0, 0x27, 0xd0); clear_scheduled_bg_copies_to_vram(); @@ -134,7 +144,7 @@ static void FieldUpdateRegionMap(void) switch (sFieldRegionMapHandler->state) { case 0: - InitRegionMap(&sFieldRegionMapHandler->regionMap, 0); + InitRegionMap(&sFieldRegionMapHandler->regionMap, FALSE); CreateRegionMapPlayerIcon(0, 0); CreateRegionMapCursor(1, 1); sFieldRegionMapHandler->state++; @@ -162,13 +172,13 @@ static void FieldUpdateRegionMap(void) } break; case 4: - switch (sub_81230AC()) + switch (DoRegionMapInputCallback()) { - case INPUT_EVENT_MOVE_END: + case MAP_INPUT_MOVE_END: PrintRegionMapSecName(); break; - case INPUT_EVENT_A_BUTTON: - case INPUT_EVENT_B_BUTTON: + case MAP_INPUT_A_BUTTON: + case MAP_INPUT_B_BUTTON: sFieldRegionMapHandler->state++; break; } @@ -184,8 +194,7 @@ static void FieldUpdateRegionMap(void) SetMainCallback2(sFieldRegionMapHandler->callback); if (sFieldRegionMapHandler != NULL) { - free(sFieldRegionMapHandler); - sFieldRegionMapHandler = NULL; + FREE_AND_SET_NULL(sFieldRegionMapHandler); } FreeAllWindowBuffers(); } @@ -195,7 +204,7 @@ static void FieldUpdateRegionMap(void) static void PrintRegionMapSecName(void) { - if (sFieldRegionMapHandler->regionMap.iconDrawType != MAPSECTYPE_NONE) + if (sFieldRegionMapHandler->regionMap.mapSecType != MAPSECTYPE_NONE) { FillWindowPixelBuffer(0, PIXEL_FILL(1)); AddTextPrinterParameterized(0, 1, sFieldRegionMapHandler->regionMap.mapSecName, 0, 1, 0, NULL); diff --git a/src/field_specials.c b/src/field_specials.c index 8699bce78..9f1f12a47 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -3550,21 +3550,21 @@ void CreateAbnormalWeatherEvent(void) if (FlagGet(FLAG_DEFEATED_KYOGRE) == TRUE) { - VarSet(VAR_ABNORMAL_WEATHER_LOCATION, (randomValue % ABNORMAL_WEATHER_COUNT_PER_LEGENDARY) + ABNORMAL_WEATHER_GROUDON_LOCATIONS_START); + VarSet(VAR_ABNORMAL_WEATHER_LOCATION, (randomValue % TERRA_CAVE_LOCATIONS) + TERRA_CAVE_LOCATIONS_START); } else if (FlagGet(FLAG_DEFEATED_GROUDON) == TRUE) { - VarSet(VAR_ABNORMAL_WEATHER_LOCATION, (randomValue % ABNORMAL_WEATHER_COUNT_PER_LEGENDARY) + ABNORMAL_WEATHER_KYOGRE_LOCATIONS_START); + VarSet(VAR_ABNORMAL_WEATHER_LOCATION, (randomValue % MARINE_CAVE_LOCATIONS) + MARINE_CAVE_LOCATIONS_START); } else if ((randomValue & 1) == 0) { randomValue = Random(); - VarSet(VAR_ABNORMAL_WEATHER_LOCATION, (randomValue % ABNORMAL_WEATHER_COUNT_PER_LEGENDARY) + ABNORMAL_WEATHER_GROUDON_LOCATIONS_START); + VarSet(VAR_ABNORMAL_WEATHER_LOCATION, (randomValue % TERRA_CAVE_LOCATIONS) + TERRA_CAVE_LOCATIONS_START); } else { randomValue = Random(); - VarSet(VAR_ABNORMAL_WEATHER_LOCATION, (randomValue % ABNORMAL_WEATHER_COUNT_PER_LEGENDARY) + ABNORMAL_WEATHER_KYOGRE_LOCATIONS_START); + VarSet(VAR_ABNORMAL_WEATHER_LOCATION, (randomValue % MARINE_CAVE_LOCATIONS) + MARINE_CAVE_LOCATIONS_START); } } @@ -3595,14 +3595,10 @@ bool32 GetAbnormalWeatherMapNameAndType(void) GetMapName(gStringVar1, sAbnormalWeatherMapNumbers[abnormalWeather - 1], 0); - if (abnormalWeather < ABNORMAL_WEATHER_KYOGRE_LOCATIONS_START) - { + if (abnormalWeather < MARINE_CAVE_LOCATIONS_START) return FALSE; - } else - { return TRUE; - } } bool8 AbnormalWeatherHasExpired(void) diff --git a/src/field_weather_effect.c b/src/field_weather_effect.c index 5a48f3434..26a7adf27 100644 --- a/src/field_weather_effect.c +++ b/src/field_weather_effect.c @@ -559,8 +559,7 @@ static void StartRainSpriteFall(struct Sprite *sprite) if (sprite->tRandom == 0) sprite->tRandom = 361; - // Standard RNG sequence. - rand = sprite->tRandom * 1103515245 + 12345; + rand = ISO_RANDOMIZE2(sprite->tRandom); sprite->tRandom = ((rand & 0x7FFF0000) >> 16) % 600; numFallingFrames = sRainSpriteFallingDurations[gWeatherPtr->isDownpour][0]; diff --git a/src/graphics.c b/src/graphics.c index e1e7a444c..eaa4bb470 100644 --- a/src/graphics.c +++ b/src/graphics.c @@ -4,10 +4,10 @@ const u32 gBattleTextboxTiles[] = INCBIN_U32("graphics/battle_interface/textbox. const u32 gBattleTextboxPalette[] = INCBIN_U32("graphics/battle_interface/textbox.gbapal.lz"); const u32 gBattleTextboxTilemap[] = INCBIN_U32("graphics/battle_interface/textbox_map.bin.lz"); -const u32 gMonStillFrontPic_CircledQuestionMark[] = INCBIN_U32("graphics/pokemon/circled_question_mark/front.4bpp.lz"); -const u32 gMonBackPic_CircledQuestionMark[] = INCBIN_U32("graphics/pokemon/circled_question_mark/back.4bpp.lz"); -const u32 gMonPalette_CircledQuestionMark[] = INCBIN_U32("graphics/pokemon/circled_question_mark/normal.gbapal.lz"); -const u32 gMonShinyPalette_CircledQuestionMark[] = INCBIN_U32("graphics/pokemon/circled_question_mark/shiny.gbapal.lz"); +const u32 gMonStillFrontPic_CircledQuestionMark[] = INCBIN_U32("graphics/pokemon/question_mark/circled/front.4bpp.lz"); +const u32 gMonBackPic_CircledQuestionMark[] = INCBIN_U32("graphics/pokemon/question_mark/circled/back.4bpp.lz"); +const u32 gMonPalette_CircledQuestionMark[] = INCBIN_U32("graphics/pokemon/question_mark/circled/normal.gbapal.lz"); +const u32 gMonShinyPalette_CircledQuestionMark[] = INCBIN_U32("graphics/pokemon/question_mark/circled/shiny.gbapal.lz"); const u32 gUnusedGfx_OldCharmap[] = INCBIN_U32("graphics/unused/old_charmap.4bpp.lz"); // japanese table and bunch of stuff const u32 gUnusedTimemap_OldCharmap[] = INCBIN_U32("graphics/unused/old_charmap.bin.lz"); @@ -732,9 +732,9 @@ const u32 gBattleAnimSpritePal_PinkHeart[] = INCBIN_U32("graphics/battle_anims/s const u32 gBattleAnimSpritePal_MagentaHeart[] = INCBIN_U32("graphics/battle_anims/sprites/magenta_heart.gbapal.lz"); const u32 gBattleAnimSpritePal_RedHeart[] = INCBIN_U32("graphics/battle_anims/sprites/red_heart.gbapal.lz"); -const u32 gUnknown_08C232E0[] = INCBIN_U32("graphics/battle_anims/backgrounds/attract.4bpp.lz"); -const u32 gUnknown_08C23D50[] = INCBIN_U32("graphics/battle_anims/backgrounds/attract.gbapal.lz"); -const u32 gUnknown_08C23D78[] = INCBIN_U32("graphics/battle_anims/backgrounds/attract.bin.lz"); +const u32 gBattleAnimBgImage_Attract[] = INCBIN_U32("graphics/battle_anims/backgrounds/attract.4bpp.lz"); +const u32 gBattleAnimBgPalette_Attract[] = INCBIN_U32("graphics/battle_anims/backgrounds/attract.gbapal.lz"); +const u32 gBattleAnimBgTilemap_Attract[] = INCBIN_U32("graphics/battle_anims/backgrounds/attract.bin.lz"); const u32 gBattleAnimSpriteGfx_RedOrb[] = INCBIN_U32("graphics/battle_anims/sprites/red_orb.4bpp.lz"); const u32 gBattleAnimSpritePal_RedOrb[] = INCBIN_U32("graphics/battle_anims/sprites/red_orb.gbapal.lz"); @@ -750,8 +750,8 @@ const u32 gBattleAnimSpriteGfx_Finger2[] = INCBIN_U32("graphics/battle_anims/spr const u32 gBattleAnimSpriteGfx_MovementWaves[] = INCBIN_U32("graphics/battle_anims/sprites/movement_waves.4bpp.lz"); const u32 gBattleAnimSpritePal_MovementWaves[] = INCBIN_U32("graphics/battle_anims/sprites/movement_waves.gbapal.lz"); -const u32 gUnknown_08C249D0[] = INCBIN_U32("graphics/battle_anims/backgrounds/scary_face.gbapal.lz"); -const u32 gUnknown_08C249F8[] = INCBIN_U32("graphics/battle_anims/backgrounds/scary_face.4bpp.lz"); +const u32 gBattleAnimBgPalette_ScaryFace[] = INCBIN_U32("graphics/battle_anims/backgrounds/scary_face.gbapal.lz"); +const u32 gBattleAnimBgImage_ScaryFace[] = INCBIN_U32("graphics/battle_anims/backgrounds/scary_face.4bpp.lz"); const u32 gBattleAnimSpritePal_EyeSparkle[] = INCBIN_U32("graphics/battle_anims/sprites/eye_sparkle.gbapal.lz"); const u32 gBattleAnimSpriteGfx_EyeSparkle[] = INCBIN_U32("graphics/battle_anims/sprites/eye_sparkle.4bpp.lz"); @@ -844,9 +844,9 @@ const u32 gBattleAnimBgPalette_Bug[] = INCBIN_U32("graphics/battle_anims/backgro const u32 gBattleAnimBgImage_Highspeed[] = INCBIN_U32("graphics/battle_anims/backgrounds/highspeed.4bpp.lz"); const u32 gBattleAnimBgTilemap_HighspeedPlayer[] = INCBIN_U32("graphics/battle_anims/backgrounds/highspeed_player.bin.lz"); -const u32 gUnknown_08C2A634[] = INCBIN_U32("graphics/battle_anims/masks/morning_sun.4bpp.lz"); -const u32 gUnknown_08C2A6D4[] = INCBIN_U32("graphics/battle_anims/masks/morning_sun.gbapal.lz"); -const u32 gUnknown_08C2A6EC[] = INCBIN_U32("graphics/battle_anims/masks/morning_sun.bin.lz"); +const u32 gBattleAnimMaskImage_LightBeam[] = INCBIN_U32("graphics/battle_anims/masks/light_beam.4bpp.lz"); +const u32 gBattleAnimMaskPalette_LightBeam[] = INCBIN_U32("graphics/battle_anims/masks/light_beam.gbapal.lz"); +const u32 gBattleAnimMaskTilemap_LightBeam[] = INCBIN_U32("graphics/battle_anims/masks/light_beam.bin.lz"); const u32 gBattleAnimBgTilemap_GuillotineOpponent[] = INCBIN_U32("graphics/battle_anims/backgrounds/guillotine_opponent.bin.lz"); const u32 gBattleAnimBgTilemap_GuillotinePlayer[] = INCBIN_U32("graphics/battle_anims/backgrounds/guillotine_player.bin.lz"); @@ -1001,8 +1001,8 @@ const u32 gUnknown_08D85A1C[] = INCBIN_U32("graphics/battle_frontier/battle_tile const u32 gBattleAnimSpriteGfx_FlyingDirt[] = INCBIN_U32("graphics/battle_anims/sprites/flying_dirt.4bpp.lz"); -const u32 gUnknown_08D8D410[] = INCBIN_U32("graphics/battle_anims/backgrounds/sandstorm_brew.bin.lz"); -const u32 gUnknown_08D8D58C[] = INCBIN_U32("graphics/battle_anims/backgrounds/sandstorm_brew.4bpp.lz"); +const u32 gBattleAnimBgTilemap_Sandstorm[] = INCBIN_U32("graphics/battle_anims/backgrounds/sandstorm_brew.bin.lz"); +const u32 gBattleAnimBgImage_Sandstorm[] = INCBIN_U32("graphics/battle_anims/backgrounds/sandstorm_brew.4bpp.lz"); const u32 gBattleAnimSpritePal_FlyingDirt[] = INCBIN_U32("graphics/battle_anims/sprites/flying_dirt.gbapal.lz"); @@ -1121,11 +1121,9 @@ const u32 gBattleAnimSpritePal_CrossImpact[] = INCBIN_U32("graphics/battle_anims const u32 gBattleAnimBgImage_Surf[] = INCBIN_U32("graphics/battle_anims/backgrounds/water.4bpp.lz"); const u32 gBattleAnimBgPalette_Surf[] = INCBIN_U32("graphics/battle_anims/backgrounds/water.gbapal.lz"); -const u32 gUnknown_08D95E00[] = INCBIN_U32("graphics/unknown/unknown_D95E00.bin.lz"); - -const u32 gUnknown_08D960D0[] = INCBIN_U32("graphics/unknown/unknown_D960D0.bin.lz"); - -const u32 gUnknown_08D963A4[] = INCBIN_U32("graphics/unknown/unknown_D963A4.bin.lz"); +const u32 gBattleAnimBgTilemap_SurfOpponent[] = INCBIN_U32("graphics/battle_anims/backgrounds/water_opponent.bin.lz"); +const u32 gBattleAnimBgTilemap_SurfPlayer[] = INCBIN_U32("graphics/battle_anims/backgrounds/water_player.bin.lz"); +const u32 gBattleAnimBgTilemap_SurfContest[] = INCBIN_U32("graphics/battle_anims/backgrounds/water_contest.bin.lz"); const u32 gBattleAnimSpritePal_Slash2[] = INCBIN_U32("graphics/battle_anims/sprites/slash_2.gbapal.lz"); @@ -1355,8 +1353,8 @@ const u16 gPokenavMessageBox_Pal[] = INCBIN_U16("graphics/pokenav/message.gbapal const u32 gPokenavMessageBox_Gfx[] = INCBIN_U32("graphics/pokenav/message.4bpp.lz"); const u32 gPokenavMessageBox_Tilemap[] = INCBIN_U32("graphics/pokenav/message.bin.lz"); -const u16 gHoennMapZoomIcons_Pal[] = INCBIN_U16("graphics/pokenav/zoom_tiles.gbapal"); -const u32 gHoennMapZoomIcons_Gfx[] = INCBIN_U32("graphics/pokenav/zoom.4bpp.lz"); +const u16 gRegionMapCityZoomTiles_Pal[] = INCBIN_U16("graphics/pokenav/city_zoom_tiles.gbapal"); +const u32 gRegionMapCityZoomText_Gfx[] = INCBIN_U32("graphics/pokenav/city_zoom_text.4bpp.lz"); const u16 gPokenavConditionCancel_Pal[] = INCBIN_U16("graphics/pokenav/cancel.gbapal"); const u8 gPokenavConditionCancel_Gfx[] = INCBIN_U8("graphics/pokenav/cancel.4bpp"); diff --git a/src/intro.c b/src/intro.c index 7c2303dcc..72aefd737 100644 --- a/src/intro.c +++ b/src/intro.c @@ -90,7 +90,7 @@ extern const struct CompressedSpriteSheet gBattleAnimPicTable[]; extern const struct CompressedSpritePalette gBattleAnimPaletteTable[]; -extern const struct SpriteTemplate gUnknown_08596C10[]; +extern const struct SpriteTemplate gAncientPowerRockSpriteTemplate[]; //ewram EWRAM_DATA u16 gIntroCharacterGender = 0; @@ -1782,7 +1782,7 @@ static void CreateGroudonRockSprites(u8 a0) for (i = 0; i < 6; i++) { - spriteId = CreateSprite(gUnknown_08596C10, gIntroGroudonRockData[i][0], 0xA0, i); + spriteId = CreateSprite(gAncientPowerRockSpriteTemplate, gIntroGroudonRockData[i][0], 0xA0, i); gSprites[spriteId].callback = SpriteCB_IntroGroudonRocks; gSprites[spriteId].oam.priority = 0; gSprites[spriteId].data[1] = i; diff --git a/src/item_menu.c b/src/item_menu.c index 9621ff1a3..fe381516c 100755 --- a/src/item_menu.c +++ b/src/item_menu.c @@ -107,13 +107,13 @@ void Task_ActuallyToss(u8); void ItemMenu_Cancel(u8); void sub_81AD350(u8); void BagMenu_PrintItemCantBeHeld(u8); -void bag_menu_AddMoney_window(void); -void sub_81AD680(u8); +void DisplayCurrentMoneyWindow(void); +void DisplaySellItemPriceAndConfirm(u8); void sub_81AD730(u8); void sub_81AD6E4(u8); void bag_menu_remove_money_window(void); void bag_menu_RemoveBagItem_message_window(u8); -void sub_81AD794(u8); +void Task_BuyHowManyDialogueHandleInput(u8); void sub_81AD8C8(u8); void sub_81AD9C0(u8); void sub_81ADB14(u8); @@ -257,7 +257,7 @@ const struct YesNoFuncTable sYesNoSellItemFunctions = {BagMenu_ConfirmSell, BagM const struct ScrollArrowsTemplate gBagScrollArrowsTemplate = {SCROLL_ARROW_LEFT, 0x1C, 16, SCROLL_ARROW_RIGHT, 100, 16, -1, -1, 0x6F, 0x6F, 0}; -const u8 gUnknown_086140A4[] = INCBIN_U8("graphics/interface/select_button.4bpp"); +const u8 gRegisteredSelect_Gfx[] = INCBIN_U8("graphics/interface/select_button.4bpp"); static const u8 sFontColorTable[][3] = { // bgColor, textColor, shadowColor @@ -556,6 +556,8 @@ void vblank_cb_bag_menu(void) TransferPlttBuffer(); } +#define tItemCount data[8] + void CB2_Bag(void) { while(sub_81221EC() != TRUE && SetupBagMenu() != TRUE && sub_81221AC() != TRUE) {}; @@ -636,7 +638,7 @@ bool8 SetupBagMenu(void) taskId = sub_81AB1F0(gBagPositionStruct.location); gTasks[taskId].data[0] = ListMenuInit(&gMultiuseListMenuTemplate, gBagPositionStruct.scrollPosition[gBagPositionStruct.pocket], gBagPositionStruct.cursorPosition[gBagPositionStruct.pocket]); gTasks[taskId].data[3] = 0; - gTasks[taskId].data[8] = 0; + gTasks[taskId].tItemCount = 0; gMain.state++; break; case 15: @@ -867,7 +869,7 @@ void PrintItemQuantityPlusGFX(u8 rboxId, s32 item_index_in_pocket, u8 a) else { if (gSaveBlock1Ptr->registeredItem && gSaveBlock1Ptr->registeredItem == itemId) - BlitBitmapToWindow(rboxId, gUnknown_086140A4, 0x60, a - 1, 0x18, 16); + BlitBitmapToWindow(rboxId, gRegisteredSelect_Gfx, 0x60, a - 1, 0x18, 16); } } } @@ -1662,7 +1664,7 @@ void ItemMenu_Toss(u8 taskId) s16* data = gTasks[taskId].data; BagMenu_RemoveSomeWindow(); - data[8] = 1; + tItemCount = 1; if (data[2] == 1) { BagMenu_TossItems(taskId); @@ -1683,7 +1685,7 @@ void BagMenu_TossItems(u8 taskId) s16* data = gTasks[taskId].data; CopyItemName(gSpecialVar_ItemId, gStringVar1); - ConvertIntToDecimalStringN(gStringVar2, data[8], STR_CONV_MODE_LEFT_ALIGN, 3); + ConvertIntToDecimalStringN(gStringVar2, tItemCount, STR_CONV_MODE_LEFT_ALIGN, 3); StringExpandPlaceholders(gStringVar4, gText_ConfirmTossItems); FillWindowPixelBuffer(1, PIXEL_FILL(0)); BagMenu_Print(1, 1, gStringVar4, 3, 1, 0, 0, 0, 0); @@ -1703,9 +1705,9 @@ void Task_ChooseHowManyToToss(u8 taskId) { s16* data = gTasks[taskId].data; - if (AdjustQuantityAccordingToDPadInput(&data[8], data[2]) == TRUE) + if (AdjustQuantityAccordingToDPadInput(&tItemCount, data[2]) == TRUE) { - PrintItemDepositAmount(gBagMenu->unk817, data[8]); + PrintItemDepositAmount(gBagMenu->unk817, tItemCount); } else if (gMain.newKeys & A_BUTTON) { @@ -1726,7 +1728,7 @@ void BagMenu_ConfirmToss(u8 taskId) s16* data = gTasks[taskId].data; CopyItemName(gSpecialVar_ItemId, gStringVar1); - ConvertIntToDecimalStringN(gStringVar2, data[8], STR_CONV_MODE_LEFT_ALIGN, 3); + ConvertIntToDecimalStringN(gStringVar2, tItemCount, STR_CONV_MODE_LEFT_ALIGN, 3); StringExpandPlaceholders(gStringVar4, gText_ThrewAwayVar2Var1s); FillWindowPixelBuffer(1, PIXEL_FILL(0)); BagMenu_Print(1, 1, gStringVar4, 3, 1, 0, 0, 0, 0); @@ -1742,7 +1744,7 @@ void Task_ActuallyToss(u8 taskId) if (gMain.newKeys & (A_BUTTON | B_BUTTON)) { PlaySE(SE_SELECT); - RemoveBagItem(gSpecialVar_ItemId, data[8]); + RemoveBagItem(gSpecialVar_ItemId, tItemCount); DestroyListMenuTask(data[0], scrollPos, cursorPos); UpdatePocketItemList(gBagPositionStruct.pocket); SetInitialScrollAndCursorPositions(gBagPositionStruct.pocket); @@ -1924,11 +1926,11 @@ void DisplaySellItemAskString(u8 taskId) } else { - data[8] = 1; + tItemCount = 1; if (data[2] == 1) { - bag_menu_AddMoney_window(); - sub_81AD680(taskId); + DisplayCurrentMoneyWindow(); + DisplaySellItemPriceAndConfirm(taskId); } else { @@ -1939,11 +1941,11 @@ void DisplaySellItemAskString(u8 taskId) } } -void sub_81AD680(u8 taskId) +void DisplaySellItemPriceAndConfirm(u8 taskId) { s16* data = gTasks[taskId].data; - ConvertIntToDecimalStringN(gStringVar1, (ItemId_GetPrice(gSpecialVar_ItemId) / 2) * data[8], STR_CONV_MODE_LEFT_ALIGN, 6); + ConvertIntToDecimalStringN(gStringVar1, (ItemId_GetPrice(gSpecialVar_ItemId) / 2) * tItemCount, STR_CONV_MODE_LEFT_ALIGN, 6); StringExpandPlaceholders(gStringVar4, gText_ICanPayVar1); DisplayItemMessage(taskId, 1, gStringVar4, sub_81AD6E4); } @@ -1968,24 +1970,24 @@ void sub_81AD730(u8 taskId) s16* data = gTasks[taskId].data; u8 windowId = BagMenu_AddWindow(8); - PrintItemSoldAmount(windowId, 1, (ItemId_GetPrice(gSpecialVar_ItemId) / 2) * data[8]); - bag_menu_AddMoney_window(); - gTasks[taskId].func = sub_81AD794; + PrintItemSoldAmount(windowId, 1, (ItemId_GetPrice(gSpecialVar_ItemId) / 2) * tItemCount); + DisplayCurrentMoneyWindow(); + gTasks[taskId].func = Task_BuyHowManyDialogueHandleInput; } -void sub_81AD794(u8 taskId) +void Task_BuyHowManyDialogueHandleInput(u8 taskId) { s16* data = gTasks[taskId].data; - if (AdjustQuantityAccordingToDPadInput(&data[8], data[2]) == TRUE) + if (AdjustQuantityAccordingToDPadInput(&tItemCount, data[2]) == TRUE) { - PrintItemSoldAmount(gBagMenu->unk818, data[8], (ItemId_GetPrice(gSpecialVar_ItemId) / 2) * data[8]); + PrintItemSoldAmount(gBagMenu->unk818, tItemCount, (ItemId_GetPrice(gSpecialVar_ItemId) / 2) * tItemCount); } else if (gMain.newKeys & A_BUTTON) { PlaySE(SE_SELECT); BagMenu_RemoveWindow(8); - sub_81AD680(taskId); + DisplaySellItemPriceAndConfirm(taskId); } else if (gMain.newKeys & B_BUTTON) { @@ -2003,7 +2005,7 @@ void BagMenu_ConfirmSell(u8 taskId) s16* data = gTasks[taskId].data; CopyItemName(gSpecialVar_ItemId, gStringVar2); - ConvertIntToDecimalStringN(gStringVar1, (ItemId_GetPrice(gSpecialVar_ItemId) / 2) * data[8], STR_CONV_MODE_LEFT_ALIGN, 6); + ConvertIntToDecimalStringN(gStringVar1, (ItemId_GetPrice(gSpecialVar_ItemId) / 2) * tItemCount, STR_CONV_MODE_LEFT_ALIGN, 6); StringExpandPlaceholders(gStringVar4, gText_TurnedOverVar1ForVar2); DisplayItemMessage(taskId, 1, gStringVar4, sub_81AD8C8); } @@ -2015,8 +2017,8 @@ void sub_81AD8C8(u8 taskId) u16* cursorPos = &gBagPositionStruct.cursorPosition[gBagPositionStruct.pocket]; PlaySE(SE_REGI); - RemoveBagItem(gSpecialVar_ItemId, data[8]); - AddMoney(&gSaveBlock1Ptr->money, (ItemId_GetPrice(gSpecialVar_ItemId) / 2) * data[8]); + RemoveBagItem(gSpecialVar_ItemId, tItemCount); + AddMoney(&gSaveBlock1Ptr->money, (ItemId_GetPrice(gSpecialVar_ItemId) / 2) * tItemCount); DestroyListMenuTask(data[0], scrollPos, cursorPos); UpdatePocketItemList(gBagPositionStruct.pocket); SetInitialScrollAndCursorPositions(gBagPositionStruct.pocket); @@ -2041,7 +2043,7 @@ void DisplayDepositItemAskString(u8 taskId) { s16* data = gTasks[taskId].data; - data[8] = 1; + tItemCount = 1; if (data[2] == 1) { sub_81ADB14(taskId); @@ -2061,9 +2063,9 @@ void sub_81ADA7C(u8 taskId) { s16* data = gTasks[taskId].data; - if (AdjustQuantityAccordingToDPadInput(&data[8], data[2]) == TRUE) + if (AdjustQuantityAccordingToDPadInput(&tItemCount, data[2]) == TRUE) { - PrintItemDepositAmount(gBagMenu->unk817, data[8]); + PrintItemDepositAmount(gBagMenu->unk817, tItemCount); } else if (gMain.newKeys & A_BUTTON) { @@ -2091,10 +2093,10 @@ void sub_81ADB14(u8 taskId) BagMenu_Print(1, 1, gText_CantStoreImportantItems, 3, 1, 0, 0, 0, 0); gTasks[taskId].func = sub_81ADC0C; } - else if (AddPCItem(gSpecialVar_ItemId, data[8]) == TRUE) + else if (AddPCItem(gSpecialVar_ItemId, tItemCount) == TRUE) { CopyItemName(gSpecialVar_ItemId, gStringVar1); - ConvertIntToDecimalStringN(gStringVar2, data[8], STR_CONV_MODE_LEFT_ALIGN, 3); + ConvertIntToDecimalStringN(gStringVar2, tItemCount, STR_CONV_MODE_LEFT_ALIGN, 3); StringExpandPlaceholders(gStringVar4, gText_DepositedVar2Var1s); BagMenu_Print(1, 1, gStringVar4, 3, 1, 0, 0, 0, 0); gTasks[taskId].func = Task_ActuallyToss; @@ -2201,6 +2203,8 @@ void Task_WallyTutorialBagMenu(u8 taskId) } } +#undef tItemCount + void unknown_ItemMenu_Show(u8 taskId) { gSpecialVar_0x8005 = gSpecialVar_ItemId; @@ -2302,6 +2306,7 @@ void BagMenu_Print(u8 windowId, u8 fontId, const u8 *str, u8 left, u8 top, u8 le AddTextPrinterParameterized4(windowId, fontId, left, top, letterSpacing, lineSpacing, sFontColorTable[h], speed, str); } +//Unused u8 sub_81AE124(u8 a) { return gBagMenu->windowPointers[a]; @@ -2359,7 +2364,7 @@ void BagMenu_YesNo(u8 a, u8 b, const struct YesNoFuncTable *funcTable) CreateYesNoMenuWithCallbacks(a, &gUnknown_086141AC[b], 1, 0, 2, 1, 14, funcTable); } -void bag_menu_AddMoney_window(void) +void DisplayCurrentMoneyWindow(void) { u8 windowId = BagMenu_AddWindow(9); PrintMoneyAmountInMoneyBoxWithBorder(windowId, 1, 14, GetMoney(&gSaveBlock1Ptr->money)); diff --git a/src/lottery_corner.c b/src/lottery_corner.c index bb3bb7a5c..5f68ad516 100644 --- a/src/lottery_corner.c +++ b/src/lottery_corner.c @@ -35,7 +35,7 @@ void SetRandomLotteryNumber(u16 i) u32 var = Random(); while (--i != 0xFFFF) - var = var * 1103515245 + 12345; + var = ISO_RANDOMIZE2(var); SetLotteryNumber(var); } diff --git a/src/map_name_popup.c b/src/map_name_popup.c index 2010cea59..32da4d0b4 100644 --- a/src/map_name_popup.c +++ b/src/map_name_popup.c @@ -161,7 +161,7 @@ static const u8 gRegionMapSectionId_To_PopUpThemeIdMapping[] = [MAPSEC_AQUA_HIDEOUT - KANTO_MAPSEC_COUNT] = MAPPOPUP_THEME_STONE, [MAPSEC_MAGMA_HIDEOUT - KANTO_MAPSEC_COUNT] = MAPPOPUP_THEME_STONE, [MAPSEC_MIRAGE_TOWER - KANTO_MAPSEC_COUNT] = MAPPOPUP_THEME_STONE, - [MAPSEC_BIRTH_ISLAND_2 - KANTO_MAPSEC_COUNT] = MAPPOPUP_THEME_WOOD, + [MAPSEC_BIRTH_ISLAND - KANTO_MAPSEC_COUNT] = MAPPOPUP_THEME_WOOD, [MAPSEC_FARAWAY_ISLAND - KANTO_MAPSEC_COUNT] = MAPPOPUP_THEME_WOOD, [MAPSEC_ARTISAN_CAVE - KANTO_MAPSEC_COUNT] = MAPPOPUP_THEME_STONE, [MAPSEC_MARINE_CAVE - KANTO_MAPSEC_COUNT] = MAPPOPUP_THEME_STONE, @@ -171,8 +171,8 @@ static const u8 gRegionMapSectionId_To_PopUpThemeIdMapping[] = [MAPSEC_UNDERWATER_UNK1 - KANTO_MAPSEC_COUNT] = MAPPOPUP_THEME_STONE2, [MAPSEC_UNDERWATER_129 - KANTO_MAPSEC_COUNT] = MAPPOPUP_THEME_STONE2, [MAPSEC_DESERT_UNDERPASS - KANTO_MAPSEC_COUNT] = MAPPOPUP_THEME_STONE, - [MAPSEC_ALTERING_CAVE_2 - KANTO_MAPSEC_COUNT] = MAPPOPUP_THEME_STONE, - [MAPSEC_NAVEL_ROCK2 - KANTO_MAPSEC_COUNT] = MAPPOPUP_THEME_STONE, + [MAPSEC_ALTERING_CAVE - KANTO_MAPSEC_COUNT] = MAPPOPUP_THEME_STONE, + [MAPSEC_NAVEL_ROCK - KANTO_MAPSEC_COUNT] = MAPPOPUP_THEME_STONE, [MAPSEC_TRAINER_HILL - KANTO_MAPSEC_COUNT] = MAPPOPUP_THEME_MARBLE }; diff --git a/src/party_menu.c b/src/party_menu.c index 8e1a735ab..0a119f03d 100755 --- a/src/party_menu.c +++ b/src/party_menu.c @@ -3680,7 +3680,7 @@ static void CursorCb_FieldMove(u8 taskId) sPartyMenuInternal->data[0] = fieldMove; break; case FIELD_MOVE_FLY: - gPartyMenu.exitCallback = MCB2_FlyMap; + gPartyMenu.exitCallback = CB2_OpenFlyMap; Task_ClosePartyMenu(taskId); break; default: diff --git a/src/pokedex_area_region_map.c b/src/pokedex_area_region_map.c new file mode 100644 index 000000000..dfea9ea44 --- /dev/null +++ b/src/pokedex_area_region_map.c @@ -0,0 +1,66 @@ +#include "global.h" +#include "main.h" +#include "menu.h" +#include "bg.h" +#include "malloc.h" +#include "palette.h" +#include "pokedex_area_region_map.h" + +static EWRAM_DATA u8 *sPokedexAreaMapBgNum = NULL; + +static const u16 sPokedexAreaMap_Pal[] = INCBIN_U16("graphics/interface/region_map.gbapal"); +static const u32 sPokedexAreaMap_Gfx[] = INCBIN_U32("graphics/interface/region_map.8bpp.lz"); +static const u32 sPokedexAreaMap_Tilemap[] = INCBIN_U32("graphics/interface/region_map.bin.lz"); +static const u32 sPokedexAreaMapAffine_Gfx[] = INCBIN_U32("graphics/interface/region_map_affine.8bpp.lz"); +static const u32 sPokedexAreaMapAffine_Tilemap[] = INCBIN_U32("graphics/interface/region_map_affine.bin.lz"); + +void LoadPokedexAreaMapGfx(const struct PokedexAreaMapTemplate *template) +{ + u8 mode; + sPokedexAreaMapBgNum = Alloc(4); + mode = template->mode; + + if (mode == 0) + { + SetBgAttribute(template->bg, BG_ATTR_METRIC, 0); + decompress_and_copy_tile_data_to_vram(template->bg, sPokedexAreaMap_Gfx, 0, template->offset, 0); + sub_8199D3C(decompress_and_copy_tile_data_to_vram(template->bg, sPokedexAreaMap_Tilemap, 0, 0, 1), template->offset, 32, 32, FALSE); + } + else + { + SetBgAttribute(template->bg, BG_ATTR_METRIC, 2); + SetBgAttribute(template->bg, BG_ATTR_TYPE, 1); + decompress_and_copy_tile_data_to_vram(template->bg, sPokedexAreaMapAffine_Gfx, 0, template->offset, 0); + sub_8199D3C(decompress_and_copy_tile_data_to_vram(template->bg, sPokedexAreaMapAffine_Tilemap, 0, 0, 1), template->offset, 64, 64, TRUE); + } + + ChangeBgX(template->bg, 0, 0); + ChangeBgY(template->bg, 0, 0); + SetBgAttribute(template->bg, BG_ATTR_PALETTEMODE, 1); + CpuCopy32(sPokedexAreaMap_Pal, &gPlttBufferUnfaded[0x70], 0x60); + *sPokedexAreaMapBgNum = template->bg; +} + +bool32 sub_81C4E90(void) +{ + if (!free_temp_tile_data_buffers_if_possible()) + { + ShowBg(*sPokedexAreaMapBgNum); + return FALSE; + } + else + { + return TRUE; + } +} + +void FreePokedexAreaMapBgNum(void) +{ + if (sPokedexAreaMapBgNum != NULL) + FREE_AND_SET_NULL(sPokedexAreaMapBgNum); +} + +void PokedexAreaMapChangeBgY(u32 a0) +{ + ChangeBgY(*sPokedexAreaMapBgNum, a0 * 0x100, 0); +} diff --git a/src/pokedex_area_screen.c b/src/pokedex_area_screen.c index 697fdb792..474788357 100755 --- a/src/pokedex_area_screen.c +++ b/src/pokedex_area_screen.c @@ -14,7 +14,7 @@ #include "sound.h" #include "string_util.h" #include "trig.h" -#include "unk_pokedex_area_screen_helper.h" +#include "pokedex_area_region_map.h" #include "wild_encounter.h" #include "constants/maps.h" #include "constants/region_map_sections.h" @@ -113,7 +113,7 @@ static const u16 sLandmarkData[][2] = { {MAPSEC_SKY_PILLAR, FLAG_LANDMARK_SKY_PILLAR}, {MAPSEC_SEAFLOOR_CAVERN, FLAG_LANDMARK_SEAFLOOR_CAVERN}, - {MAPSEC_ALTERING_CAVE_2, FLAG_LANDMARK_ALTERING_CAVE}, + {MAPSEC_ALTERING_CAVE, FLAG_LANDMARK_ALTERING_CAVE}, {MAPSEC_MIRAGE_TOWER, FLAG_LANDMARK_MIRAGE_TOWER}, {MAPSEC_DESERT_UNDERPASS, FLAG_LANDMARK_DESERT_UNDERPASS}, {MAPSEC_ARTISAN_CAVE, FLAG_LANDMARK_ARTISAN_CAVE}, @@ -230,12 +230,12 @@ static const u8 sAreaGlowTilemapMapping[] = { 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, }; -static const struct UnkStruct_1C4D70 sUnknown_085B4018 = +static const struct PokedexAreaMapTemplate sPokedexAreaMapTemplate = { .bg = 3, - .unk2 = 0, - .unk10 = 0, - .unk12 = 2, + .offset = 0, + .mode = 0, + .unk = 2, }; static const u8 sAreaMarkerTiles[]; @@ -456,7 +456,7 @@ static u16 GetRegionMapSectionId(u8 mapGroup, u8 mapNum) static bool8 MapHasMon(const struct WildPokemonHeader *info, u16 species) { - if (GetRegionMapSectionId(info->mapGroup, info->mapNum) == MAPSEC_ALTERING_CAVE_2) + if (GetRegionMapSectionId(info->mapGroup, info->mapNum) == MAPSEC_ALTERING_CAVE) { sPokedexAreaScreen->unk6E2++; if (sPokedexAreaScreen->unk6E2 != sPokedexAreaScreen->unk6E4 + 1) @@ -503,7 +503,7 @@ static void BuildAreaGlowTilemap(void) { for (x = 0; x < AREA_SCREEN_WIDTH; x++) { - if (GetRegionMapSectionIdAt(x, y) == sPokedexAreaScreen->overworldAreasWithMons[i].regionMapSectionId) + if (GetRegionMapSecIdAt(x, y) == sPokedexAreaScreen->overworldAreasWithMons[i].regionMapSectionId) sPokedexAreaScreen->areaGlowTilemap[j] = GLOW_TILE_FULL; j++; @@ -662,13 +662,13 @@ static void Task_PokedexAreaScreen_0(u8 taskId) break; case 1: SetBgAttribute(3, BG_ATTR_CHARBASEINDEX, 3); - sub_81C4D70(&sUnknown_085B4018); + LoadPokedexAreaMapGfx(&sPokedexAreaMapTemplate); StringFill(sPokedexAreaScreen->charBuffer, CHAR_SPACE, 16); break; case 2: if (sub_81C4E90() == TRUE) return; - sub_81C4ED0(-8); + PokedexAreaMapChangeBgY(-8); break; case 3: ResetDrawAreaGlowState(); @@ -678,7 +678,7 @@ static void Task_PokedexAreaScreen_0(u8 taskId) return; break; case 5: - sub_8122D88(&sPokedexAreaScreen->regionMap); + ShowRegionMapForPokedexAreaScreen(&sPokedexAreaScreen->regionMap); CreateRegionMapPlayerIcon(1, 1); PokedexAreaScreen_UpdateRegionMapVariablesAndVideoRegs(0, -8); break; @@ -746,7 +746,7 @@ static void Task_PokedexAreaScreen_1(u8 taskId) sPokedexAreaScreen->errno[0] = gTasks[taskId].data[1]; sub_813D6B4(); DestroyTask(taskId); - sub_81C4EB4(); + FreePokedexAreaMapBgNum(); FREE_AND_SET_NULL(sPokedexAreaScreen); return; } diff --git a/src/pokemon_jump.c b/src/pokemon_jump.c index 11f88d1cf..6c76b15a6 100755 --- a/src/pokemon_jump.c +++ b/src/pokemon_jump.c @@ -1674,8 +1674,7 @@ static void sub_802BF7C(void) static int sub_802C098(void) { - // The number 1103515245 comes from the example implementation of rand and srand - gUnknown_02022CFC->unk24 = gUnknown_02022CFC->unk24 * 1103515245 + 24691; + gUnknown_02022CFC->unk24 = ISO_RANDOMIZE1(gUnknown_02022CFC->unk24); return gUnknown_02022CFC->unk24 >> 16; } diff --git a/src/pokemon_storage_system.c b/src/pokemon_storage_system.c index c99841ea2..1660316de 100644 --- a/src/pokemon_storage_system.c +++ b/src/pokemon_storage_system.c @@ -36,6 +36,7 @@ #include "trig.h" #include "walda_phrase.h" #include "window.h" +#include "constants/items.h" #include "constants/maps.h" #include "constants/moves.h" #include "constants/rgb.h" @@ -231,7 +232,7 @@ struct PokemonStorageSystemData struct Sprite *field_D94; struct Sprite *field_D98[2]; u16 *field_DA0; - struct PokemonMarkMenu field_DA4; + struct PokemonMarkMenu markMenu; struct UnkPSSStruct_2002370 field_1E5C; struct Pokemon movingMon; struct Pokemon field_2108; @@ -367,7 +368,7 @@ enum { MODE_PARTY, MODE_BOX, - MODE_2, + MODE_MOVE, }; enum @@ -454,7 +455,7 @@ EWRAM_DATA static u8 sCurrentBoxOption = 0; EWRAM_DATA static u8 gUnknown_02039D0E = 0; EWRAM_DATA static u8 sWhichToReshow = 0; EWRAM_DATA static u8 sLastUsedBox = 0; -EWRAM_DATA static u16 gUnknown_02039D12 = 0; +EWRAM_DATA static u16 sMovingItemId = 0; EWRAM_DATA static struct Pokemon gUnknown_02039D14 = {0}; EWRAM_DATA static s8 sBoxCursorArea = 0; EWRAM_DATA static s8 sBoxCursorPosition = 0; @@ -2165,7 +2166,7 @@ static void Cb2_EnterPSS(u8 boxOption) { sPSSData->boxOption = boxOption; sPSSData->isReshowingPSS = FALSE; - gUnknown_02039D12 = 0; + sMovingItemId = ITEM_NONE; sPSSData->state = 0; sPSSData->taskId = CreateTask(Cb_InitPSS, 3); sLastUsedBox = StorageGetCurrentBox(); @@ -2227,7 +2228,7 @@ static void sub_80C7F1C(void) gUnknown_02039D0E = 0; } -static void sub_80C7F4C(void) +static void SetMonIconTransparency(void) { if (sPSSData->boxOption == BOX_OPTION_MOVE_ITEMS) { @@ -2321,9 +2322,9 @@ static void Cb_InitPSS(u8 taskId) if (sPSSData->boxOption != BOX_OPTION_MOVE_ITEMS) { - sPSSData->field_DA4.baseTileTag = TAG_TILE_D; - sPSSData->field_DA4.basePaletteTag = TAG_PAL_DACE; - sub_811F90C(&sPSSData->field_DA4); + sPSSData->markMenu.baseTileTag = TAG_TILE_D; + sPSSData->markMenu.basePaletteTag = TAG_PAL_DACE; + sub_811F90C(&sPSSData->markMenu); sub_811FA90(); } else @@ -2333,7 +2334,7 @@ static void Cb_InitPSS(u8 taskId) } break; case 10: - sub_80C7F4C(); + SetMonIconTransparency(); if (!sPSSData->isReshowingPSS) { BlendPalettes(0xFFFFFFFF, 0x10, RGB_BLACK); @@ -3178,7 +3179,7 @@ static void Cb_ShowMarkMenu(u8 taskId) { case 0: PrintStorageActionText(PC_TEXT_MARK_POKE); - sPSSData->field_DA4.markings = sPSSData->cursorMonMarkings; + sPSSData->markMenu.markings = sPSSData->cursorMonMarkings; sub_811FAA4(sPSSData->cursorMonMarkings, 0xb0, 0x10); sPSSData->state++; break; @@ -3187,7 +3188,7 @@ static void Cb_ShowMarkMenu(u8 taskId) { sub_811FAF8(); ClearBottomWindow(); - SetMonMarkings(sPSSData->field_DA4.markings); + SetMonMarkings(sPSSData->markMenu.markings); RefreshCursorMonData(); SetPSSCallback(Cb_MainPSS); } @@ -3863,9 +3864,9 @@ static void Cb_ChangeScreen(u8 taskId) u8 screenChangeType = sPSSData->screenChangeType; if (sPSSData->boxOption == BOX_OPTION_MOVE_ITEMS && IsActiveItemMoving() == TRUE) - gUnknown_02039D12 = GetMovingItem(); + sMovingItemId = GetMovingItem(); else - gUnknown_02039D12 = 0; + sMovingItemId = ITEM_NONE; switch (screenChangeType) { @@ -4496,9 +4497,9 @@ static void sub_80CAEAC(void) sub_80D0D8C(CURSOR_AREA_IN_BOX, GetBoxCursorPosition()); } - if (gUnknown_02039D12 != 0) + if (sMovingItemId != ITEM_NONE) { - sub_80D0F38(gUnknown_02039D12); + sub_80D0F38(sMovingItemId); sub_80CFE54(3); } } @@ -5077,7 +5078,7 @@ static void sub_80CBF14(u8 mode, u8 position) case MODE_BOX: sPSSData->field_B04 = &sPSSData->boxMonsSprites[position]; break; - case MODE_2: + case MODE_MOVE: sPSSData->field_B04 = &sPSSData->movingMonSprite; break; default: @@ -6388,7 +6389,7 @@ static void sub_80CE250(void) u8 mode; if (sIsMonBeingMoved) - mode = MODE_2; + mode = MODE_MOVE; else if (sBoxCursorArea == CURSOR_AREA_IN_PARTY) mode = MODE_PARTY; else @@ -6756,7 +6757,7 @@ static void sub_80CEB40(void) // fallthrough case CURSOR_AREA_BUTTONS: case CURSOR_AREA_BOX: - SetCursorMonData(NULL, MODE_2); + SetCursorMonData(NULL, MODE_MOVE); break; case CURSOR_AREA_IN_BOX: SetCursorMonData(GetBoxedMonPtr(StorageGetCurrentBox(), sBoxCursorPosition), MODE_BOX); diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index ffd468a9b..81befefc5 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -3095,7 +3095,7 @@ static void BufferMonTrainerMemo(void) if (sum->metLocation < MAPSEC_NONE) { - sub_8124610(metLocationString, sum->metLocation); + GetMapNameHandleAquaHideout(metLocationString, sum->metLocation); DynamicPlaceholderTextUtil_SetPlaceholderPtr(4, metLocationString); } diff --git a/src/pokenav.c b/src/pokenav.c index 03b29ab0b..8ea33575a 100644 --- a/src/pokenav.c +++ b/src/pokenav.c @@ -26,18 +26,18 @@ struct PokenavResources void *field10[SUBSTRUCT_COUNT]; }; -struct UnknownPokenavCallbackStruct +struct PokenavCallbacks { - bool32 (*unk0)(void); - u32 (*unk4)(void); - bool32 (*unk8)(void); - void (*unkC)(s32); - u32 (*unk10)(void); - void (*unk14)(void); - void (*unk18)(void); + bool32 (*init)(void); + u32 (*callback)(void); + bool32 (*open)(void); + void (*createLoopTask)(s32); + bool32 (*isLoopTaskActive)(void); + void (*free1)(void); + void (*free2)(void); }; -static u32 sub_81C75E0(void); +static u32 GetCurrentMenuCB(void); static u32 sub_81C75D4(void); static bool32 SetActivePokenavMenu(u32 menuId); static bool32 AnyMonHasRibbon(void); @@ -51,142 +51,158 @@ static void Task_RunLoopedTask(u8 taskId); static void Task_Pokenav(u8 taskId); static void CB2_InitPokenavForTutorial(void); -const struct UnknownPokenavCallbackStruct PokenavMenuCallbacks[15] = +// TODO: Use MENU ids +const struct PokenavCallbacks PokenavMenuCallbacks[15] = { + [POKENAV_MAIN_MENU - POKENAV_MENU_IDS_START] = { - .unk0 = PokenavCallback_Init_0, - .unk4 = sub_81C941C, - .unk8 = sub_81C9924, - .unkC = CreateMenuHandlerLoopedTask, - .unk10 = sub_81C99C0, - .unk14 = sub_81C9430, - .unk18 = sub_81C99D4, + .init = PokenavCallback_Init_MainMenuCursorOnMap, + .callback = GetMenuHandlerCallback, + .open = OpenPokenavMenuInitial, + .createLoopTask = CreateMenuHandlerLoopedTask, + .isLoopTaskActive = IsMenuHandlerLoopedTaskActive, + .free1 = FreeMenuHandlerSubstruct1, + .free2 = FreeMenuHandlerSubstruct2, }, + [POKENAV_MAIN_MENU_CURSOR_ON_MAP - POKENAV_MENU_IDS_START] = { - .unk0 = PokenavCallback_Init_0, - .unk4 = sub_81C941C, - .unk8 = sub_81C9940, - .unkC = CreateMenuHandlerLoopedTask, - .unk10 = sub_81C99C0, - .unk14 = sub_81C9430, - .unk18 = sub_81C99D4, + .init = PokenavCallback_Init_MainMenuCursorOnMap, + .callback = GetMenuHandlerCallback, + .open = OpenPokenavMenuNotInitial, + .createLoopTask = CreateMenuHandlerLoopedTask, + .isLoopTaskActive = IsMenuHandlerLoopedTaskActive, + .free1 = FreeMenuHandlerSubstruct1, + .free2 = FreeMenuHandlerSubstruct2, }, + [POKENAV_CONDITION_MENU - POKENAV_MENU_IDS_START] = { - .unk0 = PokenavCallback_Init_2, - .unk4 = sub_81C941C, - .unk8 = sub_81C9940, - .unkC = CreateMenuHandlerLoopedTask, - .unk10 = sub_81C99C0, - .unk14 = sub_81C9430, - .unk18 = sub_81C99D4, + .init = PokenavCallback_Init_ConditionMenu, + .callback = GetMenuHandlerCallback, + .open = OpenPokenavMenuNotInitial, + .createLoopTask = CreateMenuHandlerLoopedTask, + .isLoopTaskActive = IsMenuHandlerLoopedTaskActive, + .free1 = FreeMenuHandlerSubstruct1, + .free2 = FreeMenuHandlerSubstruct2, }, + [POKENAV_CONDITION_SEARCH_MENU - POKENAV_MENU_IDS_START] = { - .unk0 = PokenavCallback_Init_3, - .unk4 = sub_81C941C, - .unk8 = sub_81C9940, - .unkC = CreateMenuHandlerLoopedTask, - .unk10 = sub_81C99C0, - .unk14 = sub_81C9430, - .unk18 = sub_81C99D4, + .init = PokenavCallback_Init_ConditionSearchMenu, + .callback = GetMenuHandlerCallback, + .open = OpenPokenavMenuNotInitial, + .createLoopTask = CreateMenuHandlerLoopedTask, + .isLoopTaskActive = IsMenuHandlerLoopedTaskActive, + .free1 = FreeMenuHandlerSubstruct1, + .free2 = FreeMenuHandlerSubstruct2, }, + [POKENAV_MAIN_MENU_CURSOR_ON_MATCH_CALL - POKENAV_MENU_IDS_START] = { - .unk0 = PokenavCallback_Init_4, - .unk4 = sub_81C941C, - .unk8 = sub_81C9940, - .unkC = CreateMenuHandlerLoopedTask, - .unk10 = sub_81C99C0, - .unk14 = sub_81C9430, - .unk18 = sub_81C99D4, + .init = PokenavCallback_Init_MainMenuCursorOnMatchCall, + .callback = GetMenuHandlerCallback, + .open = OpenPokenavMenuNotInitial, + .createLoopTask = CreateMenuHandlerLoopedTask, + .isLoopTaskActive = IsMenuHandlerLoopedTaskActive, + .free1 = FreeMenuHandlerSubstruct1, + .free2 = FreeMenuHandlerSubstruct2, }, + [POKENAV_MAIN_MENU_CURSOR_ON_RIBBONS - POKENAV_MENU_IDS_START] = { - .unk0 = PokenavCallback_Init_5, - .unk4 = sub_81C941C, - .unk8 = sub_81C9940, - .unkC = CreateMenuHandlerLoopedTask, - .unk10 = sub_81C99C0, - .unk14 = sub_81C9430, - .unk18 = sub_81C99D4, + .init = PokenavCallback_Init_MainMenuCursorOnRibbons, + .callback = GetMenuHandlerCallback, + .open = OpenPokenavMenuNotInitial, + .createLoopTask = CreateMenuHandlerLoopedTask, + .isLoopTaskActive = IsMenuHandlerLoopedTaskActive, + .free1 = FreeMenuHandlerSubstruct1, + .free2 = FreeMenuHandlerSubstruct2, }, + [POKENAV_REGION_MAP - POKENAV_MENU_IDS_START] = { - .unk0 = PokenavCallback_Init_6, - .unk4 = sub_81CC554, - .unk8 = sub_81CC5F4, - .unkC = sub_81CC62C, - .unk10 = sub_81CC65C, - .unk14 = sub_81CC524, - .unk18 = sub_81CC670, + .init = PokenavCallback_Init_RegionMap, + .callback = GetRegionMapCallback, + .open = OpenPokenavRegionMap, + .createLoopTask = CreateRegionMapLoopedTask, + .isLoopTaskActive = IsRegionMapLoopedTaskActive, + .free1 = FreeRegionMapSubstruct1, + .free2 = FreeRegionMapSubstruct2, }, + [POKENAV_CONDITION_PARTY - POKENAV_MENU_IDS_START] = { - .unk0 = PokenavCallback_Init_7, - .unk4 = sub_81CD070, - .unk8 = sub_81CDDD4, - .unkC = sub_81CDE2C, - .unk10 = sub_81CDE64, - .unk14 = sub_81CD1C0, - .unk18 = sub_81CECA0, + .init = PokenavCallback_Init_7, + .callback = sub_81CD070, + .open = sub_81CDDD4, + .createLoopTask = sub_81CDE2C, + .isLoopTaskActive = sub_81CDE64, + .free1 = sub_81CD1C0, + .free2 = sub_81CECA0, }, + [POKENAV_CONDITION_SEARCH_RESULTS - POKENAV_MENU_IDS_START] = { - .unk0 = PokenavCallback_Init_8, - .unk4 = sub_81CEFDC, - .unk8 = sub_81CF330, - .unkC = sub_81CF3A0, - .unk10 = sub_81CF3D0, - .unk14 = sub_81CEFF0, - .unk18 = sub_81CF3F8, + .init = PokenavCallback_Init_8, + .callback = sub_81CEFDC, + .open = sub_81CF330, + .createLoopTask = sub_81CF3A0, + .isLoopTaskActive = sub_81CF3D0, + .free1 = sub_81CEFF0, + .free2 = sub_81CF3F8, }, + [POKENAV_MENU_9 - POKENAV_MENU_IDS_START] = { - .unk0 = PokenavCallback_Init_9, - .unk4 = sub_81CD070, - .unk8 = sub_81CDDD4, - .unkC = sub_81CDE2C, - .unk10 = sub_81CDE64, - .unk14 = sub_81CD1C0, - .unk18 = sub_81CECA0, + .init = PokenavCallback_Init_9, + .callback = sub_81CD070, + .open = sub_81CDDD4, + .createLoopTask = sub_81CDE2C, + .isLoopTaskActive = sub_81CDE64, + .free1 = sub_81CD1C0, + .free2 = sub_81CECA0, }, + [POKENAV_MENU_A - POKENAV_MENU_IDS_START] = { - .unk0 = PokenavCallback_Init_10, - .unk4 = sub_81CEFDC, - .unk8 = sub_81CF368, - .unkC = sub_81CF3A0, - .unk10 = sub_81CF3D0, - .unk14 = sub_81CEFF0, - .unk18 = sub_81CF3F8, + .init = PokenavCallback_Init_10, + .callback = sub_81CEFDC, + .open = sub_81CF368, + .createLoopTask = sub_81CF3A0, + .isLoopTaskActive = sub_81CF3D0, + .free1 = sub_81CEFF0, + .free2 = sub_81CF3F8, }, + [POKENAV_MATCH_CALL - POKENAV_MENU_IDS_START] = { - .unk0 = PokenavCallback_Init_11, - .unk4 = sub_81CAB24, - .unk8 = sub_81CB260, - .unkC = CreateMatchCallLoopedTask, - .unk10 = sub_81CB2CC, - .unk14 = sub_81CAB38, - .unk18 = sub_81CB2E0, + .init = PokenavCallback_Init_MatchCall, + .callback = GetMatchCallCallback, + .open = OpenMatchCall, + .createLoopTask = CreateMatchCallLoopedTask, + .isLoopTaskActive = IsMatchCallLoopedTaskActive, + .free1 = FreeMatchCallSubstruct1, + .free2 = FreeMatchCallSubstruct2, }, + [POKENAV_RIBBONS_MON_LIST - POKENAV_MENU_IDS_START] = { - .unk0 = PokenavCallback_Init_12, - .unk4 = sub_81CFA34, - .unk8 = sub_81CFDD0, - .unkC = sub_81CFE40, - .unk10 = sub_81CFE70, - .unk14 = sub_81CFA48, - .unk18 = sub_81CFE98, + .init = PokenavCallback_Init_12, + .callback = sub_81CFA34, + .open = sub_81CFDD0, + .createLoopTask = sub_81CFE40, + .isLoopTaskActive = sub_81CFE70, + .free1 = sub_81CFA48, + .free2 = sub_81CFE98, }, + [POKENAV_MENU_D - POKENAV_MENU_IDS_START] = { - .unk0 = PokenavCallback_Init_13, - .unk4 = sub_81D04A0, - .unk8 = sub_81D0978, - .unkC = sub_81D09B0, - .unk10 = sub_81D09E0, - .unk14 = sub_81D04B8, - .unk18 = sub_81D09F4, + .init = PokenavCallback_Init_13, + .callback = sub_81D04A0, + .open = sub_81D0978, + .createLoopTask = sub_81D09B0, + .isLoopTaskActive = sub_81D09E0, + .free1 = sub_81D04B8, + .free2 = sub_81D09F4, }, + [POKENAV_MENU_E - POKENAV_MENU_IDS_START] = { - .unk0 = PokenavCallback_Init_14, - .unk4 = sub_81CFA34, - .unk8 = sub_81CFE08, - .unkC = sub_81CFE40, - .unk10 = sub_81CFE70, - .unk14 = sub_81CFA48, - .unk18 = sub_81CFE98, + .init = PokenavCallback_Init_14, + .callback = sub_81CFA34, + .open = sub_81CFE08, + .createLoopTask = sub_81CFE40, + .isLoopTaskActive = sub_81CFE70, + .free1 = sub_81CFA48, + .free2 = sub_81CFE98, }, }; @@ -416,66 +432,68 @@ static void VBlankCB_Pokenav(void) ProcessSpriteCopyRequests(); } +#define tState data[0] + static void Task_Pokenav(u8 taskId) { - u32 v1; + u32 menuId; s16 *data = gTasks[taskId].data; - switch (data[0]) + switch (tState) { case 0: InitPokenavMainMenu(); - data[0] = 1; + tState = 1; break; case 1: // Wait for LoopedTask_InitPokenavMenu to finish if (PokenavMainMenuLoopedTaskIsActive()) break; - SetActivePokenavMenu(POKENAV_MENU_0); - data[0] = 4; + SetActivePokenavMenu(POKENAV_MAIN_MENU); + tState = 4; break; case 2: if (sub_81C786C()) break; - data[0] = 3; + tState = 3; case 3: - v1 = sub_81C75E0(); - if (v1 == -1) + menuId = GetCurrentMenuCB(); + if (menuId == -1) { ShutdownPokenav(); - data[0] = 5; + tState = 5; } - else if (v1 >= POKENAV_MENU_IDS_START) + else if (menuId >= POKENAV_MENU_IDS_START) { - PokenavMenuCallbacks[gPokenavResources->currentMenuIndex].unk18(); - PokenavMenuCallbacks[gPokenavResources->currentMenuIndex].unk14(); - if (SetActivePokenavMenu(v1)) + PokenavMenuCallbacks[gPokenavResources->currentMenuIndex].free2(); + PokenavMenuCallbacks[gPokenavResources->currentMenuIndex].free1(); + if (SetActivePokenavMenu(menuId)) { - data[0] = 4; + tState = 4; } else { ShutdownPokenav(); - data[0] = 5; + tState = 5; } } - else if (v1 != 0) + else if (menuId != 0) { - sub_81C7850(v1); + sub_81C7850(menuId); if (sub_81C786C()) - data[0] = 2; + tState = 2; } break; case 4: if (!sub_81C75D4()) - data[0] = 3; + tState = 3; break; case 5: if (!WaitForPokenavShutdownFade()) { bool32 calledFromScript = (gPokenavResources->mode != POKENAV_MODE_NORMAL); - sub_81C9430(); + FreeMenuHandlerSubstruct1(); FreePokenavResources(); if (calledFromScript) SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic); @@ -486,18 +504,20 @@ static void Task_Pokenav(u8 taskId) } } +#undef tState + static bool32 SetActivePokenavMenu(u32 menuId) { u32 index = menuId - POKENAV_MENU_IDS_START; InitKeys_(); - if (!PokenavMenuCallbacks[index].unk0()) + if (!PokenavMenuCallbacks[index].init()) return FALSE; - if (!PokenavMenuCallbacks[index].unk8()) + if (!PokenavMenuCallbacks[index].open()) return FALSE; - sub_81C7834(PokenavMenuCallbacks[index].unkC, PokenavMenuCallbacks[index].unk10); - gPokenavResources->currentMenuCb1 = PokenavMenuCallbacks[index].unk4; + sub_81C7834(PokenavMenuCallbacks[index].createLoopTask, PokenavMenuCallbacks[index].isLoopTaskActive); + gPokenavResources->currentMenuCb1 = PokenavMenuCallbacks[index].callback; gPokenavResources->currentMenuIndex = index; return TRUE; } @@ -507,7 +527,7 @@ static u32 sub_81C75D4(void) return sub_81C786C(); } -static u32 sub_81C75E0(void) +static u32 GetCurrentMenuCB(void) { return gPokenavResources->currentMenuCb1(); } diff --git a/src/pokenav_conditions_1.c b/src/pokenav_conditions_1.c index 70c309992..84e2a9682 100644 --- a/src/pokenav_conditions_1.c +++ b/src/pokenav_conditions_1.c @@ -147,7 +147,7 @@ u32 sub_81CD110(struct PokenavSub11 *structPtr) u32 sub_81CD19C(struct PokenavSub11 *structPtr) { if (structPtr->unk6300 == 0) - return POKENAV_MENU_2; + return POKENAV_CONDITION_MENU; else return POKENAV_MENU_A; } diff --git a/src/pokenav_conditions_2.c b/src/pokenav_conditions_2.c index 11fdaa425..ed253f90f 100644 --- a/src/pokenav_conditions_2.c +++ b/src/pokenav_conditions_2.c @@ -296,7 +296,7 @@ u32 sub_81CDE94(s32 state) PrintHelpBarText(HELPBAR_CONDITION_MON_STATUS); return LT_INC_AND_PAUSE; case 15: - sub_81C7AC0(1); + PokenavFadeScreen(1); if (!sub_81CDD5C()) { LoadLeftHeaderGfxForIndex(6); @@ -353,7 +353,7 @@ u32 sub_81CE2D0(s32 state) sub_81CEE74(FALSE); return 1; case 2: - sub_81C7AC0(0); + PokenavFadeScreen(0); if (!sub_81CDD5C()) sub_81C78A0(); return 0; diff --git a/src/pokenav_conditions_3.c b/src/pokenav_conditions_3.c index 9b6ce432b..74bc3cc9d 100644 --- a/src/pokenav_conditions_3.c +++ b/src/pokenav_conditions_3.c @@ -197,12 +197,12 @@ static u32 sub_81CF030(struct PokenavSub7 *structPtr) static u32 sub_81CF0B0(struct PokenavSub7 *structPtr) { - return 100003; + return POKENAV_CONDITION_SEARCH_MENU; } static u32 sub_81CF0B8(struct PokenavSub7 *structPtr) { - return 100009; + return POKENAV_MENU_9; } static u32 sub_81CF0C0(void) @@ -448,7 +448,7 @@ static u32 sub_81CF418(s32 state) sub_81C7FA0(r4, 1, 0); sub_81C7FA0(1, 1, 0); } - sub_81C7AC0(1); + PokenavFadeScreen(1); return LT_INC_AND_PAUSE; case 5: if (IsPaletteFadeActive()) @@ -598,7 +598,7 @@ static u32 sub_81CF758(s32 state) { case 0: PlaySE(SE_SELECT); - sub_81C7AC0(0); + PokenavFadeScreen(0); sub_81C78A0(); return LT_INC_AND_PAUSE; case 1: @@ -618,7 +618,7 @@ static u32 sub_81CF798(s32 state) { case 0: PlaySE(SE_SELECT); - sub_81C7AC0(0); + PokenavFadeScreen(0); return LT_INC_AND_PAUSE; case 1: if (IsPaletteFadeActive()) diff --git a/src/pokenav_main_menu.c b/src/pokenav_main_menu.c index 583d23a55..fdd27b087 100644 --- a/src/pokenav_main_menu.c +++ b/src/pokenav_main_menu.c @@ -13,28 +13,6 @@ #include "menu.h" #include "dma3.h" -enum -{ - POKENAV_GFX_MAIN_MENU, - POKENAV_GFX_CONDITION_MENU, - POKENAV_GFX_RIBBONS_MENU, - POKENAV_GFX_MATCH_CALL_MENU, - // One of these is for the zoomed-in map, and the other is for the - // zoomed-out map. Don't know which is which yet. - POKENAV_GFX_MAP_MENU_UNK0, - POKENAV_GFX_MAP_MENU_UNK1, - POKENAV_GFX_PARTY_MENU, - POKENAV_GFX_SEARCH_MENU, - POKENAV_GFX_COOL_MENU, - POKENAV_GFX_BEAUTY_MENU, - POKENAV_GFX_CUTE_MENU, - POKENAV_GFX_SMART_MENU, - POKENAV_GFX_TOUGH_MENU, - POKENAV_GFX_MENUS_END, -}; - -#define POKENAV_GFX_SUBMENUS_START POKENAV_GFX_PARTY_MENU - struct PokenavMainMenuResources { void (*unk0)(u32); @@ -42,7 +20,7 @@ struct PokenavMainMenuResources u32 unk8; u32 currentTaskId; u32 helpBarWindowId; - u32 unk14; + u32 palettes; struct Sprite *spinningPokenav; struct Sprite *leftHeaderSprites[2]; struct Sprite *submenuLeftHeaderSprites[2]; @@ -174,12 +152,12 @@ static const struct CompressedSpriteSheet sPokenavMenuLeftHeaderSpriteSheets[] = .size = 0x20, .tag = 4 }, - [POKENAV_GFX_MAP_MENU_UNK0] = { + [POKENAV_GFX_MAP_MENU_ZOOMED_OUT] = { .data = gPokenavLeftHeaderHoennMap_Gfx, .size = 0x20, .tag = 0 }, - [POKENAV_GFX_MAP_MENU_UNK1] = { + [POKENAV_GFX_MAP_MENU_ZOOMED_IN] = { .data = gPokenavLeftHeaderHoennMap_Gfx, .size = 0x40, .tag = 0 @@ -343,7 +321,7 @@ bool32 WaitForPokenavShutdownFade(void) { if (!gPaletteFade.active) { - sub_81C99D4(); + FreeMenuHandlerSubstruct2(); CleanupPokenavMainMenuResources(); FreeAllWindowBuffers(); return FALSE; @@ -629,17 +607,17 @@ _081C7AAE:\n\ .syntax divided"); } -void sub_81C7AC0(s32 a0) +void PokenavFadeScreen(s32 fadeType) { struct PokenavMainMenuResources *structPtr = GetSubstructPtr(0); - switch (a0) + switch (fadeType) { case 0: - BeginNormalPaletteFade(structPtr->unk14, -2, 0, 16, RGB_BLACK); + BeginNormalPaletteFade(structPtr->palettes, -2, 0, 16, RGB_BLACK); break; case 1: - BeginNormalPaletteFade(structPtr->unk14, -2, 16, 0, RGB_BLACK); + BeginNormalPaletteFade(structPtr->palettes, -2, 16, 0, RGB_BLACK); break; case 2: BeginNormalPaletteFade(0xFFFFFFFF, -2, 0, 16, RGB_BLACK); @@ -708,7 +686,7 @@ static void InitPokenavMainMenuResources(void) LoadCompressedSpriteSheet(&gSpinningPokenavSpriteSheet[i]); Pokenav_AllocAndLoadPalettes(gSpinningNavgearPalettes); - structPtr->unk14 = ~1 & ~(0x10000 << IndexOfSpritePaletteTag(0)); + structPtr->palettes = ~1 & ~(0x10000 << IndexOfSpritePaletteTag(0)); spriteId = CreateSprite(&sSpinningPokenavSpriteTemplate, 220, 12, 0); structPtr->spinningPokenav = &gSprites[spriteId]; } @@ -772,61 +750,61 @@ static void InitHoennMapHeaderSprites(void) } } -void LoadLeftHeaderGfxForIndex(u32 arg0) +void LoadLeftHeaderGfxForIndex(u32 menuGfxId) { - if (arg0 < POKENAV_GFX_SUBMENUS_START) - LoadLeftHeaderGfxForMenu(arg0); + if (menuGfxId < POKENAV_GFX_SUBMENUS_START) + LoadLeftHeaderGfxForMenu(menuGfxId); else - LoadLeftHeaderGfxForSubMenu(arg0 - POKENAV_GFX_SUBMENUS_START); + LoadLeftHeaderGfxForSubMenu(menuGfxId - POKENAV_GFX_SUBMENUS_START); } -void sub_81C7E14(u32 arg0) +void sub_81C7E14(u32 menuGfxId) { struct PokenavMainMenuResources *structPtr = GetSubstructPtr(0); - if (arg0 == 4) + if (menuGfxId == POKENAV_GFX_MAP_MENU_ZOOMED_OUT) structPtr->leftHeaderSprites[1]->oam.tileNum = GetSpriteTileStartByTag(2) + 32; else structPtr->leftHeaderSprites[1]->oam.tileNum = GetSpriteTileStartByTag(2) + 64; } -static void LoadLeftHeaderGfxForMenu(u32 index) +static void LoadLeftHeaderGfxForMenu(u32 menuGfxId) { struct PokenavMainMenuResources *structPtr; u32 size, tag; - if (index >= POKENAV_GFX_SUBMENUS_START) + if (menuGfxId >= POKENAV_GFX_SUBMENUS_START) return; structPtr = GetSubstructPtr(0); - tag = sPokenavMenuLeftHeaderSpriteSheets[index].tag; - size = GetDecompressedDataSize(sPokenavMenuLeftHeaderSpriteSheets[index].data); + tag = sPokenavMenuLeftHeaderSpriteSheets[menuGfxId].tag; + size = GetDecompressedDataSize(sPokenavMenuLeftHeaderSpriteSheets[menuGfxId].data); LoadPalette(&gPokenavLeftHeader_Pal[tag * 16], (IndexOfSpritePaletteTag(1) * 16) + 0x100, 0x20); - LZ77UnCompWram(sPokenavMenuLeftHeaderSpriteSheets[index].data, gDecompressionBuffer); + LZ77UnCompWram(sPokenavMenuLeftHeaderSpriteSheets[menuGfxId].data, gDecompressionBuffer); RequestDma3Copy(gDecompressionBuffer, (void *)VRAM + 0x10000 + (GetSpriteTileStartByTag(2) * 32), size, 1); - structPtr->leftHeaderSprites[1]->oam.tileNum = GetSpriteTileStartByTag(2) + sPokenavMenuLeftHeaderSpriteSheets[index].size; + structPtr->leftHeaderSprites[1]->oam.tileNum = GetSpriteTileStartByTag(2) + sPokenavMenuLeftHeaderSpriteSheets[menuGfxId].size; - if (index == POKENAV_GFX_MAP_MENU_UNK0 || index == POKENAV_GFX_MAP_MENU_UNK1) + if (menuGfxId == POKENAV_GFX_MAP_MENU_ZOOMED_OUT || menuGfxId == POKENAV_GFX_MAP_MENU_ZOOMED_IN) structPtr->leftHeaderSprites[1]->pos2.x = 56; else structPtr->leftHeaderSprites[1]->pos2.x = 64; } -static void LoadLeftHeaderGfxForSubMenu(u32 arg0) +static void LoadLeftHeaderGfxForSubMenu(u32 menuGfxId) { u32 size, tag; - if (arg0 >= POKENAV_GFX_MENUS_END - POKENAV_GFX_SUBMENUS_START) + if (menuGfxId >= POKENAV_GFX_MENUS_END - POKENAV_GFX_SUBMENUS_START) return; - tag = sPokenavSubMenuLeftHeaderSpriteSheets[arg0].tag; - size = GetDecompressedDataSize(sPokenavSubMenuLeftHeaderSpriteSheets[arg0].data); + tag = sPokenavSubMenuLeftHeaderSpriteSheets[menuGfxId].tag; + size = GetDecompressedDataSize(sPokenavSubMenuLeftHeaderSpriteSheets[menuGfxId].data); LoadPalette(&gPokenavLeftHeader_Pal[tag * 16], (IndexOfSpritePaletteTag(2) * 16) + 0x100, 0x20); - LZ77UnCompWram(sPokenavSubMenuLeftHeaderSpriteSheets[arg0].data, &gDecompressionBuffer[0x1000]); + LZ77UnCompWram(sPokenavSubMenuLeftHeaderSpriteSheets[menuGfxId].data, &gDecompressionBuffer[0x1000]); RequestDma3Copy(&gDecompressionBuffer[0x1000], (void *)VRAM + 0x10800 + (GetSpriteTileStartByTag(2) * 32), size, 1); } -void sub_81C7FA0(u32 arg0, bool32 arg1, bool32 arg2) +void sub_81C7FA0(u32 menuGfxId, bool32 arg1, bool32 arg2) { u32 var; @@ -835,7 +813,7 @@ void sub_81C7FA0(u32 arg0, bool32 arg1, bool32 arg2) else var = 0x10; - if (arg0 < 6) + if (menuGfxId < POKENAV_GFX_SUBMENUS_START) ShowLeftHeaderSprites(var, arg2); else ShowLeftHeaderSubmenuSprites(var, arg2); diff --git a/src/pokenav_match_call_1.c b/src/pokenav_match_call_1.c index 28e84b50b..ef1d5343f 100755 --- a/src/pokenav_match_call_1.c +++ b/src/pokenav_match_call_1.c @@ -30,7 +30,7 @@ struct Pokenav3Struct }; static u32 CB2_HandleMatchCallInput(struct Pokenav3Struct *); -static u32 sub_81CABFC(struct Pokenav3Struct *); +static u32 GetExitMatchCallMenuId(struct Pokenav3Struct *); static u32 CB2_HandleMatchCallOptionsInput(struct Pokenav3Struct *); static u32 CB2_HandleCheckPageInput(struct Pokenav3Struct *); static u32 CB2_HandleCallInput(struct Pokenav3Struct *); @@ -52,7 +52,7 @@ static const u8 sMatchCallOptionsHasCheckPage[] = MATCH_CALL_OPTION_CANCEL }; -bool32 PokenavCallback_Init_11(void) +bool32 PokenavCallback_Init_MatchCall(void) { struct Pokenav3Struct *state = AllocSubstruct(5, sizeof(struct Pokenav3Struct)); if (!state) @@ -65,13 +65,13 @@ bool32 PokenavCallback_Init_11(void) return TRUE; } -u32 sub_81CAB24(void) +u32 GetMatchCallCallback(void) { struct Pokenav3Struct *state = GetSubstructPtr(5); return state->callback(state); } -void sub_81CAB38(void) +void FreeMatchCallSubstruct1(void) { FreePokenavSubstruct(5); } @@ -113,7 +113,7 @@ static u32 CB2_HandleMatchCallInput(struct Pokenav3Struct *state) { if (GetPokenavMode() != POKENAV_MODE_FORCE_CALL_READY) { - state->callback = sub_81CABFC; + state->callback = GetExitMatchCallMenuId; return POKENAV_MC_FUNC_EXIT; } else @@ -126,9 +126,9 @@ static u32 CB2_HandleMatchCallInput(struct Pokenav3Struct *state) return POKENAV_MC_FUNC_NONE; } -static u32 sub_81CABFC(struct Pokenav3Struct *state) +static u32 GetExitMatchCallMenuId(struct Pokenav3Struct *state) { - return POKENAV_MENU_4; + return POKENAV_MAIN_MENU_CURSOR_ON_MATCH_CALL; } static u32 CB2_HandleMatchCallOptionsInput(struct Pokenav3Struct *state) diff --git a/src/pokenav_match_call_2.c b/src/pokenav_match_call_2.c index aaa1767aa..aa69c592f 100755 --- a/src/pokenav_match_call_2.c +++ b/src/pokenav_match_call_2.c @@ -27,8 +27,8 @@ struct Pokenav4Struct { - bool32 (*unk0)(void); - u32 unk4; + bool32 (*isTaskActiveCB)(void); + u32 loopTaskId; u8 filler8[0x6]; u8 unkE; u8 unkF; @@ -49,8 +49,8 @@ struct Pokenav4Struct u8 unk2028[0x20]; }; -static bool32 sub_81CB310(void); -static u32 sub_81CB324(s32); +static bool32 GetCurrentLoopedTaskActive(void); +static u32 LoopedTask_OpenMatchCall(s32); static void sub_81CBBB8(void); static void sub_81CBC1C(void); static void sub_81CC2B4(void); @@ -274,32 +274,32 @@ static const struct SpriteTemplate sTrainerPicSpriteTemplate = .callback = SpriteCallbackDummy, }; -bool32 sub_81CB260(void) +bool32 OpenMatchCall(void) { struct Pokenav4Struct *state = AllocSubstruct(6, sizeof(struct Pokenav4Struct)); if (!state) return FALSE; state->unk19 = 0; - state->unk4 = CreateLoopedTask(sub_81CB324, 1); - state->unk0 = sub_81CB310; + state->loopTaskId = CreateLoopedTask(LoopedTask_OpenMatchCall, 1); + state->isTaskActiveCB = GetCurrentLoopedTaskActive; return TRUE; } void CreateMatchCallLoopedTask(s32 index) { struct Pokenav4Struct *state = GetSubstructPtr(6); - state->unk4 = CreateLoopedTask(sMatchCallLoopTaskFuncs[index], 1); - state->unk0 = sub_81CB310; + state->loopTaskId = CreateLoopedTask(sMatchCallLoopTaskFuncs[index], 1); + state->isTaskActiveCB = GetCurrentLoopedTaskActive; } -u32 sub_81CB2CC(void) +bool32 IsMatchCallLoopedTaskActive(void) { struct Pokenav4Struct *state = GetSubstructPtr(6); - return state->unk0(); + return state->isTaskActiveCB(); } -void sub_81CB2E0(void) +void FreeMatchCallSubstruct2(void) { struct Pokenav4Struct *state = GetSubstructPtr(6); sub_81CC2B4(); @@ -310,13 +310,13 @@ void sub_81CB2E0(void) FreePokenavSubstruct(6); } -static bool32 sub_81CB310(void) +static bool32 GetCurrentLoopedTaskActive(void) { struct Pokenav4Struct *state = GetSubstructPtr(6); - return IsLoopedTaskActive(state->unk4); + return IsLoopedTaskActive(state->loopTaskId); } -static u32 sub_81CB324(s32 taskState) +static u32 LoopedTask_OpenMatchCall(s32 taskState) { struct Pokenav4Struct *state = GetSubstructPtr(6); switch (taskState) @@ -376,7 +376,7 @@ static u32 sub_81CB324(s32 taskState) sub_81CC214(); LoadLeftHeaderGfxForIndex(3); sub_81C7FA0(3, 1, 0); - sub_81C7AC0(1); + PokenavFadeScreen(1); return LT_INC_AND_PAUSE; case 7: if (IsPaletteFadeActive() || sub_81C8010()) @@ -849,7 +849,7 @@ u32 ExitMatchCall(s32 taskState) case 0: PlaySE(SE_SELECT); sub_81CBC38(0); - sub_81C7AC0(0); + PokenavFadeScreen(0); sub_81C78A0(); return LT_INC_AND_PAUSE; case 1: diff --git a/src/pokenav_match_call_ui.c b/src/pokenav_match_call_ui.c index fd346393e..01740fcce 100644 --- a/src/pokenav_match_call_ui.c +++ b/src/pokenav_match_call_ui.c @@ -7,6 +7,8 @@ #include "menu.h" #include "decompress.h" +// TODO: This UI isnt just for match call, seems to be the general pokenav list UI + struct UnknownSubSubStruct_0203CF40 { u8 bg; u8 unk1; diff --git a/src/pokenav_menu_handler_1.c b/src/pokenav_menu_handler_1.c index 44176176d..bd33a21af 100644 --- a/src/pokenav_menu_handler_1.c +++ b/src/pokenav_menu_handler_1.c @@ -11,15 +11,15 @@ struct Pokenav1Struct s16 cursorPos; u16 currMenuItem; u16 helpBarIndex; - u32 unk8; + u32 menuId; u32 (*callback)(struct Pokenav1Struct*); }; static bool32 UpdateMenuCursorPos(struct Pokenav1Struct *state); static void ReturnToConditionMenu(struct Pokenav1Struct *state); static void ReturnToMainMenu(struct Pokenav1Struct *state); -static u32 sub_81C97BC(struct Pokenav1Struct *state); -static void sub_81C97B0(struct Pokenav1Struct *state, u32 a1); +static u32 GetMenuId(struct Pokenav1Struct *state); +static void SetMenuIdAndCB(struct Pokenav1Struct *state, u32 a1); static u32 CB2_ReturnToConditionMenu(struct Pokenav1Struct *state); static u32 CB2_ReturnToMainMenu(struct Pokenav1Struct *state); static u32 HandleConditionSearchMenuInput(struct Pokenav1Struct *state); @@ -97,7 +97,7 @@ static u8 GetPokenavMainMenuType(void) return menuType; } -bool32 PokenavCallback_Init_0(void) +bool32 PokenavCallback_Init_MainMenuCursorOnMap(void) { struct Pokenav1Struct *state = AllocSubstruct(1, sizeof(struct Pokenav1Struct)); if (!state) @@ -111,7 +111,7 @@ bool32 PokenavCallback_Init_0(void) return TRUE; } -bool32 PokenavCallback_Init_4(void) +bool32 PokenavCallback_Init_MainMenuCursorOnMatchCall(void) { struct Pokenav1Struct *state = AllocSubstruct(1, sizeof(struct Pokenav1Struct)); if (!state) @@ -125,7 +125,7 @@ bool32 PokenavCallback_Init_4(void) return TRUE; } -bool32 PokenavCallback_Init_5(void) +bool32 PokenavCallback_Init_MainMenuCursorOnRibbons(void) { struct Pokenav1Struct *state = AllocSubstruct(1, sizeof(struct Pokenav1Struct)); if (!state) @@ -138,7 +138,7 @@ bool32 PokenavCallback_Init_5(void) return TRUE; } -bool32 PokenavCallback_Init_2(void) +bool32 PokenavCallback_Init_ConditionMenu(void) { struct Pokenav1Struct *state = AllocSubstruct(1, sizeof(struct Pokenav1Struct)); if (!state) @@ -152,7 +152,7 @@ bool32 PokenavCallback_Init_2(void) return TRUE; } -bool32 PokenavCallback_Init_3(void) +bool32 PokenavCallback_Init_ConditionSearchMenu(void) { struct Pokenav1Struct *state = AllocSubstruct(1, sizeof(struct Pokenav1Struct)); if (!state) @@ -200,13 +200,13 @@ static u32 (*GetMainMenuInputHandler(void))(struct Pokenav1Struct*) } } -u32 sub_81C941C(void) +u32 GetMenuHandlerCallback(void) { struct Pokenav1Struct *state = GetSubstructPtr(1); return state->callback(state); } -void sub_81C9430(void) +void FreeMenuHandlerSubstruct1(void) { FreePokenavSubstruct(1); } @@ -222,7 +222,7 @@ static u32 HandleMainMenuInput(struct Pokenav1Struct *state) { case POKENAV_MENUITEM_MAP: state->helpBarIndex = gSaveBlock2Ptr->regionMapZoom ? HELPBAR_MAP_ZOOMED_IN : HELPBAR_MAP_ZOOMED_OUT; - sub_81C97B0(state, POKENAV_MENU_6); + SetMenuIdAndCB(state, POKENAV_REGION_MAP); return POKENAV_MENU_FUNC_OPEN_FEATURE; case POKENAV_MENUITEM_CONDITION: state->menuType = POKENAV_MENU_TYPE_CONDITION; @@ -232,13 +232,13 @@ static u32 HandleMainMenuInput(struct Pokenav1Struct *state) return POKENAV_MENU_FUNC_OPEN_CONDITION; case POKENAV_MENUITEM_MATCH_CALL: state->helpBarIndex = HELPBAR_MC_TRAINER_LIST; - sub_81C97B0(state, POKENAV_MENU_B); + SetMenuIdAndCB(state, POKENAV_MATCH_CALL); return POKENAV_MENU_FUNC_OPEN_FEATURE; case POKENAV_MENUITEM_RIBBONS: if (CanViewRibbonsMenu()) { state->helpBarIndex = HELPBAR_RIBBONS_MON_LIST; - sub_81C97B0(state, POKENAV_MENU_C); + SetMenuIdAndCB(state, POKENAV_RIBBONS_MON_LIST); return POKENAV_MENU_FUNC_OPEN_FEATURE; } else @@ -268,7 +268,7 @@ static u32 HandleMainMenuInputTutorial(struct Pokenav1Struct *state) if (sMenuItems[state->menuType][state->cursorPos] == POKENAV_MENUITEM_MATCH_CALL) { state->helpBarIndex = HELPBAR_MC_TRAINER_LIST; - sub_81C97B0(state, POKENAV_MENU_B); + SetMenuIdAndCB(state, POKENAV_MATCH_CALL); return POKENAV_MENU_FUNC_OPEN_FEATURE; } else @@ -304,7 +304,7 @@ static u32 HandleMainMenuInputEndTutorial(struct Pokenav1Struct *state) else if (menuItem == POKENAV_MENUITEM_MATCH_CALL) { state->helpBarIndex = HELPBAR_MC_TRAINER_LIST; - sub_81C97B0(state, POKENAV_MENU_B); + SetMenuIdAndCB(state, POKENAV_MATCH_CALL); return POKENAV_MENU_FUNC_OPEN_FEATURE; } else @@ -355,7 +355,7 @@ static u32 HandleConditionMenuInput(struct Pokenav1Struct *state) return POKENAV_MENU_FUNC_OPEN_CONDITION_SEARCH; case POKENAV_MENUITEM_CONDITION_PARTY: state->helpBarIndex = 0; - sub_81C97B0(state, POKENAV_MENU_7); + SetMenuIdAndCB(state, POKENAV_CONDITION_PARTY); return POKENAV_MENU_FUNC_OPEN_FEATURE; case POKENAV_MENUITEM_CONDITION_CANCEL: PlaySE(SE_SELECT); @@ -393,7 +393,7 @@ static u32 HandleConditionSearchMenuInput(struct Pokenav1Struct *state) if (menuItem != POKENAV_MENUITEM_CONDITION_SEARCH_CANCEL) { SetSelectedConditionSearch(menuItem - POKENAV_MENUITEM_CONDITION_SEARCH_COOL); - sub_81C97B0(state, POKENAV_MENU_8); + SetMenuIdAndCB(state, POKENAV_CONDITION_SEARCH_RESULTS); state->helpBarIndex = HELPBAR_CONDITION_MON_LIST; return POKENAV_MENU_FUNC_OPEN_FEATURE; } @@ -434,15 +434,15 @@ static u32 CB2_ReturnToConditionMenu(struct Pokenav1Struct *state) return POKENAV_MENU_FUNC_RETURN_TO_CONDITION; } -static void sub_81C97B0(struct Pokenav1Struct *state, u32 a1) +static void SetMenuIdAndCB(struct Pokenav1Struct *state, u32 menuId) { - state->unk8 = a1; - state->callback = sub_81C97BC; + state->menuId = menuId; + state->callback = GetMenuId; } -static u32 sub_81C97BC(struct Pokenav1Struct *state) +static u32 GetMenuId(struct Pokenav1Struct *state) { - return state->unk8; + return state->menuId; } static void ReturnToMainMenu(struct Pokenav1Struct *state) diff --git a/src/pokenav_menu_handler_2.c b/src/pokenav_menu_handler_2.c index 94b816b6d..1dfbf3417 100644 --- a/src/pokenav_menu_handler_2.c +++ b/src/pokenav_menu_handler_2.c @@ -17,26 +17,24 @@ #include "constants/songs.h" #include "constants/rgb.h" -// Top Menu - struct Pokenav2Struct { - bool32 (*callback)(void); + bool32 (*isTaskActiveCB)(void); u32 loopedTaskId; u16 optionDescWindowId; u8 bg3ScrollTaskId; u8 cursorPos; bool8 otherIconsInMotion; - u8 field_00d; + bool8 pokenavAlreadyOpen; bool32 iconVisible[MAX_POKENAV_MENUITEMS]; struct Sprite * field_028; struct Sprite * iconSprites[MAX_POKENAV_MENUITEMS][4]; u16 bg1TilemapBuffer[0x400]; }; -static struct Pokenav2Struct * sub_81C9958(void); -static bool32 sub_81C99FC(void); -static u32 sub_81C9A10(s32 state); +static struct Pokenav2Struct * OpenPokenavMenu(void); +static bool32 GetCurrentLoopedTaskActive(void); +static u32 LoopedTask_OpenMenu(s32 state); static u32 LoopedTask_MoveMenuCursor(s32 state); static u32 LoopedTask_OpenConditionMenu(s32 state); static u32 LoopedTask_ReturnToMainMenu(s32 state); @@ -337,59 +335,56 @@ static bool32 sub_81C98D4(void) return FALSE; } -bool32 sub_81C9924(void) +bool32 OpenPokenavMenuInitial(void) { - struct Pokenav2Struct * unk = sub_81C9958(); + struct Pokenav2Struct * state = OpenPokenavMenu(); - if (unk == NULL) + if (state == NULL) return FALSE; - unk->field_00d = 0; + state->pokenavAlreadyOpen = FALSE; return TRUE; } -bool32 sub_81C9940(void) +bool32 OpenPokenavMenuNotInitial(void) { - struct Pokenav2Struct * unk = sub_81C9958(); + struct Pokenav2Struct * state = OpenPokenavMenu(); - if (unk == NULL) + if (state == NULL) return FALSE; - unk->field_00d = 1; + state->pokenavAlreadyOpen = TRUE; return TRUE; } -static struct Pokenav2Struct * sub_81C9958(void) +static struct Pokenav2Struct * OpenPokenavMenu(void) { - struct Pokenav2Struct * unk = AllocSubstruct(2, sizeof(struct Pokenav2Struct)); + struct Pokenav2Struct * state = AllocSubstruct(2, sizeof(struct Pokenav2Struct)); - if (unk != NULL) + if (state != NULL) { - unk->otherIconsInMotion = FALSE; - unk->loopedTaskId = CreateLoopedTask(sub_81C9A10, 1); - unk->callback = sub_81C99FC; + state->otherIconsInMotion = FALSE; + state->loopedTaskId = CreateLoopedTask(LoopedTask_OpenMenu, 1); + state->isTaskActiveCB = GetCurrentLoopedTaskActive; } - return unk; + return state; } - void CreateMenuHandlerLoopedTask(s32 ltIdx) { - struct Pokenav2Struct * unk = GetSubstructPtr(2); - - unk->loopedTaskId = CreateLoopedTask(sMenuHandlerLoopTaskFuncs[ltIdx], 1); - unk->callback = sub_81C99FC; + struct Pokenav2Struct * state = GetSubstructPtr(2); + state->loopedTaskId = CreateLoopedTask(sMenuHandlerLoopTaskFuncs[ltIdx], 1); + state->isTaskActiveCB = GetCurrentLoopedTaskActive; } -bool32 sub_81C99C0(void) +bool32 IsMenuHandlerLoopedTaskActive(void) { - struct Pokenav2Struct * unk = GetSubstructPtr(2); - - return unk->callback(); + struct Pokenav2Struct * state = GetSubstructPtr(2); + return state->isTaskActiveCB(); } -void sub_81C99D4(void) +void FreeMenuHandlerSubstruct2(void) { struct Pokenav2Struct * unk = GetSubstructPtr(2); @@ -400,14 +395,14 @@ void sub_81C99D4(void) FreePokenavSubstruct(2); } -static bool32 sub_81C99FC(void) +static bool32 GetCurrentLoopedTaskActive(void) { struct Pokenav2Struct * unk = GetSubstructPtr(2); return IsLoopedTaskActive(unk->loopedTaskId); } -static u32 sub_81C9A10(s32 state) +static u32 LoopedTask_OpenMenu(s32 state) { struct Pokenav2Struct * unk = GetSubstructPtr(2); @@ -466,12 +461,12 @@ static u32 sub_81C9A10(s32 state) ShowBg(1); ShowBg(2); ShowBg(3); - if (unk->field_00d) - sub_81C7AC0(1); + if (unk->pokenavAlreadyOpen) + PokenavFadeScreen(1); else { PlaySE(SE_PN_ON); - sub_81C7AC0(3); + PokenavFadeScreen(3); } switch (GetPokenavMenuType()) { @@ -741,7 +736,7 @@ static u32 LoopedTask_OpenPokenavFeature(s32 state) return LT_PAUSE; if (sub_81C8010()) return LT_PAUSE; - sub_81C7AC0(0); + PokenavFadeScreen(0); return LT_INC_AND_PAUSE; case 3: if (IsPaletteFadeActive()) diff --git a/src/pokenav_region_map.c b/src/pokenav_region_map.c index be30ca94d..59eaf6b71 100755 --- a/src/pokenav_region_map.c +++ b/src/pokenav_region_map.c @@ -13,23 +13,27 @@ #include "task.h" #include "text_window.h" #include "window.h" +#include "constants/rgb.h" #include "constants/songs.h" +#include "constants/region_map_sections.h" + +#define NUM_CITY_MAPS 22 struct Pokenav5Struct { u8 filler0[0xC]; - bool32 unkC; - u32 (*unk10)(struct Pokenav5Struct *); + bool32 zoomDisabled; + u32 (*callback)(struct Pokenav5Struct *); }; struct Pokenav5Struct_2 { - bool32 (*unk0)(void); - u32 unk4; - u16 unk8; - struct Sprite *cityFeatureTextSprites[3]; - u8 unk18[0x800]; - u8 cityZoomPics[22][0xC8]; + bool32 (*isTaskActiveCB)(void); + u32 loopTaskId; + u16 infoWindowId; + struct Sprite *cityZoomTextSprites[3]; + u8 tilemapBuffer[0x800]; + u8 cityZoomPics[NUM_CITY_MAPS][200]; }; struct CityMapEntry @@ -39,45 +43,43 @@ struct CityMapEntry const u32 *tilemap; }; -static u32 sub_81CC568(struct Pokenav5Struct *); -static u32 sub_81CC5B4(struct Pokenav5Struct *); -static u32 sub_81CC5DC(struct Pokenav5Struct *); -static u32 sub_81CC6F4(s32); -static u32 sub_81CCD34(s32); -static bool32 sub_81CC6BC(void); -static void sub_81CC9EC(void); -static void sub_81CC9C0(void); -static void sub_81CCD10(void); -static bool32 sub_81CCD24(void); -static void sub_81CCA1C(struct Pokenav5Struct_2 *); -static bool32 sub_81CCAFC(void); -static void sub_81CCB0C(struct Pokenav5Struct_2 *); -static bool32 sub_81CCC4C(struct Pokenav5Struct_2 *); -static void sub_81CCC5C(int); -static bool32 sub_81CCC88(void); -static void sub_81CCE58(void); -static void sub_81CCD70(struct Pokenav5Struct_2 *, int, int); -static void sub_81CCDE8(struct Pokenav5Struct_2 *, int, int); -static void sub_81CCFA4(int); -static void sub_81CCC9C(u8 taskId); -static void sub_81CCF78(void); -void sub_81CCEF4(struct Sprite *sprite); -u32 sub_81CC848(s32); -u32 sub_81CC878(s32); -u32 sub_81CC8D8(s32); -u32 sub_81CC95C(s32); - -extern const u16 gHoennMapZoomIcons_Pal[]; -extern const struct SpriteTemplate gUnknown_086231D0; -extern const u32 gHoennMapZoomIcons_Gfx[]; - -const u16 gUnknown_08622868[] = INCBIN_U16("graphics/pokenav/8622868.gbapal"); -const u32 gUnknown_08622888[] = INCBIN_U32("graphics/pokenav/zoom_tiles.4bpp.lz"); +static u32 HandleRegionMapInput(struct Pokenav5Struct *); +static u32 HandleRegionMapInputZoomDisabled(struct Pokenav5Struct *); +static u32 GetExitRegionMapMenuId(struct Pokenav5Struct *); +static u32 LoopedTask_OpenRegionMap(s32); +static u32 LoopedTask_DecompressCityMaps(s32); +static bool32 GetCurrentLoopedTaskActive(void); +static void FreeCityZoomViewGfx(void); +static void LoadCityZoomViewGfx(void); +static void DecompressCityMaps(void); +static bool32 IsDecompressCityMapsActive(void); +static void LoadPokenavRegionMapGfx(struct Pokenav5Struct_2 *); +static bool32 TryFreeTempTileDataBuffers(void); +static void UpdateMapSecInfoWindow(struct Pokenav5Struct_2 *); +static bool32 IsDma3ManagerBusyWithBgCopy_(struct Pokenav5Struct_2 *); +static void ChangeBgYForZoom(bool32); +static bool32 IsChangeBgYForZoomActive(void); +static void CreateCityZoomTextSprites(void); +static void DrawCityMap(struct Pokenav5Struct_2 *, int, int); +static void PrintLandmarkNames(struct Pokenav5Struct_2 *, int, int); +static void SetCityZoomTextInvisibility(bool32); +static void Task_ChangeBgYForZoom(u8 taskId); +static void UpdateCityZoomTextPosition(void); +static void SpriteCB_CityZoomText(struct Sprite *sprite); +static u32 LoopedTask_UpdateInfoAfterCursorMove(s32); +static u32 LoopedTask_RegionMapZoomOut(s32); +static u32 LoopedTask_RegionMapZoomIn(s32); +static u32 LoopedTask_ExitRegionMap(s32); + +extern const u16 gRegionMapCityZoomTiles_Pal[]; +extern const u32 gRegionMapCityZoomText_Gfx[]; + +static const u16 sMapSecInfoWindow_Pal[] = INCBIN_U16("graphics/pokenav/region_map_info_window.gbapal"); +static const u32 sRegionMapCityZoomTiles_Gfx[] = INCBIN_U32("graphics/pokenav/city_zoom_tiles.4bpp.lz"); #include "data/region_map/city_map_tilemaps.h" - -const struct BgTemplate gUnknown_086230D8[3] = +static const struct BgTemplate sRegionMapBgTemplates[3] = { { .bg = 1, @@ -108,27 +110,27 @@ const struct BgTemplate gUnknown_086230D8[3] = }, }; -const LoopedTask gUnknown_086230E4[] = +static const LoopedTask sRegionMapLoopTaskFuncs[] = { - NULL, - sub_81CC848, - sub_81CC878, - sub_81CC8D8, - sub_81CC95C + [POKENAV_MAP_FUNC_NONE] = NULL, + [POKENAV_MAP_FUNC_CURSOR_MOVED] = LoopedTask_UpdateInfoAfterCursorMove, + [POKENAV_MAP_FUNC_ZOOM_OUT] = LoopedTask_RegionMapZoomOut, + [POKENAV_MAP_FUNC_ZOOM_IN] = LoopedTask_RegionMapZoomIn, + [POKENAV_MAP_FUNC_EXIT] = LoopedTask_ExitRegionMap }; -const struct CompressedSpriteSheet gUnknown_086230F8[1] = +static const struct CompressedSpriteSheet sCityZoomTextSpriteSheet[1] = { - {gHoennMapZoomIcons_Gfx, 0x800, 6} + {gRegionMapCityZoomText_Gfx, 0x800, 6} }; -const struct SpritePalette gUnknown_08623100[] = +static const struct SpritePalette sCityZoomTilesSpritePalette[] = { - {gHoennMapZoomIcons_Pal, 11}, + {gRegionMapCityZoomTiles_Pal, 11}, {} }; -const struct WindowTemplate gUnknown_08623110 = +static const struct WindowTemplate sMapSecInfoWindowTemplate = { .bg = 1, .tilemapLeft = 17, @@ -141,7 +143,7 @@ const struct WindowTemplate gUnknown_08623110 = #include "data/region_map/city_map_entries.h" -const struct OamData gUnknown_086231C8 = +const struct OamData sCityZoomTextSprite_OamData = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -155,18 +157,18 @@ const struct OamData gUnknown_086231C8 = .paletteNum = 0, }; -const struct SpriteTemplate gUnknown_086231D0 = +static const struct SpriteTemplate sCityZoomTextSpriteTemplate = { .tileTag = 6, .paletteTag = 11, - .oam = &gUnknown_086231C8, + .oam = &sCityZoomTextSprite_OamData, .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_81CCEF4, + .callback = SpriteCB_CityZoomText, }; -u32 PokenavCallback_Init_6(void) +u32 PokenavCallback_Init_RegionMap(void) { struct Pokenav5Struct *state = AllocSubstruct(3, sizeof(struct Pokenav5Struct)); if (!state) @@ -175,105 +177,105 @@ u32 PokenavCallback_Init_6(void) if (!AllocSubstruct(16, sizeof(struct RegionMap))) return FALSE; - state->unkC = sub_8124668(gMapHeader.regionMapSectionId); - if (!state->unkC) - state->unk10 = sub_81CC568; + state->zoomDisabled = IsEventIslandMapSecId(gMapHeader.regionMapSectionId); + if (!state->zoomDisabled) + state->callback = HandleRegionMapInput; else - state->unk10 = sub_81CC5B4; + state->callback = HandleRegionMapInputZoomDisabled; return TRUE; } -void sub_81CC524(void) +void FreeRegionMapSubstruct1(void) { - gSaveBlock2Ptr->regionMapZoom = sub_8124658(); + gSaveBlock2Ptr->regionMapZoom = IsRegionMapZoomed(); FreePokenavSubstruct(16); FreePokenavSubstruct(3); } -u32 sub_81CC554(void) +u32 GetRegionMapCallback(void) { struct Pokenav5Struct *state = GetSubstructPtr(3); - return state->unk10(state); + return state->callback(state); } -static u32 sub_81CC568(struct Pokenav5Struct *state) +static u32 HandleRegionMapInput(struct Pokenav5Struct *state) { - switch (sub_81230AC()) + switch (DoRegionMapInputCallback()) { - case 3: - return 1; - case 4: - if (!sub_8124658()) - return 3; - return 2; - case 5: - state->unk10 = sub_81CC5DC; - return 4; + case MAP_INPUT_MOVE_END: + return POKENAV_MAP_FUNC_CURSOR_MOVED; + case MAP_INPUT_A_BUTTON: + if (!IsRegionMapZoomed()) + return POKENAV_MAP_FUNC_ZOOM_IN; + return POKENAV_MAP_FUNC_ZOOM_OUT; + case MAP_INPUT_B_BUTTON: + state->callback = GetExitRegionMapMenuId; + return POKENAV_MAP_FUNC_EXIT; } - return 0; + return POKENAV_MAP_FUNC_NONE; } -static u32 sub_81CC5B4(struct Pokenav5Struct *state) +static u32 HandleRegionMapInputZoomDisabled(struct Pokenav5Struct *state) { if (gMain.newKeys & B_BUTTON) { - state->unk10 = sub_81CC5DC; - return 4; + state->callback = GetExitRegionMapMenuId; + return POKENAV_MAP_FUNC_EXIT; } - return 0; + return POKENAV_MAP_FUNC_NONE; } -static u32 sub_81CC5DC(struct Pokenav5Struct *state) +static u32 GetExitRegionMapMenuId(struct Pokenav5Struct *state) { - return POKENAV_MENU_1; + return POKENAV_MAIN_MENU_CURSOR_ON_MAP; } -bool32 sub_81CC5E4(void) +bool32 GetZoomDisabled(void) { struct Pokenav5Struct *state = GetSubstructPtr(3); - return state->unkC; + return state->zoomDisabled; } -bool32 sub_81CC5F4(void) +bool32 OpenPokenavRegionMap(void) { struct Pokenav5Struct_2 *state = AllocSubstruct(4, sizeof(struct Pokenav5Struct_2)); if (!state) return FALSE; - state->unk4 = CreateLoopedTask(sub_81CC6F4, 1); - state->unk0 = sub_81CC6BC; + state->loopTaskId = CreateLoopedTask(LoopedTask_OpenRegionMap, 1); + state->isTaskActiveCB = GetCurrentLoopedTaskActive; return TRUE; } -void sub_81CC62C(s32 index) +void CreateRegionMapLoopedTask(s32 index) { struct Pokenav5Struct_2 *state = GetSubstructPtr(4); - state->unk4 = CreateLoopedTask(gUnknown_086230E4[index], 1); - state->unk0 = sub_81CC6BC; + state->loopTaskId = CreateLoopedTask(sRegionMapLoopTaskFuncs[index], 1); + state->isTaskActiveCB = GetCurrentLoopedTaskActive; } -u32 sub_81CC65C(void) +bool32 IsRegionMapLoopedTaskActive(void) { struct Pokenav5Struct_2 *state = GetSubstructPtr(4); - return state->unk0(); + return state->isTaskActiveCB(); } -void sub_81CC670(void) +void FreeRegionMapSubstruct2(void) { struct Pokenav5Struct_2 *state = GetSubstructPtr(4); FreeRegionMapIconResources(); - sub_81CC9EC(); - RemoveWindow(state->unk8); + FreeCityZoomViewGfx(); + RemoveWindow(state->infoWindowId); FreePokenavSubstruct(16); FreePokenavSubstruct(4); SetPokenavVBlankCallback(); SetBgMode(0); } -static void sub_81CC6A4(void) +static void VBlankCB_RegionMap(void) { TransferPlttBuffer(); LoadOam(); @@ -281,23 +283,23 @@ static void sub_81CC6A4(void) UpdateRegionMapVideoRegs(); } -static bool32 sub_81CC6BC(void) +static bool32 GetCurrentLoopedTaskActive(void) { struct Pokenav5Struct_2 *state = GetSubstructPtr(4); - return IsLoopedTaskActive(state->unk4); + return IsLoopedTaskActive(state->loopTaskId); } -static bool8 sub_81CC6D0(void) +static bool8 ShouldOpenRegionMapZoomed(void) { - if (sub_81CC5E4()) + if (GetZoomDisabled()) return FALSE; - return gSaveBlock2Ptr->regionMapZoom == 1; + return gSaveBlock2Ptr->regionMapZoom == TRUE; } -static u32 sub_81CC6F4(s32 taskState) +static u32 LoopedTask_OpenRegionMap(s32 taskState) { - int var0; + int menuGfxId; struct RegionMap *regionMap; struct Pokenav5Struct_2 *state = GetSubstructPtr(4); switch (taskState) @@ -308,209 +310,209 @@ static u32 sub_81CC6F4(s32 taskState) HideBg(2); HideBg(3); SetBgMode(1); - InitBgTemplates(gUnknown_086230D8, ARRAY_COUNT(gUnknown_086230D8) - 1); + InitBgTemplates(sRegionMapBgTemplates, ARRAY_COUNT(sRegionMapBgTemplates) - 1); regionMap = GetSubstructPtr(16); - sub_8122CF8(regionMap, &gUnknown_086230D8[1], sub_81CC6D0()); - sub_81CC9C0(); - return 0; + InitRegionMapData(regionMap, &sRegionMapBgTemplates[1], ShouldOpenRegionMapZoomed()); + LoadCityZoomViewGfx(); + return LT_INC_AND_PAUSE; case 1: - if (sub_8122DB0()) - return 2; + if (LoadRegionMapGfx()) + return LT_PAUSE; - if (!sub_81CC5E4()) + if (!GetZoomDisabled()) { CreateRegionMapPlayerIcon(4, 9); CreateRegionMapCursor(5, 10); - sub_812454C(); + TrySetPlayerIconBlink(); } else { - sub_8123030(0, 6); + sub_8123030(RGB_BLACK, 6); } - return 0; + return LT_INC_AND_PAUSE; case 2: - sub_81CCD10(); - return 1; + DecompressCityMaps(); + return LT_INC_AND_CONTINUE; case 3: - if (sub_81CCD24()) - return 2; + if (IsDecompressCityMapsActive()) + return LT_PAUSE; - sub_81CCA1C(state); - return 1; + LoadPokenavRegionMapGfx(state); + return LT_INC_AND_CONTINUE; case 4: - if (sub_81CCAFC()) - return 2; + if (TryFreeTempTileDataBuffers()) + return LT_PAUSE; - sub_81CCB0C(state); + UpdateMapSecInfoWindow(state); sub_81C7B40(); - return 0; + return LT_INC_AND_PAUSE; case 5: - if (sub_81CCC4C(state)) - return 2; + if (IsDma3ManagerBusyWithBgCopy_(state)) + return LT_PAUSE; ShowBg(1); ShowBg(2); - SetVBlankCallback_(sub_81CC6A4); - return 0; + SetVBlankCallback_(VBlankCB_RegionMap); + return LT_INC_AND_PAUSE; case 6: - if (!sub_81CC6D0()) - var0 = 4; + if (!ShouldOpenRegionMapZoomed()) + menuGfxId = POKENAV_GFX_MAP_MENU_ZOOMED_OUT; else - var0 = 5; + menuGfxId = POKENAV_GFX_MAP_MENU_ZOOMED_IN; - LoadLeftHeaderGfxForIndex(var0); - sub_81C7FA0(var0, 1, 1); - sub_81C7AC0(1); - return 0; + LoadLeftHeaderGfxForIndex(menuGfxId); + sub_81C7FA0(menuGfxId, 1, 1); + PokenavFadeScreen(1); + return LT_INC_AND_PAUSE; case 7: if (IsPaletteFadeActive() || sub_81C8010()) - return 2; - return 1; + return LT_PAUSE; + return LT_INC_AND_CONTINUE; default: - return 4; + return LT_FINISH; } } -u32 sub_81CC848(s32 taskState) +static u32 LoopedTask_UpdateInfoAfterCursorMove(s32 taskState) { struct Pokenav5Struct_2 *state = GetSubstructPtr(4); switch (taskState) { case 0: - sub_81CCB0C(state); - return 0; + UpdateMapSecInfoWindow(state); + return LT_INC_AND_PAUSE; case 1: - if (sub_81CCC4C(state)) - return 2; + if (IsDma3ManagerBusyWithBgCopy_(state)) + return LT_PAUSE; break; } - return 4; + return LT_FINISH; } -u32 sub_81CC878(s32 taskState) +static u32 LoopedTask_RegionMapZoomOut(s32 taskState) { switch (taskState) { case 0: PlaySE(SE_SELECT); - sub_81CCC5C(0); - sub_8123418(); - return 0; + ChangeBgYForZoom(FALSE); + SetRegionMapDataForZoom(); + return LT_INC_AND_PAUSE; case 1: - if (sub_8123514() || sub_81CCC88()) - return 2; + if (UpdateRegionMapZoom() || IsChangeBgYForZoomActive()) + return LT_PAUSE; PrintHelpBarText(HELPBAR_MAP_ZOOMED_OUT); - return 0; + return LT_INC_AND_PAUSE; case 2: if (WaitForHelpBar()) - return 2; + return LT_PAUSE; - sub_81C7E14(4); + sub_81C7E14(POKENAV_GFX_MAP_MENU_ZOOMED_OUT); break; } - return 4; + return LT_FINISH; } -u32 sub_81CC8D8(s32 taskState) +static u32 LoopedTask_RegionMapZoomIn(s32 taskState) { struct Pokenav5Struct_2 *state = GetSubstructPtr(4); switch (taskState) { case 0: PlaySE(SE_SELECT); - sub_81CCB0C(state); - return 0; + UpdateMapSecInfoWindow(state); + return LT_INC_AND_PAUSE; case 1: - if (sub_81CCC4C(state)) - return 2; + if (IsDma3ManagerBusyWithBgCopy_(state)) + return LT_PAUSE; - sub_81CCC5C(1); - sub_8123418(); - return 0; + ChangeBgYForZoom(TRUE); + SetRegionMapDataForZoom(); + return LT_INC_AND_PAUSE; case 2: - if (sub_8123514() || sub_81CCC88()) - return 2; + if (UpdateRegionMapZoom() || IsChangeBgYForZoomActive()) + return LT_PAUSE; PrintHelpBarText(HELPBAR_MAP_ZOOMED_IN); - return 0; + return LT_INC_AND_PAUSE; case 3: if (WaitForHelpBar()) - return 2; + return LT_PAUSE; - sub_81C7E14(5); + sub_81C7E14(POKENAV_GFX_MAP_MENU_ZOOMED_IN); break; } - return 4; + return LT_FINISH; } -u32 sub_81CC95C(s32 taskState) +static u32 LoopedTask_ExitRegionMap(s32 taskState) { switch (taskState) { case 0: PlaySE(SE_SELECT); - sub_81C7AC0(0); - return 0; + PokenavFadeScreen(0); + return LT_INC_AND_PAUSE; case 1: if (IsPaletteFadeActive()) - return 2; + return LT_PAUSE; sub_81C7FDC(); sub_81C78A0(); - return 0; + return LT_INC_AND_PAUSE; case 2: if (MainMenuLoopedTaskIsBusy()) - return 2; + return LT_PAUSE; HideBg(1); HideBg(2); HideBg(3); - return 0; + return LT_INC_AND_PAUSE; } - return 4; + return LT_FINISH; } -static void sub_81CC9C0(void) +static void LoadCityZoomViewGfx(void) { int i; - for (i = 0; i < ARRAY_COUNT(gUnknown_086230F8); i++) - LoadCompressedSpriteSheet(&gUnknown_086230F8[i]); + for (i = 0; i < ARRAY_COUNT(sCityZoomTextSpriteSheet); i++) + LoadCompressedSpriteSheet(&sCityZoomTextSpriteSheet[i]); - Pokenav_AllocAndLoadPalettes(gUnknown_08623100); - sub_81CCE58(); + Pokenav_AllocAndLoadPalettes(sCityZoomTilesSpritePalette); + CreateCityZoomTextSprites(); } -static void sub_81CC9EC(void) +static void FreeCityZoomViewGfx(void) { int i; struct Pokenav5Struct_2 *state = GetSubstructPtr(4); FreeSpriteTilesByTag(6); FreeSpritePaletteByTag(11); - for (i = 0; i < 3; i++) - DestroySprite(state->cityFeatureTextSprites[i]); + for (i = 0; i < (int)ARRAY_COUNT(state->cityZoomTextSprites); i++) + DestroySprite(state->cityZoomTextSprites[i]); } -static void sub_81CCA1C(struct Pokenav5Struct_2 *state) +static void LoadPokenavRegionMapGfx(struct Pokenav5Struct_2 *state) { sub_8199DF0(1, PIXEL_FILL(0), 0x40, 1); sub_8199DF0(1, PIXEL_FILL(1), 0x41, 1); - CpuFill16(0x1040, state->unk18, 0x800); - SetBgTilemapBuffer(1, state->unk18); - state->unk8 = AddWindow(&gUnknown_08623110); - LoadUserWindowBorderGfx_(state->unk8, 0x42, 0x40); - DrawTextBorderOuter(state->unk8, 0x42, 4); - decompress_and_copy_tile_data_to_vram(1, gUnknown_08622888, 0, 0, 0); - FillWindowPixelBuffer(state->unk8, PIXEL_FILL(1)); - PutWindowTilemap(state->unk8); - CopyWindowToVram(state->unk8, 3); - CopyPaletteIntoBufferUnfaded(gUnknown_08622868, 0x10, 0x20); - CopyPaletteIntoBufferUnfaded(gHoennMapZoomIcons_Pal, 0x30, 0x20); - if (!sub_8124658()) + CpuFill16(0x1040, state->tilemapBuffer, 0x800); + SetBgTilemapBuffer(1, state->tilemapBuffer); + state->infoWindowId = AddWindow(&sMapSecInfoWindowTemplate); + LoadUserWindowBorderGfx_(state->infoWindowId, 0x42, 0x40); + DrawTextBorderOuter(state->infoWindowId, 0x42, 4); + decompress_and_copy_tile_data_to_vram(1, sRegionMapCityZoomTiles_Gfx, 0, 0, 0); + FillWindowPixelBuffer(state->infoWindowId, PIXEL_FILL(1)); + PutWindowTilemap(state->infoWindowId); + CopyWindowToVram(state->infoWindowId, 3); + CopyPaletteIntoBufferUnfaded(sMapSecInfoWindow_Pal, 0x10, 0x20); + CopyPaletteIntoBufferUnfaded(gRegionMapCityZoomTiles_Pal, 0x30, 0x20); + if (!IsRegionMapZoomed()) ChangeBgY(1, -0x6000, 0); else ChangeBgY(1, 0, 0); @@ -518,68 +520,70 @@ static void sub_81CCA1C(struct Pokenav5Struct_2 *state) ChangeBgX(1, 0, 0); } -static bool32 sub_81CCAFC(void) +static bool32 TryFreeTempTileDataBuffers(void) { return free_temp_tile_data_buffers_if_possible(); } -static void sub_81CCB0C(struct Pokenav5Struct_2 *state) +static void UpdateMapSecInfoWindow(struct Pokenav5Struct_2 *state) { struct RegionMap *regionMap = GetSubstructPtr(16); - switch (regionMap->iconDrawType) + switch (regionMap->mapSecType) { case MAPSECTYPE_CITY_CANFLY: - FillWindowPixelBuffer(state->unk8, PIXEL_FILL(1)); - PutWindowRectTilemap(state->unk8, 0, 0, 12, 2); - AddTextPrinterParameterized(state->unk8, 7, regionMap->mapSecName, 0, 1, TEXT_SPEED_FF, NULL); - sub_81CCD70(state, regionMap->mapSecId, regionMap->posWithinMapSec); - CopyWindowToVram(state->unk8, 3); - sub_81CCFA4(0); + FillWindowPixelBuffer(state->infoWindowId, PIXEL_FILL(1)); + PutWindowRectTilemap(state->infoWindowId, 0, 0, 12, 2); + AddTextPrinterParameterized(state->infoWindowId, 7, regionMap->mapSecName, 0, 1, TEXT_SPEED_FF, NULL); + DrawCityMap(state, regionMap->mapSecId, regionMap->posWithinMapSec); + CopyWindowToVram(state->infoWindowId, 3); + SetCityZoomTextInvisibility(FALSE); break; case MAPSECTYPE_CITY_CANTFLY: - FillWindowPixelBuffer(state->unk8, PIXEL_FILL(1)); - PutWindowRectTilemap(state->unk8, 0, 0, 12, 2); - AddTextPrinterParameterized(state->unk8, 7, regionMap->mapSecName, 0, 1, TEXT_SPEED_FF, NULL); + FillWindowPixelBuffer(state->infoWindowId, PIXEL_FILL(1)); + PutWindowRectTilemap(state->infoWindowId, 0, 0, 12, 2); + AddTextPrinterParameterized(state->infoWindowId, 7, regionMap->mapSecName, 0, 1, TEXT_SPEED_FF, NULL); FillBgTilemapBufferRect(1, 0x1041, 17, 6, 12, 11, 17); - CopyWindowToVram(state->unk8, 3); - sub_81CCFA4(1); + CopyWindowToVram(state->infoWindowId, 3); + SetCityZoomTextInvisibility(TRUE); break; - case MAPSECTYPE_PLAIN: + case MAPSECTYPE_ROUTE: case MAPSECTYPE_BATTLE_FRONTIER: - FillWindowPixelBuffer(state->unk8, PIXEL_FILL(1)); - PutWindowTilemap(state->unk8); - AddTextPrinterParameterized(state->unk8, 7, regionMap->mapSecName, 0, 1, TEXT_SPEED_FF, NULL); - sub_81CCDE8(state, regionMap->mapSecId, regionMap->posWithinMapSec); - CopyWindowToVram(state->unk8, 3); - sub_81CCFA4(1); + FillWindowPixelBuffer(state->infoWindowId, PIXEL_FILL(1)); + PutWindowTilemap(state->infoWindowId); + AddTextPrinterParameterized(state->infoWindowId, 7, regionMap->mapSecName, 0, 1, TEXT_SPEED_FF, NULL); + PrintLandmarkNames(state, regionMap->mapSecId, regionMap->posWithinMapSec); + CopyWindowToVram(state->infoWindowId, 3); + SetCityZoomTextInvisibility(TRUE); break; case MAPSECTYPE_NONE: FillBgTilemapBufferRect(1, 0x1041, 17, 4, 12, 13, 17); CopyBgTilemapBufferToVram(1); - sub_81CCFA4(1); + SetCityZoomTextInvisibility(TRUE); break; } } -static bool32 sub_81CCC4C(struct Pokenav5Struct_2 *state) +static bool32 IsDma3ManagerBusyWithBgCopy_(struct Pokenav5Struct_2 *state) { return IsDma3ManagerBusyWithBgCopy(); } -static void sub_81CCC5C(int arg0) +#define tZoomIn data[0] + +static void ChangeBgYForZoom(bool32 zoomIn) { - u8 taskId = CreateTask(sub_81CCC9C, 3); - gTasks[taskId].data[0] = arg0; + u8 taskId = CreateTask(Task_ChangeBgYForZoom, 3); + gTasks[taskId].tZoomIn = zoomIn; } -static bool32 sub_81CCC88(void) +static bool32 IsChangeBgYForZoomActive(void) { - return FuncIsActiveTask(sub_81CCC9C); + return FuncIsActiveTask(Task_ChangeBgYForZoom); } -static void sub_81CCC9C(u8 taskId) +static void Task_ChangeBgYForZoom(u8 taskId) { - if (gTasks[taskId].data[0]) + if (gTasks[taskId].tZoomIn) { if (ChangeBgY(1, 0x480, 1) >= 0) { @@ -587,7 +591,7 @@ static void sub_81CCC9C(u8 taskId) DestroyTask(taskId); } - sub_81CCF78(); + UpdateCityZoomTextPosition(); } else { @@ -597,46 +601,48 @@ static void sub_81CCC9C(u8 taskId) DestroyTask(taskId); } - sub_81CCF78(); + UpdateCityZoomTextPosition(); } } -static void sub_81CCD10(void) +#undef tZoomIn + +static void DecompressCityMaps(void) { - CreateLoopedTask(sub_81CCD34, 1); + CreateLoopedTask(LoopedTask_DecompressCityMaps, 1); } -static bool32 sub_81CCD24(void) +static bool32 IsDecompressCityMapsActive(void) { - return FuncIsActiveLoopedTask(sub_81CCD34); + return FuncIsActiveLoopedTask(LoopedTask_DecompressCityMaps); } -static u32 sub_81CCD34(s32 taskState) +static u32 LoopedTask_DecompressCityMaps(s32 taskState) { struct Pokenav5Struct_2 *state = GetSubstructPtr(4); - if (taskState < (int)ARRAY_COUNT(gPokenavCityMaps)) + if (taskState < NUM_CITY_MAPS) { - LZ77UnCompWram(gPokenavCityMaps[taskState].tilemap, state->cityZoomPics[taskState]); - return 1; + LZ77UnCompWram(sPokenavCityMaps[taskState].tilemap, state->cityZoomPics[taskState]); + return LT_INC_AND_CONTINUE; } - return 4; + return LT_FINISH; } -static void sub_81CCD70(struct Pokenav5Struct_2 *state, int mapSecId, int pos) +static void DrawCityMap(struct Pokenav5Struct_2 *state, int mapSecId, int pos) { int i; - for (i = 0; i < (int)ARRAY_COUNT(gPokenavCityMaps) && (gPokenavCityMaps[i].mapSecId != mapSecId || gPokenavCityMaps[i].index != pos); i++) + for (i = 0; i < NUM_CITY_MAPS && (sPokenavCityMaps[i].mapSecId != mapSecId || sPokenavCityMaps[i].index != pos); i++) ; - if (i == ARRAY_COUNT(gPokenavCityMaps)) + if (i == NUM_CITY_MAPS) return; FillBgTilemapBufferRect_Palette0(1, 0x1041, 17, 6, 12, 11); CopyToBgTilemapBufferRect(1, state->cityZoomPics[i], 18, 6, 10, 10); } -static void sub_81CCDE8(struct Pokenav5Struct_2 *state, int mapSecId, int pos) +static void PrintLandmarkNames(struct Pokenav5Struct_2 *state, int mapSecId, int pos) { int i = 0; while (1) @@ -646,26 +652,27 @@ static void sub_81CCDE8(struct Pokenav5Struct_2 *state, int mapSecId, int pos) break; StringCopyPadded(gStringVar1, landmarkName, CHAR_SPACE, 12); - AddTextPrinterParameterized(state->unk8, 7, gStringVar1, 0, i * 16 + 17, TEXT_SPEED_FF, NULL); + AddTextPrinterParameterized(state->infoWindowId, 7, gStringVar1, 0, i * 16 + 17, TEXT_SPEED_FF, NULL); i++; } } -static void sub_81CCE58(void) +static void CreateCityZoomTextSprites(void) { int i; int y; struct Sprite *sprite; struct Pokenav5Struct_2 *state = GetSubstructPtr(4); - if (!sub_8124658()) + // When not zoomed in the text is still created but its pushed off screen + if (!IsRegionMapZoomed()) y = 228; else y = 132; - for (i = 0; i < 3; i++) + for (i = 0; i < (int)ARRAY_COUNT(state->cityZoomTextSprites); i++) { - u8 spriteId = CreateSprite(&gUnknown_086231D0, 152 + i * 32, y, 8); + u8 spriteId = CreateSprite(&sCityZoomTextSpriteTemplate, 152 + i * 32, y, 8); sprite = &gSprites[spriteId]; sprite->data[0] = 0; sprite->data[1] = i * 4; @@ -673,11 +680,12 @@ static void sub_81CCE58(void) sprite->data[3] = 150; sprite->data[4] = i * 4; sprite->oam.tileNum += i * 4; - state->cityFeatureTextSprites[i] = sprite; + state->cityZoomTextSprites[i] = sprite; } } -void sub_81CCEF4(struct Sprite *sprite) +// Slide and cycle through the text key showing what the features on the zoomed city map are +static void SpriteCB_CityZoomText(struct Sprite *sprite) { if (sprite->data[3]) { @@ -711,19 +719,19 @@ void sub_81CCEF4(struct Sprite *sprite) } } -static void sub_81CCF78(void) +static void UpdateCityZoomTextPosition(void) { int i; struct Pokenav5Struct_2 *state = GetSubstructPtr(4); int y = 132 - (GetBgY(1) >> 8); - for (i = 0; i < 3; i++) - state->cityFeatureTextSprites[i]->pos1.y = y; + for (i = 0; i < (int)ARRAY_COUNT(state->cityZoomTextSprites); i++) + state->cityZoomTextSprites[i]->pos1.y = y; } -static void sub_81CCFA4(int invisible) +static void SetCityZoomTextInvisibility(bool32 invisible) { int i; struct Pokenav5Struct_2 *state = GetSubstructPtr(4); - for (i = 0; i < 3; i++) - state->cityFeatureTextSprites[i]->invisible = invisible; + for (i = 0; i < (int)ARRAY_COUNT(state->cityZoomTextSprites); i++) + state->cityZoomTextSprites[i]->invisible = invisible; } diff --git a/src/pokenav_ribbons_1.c b/src/pokenav_ribbons_1.c index 63b4adb30..db3b7f08e 100644 --- a/src/pokenav_ribbons_1.c +++ b/src/pokenav_ribbons_1.c @@ -188,7 +188,7 @@ static u32 sub_81CFA88(struct PokenavSub9 *structPtr) static u32 sub_81CFB08(struct PokenavSub9 *structPtr) { - return POKENAV_MENU_5; + return POKENAV_MAIN_MENU_CURSOR_ON_RIBBONS; } static u32 sub_81CFB10(struct PokenavSub9 *structPtr) @@ -446,7 +446,7 @@ static u32 sub_81CFEB8(s32 state) ShowBg(2); HideBg(3); PrintHelpBarText(HELPBAR_RIBBONS_MON_LIST); - sub_81C7AC0(1); + PokenavFadeScreen(1); if (!unk->unkC) { LoadLeftHeaderGfxForIndex(2); @@ -601,7 +601,7 @@ static u32 sub_81D01DC(s32 state) { case 0: PlaySE(SE_SELECT); - sub_81C7AC0(0); + PokenavFadeScreen(0); sub_81C78A0(); return LT_INC_AND_PAUSE; case 1: @@ -621,7 +621,7 @@ static u32 sub_81D021C(s32 state) { case 0: PlaySE(SE_SELECT); - sub_81C7AC0(0); + PokenavFadeScreen(0); return LT_INC_AND_PAUSE; case 1: if (IsPaletteFadeActive()) diff --git a/src/pokenav_ribbons_2.c b/src/pokenav_ribbons_2.c index 2789b1244..f27b664ea 100644 --- a/src/pokenav_ribbons_2.c +++ b/src/pokenav_ribbons_2.c @@ -586,7 +586,7 @@ u32 sub_81D0A6C(s32 state) ShowBg(1); ShowBg(2); HideBg(3); - sub_81C7AC0(1); + PokenavFadeScreen(1); return LT_INC_AND_PAUSE; } return LT_PAUSE; @@ -604,7 +604,7 @@ u32 sub_81D0C54(s32 state) { case 0: PlaySE(SE_SELECT); - sub_81C7AC0(0); + PokenavFadeScreen(0); return LT_INC_AND_PAUSE; case 1: if (IsPaletteFadeActive()) diff --git a/src/random.c b/src/random.c index b570a7bc3..de923fba6 100644 --- a/src/random.c +++ b/src/random.c @@ -1,9 +1,6 @@ #include "global.h" #include "random.h" -// The number 1103515245 comes from the example implementation of rand and srand -// in the ISO C standard. - EWRAM_DATA static u8 sUnknown = 0; EWRAM_DATA static u32 sRandCount = 0; @@ -13,7 +10,7 @@ u32 gRng2Value; u16 Random(void) { - gRngValue = 1103515245 * gRngValue + 24691; + gRngValue = ISO_RANDOMIZE1(gRngValue); sRandCount++; return gRngValue >> 16; } @@ -31,6 +28,6 @@ void SeedRng2(u16 seed) u16 Random2(void) { - gRng2Value = 1103515245 * gRng2Value + 24691; + gRng2Value = ISO_RANDOMIZE1(gRng2Value); return gRng2Value >> 16; } diff --git a/src/record_mixing.c b/src/record_mixing.c index f290c8554..3a93d72f8 100644 --- a/src/record_mixing.c +++ b/src/record_mixing.c @@ -932,7 +932,7 @@ static void ReceiveGiftItem(u16 *item, u8 which) VarSet(VAR_TEMP_1, *item); StringCopy(gStringVar1, gLinkPlayers[0].name); if (*item == ITEM_EON_TICKET) - FlagSet(FLAG_SYS_HAS_EON_TICKET); + FlagSet(FLAG_ENABLE_SHIP_SOUTHERN_ISLAND); } else { diff --git a/src/region_map.c b/src/region_map.c index 5694d4c7a..e183261b9 100644 --- a/src/region_map.c +++ b/src/region_map.c @@ -28,6 +28,17 @@ #include "constants/heal_locations.h" #include "constants/map_types.h" #include "constants/rgb.h" +#include "constants/weather.h" + +/* + * This file handles region maps generally, and the map used when selecting a fly destination. + * Specific features of other region map uses are handled elsewhere + * + * For the region map in the pokenav, see pokenav_region_map.c + * For the region map in the pokedex, see pokdex_area_screen.c/pokedex_area_region_map.c + * For the region map that can be viewed on the wall of pokemon centers, see field_region_map.c + * + */ #define MAP_WIDTH 28 #define MAP_HEIGHT 15 @@ -36,9 +47,11 @@ #define MAPCURSOR_X_MAX (MAPCURSOR_X_MIN + MAP_WIDTH - 1) #define MAPCURSOR_Y_MAX (MAPCURSOR_Y_MIN + MAP_HEIGHT - 1) +#define FLYDESTICON_RED_OUTLINE 6 + // Static type declarations -struct FlagControlledFlyDest +struct MultiNameFlyDest { const u8 *const *name; u16 mapSecId; @@ -48,18 +61,18 @@ struct FlagControlledFlyDest // Static RAM declarations static EWRAM_DATA struct RegionMap *gRegionMap = NULL; + static EWRAM_DATA struct { - /*0x000*/ void (*unk_000)(void); - /*0x004*/ u16 unk_004; - /*0x006*/ u16 mapSecId; - /*0x008*/ struct RegionMap regionMap; - /*0x88c*/ u8 unk_88c[0x1c0]; - /*0xa4c*/ u8 unk_a4c[0x26]; - /*0xa72*/ bool8 choseFlyLocation; -} *sFlyMap = NULL; // a74 + void (*callback)(void); + u16 state; + u16 mapSecId; + struct RegionMap regionMap; + u8 tileBuffer[0x1c0]; + u8 nameBuffer[0x26]; // never read + bool8 choseFlyLocation; +} *sFlyMap = NULL; static bool32 gUnknown_03001180; -static bool32 gUnknown_03001184; // Static ROM declarations @@ -68,44 +81,44 @@ static u8 MoveRegionMapCursor_Full(void); static u8 ProcessRegionMapInput_Zoomed(void); static u8 MoveRegionMapCursor_Zoomed(void); static void CalcZoomScrollParams(s16 scrollX, s16 scrollY, s16 c, s16 d, u16 e, u16 f, u8 rotation); -static u16 GetRegionMapSectionIdAt_Internal(u16 x, u16 y); +static u16 GetMapSecIdAt(u16 x, u16 y); static void RegionMap_SetBG2XAndBG2Y(s16 x, s16 y); -static void RegionMap_InitializeStateBasedOnPlayerLocation(void); +static void InitMapBasedOnPlayerLocation(void); static void RegionMap_InitializeStateBasedOnSSTidalLocation(void); -static u8 get_flagnr_blue_points(u16 mapSecId); +static u8 GetMapsecType(u16 mapSecId); static u16 CorrectSpecialMapSecId_Internal(u16 mapSecId); -static u16 RegionMap_GetTerraCaveMapSecId(void); -static void RegionMap_GetMarineCaveCoords(u16 *x, u16 *y); -static bool32 RegionMap_IsPlayerInCave(u8 mapSecId); -static void RegionMap_GetPositionOfCursorWithinMapSection(void); +static u16 GetTerraOrMarineCaveMapSecId(void); +static void GetMarineCaveCoords(u16 *x, u16 *y); +static bool32 IsPlayerInAquaHideout(u8 mapSecId); +static void GetPositionOfCursorWithinMapSec(void); static bool8 RegionMap_IsMapSecIdInNextRow(u16 y); -static void SpriteCallback_CursorFull(struct Sprite *sprite); +static void SpriteCB_CursorMapFull(struct Sprite *sprite); static void FreeRegionMapCursorSprite(void); static void HideRegionMapPlayerIcon(void); static void UnhideRegionMapPlayerIcon(void); -static void RegionMapPlayerIconSpriteCallback_Zoomed(struct Sprite *sprite); -static void RegionMapPlayerIconSpriteCallback_Full(struct Sprite *sprite); -static void RegionMapPlayerIconSpriteCallback(struct Sprite *sprite); -static void sub_81248C0(void); -static void sub_81248D4(void); -static void sub_81248F4(void callback(void)); -static void sub_8124904(void); -static void sub_8124A70(void); -static void sub_8124AD4(void); -static void sub_8124BE4(void); -static void sub_8124CBC(struct Sprite *sprite); -static void sub_8124D14(void); -static void sub_8124D64(void); -static void sub_8124E0C(void); +static void SpriteCB_PlayerIconMapZoomed(struct Sprite *sprite); +static void SpriteCB_PlayerIconMapFull(struct Sprite *sprite); +static void SpriteCB_PlayerIcon(struct Sprite *sprite); +static void VBlankCB_FlyMap(void); +static void CB2_FlyMap(void); +static void SetFlyMapCallback(void callback(void)); +static void DrawFlyDestTextWindow(void); +static void LoadFlyDestIcons(void); +static void CreateFlyDestIcons(void); +static void TryCreateRedOutlineFlyDestIcons(void); +static void SpriteCB_FlyDestIcon(struct Sprite *sprite); +static void CB_FadeInFlyMap(void); +static void CB_HandleFlyMapInput(void); +static void CB_ExitFlyMap(void); // .rodata static const u16 sRegionMapCursorPal[] = INCBIN_U16("graphics/pokenav/cursor.gbapal"); static const u32 sRegionMapCursorSmallGfxLZ[] = INCBIN_U32("graphics/pokenav/cursor_small.4bpp.lz"); static const u32 sRegionMapCursorLargeGfxLZ[] = INCBIN_U32("graphics/pokenav/cursor_large.4bpp.lz"); -static const u16 sRegionMapBkgnd_Pal[] = INCBIN_U16("graphics/pokenav/region_map.gbapal"); -static const u32 sRegionMapBkgnd_GfxLZ[] = INCBIN_U32("graphics/pokenav/region_map.8bpp.lz"); -static const u32 sRegionMapBkgnd_TilemapLZ[] = INCBIN_U32("graphics/pokenav/region_map_map.bin.lz"); +static const u16 sRegionMapBg_Pal[] = INCBIN_U16("graphics/pokenav/region_map.gbapal"); +static const u32 sRegionMapBg_GfxLZ[] = INCBIN_U32("graphics/pokenav/region_map.8bpp.lz"); +static const u32 sRegionMapBg_TilemapLZ[] = INCBIN_U32("graphics/pokenav/region_map_map.bin.lz"); static const u16 sRegionMapPlayerIcon_BrendanPal[] = INCBIN_U16("graphics/pokenav/brendan_icon.gbapal"); static const u8 sRegionMapPlayerIcon_BrendanGfx[] = INCBIN_U8("graphics/pokenav/brendan_icon.4bpp"); static const u16 sRegionMapPlayerIcon_MayPal[] = INCBIN_U16("graphics/pokenav/may_icon.gbapal"); @@ -137,52 +150,54 @@ static const u16 sRegionMap_SpecialPlaceLocations[][2] = {MAPSEC_MIRAGE_TOWER, MAPSEC_ROUTE_111}, {MAPSEC_TRAINER_HILL, MAPSEC_ROUTE_111}, {MAPSEC_DESERT_UNDERPASS, MAPSEC_ROUTE_114}, - {MAPSEC_ALTERING_CAVE_2, MAPSEC_ROUTE_103}, + {MAPSEC_ALTERING_CAVE, MAPSEC_ROUTE_103}, {MAPSEC_ARTISAN_CAVE, MAPSEC_ROUTE_103}, {MAPSEC_ABANDONED_SHIP, MAPSEC_ROUTE_108}, {MAPSEC_NONE, MAPSEC_NONE} }; -static const u16 sRegionMap_MarineCaveMapSecIds[] = +static const u16 sMarineCaveMapSecIds[] = { MAPSEC_MARINE_CAVE, MAPSEC_UNDERWATER_MARINE_CAVE, MAPSEC_UNDERWATER_MARINE_CAVE }; -static const u16 sTerraCaveMapSectionIds[] = -{ - MAPSEC_ROUTE_114, - MAPSEC_ROUTE_114, - MAPSEC_ROUTE_115, - MAPSEC_ROUTE_115, - MAPSEC_ROUTE_116, - MAPSEC_ROUTE_116, - MAPSEC_ROUTE_118, - MAPSEC_ROUTE_118, - MAPSEC_ROUTE_105, - MAPSEC_ROUTE_105, - MAPSEC_ROUTE_125, - MAPSEC_ROUTE_125, - MAPSEC_ROUTE_127, - MAPSEC_ROUTE_127, - MAPSEC_ROUTE_129, - MAPSEC_ROUTE_129 +static const u16 sTerraOrMarineCaveMapSecIds[ABNORMAL_WEATHER_LOCATIONS] = +{ + [ABNORMAL_WEATHER_ROUTE_114_NORTH - 1] = MAPSEC_ROUTE_114, + [ABNORMAL_WEATHER_ROUTE_114_SOUTH - 1] = MAPSEC_ROUTE_114, + [ABNORMAL_WEATHER_ROUTE_115_WEST - 1] = MAPSEC_ROUTE_115, + [ABNORMAL_WEATHER_ROUTE_115_EAST - 1] = MAPSEC_ROUTE_115, + [ABNORMAL_WEATHER_ROUTE_116_NORTH - 1] = MAPSEC_ROUTE_116, + [ABNORMAL_WEATHER_ROUTE_116_SOUTH - 1] = MAPSEC_ROUTE_116, + [ABNORMAL_WEATHER_ROUTE_118_EAST - 1] = MAPSEC_ROUTE_118, + [ABNORMAL_WEATHER_ROUTE_118_WEST - 1] = MAPSEC_ROUTE_118, + [ABNORMAL_WEATHER_ROUTE_105_NORTH - 1] = MAPSEC_ROUTE_105, + [ABNORMAL_WEATHER_ROUTE_105_SOUTH - 1] = MAPSEC_ROUTE_105, + [ABNORMAL_WEATHER_ROUTE_125_WEST - 1] = MAPSEC_ROUTE_125, + [ABNORMAL_WEATHER_ROUTE_125_EAST - 1] = MAPSEC_ROUTE_125, + [ABNORMAL_WEATHER_ROUTE_127_NORTH - 1] = MAPSEC_ROUTE_127, + [ABNORMAL_WEATHER_ROUTE_127_SOUTH - 1] = MAPSEC_ROUTE_127, + [ABNORMAL_WEATHER_ROUTE_129_WEST - 1] = MAPSEC_ROUTE_129, + [ABNORMAL_WEATHER_ROUTE_129_EAST - 1] = MAPSEC_ROUTE_129 }; -static const struct UCoords16 sTerraCaveLocationCoords[] = +#define MARINE_CAVE_COORD(location)(ABNORMAL_WEATHER_##location - MARINE_CAVE_LOCATIONS_START) + +static const struct UCoords16 sMarineCaveLocationCoords[MARINE_CAVE_LOCATIONS] = { - {0x00, 0x0a}, - {0x00, 0x0c}, - {0x18, 0x03}, - {0x19, 0x04}, - {0x19, 0x06}, - {0x19, 0x07}, - {0x18, 0x0a}, - {0x18, 0x0a} + [MARINE_CAVE_COORD(ROUTE_105_NORTH)] = {0, 10}, + [MARINE_CAVE_COORD(ROUTE_105_SOUTH)] = {0, 12}, + [MARINE_CAVE_COORD(ROUTE_125_WEST)] = {24, 3}, + [MARINE_CAVE_COORD(ROUTE_125_EAST)] = {25, 4}, + [MARINE_CAVE_COORD(ROUTE_127_NORTH)] = {25, 6}, + [MARINE_CAVE_COORD(ROUTE_127_SOUTH)] = {25, 7}, + [MARINE_CAVE_COORD(ROUTE_129_WEST)] = {24, 10}, + [MARINE_CAVE_COORD(ROUTE_129_EAST)] = {24, 10} }; -static const u8 sRegionMap_MapSecAquaHideoutOld[] = +static const u8 sMapSecAquaHideoutOld[] = { MAPSEC_AQUA_HIDEOUT_OLD }; @@ -230,7 +245,7 @@ static const struct SpriteTemplate sRegionMapCursorSpriteTemplate = .anims = sRegionMapCursorAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = SpriteCallback_CursorFull + .callback = SpriteCB_CursorMapFull }; static const struct OamData sRegionMapPlayerIconOam = @@ -251,11 +266,12 @@ static const union AnimCmd *const sRegionMapPlayerIconAnimTable[] = sRegionMapPlayerIconAnim1 }; -static const u8 sRegionMapEventSectionIds[] = +// Event islands that don't appear on map. (Southern Island does) +static const u8 sMapSecIdsOffMap[] = { - MAPSEC_BIRTH_ISLAND_2, + MAPSEC_BIRTH_ISLAND, MAPSEC_FARAWAY_ISLAND, - MAPSEC_NAVEL_ROCK2 + MAPSEC_NAVEL_ROCK }; static const u16 sRegionMapFramePal[] = INCBIN_U16("graphics/pokenav/map_frame.gbapal"); @@ -264,9 +280,9 @@ static const u32 sRegionMapFrameGfxLZ[] = INCBIN_U32("graphics/pokenav/map_frame static const u32 sRegionMapFrameTilemapLZ[] = INCBIN_U32("graphics/pokenav/map_frame.bin.lz"); -static const u16 Unknown_085A1D48[] = INCBIN_U16("graphics/pokenav/fly_target_icons.gbapal"); +static const u16 sFlyTargetIcons_Pal[] = INCBIN_U16("graphics/pokenav/fly_target_icons.gbapal"); -static const u32 sUnknown_085A1D68[] = INCBIN_U32("graphics/pokenav/fly_target_icons.4bpp.lz"); +static const u32 sFlyTargetIcons_Gfx[] = INCBIN_U32("graphics/pokenav/fly_target_icons.4bpp.lz"); static const u8 sMapHealLocations[][3] = { @@ -285,7 +301,7 @@ static const u8 sMapHealLocations[][3] = {MAP_GROUP(LILYCOVE_CITY), MAP_NUM(LILYCOVE_CITY), HEAL_LOCATION_LILYCOVE_CITY}, {MAP_GROUP(MOSSDEEP_CITY), MAP_NUM(MOSSDEEP_CITY), HEAL_LOCATION_MOSSDEEP_CITY}, {MAP_GROUP(SOOTOPOLIS_CITY), MAP_NUM(SOOTOPOLIS_CITY), HEAL_LOCATION_SOOTOPOLIS_CITY}, - {MAP_GROUP(EVER_GRANDE_CITY), MAP_NUM(EVER_GRANDE_CITY), HEAL_LOCATION_EVER_GRANDE_CITY_1}, + {MAP_GROUP(EVER_GRANDE_CITY), MAP_NUM(EVER_GRANDE_CITY), HEAL_LOCATION_EVER_GRANDE_CITY}, {MAP_GROUP(ROUTE101), MAP_NUM(ROUTE101), 0}, {MAP_GROUP(ROUTE102), MAP_NUM(ROUTE102), 0}, {MAP_GROUP(ROUTE103), MAP_NUM(ROUTE103), 0}, @@ -322,22 +338,22 @@ static const u8 sMapHealLocations[][3] = {MAP_GROUP(ROUTE134), MAP_NUM(ROUTE134), 0} }; -static const u8 *const gUnknown_085A1ED4[] = +static const u8 *const sEverGrandeCityNames[] = { gText_PokemonLeague, gText_PokemonCenter }; -static const struct FlagControlledFlyDest gUnknown_085A1EDC[] = +static const struct MultiNameFlyDest sMultiNameFlyDestinations[] = { { - .name = gUnknown_085A1ED4, + .name = sEverGrandeCityNames, .mapSecId = MAPSEC_EVER_GRANDE_CITY, .flag = FLAG_LANDMARK_POKEMON_LEAGUE } }; -static const struct BgTemplate gUnknown_085A1EE4[] = +static const struct BgTemplate sFlyMapBgTemplates[] = { { .bg = 0, @@ -365,7 +381,7 @@ static const struct BgTemplate gUnknown_085A1EE4[] = } }; -static const struct WindowTemplate gUnknown_085A1EF0[] = +static const struct WindowTemplate sFlyMapWindowTemplates[] = { { .bg = 0, @@ -397,13 +413,13 @@ static const struct WindowTemplate gUnknown_085A1EF0[] = DUMMY_WIN_TEMPLATE }; -static const struct SpritePalette gUnknown_085A1F10 = +static const struct SpritePalette sFlyTargetIconsSpritePalette = { - .data = Unknown_085A1D48, + .data = sFlyTargetIcons_Pal, .tag = 2 }; -static const u16 sUnknown_085A1F18[][2] = +static const u16 sRedOutlineFlyDestinations[][2] = { { FLAG_LANDMARK_BATTLE_FRONTIER, @@ -415,72 +431,73 @@ static const u16 sUnknown_085A1F18[][2] = } }; -static const struct OamData gOamData_085A1F20 = +static const struct OamData sFlyDestIcon_OamData = { .shape = SPRITE_SHAPE(8x8), .size = SPRITE_SIZE(8x8), .priority = 2 }; -static const union AnimCmd gUnknown_085A1F28[] = +static const union AnimCmd sFlyDestIcon_Anim_8x8CanFly[] = { ANIMCMD_FRAME( 0, 5), ANIMCMD_END }; -static const union AnimCmd gUnknown_085A1F30[] = +static const union AnimCmd sFlyDestIcon_Anim_16x8CanFly[] = { ANIMCMD_FRAME( 1, 5), ANIMCMD_END }; -static const union AnimCmd gUnknown_085A1F38[] = +static const union AnimCmd sFlyDestIcon_Anim_8x16CanFly[] = { ANIMCMD_FRAME( 3, 5), ANIMCMD_END }; -static const union AnimCmd gUnknown_085A1F40[] = +static const union AnimCmd sFlyDestIcon_Anim_8x8CantFly[] = { ANIMCMD_FRAME( 5, 5), ANIMCMD_END }; -static const union AnimCmd gUnknown_085A1F48[] = +static const union AnimCmd sFlyDestIcon_Anim_16x8CantFly[] = { ANIMCMD_FRAME( 6, 5), ANIMCMD_END }; -static const union AnimCmd gUnknown_085A1F50[] = +static const union AnimCmd sFlyDestIcon_Anim_8x16CantFly[] = { ANIMCMD_FRAME( 8, 5), ANIMCMD_END }; -static const union AnimCmd gUnknown_085A1F58[] = +// Only used by Battle Frontier +static const union AnimCmd sFlyDestIcon_Anim_RedOutline[] = { ANIMCMD_FRAME(10, 5), ANIMCMD_END }; -static const union AnimCmd *const gUnknown_085A1F60[] = +static const union AnimCmd *const sFlyDestIcon_Anims[] = { - gUnknown_085A1F28, - gUnknown_085A1F30, - gUnknown_085A1F38, - gUnknown_085A1F40, - gUnknown_085A1F48, - gUnknown_085A1F50, - gUnknown_085A1F58 + [SPRITE_SHAPE(8x8)] = sFlyDestIcon_Anim_8x8CanFly, + [SPRITE_SHAPE(16x8)] = sFlyDestIcon_Anim_16x8CanFly, + [SPRITE_SHAPE(8x16)] = sFlyDestIcon_Anim_8x16CanFly, + [SPRITE_SHAPE(8x8) + 3] = sFlyDestIcon_Anim_8x8CantFly, + [SPRITE_SHAPE(16x8) + 3] = sFlyDestIcon_Anim_16x8CantFly, + [SPRITE_SHAPE(8x16) + 3] = sFlyDestIcon_Anim_8x16CantFly, + [FLYDESTICON_RED_OUTLINE] = sFlyDestIcon_Anim_RedOutline }; -static const struct SpriteTemplate gUnknown_085A1F7C = +static const struct SpriteTemplate sFlyDestIconSpriteTemplate = { .tileTag = 2, .paletteTag = 2, - .oam = &gOamData_085A1F20, - .anims = gUnknown_085A1F60, + .oam = &sFlyDestIcon_OamData, + .anims = sFlyDestIcon_Anims, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy @@ -490,11 +507,11 @@ static const struct SpriteTemplate gUnknown_085A1F7C = void InitRegionMap(struct RegionMap *regionMap, bool8 zoomed) { - sub_8122CF8(regionMap, NULL, zoomed); - while (sub_8122DB0()); + InitRegionMapData(regionMap, NULL, zoomed); + while (LoadRegionMapGfx()); } -void sub_8122CF8(struct RegionMap *regionMap, const struct BgTemplate *template, bool8 zoomed) +void InitRegionMapData(struct RegionMap *regionMap, const struct BgTemplate *template, bool8 zoomed) { gRegionMap = regionMap; gRegionMap->initStep = 0; @@ -516,46 +533,38 @@ void sub_8122CF8(struct RegionMap *regionMap, const struct BgTemplate *template, } } -void sub_8122D88(struct RegionMap *regionMap) +void ShowRegionMapForPokedexAreaScreen(struct RegionMap *regionMap) { gRegionMap = regionMap; - RegionMap_InitializeStateBasedOnPlayerLocation(); + InitMapBasedOnPlayerLocation(); gRegionMap->playerIconSpritePosX = gRegionMap->cursorPosX; gRegionMap->playerIconSpritePosY = gRegionMap->cursorPosY; } -bool8 sub_8122DB0(void) +bool8 LoadRegionMapGfx(void) { switch (gRegionMap->initStep) { case 0: if (gRegionMap->bgManaged) - { - decompress_and_copy_tile_data_to_vram(gRegionMap->bgNum, sRegionMapBkgnd_GfxLZ, 0, 0, 0); - } + decompress_and_copy_tile_data_to_vram(gRegionMap->bgNum, sRegionMapBg_GfxLZ, 0, 0, 0); else - { - LZ77UnCompVram(sRegionMapBkgnd_GfxLZ, (u16 *)BG_CHAR_ADDR(2)); - } + LZ77UnCompVram(sRegionMapBg_GfxLZ, (u16 *)BG_CHAR_ADDR(2)); break; case 1: if (gRegionMap->bgManaged) { if (!free_temp_tile_data_buffers_if_possible()) - { - decompress_and_copy_tile_data_to_vram(gRegionMap->bgNum, sRegionMapBkgnd_TilemapLZ, 0, 0, 1); - } + decompress_and_copy_tile_data_to_vram(gRegionMap->bgNum, sRegionMapBg_TilemapLZ, 0, 0, 1); } else { - LZ77UnCompVram(sRegionMapBkgnd_TilemapLZ, (u16 *)BG_SCREEN_ADDR(28)); + LZ77UnCompVram(sRegionMapBg_TilemapLZ, (u16 *)BG_SCREEN_ADDR(28)); } break; case 2: if (!free_temp_tile_data_buffers_if_possible()) - { - LoadPalette(sRegionMapBkgnd_Pal, 0x70, 0x60); - } + LoadPalette(sRegionMapBg_Pal, 0x70, 0x60); break; case 3: LZ77UnCompWram(sRegionMapCursorSmallGfxLZ, gRegionMap->cursorSmallImage); @@ -564,12 +573,12 @@ bool8 sub_8122DB0(void) LZ77UnCompWram(sRegionMapCursorLargeGfxLZ, gRegionMap->cursorLargeImage); break; case 5: - RegionMap_InitializeStateBasedOnPlayerLocation(); + InitMapBasedOnPlayerLocation(); gRegionMap->playerIconSpritePosX = gRegionMap->cursorPosX; gRegionMap->playerIconSpritePosY = gRegionMap->cursorPosY; gRegionMap->mapSecId = CorrectSpecialMapSecId_Internal(gRegionMap->mapSecId); - gRegionMap->iconDrawType = get_flagnr_blue_points(gRegionMap->mapSecId); - GetMapName(gRegionMap->mapSecName, gRegionMap->mapSecId, 16); + gRegionMap->mapSecType = GetMapsecType(gRegionMap->mapSecId); + GetMapName(gRegionMap->mapSecName, gRegionMap->mapSecId, MAP_NAME_LENGTH); break; case 6: if (gRegionMap->zoomed == FALSE) @@ -586,7 +595,7 @@ bool8 sub_8122DB0(void) } break; case 7: - RegionMap_GetPositionOfCursorWithinMapSection(); + GetPositionOfCursorWithinMapSec(); UpdateRegionMapVideoRegs(); gRegionMap->cursorSprite = NULL; gRegionMap->playerIconSprite = NULL; @@ -609,9 +618,9 @@ bool8 sub_8122DB0(void) return TRUE; } -void sub_8123030(u16 a0, u32 a1) +void sub_8123030(u16 color, u32 coeff) { - BlendPalettes(0x380, a1, a0); + BlendPalettes(0x380, coeff, color); CpuCopy16(gPlttBufferFaded + 0x70, gPlttBufferUnfaded + 0x70, 0x60); } @@ -631,7 +640,7 @@ void FreeRegionMapIconResources(void) } } -u8 sub_81230AC(void) +u8 DoRegionMapInputCallback(void) { return gRegionMap->inputCallback(); } @@ -640,38 +649,38 @@ static u8 ProcessRegionMapInput_Full(void) { u8 input; - input = INPUT_EVENT_NONE; + input = MAP_INPUT_NONE; gRegionMap->cursorDeltaX = 0; gRegionMap->cursorDeltaY = 0; if (gMain.heldKeys & DPAD_UP && gRegionMap->cursorPosY > MAPCURSOR_Y_MIN) { gRegionMap->cursorDeltaY = -1; - input = INPUT_EVENT_MOVE_START; + input = MAP_INPUT_MOVE_START; } if (gMain.heldKeys & DPAD_DOWN && gRegionMap->cursorPosY < MAPCURSOR_Y_MAX) { gRegionMap->cursorDeltaY = +1; - input = INPUT_EVENT_MOVE_START; + input = MAP_INPUT_MOVE_START; } if (gMain.heldKeys & DPAD_LEFT && gRegionMap->cursorPosX > MAPCURSOR_X_MIN) { gRegionMap->cursorDeltaX = -1; - input = INPUT_EVENT_MOVE_START; + input = MAP_INPUT_MOVE_START; } if (gMain.heldKeys & DPAD_RIGHT && gRegionMap->cursorPosX < MAPCURSOR_X_MAX) { gRegionMap->cursorDeltaX = +1; - input = INPUT_EVENT_MOVE_START; + input = MAP_INPUT_MOVE_START; } if (gMain.newKeys & A_BUTTON) { - input = INPUT_EVENT_A_BUTTON; + input = MAP_INPUT_A_BUTTON; } else if (gMain.newKeys & B_BUTTON) { - input = INPUT_EVENT_B_BUTTON; + input = MAP_INPUT_B_BUTTON; } - if (input == INPUT_EVENT_MOVE_START) + if (input == MAP_INPUT_MOVE_START) { gRegionMap->cursorMovementFrameCounter = 4; gRegionMap->inputCallback = MoveRegionMapCursor_Full; @@ -684,9 +693,8 @@ static u8 MoveRegionMapCursor_Full(void) u16 mapSecId; if (gRegionMap->cursorMovementFrameCounter != 0) - { - return INPUT_EVENT_MOVE_CONT; - } + return MAP_INPUT_MOVE_CONT; + if (gRegionMap->cursorDeltaX > 0) { gRegionMap->cursorPosX++; @@ -703,54 +711,55 @@ static u8 MoveRegionMapCursor_Full(void) { gRegionMap->cursorPosY--; } - mapSecId = GetRegionMapSectionIdAt_Internal(gRegionMap->cursorPosX, gRegionMap->cursorPosY); - gRegionMap->iconDrawType = get_flagnr_blue_points(mapSecId); + + mapSecId = GetMapSecIdAt(gRegionMap->cursorPosX, gRegionMap->cursorPosY); + gRegionMap->mapSecType = GetMapsecType(mapSecId); if (mapSecId != gRegionMap->mapSecId) { gRegionMap->mapSecId = mapSecId; - GetMapName(gRegionMap->mapSecName, gRegionMap->mapSecId, 16); + GetMapName(gRegionMap->mapSecName, gRegionMap->mapSecId, MAP_NAME_LENGTH); } - RegionMap_GetPositionOfCursorWithinMapSection(); + GetPositionOfCursorWithinMapSec(); gRegionMap->inputCallback = ProcessRegionMapInput_Full; - return INPUT_EVENT_MOVE_END; + return MAP_INPUT_MOVE_END; } static u8 ProcessRegionMapInput_Zoomed(void) { u8 input; - input = INPUT_EVENT_NONE; + input = MAP_INPUT_NONE; gRegionMap->zoomedCursorDeltaX = 0; gRegionMap->zoomedCursorDeltaY = 0; if (gMain.heldKeys & DPAD_UP && gRegionMap->scrollY > -0x34) { gRegionMap->zoomedCursorDeltaY = -1; - input = INPUT_EVENT_MOVE_START; + input = MAP_INPUT_MOVE_START; } if (gMain.heldKeys & DPAD_DOWN && gRegionMap->scrollY < 0x3c) { gRegionMap->zoomedCursorDeltaY = +1; - input = INPUT_EVENT_MOVE_START; + input = MAP_INPUT_MOVE_START; } if (gMain.heldKeys & DPAD_LEFT && gRegionMap->scrollX > -0x2c) { gRegionMap->zoomedCursorDeltaX = -1; - input = INPUT_EVENT_MOVE_START; + input = MAP_INPUT_MOVE_START; } if (gMain.heldKeys & DPAD_RIGHT && gRegionMap->scrollX < 0xac) { gRegionMap->zoomedCursorDeltaX = +1; - input = INPUT_EVENT_MOVE_START; + input = MAP_INPUT_MOVE_START; } if (gMain.newKeys & A_BUTTON) { - input = INPUT_EVENT_A_BUTTON; + input = MAP_INPUT_A_BUTTON; } if (gMain.newKeys & B_BUTTON) { - input = INPUT_EVENT_B_BUTTON; + input = MAP_INPUT_B_BUTTON; } - if (input == INPUT_EVENT_MOVE_START) + if (input == MAP_INPUT_MOVE_START) { gRegionMap->inputCallback = MoveRegionMapCursor_Zoomed; gRegionMap->zoomedCursorMovementFrameCounter = 0; @@ -776,23 +785,23 @@ static u8 MoveRegionMapCursor_Zoomed(void) { gRegionMap->zoomedCursorPosX = x; gRegionMap->zoomedCursorPosY = y; - mapSecId = GetRegionMapSectionIdAt_Internal(x, y); - gRegionMap->iconDrawType = get_flagnr_blue_points(mapSecId); + mapSecId = GetMapSecIdAt(x, y); + gRegionMap->mapSecType = GetMapsecType(mapSecId); if (mapSecId != gRegionMap->mapSecId) { gRegionMap->mapSecId = mapSecId; - GetMapName(gRegionMap->mapSecName, gRegionMap->mapSecId, 16); + GetMapName(gRegionMap->mapSecName, gRegionMap->mapSecId, MAP_NAME_LENGTH); } - RegionMap_GetPositionOfCursorWithinMapSection(); + GetPositionOfCursorWithinMapSec(); } gRegionMap->zoomedCursorMovementFrameCounter = 0; gRegionMap->inputCallback = ProcessRegionMapInput_Zoomed; - return INPUT_EVENT_MOVE_END; + return MAP_INPUT_MOVE_END; } - return INPUT_EVENT_MOVE_CONT; + return MAP_INPUT_MOVE_CONT; } -void sub_8123418(void) +void SetRegionMapDataForZoom(void) { if (gRegionMap->zoomed == FALSE) { @@ -827,13 +836,13 @@ void sub_8123418(void) HideRegionMapPlayerIcon(); } -bool8 sub_8123514(void) +bool8 UpdateRegionMapZoom(void) { bool8 retVal; if (gRegionMap->unk_06e >= 16) { - return 0; + return FALSE; } gRegionMap->unk_06e++; if (gRegionMap->unk_06e == 16) @@ -945,7 +954,7 @@ void PokedexAreaScreen_UpdateRegionMapVariablesAndVideoRegs(s16 x, s16 y) } } -static u16 GetRegionMapSectionIdAt_Internal(u16 x, u16 y) +static u16 GetMapSecIdAt(u16 x, u16 y) { if (y < MAPCURSOR_Y_MIN || y > MAPCURSOR_Y_MAX || x < MAPCURSOR_X_MIN || x > MAPCURSOR_X_MAX) { @@ -956,7 +965,7 @@ static u16 GetRegionMapSectionIdAt_Internal(u16 x, u16 y) return sRegionMap_MapSectionLayout[x + y * MAP_WIDTH]; } -static void RegionMap_InitializeStateBasedOnPlayerLocation(void) +static void InitMapBasedOnPlayerLocation(void) { const struct MapHeader *mapHeader; u16 mapWidth; @@ -978,80 +987,76 @@ static void RegionMap_InitializeStateBasedOnPlayerLocation(void) switch (GetMapTypeByGroupAndId(gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum)) { - default: - case MAP_TYPE_TOWN: - case MAP_TYPE_CITY: - case MAP_TYPE_ROUTE: - case MAP_TYPE_UNDERWATER: - case MAP_TYPE_OCEAN_ROUTE: - gRegionMap->mapSecId = gMapHeader.regionMapSectionId; - gRegionMap->playerIsInCave = FALSE; - mapWidth = gMapHeader.mapLayout->width; - mapHeight = gMapHeader.mapLayout->height; - x = gSaveBlock1Ptr->pos.x; - y = gSaveBlock1Ptr->pos.y; - if (gRegionMap->mapSecId == MAPSEC_UNDERWATER_128 || gRegionMap->mapSecId == MAPSEC_UNDERWATER_MARINE_CAVE) - { - gRegionMap->playerIsInCave = TRUE; - } - break; - case MAP_TYPE_UNDERGROUND: - case MAP_TYPE_UNUSED_2: - if (gMapHeader.flags & MAP_ALLOW_ESCAPE_ROPE) - { - mapHeader = Overworld_GetMapHeaderByGroupAndId(gSaveBlock1Ptr->escapeWarp.mapGroup, gSaveBlock1Ptr->escapeWarp.mapNum); - gRegionMap->mapSecId = mapHeader->regionMapSectionId; - gRegionMap->playerIsInCave = TRUE; - mapWidth = mapHeader->mapLayout->width; - mapHeight = mapHeader->mapLayout->height; - x = gSaveBlock1Ptr->escapeWarp.x; - y = gSaveBlock1Ptr->escapeWarp.y; - } - else - { - gRegionMap->mapSecId = gMapHeader.regionMapSectionId; - gRegionMap->playerIsInCave = TRUE; - mapWidth = 1; - mapHeight = 1; - x = 1; - y = 1; - } - break; - case MAP_TYPE_SECRET_BASE: - mapHeader = Overworld_GetMapHeaderByGroupAndId((u16)gSaveBlock1Ptr->dynamicWarp.mapGroup, (u16)gSaveBlock1Ptr->dynamicWarp.mapNum); + default: + case MAP_TYPE_TOWN: + case MAP_TYPE_CITY: + case MAP_TYPE_ROUTE: + case MAP_TYPE_UNDERWATER: + case MAP_TYPE_OCEAN_ROUTE: + gRegionMap->mapSecId = gMapHeader.regionMapSectionId; + gRegionMap->playerIsInCave = FALSE; + mapWidth = gMapHeader.mapLayout->width; + mapHeight = gMapHeader.mapLayout->height; + x = gSaveBlock1Ptr->pos.x; + y = gSaveBlock1Ptr->pos.y; + if (gRegionMap->mapSecId == MAPSEC_UNDERWATER_128 || gRegionMap->mapSecId == MAPSEC_UNDERWATER_MARINE_CAVE) + gRegionMap->playerIsInCave = TRUE; + break; + case MAP_TYPE_UNDERGROUND: + case MAP_TYPE_UNUSED_2: + if (gMapHeader.flags & MAP_ALLOW_ESCAPE_ROPE) + { + mapHeader = Overworld_GetMapHeaderByGroupAndId(gSaveBlock1Ptr->escapeWarp.mapGroup, gSaveBlock1Ptr->escapeWarp.mapNum); gRegionMap->mapSecId = mapHeader->regionMapSectionId; gRegionMap->playerIsInCave = TRUE; mapWidth = mapHeader->mapLayout->width; mapHeight = mapHeader->mapLayout->height; - x = gSaveBlock1Ptr->dynamicWarp.x; - y = gSaveBlock1Ptr->dynamicWarp.y; - break; - case MAP_TYPE_INDOOR: + x = gSaveBlock1Ptr->escapeWarp.x; + y = gSaveBlock1Ptr->escapeWarp.y; + } + else + { gRegionMap->mapSecId = gMapHeader.regionMapSectionId; - if (gRegionMap->mapSecId != MAPSEC_DYNAMIC) - { - warp = &gSaveBlock1Ptr->escapeWarp; - mapHeader = Overworld_GetMapHeaderByGroupAndId(warp->mapGroup, warp->mapNum); - } - else - { - warp = &gSaveBlock1Ptr->dynamicWarp; - mapHeader = Overworld_GetMapHeaderByGroupAndId(warp->mapGroup, warp->mapNum); - gRegionMap->mapSecId = mapHeader->regionMapSectionId; - } - if (RegionMap_IsPlayerInCave(gRegionMap->mapSecId)) - { - gRegionMap->playerIsInCave = TRUE; - } - else - { - gRegionMap->playerIsInCave = FALSE; - } - mapWidth = mapHeader->mapLayout->width; - mapHeight = mapHeader->mapLayout->height; - x = warp->x; - y = warp->y; - break; + gRegionMap->playerIsInCave = TRUE; + mapWidth = 1; + mapHeight = 1; + x = 1; + y = 1; + } + break; + case MAP_TYPE_SECRET_BASE: + mapHeader = Overworld_GetMapHeaderByGroupAndId((u16)gSaveBlock1Ptr->dynamicWarp.mapGroup, (u16)gSaveBlock1Ptr->dynamicWarp.mapNum); + gRegionMap->mapSecId = mapHeader->regionMapSectionId; + gRegionMap->playerIsInCave = TRUE; + mapWidth = mapHeader->mapLayout->width; + mapHeight = mapHeader->mapLayout->height; + x = gSaveBlock1Ptr->dynamicWarp.x; + y = gSaveBlock1Ptr->dynamicWarp.y; + break; + case MAP_TYPE_INDOOR: + gRegionMap->mapSecId = gMapHeader.regionMapSectionId; + if (gRegionMap->mapSecId != MAPSEC_DYNAMIC) + { + warp = &gSaveBlock1Ptr->escapeWarp; + mapHeader = Overworld_GetMapHeaderByGroupAndId(warp->mapGroup, warp->mapNum); + } + else + { + warp = &gSaveBlock1Ptr->dynamicWarp; + mapHeader = Overworld_GetMapHeaderByGroupAndId(warp->mapGroup, warp->mapNum); + gRegionMap->mapSecId = mapHeader->regionMapSectionId; + } + + if (IsPlayerInAquaHideout(gRegionMap->mapSecId)) + gRegionMap->playerIsInCave = TRUE; + else + gRegionMap->playerIsInCave = FALSE; + + mapWidth = mapHeader->mapLayout->width; + mapHeight = mapHeader->mapLayout->height; + x = warp->x; + y = warp->y; + break; } xOnMap = x; @@ -1080,51 +1085,36 @@ static void RegionMap_InitializeStateBasedOnPlayerLocation(void) switch (gRegionMap->mapSecId) { - case MAPSEC_ROUTE_114: - if (y != 0) - { - x = 0; - } - break; - case MAPSEC_ROUTE_126: - case MAPSEC_UNDERWATER_125: + case MAPSEC_ROUTE_114: + if (y != 0) x = 0; - if (gSaveBlock1Ptr->pos.x > 32) - { - x = 1; - } - if (gSaveBlock1Ptr->pos.x > 0x33) - { - x++; - } - y = 0; - if (gSaveBlock1Ptr->pos.y > 0x25) - { - y = 1; - } - if (gSaveBlock1Ptr->pos.y > 0x38) - { - y++; - } - break; - case MAPSEC_ROUTE_121: - x = 0; - if (xOnMap > 14) - { - x = 1; - } - if (xOnMap > 0x1C) - { - x++; - } - if (xOnMap > 0x36) - { - x++; - } - break; - case MAPSEC_UNDERWATER_MARINE_CAVE: - RegionMap_GetMarineCaveCoords(&gRegionMap->cursorPosX, &gRegionMap->cursorPosY); - return; + break; + case MAPSEC_ROUTE_126: + case MAPSEC_UNDERWATER_125: + x = 0; + if (gSaveBlock1Ptr->pos.x > 32) + x++; + if (gSaveBlock1Ptr->pos.x > 51) + x++; + + y = 0; + if (gSaveBlock1Ptr->pos.y > 37) + y++; + if (gSaveBlock1Ptr->pos.y > 56) + y++; + break; + case MAPSEC_ROUTE_121: + x = 0; + if (xOnMap > 14) + x++; + if (xOnMap > 28) + x++; + if (xOnMap > 54) + x++; + break; + case MAPSEC_UNDERWATER_MARINE_CAVE: + GetMarineCaveCoords(&gRegionMap->cursorPosX, &gRegionMap->cursorPosY); + return; } gRegionMap->cursorPosX = gRegionMapEntries[gRegionMap->mapSecId].x + x + MAPCURSOR_X_MIN; gRegionMap->cursorPosY = gRegionMapEntries[gRegionMap->mapSecId].y + y + MAPCURSOR_Y_MIN; @@ -1145,104 +1135,104 @@ static void RegionMap_InitializeStateBasedOnSSTidalLocation(void) x = 0; switch (GetSSTidalLocation(&mapGroup, &mapNum, &xOnMap, &yOnMap)) { - case SS_TIDAL_LOCATION_SLATEPORT: - gRegionMap->mapSecId = MAPSEC_SLATEPORT_CITY; - break; - case SS_TIDAL_LOCATION_LILYCOVE: - gRegionMap->mapSecId = MAPSEC_LILYCOVE_CITY; - break; - case SS_TIDAL_LOCATION_ROUTE124: - gRegionMap->mapSecId = MAPSEC_ROUTE_124; - break; - case SS_TIDAL_LOCATION_ROUTE131: - gRegionMap->mapSecId = MAPSEC_ROUTE_131; - break; - default: - case SS_TIDAL_LOCATION_CURRENTS: - mapHeader = Overworld_GetMapHeaderByGroupAndId(mapGroup, mapNum); - - gRegionMap->mapSecId = mapHeader->regionMapSectionId; - dimensionScale = mapHeader->mapLayout->width / gRegionMapEntries[gRegionMap->mapSecId].width; - if (dimensionScale == 0) - dimensionScale = 1; - x = xOnMap / dimensionScale; - if (x >= gRegionMapEntries[gRegionMap->mapSecId].width) - x = gRegionMapEntries[gRegionMap->mapSecId].width - 1; - - dimensionScale = mapHeader->mapLayout->height / gRegionMapEntries[gRegionMap->mapSecId].height; - if (dimensionScale == 0) - dimensionScale = 1; - y = yOnMap / dimensionScale; - if (y >= gRegionMapEntries[gRegionMap->mapSecId].height) - y = gRegionMapEntries[gRegionMap->mapSecId].height - 1; - break; + case SS_TIDAL_LOCATION_SLATEPORT: + gRegionMap->mapSecId = MAPSEC_SLATEPORT_CITY; + break; + case SS_TIDAL_LOCATION_LILYCOVE: + gRegionMap->mapSecId = MAPSEC_LILYCOVE_CITY; + break; + case SS_TIDAL_LOCATION_ROUTE124: + gRegionMap->mapSecId = MAPSEC_ROUTE_124; + break; + case SS_TIDAL_LOCATION_ROUTE131: + gRegionMap->mapSecId = MAPSEC_ROUTE_131; + break; + default: + case SS_TIDAL_LOCATION_CURRENTS: + mapHeader = Overworld_GetMapHeaderByGroupAndId(mapGroup, mapNum); + + gRegionMap->mapSecId = mapHeader->regionMapSectionId; + dimensionScale = mapHeader->mapLayout->width / gRegionMapEntries[gRegionMap->mapSecId].width; + if (dimensionScale == 0) + dimensionScale = 1; + x = xOnMap / dimensionScale; + if (x >= gRegionMapEntries[gRegionMap->mapSecId].width) + x = gRegionMapEntries[gRegionMap->mapSecId].width - 1; + + dimensionScale = mapHeader->mapLayout->height / gRegionMapEntries[gRegionMap->mapSecId].height; + if (dimensionScale == 0) + dimensionScale = 1; + y = yOnMap / dimensionScale; + if (y >= gRegionMapEntries[gRegionMap->mapSecId].height) + y = gRegionMapEntries[gRegionMap->mapSecId].height - 1; + break; } gRegionMap->playerIsInCave = FALSE; gRegionMap->cursorPosX = gRegionMapEntries[gRegionMap->mapSecId].x + x + MAPCURSOR_X_MIN; gRegionMap->cursorPosY = gRegionMapEntries[gRegionMap->mapSecId].y + y + MAPCURSOR_Y_MIN; } -static u8 get_flagnr_blue_points(u16 mapSecId) +static u8 GetMapsecType(u16 mapSecId) { switch (mapSecId) { - case MAPSEC_NONE: - return MAPSECTYPE_NONE; - case MAPSEC_LITTLEROOT_TOWN: - return FlagGet(FLAG_VISITED_LITTLEROOT_TOWN) ? MAPSECTYPE_CITY_CANFLY : MAPSECTYPE_CITY_CANTFLY; - case MAPSEC_OLDALE_TOWN: - return FlagGet(FLAG_VISITED_OLDALE_TOWN) ? MAPSECTYPE_CITY_CANFLY : MAPSECTYPE_CITY_CANTFLY; - case MAPSEC_DEWFORD_TOWN: - return FlagGet(FLAG_VISITED_DEWFORD_TOWN) ? MAPSECTYPE_CITY_CANFLY : MAPSECTYPE_CITY_CANTFLY; - case MAPSEC_LAVARIDGE_TOWN: - return FlagGet(FLAG_VISITED_LAVARIDGE_TOWN) ? MAPSECTYPE_CITY_CANFLY : MAPSECTYPE_CITY_CANTFLY; - case MAPSEC_FALLARBOR_TOWN: - return FlagGet(FLAG_VISITED_FALLARBOR_TOWN) ? MAPSECTYPE_CITY_CANFLY : MAPSECTYPE_CITY_CANTFLY; - case MAPSEC_VERDANTURF_TOWN: - return FlagGet(FLAG_VISITED_VERDANTURF_TOWN) ? MAPSECTYPE_CITY_CANFLY : MAPSECTYPE_CITY_CANTFLY; - case MAPSEC_PACIFIDLOG_TOWN: - return FlagGet(FLAG_VISITED_PACIFIDLOG_TOWN) ? MAPSECTYPE_CITY_CANFLY : MAPSECTYPE_CITY_CANTFLY; - case MAPSEC_PETALBURG_CITY: - return FlagGet(FLAG_VISITED_PETALBURG_CITY) ? MAPSECTYPE_CITY_CANFLY : MAPSECTYPE_CITY_CANTFLY; - case MAPSEC_SLATEPORT_CITY: - return FlagGet(FLAG_VISITED_SLATEPORT_CITY) ? MAPSECTYPE_CITY_CANFLY : MAPSECTYPE_CITY_CANTFLY; - case MAPSEC_MAUVILLE_CITY: - return FlagGet(FLAG_VISITED_MAUVILLE_CITY) ? MAPSECTYPE_CITY_CANFLY : MAPSECTYPE_CITY_CANTFLY; - case MAPSEC_RUSTBORO_CITY: - return FlagGet(FLAG_VISITED_RUSTBORO_CITY) ? MAPSECTYPE_CITY_CANFLY : MAPSECTYPE_CITY_CANTFLY; - case MAPSEC_FORTREE_CITY: - return FlagGet(FLAG_VISITED_FORTREE_CITY) ? MAPSECTYPE_CITY_CANFLY : MAPSECTYPE_CITY_CANTFLY; - case MAPSEC_LILYCOVE_CITY: - return FlagGet(FLAG_VISITED_LILYCOVE_CITY) ? MAPSECTYPE_CITY_CANFLY : MAPSECTYPE_CITY_CANTFLY; - case MAPSEC_MOSSDEEP_CITY: - return FlagGet(FLAG_VISITED_MOSSDEEP_CITY) ? MAPSECTYPE_CITY_CANFLY : MAPSECTYPE_CITY_CANTFLY; - case MAPSEC_SOOTOPOLIS_CITY: - return FlagGet(FLAG_VISITED_SOOTOPOLIS_CITY) ? MAPSECTYPE_CITY_CANFLY : MAPSECTYPE_CITY_CANTFLY; - case MAPSEC_EVER_GRANDE_CITY: - return FlagGet(FLAG_VISITED_EVER_GRANDE_CITY) ? MAPSECTYPE_CITY_CANFLY : MAPSECTYPE_CITY_CANTFLY; - case MAPSEC_BATTLE_FRONTIER: - return FlagGet(FLAG_LANDMARK_BATTLE_FRONTIER) ? MAPSECTYPE_BATTLE_FRONTIER : MAPSECTYPE_NONE; - case MAPSEC_SOUTHERN_ISLAND: - return FlagGet(FLAG_LANDMARK_SOUTHERN_ISLAND) ? MAPSECTYPE_PLAIN : MAPSECTYPE_NONE; - default: - return MAPSECTYPE_PLAIN; + case MAPSEC_NONE: + return MAPSECTYPE_NONE; + case MAPSEC_LITTLEROOT_TOWN: + return FlagGet(FLAG_VISITED_LITTLEROOT_TOWN) ? MAPSECTYPE_CITY_CANFLY : MAPSECTYPE_CITY_CANTFLY; + case MAPSEC_OLDALE_TOWN: + return FlagGet(FLAG_VISITED_OLDALE_TOWN) ? MAPSECTYPE_CITY_CANFLY : MAPSECTYPE_CITY_CANTFLY; + case MAPSEC_DEWFORD_TOWN: + return FlagGet(FLAG_VISITED_DEWFORD_TOWN) ? MAPSECTYPE_CITY_CANFLY : MAPSECTYPE_CITY_CANTFLY; + case MAPSEC_LAVARIDGE_TOWN: + return FlagGet(FLAG_VISITED_LAVARIDGE_TOWN) ? MAPSECTYPE_CITY_CANFLY : MAPSECTYPE_CITY_CANTFLY; + case MAPSEC_FALLARBOR_TOWN: + return FlagGet(FLAG_VISITED_FALLARBOR_TOWN) ? MAPSECTYPE_CITY_CANFLY : MAPSECTYPE_CITY_CANTFLY; + case MAPSEC_VERDANTURF_TOWN: + return FlagGet(FLAG_VISITED_VERDANTURF_TOWN) ? MAPSECTYPE_CITY_CANFLY : MAPSECTYPE_CITY_CANTFLY; + case MAPSEC_PACIFIDLOG_TOWN: + return FlagGet(FLAG_VISITED_PACIFIDLOG_TOWN) ? MAPSECTYPE_CITY_CANFLY : MAPSECTYPE_CITY_CANTFLY; + case MAPSEC_PETALBURG_CITY: + return FlagGet(FLAG_VISITED_PETALBURG_CITY) ? MAPSECTYPE_CITY_CANFLY : MAPSECTYPE_CITY_CANTFLY; + case MAPSEC_SLATEPORT_CITY: + return FlagGet(FLAG_VISITED_SLATEPORT_CITY) ? MAPSECTYPE_CITY_CANFLY : MAPSECTYPE_CITY_CANTFLY; + case MAPSEC_MAUVILLE_CITY: + return FlagGet(FLAG_VISITED_MAUVILLE_CITY) ? MAPSECTYPE_CITY_CANFLY : MAPSECTYPE_CITY_CANTFLY; + case MAPSEC_RUSTBORO_CITY: + return FlagGet(FLAG_VISITED_RUSTBORO_CITY) ? MAPSECTYPE_CITY_CANFLY : MAPSECTYPE_CITY_CANTFLY; + case MAPSEC_FORTREE_CITY: + return FlagGet(FLAG_VISITED_FORTREE_CITY) ? MAPSECTYPE_CITY_CANFLY : MAPSECTYPE_CITY_CANTFLY; + case MAPSEC_LILYCOVE_CITY: + return FlagGet(FLAG_VISITED_LILYCOVE_CITY) ? MAPSECTYPE_CITY_CANFLY : MAPSECTYPE_CITY_CANTFLY; + case MAPSEC_MOSSDEEP_CITY: + return FlagGet(FLAG_VISITED_MOSSDEEP_CITY) ? MAPSECTYPE_CITY_CANFLY : MAPSECTYPE_CITY_CANTFLY; + case MAPSEC_SOOTOPOLIS_CITY: + return FlagGet(FLAG_VISITED_SOOTOPOLIS_CITY) ? MAPSECTYPE_CITY_CANFLY : MAPSECTYPE_CITY_CANTFLY; + case MAPSEC_EVER_GRANDE_CITY: + return FlagGet(FLAG_VISITED_EVER_GRANDE_CITY) ? MAPSECTYPE_CITY_CANFLY : MAPSECTYPE_CITY_CANTFLY; + case MAPSEC_BATTLE_FRONTIER: + return FlagGet(FLAG_LANDMARK_BATTLE_FRONTIER) ? MAPSECTYPE_BATTLE_FRONTIER : MAPSECTYPE_NONE; + case MAPSEC_SOUTHERN_ISLAND: + return FlagGet(FLAG_LANDMARK_SOUTHERN_ISLAND) ? MAPSECTYPE_ROUTE : MAPSECTYPE_NONE; + default: + return MAPSECTYPE_ROUTE; } } -u16 GetRegionMapSectionIdAt(u16 x, u16 y) +u16 GetRegionMapSecIdAt(u16 x, u16 y) { - return GetRegionMapSectionIdAt_Internal(x, y); + return GetMapSecIdAt(x, y); } static u16 CorrectSpecialMapSecId_Internal(u16 mapSecId) { u32 i; - for (i = 0; i < 3; i++) + for (i = 0; i < ARRAY_COUNT(sMarineCaveMapSecIds); i++) { - if (sRegionMap_MarineCaveMapSecIds[i] == mapSecId) + if (sMarineCaveMapSecIds[i] == mapSecId) { - return RegionMap_GetTerraCaveMapSecId(); + return GetTerraOrMarineCaveMapSecId(); } } for (i = 0; sRegionMap_SpecialPlaceLocations[i][0] != MAPSEC_NONE; i++) @@ -1255,42 +1245,43 @@ static u16 CorrectSpecialMapSecId_Internal(u16 mapSecId) return mapSecId; } -static u16 RegionMap_GetTerraCaveMapSecId(void) +static u16 GetTerraOrMarineCaveMapSecId(void) { s16 idx; idx = VarGet(VAR_ABNORMAL_WEATHER_LOCATION) - 1; - if (idx < 0 || idx > 15) - { + + if (idx < 0 || idx > ABNORMAL_WEATHER_LOCATIONS - 1) idx = 0; - } - return sTerraCaveMapSectionIds[idx]; + + return sTerraOrMarineCaveMapSecIds[idx]; } -static void RegionMap_GetMarineCaveCoords(u16 *x, u16 *y) +static void GetMarineCaveCoords(u16 *x, u16 *y) { u16 idx; idx = VarGet(VAR_ABNORMAL_WEATHER_LOCATION); - if (idx < 9 || idx > 16) + if (idx < MARINE_CAVE_LOCATIONS_START || idx > ABNORMAL_WEATHER_LOCATIONS) { - idx = 9; + idx = MARINE_CAVE_LOCATIONS_START; } - idx -= 9; - *x = sTerraCaveLocationCoords[idx].x + MAPCURSOR_X_MIN; - *y = sTerraCaveLocationCoords[idx].y + MAPCURSOR_Y_MIN; + idx -= MARINE_CAVE_LOCATIONS_START; + + *x = sMarineCaveLocationCoords[idx].x + MAPCURSOR_X_MIN; + *y = sMarineCaveLocationCoords[idx].y + MAPCURSOR_Y_MIN; } -static bool32 RegionMap_IsPlayerInCave(u8 mapSecId) +// Probably meant to be an "IsPlayerInIndoorDungeon" function, but in practice it only has the one mapsec +// Additionally, because the mapsec doesnt exist in Emerald, this function always returns FALSE +static bool32 IsPlayerInAquaHideout(u8 mapSecId) { u32 i; - for (i = 0; i < 1; i++) + for (i = 0; i < ARRAY_COUNT(sMapSecAquaHideoutOld); i++) { - if (sRegionMap_MapSecAquaHideoutOld[i] == mapSecId) - { + if (sMapSecAquaHideoutOld[i] == mapSecId) return TRUE; - } } return FALSE; } @@ -1300,7 +1291,7 @@ u16 CorrectSpecialMapSecId(u16 mapSecId) return CorrectSpecialMapSecId_Internal(mapSecId); } -static void RegionMap_GetPositionOfCursorWithinMapSection(void) +static void GetPositionOfCursorWithinMapSec(void) { u16 x; u16 y; @@ -1339,7 +1330,7 @@ static void RegionMap_GetPositionOfCursorWithinMapSection(void) else { x--; - if (GetRegionMapSectionIdAt_Internal(x, y) == gRegionMap->mapSecId) + if (GetMapSecIdAt(x, y) == gRegionMap->mapSecId) { posWithinMapSec++; } @@ -1358,7 +1349,7 @@ static bool8 RegionMap_IsMapSecIdInNextRow(u16 y) } for (x = MAPCURSOR_X_MIN; x <= MAPCURSOR_X_MAX; x++) { - if (GetRegionMapSectionIdAt_Internal(x, y) == gRegionMap->mapSecId) + if (GetMapSecIdAt(x, y) == gRegionMap->mapSecId) { return TRUE; } @@ -1366,7 +1357,7 @@ static bool8 RegionMap_IsMapSecIdInNextRow(u16 y) return FALSE; } -static void SpriteCallback_CursorFull(struct Sprite *sprite) +static void SpriteCB_CursorMapFull(struct Sprite *sprite) { if (gRegionMap->cursorMovementFrameCounter != 0) { @@ -1376,7 +1367,7 @@ static void SpriteCallback_CursorFull(struct Sprite *sprite) } } -static void SpriteCallback_CursorZoomed(struct Sprite *sprite) +static void SpriteCB_CursorMapZoomed(struct Sprite *sprite) { } @@ -1400,13 +1391,13 @@ void CreateRegionMapCursor(u16 tileTag, u16 paletteTag) { sheet.data = gRegionMap->cursorSmallImage; sheet.size = sizeof(gRegionMap->cursorSmallImage); - template.callback = SpriteCallback_CursorFull; + template.callback = SpriteCB_CursorMapFull; } else { sheet.data = gRegionMap->cursorLargeImage; sheet.size = sizeof(gRegionMap->cursorLargeImage); - template.callback = SpriteCallback_CursorZoomed; + template.callback = SpriteCB_CursorMapZoomed; } LoadSpriteSheet(&sheet); LoadSpritePalette(&palette); @@ -1443,12 +1434,14 @@ static void FreeRegionMapCursorSprite(void) } } -void sub_8124268(void) +// Unused +static void SetUnkCursorSpriteData(void) { gRegionMap->cursorSprite->data[3] = TRUE; } -void sub_8124278(void) +// Unused +static void ClearUnkCursorSpriteData(void) { gRegionMap->cursorSprite->data[3] = FALSE; } @@ -1460,7 +1453,7 @@ void CreateRegionMapPlayerIcon(u16 tileTag, u16 paletteTag) struct SpritePalette palette = {sRegionMapPlayerIcon_BrendanPal, paletteTag}; struct SpriteTemplate template = {tileTag, paletteTag, &sRegionMapPlayerIconOam, sRegionMapPlayerIconAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy}; - if (sub_8124668(gMapHeader.regionMapSectionId)) + if (IsEventIslandMapSecId(gMapHeader.regionMapSectionId)) { gRegionMap->playerIconSprite = NULL; return; @@ -1478,13 +1471,13 @@ void CreateRegionMapPlayerIcon(u16 tileTag, u16 paletteTag) { gRegionMap->playerIconSprite->pos1.x = gRegionMap->playerIconSpritePosX * 8 + 4; gRegionMap->playerIconSprite->pos1.y = gRegionMap->playerIconSpritePosY * 8 + 4; - gRegionMap->playerIconSprite->callback = RegionMapPlayerIconSpriteCallback_Full; + gRegionMap->playerIconSprite->callback = SpriteCB_PlayerIconMapFull; } else { gRegionMap->playerIconSprite->pos1.x = gRegionMap->playerIconSpritePosX * 16 - 0x30; gRegionMap->playerIconSprite->pos1.y = gRegionMap->playerIconSpritePosY * 16 - 0x42; - gRegionMap->playerIconSprite->callback = RegionMapPlayerIconSpriteCallback_Zoomed; + gRegionMap->playerIconSprite->callback = SpriteCB_PlayerIconMapZoomed; } } @@ -1505,7 +1498,7 @@ static void UnhideRegionMapPlayerIcon(void) { gRegionMap->playerIconSprite->pos1.x = gRegionMap->playerIconSpritePosX * 16 - 0x30; gRegionMap->playerIconSprite->pos1.y = gRegionMap->playerIconSpritePosY * 16 - 0x42; - gRegionMap->playerIconSprite->callback = RegionMapPlayerIconSpriteCallback_Zoomed; + gRegionMap->playerIconSprite->callback = SpriteCB_PlayerIconMapZoomed; gRegionMap->playerIconSprite->invisible = FALSE; } else @@ -1514,13 +1507,13 @@ static void UnhideRegionMapPlayerIcon(void) gRegionMap->playerIconSprite->pos1.y = gRegionMap->playerIconSpritePosY * 8 + 4; gRegionMap->playerIconSprite->pos2.x = 0; gRegionMap->playerIconSprite->pos2.y = 0; - gRegionMap->playerIconSprite->callback = RegionMapPlayerIconSpriteCallback_Full; + gRegionMap->playerIconSprite->callback = SpriteCB_PlayerIconMapFull; gRegionMap->playerIconSprite->invisible = FALSE; } } } -static void RegionMapPlayerIconSpriteCallback_Zoomed(struct Sprite *sprite) +static void SpriteCB_PlayerIconMapZoomed(struct Sprite *sprite) { sprite->pos2.x = -2 * gRegionMap->scrollX; sprite->pos2.y = -2 * gRegionMap->scrollY; @@ -1536,7 +1529,7 @@ static void RegionMapPlayerIconSpriteCallback_Zoomed(struct Sprite *sprite) } if (sprite->data[2] == TRUE) { - RegionMapPlayerIconSpriteCallback(sprite); + SpriteCB_PlayerIcon(sprite); } else { @@ -1544,12 +1537,12 @@ static void RegionMapPlayerIconSpriteCallback_Zoomed(struct Sprite *sprite) } } -static void RegionMapPlayerIconSpriteCallback_Full(struct Sprite *sprite) +static void SpriteCB_PlayerIconMapFull(struct Sprite *sprite) { - RegionMapPlayerIconSpriteCallback(sprite); + SpriteCB_PlayerIcon(sprite); } -static void RegionMapPlayerIconSpriteCallback(struct Sprite *sprite) +static void SpriteCB_PlayerIcon(struct Sprite *sprite) { if (gRegionMap->blinkPlayerIcon) { @@ -1565,12 +1558,10 @@ static void RegionMapPlayerIconSpriteCallback(struct Sprite *sprite) } } -void sub_812454C(void) +void TrySetPlayerIconBlink(void) { if (gRegionMap->playerIsInCave) - { gRegionMap->blinkPlayerIcon = TRUE; - } } u8 *GetMapName(u8 *dest, u16 regionMapId, u16 padLength) @@ -1610,28 +1601,24 @@ u8 *GetMapNameGeneric(u8 *dest, u16 mapSecId) { switch (mapSecId) { - case MAPSEC_DYNAMIC: - return StringCopy(dest, gText_Ferry); - case MAPSEC_SECRET_BASE: - return StringCopy(dest, gText_SecretBase); - default: - return GetMapName(dest, mapSecId, 0); + case MAPSEC_DYNAMIC: + return StringCopy(dest, gText_Ferry); + case MAPSEC_SECRET_BASE: + return StringCopy(dest, gText_SecretBase); + default: + return GetMapName(dest, mapSecId, 0); } } -u8 *sub_8124610(u8 *dest, u16 mapSecId) +u8 *GetMapNameHandleAquaHideout(u8 *dest, u16 mapSecId) { if (mapSecId == MAPSEC_AQUA_HIDEOUT_OLD) - { return StringCopy(dest, gText_Hideout); - } else - { return GetMapNameGeneric(dest, mapSecId); - } } -void sub_8124630(u16 mapSecId, u16 *x, u16 *y, u16 *width, u16 *height) +static void GetMapSecDimensions(u16 mapSecId, u16 *x, u16 *y, u16 *width, u16 *height) { *x = gRegionMapEntries[mapSecId].x; *y = gRegionMapEntries[mapSecId].y; @@ -1639,172 +1626,170 @@ void sub_8124630(u16 mapSecId, u16 *x, u16 *y, u16 *width, u16 *height) *height = gRegionMapEntries[mapSecId].height; } -bool8 sub_8124658(void) +bool8 IsRegionMapZoomed(void) { return gRegionMap->zoomed; } -bool32 sub_8124668(u8 mapSecId) +bool32 IsEventIslandMapSecId(u8 mapSecId) { u32 i; - for (i = 0; i < 3; i++) + for (i = 0; i < ARRAY_COUNT(sMapSecIdsOffMap); i++) { - if (mapSecId == sRegionMapEventSectionIds[i]) - { + if (mapSecId == sMapSecIdsOffMap[i]) return TRUE; - } } return FALSE; } -void MCB2_FlyMap(void) +void CB2_OpenFlyMap(void) { switch (gMain.state) { - case 0: - SetVBlankCallback(NULL); - SetGpuReg(REG_OFFSET_DISPCNT, 0); - SetGpuReg(REG_OFFSET_BG0HOFS, 0); - SetGpuReg(REG_OFFSET_BG0VOFS, 0); - SetGpuReg(REG_OFFSET_BG1HOFS, 0); - SetGpuReg(REG_OFFSET_BG1VOFS, 0); - SetGpuReg(REG_OFFSET_BG2VOFS, 0); - SetGpuReg(REG_OFFSET_BG2HOFS, 0); - SetGpuReg(REG_OFFSET_BG3HOFS, 0); - SetGpuReg(REG_OFFSET_BG3VOFS, 0); - sFlyMap = malloc(sizeof(*sFlyMap)); - if (sFlyMap == NULL) - { - SetMainCallback2(CB2_ReturnToFieldWithOpenMenu); - } - else - { - ResetPaletteFade(); - ResetSpriteData(); - FreeSpriteTileRanges(); - FreeAllSpritePalettes(); - gMain.state++; - } - break; - case 1: - ResetBgsAndClearDma3BusyFlags(0); - InitBgsFromTemplates(1, gUnknown_085A1EE4, 3); - gMain.state++; - break; - case 2: - InitWindows(gUnknown_085A1EF0); - DeactivateAllTextPrinters(); - gMain.state++; - break; - case 3: - LoadUserWindowBorderGfx(0, 0x65, 0xd0); - clear_scheduled_bg_copies_to_vram(); - gMain.state++; - break; - case 4: - InitRegionMap(&sFlyMap->regionMap, FALSE); - CreateRegionMapCursor(0, 0); - CreateRegionMapPlayerIcon(1, 1); - sFlyMap->mapSecId = sFlyMap->regionMap.mapSecId; - StringFill(sFlyMap->unk_a4c, CHAR_SPACE, 16); - gUnknown_03001180 = TRUE; - sub_8124904(); - gMain.state++; - break; - case 5: - LZ77UnCompVram(sRegionMapFrameGfxLZ, (u16 *)BG_CHAR_ADDR(3)); - gMain.state++; - break; - case 6: - LZ77UnCompVram(sRegionMapFrameTilemapLZ, (u16 *)BG_SCREEN_ADDR(30)); - gMain.state++; - break; - case 7: - LoadPalette(sRegionMapFramePal, 0x10, 0x20); - PutWindowTilemap(2); - FillWindowPixelBuffer(2, PIXEL_FILL(0)); - AddTextPrinterParameterized(2, 1, gText_FlyToWhere, 0, 1, 0, NULL); - schedule_bg_copy_tilemap_to_vram(0); - gMain.state++; - break; - case 8: - sub_8124A70(); - gMain.state++; - break; - case 9: - BlendPalettes(-1, 16, 0); - SetVBlankCallback(sub_81248C0); - gMain.state++; - break; - case 10: - SetGpuReg(REG_OFFSET_BLDCNT, 0); - SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_OBJ_1D_MAP | DISPCNT_OBJ_ON); - ShowBg(0); - ShowBg(1); - ShowBg(2); - sub_81248F4(sub_8124D14); - SetMainCallback2(sub_81248D4); + case 0: + SetVBlankCallback(NULL); + SetGpuReg(REG_OFFSET_DISPCNT, 0); + SetGpuReg(REG_OFFSET_BG0HOFS, 0); + SetGpuReg(REG_OFFSET_BG0VOFS, 0); + SetGpuReg(REG_OFFSET_BG1HOFS, 0); + SetGpuReg(REG_OFFSET_BG1VOFS, 0); + SetGpuReg(REG_OFFSET_BG2VOFS, 0); + SetGpuReg(REG_OFFSET_BG2HOFS, 0); + SetGpuReg(REG_OFFSET_BG3HOFS, 0); + SetGpuReg(REG_OFFSET_BG3VOFS, 0); + sFlyMap = malloc(sizeof(*sFlyMap)); + if (sFlyMap == NULL) + { + SetMainCallback2(CB2_ReturnToFieldWithOpenMenu); + } + else + { + ResetPaletteFade(); + ResetSpriteData(); + FreeSpriteTileRanges(); + FreeAllSpritePalettes(); gMain.state++; - break; + } + break; + case 1: + ResetBgsAndClearDma3BusyFlags(0); + InitBgsFromTemplates(1, sFlyMapBgTemplates, 3); + gMain.state++; + break; + case 2: + InitWindows(sFlyMapWindowTemplates); + DeactivateAllTextPrinters(); + gMain.state++; + break; + case 3: + LoadUserWindowBorderGfx(0, 0x65, 0xd0); + clear_scheduled_bg_copies_to_vram(); + gMain.state++; + break; + case 4: + InitRegionMap(&sFlyMap->regionMap, FALSE); + CreateRegionMapCursor(0, 0); + CreateRegionMapPlayerIcon(1, 1); + sFlyMap->mapSecId = sFlyMap->regionMap.mapSecId; + StringFill(sFlyMap->nameBuffer, CHAR_SPACE, MAP_NAME_LENGTH); + gUnknown_03001180 = TRUE; + DrawFlyDestTextWindow(); + gMain.state++; + break; + case 5: + LZ77UnCompVram(sRegionMapFrameGfxLZ, (u16 *)BG_CHAR_ADDR(3)); + gMain.state++; + break; + case 6: + LZ77UnCompVram(sRegionMapFrameTilemapLZ, (u16 *)BG_SCREEN_ADDR(30)); + gMain.state++; + break; + case 7: + LoadPalette(sRegionMapFramePal, 0x10, 0x20); + PutWindowTilemap(2); + FillWindowPixelBuffer(2, PIXEL_FILL(0)); + AddTextPrinterParameterized(2, 1, gText_FlyToWhere, 0, 1, 0, NULL); + schedule_bg_copy_tilemap_to_vram(0); + gMain.state++; + break; + case 8: + LoadFlyDestIcons(); + gMain.state++; + break; + case 9: + BlendPalettes(-1, 16, 0); + SetVBlankCallback(VBlankCB_FlyMap); + gMain.state++; + break; + case 10: + SetGpuReg(REG_OFFSET_BLDCNT, 0); + SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_OBJ_1D_MAP | DISPCNT_OBJ_ON); + ShowBg(0); + ShowBg(1); + ShowBg(2); + SetFlyMapCallback(CB_FadeInFlyMap); + SetMainCallback2(CB2_FlyMap); + gMain.state++; + break; } } -static void sub_81248C0(void) +static void VBlankCB_FlyMap(void) { LoadOam(); ProcessSpriteCopyRequests(); TransferPlttBuffer(); } -static void sub_81248D4(void) +static void CB2_FlyMap(void) { - sFlyMap->unk_000(); + sFlyMap->callback(); AnimateSprites(); BuildOamBuffer(); do_scheduled_bg_tilemap_copies_to_vram(); } -static void sub_81248F4(void callback(void)) +static void SetFlyMapCallback(void callback(void)) { - sFlyMap->unk_000 = callback; - sFlyMap->unk_004 = 0; + sFlyMap->callback = callback; + sFlyMap->state = 0; } -static void sub_8124904(void) +static void DrawFlyDestTextWindow(void) { u16 i; - bool32 flag; + bool32 namePrinted; const u8 *name; - if (sFlyMap->regionMap.iconDrawType > MAPSECTYPE_NONE && sFlyMap->regionMap.iconDrawType <= MAPSECTYPE_BATTLE_FRONTIER) + if (sFlyMap->regionMap.mapSecType > MAPSECTYPE_NONE && sFlyMap->regionMap.mapSecType <= MAPSECTYPE_BATTLE_FRONTIER) { - flag = FALSE; - for (i = 0; i < ARRAY_COUNT(gUnknown_085A1EDC); i++) + namePrinted = FALSE; + for (i = 0; i < ARRAY_COUNT(sMultiNameFlyDestinations); i++) { - if (sFlyMap->regionMap.mapSecId == gUnknown_085A1EDC[i].mapSecId) + if (sFlyMap->regionMap.mapSecId == sMultiNameFlyDestinations[i].mapSecId) { - if (FlagGet(gUnknown_085A1EDC[i].flag)) + if (FlagGet(sMultiNameFlyDestinations[i].flag)) { - StringLength(gUnknown_085A1EDC[i].name[sFlyMap->regionMap.posWithinMapSec]); - flag = TRUE; + StringLength(sMultiNameFlyDestinations[i].name[sFlyMap->regionMap.posWithinMapSec]); + namePrinted = TRUE; ClearStdWindowAndFrameToTransparent(0, FALSE); - DrawStdFrameWithCustomTileAndPalette(1, FALSE, 0x65, 0x0d); + DrawStdFrameWithCustomTileAndPalette(1, FALSE, 101, 13); AddTextPrinterParameterized(1, 1, sFlyMap->regionMap.mapSecName, 0, 1, 0, NULL); - name = gUnknown_085A1EDC[i].name[sFlyMap->regionMap.posWithinMapSec]; - AddTextPrinterParameterized(1, 1, name, GetStringRightAlignXOffset(1, name, 0x60), 0x11, 0, NULL); + name = sMultiNameFlyDestinations[i].name[sFlyMap->regionMap.posWithinMapSec]; + AddTextPrinterParameterized(1, 1, name, GetStringRightAlignXOffset(1, name, 96), 17, 0, NULL); schedule_bg_copy_tilemap_to_vram(0); gUnknown_03001180 = TRUE; } break; } } - if (!flag) + if (!namePrinted) { if (gUnknown_03001180 == TRUE) { ClearStdWindowAndFrameToTransparent(1, FALSE); - DrawStdFrameWithCustomTileAndPalette(0, FALSE, 0x65, 0x0d); + DrawStdFrameWithCustomTileAndPalette(0, FALSE, 101, 13); } else { @@ -1820,7 +1805,7 @@ static void sub_8124904(void) if (gUnknown_03001180 == TRUE) { ClearStdWindowAndFrameToTransparent(1, FALSE); - DrawStdFrameWithCustomTileAndPalette(0, FALSE, 0x65, 0x0d); + DrawStdFrameWithCustomTileAndPalette(0, FALSE, 101, 13); } FillWindowPixelBuffer(0, PIXEL_FILL(1)); CopyWindowToVram(0, 2); @@ -1830,24 +1815,28 @@ static void sub_8124904(void) } -static void sub_8124A70(void) +static void LoadFlyDestIcons(void) { struct SpriteSheet sheet; - LZ77UnCompWram(sUnknown_085A1D68, sFlyMap->unk_88c); - sheet.data = sFlyMap->unk_88c; - sheet.size = 0x1c0; + LZ77UnCompWram(sFlyTargetIcons_Gfx, sFlyMap->tileBuffer); + sheet.data = sFlyMap->tileBuffer; + sheet.size = sizeof(sFlyMap->tileBuffer); sheet.tag = 2; LoadSpriteSheet(&sheet); - LoadSpritePalette(&gUnknown_085A1F10); - sub_8124AD4(); - sub_8124BE4(); + LoadSpritePalette(&sFlyTargetIconsSpritePalette); + CreateFlyDestIcons(); + TryCreateRedOutlineFlyDestIcons(); } -static void sub_8124AD4(void) +// Sprite data for SpriteCB_FlyDestIcon +#define sIconMapSec data[0] +#define sFlickerTimer data[1] + +static void CreateFlyDestIcons(void) { u16 canFlyFlag; - u16 i; + u16 mapSecId; u16 x; u16 y; u16 width; @@ -1856,43 +1845,39 @@ static void sub_8124AD4(void) u8 spriteId; canFlyFlag = FLAG_VISITED_LITTLEROOT_TOWN; - for (i = 0; i < 16; i++) + for (mapSecId = MAPSEC_LITTLEROOT_TOWN; mapSecId <= MAPSEC_EVER_GRANDE_CITY; mapSecId++) { - sub_8124630(i, &x, &y, &width, &height); + GetMapSecDimensions(mapSecId, &x, &y, &width, &height); x = (x + MAPCURSOR_X_MIN) * 8 + 4; y = (y + MAPCURSOR_Y_MIN) * 8 + 4; + if (width == 2) - { shape = SPRITE_SHAPE(16x8); - } else if (height == 2) - { shape = SPRITE_SHAPE(8x16); - } else - { shape = SPRITE_SHAPE(8x8); - } - spriteId = CreateSprite(&gUnknown_085A1F7C, x, y, 10); + + spriteId = CreateSprite(&sFlyDestIconSpriteTemplate, x, y, 10); if (spriteId != MAX_SPRITES) { gSprites[spriteId].oam.shape = shape; + if (FlagGet(canFlyFlag)) - { - gSprites[spriteId].callback = sub_8124CBC; - } + gSprites[spriteId].callback = SpriteCB_FlyDestIcon; else - { shape += 3; - } + StartSpriteAnim(&gSprites[spriteId], shape); - gSprites[spriteId].data[0] = i; + gSprites[spriteId].sIconMapSec = mapSecId; } canFlyFlag++; } } -static void sub_8124BE4(void) +// Draw a red outline box on the mapsec if its corresponding flag has been set +// Only used for Battle Frontier, but set up to handle more +static void TryCreateRedOutlineFlyDestIcons(void) { u16 i; u16 x; @@ -1902,142 +1887,142 @@ static void sub_8124BE4(void) u16 mapSecId; u8 spriteId; - for (i = 0; sUnknown_085A1F18[i][1] != MAPSEC_NONE; i++) + for (i = 0; sRedOutlineFlyDestinations[i][1] != MAPSEC_NONE; i++) { - if (FlagGet(sUnknown_085A1F18[i][0])) + if (FlagGet(sRedOutlineFlyDestinations[i][0])) { - mapSecId = sUnknown_085A1F18[i][1]; - sub_8124630(mapSecId, &x, &y, &width, &height); + mapSecId = sRedOutlineFlyDestinations[i][1]; + GetMapSecDimensions(mapSecId, &x, &y, &width, &height); x = (x + MAPCURSOR_X_MIN) * 8; y = (y + MAPCURSOR_Y_MIN) * 8; - spriteId = CreateSprite(&gUnknown_085A1F7C, x, y, 10); + spriteId = CreateSprite(&sFlyDestIconSpriteTemplate, x, y, 10); if (spriteId != MAX_SPRITES) { gSprites[spriteId].oam.size = SPRITE_SIZE(16x16); - gSprites[spriteId].callback = sub_8124CBC; - StartSpriteAnim(&gSprites[spriteId], 6); - gSprites[spriteId].data[0] = mapSecId; + gSprites[spriteId].callback = SpriteCB_FlyDestIcon; + StartSpriteAnim(&gSprites[spriteId], FLYDESTICON_RED_OUTLINE); + gSprites[spriteId].sIconMapSec = mapSecId; } } } } -static void sub_8124CBC(struct Sprite *sprite) +// Flickers fly destination icon color (by hiding the fly icon sprite) if the cursor is currently on it +static void SpriteCB_FlyDestIcon(struct Sprite *sprite) { - if (sFlyMap->regionMap.mapSecId == sprite->data[0]) + if (sFlyMap->regionMap.mapSecId == sprite->sIconMapSec) { - if (++sprite->data[1] > 16) + if (++sprite->sFlickerTimer > 16) { - sprite->data[1] = 0; + sprite->sFlickerTimer = 0; sprite->invisible = sprite->invisible ? FALSE : TRUE; } } else { - sprite->data[1] = 16; + sprite->sFlickerTimer = 16; sprite->invisible = FALSE; } } -static void sub_8124D14(void) +#undef sIconMapSec +#undef sFlickerTimer + +static void CB_FadeInFlyMap(void) { - switch (sFlyMap->unk_004) + switch (sFlyMap->state) { - case 0: - BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); - sFlyMap->unk_004++; - break; - case 1: - if (!UpdatePaletteFade()) - { - sub_81248F4(sub_8124D64); - } - break; + case 0: + BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); + sFlyMap->state++; + break; + case 1: + if (!UpdatePaletteFade()) + { + SetFlyMapCallback(CB_HandleFlyMapInput); + } + break; } } -static void sub_8124D64(void) +static void CB_HandleFlyMapInput(void) { - if (sFlyMap->unk_004 == 0) + if (sFlyMap->state == 0) { - switch (sub_81230AC()) + switch (DoRegionMapInputCallback()) { - case INPUT_EVENT_NONE: - case INPUT_EVENT_MOVE_START: - case INPUT_EVENT_MOVE_CONT: - break; - case INPUT_EVENT_MOVE_END: - sub_8124904(); - break; - case INPUT_EVENT_A_BUTTON: - if (sFlyMap->regionMap.iconDrawType == MAPSECTYPE_CITY_CANFLY || sFlyMap->regionMap.iconDrawType == MAPSECTYPE_BATTLE_FRONTIER) - { - m4aSongNumStart(SE_SELECT); - sFlyMap->choseFlyLocation = TRUE; - sub_81248F4(sub_8124E0C); - } - break; - case INPUT_EVENT_B_BUTTON: + case MAP_INPUT_NONE: + case MAP_INPUT_MOVE_START: + case MAP_INPUT_MOVE_CONT: + break; + case MAP_INPUT_MOVE_END: + DrawFlyDestTextWindow(); + break; + case MAP_INPUT_A_BUTTON: + if (sFlyMap->regionMap.mapSecType == MAPSECTYPE_CITY_CANFLY || sFlyMap->regionMap.mapSecType == MAPSECTYPE_BATTLE_FRONTIER) + { m4aSongNumStart(SE_SELECT); - sFlyMap->choseFlyLocation = FALSE; - sub_81248F4(sub_8124E0C); - break; + sFlyMap->choseFlyLocation = TRUE; + SetFlyMapCallback(CB_ExitFlyMap); + } + break; + case MAP_INPUT_B_BUTTON: + m4aSongNumStart(SE_SELECT); + sFlyMap->choseFlyLocation = FALSE; + SetFlyMapCallback(CB_ExitFlyMap); + break; } } } -static void sub_8124E0C(void) +static void CB_ExitFlyMap(void) { - switch (sFlyMap->unk_004) + switch (sFlyMap->state) { - case 0: - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); - sFlyMap->unk_004++; - break; - case 1: - if (!UpdatePaletteFade()) + case 0: + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); + sFlyMap->state++; + break; + case 1: + if (!UpdatePaletteFade()) + { + FreeRegionMapIconResources(); + if (sFlyMap->choseFlyLocation) { - FreeRegionMapIconResources(); - if (sFlyMap->choseFlyLocation) - { - switch (sFlyMap->regionMap.mapSecId) - { - case MAPSEC_SOUTHERN_ISLAND: - SetWarpDestinationToHealLocation(HEAL_LOCATION_SOUTHERN_ISLAND_EXTERIOR); - break; - case MAPSEC_BATTLE_FRONTIER: - SetWarpDestinationToHealLocation(HEAL_LOCATION_BATTLE_FRONTIER_OUTSIDE_EAST); - break; - case MAPSEC_LITTLEROOT_TOWN: - SetWarpDestinationToHealLocation(gSaveBlock2Ptr->playerGender == MALE ? HEAL_LOCATION_LITTLEROOT_TOWN_1 : HEAL_LOCATION_LITTLEROOT_TOWN_2); - break; - case MAPSEC_EVER_GRANDE_CITY: - SetWarpDestinationToHealLocation(FlagGet(FLAG_LANDMARK_POKEMON_LEAGUE) && sFlyMap->regionMap.posWithinMapSec == 0 ? HEAL_LOCATION_EVER_GRANDE_CITY_2 : HEAL_LOCATION_EVER_GRANDE_CITY_1); - break; - default: - if (sMapHealLocations[sFlyMap->regionMap.mapSecId][2] != 0) - { - SetWarpDestinationToHealLocation(sMapHealLocations[sFlyMap->regionMap.mapSecId][2]); - } - else - { - SetWarpDestinationToMapWarp(sMapHealLocations[sFlyMap->regionMap.mapSecId][0], sMapHealLocations[sFlyMap->regionMap.mapSecId][1], -1); - } - break; - } - ReturnToFieldFromFlyMapSelect(); - } - else + switch (sFlyMap->regionMap.mapSecId) { - SetMainCallback2(CB2_ReturnToPartyMenuFromFlyMap); + case MAPSEC_SOUTHERN_ISLAND: + SetWarpDestinationToHealLocation(HEAL_LOCATION_SOUTHERN_ISLAND_EXTERIOR); + break; + case MAPSEC_BATTLE_FRONTIER: + SetWarpDestinationToHealLocation(HEAL_LOCATION_BATTLE_FRONTIER_OUTSIDE_EAST); + break; + case MAPSEC_LITTLEROOT_TOWN: + SetWarpDestinationToHealLocation(gSaveBlock2Ptr->playerGender == MALE ? HEAL_LOCATION_LITTLEROOT_TOWN_BRENDANS_HOUSE : HEAL_LOCATION_LITTLEROOT_TOWN_MAYS_HOUSE); + break; + case MAPSEC_EVER_GRANDE_CITY: + SetWarpDestinationToHealLocation(FlagGet(FLAG_LANDMARK_POKEMON_LEAGUE) && sFlyMap->regionMap.posWithinMapSec == 0 ? HEAL_LOCATION_EVER_GRANDE_CITY_POKEMON_LEAGUE : HEAL_LOCATION_EVER_GRANDE_CITY); + break; + default: + if (sMapHealLocations[sFlyMap->regionMap.mapSecId][2] != 0) + SetWarpDestinationToHealLocation(sMapHealLocations[sFlyMap->regionMap.mapSecId][2]); + else + SetWarpDestinationToMapWarp(sMapHealLocations[sFlyMap->regionMap.mapSecId][0], sMapHealLocations[sFlyMap->regionMap.mapSecId][1], -1); + break; } - if (sFlyMap != NULL) - { - free(sFlyMap); - sFlyMap = NULL; - } - FreeAllWindowBuffers(); + ReturnToFieldFromFlyMapSelect(); } - break; + else + { + SetMainCallback2(CB2_ReturnToPartyMenuFromFlyMap); + } + if (sFlyMap != NULL) + { + free(sFlyMap); + sFlyMap = NULL; + } + FreeAllWindowBuffers(); + } + break; } } diff --git a/src/script_menu.c b/src/script_menu.c index 7afe30080..9ff63e357 100644 --- a/src/script_menu.c +++ b/src/script_menu.c @@ -428,7 +428,7 @@ static void CreateLilycoveSSTidalMultichoice(void) } } - if (CheckBagHasItem(ITEM_EON_TICKET, 1) == TRUE && FlagGet(FLAG_SYS_HAS_EON_TICKET) == TRUE) + if (CheckBagHasItem(ITEM_EON_TICKET, 1) == TRUE && FlagGet(FLAG_ENABLE_SHIP_SOUTHERN_ISLAND) == TRUE) { if (gSpecialVar_0x8004 == 0) { @@ -436,11 +436,11 @@ static void CreateLilycoveSSTidalMultichoice(void) selectionCount++; } - if (gSpecialVar_0x8004 == 1 && FlagGet(FLAG_HAS_EON_TICKET) == FALSE) + if (gSpecialVar_0x8004 == 1 && FlagGet(FLAG_SHOWN_EON_TICKET) == FALSE) { sLilycoveSSTidalSelections[selectionCount] = SSTIDAL_SELECTION_SOUTHERN_ISLAND; selectionCount++; - FlagSet(FLAG_HAS_EON_TICKET); + FlagSet(FLAG_SHOWN_EON_TICKET); } } @@ -452,11 +452,11 @@ static void CreateLilycoveSSTidalMultichoice(void) selectionCount++; } - if (gSpecialVar_0x8004 == 1 && FlagGet(FLAG_HAS_MYSTIC_TICKET) == FALSE) + if (gSpecialVar_0x8004 == 1 && FlagGet(FLAG_SHOWN_MYSTIC_TICKET) == FALSE) { sLilycoveSSTidalSelections[selectionCount] = SSTIDAL_SELECTION_NAVEL_ROCK; selectionCount++; - FlagSet(FLAG_HAS_MYSTIC_TICKET); + FlagSet(FLAG_SHOWN_MYSTIC_TICKET); } } @@ -468,11 +468,11 @@ static void CreateLilycoveSSTidalMultichoice(void) selectionCount++; } - if (gSpecialVar_0x8004 == 1 && FlagGet(FLAG_HAS_AURORA_TICKET) == FALSE) + if (gSpecialVar_0x8004 == 1 && FlagGet(FLAG_SHOWN_AURORA_TICKET) == FALSE) { sLilycoveSSTidalSelections[selectionCount] = SSTIDAL_SELECTION_BIRTH_ISLAND; selectionCount++; - FlagSet(FLAG_HAS_AURORA_TICKET); + FlagSet(FLAG_SHOWN_AURORA_TICKET); } } @@ -484,11 +484,11 @@ static void CreateLilycoveSSTidalMultichoice(void) selectionCount++; } - if (gSpecialVar_0x8004 == 1 && FlagGet(FLAG_HAS_OLD_SEA_MAP) == FALSE) + if (gSpecialVar_0x8004 == 1 && FlagGet(FLAG_SHOWN_OLD_SEA_MAP) == FALSE) { sLilycoveSSTidalSelections[selectionCount] = SSTIDAL_SELECTION_FARAWAY_ISLAND; selectionCount++; - FlagSet(FLAG_HAS_OLD_SEA_MAP); + FlagSet(FLAG_SHOWN_OLD_SEA_MAP); } } diff --git a/src/script_pokemon_util_80F87D8.c b/src/script_pokemon_util_80F87D8.c index 243125448..134004fd0 100755 --- a/src/script_pokemon_util_80F87D8.c +++ b/src/script_pokemon_util_80F87D8.c @@ -434,7 +434,7 @@ void ScriptRandom(void) if (gLinkContestFlags & LINK_CONTEST_FLAG_IS_LINK) { - gContestRngValue = 1103515245 * gContestRngValue + 24691; + gContestRngValue = ISO_RANDOMIZE1(gContestRngValue); random = gContestRngValue >> 16; scriptPtr = &gSpecialVar_Result; } @@ -448,7 +448,7 @@ void ScriptRandom(void) u16 GetContestRand(void) { - gContestRngValue = 1103515245 * gContestRngValue + 24691; + gContestRngValue = ISO_RANDOMIZE1(gContestRngValue); return gContestRngValue >> 16; } diff --git a/src/time_events.c b/src/time_events.c index bd51f0c2d..3f56d3ab5 100644 --- a/src/time_events.c +++ b/src/time_events.c @@ -33,7 +33,7 @@ void UpdateMirageRnd(u16 days) s32 rnd = GetMirageRnd(); while (days) { - rnd = 1103515245 * rnd + 12345; + rnd = ISO_RANDOMIZE2(rnd); days--; } SetMirageRnd(rnd); diff --git a/src/unk_pokedex_area_screen_helper.c b/src/unk_pokedex_area_screen_helper.c deleted file mode 100644 index 9b2401cb2..000000000 --- a/src/unk_pokedex_area_screen_helper.c +++ /dev/null @@ -1,68 +0,0 @@ -#include "global.h" -#include "main.h" -#include "menu.h" -#include "bg.h" -#include "malloc.h" -#include "palette.h" -#include "unk_pokedex_area_screen_helper.h" - -EWRAM_DATA u8 *gUnknown_0203CF28 = NULL; - -static const u16 gUnknown_0861D140[] = INCBIN_U16("graphics/interface/region_map.gbapal"); -static const u32 gUnknown_0861D1A0[] = INCBIN_U32("graphics/interface/region_map.8bpp.lz"); -static const u32 gUnknown_0861DEF4[] = INCBIN_U32("graphics/interface/region_map.bin.lz"); -static const u32 gUnknown_0861E208[] = INCBIN_U32("graphics/interface/region_map_affine.8bpp.lz"); -static const u32 gUnknown_0861EF64[] = INCBIN_U32("graphics/interface/region_map_affine.bin.lz"); - -void sub_81C4D70(const struct UnkStruct_1C4D70 *template) -{ - u8 unk; - gUnknown_0203CF28 = Alloc(4); - unk = template->unk10; - - if (unk == 0) - { - SetBgAttribute(template->bg, BG_ATTR_METRIC, 0); - decompress_and_copy_tile_data_to_vram(template->bg, gUnknown_0861D1A0, 0, template->unk2, unk); - sub_8199D3C(decompress_and_copy_tile_data_to_vram(template->bg, gUnknown_0861DEF4, 0, 0, 1), template->unk2, 32, 32, unk); - } - else - { - SetBgAttribute(template->bg, BG_ATTR_METRIC, 2); - SetBgAttribute(template->bg, BG_ATTR_TYPE, 1); - decompress_and_copy_tile_data_to_vram(template->bg, gUnknown_0861E208, 0, template->unk2, 0); - sub_8199D3C(decompress_and_copy_tile_data_to_vram(template->bg, gUnknown_0861EF64, 0, 0, 1), template->unk2, 64, 64, 1); - } - - ChangeBgX(template->bg, 0, 0); - ChangeBgY(template->bg, 0, 0); - SetBgAttribute(template->bg, BG_ATTR_PALETTEMODE, 1); - CpuCopy32(gUnknown_0861D140, &gPlttBufferUnfaded[0x70], 0x60); - *gUnknown_0203CF28 = template->bg; -} - -bool32 sub_81C4E90(void) -{ - if (!free_temp_tile_data_buffers_if_possible()) - { - ShowBg(*gUnknown_0203CF28); - return FALSE; - } - else - { - return TRUE; - } -} - -void sub_81C4EB4(void) -{ - if (gUnknown_0203CF28 != NULL) - { - FREE_AND_SET_NULL(gUnknown_0203CF28); - } -} - -void sub_81C4ED0(u32 a0) -{ - ChangeBgY(*gUnknown_0203CF28, a0 * 0x100, 0); -} diff --git a/src/unk_text_util_2.c b/src/unk_text_util_2.c index 02648bf93..b1d2264e4 100644 --- a/src/unk_text_util_2.c +++ b/src/unk_text_util_2.c @@ -6,7 +6,7 @@ ALIGNED(4) static const u8 sUnknown_08616124[] = {1, 2, 4}; -static const u16 sFont6BrailleGlyphs[] = INCBIN_U16("data/graphics/fonts/font6.fwjpnfont"); +static const u16 sFont6BrailleGlyphs[] = INCBIN_U16("graphics/fonts/font6.fwjpnfont"); static void DecompressGlyphFont6(u16); diff --git a/src/wild_encounter.c b/src/wild_encounter.c index 52aac17f3..21f871751 100644 --- a/src/wild_encounter.c +++ b/src/wild_encounter.c @@ -127,12 +127,9 @@ static bool8 CheckFeebas(void) return FALSE; } -// The number 1103515245 comes from the example implementation of rand and srand -// in the ISO C standard. - static u16 FeebasRandom(void) { - sFeebasRngValue = (1103515245 * sFeebasRngValue) + 12345; + sFeebasRngValue = ISO_RANDOMIZE2(sFeebasRngValue); return sFeebasRngValue >> 16; } |