diff options
author | GriffinR <griffin.g.richards@gmail.com> | 2020-02-23 13:18:54 -0500 |
---|---|---|
committer | huderlem <huderlem@gmail.com> | 2020-02-25 12:54:08 -0600 |
commit | 51cd0ac08116674a8ebd258af0620c2f7de9dc0e (patch) | |
tree | 27f125cc057a019049feccabc746ce09ac91a2f5 /src/bug.c | |
parent | dc3c2b72f26463e4368f51e0380b8605ec06c40a (diff) |
Rename battle anim type files, remove unneeded ARG_RET_IDs
Diffstat (limited to 'src/bug.c')
-rw-r--r-- | src/bug.c | 492 |
1 files changed, 0 insertions, 492 deletions
diff --git a/src/bug.c b/src/bug.c deleted file mode 100644 index ea3df8098..000000000 --- a/src/bug.c +++ /dev/null @@ -1,492 +0,0 @@ -#include "global.h" -#include "battle_anim.h" -#include "gpu_regs.h" -#include "trig.h" -#include "constants/rgb.h" - -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, -}; - -static const union AffineAnimCmd sAffineAnim_MegahornHorn_1[] = -{ - AFFINEANIMCMD_FRAME(0x100, 0x100, -99, 0), - AFFINEANIMCMD_END, -}; - -static const union AffineAnimCmd sAffineAnim_MegahornHorn_2[] = -{ - AFFINEANIMCMD_FRAME(0x100, 0x100, 94, 0), - AFFINEANIMCMD_END, -}; - -static const union AffineAnimCmd *const sAffineAnims_MegahornHorn[] = -{ - sAffineAnim_MegahornHorn_0, - sAffineAnim_MegahornHorn_1, - sAffineAnim_MegahornHorn_2, -}; - -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 = sAffineAnims_MegahornHorn, - .callback = AnimMegahornHorn, -}; - -static const union AffineAnimCmd sAffineAnim_LeechLifeNeedle_0[] = -{ - AFFINEANIMCMD_FRAME(0x0, 0x0, -33, 1), - AFFINEANIMCMD_END, -}; - -static const union AffineAnimCmd sAffineAnim_LeechLifeNeedle_1[] = -{ - AFFINEANIMCMD_FRAME(0x0, 0x0, 96, 1), - AFFINEANIMCMD_END, -}; - -static const union AffineAnimCmd sAffineAnim_LeechLifeNeedle_2[] = -{ - AFFINEANIMCMD_FRAME(0x0, 0x0, -96, 1), - AFFINEANIMCMD_END, -}; - -static const union AffineAnimCmd *const sAffineAnims_LeechLifeNeedle[] = -{ - sAffineAnim_LeechLifeNeedle_0, - sAffineAnim_LeechLifeNeedle_1, - sAffineAnim_LeechLifeNeedle_2, -}; - -const struct SpriteTemplate gLeechLifeNeedleSpriteTemplate = -{ - .tileTag = ANIM_TAG_NEEDLE, - .paletteTag = ANIM_TAG_NEEDLE, - .oam = &gOamData_AffineNormal_ObjNormal_16x16, - .anims = gDummySpriteAnimTable, - .images = NULL, - .affineAnims = sAffineAnims_LeechLifeNeedle, - .callback = AnimLeechLifeNeedle, -}; - -const struct SpriteTemplate gWebThreadSpriteTemplate = -{ - .tileTag = ANIM_TAG_WEB_THREAD, - .paletteTag = ANIM_TAG_WEB_THREAD, - .oam = &gOamData_AffineOff_ObjNormal_8x8, - .anims = gDummySpriteAnimTable, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = AnimTranslateWebThread, -}; - -const struct SpriteTemplate gStringWrapSpriteTemplate = -{ - .tileTag = ANIM_TAG_STRING, - .paletteTag = ANIM_TAG_STRING, - .oam = &gOamData_AffineOff_ObjNormal_64x32, - .anims = gDummySpriteAnimTable, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = AnimStringWrap, -}; - -static const union AffineAnimCmd sAffineAnim_SpiderWeb[] = -{ - AFFINEANIMCMD_FRAME(0x10, 0x10, 0, 0), - AFFINEANIMCMD_FRAME(0x6, 0x6, 0, 1), - AFFINEANIMCMD_JUMP(1), -}; - -static const union AffineAnimCmd *const sAffineAnims_SpiderWeb[] = -{ - sAffineAnim_SpiderWeb, -}; - -const struct SpriteTemplate gSpiderWebSpriteTemplate = -{ - .tileTag = ANIM_TAG_SPIDER_WEB, - .paletteTag = ANIM_TAG_SPIDER_WEB, - .oam = &gOamData_AffineDouble_ObjBlend_64x64, - .anims = gDummySpriteAnimTable, - .images = NULL, - .affineAnims = sAffineAnims_SpiderWeb, - .callback = AnimSpiderWeb, -}; - -const struct SpriteTemplate gLinearStingerSpriteTemplate = -{ - .tileTag = ANIM_TAG_NEEDLE, - .paletteTag = ANIM_TAG_NEEDLE, - .oam = &gOamData_AffineNormal_ObjNormal_16x16, - .anims = gDummySpriteAnimTable, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = AnimTranslateStinger, -}; - -const struct SpriteTemplate gPinMissileSpriteTemplate = -{ - .tileTag = ANIM_TAG_NEEDLE, - .paletteTag = ANIM_TAG_NEEDLE, - .oam = &gOamData_AffineNormal_ObjNormal_16x16, - .anims = gDummySpriteAnimTable, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = AnimMissileArc, -}; - -const struct SpriteTemplate gIcicleSpearSpriteTemplate = -{ - .tileTag = ANIM_TAG_ICICLE_SPEAR, - .paletteTag = ANIM_TAG_ICICLE_SPEAR, - .oam = &gOamData_AffineNormal_ObjNormal_32x32, - .anims = gDummySpriteAnimTable, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = AnimMissileArc, -}; - -static const union AffineAnimCmd sAffineAnim_TailGlowOrb[] = -{ - AFFINEANIMCMD_FRAME(0x10, 0x10, 0, 0), - AFFINEANIMCMD_FRAME(0x8, 0x8, 0, 18), - AFFINEANIMCMD_LOOP(0), - AFFINEANIMCMD_FRAME(0xFFFB, 0xFFFB, 0, 8), - AFFINEANIMCMD_FRAME(0x5, 0x5, 0, 8), - AFFINEANIMCMD_LOOP(5), - AFFINEANIMCMD_END, -}; - -static const union AffineAnimCmd *const sAffineAnims_TailGlowOrb[] = -{ - sAffineAnim_TailGlowOrb, -}; - -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 = sAffineAnims_TailGlowOrb, - .callback = AnimTailGlowOrb, -}; - -static void AnimMegahornHorn(struct Sprite *sprite) -{ - if (IsContest()) - { - StartSpriteAffineAnim(sprite, 2); - gBattleAnimArgs[2] = -gBattleAnimArgs[2]; - gBattleAnimArgs[0] = -gBattleAnimArgs[0]; - } - else if (!GetBattlerSide(gBattleAnimTarget)) - { - StartSpriteAffineAnim(sprite, 1); - gBattleAnimArgs[1] = -gBattleAnimArgs[1]; - gBattleAnimArgs[2] = -gBattleAnimArgs[2]; - gBattleAnimArgs[3] = -gBattleAnimArgs[3]; - gBattleAnimArgs[0] = -gBattleAnimArgs[0]; - } - - sprite->pos1.x = GetBattlerSpriteCoord2(gBattleAnimTarget, 2) + gBattleAnimArgs[0]; - sprite->pos1.y = GetBattlerSpriteCoord2(gBattleAnimTarget, 3) + gBattleAnimArgs[1]; - sprite->data[0] = gBattleAnimArgs[4]; - - sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2) + gBattleAnimArgs[2]; - sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3) + gBattleAnimArgs[3]; - - sprite->callback = StartAnimLinearTranslation; - StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); -} - -static void AnimLeechLifeNeedle(struct Sprite *sprite) -{ - if (IsContest()) - { - gBattleAnimArgs[0] = -gBattleAnimArgs[0]; - StartSpriteAffineAnim(sprite, 2); - } - else if (!GetBattlerSide(gBattleAnimTarget)) - { - gBattleAnimArgs[1] = -gBattleAnimArgs[1]; - gBattleAnimArgs[0] = -gBattleAnimArgs[0]; - } - - sprite->pos1.x = GetBattlerSpriteCoord2(gBattleAnimTarget, 2) + gBattleAnimArgs[0]; - sprite->pos1.y = GetBattlerSpriteCoord2(gBattleAnimTarget, 3) + gBattleAnimArgs[1]; - sprite->data[0] = gBattleAnimArgs[2]; - - sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2); - sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3); - - sprite->callback = StartAnimLinearTranslation; - StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); -} - -// Creates a single web thread that travels from attacker to target. -// Used by MOVE_STRING_SHOT and MOVE_SPIDER_WEB in their first move phase. -// arg 0: x -// arg 1: y -// arg 2: controls the left-to-right movement -// arg 3: amplitude -// arg 4: if targets both opponents -static void AnimTranslateWebThread(struct Sprite *sprite) -{ - if (IsContest()) - gBattleAnimArgs[2] /= 2; - - InitSpritePosToAnimAttacker(sprite, TRUE); - sprite->data[0] = gBattleAnimArgs[2]; - sprite->data[1] = sprite->pos1.x; - sprite->data[3] = sprite->pos1.y; - - if (!gBattleAnimArgs[4]) - { - sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2); - sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3); - } - else - { - SetAverageBattlerPositions(gBattleAnimTarget, 1, &sprite->data[2], &sprite->data[4]); - } - - sub_80A6FD4(sprite); - sprite->data[5] = gBattleAnimArgs[3]; - sprite->callback = AnimTranslateWebThread_Step; -} - -static void AnimTranslateWebThread_Step(struct Sprite *sprite) -{ - if (AnimTranslateLinear(sprite)) - { - DestroyAnimSprite(sprite); - return; - } - - sprite->pos2.x += Sin(sprite->data[6], sprite->data[5]); - sprite->data[6] = (sprite->data[6] + 13) & 0xFF; -} - -// Second stage of String Shot -static void AnimStringWrap(struct Sprite *sprite) -{ - SetAverageBattlerPositions(gBattleAnimTarget, 0, &sprite->pos1.x, &sprite->pos1.y); - if (GetBattlerSide(gBattleAnimAttacker)) - sprite->pos1.x -= gBattleAnimArgs[0]; - else - sprite->pos1.x += gBattleAnimArgs[0]; - - sprite->pos1.y += gBattleAnimArgs[1]; - if (!GetBattlerSide(gBattleAnimTarget)) - sprite->pos1.y += 8; - - sprite->callback = AnimStringWrap_Step; -} - -static void AnimStringWrap_Step(struct Sprite *sprite) -{ - if (++sprite->data[0] == 3) - { - sprite->data[0] = 0; - sprite->invisible ^= 1; - } - - if (++sprite->data[1] == 51) - { - DestroyAnimSprite(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 = AnimSpiderWeb_Step; -} - -static void AnimSpiderWeb_Step(struct Sprite *sprite) -{ - if (sprite->data[2] < 20) - { - sprite->data[2]++; - } - else if (sprite->data[1]++ & 1) - { - sprite->data[0]--; - SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(sprite->data[0], 16 - sprite->data[0])); - - if (sprite->data[0] == 0) - { - sprite->invisible = TRUE; - sprite->callback = AnimSpiderWeb_End; - } - } -} - -static void AnimSpiderWeb_End(struct Sprite *sprite) -{ - SetGpuReg(REG_OFFSET_BLDCNT, 0); - SetGpuReg(REG_OFFSET_BLDALPHA, 0); - DestroyAnimSprite(sprite); -} - -// Translates a stinger sprite linearly to a destination location. The sprite is -// initially rotated so that it appears to be traveling in a straight line. -// arg 0: initial x pixel offset -// arg 1: initial y pixel offset -// arg 2: target x pixel offset -// arg 3: target y pixel offset -// arg 4: duration -static void AnimTranslateStinger(struct Sprite *sprite) -{ - s16 lVarX, lVarY; - u16 rot; - - if (IsContest()) - { - gBattleAnimArgs[2] = -gBattleAnimArgs[2]; - } - else - { - if (GetBattlerSide(gBattleAnimAttacker)) - { - gBattleAnimArgs[2] = -gBattleAnimArgs[2]; - gBattleAnimArgs[1] = -gBattleAnimArgs[1]; - gBattleAnimArgs[3] = -gBattleAnimArgs[3]; - } - } - - if (!IsContest() && GetBattlerSide(gBattleAnimAttacker) == GetBattlerSide(gBattleAnimTarget)) - { - if (GetBattlerPosition(gBattleAnimTarget) == B_POSITION_PLAYER_LEFT - || GetBattlerPosition(gBattleAnimTarget) == B_POSITION_OPPONENT_LEFT) - { - s16 temp1, temp2; - - temp1 = gBattleAnimArgs[2]; - gBattleAnimArgs[2] = -temp1; - - temp2 = gBattleAnimArgs[0]; - gBattleAnimArgs[0] = -temp2; - } - } - - InitSpritePosToAnimAttacker(sprite, 1); - - lVarX = GetBattlerSpriteCoord(gBattleAnimTarget, 2) + gBattleAnimArgs[2]; - lVarY = GetBattlerSpriteCoord(gBattleAnimTarget, 3) + gBattleAnimArgs[3]; - rot = ArcTan2Neg(lVarX - sprite->pos1.x, lVarY - sprite->pos1.y); - rot += 0xC000; - TrySetSpriteRotScale(sprite, FALSE, 0x100, 0x100, rot); - - sprite->data[0] = gBattleAnimArgs[4]; - sprite->data[2] = lVarX; - sprite->data[4] = lVarY; - - sprite->callback = StartAnimLinearTranslation; - StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); -} - -// Rotates sprite and moves it in an arc, so that it appears like a missle or arrow traveling. -// arg 0: initial x pixel offset -// arg 1: initial y pixel offset -// arg 2: target x pixel offset -// arg 3: target y pixel offset -// arg 4: duration -// arg 5: wave amplitude -static void AnimMissileArc(struct Sprite *sprite) -{ - InitSpritePosToAnimAttacker(sprite, 1); - - if (GetBattlerSide(gBattleAnimAttacker)) - gBattleAnimArgs[2] = -gBattleAnimArgs[2]; - - sprite->data[0] = gBattleAnimArgs[4]; - sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2) + gBattleAnimArgs[2]; - sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3) + gBattleAnimArgs[3]; - sprite->data[5] = gBattleAnimArgs[5]; - InitAnimArcTranslation(sprite); - - sprite->callback = AnimMissileArc_Step; - sprite->invisible = TRUE; -} - -static void AnimMissileArc_Step(struct Sprite *sprite) -{ - sprite->invisible = FALSE; - - if (TranslateAnimHorizontalArc(sprite)) - { - DestroyAnimSprite(sprite); - } - else - { - s16 tempData[8]; - u16 *data = sprite->data; - u16 x1 = sprite->pos1.x; - s16 x2 = sprite->pos2.x; - u16 y1 = sprite->pos1.y; - s16 y2 = sprite->pos2.y; - int i; - - for (i = 0; i < 8; i++) - tempData[i] = data[i]; - - x2 += x1; - y2 += y1; - - if (!TranslateAnimHorizontalArc(sprite)) - { - u16 rotation = ArcTan2Neg(sprite->pos1.x + sprite->pos2.x - x2, - sprite->pos1.y + sprite->pos2.y - y2); - rotation += 0xC000; - TrySetSpriteRotScale(sprite, FALSE, 0x100, 0x100, rotation); - - for (i = 0; i < 8; i++) - data[i] = tempData[i]; - } - } -} - -static void AnimTailGlowOrb(struct Sprite *sprite) -{ - if (gBattleAnimArgs[0] == ANIM_ATTACKER) - { - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3) + 18; - } - else - { - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, 2); - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, 3) + 18; - } - - StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix); - sprite->callback = RunStoredCallbackWhenAffineAnimEnds; -} |