diff options
author | ProjectRevoTPP <projectrevotpp@hotmail.com> | 2018-02-13 21:47:44 -0500 |
---|---|---|
committer | ProjectRevoTPP <projectrevotpp@hotmail.com> | 2018-02-13 21:47:44 -0500 |
commit | 17e1da554b016116bbceba86a8d0dfd360f8340c (patch) | |
tree | 700a36306e9bf9461f0855bda10247c47b9ececb | |
parent | 8b8ccbbc41141637297cfe847f1ce62e6139d965 (diff) | |
parent | 28987bb1cd0e6864257ff0434508dddcddb22e98 (diff) |
Merge branch 'master' of https://github.com/pret/pokeruby into visual_studio
63 files changed, 1063 insertions, 989 deletions
diff --git a/asm/battle_anim_812C144.s b/asm/battle_anim_812C144.s index 2aa2f911b..dd0e9bac1 100644 --- a/asm/battle_anim_812C144.s +++ b/asm/battle_anim_812C144.s @@ -262,7 +262,7 @@ _0812C31A: strh r0, [r5, 0x2E] strh r7, [r5, 0x32] strh r6, [r5, 0x36] - ldr r0, _0812C350 @ =sub_8078B34 + ldr r0, _0812C350 @ =StartTranslateAnimSpriteByDeltas str r0, [r5, 0x1C] ldr r1, _0812C354 @ =DestroyAnimSprite adds r0, r5, 0 @@ -274,7 +274,7 @@ _0812C31A: .align 2, 0 _0812C348: .4byte gAnimBankTarget _0812C34C: .4byte gBattleAnimArgs -_0812C350: .4byte sub_8078B34 +_0812C350: .4byte StartTranslateAnimSpriteByDeltas _0812C354: .4byte DestroyAnimSprite thumb_func_end sub_812C2BC @@ -795,7 +795,7 @@ sub_812C720: @ 812C720 sub sp, 0x4 adds r4, r0, 0 movs r1, 0x1 - bl sub_80787B0 + bl InitAnimSpritePos ldr r0, _0812C784 @ =gAnimBankTarget ldrb r0, [r0] mov r5, sp @@ -803,7 +803,7 @@ sub_812C720: @ 812C720 movs r1, 0 mov r2, sp adds r3, r5, 0 - bl sub_807A3FC + bl SetAverageBattlerPositions ldr r0, _0812C788 @ =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide @@ -849,7 +849,7 @@ _0812C794: .4byte sub_812C798 sub_812C798: @ 812C798 push {r4,lr} adds r4, r0, 0 - bl sub_8078718 + bl TranslateAnimSpriteLinearAndSine lsls r0, 24 cmp r0, 0 beq _0812C7BA @@ -2301,7 +2301,7 @@ sub_812D294: @ 812D294 bne _0812D2A8 adds r0, r5, 0 movs r1, 0 - bl sub_80787B0 + bl InitAnimSpritePos _0812D2A8: ldrh r0, [r5, 0x2E] adds r0, 0x1 @@ -2376,7 +2376,7 @@ _0812D2F0: lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] - ldr r0, _0812D34C @ =sub_8078B34 + ldr r0, _0812D34C @ =StartTranslateAnimSpriteByDeltas str r0, [r5, 0x1C] _0812D33C: pop {r4,r5} @@ -2385,7 +2385,7 @@ _0812D33C: .align 2, 0 _0812D344: .4byte DestroyAnimSprite _0812D348: .4byte gAnimBankTarget -_0812D34C: .4byte sub_8078B34 +_0812D34C: .4byte StartTranslateAnimSpriteByDeltas thumb_func_end sub_812D294 thumb_func_start sub_812D350 @@ -2915,7 +2915,7 @@ sub_812D724: @ 812D724 _0812D736: adds r0, r4, 0 movs r1, 0 - bl sub_80787B0 + bl InitAnimSpritePos movs r0, 0x90 lsls r0, 4 strh r0, [r4, 0x30] @@ -4626,7 +4626,7 @@ sub_812E4F0: @ 812E4F0 bne _0812E50E adds r0, r4, 0 movs r1, 0 - bl sub_80787B0 + bl InitAnimSpritePos ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] @@ -9023,7 +9023,7 @@ _081306D6: lsls r0, 2 ldr r1, _08130708 @ =gSprites adds r0, r1 - bl sub_8078718 + bl TranslateAnimSpriteLinearAndSine ldrh r0, [r4, 0xC] adds r0, 0x1 strh r0, [r4, 0xC] @@ -9042,7 +9042,7 @@ _0813070C: lsls r0, 2 ldr r1, _0813072C @ =gSprites adds r0, r1 - bl sub_8078718 + bl TranslateAnimSpriteLinearAndSine lsls r0, 24 cmp r0, 0 beq _081307AA @@ -10151,7 +10151,7 @@ sub_8130F5C: @ 8130F5C bne _08130F80 adds r0, r4, 0 movs r1, 0x1 - bl sub_80787B0 + bl InitAnimSpritePos ldr r0, _08130F7C @ =gAnimBankAttacker b _08130F82 .align 2, 0 @@ -10356,11 +10356,11 @@ _081310FA: strh r0, [r4, 0x34] strh r1, [r4, 0x36] adds r0, r4, 0 - bl obj_translate_based_on_private_1_2_3_4 + bl InitAnimSpriteTranslationDeltas b _081311CA _08131110: adds r0, r4, 0 - bl sub_8078B5C + bl TranslateAnimSpriteByDeltas lsls r0, 24 cmp r0, 0 beq _081311DE diff --git a/asm/battle_anim_813F0F4.s b/asm/battle_anim_813F0F4.s index 578704b60..d7172bde6 100644 --- a/asm/battle_anim_813F0F4.s +++ b/asm/battle_anim_813F0F4.s @@ -1588,7 +1588,7 @@ sub_813FDC0: @ 813FDC0 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 - bl sub_8078718 + bl TranslateAnimSpriteLinearAndSine lsls r0, 24 cmp r0, 0 beq _0813FE5A @@ -5479,7 +5479,7 @@ sub_8141C30: @ 8141C30 push {r4,r5,lr} adds r4, r0, 0 movs r1, 0 - bl sub_80787B0 + bl InitAnimSpritePos movs r0, 0x1E strh r0, [r4, 0x2E] movs r0, 0x1 @@ -5569,7 +5569,7 @@ _08141CF0: .4byte sub_8141CF4 sub_8141CF4: @ 8141CF4 push {r4,lr} adds r4, r0, 0 - bl sub_8078718 + bl TranslateAnimSpriteLinearAndSine lsls r0, 24 cmp r0, 0 beq _08141D16 diff --git a/asm/current.s b/asm/current.s index 4ef537dc3..69927ea23 100644 --- a/asm/current.s +++ b/asm/current.s @@ -12,7 +12,7 @@ sub_80D648C: @ 80D648C push {r4-r6,lr} adds r4, r0, 0 movs r1, 0x1 - bl sub_80787B0 + bl InitAnimSpritePos ldr r5, _080D6500 @ =gBattleAnimArgs ldrh r0, [r5, 0x6] strh r0, [r4, 0x2E] @@ -34,7 +34,7 @@ sub_80D648C: @ 80D648C lsrs r0, 24 strh r0, [r4, 0x36] adds r0, r4, 0 - bl obj_translate_based_on_private_1_2_3_4 + bl InitAnimSpriteTranslationDeltas ldrh r0, [r5, 0x4] strh r0, [r4, 0x38] ldrh r0, [r5, 0xA] @@ -74,7 +74,7 @@ _080D6510: .4byte sub_80D6514 sub_80D6514: @ 80D6514 push {r4,lr} adds r4, r0, 0 - bl sub_8078B5C + bl TranslateAnimSpriteByDeltas lsls r0, 24 cmp r0, 0 bne _080D657E @@ -998,7 +998,7 @@ sub_80D6BB8: @ 80D6BB8 strh r0, [r4, 0x36] strh r6, [r4, 0x38] adds r0, r4, 0 - bl obj_translate_based_on_private_1_2_3_4 + bl InitAnimSpriteTranslationDeltas ldr r1, _080D6CB0 @ =sub_80D6D00 adds r0, r4, 0 bl StoreSpriteCallbackInData @@ -1062,7 +1062,7 @@ _080D6CC6: sub_80D6CCC: @ 80D6CCC push {r4,lr} adds r4, r0, 0 - bl sub_8078B5C + bl TranslateAnimSpriteByDeltas lsls r0, 24 cmp r0, 0 beq _080D6CF4 diff --git a/asm/flying.s b/asm/flying.s index ce3fb050b..a9872c903 100644 --- a/asm/flying.s +++ b/asm/flying.s @@ -174,7 +174,7 @@ sub_80DA16C: @ 80DA16C push {r4-r6,lr} adds r6, r0, 0 movs r1, 0x1 - bl sub_80787B0 + bl InitAnimSpritePos ldr r0, _080DA1D8 @ =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide @@ -211,7 +211,7 @@ _080DA18C: adds r0, r4 strh r0, [r6, 0x36] adds r0, r6, 0 - bl obj_translate_based_on_private_1_2_3_4 + bl InitAnimSpriteTranslationDeltas ldr r0, _080DA1E4 @ =sub_80785E4 str r0, [r6, 0x1C] ldr r1, _080DA1E8 @ =sub_80DA1EC @@ -232,7 +232,7 @@ _080DA1E8: .4byte sub_80DA1EC sub_80DA1EC: @ 80DA1EC push {r4,lr} adds r4, r0, 0 - bl sub_8078B5C + bl TranslateAnimSpriteByDeltas lsls r0, 24 cmp r0, 0 beq _080DA200 @@ -331,7 +331,7 @@ _080DA2B0: adds r3, r5, 0 adds r3, 0x36 movs r1, 0x1 - bl sub_807A3FC + bl SetAverageBattlerPositions _080DA2C2: ldr r4, _080DA2F4 @ =gBattleAnimArgs ldrh r0, [r4, 0x4] @@ -342,7 +342,7 @@ _080DA2C2: ldrh r3, [r5, 0x36] adds r0, r3 strh r0, [r5, 0x36] - ldr r0, _080DA2F8 @ =sub_8078B34 + ldr r0, _080DA2F8 @ =StartTranslateAnimSpriteByDeltas str r0, [r5, 0x1C] ldr r1, _080DA2FC @ =DestroyAnimSprite adds r0, r5, 0 @@ -356,7 +356,7 @@ _080DA2C2: .align 2, 0 _080DA2F0: .4byte gAnimBankTarget _080DA2F4: .4byte gBattleAnimArgs -_080DA2F8: .4byte sub_8078B34 +_080DA2F8: .4byte StartTranslateAnimSpriteByDeltas _080DA2FC: .4byte DestroyAnimSprite thumb_func_end sub_80DA208 @@ -365,7 +365,7 @@ sub_80DA300: @ 80DA300 push {r4,lr} adds r4, r0, 0 movs r1, 0x1 - bl sub_80787B0 + bl InitAnimSpritePos ldr r1, _080DA33C @ =gBattleAnimArgs ldrh r0, [r1, 0x4] strh r0, [r4, 0x2E] @@ -483,7 +483,7 @@ _080DA3C2: lsrs r0, 24 strh r0, [r5, 0x36] adds r0, r5, 0 - bl obj_translate_based_on_private_1_2_3_4 + bl InitAnimSpriteTranslationDeltas ldr r0, _080DA40C @ =sub_80DA410 str r0, [r5, 0x1C] pop {r4,r5} @@ -503,7 +503,7 @@ sub_80DA410: @ 80DA410 movs r0, 0x1 strh r0, [r4, 0x2E] adds r0, r4, 0 - bl sub_8078B5C + bl TranslateAnimSpriteByDeltas ldrh r1, [r4, 0x34] lsrs r0, r1, 8 cmp r0, 0xC8 @@ -1743,7 +1743,7 @@ sub_80DAD30: @ 80DAD30 lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x22] - ldr r0, _080DAD80 @ =sub_807941C + ldr r0, _080DAD80 @ =TranslateAnimSpriteToTargetMonLocation str r0, [r4, 0x1C] pop {r4,r5} pop {r0} @@ -1751,7 +1751,7 @@ sub_80DAD30: @ 80DAD30 .align 2, 0 _080DAD78: .4byte gAnimBankTarget _080DAD7C: .4byte gAnimBankAttacker -_080DAD80: .4byte sub_807941C +_080DAD80: .4byte TranslateAnimSpriteToTargetMonLocation thumb_func_end sub_80DAD30 thumb_func_start sub_80DAD84 @@ -2086,7 +2086,7 @@ sub_80DB000: @ 80DB000 bne _080DB01C adds r0, r5, 0 movs r1, 0 - bl sub_80787B0 + bl InitAnimSpritePos b _080DB024 .align 2, 0 _080DB018: .4byte gBattleAnimArgs @@ -2291,7 +2291,7 @@ sub_80DB194: @ 80DB194 _080DB1A6: adds r0, r4, 0 movs r1, 0x1 - bl sub_80787B0 + bl InitAnimSpritePos movs r0, 0 bl GetAnimBankSpriteId ldr r2, _080DB1D4 @ =gSprites @@ -2414,7 +2414,7 @@ sub_80DB288: @ 80DB288 push {r4,lr} adds r4, r0, 0 movs r1, 0x1 - bl sub_80787B0 + bl InitAnimSpritePos ldr r1, _080DB2C4 @ =gBattleAnimArgs ldrh r0, [r1, 0x4] strh r0, [r4, 0x2E] diff --git a/asm/ghost.s b/asm/ghost.s index 928d940b5..df20a7b20 100644 --- a/asm/ghost.s +++ b/asm/ghost.s @@ -12,7 +12,7 @@ sub_80DDB6C: @ 80DDB6C push {r4,r5,lr} adds r4, r0, 0 movs r1, 0x1 - bl sub_80787B0 + bl InitAnimSpritePos ldr r0, _080DDBC8 @ =gBattleAnimArgs ldrh r0, [r0, 0x4] strh r0, [r4, 0x2E] @@ -63,7 +63,7 @@ sub_80DDBD8: @ 80DDBD8 adds r4, r0, 0 bl sub_80DDCC8 adds r0, r4, 0 - bl sub_8078B5C + bl TranslateAnimSpriteByDeltas lsls r0, 24 cmp r0, 0 beq _080DDBF8 @@ -123,7 +123,7 @@ sub_80DDC4C: @ 80DDC4C movs r0, 0x1 strh r0, [r4, 0x2E] adds r0, r4, 0 - bl sub_8078B5C + bl TranslateAnimSpriteByDeltas movs r1, 0x38 ldrsh r0, [r4, r1] movs r1, 0xA @@ -2539,7 +2539,7 @@ sub_80DEF3C: @ 80DEF3C push {r4,lr} adds r4, r0, 0 movs r1, 0x1 - bl sub_80787B0 + bl InitAnimSpritePos ldr r0, _080DEF68 @ =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide diff --git a/asm/ground.s b/asm/ground.s index 3be7d74ac..607065061 100644 --- a/asm/ground.s +++ b/asm/ground.s @@ -59,7 +59,7 @@ _080E0F80: .4byte sub_80E0F84 sub_80E0F84: @ 80E0F84 push {r4,r5,lr} adds r5, r0, 0 - bl sub_8078718 + bl TranslateAnimSpriteLinearAndSine lsls r0, 24 cmp r0, 0 beq _080E0FD8 @@ -108,7 +108,7 @@ _080E0FE4: .4byte sub_80E0FE8 sub_80E0FE8: @ 80E0FE8 push {r4,lr} adds r4, r0, 0 - bl sub_8078718 + bl TranslateAnimSpriteLinearAndSine lsls r0, 24 cmp r0, 0 beq _080E0FFC @@ -157,7 +157,7 @@ _080E1024: ldrh r4, [r4, 0x6] adds r0, r4 strh r0, [r6, 0x36] - ldr r0, _080E1070 @ =sub_8078B34 + ldr r0, _080E1070 @ =StartTranslateAnimSpriteByDeltas str r0, [r6, 0x1C] ldr r1, _080E1074 @ =DestroyAnimSprite adds r0, r6, 0 @@ -169,7 +169,7 @@ _080E1024: _080E1064: .4byte gAnimBankAttacker _080E1068: .4byte gBattleAnimArgs _080E106C: .4byte gAnimBankTarget -_080E1070: .4byte sub_8078B34 +_080E1070: .4byte StartTranslateAnimSpriteByDeltas _080E1074: .4byte DestroyAnimSprite thumb_func_end sub_80E1004 @@ -180,7 +180,7 @@ sub_80E1078: @ 80E1078 push {r7} adds r6, r0, 0 movs r1, 0x1 - bl sub_80787B0 + bl InitAnimSpritePos ldr r4, _080E10F8 @ =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 @@ -224,7 +224,7 @@ _080E10D0: strh r0, [r6, 0x32] adds r0, r7, r4 strh r0, [r6, 0x36] - ldr r0, _080E1100 @ =sub_8078B34 + ldr r0, _080E1100 @ =StartTranslateAnimSpriteByDeltas str r0, [r6, 0x1C] ldr r1, _080E1104 @ =move_anim_8074EE0 adds r0, r6, 0 @@ -237,7 +237,7 @@ _080E10D0: .align 2, 0 _080E10F8: .4byte gAnimBankTarget _080E10FC: .4byte gBattleAnimArgs -_080E1100: .4byte sub_8078B34 +_080E1100: .4byte StartTranslateAnimSpriteByDeltas _080E1104: .4byte move_anim_8074EE0 thumb_func_end sub_80E1078 @@ -1120,7 +1120,7 @@ _080E17AC: .4byte sub_80E17B0 sub_80E17B0: @ 80E17B0 push {r4,lr} adds r4, r0, 0 - bl sub_8078718 + bl TranslateAnimSpriteLinearAndSine lsls r0, 24 cmp r0, 0 beq _080E17C4 @@ -325,7 +325,7 @@ sub_80D792C: @ 80D792C push {r4,lr} adds r4, r0, 0 movs r1, 0x1 - bl sub_80787B0 + bl InitAnimSpritePos ldr r0, _080D7960 @ =gAnimBankTarget ldrb r0, [r0] movs r1, 0x2 @@ -371,7 +371,7 @@ _080D7976: ldr r1, _080D79AC @ =DestroyAnimSprite adds r0, r4, 0 bl StoreSpriteCallbackInData - ldr r0, _080D79B0 @ =sub_8078B34 + ldr r0, _080D79B0 @ =StartTranslateAnimSpriteByDeltas str r0, [r4, 0x1C] pop {r4} pop {r0} @@ -380,7 +380,7 @@ _080D7976: _080D79A4: .4byte gBattleAnimArgs _080D79A8: .4byte gAnimBankTarget _080D79AC: .4byte DestroyAnimSprite -_080D79B0: .4byte sub_8078B34 +_080D79B0: .4byte StartTranslateAnimSpriteByDeltas thumb_func_end sub_80D792C thumb_func_start sub_80D79B4 @@ -406,7 +406,7 @@ _080D79D0: adds r3, r4, 0 adds r3, 0x22 movs r1, 0x1 - bl sub_807A3FC + bl SetAverageBattlerPositions ldr r0, _080D7A1C @ =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide @@ -480,7 +480,7 @@ sub_80D7A64: @ 80D7A64 sub sp, 0x10 adds r5, r0, 0 movs r1, 0x1 - bl sub_80787B0 + bl InitAnimSpritePos ldr r6, _080D7AAC @ =gBattleAnimArgs ldrh r0, [r6, 0x8] strh r0, [r5, 0x2E] @@ -519,7 +519,7 @@ _080D7AB4: adds r3, r5, 0 adds r3, 0x36 movs r1, 0x1 - bl sub_807A3FC + bl SetAverageBattlerPositions _080D7AC6: ldr r0, _080D7AE4 @ =gAnimBankAttacker ldrb r0, [r0] @@ -795,7 +795,7 @@ sub_80D7CD4: @ 80D7CD4 sub sp, 0x10 adds r5, r0, 0 movs r1, 0x1 - bl sub_80787B0 + bl InitAnimSpritePos ldr r1, _080D7D18 @ =gBattleAnimArgs ldrh r0, [r1, 0x8] strh r0, [r5, 0x2E] @@ -832,7 +832,7 @@ _080D7D20: adds r3, r5, 0 adds r3, 0x36 movs r1, 0x1 - bl sub_807A3FC + bl SetAverageBattlerPositions _080D7D32: ldr r0, _080D7D54 @ =gAnimBankAttacker ldrb r0, [r0] @@ -1036,7 +1036,7 @@ _080D7EAC: adds r3, r4, 0 adds r3, 0x22 movs r1, 0 - bl sub_807A3FC + bl SetAverageBattlerPositions ldr r0, _080D7EF0 @ =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide @@ -1094,7 +1094,7 @@ sub_80D7F10: @ 80D7F10 bne _080D7F34 adds r0, r5, 0 movs r1, 0 - bl sub_80787B0 + bl InitAnimSpritePos b _080D7F72 .align 2, 0 _080D7F30: .4byte gBattleAnimArgs @@ -1106,7 +1106,7 @@ _080D7F34: adds r3, r5, 0 adds r3, 0x22 movs r1, 0 - bl sub_807A3FC + bl SetAverageBattlerPositions ldrb r0, [r4] bl GetBankSide lsls r0, 24 @@ -1152,7 +1152,7 @@ _080D7F92: adds r3, r5, 0 adds r3, 0x22 movs r1, 0 - bl sub_807A3FC + bl SetAverageBattlerPositions ldrb r0, [r4] bl GetBankSide lsls r0, 24 @@ -1221,7 +1221,7 @@ _080D800C: adds r0, r1 strh r0, [r5, 0x36] adds r0, r5, 0 - bl obj_translate_based_on_private_1_2_3_4 + bl InitAnimSpriteTranslationDeltas movs r0, 0x40 strh r0, [r5, 0x38] ldr r1, _080D8044 @ =sub_80D8048 @@ -1241,7 +1241,7 @@ _080D8044: .4byte sub_80D8048 sub_80D8048: @ 80D8048 push {r4,lr} adds r4, r0, 0 - bl sub_8078B5C + bl TranslateAnimSpriteByDeltas lsls r0, 24 cmp r0, 0 bne _080D80D2 @@ -1696,14 +1696,14 @@ sub_80D83E0: @ 80D83E0 lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x22] - ldr r0, _080D8410 @ =sub_807941C + ldr r0, _080D8410 @ =TranslateAnimSpriteToTargetMonLocation str r0, [r4, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D840C: .4byte gAnimBankAttacker -_080D8410: .4byte sub_807941C +_080D8410: .4byte TranslateAnimSpriteToTargetMonLocation thumb_func_end sub_80D83E0 thumb_func_start sub_80D8414 @@ -2227,7 +2227,7 @@ _080D8824: strb r0, [r1] _080D8858: adds r0, r5, 0 - bl obj_translate_based_on_private_1_2_3_4 + bl InitAnimSpriteTranslationDeltas ldr r0, _080D8870 @ =sub_80D8874 str r0, [r5, 0x1C] pop {r3} @@ -2263,7 +2263,7 @@ _080D8894: b _080D8AD0 _080D8896: adds r0, r4, 0 - bl sub_8078B5C + bl TranslateAnimSpriteByDeltas ldr r1, _080D88C0 @ =gSineTable movs r2, 0x38 ldrsh r0, [r4, r2] @@ -2361,13 +2361,13 @@ _080D893A: ands r0, r1 strh r0, [r4, 0x38] adds r0, r4, 0 - bl obj_translate_based_on_private_1_2_3_4 + bl InitAnimSpriteTranslationDeltas b _080D8AD0 .align 2, 0 _080D8964: .4byte gSineTable _080D8968: adds r0, r4, 0 - bl sub_8078B5C + bl TranslateAnimSpriteByDeltas ldr r1, _080D89C8 @ =gSineTable movs r2, 0x38 ldrsh r0, [r4, r2] @@ -2519,7 +2519,7 @@ _080D8A7A: _080D8A90: .4byte 0x0000fff0 _080D8A94: adds r0, r4, 0 - bl sub_8078B5C + bl TranslateAnimSpriteByDeltas lsls r0, 24 cmp r0, 0 beq _080D8AD0 @@ -3026,7 +3026,7 @@ _080D8E6A: bl StartSpriteAffineAnim adds r0, r5, 0 movs r1, 0x1 - bl sub_80787B0 + bl InitAnimSpritePos ldr r6, _080D8ED0 @ =gBattleAnimArgs ldrh r0, [r6, 0x8] strh r0, [r5, 0x2E] @@ -3078,7 +3078,7 @@ _080D8EDC: .4byte sub_80D8EE0 sub_80D8EE0: @ 80D8EE0 push {r4,lr} adds r4, r0, 0 - bl sub_8078718 + bl TranslateAnimSpriteLinearAndSine lsls r0, 24 cmp r0, 0 beq _080D8F02 diff --git a/asm/normal.s b/asm/normal.s index f56ca6ec6..c92b4563c 100644 --- a/asm/normal.s +++ b/asm/normal.s @@ -1471,7 +1471,7 @@ sub_80E27A0: @ 80E27A0 bne _080E27C4 adds r0, r5, 0 movs r1, 0x1 - bl sub_80787B0 + bl InitAnimSpritePos b _080E27CC .align 2, 0 _080E27C0: .4byte gBattleAnimArgs @@ -1506,7 +1506,7 @@ sub_80E27E8: @ 80E27E8 bne _080E280C adds r0, r5, 0 movs r1, 0x1 - bl sub_80787B0 + bl InitAnimSpritePos b _080E2814 .align 2, 0 _080E2808: .4byte gBattleAnimArgs @@ -1586,7 +1586,7 @@ _080E288C: bne _080E28AC adds r0, r4, 0 movs r1, 0 - bl sub_80787B0 + bl InitAnimSpritePos b _080E28B4 .align 2, 0 _080E28A8: .4byte gBattleAnimArgs @@ -1694,7 +1694,7 @@ sub_80E2978: @ 80E2978 bne _080E2994 adds r0, r4, 0 movs r1, 0x1 - bl sub_80787B0 + bl InitAnimSpritePos b _080E299C .align 2, 0 _080E2990: .4byte gBattleAnimArgs @@ -1733,7 +1733,7 @@ sub_80E29C0: @ 80E29C0 bne _080E29E4 adds r0, r5, 0 movs r1, 0x1 - bl sub_80787B0 + bl InitAnimSpritePos b _080E29EC .align 2, 0 _080E29E0: .4byte gBattleAnimArgs diff --git a/asm/water.s b/asm/water.s index 45fb7f82a..0bbddd2ca 100644 --- a/asm/water.s +++ b/asm/water.s @@ -2075,7 +2075,7 @@ _080D4B38: .4byte sub_80D4B3C sub_80D4B3C: @ 80D4B3C push {r4-r6,lr} adds r6, r0, 0 - bl sub_8078718 + bl TranslateAnimSpriteLinearAndSine lsls r0, 24 cmp r0, 0 beq _080D4B96 @@ -2126,7 +2126,7 @@ _080D4BA0: .4byte sub_80D4BA4 sub_80D4BA4: @ 80D4BA4 push {r4-r6,lr} adds r5, r0, 0 - bl sub_8078718 + bl TranslateAnimSpriteLinearAndSine lsls r0, 24 cmp r0, 0 beq _080D4BE0 @@ -2264,7 +2264,7 @@ sub_80D4CA4: @ 80D4CA4 push {r4,r5,lr} adds r4, r0, 0 movs r1, 0x1 - bl sub_80787B0 + bl InitAnimSpritePos ldr r5, _080D4CE0 @ =gAnimBankTarget ldrb r0, [r5] movs r1, 0x2 diff --git a/data/battle_ai_scripts.s b/data/battle_ai_scripts.s index 17b27fae5..ab83f2bf8 100644 --- a/data/battle_ai_scripts.s +++ b/data/battle_ai_scripts.s @@ -47,7 +47,7 @@ BattleAIs:: @ 81DA01C AI_CheckBadMove: @ 81DA09C is_most_powerful_move if_equal 0, AI_CheckBadMove_CheckSoundproof - if_damage_bonus 0, Score_Down10 + if_damage_bonus 0, Score_Minus10 get_ability TARGET if_equal ABILITY_VOLT_ABSORB, CheckIfVoltAbsorbCancelsElectric if_equal ABILITY_WATER_ABSORB, CheckIfWaterAbsorbCancelsWater @@ -58,39 +58,39 @@ AI_CheckBadMove: @ 81DA09C CheckIfVoltAbsorbCancelsElectric: @ 81DA0CE get_type CURRENT_MOVE - if_arg_equal TYPE_ELECTRIC, Score_Down12 + if_arg_equal TYPE_ELECTRIC, Score_Minus12 jump AI_CheckBadMove_CheckSoundproof CheckIfWaterAbsorbCancelsWater: @ 81DA0DB get_type CURRENT_MOVE - if_arg_equal TYPE_WATER, Score_Down12 + if_arg_equal TYPE_WATER, Score_Minus12 jump AI_CheckBadMove_CheckSoundproof CheckIfFlashFireCancelsFire: @ 81DA0E8 get_type CURRENT_MOVE - if_arg_equal TYPE_FIRE, Score_Down12 + if_arg_equal TYPE_FIRE, Score_Minus12 jump AI_CheckBadMove_CheckSoundproof CheckIfWonderGuardCancelsMove: @ 81DA0F5 if_damage_bonus 80, AI_CheckBadMove_CheckSoundproof - jump Score_Down10 + jump Score_Minus10 CheckIfLevitateCancelsGroundMove: @ 81DA100 get_type CURRENT_MOVE - if_arg_equal TYPE_GROUND, Score_Down10 + if_arg_equal TYPE_GROUND, Score_Minus10 AI_CheckBadMove_CheckSoundproof: @ 81DA108 get_ability TARGET if_not_equal ABILITY_SOUNDPROOF, AI_CheckBadMove_CheckEffect - if_move MOVE_GROWL, Score_Down10 - if_move MOVE_ROAR, Score_Down10 - if_move MOVE_SING, Score_Down10 - if_move MOVE_SUPERSONIC, Score_Down10 - if_move MOVE_SCREECH, Score_Down10 - if_move MOVE_SNORE, Score_Down10 - if_move MOVE_UPROAR, Score_Down10 - if_move MOVE_METAL_SOUND, Score_Down10 - if_move MOVE_GRASS_WHISTLE, Score_Down10 + if_move MOVE_GROWL, Score_Minus10 + if_move MOVE_ROAR, Score_Minus10 + if_move MOVE_SING, Score_Minus10 + if_move MOVE_SUPERSONIC, Score_Minus10 + if_move MOVE_SCREECH, Score_Minus10 + if_move MOVE_SNORE, Score_Minus10 + if_move MOVE_UPROAR, Score_Minus10 + if_move MOVE_METAL_SOUND, Score_Minus10 + if_move MOVE_GRASS_WHISTLE, Score_Minus10 AI_CheckBadMove_CheckEffect: @ 81DA14F if_effect EFFECT_SLEEP, AI_CBM_Sleep @@ -173,7 +173,7 @@ AI_CheckBadMove_CheckEffect: @ 81DA14F if_effect EFFECT_MIRROR_COAT, AI_CBM_HighRiskForDamage if_effect EFFECT_SKULL_BASH, AI_CBM_HighRiskForDamage if_effect EFFECT_FUTURE_SIGHT, AI_CBM_FutureSight - if_effect EFFECT_TELEPORT, Score_Down10 + if_effect EFFECT_TELEPORT, Score_Minus10 if_effect EFFECT_DEFENSE_CURL, AI_CBM_DefenseUp if_effect EFFECT_FAKE_OUT, AI_CBM_FakeOut if_effect EFFECT_STOCKPILE, AI_CBM_Stockpile @@ -206,100 +206,100 @@ AI_CheckBadMove_CheckEffect: @ 81DA14F AI_CBM_Sleep: @ 81DA3DE get_ability TARGET - if_equal ABILITY_INSOMNIA, Score_Down10 - if_equal ABILITY_VITAL_SPIRIT, Score_Down10 - if_status TARGET, SLP | PSN | BRN | FRZ | PAR | TOX, Score_Down10 + if_equal ABILITY_INSOMNIA, Score_Minus10 + if_equal ABILITY_VITAL_SPIRIT, Score_Minus10 + if_status TARGET, SLP | PSN | BRN | FRZ | PAR | TOX, Score_Minus10 end AI_CBM_Explosion: @ 81DA3F7 - if_damage_bonus 0, Score_Down10 + if_damage_bonus 0, Score_Minus10 get_ability TARGET - if_equal ABILITY_DAMP, Score_Down10 + if_equal ABILITY_DAMP, Score_Minus10 count_alive_pokemon USER if_not_equal 0, AI_CBM_Explosion_End count_alive_pokemon TARGET - if_not_equal 0, Score_Down10 - jump Score_Down1 + if_not_equal 0, Score_Minus10 + jump Score_Minus1 AI_CBM_Explosion_End: @ 81DA41A end AI_CBM_Nightmare: @ 81DA41B - if_status2 TARGET, S_NIGHTMARE, Score_Down10 - if_not_status TARGET, SLP, Score_Down8 + if_status2 TARGET, S_NIGHTMARE, Score_Minus10 + if_not_status TARGET, SLP, Score_Minus8 end AI_CBM_DreamEater: @ 81DA430 - if_not_status TARGET, SLP, Score_Down8 - if_damage_bonus 0, Score_Down10 + if_not_status TARGET, SLP, Score_Minus8 + if_damage_bonus 0, Score_Minus10 end AI_CBM_BellyDrum: @ 81DA441 - if_hp_less_than USER, 51, Score_Down10 + if_hp_less_than USER, 51, Score_Minus10 AI_CBM_AttackUp: @ 81DA448 - if_stat_level_equal USER, ATTACK, 12, Score_Down10 + if_stat_level_equal USER, ATTACK, 12, Score_Minus10 end AI_CBM_DefenseUp: @ 81DA451 - if_stat_level_equal USER, DEFENSE, 12, Score_Down10 + if_stat_level_equal USER, DEFENSE, 12, Score_Minus10 end AI_CBM_SpeedUp: @ 81DA45A - if_stat_level_equal USER, SPEED, 12, Score_Down10 + if_stat_level_equal USER, SPEED, 12, Score_Minus10 end AI_CBM_SpAtkUp: @ 81DA463 - if_stat_level_equal USER, SP_ATTACK, 12, Score_Down10 + if_stat_level_equal USER, SP_ATTACK, 12, Score_Minus10 end AI_CBM_SpDefUp: @ 81DA46C - if_stat_level_equal USER, SP_DEFENSE, 12, Score_Down10 + if_stat_level_equal USER, SP_DEFENSE, 12, Score_Minus10 end AI_CBM_AccUp: @ 81DA475 - if_stat_level_equal USER, ACCURACY, 12, Score_Down10 + if_stat_level_equal USER, ACCURACY, 12, Score_Minus10 end AI_CBM_EvasionUp: @ 81DA47E - if_stat_level_equal USER, EVASION, 12, Score_Down10 + if_stat_level_equal USER, EVASION, 12, Score_Minus10 end AI_CBM_AttackDown: @ 81DA487 - if_stat_level_equal TARGET, ATTACK, 0, Score_Down10 + if_stat_level_equal TARGET, ATTACK, 0, Score_Minus10 get_ability TARGET - if_equal ABILITY_HYPER_CUTTER, Score_Down10 + if_equal ABILITY_HYPER_CUTTER, Score_Minus10 jump CheckIfAbilityBlocksStatChange AI_CBM_DefenseDown: @ 81DA49C - if_stat_level_equal TARGET, DEFENSE, 0, Score_Down10 + if_stat_level_equal TARGET, DEFENSE, 0, Score_Minus10 jump CheckIfAbilityBlocksStatChange AI_CBM_SpeedDown: @ 81DA4A9 - if_stat_level_equal TARGET, SPEED, 0, Score_Down10 + if_stat_level_equal TARGET, SPEED, 0, Score_Minus10 jump CheckIfAbilityBlocksStatChange AI_CBM_SpAtkDown: @ 81DA4B6 - if_stat_level_equal TARGET, SP_ATTACK, 0, Score_Down10 + if_stat_level_equal TARGET, SP_ATTACK, 0, Score_Minus10 jump CheckIfAbilityBlocksStatChange AI_CBM_SpDefDown: @ 81DA4C3 - if_stat_level_equal TARGET, SP_DEFENSE, 0, Score_Down10 + if_stat_level_equal TARGET, SP_DEFENSE, 0, Score_Minus10 jump CheckIfAbilityBlocksStatChange AI_CBM_AccDown: @ 81DA4D0 - if_stat_level_equal TARGET, ACCURACY, 0, Score_Down10 + if_stat_level_equal TARGET, ACCURACY, 0, Score_Minus10 get_ability TARGET - if_equal ABILITY_KEEN_EYE, Score_Down10 + if_equal ABILITY_KEEN_EYE, Score_Minus10 jump CheckIfAbilityBlocksStatChange AI_CBM_EvasionDown: @ 81DA4E5 - if_stat_level_equal TARGET, EVASION, 0, Score_Down10 + if_stat_level_equal TARGET, EVASION, 0, Score_Minus10 CheckIfAbilityBlocksStatChange: @ 81DA4ED get_ability TARGET - if_equal ABILITY_CLEAR_BODY, Score_Down10 - if_equal ABILITY_WHITE_SMOKE, Score_Down10 + if_equal ABILITY_CLEAR_BODY, Score_Minus10 + if_equal ABILITY_WHITE_SMOKE, Score_Minus10 end AI_CBM_Haze: @ 81DA4FC @@ -317,299 +317,299 @@ AI_CBM_Haze: @ 81DA4FC if_stat_level_more_than TARGET, SP_DEFENSE, 6, AI_CBM_Haze_End if_stat_level_more_than TARGET, ACCURACY, 6, AI_CBM_Haze_End if_stat_level_more_than TARGET, EVASION, 6, AI_CBM_Haze_End - jump Score_Down10 + jump Score_Minus10 AI_CBM_Haze_End: @ 81DA571 end AI_CBM_Roar: @ 81DA572 count_alive_pokemon TARGET - if_equal 0, Score_Down10 + if_equal 0, Score_Minus10 get_ability TARGET - if_equal ABILITY_SUCTION_CUPS, Score_Down10 + if_equal ABILITY_SUCTION_CUPS, Score_Minus10 end AI_CBM_Toxic: @ 81DA583 get_type ENEMY_TYPE1 - if_equal TYPE_STEEL, Score_Down10 - if_equal TYPE_POISON, Score_Down10 + if_equal TYPE_STEEL, Score_Minus10 + if_equal TYPE_POISON, Score_Minus10 get_type PLAYER_TYPE1 - if_equal TYPE_STEEL, Score_Down10 - if_equal TYPE_POISON, Score_Down10 + if_equal TYPE_STEEL, Score_Minus10 + if_equal TYPE_POISON, Score_Minus10 get_ability TARGET - if_equal ABILITY_IMMUNITY, Score_Down10 - if_status TARGET, SLP | PSN | BRN | FRZ | PAR | TOX, Score_Down10 + if_equal ABILITY_IMMUNITY, Score_Minus10 + if_status TARGET, SLP | PSN | BRN | FRZ | PAR | TOX, Score_Minus10 end AI_CBM_LightScreen: @ 81DA5B2 - if_status4 USER, S_LIGHT_SCREEN, Score_Down8 + if_status4 USER, S_LIGHT_SCREEN, Score_Minus8 end AI_CBM_OneHitKO: @ 81DA5BD - if_damage_bonus 0, Score_Down10 + if_damage_bonus 0, Score_Minus10 get_ability TARGET - if_equal ABILITY_STURDY, Score_Down10 - if_target_higher_level Score_Down10 + if_equal ABILITY_STURDY, Score_Minus10 + if_target_higher_level Score_Minus10 end AI_CBM_Magnitude: @ 81DA5D2 get_ability TARGET - if_equal ABILITY_LEVITATE, Score_Down10 + if_equal ABILITY_LEVITATE, Score_Minus10 AI_CBM_HighRiskForDamage: @ 81DA5DA - if_damage_bonus 0, Score_Down10 + if_damage_bonus 0, Score_Minus10 get_ability TARGET if_not_equal ABILITY_WONDER_GUARD, AI_CBM_HighRiskForDamage_End if_damage_bonus 80, AI_CBM_HighRiskForDamage_End - jump Score_Down10 + jump Score_Minus10 AI_CBM_HighRiskForDamage_End: @ 81DA5F3 end AI_CBM_Mist: @ 81DA5F4 - if_status4 USER, S_MIST, Score_Down8 + if_status4 USER, S_MIST, Score_Minus8 end AI_CBM_FocusEnergy: @ 81DA5FF - if_status2 USER, S_FOCUS_ENERGY, Score_Down10 + if_status2 USER, S_FOCUS_ENERGY, Score_Minus10 end AI_CBM_Confuse: @ 81DA60A - if_status2 TARGET, S_CONFUSED, Score_Down5 + if_status2 TARGET, S_CONFUSED, Score_Minus5 get_ability TARGET - if_equal ABILITY_OWN_TEMPO, Score_Down10 + if_equal ABILITY_OWN_TEMPO, Score_Minus10 end AI_CBM_Reflect: @ 81DA61D - if_status4 USER, S_REFLECT, Score_Down8 + if_status4 USER, S_REFLECT, Score_Minus8 end AI_CBM_Paralyze: @ 81DA628 - if_damage_bonus 0, Score_Down10 + if_damage_bonus 0, Score_Minus10 get_ability TARGET - if_equal ABILITY_LIMBER, Score_Down10 - if_status TARGET, SLP | PSN | BRN | FRZ | PAR | TOX, Score_Down10 + if_equal ABILITY_LIMBER, Score_Minus10 + if_status TARGET, SLP | PSN | BRN | FRZ | PAR | TOX, Score_Minus10 end AI_CBM_Substitute: @ 81DA641 - if_status2 USER, S_SUBSTITUTE, Score_Down8 - if_hp_less_than USER, 26, Score_Down10 + if_status2 USER, S_SUBSTITUTE, Score_Minus8 + if_hp_less_than USER, 26, Score_Minus10 end AI_CBM_LeechSeed: @ 81DA653 - if_status3 TARGET, S_LEECH_SEED, Score_Down10 + if_status3 TARGET, S_LEECH_SEED, Score_Minus10 get_type ENEMY_TYPE1 - if_equal TYPE_GRASS, Score_Down10 + if_equal TYPE_GRASS, Score_Minus10 get_type PLAYER_TYPE1 - if_equal TYPE_GRASS, Score_Down10 + if_equal TYPE_GRASS, Score_Minus10 end AI_CBM_Disable: @ 81DA66E - if_last_move_did_damage TARGET, 0, Score_Down8 + if_last_move_did_damage TARGET, 0, Score_Minus8 end AI_CBM_Encore: @ 81DA676 - if_last_move_did_damage TARGET, 1, Score_Down8 + if_last_move_did_damage TARGET, 1, Score_Minus8 end AI_CBM_DamageDuringSleep: @ 81DA67E - if_not_status USER, SLP, Score_Down8 + if_not_status USER, SLP, Score_Minus8 end AI_CBM_CantEscape: @ 81DA689 - if_status2 TARGET, S_MEAN_LOOK, Score_Down10 + if_status2 TARGET, S_MEAN_LOOK, Score_Minus10 end AI_CBM_Curse: @ 81DA694 - if_stat_level_equal USER, ATTACK, 12, Score_Down10 - if_stat_level_equal USER, DEFENSE, 12, Score_Down8 + if_stat_level_equal USER, ATTACK, 12, Score_Minus10 + if_stat_level_equal USER, DEFENSE, 12, Score_Minus8 end AI_CBM_Spikes: @ 81DA6A5 - if_status4 TARGET, S_SPIKES, Score_Down10 + if_status4 TARGET, S_SPIKES, Score_Minus10 end AI_CBM_Foresight: @ 81DA6B0 - if_status2 TARGET, S_FORESIGHT, Score_Down10 + if_status2 TARGET, S_FORESIGHT, Score_Minus10 end AI_CBM_PerishSong: @ 81DA6BB - if_status3 TARGET, S_PERISH_SONG, Score_Down10 + if_status3 TARGET, S_PERISH_SONG, Score_Minus10 end AI_CBM_Sandstorm: @ 81DA6C6 get_weather - if_equal BATTLE_WEATHER_SANDSTORM, Score_Down8 + if_equal BATTLE_WEATHER_SANDSTORM, Score_Minus8 end AI_CBM_Attract: @ 81DA6CE - if_status2 TARGET, S_INFATUATED, Score_Down10 + if_status2 TARGET, S_INFATUATED, Score_Minus10 get_ability TARGET - if_equal ABILITY_OBLIVIOUS, Score_Down10 + if_equal ABILITY_OBLIVIOUS, Score_Minus10 get_gender USER if_equal 0, AI_CBM_Attract_CheckIfTargetIsFemale if_equal 254, AI_CBM_Attract_CheckIfTargetIsMale - jump Score_Down10 + jump Score_Minus10 AI_CBM_Attract_CheckIfTargetIsFemale: @ 81DA6F3 get_gender TARGET if_equal 254, AI_CBM_Attract_End - jump Score_Down10 + jump Score_Minus10 AI_CBM_Attract_CheckIfTargetIsMale: @ 81DA700 get_gender TARGET if_equal 0, AI_CBM_Attract_End - jump Score_Down10 + jump Score_Minus10 AI_CBM_Attract_End: @ 81DA70D end AI_CBM_Safeguard: @ 81DA70E - if_status4 USER, S_SAFEGUARD, Score_Down8 + if_status4 USER, S_SAFEGUARD, Score_Minus8 end AI_CBM_Memento: @ 81DA719 - if_stat_level_equal TARGET, ATTACK, 0, Score_Down10 - if_stat_level_equal TARGET, SP_ATTACK, 0, Score_Down8 + if_stat_level_equal TARGET, ATTACK, 0, Score_Minus10 + if_stat_level_equal TARGET, SP_ATTACK, 0, Score_Minus8 AI_CBM_BatonPass: @ 81DA729 count_alive_pokemon USER - if_equal 0, Score_Down10 + if_equal 0, Score_Minus10 end AI_CBM_RainDance: @ 81DA732 get_weather - if_equal BATTLE_WEATHER_RAIN, Score_Down8 + if_equal BATTLE_WEATHER_RAIN, Score_Minus8 end AI_CBM_SunnyDay: @ 81DA73A get_weather - if_equal BATTLE_WEATHER_SUN, Score_Down8 + if_equal BATTLE_WEATHER_SUN, Score_Minus8 end AI_CBM_FutureSight: @ 81DA742 - if_status4 TARGET, S_FUTURE_SIGHT, Score_Down10 + if_status4 TARGET, S_FUTURE_SIGHT, Score_Minus10 end AI_CBM_FakeOut: @ 81DA74D is_first_turn USER - if_equal 0, Score_Down10 + if_equal 0, Score_Minus10 end AI_CBM_Stockpile: @ 81DA756 get_stockpile_count USER - if_equal 3, Score_Down10 + if_equal 3, Score_Minus10 end AI_CBM_SpitUpAndSwallow: @ 81DA75F - if_damage_bonus 0, Score_Down10 + if_damage_bonus 0, Score_Minus10 get_stockpile_count USER - if_equal 0, Score_Down10 + if_equal 0, Score_Minus10 end AI_CBM_Hail: @ 81DA76E get_weather - if_equal BATTLE_WEATHER_HAIL, Score_Down8 + if_equal BATTLE_WEATHER_HAIL, Score_Minus8 end AI_CBM_Torment: @ 81DA776 - if_status2 TARGET, S_TORMENT, Score_Down10 + if_status2 TARGET, S_TORMENT, Score_Minus10 end AI_CBM_WillOWisp: @ 81DA781 get_ability TARGET - if_equal ABILITY_WATER_VEIL, Score_Down10 - if_status TARGET, SLP | PSN | BRN | FRZ | PAR | TOX, Score_Down10 - if_damage_bonus 0, Score_Down10 - if_damage_bonus 20, Score_Down10 - if_damage_bonus 10, Score_Down10 + if_equal ABILITY_WATER_VEIL, Score_Minus10 + if_status TARGET, SLP | PSN | BRN | FRZ | PAR | TOX, Score_Minus10 + if_damage_bonus 0, Score_Minus10 + if_damage_bonus 20, Score_Minus10 + if_damage_bonus 10, Score_Minus10 end AI_CBM_HelpingHand: @ 81DA7A6 is_double_battle - if_equal 0, Score_Down10 + if_equal 0, Score_Minus10 end AI_CBM_TrickAndKnockOff: @ 81DA7AE get_ability TARGET - if_equal ABILITY_STICKY_HOLD, Score_Down10 + if_equal ABILITY_STICKY_HOLD, Score_Minus10 end AI_CBM_Ingrain: @ 81DA7B7 - if_status3 USER, S_ROOTED, Score_Down10 + if_status3 USER, S_ROOTED, Score_Minus10 end AI_CBM_Recycle: @ 81DA7C2 get_item USER - if_equal ITEM_NONE, Score_Down10 + if_equal ITEM_NONE, Score_Minus10 end AI_CBM_Imprison: @ 81DA7CB - if_status3 USER, S_IMPRISONED, Score_Down10 + if_status3 USER, S_IMPRISONED, Score_Minus10 end AI_CBM_Refresh: @ 81DA7D6 - if_not_status USER, PSN | BRN | PAR | TOX, Score_Down10 + if_not_status USER, PSN | BRN | PAR | TOX, Score_Minus10 end AI_CBM_MudSport: @ 81DA7E1 - if_status3 USER, S_MUD_SPORT, Score_Down10 + if_status3 USER, S_MUD_SPORT, Score_Minus10 end AI_CBM_Tickle: @ 81DA7EC - if_stat_level_equal TARGET, ATTACK, 0, Score_Down10 - if_stat_level_equal TARGET, DEFENSE, 0, Score_Down8 + if_stat_level_equal TARGET, ATTACK, 0, Score_Minus10 + if_stat_level_equal TARGET, DEFENSE, 0, Score_Minus8 end AI_CBM_CosmicPower: @ 81DA7FD - if_stat_level_equal USER, DEFENSE, 12, Score_Down10 - if_stat_level_equal USER, SP_DEFENSE, 12, Score_Down8 + if_stat_level_equal USER, DEFENSE, 12, Score_Minus10 + if_stat_level_equal USER, SP_DEFENSE, 12, Score_Minus8 end AI_CBM_BulkUp: @ 81DA80E - if_stat_level_equal USER, ATTACK, 12, Score_Down10 - if_stat_level_equal USER, DEFENSE, 12, Score_Down8 + if_stat_level_equal USER, ATTACK, 12, Score_Minus10 + if_stat_level_equal USER, DEFENSE, 12, Score_Minus8 end AI_CBM_WaterSport: @ 81DA81F - if_status3 USER, S_WATER_SPORT, Score_Down10 + if_status3 USER, S_WATER_SPORT, Score_Minus10 end AI_CBM_CalmMind: @ 81DA82A - if_stat_level_equal USER, SP_ATTACK, 12, Score_Down10 - if_stat_level_equal USER, SP_DEFENSE, 12, Score_Down8 + if_stat_level_equal USER, SP_ATTACK, 12, Score_Minus10 + if_stat_level_equal USER, SP_DEFENSE, 12, Score_Minus8 end AI_CBM_DragonDance: @ 81DA83B - if_stat_level_equal USER, ATTACK, 12, Score_Down10 - if_stat_level_equal USER, SPEED, 12, Score_Down8 + if_stat_level_equal USER, ATTACK, 12, Score_Minus10 + if_stat_level_equal USER, SPEED, 12, Score_Minus8 end -Score_Down1: @ 81DA84C +Score_Minus1: @ 81DA84C score -1 end -Score_Down2: @ 81DA84F +Score_Minus2: @ 81DA84F score -2 end -Score_Down3: @ 81DA852 +Score_Minus3: @ 81DA852 score -3 end -Score_Down5: @ 81DA855 +Score_Minus5: @ 81DA855 score -5 end -Score_Down8: @ 81DA858 +Score_Minus8: @ 81DA858 score -8 end -Score_Down10: @ 81DA85B +Score_Minus10: @ 81DA85B score -10 end -Score_Down12: @ 81DA85E +Score_Minus12: @ 81DA85E score -12 end @@ -788,7 +788,7 @@ AI_CV_SelfKO_Encourage1: @ 81DAB94 if_hp_less_than USER, 80, AI_CV_SelfKO_Encourage2 if_would_go_first USER, AI_CV_SelfKO_Encourage2 if_random_less_than 50, AI_CV_SelfKO_End - jump Score_Down3 + jump Score_Minus3 AI_CV_SelfKO_Encourage2: @ 81DABAC if_hp_more_than USER, 50, AI_CV_SelfKO_Encourage4 @@ -1354,7 +1354,7 @@ AI_CV_Conversion: @ 81DB17A AI_CV_Conversion2: @ 81DB183 get_turn_count if_equal 0, AI_CV_Conversion_End - if_random_less_than 200, Score_Down2 + if_random_less_than 200, Score_Minus2 AI_CV_Conversion_End: @ 81DB190 end @@ -2695,7 +2695,7 @@ AI_CV_DragonDance_End: @ 81DBE96 AI_TryToFaint: @ 81DBE97 if_can_faint AI_TryToFaint_TryToEncourageQuickAttack is_most_powerful_move - if_equal 1, Score_Down1 + if_equal 1, Score_Minus1 end AI_TryToFaint_TryToEncourageQuickAttack: @ 81DBEA4 diff --git a/data/battle_anim_80CA710.s b/data/battle_anim_80CA710.s index c7c83e7bd..e1a1511c0 100644 --- a/data/battle_anim_80CA710.s +++ b/data/battle_anim_80CA710.s @@ -20,11 +20,11 @@ gSpriteAnimTable_83D6220:: @ 83D6220 .4byte gSpriteAnim_83D61FC .align 2 -gBattleAnimSpriteTemplate_83D6224:: @ 83D6224 +gSleepPowderParticleSpriteTemplate:: @ 83D6224 spr_template 10067, 10067, gOamData_837DF64, gSpriteAnimTable_83D6220, NULL, gDummySpriteAffineAnimTable, AnimMovePowderParticle .align 2 -gBattleAnimSpriteTemplate_83D623C:: @ 83D623C +gStunSporeParticleSpriteTemplate:: @ 83D623C spr_template 10068, 10068, gOamData_837DF64, gSpriteAnimTable_83D6220, NULL, gDummySpriteAffineAnimTable, AnimMovePowderParticle .align 2 @@ -243,7 +243,7 @@ gBattleAnimSpriteTemplate_83D649C:: @ 83D649C .align 2 gBattleAnimSpriteTemplate_83D64B4:: @ 83D64B4 - spr_template 10063, 10063, gOamData_837DF2C, gSpriteAnimTable_83D6494, NULL, gDummySpriteAffineAnimTable, sub_80CB144 + spr_template 10063, 10063, gOamData_837DF2C, gSpriteAnimTable_83D6494, NULL, gDummySpriteAffineAnimTable, AnimMoveTwisterParticle .align 2 gSpriteAnim_83D64CC:: @ 83D64CC @@ -259,7 +259,7 @@ gSpriteAnimTable_83D64E0:: @ 83D64E0 .align 2 gBattleAnimSpriteTemplate_83D64E4:: @ 83D64E4 - spr_template 10160, 10160, gOamData_837DF54, gSpriteAnimTable_83D64E0, NULL, gDummySpriteAffineAnimTable, sub_80CAFD0 + spr_template 10160, 10160, gOamData_837DF54, gSpriteAnimTable_83D64E0, NULL, gDummySpriteAffineAnimTable, AnimTranslateLinearSingleSineWave .align 2 gSpriteAffineAnim_83D64FC:: @ 83D64FC @@ -271,8 +271,8 @@ gSpriteAffineAnimTable_83D650C:: @ 83D650C .4byte gSpriteAffineAnim_83D64FC .align 2 -gBattleAnimSpriteTemplate_83D6510:: @ 83D6510 - spr_template 10174, 10174, gOamData_837DF94, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D650C, sub_80CAFD0 +gSwiftStarSpriteTemplate:: @ 83D6510 + spr_template 10174, 10174, gOamData_837DF94, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D650C, AnimTranslateLinearSingleSineWave .align 2 gSpriteAnim_83D6528:: @ 83D6528 @@ -1031,7 +1031,7 @@ gBattleAnimSpriteTemplate_83D6EF0:: @ 83D6EF0 .align 2 gBattleAnimSpriteTemplate_83D6F08:: @ 83D6F08 - spr_template 10017, 10017, gOamData_837DF24, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_807941C + spr_template 10017, 10017, gOamData_837DF24, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, TranslateAnimSpriteToTargetMonLocation .align 2 gSpriteAnim_83D6F20:: @ 83D6F20 @@ -1490,16 +1490,16 @@ gSpriteAffineAnimTable_83D7530:: @ 83D7530 .4byte gSpriteAffineAnim_83D74EC .align 2 -gBattleAnimSpriteTemplate_83D7534:: @ 83D7534 - spr_template 10163, 10163, gOamData_837E034, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D752C, sub_807941C +gSupersonicWaveSpriteTemplate:: @ 83D7534 + spr_template 10163, 10163, gOamData_837E034, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D752C, TranslateAnimSpriteToTargetMonLocation .align 2 -gBattleAnimSpriteTemplate_83D754C:: @ 83D754C - spr_template 10164, 10164, gOamData_837E034, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D752C, sub_807941C +gScreechWaveSpriteTemplate:: @ 83D754C + spr_template 10164, 10164, gOamData_837E034, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D752C, TranslateAnimSpriteToTargetMonLocation .align 2 gBattleAnimSpriteTemplate_83D7564:: @ 83D7564 - spr_template 10260, 10260, gOamData_837E03C, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D752C, sub_807941C + spr_template 10260, 10260, gOamData_837E03C, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D752C, TranslateAnimSpriteToTargetMonLocation .align 2 gBattleAnimSpriteTemplate_83D757C:: @ 83D757C @@ -2449,7 +2449,7 @@ gSpriteAnimTable_83D95E0:: @ 83D95E0 .align 2 gBattleAnimSpriteTemplate_83D95E4:: @ 83D95E4 - spr_template 10029, 10029, gOamData_837DF34, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_807941C + spr_template 10029, 10029, gOamData_837DF34, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, TranslateAnimSpriteToTargetMonLocation .align 2 gBattleAnimSpriteTemplate_83D95FC:: @ 83D95FC @@ -2631,7 +2631,7 @@ gBattleAnimSpriteTemplate_83D985C:: @ 83D985C .align 2 gBattleAnimSpriteTemplate_83D9874:: @ 83D9874 - spr_template 10171, 10171, gOamData_837DF2C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_807941C + spr_template 10171, 10171, gOamData_837DF2C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, TranslateAnimSpriteToTargetMonLocation .align 2 gSpriteAffineAnim_83D988C:: @ 83D988C @@ -3713,7 +3713,7 @@ gBattleAnimSpriteTemplate_83DA76C:: @ 83DA76C .align 2 gBattleAnimSpriteTemplate_83DA784:: @ 83DA784 - spr_template 10163, 10163, gOamData_837DF74, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_807941C + spr_template 10163, 10163, gOamData_837DF74, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, TranslateAnimSpriteToTargetMonLocation .align 2 gSpriteAnim_83DA79C:: @ 83DA79C @@ -4151,7 +4151,7 @@ gBattleAnimSpriteTemplate_83DAE00:: @ 83DAE00 .align 2 gBattleAnimSpriteTemplate_83DAE18:: @ 83DAE18 - spr_template 10058, 10058, gOamData_837DF34, gSpriteAnimTable_83DAD58, NULL, gSpriteAffineAnimTable_83DADE0, sub_80CB144 + spr_template 10058, 10058, gOamData_837DF34, gSpriteAnimTable_83DAD58, NULL, gSpriteAffineAnimTable_83DADE0, AnimMoveTwisterParticle .align 2 gBattleAnimSpriteTemplate_83DAE30:: @ 83DAE30 diff --git a/data/battle_anim_scripts.s b/data/battle_anim_scripts.s index ae28bc16a..48af05ca4 100644 --- a/data/battle_anim_scripts.s +++ b/data/battle_anim_scripts.s @@ -479,48 +479,48 @@ Move_POISON_POWDER: @ 81C7818 Move_STUN_SPORE: @ 81C7949 loadspritegfx 10068 loopsewithpan SE_W077, 63, 10, 6 - createsprite gBattleAnimSpriteTemplate_83D623C, 130, -30, -22, 117, 80, 5, 1 - createsprite gBattleAnimSpriteTemplate_83D623C, 130, 10, -22, 117, 80, -5, 1 - createsprite gBattleAnimSpriteTemplate_83D623C, 130, -25, -22, 117, 112, 5, 3 + createsprite gStunSporeParticleSpriteTemplate, 130, -30, -22, 117, 80, 5, 1 + createsprite gStunSporeParticleSpriteTemplate, 130, 10, -22, 117, 80, -5, 1 + createsprite gStunSporeParticleSpriteTemplate, 130, -25, -22, 117, 112, 5, 3 delay 15 - createsprite gBattleAnimSpriteTemplate_83D623C, 130, -5, -22, 117, 80, -5, 1 - createsprite gBattleAnimSpriteTemplate_83D623C, 130, 5, -22, 117, 96, 5, 1 - createsprite gBattleAnimSpriteTemplate_83D623C, 130, 0, -22, 117, 69, -5, 1 - createsprite gBattleAnimSpriteTemplate_83D623C, 130, -15, -22, 117, 112, 5, 2 + createsprite gStunSporeParticleSpriteTemplate, 130, -5, -22, 117, 80, -5, 1 + createsprite gStunSporeParticleSpriteTemplate, 130, 5, -22, 117, 96, 5, 1 + createsprite gStunSporeParticleSpriteTemplate, 130, 0, -22, 117, 69, -5, 1 + createsprite gStunSporeParticleSpriteTemplate, 130, -15, -22, 117, 112, 5, 2 delay 30 - createsprite gBattleAnimSpriteTemplate_83D623C, 130, -15, -22, 117, 112, 5, 2 - createsprite gBattleAnimSpriteTemplate_83D623C, 130, 15, -22, 117, 80, -5, 1 - createsprite gBattleAnimSpriteTemplate_83D623C, 130, -10, -22, 117, 96, 7, 2 - createsprite gBattleAnimSpriteTemplate_83D623C, 130, -5, -22, 117, 90, -8, 0 + createsprite gStunSporeParticleSpriteTemplate, 130, -15, -22, 117, 112, 5, 2 + createsprite gStunSporeParticleSpriteTemplate, 130, 15, -22, 117, 80, -5, 1 + createsprite gStunSporeParticleSpriteTemplate, 130, -10, -22, 117, 96, 7, 2 + createsprite gStunSporeParticleSpriteTemplate, 130, -5, -22, 117, 90, -8, 0 delay 20 - createsprite gBattleAnimSpriteTemplate_83D623C, 130, -10, -22, 117, 80, -5, 1 - createsprite gBattleAnimSpriteTemplate_83D623C, 130, 0, -22, 117, 89, 5, 2 - createsprite gBattleAnimSpriteTemplate_83D623C, 130, 20, -22, 117, 112, -8, 2 - createsprite gBattleAnimSpriteTemplate_83D623C, 130, 5, -22, 117, 80, 5, 1 + createsprite gStunSporeParticleSpriteTemplate, 130, -10, -22, 117, 80, -5, 1 + createsprite gStunSporeParticleSpriteTemplate, 130, 0, -22, 117, 89, 5, 2 + createsprite gStunSporeParticleSpriteTemplate, 130, 20, -22, 117, 112, -8, 2 + createsprite gStunSporeParticleSpriteTemplate, 130, 5, -22, 117, 80, 5, 1 waitforvisualfinish end Move_SLEEP_POWDER: @ 81C7A77 loadspritegfx 10067 loopsewithpan SE_W077, 63, 10, 6 - createsprite gBattleAnimSpriteTemplate_83D6224, 130, -30, -22, 117, 80, 5, 1 - createsprite gBattleAnimSpriteTemplate_83D6224, 130, 10, -22, 117, 80, -5, 1 - createsprite gBattleAnimSpriteTemplate_83D6224, 130, -25, -22, 117, 112, 5, 3 + createsprite gSleepPowderParticleSpriteTemplate, 130, -30, -22, 117, 80, 5, 1 + createsprite gSleepPowderParticleSpriteTemplate, 130, 10, -22, 117, 80, -5, 1 + createsprite gSleepPowderParticleSpriteTemplate, 130, -25, -22, 117, 112, 5, 3 delay 15 - createsprite gBattleAnimSpriteTemplate_83D6224, 130, -5, -22, 117, 80, -5, 1 - createsprite gBattleAnimSpriteTemplate_83D6224, 130, 5, -22, 117, 96, 5, 1 - createsprite gBattleAnimSpriteTemplate_83D6224, 130, 0, -22, 117, 69, -5, 1 - createsprite gBattleAnimSpriteTemplate_83D6224, 130, -15, -22, 117, 112, 5, 2 + createsprite gSleepPowderParticleSpriteTemplate, 130, -5, -22, 117, 80, -5, 1 + createsprite gSleepPowderParticleSpriteTemplate, 130, 5, -22, 117, 96, 5, 1 + createsprite gSleepPowderParticleSpriteTemplate, 130, 0, -22, 117, 69, -5, 1 + createsprite gSleepPowderParticleSpriteTemplate, 130, -15, -22, 117, 112, 5, 2 delay 30 - createsprite gBattleAnimSpriteTemplate_83D6224, 130, -15, -22, 117, 112, 5, 2 - createsprite gBattleAnimSpriteTemplate_83D6224, 130, 15, -22, 117, 80, -5, 1 - createsprite gBattleAnimSpriteTemplate_83D6224, 130, -10, -22, 117, 96, 7, 2 - createsprite gBattleAnimSpriteTemplate_83D6224, 130, -5, -22, 117, 90, -8, 0 + createsprite gSleepPowderParticleSpriteTemplate, 130, -15, -22, 117, 112, 5, 2 + createsprite gSleepPowderParticleSpriteTemplate, 130, 15, -22, 117, 80, -5, 1 + createsprite gSleepPowderParticleSpriteTemplate, 130, -10, -22, 117, 96, 7, 2 + createsprite gSleepPowderParticleSpriteTemplate, 130, -5, -22, 117, 90, -8, 0 delay 20 - createsprite gBattleAnimSpriteTemplate_83D6224, 130, -10, -22, 117, 80, -5, 1 - createsprite gBattleAnimSpriteTemplate_83D6224, 130, 0, -22, 117, 89, 5, 2 - createsprite gBattleAnimSpriteTemplate_83D6224, 130, 20, -22, 117, 112, -8, 2 - createsprite gBattleAnimSpriteTemplate_83D6224, 130, 5, -22, 117, 80, 5, 1 + createsprite gSleepPowderParticleSpriteTemplate, 130, -10, -22, 117, 80, -5, 1 + createsprite gSleepPowderParticleSpriteTemplate, 130, 0, -22, 117, 89, 5, 2 + createsprite gSleepPowderParticleSpriteTemplate, 130, 20, -22, 117, 112, -8, 2 + createsprite gSleepPowderParticleSpriteTemplate, 130, 5, -22, 117, 80, 5, 1 waitforvisualfinish end @@ -530,21 +530,21 @@ Move_SWIFT: @ 81C7BA5 monbg ANIM_BANK_DEF_PARTNER setalpha 12, 8 playsewithpan SE_W129, 192 - createsprite gBattleAnimSpriteTemplate_83D6510, 131, 20, -10, 20, 0, 22, 20, 1 + createsprite gSwiftStarSpriteTemplate, 131, 20, -10, 20, 0, 22, 20, 1 delay 5 playsewithpan SE_W129, 192 - createsprite gBattleAnimSpriteTemplate_83D6510, 131, 20, -10, 20, 5, 22, -18, 1 + createsprite gSwiftStarSpriteTemplate, 131, 20, -10, 20, 5, 22, -18, 1 delay 5 playsewithpan SE_W129, 192 - createsprite gBattleAnimSpriteTemplate_83D6510, 131, 20, -10, 20, -10, 22, 15, 1 - createvisualtask sub_80A7FA0, 2, 1, 2, 0, 18, 1 - createvisualtask sub_80A7FA0, 2, 3, 2, 0, 18, 1 + createsprite gSwiftStarSpriteTemplate, 131, 20, -10, 20, -10, 22, 15, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_TARGET, 2, 0, 18, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_DEF_PARTNER, 2, 0, 18, 1 delay 5 playsewithpan SE_W129, 192 - createsprite gBattleAnimSpriteTemplate_83D6510, 131, 20, -10, 20, 0, 22, -20, 1 + createsprite gSwiftStarSpriteTemplate, 131, 20, -10, 20, 0, 22, -20, 1 delay 5 playsewithpan SE_W129, 192 - createsprite gBattleAnimSpriteTemplate_83D6510, 131, 20, -10, 20, 0, 22, 12, 1 + createsprite gSwiftStarSpriteTemplate, 131, 20, -10, 20, 0, 22, 12, 1 delay 5 waitforvisualfinish clearmonbg ANIM_BANK_DEF_PARTNER @@ -556,11 +556,11 @@ Move_STRENGTH: @ 81C7C5E monbg ANIM_BANK_DEF_PARTNER setalpha 12, 8 playsewithpan SE_W036, 192 - createvisualtask sub_80A8314, 5, 0, 2, 0, 96, 30 + createvisualtask AnimTask_ShakeAndSinkMon, 5, ANIM_BANK_ATTACKER, 2, 0, 96, 30 waitforvisualfinish delay 10 - createsprite gBattleAnimSpriteTemplate_83C1FE0, 2, 0, 0, 4 - createvisualtask sub_80A8500, 2, 1, 18, 6, 2, 4 + createsprite gSlideMonToOriginalPosSpriteTemplate, 2, 0, 0, 4 + createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_BANK_TARGET, 18, 6, 2, 4 delay 4 playsewithpan SE_W025B, 63 createsprite gBasicHitSplatSpriteTemplate, 3, 16, 12, 1, 1 @@ -571,7 +571,7 @@ Move_STRENGTH: @ 81C7C5E playsewithpan SE_W025B, 63 createsprite gBasicHitSplatSpriteTemplate, 3, 3, 4, 1, 1 waitforvisualfinish - createvisualtask sub_80A7FA0, 2, 1, 2, 0, 8, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_TARGET, 2, 0, 8, 1 waitforvisualfinish clearmonbg ANIM_BANK_DEF_PARTNER blendoff @@ -581,7 +581,7 @@ Move_TACKLE: @ 81C7CF2 loadspritegfx 10135 monbg ANIM_BANK_TARGET setalpha 12, 8 - createsprite gBattleAnimSpriteTemplate_83C1FB0, 2, 4, 4 + createsprite gHorizontalLungeSpriteTemplate, 2, 4, 4 delay 6 createsprite gBasicHitSplatSpriteTemplate, 2, 0, 0, 1, 2 createvisualtask AnimTask_ShakeMon, 2, ANIM_BANK_TARGET, 3, 0, 6, 1 @@ -596,22 +596,22 @@ Move_BODY_SLAM: @ 81C7D30 monbg ANIM_BANK_DEF_PARTNER setalpha 12, 8 playsewithpan SE_W036, 192 - createsprite gBattleAnimSpriteTemplate_83C1FC8, 2, 6, 1, 0 + createsprite gVerticalDipSpriteTemplate, 2, 6, 1, ANIM_BANK_ATTACKER waitforvisualfinish delay 11 - createsprite gBattleAnimSpriteTemplate_83C1FF8, 2, 0, 26, 0, 0, 5 + createsprite gSlideMonToOffsetSpriteTemplate, 2, 0, 26, 0, 0, 5 delay 6 createsprite gBasicHitSplatSpriteTemplate, 4, -10, 0, 1, 0 loopsewithpan SE_W025B, 63, 10, 2 delay 1 - createsprite gBattleAnimSpriteTemplate_83C1FF8, 2, 1, -28, 0, 0, 3 + createsprite gSlideMonToOffsetSpriteTemplate, 2, 1, -28, 0, 0, 3 waitforvisualfinish - createvisualtask sub_80A8154, 2, 1, 4, 0, 12, 1 + createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_BANK_TARGET, 4, 0, 12, 1 waitforvisualfinish delay 10 - createsprite gBattleAnimSpriteTemplate_83C1FE0, 2, 0, 0, 6 + createsprite gSlideMonToOriginalPosSpriteTemplate, 2, 0, 0, 6 delay 5 - createsprite gBattleAnimSpriteTemplate_83C1FE0, 2, 1, 0, 6 + createsprite gSlideMonToOriginalPosSpriteTemplate, 2, 1, 0, 6 waitforvisualfinish clearmonbg ANIM_BANK_DEF_PARTNER blendoff @@ -620,44 +620,44 @@ Move_BODY_SLAM: @ 81C7D30 Move_SUPERSONIC: @ 81C7DBD loadspritegfx 10163 monbg ANIM_BANK_ATK_PARTNER - monbgprio_2A 0 + monbgprio_2A ANIM_BANK_ATTACKER setalpha 12, 8 - createvisualtask sub_80A7FA0, 2, 0, 2, 0, 8, 1 - call _81C7DFB - call _81C7DFB - call _81C7DFB - call _81C7DFB - call _81C7DFB - call _81C7DFB + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_ATTACKER, 2, 0, 8, 1 + call Move_SUPERSONIC_CreateWaveSprite + call Move_SUPERSONIC_CreateWaveSprite + call Move_SUPERSONIC_CreateWaveSprite + call Move_SUPERSONIC_CreateWaveSprite + call Move_SUPERSONIC_CreateWaveSprite + call Move_SUPERSONIC_CreateWaveSprite waitforvisualfinish clearmonbg ANIM_BANK_ATK_PARTNER blendoff end -_81C7DFB: +Move_SUPERSONIC_CreateWaveSprite: playsewithpan SE_W048, 192 - createsprite gBattleAnimSpriteTemplate_83D7534, 130, 16, 0, 0, 0, 30, 0 + createsprite gSupersonicWaveSpriteTemplate, 130, 16, 0, 0, 0, 30, 0 delay 2 return Move_SCREECH: @ 81C7E15 loadspritegfx 10164 - createvisualtask sub_80A7FA0, 2, 0, 3, 0, 2, 1 - call _81C7E48 - call _81C7E48 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_ATTACKER, 3, 0, 2, 1 + call Move_SCREECH_CreateWaveSprite + call Move_SCREECH_CreateWaveSprite delay 16 - createvisualtask sub_80A8B88, 5, 0, 6, 2048, 2, 1 + createvisualtask AnimTask_SwayMon, 5, 0, 6, 2048, 2, 1 waitforvisualfinish end -_81C7E48: +Move_SCREECH_CreateWaveSprite: playsewithpan SE_W103, 192 - createsprite gBattleAnimSpriteTemplate_83D754C, 130, 16, 0, 0, 0, 30, 0 + createsprite gScreechWaveSpriteTemplate, 130, 16, 0, 0, 0, 30, 0 delay 2 return Move_FLAME_WHEEL: @ 81C7E62 loadspritegfx 10029 monbg ANIM_BANK_DEF_PARTNER - monbgprio_2A 1 + monbgprio_2A ANIM_BANK_TARGET createsprite gBattleAnimSpriteTemplate_83D9694, 3, 0, 0, 56, 0 playsewithpan SE_W172, 192 delay 2 @@ -679,14 +679,14 @@ Move_FLAME_WHEEL: @ 81C7E62 createsprite gBattleAnimSpriteTemplate_83D9694, 3, 0, 0, 56, 24 playsewithpan SE_W172, 192 waitforvisualfinish - createsprite gBattleAnimSpriteTemplate_83C1FF8, 2, 0, 24, 0, 0, 6 + createsprite gSlideMonToOffsetSpriteTemplate, 2, 0, 24, 0, 0, 6 delay 4 createvisualtask AnimTask_ShakeMon, 2, ANIM_BANK_TARGET, 5, 0, 8, 1 createvisualtask sub_8079790, 3, 1, 31, 12, 1, 1 playsewithpan SE_W172B, 63 call _81D11A2 delay 7 - createsprite gBattleAnimSpriteTemplate_83C1FE0, 2, 0, 0, 9 + createsprite gSlideMonToOriginalPosSpriteTemplate, 2, 0, 0, 9 waitforvisualfinish clearmonbg ANIM_BANK_DEF_PARTNER end @@ -709,17 +709,17 @@ Move_PIN_MISSILE: @ 81C7F5C delay 4 playsewithpan SE_W030, 63 createsprite gBasicHitSplatSpriteTemplate, 3, -8, -8, 1, 2 - createvisualtask sub_80A7FA0, 2, 1, 3, 0, 2, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_TARGET, 3, 0, 2, 1 delay 9 createsprite gBattleAnimSpriteTemplate_83DABA4, 2, 20, -8, 0, 0, 20, -32 delay 4 playsewithpan SE_W030, 63 createsprite gBasicHitSplatSpriteTemplate, 3, 8, 8, 1, 2 - createvisualtask sub_80A7FA0, 2, 1, 3, 0, 2, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_TARGET, 3, 0, 2, 1 delay 14 playsewithpan SE_W030, 63 createsprite gBasicHitSplatSpriteTemplate, 3, 0, 0, 1, 2 - createvisualtask sub_80A7FA0, 2, 1, 3, 0, 2, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_TARGET, 3, 0, 2, 1 waitforvisualfinish clearmonbg ANIM_BANK_TARGET blendoff @@ -738,17 +738,17 @@ Move_ICICLE_SPEAR: @ 81C8021 delay 4 playsewithpan SE_W030, 63 createsprite gBasicHitSplatSpriteTemplate, 3, -8, -8, 1, 2 - createvisualtask sub_80A7FA0, 2, 1, 3, 0, 2, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_TARGET, 3, 0, 2, 1 delay 9 createsprite gBattleAnimSpriteTemplate_83DABBC, 2, 20, -8, 0, 0, 20, -32 delay 4 playsewithpan SE_W030, 63 createsprite gBasicHitSplatSpriteTemplate, 3, 8, 8, 1, 2 - createvisualtask sub_80A7FA0, 2, 1, 3, 0, 2, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_TARGET, 3, 0, 2, 1 delay 14 playsewithpan SE_W030, 63 createsprite gBasicHitSplatSpriteTemplate, 3, 0, 0, 1, 2 - createvisualtask sub_80A7FA0, 2, 1, 3, 0, 2, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_TARGET, 3, 0, 2, 1 waitforvisualfinish clearmonbg ANIM_BANK_TARGET blendoff @@ -765,14 +765,14 @@ Move_TAKE_DOWN: @ 81C80E6 createsprite gBasicHitSplatSpriteTemplate, 4, -10, 0, 1, 0 playsewithpan SE_W025B, 63 delay 1 - createsprite gBattleAnimSpriteTemplate_83C1FF8, 2, 1, -16, 0, 0, 4 + createsprite gSlideMonToOffsetSpriteTemplate, 2, 1, -16, 0, 0, 4 waitforvisualfinish - createvisualtask sub_80A8154, 2, 1, 4, 0, 12, 1 + createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_BANK_TARGET, 4, 0, 12, 1 waitforvisualfinish delay 2 - createsprite gBattleAnimSpriteTemplate_83C1FE0, 2, 0, 0, 5 + createsprite gSlideMonToOriginalPosSpriteTemplate, 2, 0, 0, 5 delay 3 - createsprite gBattleAnimSpriteTemplate_83C1FE0, 2, 1, 0, 7 + createsprite gSlideMonToOriginalPosSpriteTemplate, 2, 1, 0, 7 waitforvisualfinish clearmonbg ANIM_BANK_DEF_PARTNER blendoff @@ -786,28 +786,28 @@ Move_DOUBLE_EDGE: @ 81C817A delay 10 playsewithpan SE_W207, 192 waitplaysewithpan SE_W207, 192, 8 - createvisualtask sub_80A8500, 2, 0, 18, 6, 2, 4 + createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_BANK_ATTACKER, 18, 6, 2, 4 waitforvisualfinish createsprite gBattleAnimSpriteTemplate_83DB3C4, 2, 1, 0, 16, 16, 32767 - createsprite gBattleAnimSpriteTemplate_83C1FF8, 2, 0, 20, 0, 0, 4 + createsprite gSlideMonToOffsetSpriteTemplate, 2, 0, 20, 0, 0, 4 delay 3 waitforvisualfinish playsewithpan SE_W025B, 63 createsprite gBasicHitSplatSpriteTemplate, 132, -10, 0, 1, 0 - createsprite gBattleAnimSpriteTemplate_83C1FF8, 2, 1, -32, 0, 0, 3 + createsprite gSlideMonToOffsetSpriteTemplate, 2, 1, -32, 0, 0, 3 waitforvisualfinish createvisualtask sub_80A8E04, 2, 8, -256, 0, 0 createvisualtask sub_80A8E04, 2, 8, -256, 1, 0 - createvisualtask sub_80A8154, 2, 0, 4, 0, 12, 1 - createvisualtask sub_80A8154, 2, 1, 4, 0, 12, 1 + createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_BANK_ATTACKER, 4, 0, 12, 1 + createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_BANK_TARGET, 4, 0, 12, 1 createsprite gBattleAnimSpriteTemplate_83DB3C4, 2, 1, 2, 16, 0, 32767 waitforvisualfinish createvisualtask sub_80A8E04, 2, 8, -256, 0, 1 createvisualtask sub_80A8E04, 2, 8, -256, 1, 1 waitforvisualfinish - createsprite gBattleAnimSpriteTemplate_83C1FE0, 2, 0, 0, 5 + createsprite gSlideMonToOriginalPosSpriteTemplate, 2, 0, 0, 5 delay 3 - createsprite gBattleAnimSpriteTemplate_83C1FE0, 2, 1, 0, 7 + createsprite gSlideMonToOriginalPosSpriteTemplate, 2, 1, 0, 7 waitforvisualfinish end @@ -822,7 +822,7 @@ Move_POISON_STING: @ 81C828D createsprite gBattleAnimSpriteTemplate_83DAB8C, 130, 20, 0, -8, 0, 20 waitforvisualfinish createsprite gBasicHitSplatSpriteTemplate, 3, 0, 0, 1, 2 - createvisualtask sub_80A7FA0, 2, 1, 2, 0, 5, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_TARGET, 2, 0, 5, 1 playsewithpan SE_W030, 63 waitforvisualfinish call Unknown_81D5F87 @@ -841,7 +841,7 @@ Move_TWINEEDLE: @ 81C82E2 createsprite gBattleAnimSpriteTemplate_83DAB8C, 130, 10, -4, 0, -4, 20 createsprite gBattleAnimSpriteTemplate_83DAB8C, 130, 20, 12, 10, 12, 20 delay 20 - createvisualtask sub_80A7FA0, 2, 1, 2, 0, 5, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_TARGET, 2, 0, 5, 1 createsprite gBattleAnimSpriteTemplate_83DB4C0, 3, 0, -4, 1, 3 loopsewithpan SE_W030, 63, 5, 2 delay 1 @@ -946,7 +946,7 @@ Move_MEGA_PUNCH: @ 81C854D delay 50 call _81C85E9 createsprite gBasicHitSplatSpriteTemplate, 2, 0, 0, 1, 0 - createvisualtask sub_80A7FA0, 2, 1, 4, 0, 22, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_TARGET, 4, 0, 22, 1 createvisualtask sub_80E2A38, 10, 4, 2, 0, 0, 32767 createsprite gBattleAnimSpriteTemplate_83DB3DC, 2, 31, 3, 1, 0, 8, 0, 0 playsewithpan SE_W233B, 63 @@ -990,7 +990,7 @@ Move_MEGA_KICK: @ 81C8627 playsewithpan SE_W025B, 63 call _81C85E9 createsprite gBasicHitSplatSpriteTemplate, 2, 0, 0, 1, 0 - createvisualtask sub_80A7FA0, 2, 1, 4, 0, 22, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_TARGET, 4, 0, 22, 1 createvisualtask sub_80E2A38, 10, 4, 2, 0, 0, 32767 createsprite gBattleAnimSpriteTemplate_83DB3DC, 2, 31, 3, 1, 0, 8, 0, 0 waitforvisualfinish @@ -1191,7 +1191,7 @@ Move_STOMP: @ 81C8B2A Move_TAIL_WHIP: @ 81C8B71 loopsewithpan SE_W039, 192, 24, 3 - createvisualtask sub_80A8500, 2, 0, 12, 4, 2, 3 + createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_BANK_ATTACKER, 12, 4, 2, 3 waitforvisualfinish end @@ -1258,7 +1258,7 @@ Move_REVERSAL: @ 81C8CA5 createsprite gBattleAnimSpriteTemplate_8402738, 2, 26, 210 waitforvisualfinish delay 20 - createsprite gBattleAnimSpriteTemplate_83C1FB0, 2, 6, 4 + createsprite gHorizontalLungeSpriteTemplate, 2, 6, 4 delay 8 playsewithpan SE_W233B, 63 createsprite gBattleAnimSpriteTemplate_83DB3DC, 2, 31, 3, 1, 32767, 8, 0, 0 @@ -1303,7 +1303,7 @@ Move_SPIKE_CANNON: @ 81C8DF1 createvisualtask sub_80A8920, 5, 0, -4, 0, 4, 6, 8, 4 waitforvisualfinish loopsewithpan SE_W013B, 192, 5, 3 - createsprite gBattleAnimSpriteTemplate_83C1FE0, 2, 0, 0, 5 + createsprite gSlideMonToOriginalPosSpriteTemplate, 2, 0, 0, 5 createsprite gBattleAnimSpriteTemplate_83DAB8C, 2, 10, -8, -8, -8, 20 createsprite gBattleAnimSpriteTemplate_83DAB8C, 2, 18, 0, 0, 0, 20 createsprite gBattleAnimSpriteTemplate_83DAB8C, 2, 26, 8, 8, 8, 20 @@ -1311,7 +1311,7 @@ Move_SPIKE_CANNON: @ 81C8DF1 createsprite gBattleAnimSpriteTemplate_83DB4C0, 3, -8, -8, 1, 2 createsprite gBattleAnimSpriteTemplate_83DB4C0, 3, 0, 0, 1, 2 createsprite gBattleAnimSpriteTemplate_83DB4C0, 3, 8, 8, 1, 2 - createvisualtask sub_80A7FA0, 2, 1, 3, 0, 7, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_TARGET, 3, 0, 7, 1 loopsewithpan SE_W030, 63, 5, 3 waitforvisualfinish clearmonbg ANIM_BANK_TARGET @@ -1323,7 +1323,7 @@ Move_SWORDS_DANCE: @ 81C8EA4 monbg ANIM_BANK_ATTACKER setalpha 12, 8 playsewithpan SE_W014, 192 - createvisualtask sub_80A8500, 2, 0, 16, 6, 1, 4 + createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_BANK_ATTACKER, 16, 6, 1, 4 createsprite gBattleAnimSpriteTemplate_83D748C, 2, 0, 0 delay 22 createvisualtask sub_80E21A8, 2, 10005, 2, 2, 32754, 16, 0, 0 @@ -1340,7 +1340,7 @@ Move_PSYCH_UP: @ 81C8EEA setalpha 12, 8 loopsewithpan SE_W060B, 192, 5, 10 createsprite gBattleAnimSpriteTemplate_83DA690, 2, 0, 0, 0, 0 - createvisualtask sub_80A8B88, 5, 0, 5, 2560, 8, 0 + createvisualtask AnimTask_SwayMon, 5, 0, 5, 2560, 8, 0 delay 127 delay 4 playsewithpan SE_W060, 192 @@ -1384,9 +1384,9 @@ Move_DIZZY_PUNCH: @ 81C8F5C blendoff end _81C9077: - createsprite gBattleAnimSpriteTemplate_83C1FB0, 2, 6, 4 + createsprite gHorizontalLungeSpriteTemplate, 2, 6, 4 delay 6 - createvisualtask sub_80A7FA0, 2, 1, 3, 0, 7, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_TARGET, 3, 0, 7, 1 return Move_FIRE_SPIN: @ 81C9096 @@ -1454,11 +1454,11 @@ _81C91FF: Move_SELF_DESTRUCT: @ 81C9219 loadspritegfx 10198 createvisualtask sub_80E2A38, 10, 2, 1, 0, 9, 31 - createvisualtask sub_80A7FA0, 5, 4, 6, 0, 38, 1 - createvisualtask sub_80A7FA0, 5, 5, 6, 0, 38, 1 - createvisualtask sub_80A7FA0, 5, 6, 6, 0, 38, 1 - createvisualtask sub_80A7FA0, 5, 7, 6, 0, 38, 1 - createvisualtask sub_80A7FA0, 5, 8, 6, 0, 38, 1 + createvisualtask AnimTask_ShakeMon2, 5, 4, 6, 0, 38, 1 + createvisualtask AnimTask_ShakeMon2, 5, 5, 6, 0, 38, 1 + createvisualtask AnimTask_ShakeMon2, 5, 6, 6, 0, 38, 1 + createvisualtask AnimTask_ShakeMon2, 5, 7, 6, 0, 38, 1 + createvisualtask AnimTask_ShakeMon2, 5, 8, 6, 0, 38, 1 call _81C929F call _81C929F waitforvisualfinish @@ -1488,19 +1488,19 @@ Move_SLAM: @ 81C9309 monbg ANIM_BANK_TARGET setalpha 12, 8 playsewithpan SE_W004, 192 - createsprite gBattleAnimSpriteTemplate_83C1FF8, 2, 0, 20, 3, 0, 4 + createsprite gSlideMonToOffsetSpriteTemplate, 2, 0, 20, 3, 0, 4 delay 1 createsprite gBattleAnimSpriteTemplate_83D69DC, 2, 0, 0 delay 3 playsewithpan SE_W025B, 63 createsprite gBasicHitSplatSpriteTemplate, 3, 0, 0, 1, 1 - createsprite gBattleAnimSpriteTemplate_83C1FF8, 2, 1, -12, 10, 0, 3 - createsprite gBattleAnimSpriteTemplate_83C1FE0, 2, 0, 0, 5 + createsprite gSlideMonToOffsetSpriteTemplate, 2, 1, -12, 10, 0, 3 + createsprite gSlideMonToOriginalPosSpriteTemplate, 2, 0, 0, 5 delay 3 - createvisualtask sub_80A8154, 2, 1, 0, 3, 6, 1 + createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_BANK_TARGET, 0, 3, 6, 1 waitforvisualfinish delay 5 - createsprite gBattleAnimSpriteTemplate_83C1FE0, 2, 1, 0, 6 + createsprite gSlideMonToOriginalPosSpriteTemplate, 2, 1, 0, 6 waitforvisualfinish clearmonbg ANIM_BANK_TARGET blendoff @@ -1509,12 +1509,12 @@ Move_SLAM: @ 81C9309 Move_VINE_WHIP: @ 81C9391 loadspritegfx 10287 playsewithpan SE_W026, 192 - createsprite gBattleAnimSpriteTemplate_83C1FB0, 2, 4, 6 + createsprite gHorizontalLungeSpriteTemplate, 2, 4, 6 delay 6 playsewithpan SE_W010, 63 createsprite gBattleAnimSpriteTemplate_83D69F4, 130, 0, 0 delay 6 - createvisualtask sub_80A7FA0, 2, 1, 2, 0, 6, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_TARGET, 2, 0, 6, 1 end Move_DRILL_PECK: @ 81C93C8 @@ -1528,11 +1528,11 @@ Move_DRILL_PECK: @ 81C93C8 delay 2 loopsewithpan SE_W030, 63, 4, 8 createvisualtask sub_80DB0E8, 5 - createvisualtask sub_80A7FA0, 2, 1, 4, 0, 18, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_TARGET, 4, 0, 18, 1 waitforvisualfinish createsprite gBattleAnimSpriteTemplate_83D6DE4, 2, 2 waitforvisualfinish - createsprite gBattleAnimSpriteTemplate_83C1FE0, 2, 0, 0, 6 + createsprite gSlideMonToOriginalPosSpriteTemplate, 2, 0, 0, 6 waitforvisualfinish end @@ -1569,7 +1569,7 @@ Move_WATERFALL: @ 81C9421 createsprite gBattleAnimSpriteTemplate_83D9348, 2, 12, 0, 25, 0 waitforvisualfinish delay 10 - createsprite gBattleAnimSpriteTemplate_83C1FB0, 2, 6, 5 + createsprite gHorizontalLungeSpriteTemplate, 2, 6, 5 delay 6 call _81C9502 waitforvisualfinish @@ -1578,7 +1578,7 @@ Move_WATERFALL: @ 81C9421 end _81C9502: playsewithpan SE_W127, 63 - createvisualtask sub_80A7FA0, 5, 1, 4, 0, 17, 1 + createvisualtask AnimTask_ShakeMon2, 5, 1, 4, 0, 17, 1 createsprite gBattleAnimSpriteTemplate_83DB4D8, 3, 0, 20, 1, 1 createsprite gBattleAnimSpriteTemplate_83D9360, 4, 0, 20 createsprite gBattleAnimSpriteTemplate_83D9360, 4, 0, 20 @@ -1619,11 +1619,11 @@ _81C9502: Move_EXPLOSION: @ 81C9675 loadspritegfx 10198 createsprite gBattleAnimSpriteTemplate_83DB3DC, 2, 1, 8, 9, 8474, 8, 0, 8 - createvisualtask sub_80A7FA0, 5, 4, 8, 0, 40, 1 - createvisualtask sub_80A7FA0, 5, 5, 8, 0, 40, 1 - createvisualtask sub_80A7FA0, 5, 6, 8, 0, 40, 1 - createvisualtask sub_80A7FA0, 5, 7, 8, 0, 40, 1 - createvisualtask sub_80A7FA0, 5, 8, 8, 0, 40, 1 + createvisualtask AnimTask_ShakeMon2, 5, 4, 8, 0, 40, 1 + createvisualtask AnimTask_ShakeMon2, 5, 5, 8, 0, 40, 1 + createvisualtask AnimTask_ShakeMon2, 5, 6, 8, 0, 40, 1 + createvisualtask AnimTask_ShakeMon2, 5, 7, 8, 0, 40, 1 + createvisualtask AnimTask_ShakeMon2, 5, 8, 8, 0, 40, 1 call _81C9712 call _81C9712 waitforvisualfinish @@ -1703,7 +1703,7 @@ _81C985F: end _81C9864: playsewithpan SE_W082, 192 - createvisualtask sub_80A7FA0, 5, 0, 1, 0, 15, 1 + createvisualtask AnimTask_ShakeMon2, 5, 0, 1, 0, 15, 1 createvisualtask sub_80E2A38, 10, 2, 3, 0, 9, 31 waitforvisualfinish delay 20 @@ -1714,9 +1714,9 @@ _81C9864: createsprite gBattleAnimSpriteTemplate_83D7798, 2, 0, 20, -28 waitforvisualfinish delay 10 - createvisualtask sub_80A8B88, 5, 0, 16, 6144, 8, 0 + createvisualtask AnimTask_SwayMon, 5, 0, 16, 6144, 8, 0 delay 5 - createvisualtask sub_80A7FA0, 5, 1, 4, 0, 30, 1 + createvisualtask AnimTask_ShakeMon2, 5, 1, 4, 0, 30, 1 createsprite gBasicHitSplatSpriteTemplate, 3, 0, 0, 1, 0 playsewithpan SE_W004, 63 delay 5 @@ -1739,7 +1739,7 @@ _81C9864: goto _81C985F _81C996A: playsewithpan SE_W082, 192 - createvisualtask sub_80A7FA0, 5, 0, 1, 0, 15, 1 + createvisualtask AnimTask_ShakeMon2, 5, 0, 1, 0, 15, 1 createvisualtask sub_80E2A38, 10, 2, 3, 0, 9, 31 waitforvisualfinish delay 20 @@ -1751,15 +1751,15 @@ _81C996A: delay 7 playsewithpan SE_W004, 63 createsprite gBasicHitSplatSpriteTemplate, 3, 0, 8, 1, 1 - createvisualtask sub_80A7FA0, 5, 1, 4, 0, 6, 1 + createvisualtask AnimTask_ShakeMon2, 5, 1, 4, 0, 6, 1 delay 14 playsewithpan SE_W004, 63 createsprite gBasicHitSplatSpriteTemplate, 3, 12, -6, 1, 1 - createvisualtask sub_80A7FA0, 5, 1, 4, 0, 6, 1 + createvisualtask AnimTask_ShakeMon2, 5, 1, 4, 0, 6, 1 delay 14 playsewithpan SE_W004, 63 createsprite gBasicHitSplatSpriteTemplate, 3, -12, -6, 1, 1 - createvisualtask sub_80A7FA0, 5, 1, 4, 0, 6, 1 + createvisualtask AnimTask_ShakeMon2, 5, 1, 4, 0, 6, 1 waitforvisualfinish createvisualtask sub_80E2A38, 10, 2, 3, 9, 0, 31 goto _81C985F @@ -1768,27 +1768,27 @@ _81C9A37: createsprite gBattleAnimSpriteTemplate_83D7798, 2, 0, 20, -28 waitforvisualfinish delay 5 - createsprite gBattleAnimSpriteTemplate_83C1FB0, 2, 4, 4 + createsprite gHorizontalLungeSpriteTemplate, 2, 4, 4 delay 6 playsewithpan SE_W004, 63 createsprite gBasicHitSplatSpriteTemplate, 2, 10, 4, 1, 1 - createvisualtask sub_80A7FA0, 2, 1, 3, 0, 6, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_TARGET, 3, 0, 6, 1 waitforvisualfinish - createsprite gBattleAnimSpriteTemplate_83C1FB0, 2, 4, 4 + createsprite gHorizontalLungeSpriteTemplate, 2, 4, 4 delay 6 playsewithpan SE_W004, 63 createsprite gBasicHitSplatSpriteTemplate, 2, -10, -4, 1, 2 - createvisualtask sub_80A7FA0, 2, 1, 3, 0, 6, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_TARGET, 3, 0, 6, 1 goto _81C985F _81C9AB3: createsprite gBattleAnimSpriteTemplate_8402630, 2, 20, -28 waitforvisualfinish delay 10 - createsprite gBattleAnimSpriteTemplate_83C1FB0, 2, 10, 2 + createsprite gHorizontalLungeSpriteTemplate, 2, 10, 2 delay 12 playsewithpan SE_W004, 63 createsprite gBasicHitSplatSpriteTemplate, 2, 0, 0, 1, 2 - createvisualtask sub_80A7FA0, 2, 1, 1, 0, 6, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_TARGET, 1, 0, 6, 1 goto _81C985F Move_SAFEGUARD: @ 81C9AF7 @@ -1843,7 +1843,7 @@ Move_VICE_GRIP: @ 81C9BE1 createsprite gBattleAnimSpriteTemplate_83D769C, 2, 1 delay 9 createsprite gBasicHitSplatSpriteTemplate, 1, 0, 0, 1, 2 - createvisualtask sub_80A7FA0, 5, 1, 2, 0, 5, 1 + createvisualtask AnimTask_ShakeMon2, 5, 1, 2, 0, 5, 1 waitforvisualfinish clearmonbg ANIM_BANK_DEF_PARTNER blendoff @@ -1861,9 +1861,9 @@ Move_GUILLOTINE: @ 81C9C29 createsprite gBattleAnimSpriteTemplate_83D76DC, 2, 1 createvisualtask sub_80E2A38, 10, 4, 2, 0, 16, 0 delay 9 - createvisualtask sub_80A7FA0, 5, 1, 2, 0, 23, 1 + createvisualtask AnimTask_ShakeMon2, 5, 1, 2, 0, 23, 1 delay 46 - createvisualtask sub_80A7FA0, 5, 1, 4, 0, 8, 1 + createvisualtask AnimTask_ShakeMon2, 5, 1, 4, 0, 8, 1 createsprite gBasicHitSplatSpriteTemplate, 3, 0, 0, 1, 0 createsprite gBattleAnimSpriteTemplate_83DB3DC, 2, 31, 3, 1, 0, 8, 0, 0 playsewithpan SE_W013, 63 @@ -1886,7 +1886,7 @@ Move_PAY_DAY: @ 81C9CB5 playsewithpan SE_W006, 63 createsprite gBasicHitSplatSpriteTemplate, 1, 0, 0, 1, 2 createsprite gBattleAnimSpriteTemplate_83D75FC, 2 - createvisualtask sub_80A7FA0, 2, 1, 1, 0, 6, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_TARGET, 1, 0, 6, 1 waitforvisualfinish clearmonbg ANIM_BANK_TARGET blendoff @@ -1896,7 +1896,7 @@ Move_OUTRAGE: @ 81C9D08 loadspritegfx 10029 loopsewithpan SE_W082, 192, 8, 3 createvisualtask sub_80E1F8C, 2, 7, 2, 5, 3, 8, 430 - createvisualtask sub_80A8500, 2, 0, 12, 6, 5, 4 + createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_BANK_ATTACKER, 12, 6, 5, 4 delay 0 createsprite gBattleAnimSpriteTemplate_83DAFCC, 130, 0, 0, 30, 1280, 0, 3 delay 0 @@ -1906,7 +1906,7 @@ Move_OUTRAGE: @ 81C9D08 delay 0 createsprite gBattleAnimSpriteTemplate_83DAFCC, 130, 0, 0, 30, 0, -1280, 3 delay 0 - createvisualtask sub_80A7FA0, 2, 1, 2, 0, 40, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_TARGET, 2, 0, 40, 1 createsprite gBattleAnimSpriteTemplate_83DAFCC, 130, 0, 0, 30, 1280, 768, 3 delay 0 createsprite gBattleAnimSpriteTemplate_83DAFCC, 130, 0, 0, 30, -1280, 768, 3 @@ -1972,7 +1972,7 @@ Move_SPARK: @ 81C9EA3 delay 4 waitforvisualfinish createvisualtask sub_80E1F8C, 2, 3, -31, 1, 0, 0, 23551 - createsprite gBattleAnimSpriteTemplate_83C1FB0, 2, 4, 4 + createsprite gHorizontalLungeSpriteTemplate, 2, 4, 4 delay 4 playsewithpan SE_W063, 63 createsprite gBasicHitSplatSpriteTemplate, 130, 0, 0, 1, 2 @@ -1986,7 +1986,7 @@ Move_SPARK: @ 81C9EA3 Move_ATTRACT: @ 81CA0BA loadspritegfx 10216 loopsewithpan SE_W204, 192, 12, 3 - createvisualtask sub_80A8B88, 5, 0, 12, 4096, 4, 0 + createvisualtask AnimTask_SwayMon, 5, 0, 12, 4096, 4, 0 delay 15 createsprite gBattleAnimSpriteTemplate_83D7AB0, 131, 20, -8 waitforvisualfinish @@ -2034,9 +2034,9 @@ Move_WHIRLWIND: @ 81CA1E9 createsprite gBattleAnimSpriteTemplate_83DA51C, 2, 0, 32, 1, 60, 0 delay 5 loopsewithpan SE_W104, 63, 10, 4 - createvisualtask sub_80A7FA0, 2, 1, 4, 0, 15, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_TARGET, 4, 0, 15, 1 delay 29 - createvisualtask sub_80A8500, 2, 1, 12, 6, 1, 5 + createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_BANK_TARGET, 12, 6, 1, 5 delay 7 playsewithpan SE_W081, 63 createvisualtask sub_80A8A80, 5, 1, 8 @@ -2168,11 +2168,11 @@ Move_THIEF: @ 81CA52C fadetobg 1 waitbgfadein setalpha 12, 8 - createsprite gBattleAnimSpriteTemplate_83C1FB0, 2, 6, 4 + createsprite gHorizontalLungeSpriteTemplate, 2, 6, 4 delay 6 playsewithpan SE_W233, 63 createsprite gBasicHitSplatSpriteTemplate, 2, 0, 0, 1, 2 - createvisualtask sub_80A7FA0, 2, 1, 1, 0, 8, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_TARGET, 1, 0, 8, 1 waitforvisualfinish delay 20 clearmonbg ANIM_BANK_TARGET @@ -2189,7 +2189,7 @@ Move_BUBBLE_BEAM: @ 81CA573 setalpha 12, 8 delay 1 call _81CA5AD - createvisualtask sub_80A8B88, 5, 0, 3, 3072, 8, 1 + createvisualtask AnimTask_SwayMon, 5, 0, 3, 3072, 8, 1 call _81CA5AD call _81CA5AD waitforvisualfinish @@ -2334,7 +2334,7 @@ Move_CONVERSION: @ 81CA809 Move_CONVERSION_2: @ 81CA91E loadspritegfx 10018 monbg ANIM_BANK_DEF_PARTNER - monbgprio_2A 1 + monbgprio_2A ANIM_BANK_TARGET setalpha 0, 16 delay 0 playsewithpan SE_W112, 63 @@ -2381,19 +2381,19 @@ Move_ROLLING_KICK: @ 81CAA3A loadspritegfx 10135 monbg ANIM_BANK_TARGET setalpha 12, 8 - createvisualtask sub_80A8500, 2, 0, 18, 6, 1, 4 + createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_BANK_ATTACKER, 18, 6, 1, 4 playsewithpan SE_W104, 192 delay 6 playsewithpan SE_W104, 192 waitforvisualfinish - createsprite gBattleAnimSpriteTemplate_83C1FF8, 2, 0, 20, 0, 0, 4 + createsprite gSlideMonToOffsetSpriteTemplate, 2, 0, 20, 0, 0, 4 createsprite gBattleAnimSpriteTemplate_83D9FF0, 2, -24, 0, 48, 10, 160, 0 delay 5 playsewithpan SE_W233B, 63 createsprite gBasicHitSplatSpriteTemplate, 2, -8, 0, 1, 2 createvisualtask AnimTask_ShakeMon, 2, ANIM_BANK_TARGET, 5, 0, 6, 1 waitforvisualfinish - createsprite gBattleAnimSpriteTemplate_83C1FE0, 2, 0, 1, 8 + createsprite gSlideMonToOriginalPosSpriteTemplate, 2, 0, 1, 8 clearmonbg ANIM_BANK_TARGET blendoff end @@ -2406,7 +2406,7 @@ Move_HEADBUTT: @ 81CAABD delay 2 createsprite gBattleAnimSpriteTemplate_83D6DE4, 2, 1 waitforvisualfinish - createvisualtask sub_80A8154, 2, 0, 2, 0, 4, 1 + createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_BANK_ATTACKER, 2, 0, 4, 1 createvisualtask AnimTask_ShakeMon, 2, ANIM_BANK_TARGET, 5, 0, 6, 1 createsprite gBattleAnimSpriteTemplate_83D6DE4, 2, 2 createsprite gBattleAnimSpriteTemplate_83DB538, 131, 0, 0, 1, 1 @@ -2424,7 +2424,7 @@ Move_HORN_ATTACK: @ 81CAB1A createsprite gBattleAnimSpriteTemplate_83D6DE4, 2, 1 createsprite gBattleAnimSpriteTemplate_83D7050, 132, 0, 0, 10 waitforvisualfinish - createvisualtask sub_80A8154, 2, 0, 2, 0, 4, 1 + createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_BANK_ATTACKER, 2, 0, 4, 1 createvisualtask AnimTask_ShakeMon, 2, ANIM_BANK_TARGET, 5, 0, 6, 1 createsprite gBattleAnimSpriteTemplate_83D6DE4, 2, 2 createsprite gBattleAnimSpriteTemplate_83DB538, 131, 0, 0, 1, 1 @@ -2472,8 +2472,8 @@ _81CAC21: createsprite gBattleAnimSpriteTemplate_83D7050, 132, 0, 0, 12 waitforvisualfinish playse SE_BAN - createvisualtask sub_80A8154, 2, 0, 2, 0, 40, 1 - createvisualtask sub_80A8154, 2, 1, 10, 0, 40, 1 + createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_BANK_ATTACKER, 2, 0, 40, 1 + createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_BANK_TARGET, 10, 0, 40, 1 createsprite gBattleAnimSpriteTemplate_83DB538, 131, 0, 0, 1, 3 playsewithpan SE_W030, 63 delay 4 @@ -2526,15 +2526,15 @@ Move_THRASH: @ 81CAD81 createvisualtask sub_80D0A4C, 2 createvisualtask sub_80D0AB8, 2 createsprite gBattleAnimSpriteTemplate_83D9FC0, 131, 1, 10, 0 - createvisualtask sub_80A8154, 2, 1, 4, 0, 7, 1 + createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_BANK_TARGET, 4, 0, 7, 1 playsewithpan SE_W004, 63 delay 28 createsprite gBattleAnimSpriteTemplate_83D9FC0, 131, 1, 10, 1 - createvisualtask sub_80A8154, 2, 1, 4, 0, 7, 1 + createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_BANK_TARGET, 4, 0, 7, 1 playsewithpan SE_W233B, 63 delay 28 createsprite gBattleAnimSpriteTemplate_83D9FC0, 131, 1, 10, 3 - createvisualtask sub_80A8154, 2, 1, 8, 0, 16, 1 + createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_BANK_TARGET, 8, 0, 16, 1 playsewithpan SE_W025B, 63 end @@ -2577,14 +2577,14 @@ Move_SING: @ 81CAE00 Move_LOW_KICK: @ 81CAED4 loadspritegfx 10143 loadspritegfx 10135 - createsprite gBattleAnimSpriteTemplate_83C1FF8, 2, 0, 20, 0, 0, 4 + createsprite gSlideMonToOffsetSpriteTemplate, 2, 0, 20, 0, 0, 4 createsprite gBattleAnimSpriteTemplate_83D9FF0, 130, -24, 28, 40, 8, 160, 0 delay 4 createsprite gBasicHitSplatSpriteTemplate, 130, -8, 8, 1, 2 createvisualtask sub_80A8E04, 2, 6, 384, 1, 2 playsewithpan SE_W233B, 63 waitforvisualfinish - createsprite gBattleAnimSpriteTemplate_83C1FE0, 2, 0, 1, 4 + createsprite gSlideMonToOriginalPosSpriteTemplate, 2, 0, 1, 4 end Move_EARTHQUAKE: @ 81CAF31 @@ -2699,7 +2699,7 @@ Move_MEDITATE: @ 81CB1BD Move_AGILITY: @ 81CB1DA monbg ANIM_BANK_ATK_PARTNER setalpha 12, 8 - createvisualtask sub_80A8500, 2, 0, 24, 6, 4, 4 + createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_BANK_ATTACKER, 24, 6, 4, 4 createvisualtask sub_80E2DD8, 2, 0, 4, 7, 10 playsewithpan SE_W104, 192 delay 12 @@ -2721,7 +2721,7 @@ Move_QUICK_ATTACK: @ 81CB224 loadspritegfx 10135 monbg ANIM_BANK_ATK_PARTNER setalpha 12, 8 - createvisualtask sub_80A8500, 2, 0, 24, 6, 1, 5 + createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_BANK_ATTACKER, 24, 6, 1, 5 createvisualtask sub_80E2DD8, 2, 0, 4, 7, 3 playsewithpan SE_W026, 192 delay 4 @@ -2746,7 +2746,7 @@ Move_RAGE: @ 81CB27C createsprite gBattleAnimSpriteTemplate_83D7798, 2, 0, 20, -28 playsewithpan SE_W207B, 192 waitforvisualfinish - createsprite gBattleAnimSpriteTemplate_83C1FB0, 2, 4, 6 + createsprite gHorizontalLungeSpriteTemplate, 2, 4, 6 delay 4 createsprite gBasicHitSplatSpriteTemplate, 2, 0, 0, 1, 2 createvisualtask sub_80A9058, 2, 1, 1, 10, 1, 0 @@ -2836,8 +2836,8 @@ _81CB3E6: waitforvisualfinish playse SE_BAN createsprite gBattleAnimSpriteTemplate_83DB3DC, 2, 1, 3, 1, 0, 14, 32767, 14 - createvisualtask sub_80A8154, 2, 0, 2, 0, 40, 1 - createvisualtask sub_80A8154, 2, 1, 10, 0, 40, 1 + createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_BANK_ATTACKER, 2, 0, 40, 1 + createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_BANK_TARGET, 10, 0, 40, 1 createsprite gBattleAnimSpriteTemplate_83DB538, 132, 0, 0, 1, 0 loopsewithpan SE_W025B, 63, 8, 3 waitforvisualfinish @@ -2959,7 +2959,7 @@ _81CB68E: createvisualtask sub_812B340, 5, 238, -64 createsprite gBattleAnimSpriteTemplate_83DA65C, 130 delay 14 - createvisualtask sub_80A7FA0, 2, 1, 10, 0, 18, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_TARGET, 10, 0, 18, 1 createvisualtask sub_812B30C, 5, 141, 63 delay 20 createvisualtask sub_80DFD24, 5, 1 @@ -3002,14 +3002,14 @@ Move_SHARPEN: @ 81CB74E Move_SUPER_FANG: @ 81CB75A loadspritegfx 10192 - createvisualtask sub_80A8154, 2, 0, 1, 0, 20, 1 + createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_BANK_ATTACKER, 1, 0, 20, 1 playsewithpan SE_W082, 192 waitforvisualfinish - createvisualtask sub_80A8154, 2, 0, 3, 0, 48, 1 + createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_BANK_ATTACKER, 3, 0, 48, 1 createvisualtask sub_8079790, 2, 0, 1247, 12, 4, 1 waitforvisualfinish delay 20 - createsprite gBattleAnimSpriteTemplate_83C1FB0, 2, 4, 4 + createsprite gHorizontalLungeSpriteTemplate, 2, 4, 4 delay 4 createsprite gBattleAnimSpriteTemplate_83D7080, 130 playsewithpan SE_W044, 63 @@ -3026,7 +3026,7 @@ Move_SLASH: @ 81CB7DB playsewithpan SE_W013, 63 delay 4 createsprite gBattleAnimSpriteTemplate_83D6E38, 130, 1, 8, 0 - createvisualtask sub_80A7FA0, 2, 1, 4, 0, 18, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_TARGET, 4, 0, 18, 1 playsewithpan SE_W013, 63 waitforvisualfinish end @@ -3036,13 +3036,13 @@ Move_STRUGGLE: @ 81CB815 loadspritegfx 10215 monbg ANIM_BANK_TARGET setalpha 12, 8 - createvisualtask sub_80A8154, 2, 0, 3, 0, 12, 4 + createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_BANK_ATTACKER, 3, 0, 12, 4 createsprite gBattleAnimSpriteTemplate_83D7C90, 2, 0, 0, 2 createsprite gBattleAnimSpriteTemplate_83D7C90, 2, 0, 1, 2 loopsewithpan SE_W029, 192, 12, 4 waitforvisualfinish createsprite gBasicHitSplatSpriteTemplate, 3, 0, 0, 1, 2 - createvisualtask sub_80A8154, 2, 1, 3, 0, 6, 1 + createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_BANK_TARGET, 3, 0, 6, 1 playsewithpan SE_W025B, 63 waitforvisualfinish clearmonbg ANIM_BANK_TARGET @@ -3170,7 +3170,7 @@ Move_DESTINY_BOND: @ 81CBA2C createvisualtask sub_80DE918, 5, 0, 48 playsewithpan SE_W109, 192 delay 48 - createvisualtask sub_80A8154, 2, 0, 2, 0, 24, 1 + createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_BANK_ATTACKER, 2, 0, 24, 1 createvisualtask sub_80E2A7C, 2, 6, 1, 0, 12, 30653 delay 24 createvisualtask sub_80E2A7C, 2, 6, 1, 12, 0, 30653 @@ -3188,7 +3188,7 @@ Move_ENDURE: @ 81CBA87 call EndureFlamesAnim delay 8 createvisualtask sub_80E1F8C, 2, 2, 2, 2, 0, 11, 31 - createvisualtask sub_80A7FA0, 2, 0, 1, 0, 32, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_ATTACKER, 1, 0, 32, 1 call EndureFlamesAnim delay 8 call EndureFlamesAnim @@ -3534,7 +3534,7 @@ Move_SMELLING_SALT: @ 81CC156 loopsewithpan SE_W003, 63, 12, 2 waitforvisualfinish delay 4 - createvisualtask sub_80A7FA0, 2, 1, 2, 0, 6, 2 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_TARGET, 2, 0, 6, 2 createsprite gBattleAnimSpriteTemplate_84029F4, 130, 1, 8, 3 loopsewithpan SE_W207B, 63, 16, 3 end @@ -3611,13 +3611,13 @@ Move_HELPING_HAND: @ 81CC2BF createsprite gBattleAnimSpriteTemplate_8402A0C, 40, 1 delay 19 playsewithpan SE_W227, 0 - createvisualtask sub_80A7FA0, 2, 2, 2, 0, 5, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_ATK_PARTNER, 2, 0, 5, 1 delay 14 playsewithpan SE_W227, 0 - createvisualtask sub_80A7FA0, 2, 2, 2, 0, 5, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_ATK_PARTNER, 2, 0, 5, 1 delay 20 playsewithpan SE_W227, 0 - createvisualtask sub_80A7FA0, 2, 2, 3, 0, 10, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_ATK_PARTNER, 3, 0, 10, 1 createvisualtask sub_8079790, 2, 2, 1023, 12, 1, 1 end @@ -3664,7 +3664,7 @@ Move_SUPERPOWER: @ 81CC3A3 createsprite gBattleAnimSpriteTemplate_83DA12C, 131, 0 playsewithpan SE_W207, 192 delay 16 - createvisualtask sub_80A7FA0, 2, 1, 8, 0, 16, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_TARGET, 8, 0, 16, 1 playsewithpan SE_W025B, 63 waitforvisualfinish clearmonbg ANIM_BANK_ATK_PARTNER @@ -3697,14 +3697,14 @@ Move_BRICK_BREAK: @ 81CC492 _81CC4A7: monbg ANIM_BANK_TARGET setalpha 12, 8 - createsprite gBattleAnimSpriteTemplate_83C1FB0, 2, 3, 8 + createsprite gHorizontalLungeSpriteTemplate, 2, 3, 8 delay 4 delay 1 createsprite gBasicHitSplatSpriteTemplate, 3, -18, -18, 1, 1 createsprite gBattleAnimSpriteTemplate_83D9FA8, 2, -18, -18, 10, 1, 0 playsewithpan SE_W233, 63 delay 20 - createsprite gBattleAnimSpriteTemplate_83C1FB0, 2, 3, 8 + createsprite gHorizontalLungeSpriteTemplate, 2, 3, 8 delay 5 createsprite gBasicHitSplatSpriteTemplate, 3, 18, 18, 1, 1 createsprite gBattleAnimSpriteTemplate_83D9FA8, 2, 18, 18, 10, 1, 0 @@ -3724,7 +3724,7 @@ _81CC4A7: _81CC576: monbg ANIM_BANK_TARGET setalpha 12, 8 - createsprite gBattleAnimSpriteTemplate_83C1FB0, 2, 3, 8 + createsprite gHorizontalLungeSpriteTemplate, 2, 3, 8 delay 4 createsprite gBattleAnimSpriteTemplate_83DA0A0, 3, 1, 0, 0, 90, 10 delay 1 @@ -3732,7 +3732,7 @@ _81CC576: createsprite gBattleAnimSpriteTemplate_83D9FA8, 2, -18, -18, 10, 1, 0 playsewithpan SE_W233, 63 delay 20 - createsprite gBattleAnimSpriteTemplate_83C1FB0, 2, 3, 8 + createsprite gHorizontalLungeSpriteTemplate, 2, 3, 8 delay 5 createsprite gBasicHitSplatSpriteTemplate, 3, 18, 18, 1, 1 createsprite gBattleAnimSpriteTemplate_83D9FA8, 2, 18, 18, 10, 1, 0 @@ -4076,7 +4076,7 @@ Move_NEEDLE_ARM: @ 81CCD73 delay 2 createsprite gBattleAnimSpriteTemplate_83D6994, 130, 1, 0, 16, 16, 16 waitforvisualfinish - createvisualtask sub_80A7FA0, 2, 1, 4, 0, 18, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_TARGET, 4, 0, 18, 1 createsprite gBasicHitSplatSpriteTemplate, 131, 0, 0, 1, 1 createsprite gBattleAnimSpriteTemplate_83D9FA8, 132, 0, 0, 8, 1, 0 playsewithpan SE_W233B, 63 @@ -4105,9 +4105,9 @@ Move_CRUSH_CLAW: @ 81CCF3B loadspritegfx 10208 monbg ANIM_BANK_TARGET setalpha 12, 8 - createsprite gBattleAnimSpriteTemplate_83C1FB0, 2, 6, 4 + createsprite gHorizontalLungeSpriteTemplate, 2, 6, 4 delay 4 - createvisualtask sub_80A7FA0, 2, 1, 2, 0, 18, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_TARGET, 2, 0, 18, 1 createsprite gBattleAnimSpriteTemplate_83DB288, 130, -10, -10, 0 createsprite gBattleAnimSpriteTemplate_83DB288, 130, -10, 10, 0 playsewithpan SE_W013, 63 @@ -4196,8 +4196,8 @@ Move_AIR_CUTTER: @ 81CD19D playsewithpan SE_W015, 63 createsprite gBattleAnimSpriteTemplate_83D6B40, 2, 40, -32, 0, 2 delay 5 - createvisualtask sub_80A7FA0, 2, 1, 2, 0, 8, 1 - createvisualtask sub_80A7FA0, 2, 3, 2, 0, 8, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_TARGET, 2, 0, 8, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_DEF_PARTNER, 2, 0, 8, 1 waitforvisualfinish blendoff clearmonbg ANIM_BANK_DEF_PARTNER @@ -4208,10 +4208,10 @@ Move_ODOR_SLEUTH: @ 81CD1FF monbg ANIM_BANK_TARGET createvisualtask sub_81316F8, 5 delay 24 - createsprite gBattleAnimSpriteTemplate_83C1FB0, 2, 3, 4 + createsprite gHorizontalLungeSpriteTemplate, 2, 3, 4 playsewithpan SE_W207, 192 delay 6 - createsprite gBattleAnimSpriteTemplate_83C1FB0, 2, 3, 4 + createsprite gHorizontalLungeSpriteTemplate, 2, 3, 4 playsewithpan SE_W207, 192 waitforvisualfinish clearmonbg ANIM_BANK_TARGET @@ -4268,7 +4268,7 @@ Move_TICKLE: @ 81CD33C createsprite gBattleAnimSpriteTemplate_83DB3C4, 2, 2, 0, 16, 0, 0 waitforvisualfinish delay 20 - createvisualtask sub_80A8B88, 3, 0, 6, 1280, 3, 0 + createvisualtask AnimTask_SwayMon, 3, 0, 6, 1280, 3, 0 delay 12 createvisualtask sub_812E568, 3, 1, 6, 2 loopsewithpan SE_W039, 63, 8, 8 @@ -4338,7 +4338,7 @@ Move_AERIAL_ACE: @ 81CD499 loadspritegfx 10138 monbg ANIM_BANK_TARGET setalpha 12, 8 - createvisualtask sub_80A8500, 2, 0, 24, 6, 1, 5 + createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_BANK_ATTACKER, 24, 6, 1, 5 createvisualtask sub_80E2DD8, 2, 0, 4, 7, 3 createsprite gBattleAnimSpriteTemplate_83D6B28, 2, 40, -32, 0 playsewithpan SE_W013B, 192 @@ -4397,7 +4397,7 @@ Move_COVET: @ 81CD57C createsprite gBattleAnimSpriteTemplate_83D7A80, 3, 20, 20 playsewithpan SE_W204, 192 waitforvisualfinish - createvisualtask sub_80A7FA0, 2, 1, 2, 0, 8, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_TARGET, 2, 0, 8, 1 loopsewithpan SE_W146, 63, 4, 3 end @@ -4430,7 +4430,7 @@ Move_VOLT_TACKLE: @ 81CD5D9 createvisualtask sub_80D700C, 5, 4 playsewithpan SE_W085, 192 delay 8 - createvisualtask sub_80A7FA0, 2, 1, 10, 0, 18, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_TARGET, 10, 0, 18, 1 playsewithpan SE_W120, 63 createsprite gBattleAnimSpriteTemplate_83D9A9C, 2, 1, 16, 16 delay 2 @@ -4438,7 +4438,7 @@ Move_VOLT_TACKLE: @ 81CD5D9 delay 8 createvisualtask sub_80D6E9C, 5 waitforvisualfinish - createvisualtask sub_80A7FA0, 2, 0, 3, 0, 9, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_ATTACKER, 3, 0, 9, 1 playsewithpan SE_W085B, 192 createsprite gBattleAnimSpriteTemplate_83D9A9C, 2, 0, 16, 16 delay 2 @@ -4489,19 +4489,19 @@ Move_LEAF_BLADE: @ 81CD775 loadspritegfx 10285 createvisualtask sub_80CBDF4, 5 delay 2 - createvisualtask sub_80A7FA0, 2, 1, 2, 0, 8, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_TARGET, 2, 0, 8, 1 playsewithpan SE_W015, 63 delay 50 - createvisualtask sub_80A7FA0, 2, 1, 2, 0, 8, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_TARGET, 2, 0, 8, 1 playsewithpan SE_W015, 63 delay 50 - createvisualtask sub_80A7FA0, 2, 1, 2, 0, 8, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_TARGET, 2, 0, 8, 1 playsewithpan SE_W015, 63 waitforvisualfinish monbg ANIM_BANK_TARGET setalpha 12, 8 delay 12 - createvisualtask sub_80A7FA0, 2, 1, 8, 0, 18, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_TARGET, 8, 0, 18, 1 createsprite gBattleAnimSpriteTemplate_83DB520, 130, 0, 0, 1, 36 playsewithpan SE_W043, 63 waitforvisualfinish @@ -4701,7 +4701,7 @@ Move_CONFUSION: @ 81CDC69 monbg ANIM_BANK_DEF_PARTNER call Unknown_81D61E7 setalpha 8, 8 - createvisualtask sub_80A7FA0, 2, 0, 1, 0, 10, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_ATTACKER, 1, 0, 10, 1 createvisualtask sub_80E1F8C, 2, 2, 0, 2, 0, 8, 32767 waitforvisualfinish playsewithpan SE_W048, 63 @@ -4718,7 +4718,7 @@ Move_PSYCHIC: @ 81CDCCA monbg ANIM_BANK_DEF_PARTNER call Unknown_81D61E7 setalpha 8, 8 - createvisualtask sub_80A7FA0, 2, 0, 1, 0, 10, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_ATTACKER, 1, 0, 10, 1 createvisualtask sub_80E1F8C, 2, 2, 0, 2, 0, 8, 767 waitforvisualfinish loopsewithpan SE_W048, 63, 10, 3 @@ -4940,7 +4940,7 @@ Move_DRAGON_BREATH: @ 81CE20A createvisualtask sub_80E2A38, 10, 4, 1, 0, 9, 31 createsprite gBattleAnimSpriteTemplate_83DB044, 130, 0, 0, 0, 0, 20 delay 2 - createvisualtask sub_80A7FA0, 2, 1, 2, 0, 21, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_TARGET, 2, 0, 21, 1 createsprite gBattleAnimSpriteTemplate_83DB044, 130, 0, 0, 0, 0, 20 delay 2 createsprite gBattleAnimSpriteTemplate_83DB044, 130, 0, 0, 0, 0, 20 @@ -4993,8 +4993,8 @@ Move_GROWL: @ 81CE3AF createvisualtask sub_812B18C, 2, 0, 255 call _81CE35E delay 10 - createvisualtask sub_80A7FA0, 2, 1, 1, 0, 9, 1 - createvisualtask sub_80A7FA0, 2, 3, 1, 0, 9, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_TARGET, 1, 0, 9, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_DEF_PARTNER, 1, 0, 9, 1 waitforvisualfinish delay 20 end @@ -5013,7 +5013,7 @@ Move_SNORE: @ 81CE3EA _81CE403: playsewithpan SE_W173, 192 createvisualtask sub_80A8D34, 5, -7, -7, 7, 0, 1 - createvisualtask sub_80A7FA0, 2, 1, 4, 0, 7, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_TARGET, 4, 0, 7, 1 createsprite gBattleAnimSpriteTemplate_83DB428, 2, 6, 1, 14, 0, 0 createsprite gBattleAnimSpriteTemplate_83D77F8, 2, 0, 0, -42, -38, 24, 0, 0 createsprite gBattleAnimSpriteTemplate_83D77F8, 2, 0, 0, 0, -42, 24, 0, 0 @@ -5139,7 +5139,7 @@ Move_SMOG: @ 81CE672 loopsewithpan SE_W092, 63, 18, 2 createvisualtask sub_80E1F8C, 2, 4, 2, 2, 0, 12, 26650 delay 10 - createvisualtask sub_80A7FA0, 2, 1, 2, 0, 15, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_TARGET, 2, 0, 15, 1 waitforvisualfinish clearmonbg ANIM_BANK_DEF_PARTNER blendoff @@ -5156,7 +5156,7 @@ Move_FAINT_ATTACK: @ 81CE6ED waitbgfadein delay 0 playsewithpan SE_W185, 192 - createvisualtask sub_80A8500, 2, 0, 18, 6, 1, 3 + createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_BANK_ATTACKER, 18, 6, 1, 3 createvisualtask sub_80DFC24, 2, 1 waitforvisualfinish clearmonbg ANIM_BANK_ATTACKER @@ -5168,7 +5168,7 @@ Move_FAINT_ATTACK: @ 81CE6ED delay 1 playsewithpan SE_W233B, 63 createsprite gBasicHitSplatSpriteTemplate, 2, 0, 0, 1, 1 - createvisualtask sub_80A7FA0, 2, 1, 2, 0, 9, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_TARGET, 2, 0, 9, 1 waitforvisualfinish clearmonbg ANIM_BANK_TARGET blendoff @@ -5191,9 +5191,9 @@ Move_SAND_ATTACK: @ 81CE774 monbgprio_28 0 setalpha 12, 8 playsewithpan SE_W028, 192 - createsprite gBattleAnimSpriteTemplate_83C1FF8, 2, 0, -10, 0, 0, 3 + createsprite gSlideMonToOffsetSpriteTemplate, 2, 0, -10, 0, 0, 3 waitforvisualfinish - createsprite gBattleAnimSpriteTemplate_83C1FE0, 2, 0, 0, 2 + createsprite gSlideMonToOriginalPosSpriteTemplate, 2, 0, 0, 2 call _81CE7C4 call _81CE7C4 call _81CE7C4 @@ -5216,9 +5216,9 @@ _81CE7C4: Move_MUD_SLAP: @ 81CE81C loadspritegfx 10074 playsewithpan SE_W028, 192 - createsprite gBattleAnimSpriteTemplate_83C1FF8, 2, 0, -10, 0, 0, 3 + createsprite gSlideMonToOffsetSpriteTemplate, 2, 0, -10, 0, 0, 3 waitforvisualfinish - createsprite gBattleAnimSpriteTemplate_83C1FE0, 2, 0, 0, 2 + createsprite gSlideMonToOriginalPosSpriteTemplate, 2, 0, 0, 2 call _81CE862 call _81CE862 call _81CE862 @@ -5242,7 +5242,7 @@ Move_DRAGON_RAGE: @ 81CE8BA playsewithpan SE_W082, 192 createvisualtask AnimTask_ShakeMon, 5, 0, 0, 2, 40, 1 waitforvisualfinish - createsprite gBattleAnimSpriteTemplate_83C1FF8, 130, 0, 15, 0, 0, 4 + createsprite gSlideMonToOffsetSpriteTemplate, 130, 0, 15, 0, 0, 4 waitforvisualfinish createsprite gBattleAnimSpriteTemplate_83DB0D0, 130, 30, 15, 0, 10, 10 waitforvisualfinish @@ -5264,7 +5264,7 @@ Move_DRAGON_RAGE: @ 81CE8BA delay 1 createsprite gBattleAnimSpriteTemplate_83DB078, 194, 1, 0, 8 waitforvisualfinish - createsprite gBattleAnimSpriteTemplate_83C1FE0, 194, 0, 0, 4 + createsprite gSlideMonToOriginalPosSpriteTemplate, 194, 0, 0, 4 waitforvisualfinish end @@ -5359,7 +5359,7 @@ Move_ICE_BEAM: @ 81CEB4D call _81CEC4E call _81CEC4E createsprite gBattleAnimSpriteTemplate_83DB3C4, 2, 4, -31, 0, 7, 32384 - createvisualtask sub_80A7FA0, 2, 1, 2, 0, 25, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_TARGET, 2, 0, 25, 1 call _81CEC4E call _81CEC4E call _81CEC4E @@ -5402,13 +5402,13 @@ Move_AURORA_BEAM: @ 81CEC91 setarg 7, 0 createvisualtask sub_80D3490, 10, 130 call _81CED18 - createvisualtask sub_80A7FA0, 5, 1, 1, 0, 17, 1 + createvisualtask AnimTask_ShakeMon2, 5, 1, 1, 0, 17, 1 call _81CED18 call _81CED18 call _81CED18 setarg 7, -1 createsoundtask sub_812B058, 183, -64, 63, 3, 6, 0, 10 - createvisualtask sub_80A7FA0, 5, 1, 2, 0, 40, 1 + createvisualtask AnimTask_ShakeMon2, 5, 1, 2, 0, 40, 1 call _81CED18 call _81CED18 call _81CED18 @@ -5487,7 +5487,7 @@ _81CEE70: createvisualtask sub_80E2A38, 10, 4, 1, 0, 10, 1017 createsprite gBattleAnimSpriteTemplate_83D6304, 131, 15, 0, 20, 2 delay 4 - createvisualtask sub_80A7FA0, 5, 1, 2, 0, 65, 1 + createvisualtask AnimTask_ShakeMon2, 5, 1, 2, 0, 65, 1 createsprite gBattleAnimSpriteTemplate_83D6304, 131, 15, 0, 20, 3 delay 4 createsprite gBattleAnimSpriteTemplate_83D6304, 131, 15, 0, 20, 4 @@ -5698,7 +5698,7 @@ Move_ABSORB: @ 81CF427 loadspritegfx 10031 loadspritegfx 10135 monbg ANIM_BANK_DEF_PARTNER - monbgprio_2A 1 + monbgprio_2A ANIM_BANK_TARGET setalpha 12, 8 createsprite gBattleAnimSpriteTemplate_83DB3C4, 2, 1, 1, 0, 4, 13293 waitforvisualfinish @@ -5750,7 +5750,7 @@ Move_MEGA_DRAIN: @ 81CF53F loadspritegfx 10031 loadspritegfx 10135 monbg ANIM_BANK_DEF_PARTNER - monbgprio_2A 1 + monbgprio_2A ANIM_BANK_TARGET setalpha 12, 8 createsprite gBattleAnimSpriteTemplate_83DB3C4, 2, 1, 1, 0, 8, 13293 waitforvisualfinish @@ -5810,7 +5810,7 @@ Move_GIGA_DRAIN: @ 81CF6CF loadspritegfx 10031 loadspritegfx 10135 monbg ANIM_BANK_DEF_PARTNER - monbgprio_2A 1 + monbgprio_2A ANIM_BANK_TARGET setalpha 12, 8 createsprite gBattleAnimSpriteTemplate_83DB3C4, 2, 1, 1, 0, 12, 13293 waitforvisualfinish @@ -5880,7 +5880,7 @@ Move_LEECH_LIFE: @ 81CF8D7 loadspritegfx 10031 loadspritegfx 10135 monbg ANIM_BANK_DEF_PARTNER - monbgprio_2A 1 + monbgprio_2A ANIM_BANK_TARGET setalpha 12, 8 delay 1 createsprite gBattleAnimSpriteTemplate_83DAB10, 2, -20, 15, 12 @@ -5962,7 +5962,7 @@ Move_SLUDGE_BOMB: @ 81CFA34 call _81CFB44 call _81CFB44 call _81CFB44 - createvisualtask sub_80A7FA0, 5, 1, 3, 0, 15, 1 + createvisualtask AnimTask_ShakeMon2, 5, 1, 3, 0, 15, 1 createvisualtask sub_80E1F8C, 2, 4, 1, 2, 0, 12, 31774 createsprite gBattleAnimSpriteTemplate_83DA2E8, 130, 42, 27, 20 createsprite gBattleAnimSpriteTemplate_83DA2E8, 130, -27, 44, 20 @@ -6005,8 +6005,8 @@ Move_ACID: @ 81CFB5A createsprite gBattleAnimSpriteTemplate_83DA2D0, 130, 20, 0, 40, 1, -24, 0 playsewithpan SE_W145C, 192 delay 15 - createvisualtask sub_80A7FA0, 5, 1, 2, 0, 10, 1 - createvisualtask sub_80A7FA0, 5, 3, 2, 0, 10, 1 + createvisualtask AnimTask_ShakeMon2, 5, 1, 2, 0, 10, 1 + createvisualtask AnimTask_ShakeMon2, 5, 3, 2, 0, 10, 1 createvisualtask sub_80E1F8C, 2, 20, 2, 2, 0, 12, 31774 createsprite gBattleAnimSpriteTemplate_83DA31C, 130, 0, -22, 0, 15, 55 playsewithpan SE_W145, 63 @@ -6040,7 +6040,7 @@ Move_BONEMERANG: @ 81CFC54 createvisualtask AnimTask_ShakeMon, 5, 1, 5, 0, 5, 1 delay 17 playsewithpan SE_W233, 192 - createsprite gBattleAnimSpriteTemplate_83C1FB0, 2, 6, -4 + createsprite gHorizontalLungeSpriteTemplate, 2, 6, -4 waitforvisualfinish clearmonbg ANIM_BANK_DEF_PARTNER blendoff @@ -6112,20 +6112,20 @@ _81CFDCF: createvisualtask AnimTask_ShakeMon, 5, 0, 2, 0, 15, 1 waitforvisualfinish delay 10 - createsprite gBattleAnimSpriteTemplate_83C1FF8, 2, 0, 24, 0, 0, 6 + createsprite gSlideMonToOffsetSpriteTemplate, 2, 0, 24, 0, 0, 6 delay 3 createsprite gBattleAnimSpriteTemplate_83DAABC, 3, -42, 25, 0, 0, 6 delay 4 playsewithpan SE_W011, 63 createsprite gBasicHitSplatSpriteTemplate, 2, 0, 0, 1, 0 - createsprite gBattleAnimSpriteTemplate_83C1FF8, 2, 1, -16, 4, 1, 4 + createsprite gSlideMonToOffsetSpriteTemplate, 2, 1, -16, 4, 1, 4 waitforvisualfinish - createvisualtask sub_80A8154, 2, 1, -4, 1, 12, 1 + createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_BANK_TARGET, -4, 1, 12, 1 createsprite gBattleAnimSpriteTemplate_83DB3DC, 2, 7, 5, 1, 32767, 10, 0, 0 delay 10 - createsprite gBattleAnimSpriteTemplate_83C1FE0, 2, 0, 0, 11 + createsprite gSlideMonToOriginalPosSpriteTemplate, 2, 0, 0, 11 delay 3 - createsprite gBattleAnimSpriteTemplate_83C1FE0, 2, 1, 0, 7 + createsprite gSlideMonToOriginalPosSpriteTemplate, 2, 1, 0, 7 waitforvisualfinish waitforvisualfinish clearmonbg ANIM_BANK_DEF_PARTNER @@ -6151,7 +6151,7 @@ Move_GUST: @ 81CFE9A createsprite gBattleAnimSpriteTemplate_83DA380, 2, 0, -16 createvisualtask sub_80DA09C, 5, 1, 70 waitforvisualfinish - createvisualtask sub_80A7FA0, 5, 1, 1, 0, 7, 1 + createvisualtask AnimTask_ShakeMon2, 5, 1, 1, 0, 7, 1 createsprite gBasicHitSplatSpriteTemplate, 2, 0, 0, 1, 2 playsewithpan SE_W016B, 63 waitforvisualfinish @@ -6166,18 +6166,18 @@ Move_WING_ATTACK: @ 81CFEEB monbgprio_28 1 setalpha 12, 8 loopsewithpan SE_W017, 192, 20, 2 - createvisualtask sub_80A8408, 2, 0, 12, 4, 1, 4 + createvisualtask AnimTask_TranslateMonElliptical, 2, ANIM_BANK_ATTACKER, 12, 4, 1, 4 createvisualtask sub_80DA09C, 5, 1, 70 createsprite gBattleAnimSpriteTemplate_83DA3B4, 2, -25, 0, 0, 0, 20 createsprite gBattleAnimSpriteTemplate_83DA3B4, 2, 25, 0, 0, 0, 20 delay 24 - createsprite gBattleAnimSpriteTemplate_83C1FF8, 2, 0, 24, 0, 0, 9 + createsprite gSlideMonToOffsetSpriteTemplate, 2, 0, 24, 0, 0, 9 delay 17 createsprite gBasicHitSplatSpriteTemplate, 2, 16, 0, 1, 1 createsprite gBasicHitSplatSpriteTemplate, 2, -16, 0, 1, 1 loopsewithpan SE_W003, 63, 5, 2 waitforvisualfinish - createsprite gBattleAnimSpriteTemplate_83C1FE0, 2, 0, 0, 11 + createsprite gSlideMonToOriginalPosSpriteTemplate, 2, 0, 0, 11 waitforvisualfinish clearmonbg ANIM_BANK_DEF_PARTNER blendoff @@ -6241,7 +6241,7 @@ Move_WATER_GUN: @ 81D00CC createsprite gBattleAnimSpriteTemplate_83D9318, 2, 20, 0, 0, 0, 40, -25 playsewithpan SE_W145, 192 waitforvisualfinish - createvisualtask sub_80A7FA0, 5, 1, 1, 0, 8, 1 + createvisualtask AnimTask_ShakeMon2, 5, 1, 1, 0, 8, 1 createsprite gBattleAnimSpriteTemplate_83DB4D8, 4, 0, 0, 1, 2 createsprite gBattleAnimSpriteTemplate_83D9330, 2, 0, -15, 0, 15, 55 playsewithpan SE_W152, 63 @@ -6265,11 +6265,11 @@ Move_CRABHAMMER: @ 81D0159 playsewithpan SE_W233B, 63 delay 1 createsprite gBattleAnimSpriteTemplate_83DB3DC, 2, 31, 3, 1, 32429, 10, 0, 0 - createsprite gBattleAnimSpriteTemplate_83C1FF8, 2, 1, -24, 0, 0, 4 + createsprite gSlideMonToOffsetSpriteTemplate, 2, 1, -24, 0, 0, 4 waitforvisualfinish delay 8 waitforvisualfinish - createsprite gBattleAnimSpriteTemplate_83C1FE0, 2, 1, 0, 4 + createsprite gSlideMonToOriginalPosSpriteTemplate, 2, 1, 0, 4 waitforvisualfinish loopsewithpan SE_W152, 63, 20, 3 createvisualtask AnimTask_ShakeMon, 5, 1, 0, 4, 8, 1 @@ -6473,7 +6473,7 @@ Move_JUMP_KICK: @ 81D05F7 loadspritegfx 10135 monbg ANIM_BANK_DEF_PARTNER setalpha 12, 8 - createsprite gBattleAnimSpriteTemplate_83C1FB0, 2, 4, 4 + createsprite gHorizontalLungeSpriteTemplate, 2, 4, 4 delay 3 createsprite gBattleAnimSpriteTemplate_83D9F90, 2, -16, 8, 0, 0, 10, 1, 1, 1 playsewithpan SE_W026, 63 @@ -6491,22 +6491,22 @@ Move_HI_JUMP_KICK: @ 81D0654 loadspritegfx 10135 monbg ANIM_BANK_DEF_PARTNER setalpha 12, 8 - createsprite gBattleAnimSpriteTemplate_83C1FF8, 2, 0, -24, 0, 0, 8 + createsprite gSlideMonToOffsetSpriteTemplate, 2, 0, -24, 0, 0, 8 waitforvisualfinish delay 10 - createsprite gBattleAnimSpriteTemplate_83C1FE0, 2, 0, 0, 3 + createsprite gSlideMonToOriginalPosSpriteTemplate, 2, 0, 0, 3 delay 2 createsprite gBattleAnimSpriteTemplate_83D9F90, 2, -16, 8, 0, 0, 10, 1, 1, 1 playsewithpan SE_W026, 63 waitforvisualfinish createsprite gBasicHitSplatSpriteTemplate, 2, 0, 0, 1, 1 playsewithpan SE_W233B, 63 - createsprite gBattleAnimSpriteTemplate_83C1FF8, 2, 1, -28, 0, 0, 3 + createsprite gSlideMonToOffsetSpriteTemplate, 2, 1, -28, 0, 0, 3 delay 3 - createvisualtask sub_80A8154, 2, 1, 3, 0, 11, 1 + createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_BANK_TARGET, 3, 0, 11, 1 waitforvisualfinish delay 5 - createsprite gBattleAnimSpriteTemplate_83C1FE0, 2, 1, 0, 6 + createsprite gSlideMonToOriginalPosSpriteTemplate, 2, 1, 0, 6 waitforvisualfinish clearmonbg ANIM_BANK_DEF_PARTNER blendoff @@ -6571,7 +6571,7 @@ Move_DYNAMIC_PUNCH: @ 81D07E4 delay 1 waitsound playsewithpan SE_W120, 63 - createvisualtask sub_80A7FA0, 5, 1, 5, 0, 28, 1 + createvisualtask AnimTask_ShakeMon2, 5, 1, 5, 0, 28, 1 createsprite gBattleAnimSpriteTemplate_83D7828, 3, 0, 0, 1, 1 delay 6 playsewithpan SE_W120, 63 @@ -6595,10 +6595,10 @@ Move_COUNTER: @ 81D08AC loadspritegfx 10143 monbg ANIM_BANK_DEF_PARTNER setalpha 12, 8 - createvisualtask sub_80A8500, 2, 0, 18, 6, 1, 4 + createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_BANK_ATTACKER, 18, 6, 1, 4 playsewithpan SE_W233, 192 waitforvisualfinish - createsprite gBattleAnimSpriteTemplate_83C1FF8, 2, 0, 20, 0, 0, 4 + createsprite gSlideMonToOffsetSpriteTemplate, 2, 0, 20, 0, 0, 4 delay 4 createsprite gBasicHitSplatSpriteTemplate, 2, -15, 18, 1, 0 playsewithpan SE_W233B, 63 @@ -6616,7 +6616,7 @@ Move_COUNTER: @ 81D08AC delay 1 createsprite gBattleAnimSpriteTemplate_83D9FA8, 3, 15, 9, 8, 1, 0 delay 5 - createsprite gBattleAnimSpriteTemplate_83C1FE0, 2, 0, 0, 5 + createsprite gSlideMonToOriginalPosSpriteTemplate, 2, 0, 0, 5 waitforvisualfinish clearmonbg ANIM_BANK_DEF_PARTNER blendoff @@ -6627,19 +6627,19 @@ Move_VITAL_THROW: @ 81D097B monbg ANIM_BANK_DEF_PARTNER setalpha 12, 8 playsewithpan SE_W233, 192 - createvisualtask sub_80A8500, 2, 0, 12, 4, 1, 2 + createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_BANK_ATTACKER, 12, 4, 1, 2 waitforvisualfinish - createsprite gBattleAnimSpriteTemplate_83C1FF8, 2, 0, 20, 0, 0, 4 + createsprite gSlideMonToOffsetSpriteTemplate, 2, 0, 20, 0, 0, 4 delay 2 createsprite gBasicHitSplatSpriteTemplate, 3, 0, 0, 1, 1 playsewithpan SE_W233B, 63 delay 1 - createsprite gBattleAnimSpriteTemplate_83C1FF8, 2, 1, -24, 0, 0, 4 + createsprite gSlideMonToOffsetSpriteTemplate, 2, 1, -24, 0, 0, 4 waitforvisualfinish delay 3 - createsprite gBattleAnimSpriteTemplate_83C1FE0, 2, 0, 0, 7 + createsprite gSlideMonToOriginalPosSpriteTemplate, 2, 0, 0, 7 delay 11 - createsprite gBattleAnimSpriteTemplate_83C1FE0, 2, 1, 0, 10 + createsprite gSlideMonToOriginalPosSpriteTemplate, 2, 1, 0, 10 waitforvisualfinish clearmonbg ANIM_BANK_DEF_PARTNER blendoff @@ -6686,8 +6686,8 @@ Move_SUBMISSION: @ 81D0AEE waitplaysewithpan SE_W004, 63, 70 waitplaysewithpan SE_W104, 192, 80 waitplaysewithpan SE_W004, 63, 90 - createvisualtask sub_80A8408, 2, 0, -18, 6, 6, 4 - createvisualtask sub_80A8408, 2, 1, 18, 6, 6, 4 + createvisualtask AnimTask_TranslateMonElliptical, 2, ANIM_BANK_ATTACKER, -18, 6, 6, 4 + createvisualtask AnimTask_TranslateMonElliptical, 2, ANIM_BANK_TARGET, 18, 6, 6, 4 call _81D0B5D call _81D0B5D call _81D0B5D @@ -6775,7 +6775,7 @@ Move_PETAL_DANCE: @ 81D0CA6 monbg ANIM_BANK_DEF_PARTNER setalpha 12, 8 playsewithpan SE_W080, 192 - createvisualtask sub_80A8500, 2, 0, 12, 6, 6, 3 + createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_BANK_ATTACKER, 12, 6, 6, 3 createsprite gBattleAnimSpriteTemplate_83D6428, 2, 0, -24, 8, 140 createsprite gBattleAnimSpriteTemplate_83D6440, 2, 16, -24, 8, 100 createsprite gBattleAnimSpriteTemplate_83D6440, 2, -16, -24, 8, 100 @@ -6794,14 +6794,14 @@ Move_PETAL_DANCE: @ 81D0CA6 createsprite gBattleAnimSpriteTemplate_83D6440, 2, 20, -16, 14, 80 createsprite gBattleAnimSpriteTemplate_83D6440, 2, -20, -14, 16, 80 waitforvisualfinish - createsprite gBattleAnimSpriteTemplate_83C1FF8, 2, 0, 24, 0, 0, 5 + createsprite gSlideMonToOffsetSpriteTemplate, 2, 0, 24, 0, 0, 5 delay 3 playsewithpan SE_W025B, 63 createsprite gBasicHitSplatSpriteTemplate, 3, 0, 0, 1, 0 createvisualtask AnimTask_ShakeMon, 2, ANIM_BANK_TARGET, 6, 0, 8, 1 waitforvisualfinish delay 8 - createsprite gBattleAnimSpriteTemplate_83C1FE0, 2, 0, 0, 7 + createsprite gSlideMonToOriginalPosSpriteTemplate, 2, 0, 0, 7 waitforvisualfinish clearmonbg ANIM_BANK_DEF_PARTNER blendoff @@ -6840,8 +6840,8 @@ Move_RAZOR_LEAF: @ 81D0DDE createsprite gBattleAnimSpriteTemplate_83D64E4, 131, 20, -10, 20, 0, 22, -20, 1 delay 20 playsewithpan SE_W013, 63 - createvisualtask sub_80A7FA0, 2, 1, 2, 0, 8, 1 - createvisualtask sub_80A7FA0, 2, 3, 2, 0, 8, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_TARGET, 2, 0, 8, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_DEF_PARTNER, 2, 0, 8, 1 waitforvisualfinish clearmonbg ANIM_BANK_DEF_PARTNER blendoff @@ -6859,7 +6859,7 @@ Move_ANCIENT_POWER: @ 81D0EE5 createsprite gBattleAnimSpriteTemplate_83DAD60, 2, -20, 32, -48, 50, 2 createsprite gBattleAnimSpriteTemplate_83DAD60, 2, 20, 32, -28, 60, 1 createsprite gBattleAnimSpriteTemplate_83DAD60, 2, 0, 32, -28, 30, 4 - createvisualtask sub_80A7FA0, 2, 0, 1, 0, 30, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_ATTACKER, 1, 0, 30, 1 playsewithpan SE_W082, 192 delay 10 createsprite gBattleAnimSpriteTemplate_83DAD60, 2, 15, 32, -48, 25, 5 @@ -6868,13 +6868,13 @@ Move_ANCIENT_POWER: @ 81D0EE5 createsprite gBattleAnimSpriteTemplate_83DAD60, 2, 0, 32, -42, 25, 5 createsprite gBattleAnimSpriteTemplate_83DAD60, 2, -25, 32, -48, 30, 4 waitforvisualfinish - createsprite gBattleAnimSpriteTemplate_83C1FF8, 2, 0, 16, 0, 0, 4 + createsprite gSlideMonToOffsetSpriteTemplate, 2, 0, 16, 0, 0, 4 delay 3 playsewithpan SE_W120, 63 createsprite gBasicHitSplatSpriteTemplate, 3, 0, 0, 1, 1 - createvisualtask sub_80A7FA0, 2, 1, 3, 0, 6, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_TARGET, 3, 0, 6, 1 waitforvisualfinish - createsprite gBattleAnimSpriteTemplate_83C1FE0, 2, 0, 0, 7 + createsprite gSlideMonToOriginalPosSpriteTemplate, 2, 0, 0, 7 waitforvisualfinish clearmonbg ANIM_BANK_DEF_PARTNER blendoff @@ -6975,8 +6975,8 @@ Move_LEER: @ 81D121A createvisualtask sub_80A8D34, 5, -5, -5, 10, 0, 1 waitforvisualfinish delay 10 - createvisualtask sub_80A7FA0, 2, 1, 1, 0, 9, 1 - createvisualtask sub_80A7FA0, 2, 3, 1, 0, 9, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_TARGET, 1, 0, 9, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_DEF_PARTNER, 1, 0, 9, 1 waitforvisualfinish clearmonbg ANIM_BANK_ATTACKER blendoff @@ -6988,7 +6988,7 @@ Move_DREAM_EATER: @ 81D1271 loadspritegfx 10147 loadspritegfx 10031 monbg ANIM_BANK_DEF_PARTNER - monbgprio_2A 1 + monbgprio_2A ANIM_BANK_TARGET playsewithpan SE_W060, 192 call Unknown_81D61E7 setalpha 8, 8 @@ -7086,7 +7086,7 @@ Move_POISON_GAS: @ 81D1474 end Move_BIND: @ 81D1552 - createvisualtask sub_80A8B88, 5, 0, 6, 3328, 4, 0 + createvisualtask AnimTask_SwayMon, 5, 0, 6, 3328, 4, 0 goto _81D1568 _81D1568: playsewithpan SE_W020, 63 @@ -7100,7 +7100,7 @@ _81D1578: return Move_WRAP: @ 81D158C - createvisualtask sub_80A8500, 2, 0, 6, 4, 2, 4 + createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_BANK_ATTACKER, 6, 4, 2, 4 goto _81D1568 Move_PSYBEAM: @ 81D15A2 @@ -7110,7 +7110,7 @@ Move_PSYBEAM: @ 81D15A2 createsoundtask sub_812B058, 200, -64, 63, 3, 4, 0, 15 call _81D1626 call _81D1626 - createvisualtask sub_80A8B88, 5, 0, 6, 2048, 4, 1 + createvisualtask AnimTask_SwayMon, 5, 0, 6, 2048, 4, 1 createvisualtask sub_80E1F8C, 2, 4, 2, 2, 0, 12, 32351 call _81D1626 call _81D1626 @@ -7186,7 +7186,7 @@ Move_ZAP_CANNON: @ 81D1722 createsprite gBattleAnimSpriteTemplate_83D98A0, 132, 10, 0, 8, 30, 160, 40, 0 createsprite gBattleAnimSpriteTemplate_83D98A0, 132, 10, 0, 8, 30, 224, 40, 2 waitforvisualfinish - createvisualtask sub_80A7FA0, 2, 1, 4, 0, 5, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_TARGET, 4, 0, 5, 1 delay 15 waitplaysewithpan SE_W085B, 63, 19 call Unknown_81D6100 @@ -7203,18 +7203,18 @@ Move_STEEL_WING: @ 81D1807 monbgprio_28 1 setalpha 12, 8 loopsewithpan SE_W017, 192, 20, 2 - createvisualtask sub_80A8408, 2, 0, 12, 4, 1, 4 + createvisualtask AnimTask_TranslateMonElliptical, 2, ANIM_BANK_ATTACKER, 12, 4, 1, 4 createvisualtask sub_80DA09C, 5, 1, 70 createsprite gBattleAnimSpriteTemplate_83DA3B4, 2, -25, 0, 0, 0, 20 createsprite gBattleAnimSpriteTemplate_83DA3B4, 2, 25, 0, 0, 0, 20 delay 24 - createsprite gBattleAnimSpriteTemplate_83C1FF8, 2, 0, 24, 0, 0, 9 + createsprite gSlideMonToOffsetSpriteTemplate, 2, 0, 24, 0, 0, 9 delay 17 createsprite gBasicHitSplatSpriteTemplate, 2, 16, 0, 1, 1 createsprite gBasicHitSplatSpriteTemplate, 2, -16, 0, 1, 1 playsewithpan SE_W013, 63 waitforvisualfinish - createsprite gBattleAnimSpriteTemplate_83C1FE0, 2, 0, 0, 11 + createsprite gSlideMonToOriginalPosSpriteTemplate, 2, 0, 0, 11 waitforvisualfinish clearmonbg ANIM_BANK_DEF_PARTNER blendoff @@ -7227,7 +7227,7 @@ Move_IRON_TAIL: @ 81D18B6 waitforvisualfinish monbg ANIM_BANK_TARGET setalpha 12, 8 - createsprite gBattleAnimSpriteTemplate_83C1FB0, 2, 4, 4 + createsprite gHorizontalLungeSpriteTemplate, 2, 4, 4 delay 6 createsprite gBasicHitSplatSpriteTemplate, 130, 0, 0, 1, 2 createvisualtask AnimTask_ShakeMon, 2, ANIM_BANK_TARGET, 3, 0, 6, 1 @@ -7247,7 +7247,7 @@ Move_POISON_TAIL: @ 81D1914 waitforvisualfinish monbg ANIM_BANK_TARGET setalpha 12, 8 - createsprite gBattleAnimSpriteTemplate_83C1FB0, 2, 4, 4 + createsprite gHorizontalLungeSpriteTemplate, 2, 4, 4 delay 6 createsprite gBasicHitSplatSpriteTemplate, 130, 0, 0, 1, 2 createvisualtask AnimTask_ShakeMon, 2, ANIM_BANK_TARGET, 3, 0, 6, 1 @@ -7265,14 +7265,14 @@ Move_METAL_CLAW: @ 81D197A loopsewithpan SE_W231, 192, 28, 2 createvisualtask sub_80E0A4C, 5, 0, 0, 0 waitforvisualfinish - createsprite gBattleAnimSpriteTemplate_83C1FB0, 2, 6, 4 + createsprite gHorizontalLungeSpriteTemplate, 2, 6, 4 delay 2 playsewithpan SE_W013, 63 createsprite gBattleAnimSpriteTemplate_83DB288, 130, -10, -10, 0 createsprite gBattleAnimSpriteTemplate_83DB288, 130, -10, 10, 0 createsprite gBattleAnimSpriteTemplate_83DB428, 2, -4, 1, 10, 3, 1 delay 8 - createsprite gBattleAnimSpriteTemplate_83C1FB0, 2, 6, 4 + createsprite gHorizontalLungeSpriteTemplate, 2, 6, 4 delay 2 playsewithpan SE_W013, 63 createsprite gBattleAnimSpriteTemplate_83DB288, 130, 10, -10, 1 @@ -7291,7 +7291,7 @@ Move_NIGHT_SHADE: @ 81D1A0D playsewithpan SE_W043, 192 createvisualtask sub_80DDDF0, 5, 85 delay 70 - createvisualtask sub_80A7FA0, 2, 1, 2, 0, 12, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_TARGET, 2, 0, 12, 1 createvisualtask sub_80E1F8C, 2, 4, 0, 2, 0, 13, 0 waitforvisualfinish clearmonbg ANIM_BANK_ATTACKER @@ -7306,7 +7306,7 @@ Move_EGG_BOMB: @ 81D1A55 playsewithpan SE_W039, 192 createsprite gBattleAnimSpriteTemplate_83D7594, 130, 10, 0, 0, 0, 25, -32 waitforvisualfinish - createvisualtask sub_80A7FA0, 2, 1, 4, 0, 16, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_TARGET, 4, 0, 16, 1 createsprite gBattleAnimSpriteTemplate_83D7828, 132, 6, 5, 1, 0 playsewithpan SE_W120, 63 delay 3 @@ -7334,7 +7334,7 @@ Move_SHADOW_BALL: @ 81D1AEF createsprite gBattleAnimSpriteTemplate_83DAEA8, 130, 16, 16, 8 waitforvisualfinish playsewithpan SE_W028, 63 - createvisualtask sub_80A7FA0, 2, 1, 4, 0, 8, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_TARGET, 4, 0, 8, 1 waitforvisualfinish restorebg waitbgfadein @@ -7345,7 +7345,7 @@ Move_LICK: @ 81D1B32 delay 15 playsewithpan SE_W122, 63 createsprite gBattleAnimSpriteTemplate_83DAEDC, 130, 0, 0 - createvisualtask sub_80A7FA0, 2, 1, 1, 0, 16, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_TARGET, 1, 0, 16, 1 waitforvisualfinish end @@ -7355,7 +7355,7 @@ Move_FOCUS_ENERGY: @ 81D1B59 call EndureFlamesAnim delay 8 createvisualtask sub_80E1F8C, 2, 2, 2, 2, 0, 11, 32767 - createvisualtask sub_80A7FA0, 2, 0, 1, 0, 32, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_ATTACKER, 1, 0, 32, 1 call EndureFlamesAnim delay 8 call EndureFlamesAnim @@ -7368,7 +7368,7 @@ Move_BIDE: @ 81D1B99 _81D1BA3: loopsewithpan SE_W036, 192, 9, 2 createvisualtask sub_80E1F8C, 2, 2, 2, 2, 0, 11, 31 - createvisualtask sub_80A7FA0, 2, 0, 1, 0, 32, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_ATTACKER, 1, 0, 32, 1 waitforvisualfinish end _81D1BCF: @@ -7377,12 +7377,12 @@ _81D1BCF: setalpha 12, 8 loopsewithpan SE_W036, 192, 9, 2 createvisualtask sub_80E2A38, 10, 2, 2, 0, 11, 31 - createvisualtask sub_80A7FA0, 2, 0, 1, 0, 32, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_ATTACKER, 1, 0, 32, 1 waitforvisualfinish - createsprite gBattleAnimSpriteTemplate_83C1FF8, 2, 0, 24, 0, 0, 4 + createsprite gSlideMonToOffsetSpriteTemplate, 2, 0, 24, 0, 0, 4 waitforvisualfinish - createvisualtask sub_80A8154, 2, 0, 2, 0, 12, 1 - createvisualtask sub_80A7FA0, 2, 1, 3, 0, 16, 1 + createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_BANK_ATTACKER, 2, 0, 12, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_TARGET, 3, 0, 16, 1 playsewithpan SE_W004, 63 createsprite gBasicHitSplatSpriteTemplate, 1, 18, -8, 1, 1 delay 5 @@ -7393,7 +7393,7 @@ _81D1BCF: createsprite gBasicHitSplatSpriteTemplate, 1, -8, -5, 1, 1 waitforvisualfinish delay 5 - createsprite gBattleAnimSpriteTemplate_83C1FE0, 2, 0, 0, 7 + createsprite gSlideMonToOriginalPosSpriteTemplate, 2, 0, 0, 7 waitforvisualfinish createvisualtask sub_80E2A38, 10, 2, 2, 11, 0, 31 waitforvisualfinish @@ -7510,8 +7510,8 @@ _81D1E66: createsprite gBattleAnimSpriteTemplate_83DA3E4, 2, 14, 12, -16, -14, 22, 0, 1 delay 17 playsewithpan SE_W013, 63 - createvisualtask sub_80A7FA0, 2, 1, 2, 0, 10, 1 - createvisualtask sub_80A7FA0, 2, 3, 2, 0, 10, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_TARGET, 2, 0, 10, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_DEF_PARTNER, 2, 0, 10, 1 waitforvisualfinish clearmonbg ANIM_BANK_TARGET blendoff @@ -7595,7 +7595,7 @@ Move_CONSTRICT: @ 81D2013 delay 7 createsprite gBattleAnimSpriteTemplate_83D65A0, 131, 0, -8, 1, 2 delay 8 - createvisualtask sub_80A7FA0, 2, 1, 3, 0, 6, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_TARGET, 3, 0, 6, 1 delay 20 playsewithpan SE_W020, 63 setarg 7, -1 @@ -7624,18 +7624,18 @@ _81D2084: monbg ANIM_BANK_DEF_PARTNER playsewithpan SE_W171, 63 createsprite gBattleAnimSpriteTemplate_83DAF38, 130 - createvisualtask sub_80A7FA0, 2, 1, 2, 0, 14, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_TARGET, 2, 0, 14, 1 waitforvisualfinish createsprite gBattleAnimSpriteTemplate_83DB3C4, 2, 1, 1, 16, 0, 0 waitforvisualfinish clearmonbg ANIM_BANK_DEF_PARTNER end _81D20EB: - createvisualtask sub_80A7FA0, 2, 0, 4, 0, 10, 0 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_ATTACKER, 4, 0, 10, 0 playsewithpan SE_W020, 192 return _81D2101: - createvisualtask sub_80A8B88, 5, 0, 10, 1536, 3, 0 + createvisualtask AnimTask_SwayMon, 5, 0, 10, 1536, 3, 0 waitforvisualfinish delay 10 call _81D211C @@ -7722,7 +7722,7 @@ Move_FAKE_OUT: @ 81D23A8 createvisualtask sub_80D1CD0, 5 waitforvisualfinish playsewithpan SE_W166, 63 - createvisualtask sub_80A7FA0, 2, 1, 4, 0, 5, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_TARGET, 4, 0, 5, 1 createvisualtask sub_80D1E38, 3 waitforvisualfinish createsprite gBattleAnimSpriteTemplate_83DB3C4, 2, 1, 3, 16, 0, 32767 @@ -7780,17 +7780,17 @@ Move_LOVELY_KISS: @ 81D24AF Move_FURY_SWIPES: @ 81D24F6 loadspritegfx 10222 - createsprite gBattleAnimSpriteTemplate_83C1FB0, 2, 5, 5 + createsprite gHorizontalLungeSpriteTemplate, 2, 5, 5 delay 4 playsewithpan SE_W010, 63 createsprite gBattleAnimSpriteTemplate_83D7C48, 130, 16, 0, 1 - createvisualtask sub_80A7FA0, 2, 1, 3, 0, 5, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_TARGET, 3, 0, 5, 1 delay 10 - createsprite gBattleAnimSpriteTemplate_83C1FB0, 130, 5, 5 + createsprite gHorizontalLungeSpriteTemplate, 130, 5, 5 delay 4 playsewithpan SE_W010, 63 createsprite gBattleAnimSpriteTemplate_83D7C48, 130, -16, 0, 0 - createvisualtask sub_80A7FA0, 2, 1, 4, 0, 7, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_TARGET, 4, 0, 7, 1 end Move_INGRAIN: @ 81D255A @@ -7926,7 +7926,7 @@ Move_PERISH_SONG: @ 81D2784 Move_SLEEP_TALK: @ 81D28ED loadspritegfx 10228 - createvisualtask sub_80A8B88, 5, 0, 4, 4096, 2, 0 + createvisualtask AnimTask_SwayMon, 5, 0, 4, 4096, 2, 0 delay 20 createsprite gBattleAnimSpriteTemplate_84022F0, 130, 0, 20, 5, -1 playsewithpan SE_W173, 192 @@ -8035,7 +8035,7 @@ Move_WILL_O_WISP: @ 81D2B83 loadspritegfx 10232 loadspritegfx 10231 monbg ANIM_BANK_DEF_PARTNER - monbgprio_2A 1 + monbgprio_2A ANIM_BANK_TARGET playsewithpan SE_W052, 192 waitplaysewithpan SE_W052, 192, 10 createvisualtask sub_812B374, 2, -64, -64, 1, 0 @@ -8051,7 +8051,7 @@ Move_WILL_O_WISP: @ 81D2B83 waitforvisualfinish monbgprio_29 playsewithpan SE_W172B, 63 - createvisualtask sub_80A7FA0, 2, 1, 4, 0, 13, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_TARGET, 4, 0, 13, 1 createsprite gBattleAnimSpriteTemplate_83D977C, 2, 0 createsprite gBattleAnimSpriteTemplate_83D977C, 2, 42 createsprite gBattleAnimSpriteTemplate_83D977C, 2, 84 @@ -8075,7 +8075,7 @@ Move_ENCORE: @ 81D2C41 createsprite gBattleAnimSpriteTemplate_84023BC, 3, 2, 0, 1, 0, 9 delay 16 createvisualtask sub_812B340, 5, 223, 63 - createvisualtask sub_80A8B88, 5, 1, 8, 1536, 5, 1 + createvisualtask AnimTask_SwayMon, 5, 1, 8, 1536, 5, 1 waitforvisualfinish createvisualtask sub_80E2D78, 2, 248, 3, 10, 0, 1 waitforvisualfinish @@ -8160,7 +8160,7 @@ Move_SPIT_UP: @ 81D2E65 loadspritegfx 10135 playsewithpan SE_W036, 192 createvisualtask sub_812D6CC, 5 - createvisualtask sub_80A7FA0, 2, 0, 1, 0, 8, 2 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_ATTACKER, 1, 0, 8, 2 delay 45 playsewithpan SE_W255, 192 delay 3 @@ -8207,10 +8207,10 @@ Move_SWALLOW: @ 81D2FA8 loadspritegfx 10031 playsewithpan SE_W036, 192 createvisualtask sub_812D790, 5 - createvisualtask sub_80A7FA0, 2, 0, 1, 0, 8, 2 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_ATTACKER, 1, 0, 8, 2 delay 38 playsewithpan SE_W255, 192 - createvisualtask sub_80A7FA0, 2, 0, 2, 0, 12, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_ATTACKER, 2, 0, 12, 1 call _81D2FF9 jumpifmoveturn 2, _81D303B jumpifmoveturn 3, _81D3045 @@ -8323,7 +8323,7 @@ Move_HYPER_BEAM: @ 81D31EA waitforvisualfinish delay 10 playsewithpan SE_W063, 192 - createvisualtask sub_80A7FA0, 2, 0, 1, 0, 4, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_ATTACKER, 1, 0, 4, 1 waitforvisualfinish delay 30 createsoundtask sub_812B058, 247, -64, 63, 1, 15, 0, 5 @@ -8334,7 +8334,7 @@ Move_HYPER_BEAM: @ 81D31EA call _81D331B call _81D331B call _81D331B - createvisualtask sub_80A7FA0, 2, 1, 4, 0, 50, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_TARGET, 4, 0, 50, 1 createvisualtask sub_80E2A38, 10, 4, 2, 0, 11, 26425 call _81D331B call _81D331B @@ -8376,9 +8376,9 @@ Move_FLATTER: @ 81D332C waitforvisualfinish createsprite gBattleAnimSpriteTemplate_8402720, 130, 0, -8, 80 delay 0 - createsprite gBattleAnimSpriteTemplate_83C1FC8, 2, 5, 2, 1 + createsprite gVerticalDipSpriteTemplate, 2, 5, 2, ANIM_BANK_TARGET delay 10 - createsprite gBattleAnimSpriteTemplate_83C1FC8, 2, 5, 2, 1 + createsprite gVerticalDipSpriteTemplate, 2, 5, 2, ANIM_BANK_TARGET delay 0 createvisualtask sub_812B30C, 5, 229, -64 call _81D3415 @@ -8453,7 +8453,7 @@ Move_BLAZE_KICK: @ 81D34C8 delay 30 playsewithpan SE_W007, 63 createsprite gBasicHitSplatSpriteTemplate, 130, 0, 0, 1, 0 - createvisualtask sub_80A7FA0, 2, 1, 3, 0, 14, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_TARGET, 3, 0, 14, 1 createvisualtask sub_80E2A38, 10, 4, 2, 0, 0, 32767 createsprite gBattleAnimSpriteTemplate_83DB3DC, 2, 31, 3, 1, 0, 8, 0, 0 call _81D11A2 @@ -8475,8 +8475,8 @@ _81D3562: createsprite gBattleAnimSpriteTemplate_83DB3C4, 2, 31, 3, 8, 0, 1023 createvisualtask sub_80A8D34, 5, -5, -5, 5, 0, 0 createsprite gBattleAnimSpriteTemplate_83D798C, 0, 45, 0, 0, 0, 0, 0, 1 - createvisualtask sub_80A7FA0, 2, 1, 1, 0, 6, 1 - createvisualtask sub_80A7FA0, 2, 3, 1, 0, 6, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_TARGET, 1, 0, 6, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_DEF_PARTNER, 1, 0, 6, 1 createvisualtask sub_80E26BC, 2, 1, 0, 6, 1 return @@ -8532,7 +8532,7 @@ Move_ARM_THRUST: @ 81D36CF setalpha 12, 8 createvisualtask sub_80A8E04, 5, 8, 5, 0, 0 delay 6 - createsprite gBattleAnimSpriteTemplate_83C1FB0, 2, 4, 3 + createsprite gHorizontalLungeSpriteTemplate, 2, 4, 3 delay 4 playsewithpan SE_W207, 63 createsprite gBattleAnimSpriteTemplate_83DA144, 130, 10, -8, 14, 3 @@ -8566,7 +8566,7 @@ Move_BULLET_SEED: @ 81D3776 delay 5 createsprite gBattleAnimSpriteTemplate_83D7628, 130, 20, 0 delay 5 - createvisualtask sub_80A7FA0, 2, 1, 2, 0, 30, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_TARGET, 2, 0, 30, 1 createsprite gBattleAnimSpriteTemplate_83D7628, 130, 20, 0 delay 5 createsprite gBattleAnimSpriteTemplate_83D7628, 130, 20, 0 @@ -8591,7 +8591,7 @@ Move_DRAGON_CLAW: @ 81D380C createvisualtask AnimTask_ShakeMon, 5, 0, 0, 2, 15, 1 call _81D39E9 call _81D39E9 - createsprite gBattleAnimSpriteTemplate_83C1FB0, 2, 6, 4 + createsprite gHorizontalLungeSpriteTemplate, 2, 6, 4 createsprite gBattleAnimSpriteTemplate_83DACD0, 2, 0, 28, 528, 30, 13, 50, 0 delay 2 createvisualtask sub_812B30C, 5, 136, 63 @@ -8604,7 +8604,7 @@ Move_DRAGON_CLAW: @ 81D380C delay 2 createsprite gBattleAnimSpriteTemplate_83DACD0, 2, 0, 31, 400, 25, 11, -42, 0 delay 2 - createsprite gBattleAnimSpriteTemplate_83C1FB0, 2, 6, 4 + createsprite gHorizontalLungeSpriteTemplate, 2, 6, 4 createsprite gBattleAnimSpriteTemplate_83DACD0, 2, 0, 28, 512, 25, 16, 46, 0 delay 2 createvisualtask sub_812B30C, 5, 136, 63 @@ -8694,7 +8694,7 @@ Move_METEOR_MASH: @ 81D3B12 delay 20 playsewithpan SE_W233B, 63 createsprite gBasicHitSplatSpriteTemplate, 131, 0, 0, 1, 1 - createvisualtask sub_80A7FA0, 2, 1, 5, 0, 20, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_TARGET, 5, 0, 20, 1 waitforvisualfinish delay 10 restorebg @@ -8713,14 +8713,14 @@ Move_REVENGE: @ 81D3B99 waitforvisualfinish unloadspritegfx 10245 loadspritegfx 10246 - createsprite gBattleAnimSpriteTemplate_83C1FB0, 2, 6, 4 + createsprite gHorizontalLungeSpriteTemplate, 2, 6, 4 delay 4 playsewithpan SE_W207, 63 createsprite gBattleAnimSpriteTemplate_83DA1E0, 130, 10, -10 waitforvisualfinish unloadspritegfx 10246 loadspritegfx 10135 - createvisualtask sub_80A7FA0, 2, 1, 3, 0, 10, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_TARGET, 3, 0, 10, 1 createsprite gBattleAnimSpriteTemplate_83DB550, 131, -10, -8, 1, 1, 8 playsewithpan SE_W233B, 63 delay 8 @@ -8812,8 +8812,8 @@ Move_FRENZY_PLANT: @ 81D3C7B Move_METAL_SOUND: @ 81D3E1F loadspritegfx 10260 monbg ANIM_BANK_DEF_PARTNER - monbgprio_2A 1 - createvisualtask sub_80A7FA0, 2, 0, 2, 0, 8, 1 + monbgprio_2A ANIM_BANK_TARGET + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_ATTACKER, 2, 0, 8, 1 call _81D3E52 call _81D3E52 call _81D3E52 @@ -8893,39 +8893,39 @@ _81D3F67: blendoff end _81D3F6C: - createsprite gBattleAnimSpriteTemplate_83C1FC8, 2, 16, 1, 0 + createsprite gVerticalDipSpriteTemplate, 2, 16, 1, ANIM_BANK_ATTACKER createvisualtask sub_812B340, 5, 167, -64 waitforvisualfinish - createsprite gBattleAnimSpriteTemplate_83C1FC8, 2, 16, 1, 0 + createsprite gVerticalDipSpriteTemplate, 2, 16, 1, ANIM_BANK_ATTACKER createvisualtask sub_812B340, 5, 167, -64 delay 5 createsprite gBasicHitSplatSpriteTemplate, 2, -10, -8, 1, 2 createvisualtask sub_812B30C, 5, 139, 63 goto _81D3F67 _81D3FBE: - createsprite gBattleAnimSpriteTemplate_83C1FC8, 2, 6, 1, 0 + createsprite gVerticalDipSpriteTemplate, 2, 6, 1, ANIM_BANK_ATTACKER createvisualtask sub_812B340, 5, 167, -64 waitforvisualfinish - createsprite gBattleAnimSpriteTemplate_83C1FC8, 2, 6, 1, 0 + createsprite gVerticalDipSpriteTemplate, 2, 6, 1, ANIM_BANK_ATTACKER createvisualtask sub_812B340, 5, 167, -64 waitforvisualfinish delay 11 - createsprite gBattleAnimSpriteTemplate_83C1FB0, 2, 5, 4 + createsprite gHorizontalLungeSpriteTemplate, 2, 5, 4 delay 6 createsprite gBasicHitSplatSpriteTemplate, 3, 0, 0, 1, 2 createvisualtask sub_812B30C, 5, 141, 63 goto _81D3F67 _81D401E: - createsprite gBattleAnimSpriteTemplate_83C1FC8, 2, 6, 1, 0 + createsprite gVerticalDipSpriteTemplate, 2, 6, 1, ANIM_BANK_ATTACKER createvisualtask sub_812B340, 5, 167, -64 waitforvisualfinish - createsprite gBattleAnimSpriteTemplate_83C1FC8, 2, 6, 1, 0 + createsprite gVerticalDipSpriteTemplate, 2, 6, 1, ANIM_BANK_ATTACKER createvisualtask sub_812B340, 5, 167, -64 waitforvisualfinish - createsprite gBattleAnimSpriteTemplate_83C1FC8, 2, 6, 1, 0 + createsprite gVerticalDipSpriteTemplate, 2, 6, 1, ANIM_BANK_ATTACKER createvisualtask sub_812B340, 5, 167, -64 waitforvisualfinish - createsprite gBattleAnimSpriteTemplate_83C1FC8, 2, 6, 1, 0 + createsprite gVerticalDipSpriteTemplate, 2, 6, 1, ANIM_BANK_ATTACKER createvisualtask sub_812B340, 5, 167, -64 waitforvisualfinish createsprite gBasicHitSplatSpriteTemplate, 2, -10, -8, 1, 2 @@ -8947,13 +8947,13 @@ _81D401E: _81D4139: createsprite gBattleAnimSpriteTemplate_83DB3C4, 2, 1, 0, 0, 6, 0 waitforvisualfinish - createsprite gBattleAnimSpriteTemplate_83C1FC8, 2, 16, 1, 0 + createsprite gVerticalDipSpriteTemplate, 2, 16, 1, ANIM_BANK_ATTACKER createvisualtask sub_812B340, 5, 167, -64 delay 8 createsprite gBasicHitSplatSpriteTemplate, 2, 3, -5, 1, 2 createvisualtask sub_812B30C, 5, 123, 63 waitforvisualfinish - createsprite gBattleAnimSpriteTemplate_83C1FC8, 2, 12, 1, 0 + createsprite gVerticalDipSpriteTemplate, 2, 12, 1, ANIM_BANK_ATTACKER createvisualtask sub_812B340, 5, 167, -64 delay 5 createsprite gBasicHitSplatSpriteTemplate, 2, -10, -8, 1, 2 @@ -8961,7 +8961,7 @@ _81D4139: createvisualtask AnimTask_ShakeMon, 5, 1, 6, 0, 8, 1 waitforvisualfinish delay 4 - createsprite gBattleAnimSpriteTemplate_83C1FC8, 2, 8, 1, 0 + createsprite gVerticalDipSpriteTemplate, 2, 8, 1, ANIM_BANK_ATTACKER createvisualtask sub_812B340, 5, 167, -64 delay 5 createsprite gBasicHitSplatSpriteTemplate, 2, -10, -8, 1, 2 @@ -8970,14 +8970,14 @@ _81D4139: waitforvisualfinish delay 2 createvisualtask sub_80E2DD8, 2, 0, 4, 5, 1 - createsprite gBattleAnimSpriteTemplate_83C1FC8, 2, 4, 1, 0 + createsprite gVerticalDipSpriteTemplate, 2, 4, 1, ANIM_BANK_ATTACKER createvisualtask sub_812B340, 5, 167, -64 createsprite gBasicHitSplatSpriteTemplate, 2, -10, -8, 1, 2 createvisualtask sub_812B30C, 5, 123, 63 createvisualtask AnimTask_ShakeMon, 5, 1, 6, 0, 8, 1 createvisualtask sub_80E2DD8, 2, 0, 4, 5, 1 waitforvisualfinish - createsprite gBattleAnimSpriteTemplate_83C1FC8, 2, 4, 2, 0 + createsprite gVerticalDipSpriteTemplate, 2, 4, 2, ANIM_BANK_ATTACKER createvisualtask sub_812B340, 5, 167, -64 delay 5 createsprite gBasicHitSplatSpriteTemplate, 2, -10, -8, 1, 2 @@ -9005,7 +9005,7 @@ _81D4139: createsprite gBattleAnimSpriteTemplate_83DB3C4, 2, 1, 0, 6, 0, 0 goto _81D3F67 _81D4371: - createsprite gBattleAnimSpriteTemplate_83C1FC8, 2, 4, 3, 0 + createsprite gVerticalDipSpriteTemplate, 2, 4, 3, ANIM_BANK_ATTACKER createvisualtask sub_812B340, 5, 167, -64 createsprite gBasicHitSplatSpriteTemplate, 2, 0, 0, 1, 2 createvisualtask sub_812B30C, 5, 123, 63 @@ -9226,7 +9226,7 @@ _81D4A48: Move_ROCK_BLAST: @ 81D4A5F loadspritegfx 10058 loadspritegfx 10135 - createsprite gBattleAnimSpriteTemplate_83C1FB0, 2, 4, 6 + createsprite gHorizontalLungeSpriteTemplate, 2, 4, 6 delay 3 playsewithpan SE_W207, 192 createsprite gBattleAnimSpriteTemplate_83DADE8, 130, 16, 0, 0, 0, 25, 257 @@ -9363,12 +9363,12 @@ _81D4EA8: Move_ASTONISH: @ 81D4F10 loadspritegfx 10273 playsewithpan SE_W227, 192 - createsprite gBattleAnimSpriteTemplate_83C1FB0, 2, 4, 6 + createsprite gHorizontalLungeSpriteTemplate, 2, 4, 6 delay 25 createsprite gBattleAnimSpriteTemplate_83DA62C, 133, 0, 1 playsewithpan SE_W166, 63 createsprite gBattleAnimSpriteTemplate_83DA62C, 133, 1, 1 - createvisualtask sub_80A7FA0, 2, 1, 4, 0, 5, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_TARGET, 4, 0, 5, 1 createvisualtask sub_80D1E38, 3 waitforvisualfinish end @@ -9500,7 +9500,7 @@ Move_PSYCHO_BOOST: @ 81D51C7 delay 110 loopsewithpan SE_W060B, 192, 7, 10 waitforvisualfinish - createvisualtask sub_80A7FA0, 2, 1, -8, 1, 24, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_TARGET, -8, 1, 24, 1 playsewithpan SE_W043, 63 waitforvisualfinish clearmonbg ANIM_BANK_ATK_PARTNER @@ -9511,7 +9511,7 @@ Move_PSYCHO_BOOST: @ 81D51C7 Move_KNOCK_OFF: @ 81D523B loadspritegfx 10277 loadspritegfx 10135 - createsprite gBattleAnimSpriteTemplate_83C1FB0, 2, 4, 6 + createsprite gHorizontalLungeSpriteTemplate, 2, 4, 6 delay 4 playsewithpan SE_W233, 63 createsprite gBattleAnimSpriteTemplate_8402AE4, 130, -16, -16 @@ -9519,12 +9519,12 @@ Move_KNOCK_OFF: @ 81D523B createsprite gBattleAnimSpriteTemplate_83DB3DC, 2, 31, 5, 1, 32767, 10, 0, 0 createsprite gBasicHitSplatSpriteTemplate, 131, 0, 0, 1, 2 playsewithpan SE_W004, 63 - createsprite gBattleAnimSpriteTemplate_83C1FF8, 2, 1, -12, 10, 0, 3 - createsprite gBattleAnimSpriteTemplate_83C1FE0, 2, 0, 0, 5 + createsprite gSlideMonToOffsetSpriteTemplate, 2, 1, -12, 10, 0, 3 + createsprite gSlideMonToOriginalPosSpriteTemplate, 2, 0, 0, 5 delay 3 - createvisualtask sub_80A8154, 2, 1, 0, 3, 6, 1 + createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_BANK_TARGET, 0, 3, 6, 1 delay 5 - createsprite gBattleAnimSpriteTemplate_83C1FE0, 2, 1, 0, 6 + createsprite gSlideMonToOriginalPosSpriteTemplate, 2, 1, 0, 6 delay 10 waitforvisualfinish end @@ -9561,7 +9561,7 @@ Unknown_81D532F: @ 81D532F delay 10 playsewithpan SE_W109, 63 delay 23 - createvisualtask sub_80A8154, 2, 1, 10, 0, 20, 1 + createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_BANK_TARGET, 10, 0, 20, 1 playsewithpan SE_W120, 63 createsprite gBattleAnimSpriteTemplate_83D7828, 3, 0, 0, 1, 1 delay 6 @@ -9592,9 +9592,9 @@ Move_SKY_UPPERCUT: @ 81D53ED waitbgfadein setalpha 12, 8 delay 38 - createsprite gBattleAnimSpriteTemplate_83C1FF8, 2, 0, 28, 0, 0, 5 + createsprite gSlideMonToOffsetSpriteTemplate, 2, 0, 28, 0, 0, 5 delay 4 - createvisualtask sub_80A7FA0, 2, 1, 4, 0, 6, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_TARGET, 4, 0, 6, 1 playsewithpan SE_W233B, 63 createsprite gBasicHitSplatSpriteTemplate, 131, -28, 28, 1, 1 delay 1 @@ -9610,13 +9610,13 @@ Move_SKY_UPPERCUT: @ 81D53ED delay 1 playsewithpan SE_W233B, 63 createsprite gBasicHitSplatSpriteTemplate, 131, 5, -52, 1, 1 - createsprite gBattleAnimSpriteTemplate_83C1FF8, 2, 1, -26, 16, 1, 4 + createsprite gSlideMonToOffsetSpriteTemplate, 2, 1, -26, 16, 1, 4 delay 4 - createvisualtask sub_80A8154, 2, 1, 0, 3, 6, 1 + createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_BANK_TARGET, 0, 3, 6, 1 delay 30 - createsprite gBattleAnimSpriteTemplate_83C1FE0, 2, 0, 0, 6 + createsprite gSlideMonToOriginalPosSpriteTemplate, 2, 0, 0, 6 delay 4 - createsprite gBattleAnimSpriteTemplate_83C1FE0, 2, 1, 0, 6 + createsprite gSlideMonToOriginalPosSpriteTemplate, 2, 1, 0, 6 clearmonbg ANIM_BANK_DEF_PARTNER blendoff restorebg @@ -9668,8 +9668,8 @@ Move_TWISTER: @ 81D553A waitforvisualfinish createsprite gBasicHitSplatSpriteTemplate, 131, -32, -16, 1, 3 playsewithpan SE_W004, 63 - createvisualtask sub_80A8154, 2, 1, 3, 0, 12, 1 - createvisualtask sub_80A8154, 2, 3, 3, 0, 12, 1 + createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_BANK_TARGET, 3, 0, 12, 1 + createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_BANK_DEF_PARTNER, 3, 0, 12, 1 delay 4 createsprite gBattleAnimSpriteTemplate_83DB4F0, 131, 1, 3 playsewithpan SE_W004, 63 @@ -9720,7 +9720,7 @@ Move_MAGICAL_LEAF: @ 81D5699 playsewithpan SE_W013, 63 createsprite gBasicHitSplatSpriteTemplate, 132, -10, -4, 1, 2 createsprite gBasicHitSplatSpriteTemplate, 132, 10, 4, 1, 2 - createvisualtask sub_80A7FA0, 2, 1, 2, 0, 8, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_TARGET, 2, 0, 8, 1 delay 20 setarg 7, -1 waitforvisualfinish @@ -9820,7 +9820,7 @@ _81D597D: Move_WEATHER_BALL: @ 81D5989 loadspritegfx 10283 - createsprite gBattleAnimSpriteTemplate_83C1FC8, 2, 8, 1, 0 + createsprite gVerticalDipSpriteTemplate, 2, 8, 1, ANIM_BANK_ATTACKER delay 8 playsewithpan SE_W207, 192 createsprite gBattleAnimSpriteTemplate_83930A8, 2 @@ -9891,7 +9891,7 @@ _81D5AF9: createsprite gBattleAnimSpriteTemplate_83DAE00, 130, 8, 28, 3, 4 createsprite gBattleAnimSpriteTemplate_83DAE00, 130, -4, 30, 2, 3 createsprite gBattleAnimSpriteTemplate_83DAE00, 130, 12, 25, 4, 4 - createvisualtask sub_80A7FA0, 2, 1, 2, 0, 8, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_TARGET, 2, 0, 8, 1 waitforvisualfinish end _81D5B99: @@ -9906,7 +9906,7 @@ _81D5B99: createsprite gBattleAnimSpriteTemplate_83D9E54, 130, -30, -100, 25, 25, 0, 0 playsewithpan SE_W258, 63 waitforvisualfinish - createvisualtask sub_80A7FA0, 2, 1, 2, 0, 8, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_TARGET, 2, 0, 8, 1 playsewithpan SE_W196, 63 call Unknown_81D5C36 waitforvisualfinish @@ -10212,7 +10212,7 @@ Unknown_81D626D: @ 81D626D StatusCondition_Poison: @ 81D6270 loopsewithpan SE_W092, 63, 13, 6 - createvisualtask sub_80A7FA0, 2, 0, 1, 0, 18, 2 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_ATTACKER, 1, 0, 18, 2 createvisualtask sub_80E1F8C, 2, 2, 2, 2, 0, 12, 31774 end @@ -10256,7 +10256,7 @@ StatusCondition_Sleep: @ 81D6309 StatusCondition_Paralysis: @ 81D6335 loadspritegfx 10011 - createvisualtask sub_80A7FA0, 2, 0, 1, 0, 10, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_ATTACKER, 1, 0, 10, 1 call Unknown_81D6100 end @@ -10276,7 +10276,7 @@ StatusCondition_Curse: @ 81D636A monbg ANIM_BANK_DEF_PARTNER playsewithpan SE_W171, 63 createsprite gBattleAnimSpriteTemplate_83DAF38, 130 - createvisualtask sub_80A7FA0, 2, 1, 2, 0, 14, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_TARGET, 2, 0, 14, 1 waitforvisualfinish clearmonbg ANIM_BANK_DEF_PARTNER end @@ -10286,7 +10286,7 @@ StatusCondition_Nightmare: @ 81D638F monbg ANIM_BANK_DEF_PARTNER playsewithpan SE_W171, 63 createsprite gBattleAnimSpriteTemplate_83DAF50, 130 - createvisualtask sub_80A7FA0, 2, 1, 2, 0, 14, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_TARGET, 2, 0, 14, 1 waitforvisualfinish clearmonbg ANIM_BANK_DEF_PARTNER end @@ -10337,7 +10337,7 @@ General_PokeblockThrow: @ 81D6438 createsprite gBattleAnimSpriteTemplate_840B4FC, 131, -16, 7, 0, 32 delay 50 loopsewithpan SE_W039, 63, 19, 2 - createvisualtask sub_80A8B88, 5, 1, 8, 1536, 2, 1 + createvisualtask AnimTask_SwayMon, 5, 1, 8, 1536, 2, 1 waitforvisualfinish createvisualtask sub_8141C08, 2 end @@ -10361,7 +10361,7 @@ _81D64B5: delay 7 createsprite gBattleAnimSpriteTemplate_83D65A0, 130, 0, 8, 1, 1 delay 3 - createvisualtask sub_80A7FA0, 2, 1, 2, 0, 8, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_TARGET, 2, 0, 8, 1 delay 20 setarg 7, -1 playsewithpan SE_W020, 63 @@ -10491,7 +10491,7 @@ General_HangedOn: @ 81D676E createsprite gBattleAnimSpriteTemplate_83DB3C4, 0, 2, 4, 9, 0, 31 waitforvisualfinish delay 6 - createsprite gBattleAnimSpriteTemplate_83C1FE0, 0, 0, 0, 15 + createsprite gSlideMonToOriginalPosSpriteTemplate, 0, 0, 0, 15 end General_Rain: @ 81D67BB @@ -10546,7 +10546,7 @@ General_SnatchMove: @ 81D6877 createvisualtask sub_80E4234, 2 call Unknown_81D6AB6 delay 1 - createvisualtask sub_80A8B88, 2, 0, 5, 5120, 4, 1 + createvisualtask AnimTask_SwayMon, 2, 0, 5, 5120, 4, 1 waitforvisualfinish createvisualtask sub_80E4264, 2 jumpargeq 7, 0, _81D68B5 @@ -10598,7 +10598,7 @@ General_DoomDesireHit: @ 81D6934 delay 9 playsewithpan SE_W109, 63 delay 25 - createvisualtask sub_80A8154, 2, 1, 10, 0, 20, 1 + createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_BANK_TARGET, 10, 0, 20, 1 playsewithpan SE_W120, 63 createsprite gBattleAnimSpriteTemplate_83D7828, 3, 0, 0, 1, 1 delay 6 @@ -10624,7 +10624,7 @@ General_FocusPunchSetUp: @ 81D69F9 call EndureFlamesAnim delay 8 createvisualtask sub_80E1F8C, 2, 2, 2, 2, 0, 11, 31 - createvisualtask sub_80A7FA0, 2, 0, 1, 0, 32, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_ATTACKER, 1, 0, 32, 1 call EndureFlamesAnim delay 8 call EndureFlamesAnim diff --git a/include/rom_8077ABC.h b/include/rom_8077ABC.h index ff737135b..ed42871a6 100644 --- a/include/rom_8077ABC.h +++ b/include/rom_8077ABC.h @@ -16,8 +16,8 @@ u8 GetAnimBankSpriteId(u8 side); void StoreSpriteCallbackInData(struct Sprite *sprite, void(*callback)(struct Sprite *)); void sub_8078314(struct Sprite *sprite); void sub_8078364(struct Sprite *sprite); -void sub_8078458(struct Sprite *sprite); -void sub_80784A8(struct Sprite *sprite); +void TranslateMonBGUntil(struct Sprite *sprite); +void TranslateMonBGSubPixelUntil(struct Sprite *sprite); u8 GetBankSide(u8); u8 GetBankSide(u8); u8 GetBankSide(u8 side); @@ -34,11 +34,10 @@ u8 IsDoubleBattle(void); bool8 IsDoubleBattle(void); void sub_8078914(); u8 sub_80789BC(); -void sub_8078A5C(struct Sprite *sprite); -void sub_8078A5C(struct Sprite *sprite); -void obj_translate_based_on_private_1_2_3_4(struct Sprite *sprite); -bool8 sub_8078B5C(struct Sprite *sprite); -void sub_8078BB8(struct Sprite *sprite); +void InitSpriteDataForLinearTranslation(struct Sprite *sprite); +void InitAnimSpriteTranslationDeltas(struct Sprite *sprite); +bool8 TranslateAnimSpriteByDeltas(struct Sprite *sprite); +void TranslateAnimSpriteByDeltasUntil(struct Sprite *sprite); void sub_8078D44(struct Sprite *sprite); void obj_id_set_rotscale(u8 sprite, s16, s16, u16); bool8 sub_8078E38(); @@ -65,9 +64,9 @@ void sub_807A850(struct Task *task, u8 taskId); void sub_807A8D4(struct Sprite *sprite); void sub_807A960(struct Sprite *sprite); void sub_8078A34(struct Sprite *sprite); -void sub_80787B0(struct Sprite *sprite, u8); +void InitAnimSpritePos(struct Sprite *sprite, u8); void sub_8078764(struct Sprite *sprite, u8); -void sub_8078B34(struct Sprite *sprite); +void StartTranslateAnimSpriteByDeltas(struct Sprite *sprite); void sub_8078D60(struct Sprite *sprite); void sub_80786EC(struct Sprite *sprite); void sub_80782D8(struct Sprite *sprite); @@ -83,7 +82,7 @@ void sub_8078C00(struct Sprite *sprite); void sub_8078114(struct Sprite *sprite); void sub_8078174(struct Sprite *sprite); void sub_80793C4(struct Sprite *sprite); -void sub_807A3FC(u8 slot, u8 a2, s16 *a3, s16 *a4); +void SetAverageBattlerPositions(u8 slot, u8 a2, s16 *a3, s16 *a4); u8 sub_8079ED4(u8 slot); s16 sub_807A100(u8 slot, u8 a2); u16 sub_80790F0(s16 a, s16 b); @@ -99,11 +98,11 @@ void sub_80798F4(struct Task *task, u8 a2, const void *a3); bool8 sub_807992C(struct Task *task); u8 sub_8077FC0(u8 slot); void move_anim_8074EE0(struct Sprite *sprite); -bool8 sub_8078718(struct Sprite *sprite); +bool8 TranslateAnimSpriteLinearAndSine(struct Sprite *sprite); bool8 sub_8078CE8(struct Sprite *sprite); void oamt_add_pos2_onto_pos1(struct Sprite *sprite); void sub_8078BD4(struct Sprite *sprite); -void sub_807941C(struct Sprite *sprite); +void TranslateAnimSpriteToTargetMonLocation(struct Sprite *sprite); void sub_80789D4(bool8 a1); void sub_8079AB8(u8 sprite, u8 sprite2); u8 sub_807A4A0(int bank, u8 sprite, int species); diff --git a/src/battle/anim/aurora.c b/src/battle/anim/aurora.c index 90fa5c879..b24809264 100644 --- a/src/battle/anim/aurora.c +++ b/src/battle/anim/aurora.c @@ -16,7 +16,7 @@ void sub_80D33B4(struct Sprite *sprite) { s16 r6; - sub_80787B0(sprite, 1); + InitAnimSpritePos(sprite, 1); if (GetBankSide(gAnimBankAttacker) != 0) r6 = -gBattleAnimArgs[2]; else @@ -26,7 +26,7 @@ void sub_80D33B4(struct Sprite *sprite) sprite->data[2] = GetBankPosition(gAnimBankTarget, 2) + r6; sprite->data[3] = sprite->pos1.y; sprite->data[4] = GetBankPosition(gAnimBankTarget, 3) + gBattleAnimArgs[3]; - obj_translate_based_on_private_1_2_3_4(sprite); + InitAnimSpriteTranslationDeltas(sprite); sprite->callback = sub_80D344C; sprite->affineAnimPaused = TRUE; sprite->callback(sprite); @@ -39,7 +39,7 @@ static void sub_80D344C(struct Sprite *sprite) StartSpriteAnim(sprite, 1); sprite->affineAnimPaused = FALSE; } - if (sub_8078B5C(sprite) != 0) + if (TranslateAnimSpriteByDeltas(sprite) != 0) DestroyAnimSprite(sprite); } diff --git a/src/battle/anim/blow_kiss.c b/src/battle/anim/blow_kiss.c index e7b49471d..f585b74bc 100644 --- a/src/battle/anim/blow_kiss.c +++ b/src/battle/anim/blow_kiss.c @@ -15,19 +15,19 @@ static void sub_80D1FA4(struct Sprite* sprite); void sub_80D1F58(struct Sprite* sprite) { - sub_80787B0(sprite, 1); + InitAnimSpritePos(sprite, 1); sprite->data[0] = 0x5F; sprite->data[1] = sprite->pos1.x; sprite->data[2] = GetBankPosition(gAnimBankTarget, 2); sprite->data[3] = sprite->pos1.y; sprite->data[4] = GetBankPosition(gAnimBankTarget, 3); - obj_translate_based_on_private_1_2_3_4(sprite); + InitAnimSpriteTranslationDeltas(sprite); sprite->callback = sub_80D1FA4; } void sub_80D1FA4(struct Sprite* sprite) { - if (sub_8078B5C(sprite) == 0) + if (TranslateAnimSpriteByDeltas(sprite) == 0) { sprite->pos2.y += Sin(sprite->data[5], 14); sprite->data[5] = (sprite->data[5] + 4) & 0xFF; diff --git a/src/battle/anim/bubble.c b/src/battle/anim/bubble.c index 403003ce3..1252c1315 100644 --- a/src/battle/anim/bubble.c +++ b/src/battle/anim/bubble.c @@ -43,7 +43,7 @@ void sub_80D31C8(struct Sprite* sprite) sprite->data[3] = sprite->pos1.y; sprite->data[4] = GetBankPosition(gAnimBankTarget, 3); - obj_translate_based_on_private_1_2_3_4(sprite); + InitAnimSpriteTranslationDeltas(sprite); newSpriteId = CreateInvisibleSpriteWithCallback(SpriteCallbackDummy); sprite->data[5] = newSpriteId; @@ -69,7 +69,7 @@ static void sub_80D32E8(struct Sprite *sprite) u16 index = gSprites[spriteId].data[3]; sprite->data[0] = 1; - sub_8078B5C(sprite); + TranslateAnimSpriteByDeltas(sprite); sprite->pos2.x += Sin(index / 256, gSprites[spriteId].data[0]); sprite->pos2.y += Cos(index / 256, gSprites[spriteId].data[1]); diff --git a/src/battle/anim/bug.c b/src/battle/anim/bug.c index dbc0f75a5..e12f55a8b 100644 --- a/src/battle/anim/bug.c +++ b/src/battle/anim/bug.c @@ -40,7 +40,7 @@ void sub_80DC824(struct Sprite *sprite) sprite->data[2] = GetBankPosition(gAnimBankTarget, 2) + gBattleAnimArgs[2]; sprite->data[4] = GetBankPosition(gAnimBankTarget, 3) + gBattleAnimArgs[3]; - sprite->callback = sub_8078B34; + sprite->callback = StartTranslateAnimSpriteByDeltas; StoreSpriteCallbackInData(sprite, DestroyAnimSprite); } @@ -65,7 +65,7 @@ void sub_80DC8F4(struct Sprite *sprite) sprite->data[2] = GetBankPosition(gAnimBankTarget, 2); sprite->data[4] = GetBankPosition(gAnimBankTarget, 3); - sprite->callback = sub_8078B34; + sprite->callback = StartTranslateAnimSpriteByDeltas; StoreSpriteCallbackInData(sprite, DestroyAnimSprite); } @@ -76,7 +76,7 @@ void sub_80DC9A0(struct Sprite *sprite) if (IsContest()) gBattleAnimArgs[2] /= 2; - sub_80787B0(sprite, 1); + InitAnimSpritePos(sprite, 1); sprite->data[0] = gBattleAnimArgs[2]; sprite->data[1] = sprite->pos1.x; sprite->data[3] = sprite->pos1.y; @@ -88,7 +88,7 @@ void sub_80DC9A0(struct Sprite *sprite) } else { - sub_807A3FC(gAnimBankTarget, 1, &sprite->data[2], &sprite->data[4]); + SetAverageBattlerPositions(gAnimBankTarget, 1, &sprite->data[2], &sprite->data[4]); } sub_8078BD4(sprite); @@ -98,7 +98,7 @@ void sub_80DC9A0(struct Sprite *sprite) static void sub_80DCA38(struct Sprite *sprite) { - if (sub_8078B5C(sprite)) + if (TranslateAnimSpriteByDeltas(sprite)) { DestroyAnimSprite(sprite); return; @@ -111,7 +111,7 @@ static void sub_80DCA38(struct Sprite *sprite) // used in Move_STRING_SHOT void sub_80DCA70(struct Sprite *sprite) { - sub_807A3FC(gAnimBankTarget, 0, &sprite->pos1.x, &sprite->pos1.y); + SetAverageBattlerPositions(gAnimBankTarget, 0, &sprite->pos1.x, &sprite->pos1.y); if (GetBankSide(gAnimBankAttacker)) sprite->pos1.x -= gBattleAnimArgs[0]; else @@ -212,7 +212,7 @@ void sub_80DCBCC(struct Sprite *sprite) } } - sub_80787B0(sprite, 1); + InitAnimSpritePos(sprite, 1); lVarX = GetBankPosition(gAnimBankTarget, 2) + gBattleAnimArgs[2]; lVarY = GetBankPosition(gAnimBankTarget, 3) + gBattleAnimArgs[3]; @@ -224,7 +224,7 @@ void sub_80DCBCC(struct Sprite *sprite) sprite->data[2] = lVarX; sprite->data[4] = lVarY; - sprite->callback = sub_8078B34; + sprite->callback = StartTranslateAnimSpriteByDeltas; StoreSpriteCallbackInData(sprite, DestroyAnimSprite); } @@ -232,7 +232,7 @@ void sub_80DCBCC(struct Sprite *sprite) // Move_PIN_MISSILE, Move_ICICLE_SPEAR void sub_80DCCFC(struct Sprite *sprite) { - sub_80787B0(sprite, 1); + InitAnimSpritePos(sprite, 1); if (GetBankSide(gAnimBankAttacker)) gBattleAnimArgs[2] = -gBattleAnimArgs[2]; @@ -251,7 +251,7 @@ void sub_80DCD78(struct Sprite *sprite) { sprite->invisible = FALSE; - if (sub_8078718(sprite)) + if (TranslateAnimSpriteLinearAndSine(sprite)) { DestroyAnimSprite(sprite); } @@ -271,7 +271,7 @@ void sub_80DCD78(struct Sprite *sprite) x2 += x1; y2 += y1; - if (!sub_8078718(sprite)) + if (!TranslateAnimSpriteLinearAndSine(sprite)) { u16 rot = sub_80790F0(sprite->pos1.x + sprite->pos2.x - x2, sprite->pos1.y + sprite->pos2.y - y2); diff --git a/src/battle/anim/bullet.c b/src/battle/anim/bullet.c index 90b2021f1..1dca0b886 100644 --- a/src/battle/anim/bullet.c +++ b/src/battle/anim/bullet.c @@ -17,11 +17,11 @@ static void sub_80D00B4(struct Sprite* sprite); void sub_80CFFD8(struct Sprite* sprite) { - sub_80787B0(sprite, 1); + InitAnimSpritePos(sprite, 1); sprite->data[0] = 20; sprite->data[2] = GetBankPosition(gAnimBankTarget, 2); sprite->data[4] = GetBankPosition(gAnimBankTarget, 3); - sprite->callback = sub_8078B34; + sprite->callback = StartTranslateAnimSpriteByDeltas; sprite->affineAnimPaused = 1; StoreSpriteCallbackInData(sprite, sub_80D0030); } diff --git a/src/battle/anim/cutter.c b/src/battle/anim/cutter.c index 2234ebacb..0f23fed82 100644 --- a/src/battle/anim/cutter.c +++ b/src/battle/anim/cutter.c @@ -1,4 +1,5 @@ #include "global.h" +#include "battle.h" #include "rom_8077ABC.h" #include "trig.h" #include "battle_anim.h" @@ -7,29 +8,36 @@ extern s16 gBattleAnimArgs[]; extern u8 gAnimBankAttacker; extern u8 gAnimBankTarget; -static void sub_80CB09C(struct Sprite* sprite); -static void sub_80CB1A4(struct Sprite* sprite); +static void AnimTranslateLinearSingleSineWaveStep(struct Sprite* sprite); +static void AnimMoveTwisterParticleStep(struct Sprite* sprite); -// cutter (the cresent shaped leaf used in throwing projectiles for the listed moves.) +// Animates a sprite that moves linearly from one location to another, with a +// single-cycle sine wave added to the y position along the way. // Used by Razor Leaf and Magical Leaf. - -void sub_80CAFD0(struct Sprite* sprite) +// arg 0: initial x offset +// arg 1: initial y offset +// arg 2: target x offset +// arg 3: target y offset +// arg 4: translation duration +// arg 5: wave amplitude +// arg 6: target between double battle opponents (boolean) +void AnimTranslateLinearSingleSineWave(struct Sprite* sprite) { - sub_80787B0(sprite, 1); - if (GetBankSide(gAnimBankAttacker)) + InitAnimSpritePos(sprite, 1); + if (GetBankSide(gAnimBankAttacker) != SIDE_PLAYER) { gBattleAnimArgs[2] = -gBattleAnimArgs[2]; } sprite->data[0] = gBattleAnimArgs[4]; - if (!(gBattleAnimArgs[6])) + if (!gBattleAnimArgs[6]) { sprite->data[2] = GetBankPosition(gAnimBankTarget, 2) + gBattleAnimArgs[2]; sprite->data[4] = GetBankPosition(gAnimBankTarget, 3) + gBattleAnimArgs[3]; } else { - sub_807A3FC(gAnimBankTarget, 1, &sprite->data[2], &sprite->data[4]); + SetAverageBattlerPositions(gAnimBankTarget, 1, &sprite->data[2], &sprite->data[4]); sprite->data[2] += gBattleAnimArgs[2]; sprite->data[4] += gBattleAnimArgs[3]; } @@ -45,18 +53,18 @@ void sub_80CAFD0(struct Sprite* sprite) sprite->data[0] = 0; } - sprite->callback = sub_80CB09C; + sprite->callback = AnimTranslateLinearSingleSineWaveStep; } -void sub_80CB09C(struct Sprite* sprite) +static void AnimTranslateLinearSingleSineWaveStep(struct Sprite* sprite) { - bool8 c = FALSE; + bool8 destroy = FALSE; s16 a = sprite->data[0]; s16 b = sprite->data[7]; s16 r0; sprite->data[0] = 1; - sub_8078718(sprite); + TranslateAnimSpriteLinearAndSine(sprite); r0 = sprite->data[7]; sprite->data[0] = a; if (b > 0xC8 && r0 <= 0x37 && sprite->oam.affineParam == 0) @@ -67,24 +75,30 @@ void sub_80CB09C(struct Sprite* sprite) sprite->invisible ^= 1; sprite->oam.affineParam++; if (sprite->oam.affineParam == 0x1E) - c = TRUE; + destroy = TRUE; } - if (sprite->pos1.x + sprite->pos2.x > 0x100 + if (sprite->pos1.x + sprite->pos2.x > 256 || sprite->pos1.x + sprite->pos2.x < -16 - || sprite->pos1.y + sprite->pos2.y > 0xA0 + || sprite->pos1.y + sprite->pos2.y > 160 || sprite->pos1.y + sprite->pos2.y < -16) - c = TRUE; + destroy = TRUE; - if (c) + if (destroy) DestroyAnimSprite(sprite); } -void sub_80CB144(struct Sprite* sprite) +// Animates particles in the Twister move animation. +// arg 0: duration +// arg 1: total y delta (the particles rise upward) +// arg 2: wave period (higher means faster wave) +// arg 3: wave amplitude +// arg 4: speedup frame (particles move faster at the end of the animation) +void AnimMoveTwisterParticle(struct Sprite* sprite) { if (!IsContest() && IsDoubleBattle() == TRUE) { - sub_807A3FC(gAnimBankTarget, 1, &sprite->pos1.x, &sprite->pos1.y); + SetAverageBattlerPositions(gAnimBankTarget, 1, &sprite->pos1.x, &sprite->pos1.y); } sprite->pos1.y += 32; @@ -93,10 +107,10 @@ void sub_80CB144(struct Sprite* sprite) sprite->data[2] = gBattleAnimArgs[2]; sprite->data[3] = gBattleAnimArgs[3]; sprite->data[4] = gBattleAnimArgs[4]; - sprite->callback = sub_80CB1A4; + sprite->callback = AnimMoveTwisterParticleStep; } -void sub_80CB1A4(struct Sprite* sprite) +static void AnimMoveTwisterParticleStep(struct Sprite* sprite) { if (sprite->data[1] == 0xFF) { diff --git a/src/battle/anim/cyclone.c b/src/battle/anim/cyclone.c index 0f83df211..b1210bc54 100644 --- a/src/battle/anim/cyclone.c +++ b/src/battle/anim/cyclone.c @@ -13,7 +13,7 @@ extern u8 gAnimBankTarget; void sub_80D0118(struct Sprite* sprite) { - sub_80787B0(sprite, 0); + InitAnimSpritePos(sprite, 0); if (GetBankSide(gAnimBankAttacker) == 0) sprite->pos1.y += 16; diff --git a/src/battle/anim/dark.c b/src/battle/anim/dark.c index 674ae5188..aaf8507c6 100644 --- a/src/battle/anim/dark.c +++ b/src/battle/anim/dark.c @@ -128,7 +128,7 @@ void sub_80DFE14(struct Sprite *sprite) sprite->data[3] = GetBankPosition(gAnimBankTarget, 3); sprite->data[4] = GetBankPosition(gAnimBankAttacker, 3); sprite->data[0] = 0x7E; - sub_8078A5C(sprite); + InitSpriteDataForLinearTranslation(sprite); sprite->data[3] = -sprite->data[1]; sprite->data[4] = -sprite->data[2]; sprite->data[6] = 0xFFD8; @@ -244,7 +244,7 @@ void sub_80DFFD0(struct Sprite *sprite) static void sub_80E00D0(struct Sprite *sprite) { - if (sub_8078718(sprite)) + if (TranslateAnimSpriteLinearAndSine(sprite)) move_anim_8074EE0(sprite); } diff --git a/src/battle/anim/dragon.c b/src/battle/anim/dragon.c index 4f25cf1a5..dc2c0bc50 100644 --- a/src/battle/anim/dragon.c +++ b/src/battle/anim/dragon.c @@ -68,7 +68,7 @@ void sub_80DF63C(struct Sprite *sprite) StartSpriteAnim(sprite, 1); } sprite->data[0] = gBattleAnimArgs[4]; - sprite->callback = sub_8078B34; + sprite->callback = StartTranslateAnimSpriteByDeltas; StoreSpriteCallbackInData(sprite, move_anim_8074EE0); } diff --git a/src/battle/anim/egg.c b/src/battle/anim/egg.c index 8004b3bf5..b3de1dbb1 100644 --- a/src/battle/anim/egg.c +++ b/src/battle/anim/egg.c @@ -22,7 +22,7 @@ static void sub_80D158C(struct Sprite* sprite); void sub_80D1368(struct Sprite* sprite) { s16 r1; - sub_80787B0(sprite, 0); + InitAnimSpritePos(sprite, 0); r1 = (GetBankSide(gAnimBankAttacker)) ? -0xA0 : 0xA0; sprite->data[0] = 0x380; sprite->data[1] = r1; diff --git a/src/battle/anim/energy_wave.c b/src/battle/anim/energy_wave.c index 15045f5bd..8111f70a3 100644 --- a/src/battle/anim/energy_wave.c +++ b/src/battle/anim/energy_wave.c @@ -20,7 +20,7 @@ static void sub_80D370C(struct Sprite *); void sub_80D3554(struct Sprite *sprite) { - sub_80787B0(sprite, 1); + InitAnimSpritePos(sprite, 1); sprite->data[0] = 30; sprite->data[1] = sprite->pos1.x; @@ -28,7 +28,7 @@ void sub_80D3554(struct Sprite *sprite) sprite->data[3] = sprite->pos1.y; sprite->data[4] = GetBankPosition(gAnimBankTarget, 3); - obj_translate_based_on_private_1_2_3_4(sprite); + InitAnimSpriteTranslationDeltas(sprite); sprite->data[5] = 0xD200 / sprite->data[0]; sprite->data[7] = gBattleAnimArgs[3]; @@ -49,7 +49,7 @@ void sub_80D3554(struct Sprite *sprite) static void sub_80D35DC(struct Sprite *sprite) { - if (sub_8078B5C(sprite)) + if (TranslateAnimSpriteByDeltas(sprite)) { DestroyAnimSprite(sprite); } @@ -147,7 +147,7 @@ void sub_80D3728(struct Sprite *sprite) else var2 = 1; - sub_80787B0(sprite, var1); + InitAnimSpritePos(sprite, var1); if (GetBankSide(gAnimBankAttacker) != 0) { @@ -157,6 +157,6 @@ void sub_80D3728(struct Sprite *sprite) sprite->data[0] = gBattleAnimArgs[4]; sprite->data[2] = GetBankPosition(gAnimBankTarget, 2) + gBattleAnimArgs[2]; sprite->data[4] = GetBankPosition(gAnimBankTarget, var2) + gBattleAnimArgs[3]; - sprite->callback = sub_8078B34; + sprite->callback = StartTranslateAnimSpriteByDeltas; StoreSpriteCallbackInData(sprite, DestroyAnimSprite); } diff --git a/src/battle/anim/fight.c b/src/battle/anim/fight.c index 160b51274..a7c25de49 100644 --- a/src/battle/anim/fight.c +++ b/src/battle/anim/fight.c @@ -77,7 +77,7 @@ void sub_80D90A4(struct Sprite *sprite) StartSpriteAnim(sprite, gBattleAnimArgs[4]); if (gBattleAnimArgs[3] == 0) - sub_80787B0(sprite, 1); + InitAnimSpritePos(sprite, 1); else sub_8078764(sprite, 1); @@ -166,7 +166,7 @@ void sub_80D92D0(struct Sprite *sprite) } sprite->data[4] = sprite->pos1.y - 20; - sprite->callback = sub_8078B34; + sprite->callback = StartTranslateAnimSpriteByDeltas; StoreSpriteCallbackInData(sprite, sub_80D9328); } @@ -182,7 +182,7 @@ static void sub_80D9328(struct Sprite *sprite) sprite->pos2.y = 0; sprite->pos2.x = 0; - sprite->callback = sub_8078B34; + sprite->callback = StartTranslateAnimSpriteByDeltas; StoreSpriteCallbackInData(sprite, DestroyAnimSprite); } } @@ -203,7 +203,7 @@ void sub_80D9378(struct Sprite *sprite) sprite->data[3] = sprite->pos1.y; sprite->data[4] = sprite->pos1.y; - obj_translate_based_on_private_1_2_3_4(sprite); + InitAnimSpriteTranslationDeltas(sprite); sprite->data[5] = gBattleAnimArgs[5]; sprite->data[6] = gBattleAnimArgs[4]; @@ -214,7 +214,7 @@ void sub_80D9378(struct Sprite *sprite) static void sub_80D9404(struct Sprite *sprite) { - if (!sub_8078B5C(sprite)) + if (!TranslateAnimSpriteByDeltas(sprite)) { sprite->pos2.y += Sin(sprite->data[7] >> 8, sprite->data[5]); sprite->data[7] += sprite->data[6]; @@ -261,7 +261,7 @@ static void sub_80D94CC(struct Sprite *sprite) sprite->data[2] = GetBankPosition(gAnimBankTarget, 2); sprite->data[4] = GetBankPosition(gAnimBankTarget, 3); - sprite->callback = sub_8078B34; + sprite->callback = StartTranslateAnimSpriteByDeltas; StoreSpriteCallbackInData(sprite, sub_80D9524); } } @@ -435,9 +435,9 @@ static void sub_80D986C(struct Sprite *sprite) sprite->data[3] = sprite->pos1.y; sprite->data[4] = GetBankPosition(sprite->data[7], 3); - obj_translate_based_on_private_1_2_3_4(sprite); + InitAnimSpriteTranslationDeltas(sprite); StoreSpriteCallbackInData(sprite, move_anim_8074EE0); - sprite->callback = sub_8078BB8; + sprite->callback = TranslateAnimSpriteByDeltasUntil; } } @@ -530,9 +530,9 @@ void sub_80D9A38(struct Sprite *sprite) sprite->data[3] = sprite->pos1.y; sprite->data[4] = GetBankPosition(bank, 3); - obj_translate_based_on_private_1_2_3_4(sprite); + InitAnimSpriteTranslationDeltas(sprite); StoreSpriteCallbackInData(sprite, DestroyAnimSprite); - sprite->callback = sub_8078BB8; + sprite->callback = TranslateAnimSpriteByDeltasUntil; } static void sub_80D9B24(struct Sprite *sprite) @@ -573,7 +573,7 @@ void sub_80D9B48(struct Sprite *sprite) void sub_80D9BD4(struct Sprite *sprite) { if (gBattleAnimArgs[2] == 0) - sub_80787B0(sprite, 0); + InitAnimSpritePos(sprite, 0); else sub_8078764(sprite, 0); diff --git a/src/battle/anim/fire_2.c b/src/battle/anim/fire_2.c index 4d577a765..fe63fcff1 100644 --- a/src/battle/anim/fire_2.c +++ b/src/battle/anim/fire_2.c @@ -42,7 +42,7 @@ struct Sprite *sub_80D5210(struct Sprite *sprite) void sub_80D522C(struct Sprite *sprite) { - sub_80787B0(sprite, 1); + InitAnimSpritePos(sprite, 1); sprite->data[7] = gBattleAnimArgs[2]; sprite->data[0] = 0; @@ -62,7 +62,7 @@ void sub_80D5254(struct Sprite *sprite) sprite->data[3] = sprite->pos1.y; sprite->data[4] = GetBankPosition(gAnimBankTarget, 3); - obj_translate_based_on_private_1_2_3_4(sprite); + InitAnimSpriteTranslationDeltas(sprite); sprite->callback = sub_80D52AC; } @@ -70,7 +70,7 @@ void sub_80D5254(struct Sprite *sprite) void sub_80D52AC(struct Sprite *sprite) { - if (sub_8078B5C(sprite)) + if (TranslateAnimSpriteByDeltas(sprite)) { sprite->data[0] = 0; @@ -123,7 +123,7 @@ void sub_80D5374(struct Sprite *sprite) void sub_80D53B4(struct Sprite *sprite) { - sub_80787B0(sprite, 1); + InitAnimSpritePos(sprite, 1); sprite->data[1] = gBattleAnimArgs[2]; sprite->data[0] = gBattleAnimArgs[3]; diff --git a/src/battle/anim/flying_path.c b/src/battle/anim/flying_path.c index 441ac0e6d..559f617c6 100644 --- a/src/battle/anim/flying_path.c +++ b/src/battle/anim/flying_path.c @@ -53,7 +53,7 @@ void sub_80CBF5C(u8 taskId) { case 4: sub_80CC358(task, taskId); - if (sub_8078718(sprite) == 0) + if (TranslateAnimSpriteLinearAndSine(sprite) == 0) { break; } @@ -65,7 +65,7 @@ void sub_80CBF5C(u8 taskId) break; case 8: sub_80CC358(task, taskId); - if (sub_8078718(sprite) == 0) + if (TranslateAnimSpriteLinearAndSine(sprite) == 0) { break; } @@ -77,7 +77,7 @@ void sub_80CBF5C(u8 taskId) break; case 0: sub_80CC358(task, taskId); - if (sub_8078718(sprite) == 0) + if (TranslateAnimSpriteLinearAndSine(sprite) == 0) break; task->data[15] = 1; @@ -103,7 +103,7 @@ void sub_80CBF5C(u8 taskId) break; case 2: sub_80CC358(task, taskId); - if (sub_8078718(sprite) == 0) + if (TranslateAnimSpriteLinearAndSine(sprite) == 0) break; task->data[15] = 3; @@ -146,7 +146,7 @@ void sub_80CBF5C(u8 taskId) break; case 6: sub_80CC358(task, taskId); - if (sub_8078718(sprite) == 0) + if (TranslateAnimSpriteLinearAndSine(sprite) == 0) break; task->data[15] = 7; @@ -189,7 +189,7 @@ void sub_80CBF5C(u8 taskId) break; case 10: sub_80CC358(task, taskId); - if (sub_8078718(sprite) == 0) + if (TranslateAnimSpriteLinearAndSine(sprite) == 0) { break; } @@ -221,7 +221,7 @@ void sub_80CBF5C(u8 taskId) } case 12: sub_80CC358(task, taskId); - if (sub_8078718(sprite) != 0) + if (TranslateAnimSpriteLinearAndSine(sprite) != 0) { DestroySprite(sprite); task->data[0]++; diff --git a/src/battle/anim/glitter.c b/src/battle/anim/glitter.c index e4577f1e1..e6c101de3 100644 --- a/src/battle/anim/glitter.c +++ b/src/battle/anim/glitter.c @@ -35,7 +35,7 @@ void sub_80CD190(struct Sprite* sprite) if (IsDoubleBattle() && IsAnimBankSpriteVisible(bank ^ 2)) { - sub_807A3FC(bank, gBattleAnimArgs[6], &sprite->pos1.x, &sprite->pos1.y); + SetAverageBattlerPositions(bank, gBattleAnimArgs[6], &sprite->pos1.x, &sprite->pos1.y); sub_807867C(sprite, gBattleAnimArgs[0]); sprite->pos1.y += gBattleAnimArgs[1]; } diff --git a/src/battle/anim/grip.c b/src/battle/anim/grip.c index c4d7b1cef..dbf7a1562 100644 --- a/src/battle/anim/grip.c +++ b/src/battle/anim/grip.c @@ -33,7 +33,7 @@ void sub_80D0178(struct Sprite* sprite) sprite->data[0] = 6; sprite->data[2] = GetBankPosition(gAnimBankTarget, 2) + r8; sprite->data[4] = GetBankPosition(gAnimBankTarget, 3) + r6; - sprite->callback = sub_8078B34; + sprite->callback = StartTranslateAnimSpriteByDeltas; StoreSpriteCallbackInData(sprite, sub_80D020C); } diff --git a/src/battle/anim/guard.c b/src/battle/anim/guard.c index 254160109..211e0e841 100644 --- a/src/battle/anim/guard.c +++ b/src/battle/anim/guard.c @@ -15,7 +15,7 @@ void sub_80D3014(struct Sprite *sprite) { if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE) && IsAnimBankSpriteVisible(gAnimBankAttacker ^ 2)) { - sub_807A3FC(gAnimBankAttacker, 0, &sprite->pos1.x, &sprite->pos1.y); + SetAverageBattlerPositions(gAnimBankAttacker, 0, &sprite->pos1.x, &sprite->pos1.y); sprite->pos1.y += 40; StartSpriteAffineAnim(sprite, 1); @@ -30,6 +30,6 @@ void sub_80D3014(struct Sprite *sprite) sprite->data[2] = sprite->pos1.x; sprite->data[4] = sprite->pos1.y - 72; - sprite->callback = sub_8078B34; + sprite->callback = StartTranslateAnimSpriteByDeltas; StoreSpriteCallbackInData(sprite, DestroyAnimSprite); } diff --git a/src/battle/anim/guillotine.c b/src/battle/anim/guillotine.c index b3d842cdf..15279d5e2 100644 --- a/src/battle/anim/guillotine.c +++ b/src/battle/anim/guillotine.c @@ -37,7 +37,7 @@ void sub_80D0228(struct Sprite* sprite) sprite->data[2] = GetBankPosition(gAnimBankTarget, 2) + r9; sprite->data[3] = sprite->pos1.y; sprite->data[4] = GetBankPosition(gAnimBankTarget, 3) + r6; - obj_translate_based_on_private_1_2_3_4(sprite); + InitAnimSpriteTranslationDeltas(sprite); sprite->data[5] = gBattleAnimArgs[0]; sprite->data[6] = sprite->data[0]; sprite->callback = sub_80D02D0; @@ -45,7 +45,7 @@ void sub_80D0228(struct Sprite* sprite) void sub_80D02D0(struct Sprite* sprite) { - if (sub_8078B5C(sprite) && sprite->animEnded == 1) + if (TranslateAnimSpriteByDeltas(sprite) && sprite->animEnded == 1) { SeekSpriteAnim(sprite, 0); sprite->animPaused = 1; @@ -85,6 +85,6 @@ void sub_80D0344(struct Sprite* sprite) void sub_80D03A8(struct Sprite* sprite) { - if (sub_8078B5C(sprite) != 0) + if (TranslateAnimSpriteByDeltas(sprite) != 0) DestroyAnimSprite(sprite); } diff --git a/src/battle/anim/heart_1.c b/src/battle/anim/heart_1.c index 5df89f929..857169e62 100644 --- a/src/battle/anim/heart_1.c +++ b/src/battle/anim/heart_1.c @@ -14,7 +14,7 @@ extern u8 gAnimBankTarget; void sub_80D1C80(struct Sprite* sprite) { if (++sprite->data[0] == 1) - sub_80787B0(sprite, 0); + InitAnimSpritePos(sprite, 0); sprite->pos2.x = Sin(sprite->data[1], 8); sprite->pos2.y = sprite->data[2] >> 8; diff --git a/src/battle/anim/hop.c b/src/battle/anim/hop.c index 4006e2d43..0697e83a0 100644 --- a/src/battle/anim/hop.c +++ b/src/battle/anim/hop.c @@ -91,7 +91,7 @@ void sub_80CB94C(struct Sprite* sprite) { s16 e1; s16 e2; - sub_80787B0(sprite, 0); + InitAnimSpritePos(sprite, 0); e1 = GetBankPosition(gAnimBankTarget, 0); e2 = GetBankPosition(gAnimBankTarget, 1); if ((gAnimBankAttacker ^ 2) == gAnimBankTarget) diff --git a/src/battle/anim/lunge_1.c b/src/battle/anim/lunge_1.c index a2adfba13..a3b5f19c5 100644 --- a/src/battle/anim/lunge_1.c +++ b/src/battle/anim/lunge_1.c @@ -48,7 +48,7 @@ void sub_80CD7CC(struct Sprite* sprite) sprite->data[2] = 0; sprite->data[3] = gBankSpriteIds[gAnimBankAttacker]; StoreSpriteCallbackInData(sprite, sub_80CD81C); - sprite->callback = sub_8078458; + sprite->callback = TranslateMonBGUntil; } void sub_80CD81C(struct Sprite* sprite) @@ -78,7 +78,7 @@ void sub_80CD8A8(struct Sprite* sprite) sprite->data[2] = 0; sprite->data[3] = gBankSpriteIds[gAnimBankAttacker]; StoreSpriteCallbackInData(sprite, sub_80CD9B8); - sprite->callback = sub_8078458; + sprite->callback = TranslateMonBGUntil; } void sub_80CD8F8(struct Sprite* sprite) diff --git a/src/battle/anim/money.c b/src/battle/anim/money.c index 8358d23db..0ee381e13 100644 --- a/src/battle/anim/money.c +++ b/src/battle/anim/money.c @@ -19,7 +19,7 @@ void sub_80CFE9C(struct Sprite* sprite) s16 r7; u16 var; - sub_80787B0(sprite, 1); + InitAnimSpritePos(sprite, 1); r6 = GetBankPosition(gAnimBankTarget, 2); r7 = GetBankPosition(gAnimBankTarget, 3) + gBattleAnimArgs[3]; if (GetBankSide(gAnimBankAttacker) != 0) diff --git a/src/battle/anim/note_rain.c b/src/battle/anim/note_rain.c index 715462d73..44817b0a0 100644 --- a/src/battle/anim/note_rain.c +++ b/src/battle/anim/note_rain.c @@ -24,14 +24,14 @@ void sub_80D1BA8(struct Sprite* sprite, u8 a, u8 b) void sub_80D1C08(struct Sprite* sprite) { - sub_80787B0(sprite, 0); + InitAnimSpritePos(sprite, 0); if (GetBankSide(gAnimBankAttacker) != 0) gBattleAnimArgs[2] = -gBattleAnimArgs[2]; sprite->data[0] = gBattleAnimArgs[4]; sprite->data[2] = GetBankPosition(gAnimBankAttacker, 0) + gBattleAnimArgs[2]; sprite->data[4] = GetBankPosition(gAnimBankAttacker, 1) + gBattleAnimArgs[3]; - sprite->callback = sub_8078B34; + sprite->callback = StartTranslateAnimSpriteByDeltas; StoreSpriteCallbackInData(sprite, DestroyAnimSprite); sub_80D1BA8(sprite, gBattleAnimArgs[5], gBattleAnimArgs[6]); } diff --git a/src/battle/anim/note_scatter_2.c b/src/battle/anim/note_scatter_2.c index 524c51c08..262afb8bf 100644 --- a/src/battle/anim/note_scatter_2.c +++ b/src/battle/anim/note_scatter_2.c @@ -32,14 +32,14 @@ void sub_80CEE60(struct Sprite* sprite) sprite->data[2] = a + sprite->data[1]; sprite->data[3] = sprite->pos1.y; sprite->data[4] = sprite->data[3] - 40; - obj_translate_based_on_private_1_2_3_4(sprite); + InitAnimSpriteTranslationDeltas(sprite); sprite->data[5] = gBattleAnimArgs[3]; sprite->callback = sub_80CEEE8; } void sub_80CEEE8(struct Sprite* sprite) { - if (sub_8078B5C(sprite) == 0) + if (TranslateAnimSpriteByDeltas(sprite) == 0) { s16 a; a = Sin(sprite->data[5], 8); diff --git a/src/battle/anim/orbit.c b/src/battle/anim/orbit.c index c8cf339d2..e7dd0df49 100644 --- a/src/battle/anim/orbit.c +++ b/src/battle/anim/orbit.c @@ -79,13 +79,13 @@ void sub_80CACEC(u8 taskId) void sub_80CAD54(struct Sprite* sprite) { - sub_80787B0(sprite, 0); + InitAnimSpritePos(sprite, 0); sprite->data[0] = gBattleAnimArgs[3]; sprite->data[1] = sprite->pos1.x; sprite->data[2] = sprite->pos1.x; sprite->data[3] = sprite->pos1.y; sprite->data[4] = GetBankPosition(gAnimBankAttacker, 3) + gBattleAnimArgs[2]; - obj_translate_based_on_private_1_2_3_4(sprite); + InitAnimSpriteTranslationDeltas(sprite); sprite->data[5] = 0x40; sprite->callback = sub_80CADA8; sub_80CADA8(sprite); @@ -93,7 +93,7 @@ void sub_80CAD54(struct Sprite* sprite) void sub_80CADA8(struct Sprite* sprite) { - if (!sub_8078B5C(sprite)) + if (!TranslateAnimSpriteByDeltas(sprite)) { sprite->pos2.x += Sin(sprite->data[5], 32); sprite->pos2.y += Cos(sprite->data[5], -5); @@ -116,13 +116,13 @@ void sub_80CADA8(struct Sprite* sprite) void sub_80CAE20(struct Sprite* sprite) { - sub_80787B0(sprite, 1); + InitAnimSpritePos(sprite, 1); sprite->data[0] = gBattleAnimArgs[3]; sprite->data[1] = sprite->pos1.x; sprite->data[2] = sprite->pos1.x; sprite->data[3] = sprite->pos1.y; sprite->data[4] = GetBankPosition(gAnimBankAttacker, 3) + gBattleAnimArgs[2]; - obj_translate_based_on_private_1_2_3_4(sprite); + InitAnimSpriteTranslationDeltas(sprite); sprite->data[5] = 0x40; sprite->callback = sub_80CAE74; sub_80CAE74(sprite); @@ -130,7 +130,7 @@ void sub_80CAE20(struct Sprite* sprite) void sub_80CAE74(struct Sprite* sprite) { - if (!sub_8078B5C(sprite)) + if (!TranslateAnimSpriteByDeltas(sprite)) { sprite->pos2.x += Sin(sprite->data[5], 8); if ((u16)(sprite->data[5] - 0x3B) < 5 || (u16)(sprite->data[5] - 0xBB) < 5) diff --git a/src/battle/anim/orbs.c b/src/battle/anim/orbs.c index 6ca2fa71c..b965cacb8 100644 --- a/src/battle/anim/orbs.c +++ b/src/battle/anim/orbs.c @@ -19,34 +19,34 @@ extern struct SpriteTemplate gSpriteTemplate_83D631C; void sub_80CA7B0(struct Sprite* sprite) { - sub_80787B0(sprite, 1); + InitAnimSpritePos(sprite, 1); sprite->data[0] = gBattleAnimArgs[2]; sprite->data[2] = GetBankPosition(gAnimBankAttacker, 2); sprite->data[4] = GetBankPosition(gAnimBankAttacker, 3); - sprite->callback = sub_8078B34; + sprite->callback = StartTranslateAnimSpriteByDeltas; StoreSpriteCallbackInData(sprite, move_anim_8074EE0); } void sub_80CA800(struct Sprite* sprite) { - sub_80787B0(sprite, 1); + InitAnimSpritePos(sprite, 1); StartSpriteAnim(sprite, gBattleAnimArgs[3]); sprite->data[0] = gBattleAnimArgs[2]; sprite->data[2] = GetBankPosition(gAnimBankTarget, 2); sprite->data[4] = GetBankPosition(gAnimBankTarget, 3); - sprite->callback = sub_8078B34; + sprite->callback = StartTranslateAnimSpriteByDeltas; StoreSpriteCallbackInData(sprite, DestroyAnimSprite); } void sub_80CA858(struct Sprite* sprite) { - sub_80787B0(sprite, 1); + InitAnimSpritePos(sprite, 1); sprite->data[0] = gBattleAnimArgs[2]; sprite->data[1] = sprite->pos1.x; sprite->data[2] = GetBankPosition(gAnimBankTarget, 2); sprite->data[3] = sprite->pos1.y; sprite->data[4] = GetBankPosition(gAnimBankTarget, 3); - obj_translate_based_on_private_1_2_3_4(sprite); + InitAnimSpriteTranslationDeltas(sprite); sprite->data[5] = gBattleAnimArgs[3]; sprite->callback = sub_80CA8B4; sub_80CA8B4(sprite); @@ -54,7 +54,7 @@ void sub_80CA858(struct Sprite* sprite) void sub_80CA8B4(struct Sprite* sprite) { - if (sub_8078B5C(sprite)) + if (TranslateAnimSpriteByDeltas(sprite)) { DestroySprite(sprite); } @@ -105,7 +105,7 @@ void sub_80CA9A8(struct Sprite* sprite) void sub_80CA9F8(struct Sprite* sprite) { - if (sub_8078718(sprite)) + if (TranslateAnimSpriteLinearAndSine(sprite)) DestroyAnimSprite(sprite); } diff --git a/src/battle/anim/perceive.c b/src/battle/anim/perceive.c index 3b3153428..14db096c6 100644 --- a/src/battle/anim/perceive.c +++ b/src/battle/anim/perceive.c @@ -19,6 +19,6 @@ void sub_80D2904(struct Sprite* sprite) void sub_80D2920(struct Sprite* sprite) { - sub_80787B0(sprite, 1); + InitAnimSpritePos(sprite, 1); sprite->callback = sub_80D2904; } diff --git a/src/battle/anim/poison.c b/src/battle/anim/poison.c index f31c441fb..272d99e84 100644 --- a/src/battle/anim/poison.c +++ b/src/battle/anim/poison.c @@ -17,7 +17,7 @@ void sub_80D9D70(struct Sprite *sprite) if (!gBattleAnimArgs[3]) StartSpriteAnim(sprite, 2); - sub_80787B0(sprite, 1); + InitAnimSpritePos(sprite, 1); sprite->data[0] = gBattleAnimArgs[2]; sprite->data[2] = GetBankPosition(gAnimBankTarget, 2); @@ -31,7 +31,7 @@ void sub_80D9D70(struct Sprite *sprite) void sub_80D9DD4(struct Sprite *sprite) // same as sub_80D9E78 { - if (sub_8078718(sprite)) + if (TranslateAnimSpriteLinearAndSine(sprite)) DestroyAnimSprite(sprite); } @@ -41,8 +41,8 @@ void sub_80D9DF0(struct Sprite *sprite) if (!gBattleAnimArgs[3]) StartSpriteAnim(sprite, 2); - sub_80787B0(sprite, 1); - sub_807A3FC(gAnimBankTarget, 1, &l1, &l2); + InitAnimSpritePos(sprite, 1); + SetAverageBattlerPositions(gAnimBankTarget, 1, &l1, &l2); if (GetBankSide(gAnimBankAttacker)) gBattleAnimArgs[4] = -gBattleAnimArgs[4]; @@ -59,7 +59,7 @@ void sub_80D9DF0(struct Sprite *sprite) void sub_80D9E78(struct Sprite *sprite) // same as sub_80D9DD4 { - if (sub_8078718(sprite)) + if (TranslateAnimSpriteLinearAndSine(sprite)) DestroyAnimSprite(sprite); } @@ -71,7 +71,7 @@ void sub_80D9E94(struct Sprite *sprite) sprite->data[3] = sprite->pos1.y; sprite->data[4] = sprite->pos1.y + gBattleAnimArgs[1]; - sub_8078A5C(sprite); + InitSpriteDataForLinearTranslation(sprite); sprite->data[5] = sprite->data[1] / gBattleAnimArgs[2]; sprite->data[6] = sprite->data[2] / gBattleAnimArgs[2]; @@ -92,7 +92,7 @@ void sub_80D9EE8(struct Sprite *sprite) void sub_80D9F14(struct Sprite *sprite) { - sub_807A3FC(gAnimBankTarget, TRUE, &sprite->pos1.x, &sprite->pos1.y); + SetAverageBattlerPositions(gAnimBankTarget, TRUE, &sprite->pos1.x, &sprite->pos1.y); if (GetBankSide(gAnimBankAttacker)) gBattleAnimArgs[0] = -gBattleAnimArgs[0]; @@ -104,7 +104,7 @@ void sub_80D9F14(struct Sprite *sprite) sprite->data[2] = sprite->pos1.x + gBattleAnimArgs[2]; sprite->data[4] = sprite->pos1.y + sprite->data[0]; - sprite->callback = sub_8078B34; + sprite->callback = StartTranslateAnimSpriteByDeltas; StoreSpriteCallbackInData(sprite, DestroyAnimSprite); } @@ -116,7 +116,7 @@ void sub_80D9F88(struct Sprite *sprite) } else { - sub_807A3FC(gAnimBankTarget, TRUE, &sprite->pos1.x, &sprite->pos1.y); + SetAverageBattlerPositions(gAnimBankTarget, TRUE, &sprite->pos1.x, &sprite->pos1.y); if (GetBankSide(gAnimBankAttacker)) gBattleAnimArgs[0] = -gBattleAnimArgs[0]; diff --git a/src/battle/anim/psychic.c b/src/battle/anim/psychic.c index 37c527183..b108c496a 100644 --- a/src/battle/anim/psychic.c +++ b/src/battle/anim/psychic.c @@ -192,7 +192,7 @@ void sub_80DBA4C(struct Sprite *sprite) else { if (gBattleAnimArgs[2] == 0) - sub_80787B0(sprite, var0); + InitAnimSpritePos(sprite, var0); else sub_8078764(sprite, var0); } @@ -539,7 +539,7 @@ static void sub_80DC1FC(u8 taskId) void sub_80DC2B0(struct Sprite *sprite) { - if (sub_8078718(sprite)) + if (TranslateAnimSpriteLinearAndSine(sprite)) { FreeOamMatrix(sprite->oam.matrixNum); DestroySprite(sprite); diff --git a/src/battle/anim/ring.c b/src/battle/anim/ring.c index 759652f0c..86b2c4659 100644 --- a/src/battle/anim/ring.c +++ b/src/battle/anim/ring.c @@ -32,7 +32,7 @@ void sub_80D0FD8(struct Sprite* sprite) r4 = gBattleAnimArgs[3] ^ 1; if (IsDoubleBattle() && IsAnimBankSpriteVisible(bank ^ 2)) { - sub_807A3FC(bank, r4, &sp0, &sp1); + SetAverageBattlerPositions(bank, r4, &sp0, &sp1); if (r4 == 0) r4 = GetBankPosition(bank, 0); else @@ -50,7 +50,7 @@ void sub_80D0FD8(struct Sprite* sprite) void sub_80D1098(struct Sprite* sprite) { - if (sub_8078B5C(sprite)) + if (TranslateAnimSpriteByDeltas(sprite)) { FreeSpriteOamMatrix(sprite); DestroyAnimSprite(sprite); @@ -118,7 +118,7 @@ void sub_80D10B8(struct Sprite* sprite) r6 = GetBankPosition(bankr7, sp4) + gBattleAnimArgs[1]; if (gMain.inBattle && IsAnimBankSpriteVisible(bankr8 ^ 2)) { - sub_807A3FC(bankr8, gBattleAnimArgs[6], &sp0, &sp1); + SetAverageBattlerPositions(bankr8, gBattleAnimArgs[6], &sp0, &sp1); } else { @@ -137,7 +137,7 @@ void sub_80D10B8(struct Sprite* sprite) sprite->data[2] = sp0; sprite->data[4] = sp1; sprite->data[0] = gBattleAnimArgs[0]; - obj_translate_based_on_private_1_2_3_4(sprite); + InitAnimSpriteTranslationDeltas(sprite); sprite->callback = sub_80D1098; sub_80D1098(sprite); } diff --git a/src/battle/anim/rock.c b/src/battle/anim/rock.c index b113ce040..1d1772b1b 100644 --- a/src/battle/anim/rock.c +++ b/src/battle/anim/rock.c @@ -38,7 +38,7 @@ static void sub_80DD9FC(struct Sprite *sprite); void sub_80DCE9C(struct Sprite *sprite) { if (gBattleAnimArgs[3] != 0) - sub_807A3FC(gAnimBankTarget, 0, &sprite->pos1.x, &sprite->pos1.y); + SetAverageBattlerPositions(gAnimBankTarget, 0, &sprite->pos1.x, &sprite->pos1.y); sprite->pos1.x += gBattleAnimArgs[0]; sprite->pos1.y += 14; @@ -91,7 +91,7 @@ void sub_80DCF60(struct Sprite *sprite) sprite->data[3] = sprite->pos1.y; sprite->data[4] = sprite->pos1.y + gBattleAnimArgs[3]; - sub_8078A5C(sprite); + InitSpriteDataForLinearTranslation(sprite); sprite->data[3] = 0; sprite->data[4] = 0; @@ -102,7 +102,7 @@ void sub_80DCF60(struct Sprite *sprite) void sub_80DCFE4(struct Sprite *sprite) { if (gBattleAnimArgs[6] == 0) - sub_80787B0(sprite, 0); + InitAnimSpritePos(sprite, 0); else sub_8078764(sprite, 0); @@ -275,13 +275,13 @@ void sub_80DD3AC(struct Sprite *sprite) void sub_80DD490(struct Sprite *sprite) { StartSpriteAnim(sprite, gBattleAnimArgs[4]); - sub_80787B0(sprite, 0); + InitAnimSpritePos(sprite, 0); sprite->data[0] = gBattleAnimArgs[3]; sprite->data[2] = sprite->pos1.x; sprite->data[4] = sprite->pos1.y + gBattleAnimArgs[2]; - sprite->callback = sub_8078B34; + sprite->callback = StartTranslateAnimSpriteByDeltas; StoreSpriteCallbackInData(sprite, DestroyAnimSprite); } @@ -455,7 +455,7 @@ static void sub_80DD774(struct Task *task) void sub_80DD87C(struct Sprite *sprite) { - if (sub_8078718(sprite)) + if (TranslateAnimSpriteLinearAndSine(sprite)) { u8 taskId = FindTaskIdByFunc(sub_80DD604); if (taskId != 0xFF) @@ -517,7 +517,7 @@ void sub_80DD978(struct Sprite *sprite) if (GetBankSide(gAnimBankAttacker) == SIDE_OPPONENT) StartSpriteAffineAnim(sprite, 1); - sub_807941C(sprite); + TranslateAnimSpriteToTargetMonLocation(sprite); } void sub_80DD9A4(struct Sprite *sprite) diff --git a/src/battle/anim/scan.c b/src/battle/anim/scan.c index 22bb26973..e6b85dd5f 100644 --- a/src/battle/anim/scan.c +++ b/src/battle/anim/scan.c @@ -47,7 +47,7 @@ void sub_80CD408(struct Sprite* sprite) sprite->data[0] = 8; sprite->data[2] = sprite->pos1.x + gUnknown_083D6DDC[sprite->data[5] >> 8][0]; sprite->data[4] = sprite->pos1.y + gUnknown_083D6DDC[sprite->data[5] >> 8][1]; - sprite->callback = sub_8078B34; + sprite->callback = StartTranslateAnimSpriteByDeltas; StoreSpriteCallbackInData(sprite, sub_80CD4B8); sprite->data[5] += 0x100; PlaySE12WithPanning(0xD2, BattleAnimAdjustPanning(0x3F)); @@ -112,7 +112,7 @@ void sub_80CD4EC(struct Sprite* sprite) sprite->data[0] = 6; sprite->data[2] = GetBankPosition(gAnimBankTarget, 2) + a; sprite->data[4] = GetBankPosition(gAnimBankTarget, 3) + b; - sprite->callback = sub_8078B34; + sprite->callback = StartTranslateAnimSpriteByDeltas; StoreSpriteCallbackInData(sprite, sub_80CD654); } } diff --git a/src/battle/anim/seed.c b/src/battle/anim/seed.c index be8613a74..e3d4bd3fb 100644 --- a/src/battle/anim/seed.c +++ b/src/battle/anim/seed.c @@ -15,7 +15,7 @@ static void sub_80CABC0(struct Sprite* sprite); void sub_80CAB18(struct Sprite* sprite) { - sub_80787B0(sprite, 1); + InitAnimSpritePos(sprite, 1); if (GetBankSide(gAnimBankAttacker)) { gBattleAnimArgs[2] = -gBattleAnimArgs[2]; @@ -31,7 +31,7 @@ void sub_80CAB18(struct Sprite* sprite) void sub_80CAB88(struct Sprite* sprite) { - if (sub_8078718(sprite)) + if (TranslateAnimSpriteLinearAndSine(sprite)) { sprite->invisible = 1; sprite->data[0] = 10; diff --git a/src/battle/anim/sonic.c b/src/battle/anim/sonic.c index 0897ec6e3..2808c86c2 100644 --- a/src/battle/anim/sonic.c +++ b/src/battle/anim/sonic.c @@ -29,7 +29,7 @@ void sub_80CF6DC(struct Sprite* sprite) gBattleAnimArgs[3] = -gBattleAnimArgs[3]; } - sub_80787B0(sprite, 1); + InitAnimSpritePos(sprite, 1); a = GetBankPosition(gAnimBankTarget, 2) + gBattleAnimArgs[2]; b = GetBankPosition(gAnimBankTarget, 3) + gBattleAnimArgs[3]; c = sub_80790F0(a - sprite->pos1.x, b - sprite->pos1.y); @@ -41,7 +41,7 @@ void sub_80CF6DC(struct Sprite* sprite) sprite->data[0] = gBattleAnimArgs[4]; sprite->data[2] = a; sprite->data[4] = b; - sprite->callback = sub_8078B34; + sprite->callback = StartTranslateAnimSpriteByDeltas; StoreSpriteCallbackInData(sprite, DestroyAnimSprite); } diff --git a/src/battle/anim/sonic_task.c b/src/battle/anim/sonic_task.c index 924b1b568..260ae544c 100644 --- a/src/battle/anim/sonic_task.c +++ b/src/battle/anim/sonic_task.c @@ -87,7 +87,7 @@ void sub_80CFB04(u8 taskId) if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE) && IsAnimBankSpriteVisible(gAnimBankTarget ^ 2)) { - sub_807A3FC(gAnimBankTarget, 0, &sp1, &sp2); + SetAverageBattlerPositions(gAnimBankTarget, 0, &sp1, &sp2); } else { diff --git a/src/battle/anim/sunlight.c b/src/battle/anim/sunlight.c index e6fd49a11..88112c74a 100644 --- a/src/battle/anim/sunlight.c +++ b/src/battle/anim/sunlight.c @@ -12,6 +12,6 @@ void sub_80D517C(struct Sprite *sprite) sprite->data[0] = 60; sprite->data[2] = 140; sprite->data[4] = 80; - sprite->callback = sub_8078B34; + sprite->callback = StartTranslateAnimSpriteByDeltas; StoreSpriteCallbackInData(sprite, DestroyAnimSprite); } diff --git a/src/battle/anim/sword.c b/src/battle/anim/sword.c index b46fe6759..3367cca07 100644 --- a/src/battle/anim/sword.c +++ b/src/battle/anim/sword.c @@ -15,7 +15,7 @@ static void sub_80CF6B4(struct Sprite* sprite); void sub_80CF690(struct Sprite* sprite) { - sub_80787B0(sprite, 0); + InitAnimSpritePos(sprite, 0); sprite->callback = sub_80785E4; StoreSpriteCallbackInData(sprite, sub_80CF6B4); } @@ -25,6 +25,6 @@ void sub_80CF6B4(struct Sprite* sprite) sprite->data[0] = 6; sprite->data[2] = sprite->pos1.x; sprite->data[4] = sprite->pos1.y - 32; - sprite->callback = sub_8078B34; + sprite->callback = StartTranslateAnimSpriteByDeltas; StoreSpriteCallbackInData(sprite, DestroyAnimSprite); } diff --git a/src/battle/anim/tile_out.c b/src/battle/anim/tile_out.c index 50468a440..39d4ff01f 100644 --- a/src/battle/anim/tile_out.c +++ b/src/battle/anim/tile_out.c @@ -37,7 +37,7 @@ void sub_80CE1AC(struct Sprite* sprite) sprite->data[0] = 30; sprite->data[2] = GetBankPosition(gAnimBankAttacker, 2); sprite->data[4] = GetBankPosition(gAnimBankAttacker, 3); - sprite->callback = sub_8078B34; + sprite->callback = StartTranslateAnimSpriteByDeltas; StoreSpriteCallbackInData(sprite, DestroyAnimSprite); } } diff --git a/src/battle/anim/unused_8.c b/src/battle/anim/unused_8.c index 03772f951..b5e150dd8 100644 --- a/src/battle/anim/unused_8.c +++ b/src/battle/anim/unused_8.c @@ -15,7 +15,7 @@ static void sub_80CF4B8(struct Sprite* sprite); void sub_80CF458(struct Sprite* sprite) { - sub_80787B0(sprite, 1); + InitAnimSpritePos(sprite, 1); sprite->data[0] = gBattleAnimArgs[2]; sprite->data[1] = gBattleAnimArgs[3]; sprite->data[5] = gBattleAnimArgs[4]; @@ -28,7 +28,7 @@ void sub_80CF490(struct Sprite* sprite) sprite->data[0] = sprite->data[1]; sprite->data[2] = sprite->pos1.x; sprite->data[4] = sprite->pos1.y + 15; - sprite->callback = sub_8078B34; + sprite->callback = StartTranslateAnimSpriteByDeltas; StoreSpriteCallbackInData(sprite, sub_80CF4B8); } diff --git a/src/battle/anim/unused_9.c b/src/battle/anim/unused_9.c index 0efd40c02..6e0d0321b 100644 --- a/src/battle/anim/unused_9.c +++ b/src/battle/anim/unused_9.c @@ -18,7 +18,7 @@ static void sub_80CFE2C(struct Sprite* sprite); void sub_80CFDFC(struct Sprite* sprite) { - sub_80787B0(sprite, 0); + InitAnimSpritePos(sprite, 0); sprite->data[0] = 0x100 + (IndexOfSpritePaletteTag(gSpriteTemplate_83D75AC.paletteTag) << 4); sprite->callback = sub_80CFE2C; } diff --git a/src/battle/anim/water.c b/src/battle/anim/water.c index 4068cbe78..e6945f9b2 100644 --- a/src/battle/anim/water.c +++ b/src/battle/anim/water.c @@ -18,7 +18,7 @@ void sub_80D37FC(struct Sprite *sprite) sprite->data[2] = sprite->pos1.x + gBattleAnimArgs[2]; sprite->data[4] = sprite->pos1.y + gBattleAnimArgs[4]; - sprite->callback = sub_8078B34; + sprite->callback = StartTranslateAnimSpriteByDeltas; StoreSpriteCallbackInData(sprite, DestroyAnimSprite); } @@ -30,7 +30,7 @@ void sub_80D3838(struct Sprite *sprite) } else { - sub_80787B0(sprite, 1); + InitAnimSpritePos(sprite, 1); } sprite->data[7] = gBattleAnimArgs[2]; diff --git a/src/battle/anim/wisp_orb.c b/src/battle/anim/wisp_orb.c index 0cbe6eed7..7c22b7f13 100644 --- a/src/battle/anim/wisp_orb.c +++ b/src/battle/anim/wisp_orb.c @@ -21,7 +21,7 @@ void sub_80D5B0C(struct Sprite *sprite) switch (sprite->data[0]) { case 0: - sub_80787B0(sprite, 0); + InitAnimSpritePos(sprite, 0); StartSpriteAnim(sprite, gBattleAnimArgs[2]); sprite->data[7] = gBattleAnimArgs[2]; @@ -86,7 +86,7 @@ static void sub_80D5C5C(struct Sprite *sprite) s16 initialData5; s16 newData5; - if (!sub_8078B5C(sprite)) + if (!TranslateAnimSpriteByDeltas(sprite)) { sprite->pos2.x += Sin(sprite->data[5], 16); initialData5 = sprite->data[5]; diff --git a/src/battle/battle_anim_80A7E7C.c b/src/battle/battle_anim_80A7E7C.c index 2f10b07ae..f339a1206 100644 --- a/src/battle/battle_anim_80A7E7C.c +++ b/src/battle/battle_anim_80A7E7C.c @@ -1,4 +1,5 @@ #include "global.h" +#include "battle.h" #include "battle_anim.h" #include "rom_8077ABC.h" #include "sprite.h" @@ -16,27 +17,27 @@ extern u8 gAnimBankAttacker; extern u8 gAnimBankTarget; static void AnimTask_ShakeMonStep(u8 taskId); -static void sub_80A808C(u8 taskId); -static void sub_80A81D8(u8 taskId); -static void sub_80A8374(u8 taskId); +static void AnimTask_ShakeMon2Step(u8 taskId); +static void AnimTask_ShakeMonInPlaceStep(u8 taskId); +static void AnimTask_ShakeAndSinkMonStep(u8 taskId); static void sub_80A8488(u8 taskId); -static void sub_80A8530(struct Sprite *sprite); -static void sub_80A85A4(struct Sprite *sprite); -static void sub_80A85C8(struct Sprite *sprite); -static void sub_80A8614(struct Sprite* sprite); -static void sub_80A8638(struct Sprite *sprite); -static void sub_80A86F4(struct Sprite *sprite); -static void sub_80A8764(struct Sprite *sprite); +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 SlideMonToOffset(struct Sprite *sprite); static void sub_80A8818(struct Sprite *sprite); static void sub_80A88F0(struct Sprite *sprite); static void sub_80A89B4(u8 taskId); static void sub_80A8A18(u8 taskId); -static void sub_80A8C0C(u8 taskId); +static void AnimTask_SwayMonStep(u8 taskId); static void sub_80A8D8C(u8 taskId); static void sub_80A8FD8(u8 taskId); static void sub_80A913C(u8 taskId); -const struct SpriteTemplate gBattleAnimSpriteTemplate_83C1FB0 = +const struct SpriteTemplate gHorizontalLungeSpriteTemplate = { .tileTag = 0, .paletteTag = 0, @@ -44,10 +45,10 @@ const struct SpriteTemplate gBattleAnimSpriteTemplate_83C1FB0 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80A8530, + .callback = DoHorizontalLunge, }; -const struct SpriteTemplate gBattleAnimSpriteTemplate_83C1FC8 = +const struct SpriteTemplate gVerticalDipSpriteTemplate = { .tileTag = 0, .paletteTag = 0, @@ -55,10 +56,10 @@ const struct SpriteTemplate gBattleAnimSpriteTemplate_83C1FC8 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80A85C8, + .callback = DoVerticalDip, }; -const struct SpriteTemplate gBattleAnimSpriteTemplate_83C1FE0 = +const struct SpriteTemplate gSlideMonToOriginalPosSpriteTemplate = { .tileTag = 0, .paletteTag = 0, @@ -66,10 +67,10 @@ const struct SpriteTemplate gBattleAnimSpriteTemplate_83C1FE0 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80A8638, + .callback = SlideMonToOriginalPos, }; -const struct SpriteTemplate gBattleAnimSpriteTemplate_83C1FF8 = +const struct SpriteTemplate gSlideMonToOffsetSpriteTemplate = { .tileTag = 0, .paletteTag = 0, @@ -77,7 +78,7 @@ const struct SpriteTemplate gBattleAnimSpriteTemplate_83C1FF8 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80A8764, + .callback = SlideMonToOffset, }; const struct SpriteTemplate gBattleAnimSpriteTemplate_83C2010 = @@ -154,13 +155,19 @@ static void AnimTask_ShakeMonStep(u8 taskId) } } - -void sub_80A7FA0(u8 taskId) +// Task to facilitate simple shaking of a pokemon's picture in battle. +// The shaking alternates between the positive and negative versions of the specified pixel offsets. +// arg 0: anim battler +// arg 1: x pixel offset +// arg 2: y pixel offset +// arg 3: num times to shake +// arg 4: frame delay +void AnimTask_ShakeMon2(u8 taskId) { u8 sprite; - bool8 r6; + bool8 destroy; u8 side; - r6 = 0; + destroy = FALSE; if (gBattleAnimArgs[0] < 4) { sprite = GetAnimBankSpriteId(gBattleAnimArgs[0]); @@ -188,21 +195,23 @@ void sub_80A7FA0(u8 taskId) side = GetBankByIdentity(3); break; } + if (IsAnimBankSpriteVisible(side) == FALSE) - { - r6 = 1; - } + destroy = TRUE; + sprite = gBankSpriteIds[side]; } else { sprite = gBankSpriteIds[gAnimBankAttacker]; } - if (r6) + + if (destroy) { DestroyAnimVisualTask(taskId); return; } + gSprites[sprite].pos2.x = gBattleAnimArgs[1]; gSprites[sprite].pos2.y = gBattleAnimArgs[2]; TASK.data[0] = sprite; @@ -211,30 +220,24 @@ void sub_80A7FA0(u8 taskId) TASK.data[3] = gBattleAnimArgs[4]; TASK.data[4] = gBattleAnimArgs[1]; TASK.data[5] = gBattleAnimArgs[2]; - TASK.func = sub_80A808C; - sub_80A808C(taskId); + TASK.func = AnimTask_ShakeMon2Step; + TASK.func(taskId); } -static void sub_80A808C(u8 taskId) +static void AnimTask_ShakeMon2Step(u8 taskId) { if (TASK.data[3] == 0) { if (SPRITE.pos2.x == TASK.data[4]) - { SPRITE.pos2.x = -TASK.data[4]; - } else - { SPRITE.pos2.x = TASK.data[4]; - } + if (SPRITE.pos2.y == TASK.data[5]) - { SPRITE.pos2.y = -TASK.data[5]; - } else - { SPRITE.pos2.y = TASK.data[5]; - } + TASK.data[3] = TASK.data[2]; if (--TASK.data[1] == 0) { @@ -250,29 +253,37 @@ static void sub_80A808C(u8 taskId) } } -void sub_80A8154(u8 taskId) +// Task to facilitate simple shaking of a pokemon's picture in battle. +// The shaking alternates between the positive and negative versions of the specified pixel offsets +// with respect to the current location of the mon's picture. +// arg 0: battler +// arg 1: x offset +// arg 2: y offset +// arg 3: num shakes +// arg 4: delay +void AnimTask_ShakeMonInPlace(u8 taskId) { - u8 sprite; - sprite = GetAnimBankSpriteId(gBattleAnimArgs[0]); - if (sprite == 0xff) + u8 spriteId = GetAnimBankSpriteId(gBattleAnimArgs[0]); + if (spriteId == 0xff) { DestroyAnimVisualTask(taskId); return; } - gSprites[sprite].pos2.x += gBattleAnimArgs[1]; - gSprites[sprite].pos2.y += gBattleAnimArgs[2]; - TASK.data[0] = sprite; + + gSprites[spriteId].pos2.x += gBattleAnimArgs[1]; + gSprites[spriteId].pos2.y += gBattleAnimArgs[2]; + TASK.data[0] = spriteId; TASK.data[1] = 0; TASK.data[2] = gBattleAnimArgs[3]; TASK.data[3] = 0; TASK.data[4] = gBattleAnimArgs[4]; TASK.data[5] = gBattleAnimArgs[1] * 2; TASK.data[6] = gBattleAnimArgs[2] * 2; - TASK.func = sub_80A81D8; - sub_80A81D8(taskId); + TASK.func = AnimTask_ShakeMonInPlaceStep; + TASK.func(taskId); } -static void sub_80A81D8(u8 taskId) +static void AnimTask_ShakeMonInPlaceStep(u8 taskId) { if (TASK.data[3] == 0) { @@ -309,7 +320,13 @@ static void sub_80A81D8(u8 taskId) } } -void sub_80A8314(u8 taskId) +// Shakes a mon bg horizontally and moves it downward linearly. +// arg 0: battler +// arg 1: x offset +// arg 2: frame delay between each movement +// arg 3: downward speed (subpixel) +// arg 4: duration +void AnimTask_ShakeAndSinkMon(u8 taskId) { u8 sprite = GetAnimBankSpriteId(gBattleAnimArgs[0]); gSprites[sprite].pos2.x = gBattleAnimArgs[1]; @@ -318,11 +335,11 @@ void sub_80A8314(u8 taskId) TASK.data[2] = gBattleAnimArgs[2]; TASK.data[3] = gBattleAnimArgs[3]; TASK.data[4] = gBattleAnimArgs[4]; - TASK.func = sub_80A8374; - sub_80A8374(taskId); + TASK.func = AnimTask_ShakeAndSinkMonStep; + TASK.func(taskId); } -static void sub_80A8374(u8 taskId) +static void AnimTask_ShakeAndSinkMonStep(u8 taskId) { s16 x; u8 sprite; @@ -332,11 +349,11 @@ static void sub_80A8374(u8 taskId) { TASK.data[8] = 0; if (gSprites[sprite].pos2.x == x) - { x = -x; - } + gSprites[sprite].pos2.x += x; } + TASK.data[1] = x; TASK.data[9] += TASK.data[3]; gSprites[sprite].pos2.y = TASK.data[9] >> 8; @@ -347,89 +364,109 @@ static void sub_80A8374(u8 taskId) } } -void sub_80A8408(u8 taskId) +// Moves a mon bg picture along an elliptical path that begins +// and ends at the mon's origin location. +// arg 0: battler +// arg 1: ellipse width +// arg 2: ellipse height +// arg 3: num loops +// arg 4: speed (valid values are 0-5) +void AnimTask_TranslateMonElliptical(u8 taskId) { u8 i; - u8 sprite; - u8 v1; - v1 = 1; - sprite = GetAnimBankSpriteId(gBattleAnimArgs[0]); + u8 spriteId; + u8 wavePeriod; + + wavePeriod = 1; + spriteId = GetAnimBankSpriteId(gBattleAnimArgs[0]); if (gBattleAnimArgs[4] > 5) - { gBattleAnimArgs[4] = 5; - } + for (i = 0; i < gBattleAnimArgs[4]; i++) { - v1 <<= 1; + wavePeriod <<= 1; } - TASK.data[0] = sprite; + + TASK.data[0] = spriteId; TASK.data[1] = gBattleAnimArgs[1]; TASK.data[2] = gBattleAnimArgs[2]; TASK.data[3] = gBattleAnimArgs[3]; - TASK.data[4] = v1; + TASK.data[4] = wavePeriod; TASK.func = sub_80A8488; - sub_80A8488(taskId); + TASK.func(taskId); } static void sub_80A8488(u8 taskId) { - u8 sprite; - sprite = TASK.data[0]; - gSprites[sprite].pos2.x = Sin(TASK.data[5], TASK.data[1]); - gSprites[sprite].pos2.y = -Cos(TASK.data[5], TASK.data[2]); - gSprites[sprite].pos2.y += TASK.data[2]; + u8 spriteId = TASK.data[0]; + gSprites[spriteId].pos2.x = Sin(TASK.data[5], TASK.data[1]); + gSprites[spriteId].pos2.y = -Cos(TASK.data[5], TASK.data[2]); + gSprites[spriteId].pos2.y += TASK.data[2]; TASK.data[5] += TASK.data[4]; TASK.data[5] &= 0xff; + if (TASK.data[5] == 0) - { TASK.data[3]--; - } + if (TASK.data[3] == 0) { - gSprites[sprite].pos2.x = 0; - gSprites[sprite].pos2.y = 0; + gSprites[spriteId].pos2.x = 0; + gSprites[spriteId].pos2.y = 0; DestroyAnimVisualTask(taskId); return; } } -void sub_80A8500(u8 taskId) +// Moves a mon bg picture along an elliptical path that begins +// and ends at the mon's origin location. Reverses the direction +// of the path if it's not on the player's side of the battle. +// arg 0: battler +// arg 1: ellipse width +// arg 2: ellipse height +// arg 3: num loops +// arg 4: speed (valid values are 0-5) +void AnimTask_TranslateMonEllipticalRespectSide(u8 taskId) { - if (GetBankSide(gAnimBankAttacker)) - { + if (GetBankSide(gAnimBankAttacker) != SIDE_PLAYER) gBattleAnimArgs[1] = -gBattleAnimArgs[1]; - } - sub_80A8408(taskId); + + AnimTask_TranslateMonElliptical(taskId); } -static void sub_80A8530(struct Sprite *sprite) +// Performs a simple horizontal lunge, where the mon moves +// horizontally, and then moves back in the opposite direction. +// arg 0: duration of single lunge direction +// arg 1: x pixel delta that is applied each frame +static void DoHorizontalLunge(struct Sprite *sprite) { sprite->invisible = TRUE; - if (GetBankSide(gAnimBankAttacker)) - { + if (GetBankSide(gAnimBankAttacker) != SIDE_PLAYER) sprite->data[1] = -gBattleAnimArgs[1]; - } else - { sprite->data[1] = gBattleAnimArgs[1]; - } + sprite->data[0] = gBattleAnimArgs[0]; sprite->data[2] = 0; sprite->data[3] = gBankSpriteIds[gAnimBankAttacker]; sprite->data[4] = gBattleAnimArgs[0]; - StoreSpriteCallbackInData(sprite, sub_80A85A4); - sprite->callback = sub_8078458; + StoreSpriteCallbackInData(sprite, ReverseHorizontalLungeDirection); + sprite->callback = TranslateMonBGUntil; } -static void sub_80A85A4(struct Sprite *sprite) +static void ReverseHorizontalLungeDirection(struct Sprite *sprite) { sprite->data[0] = sprite->data[4]; sprite->data[1] = -sprite->data[1]; - sprite->callback = sub_8078458; + sprite->callback = TranslateMonBGUntil; StoreSpriteCallbackInData(sprite, DestroyAnimSprite); } -static void sub_80A85C8(struct Sprite *sprite) +// Performs a simple vertical dipping motion, where moves vertically, and then +// moves back in the opposite direction. +// arg 0: duration of single dip direction +// arg 1: y pixel delta that is applied each frame +// arg 2: battler +static void DoVerticalDip(struct Sprite *sprite) { u8 spriteId; sprite->invisible = TRUE; @@ -439,73 +476,72 @@ static void sub_80A85C8(struct Sprite *sprite) sprite->data[2] = gBattleAnimArgs[1]; sprite->data[3] = spriteId; sprite->data[4] = gBattleAnimArgs[0]; - StoreSpriteCallbackInData(sprite, sub_80A8614); - sprite->callback = sub_8078458; + StoreSpriteCallbackInData(sprite, ReverseVerticalDipDirection); + sprite->callback = TranslateMonBGUntil; } -static void sub_80A8614(struct Sprite *sprite) +static void ReverseVerticalDipDirection(struct Sprite *sprite) { sprite->data[0] = sprite->data[4]; sprite->data[2] = -sprite->data[2]; - sprite->callback = sub_8078458; + sprite->callback = TranslateMonBGUntil; StoreSpriteCallbackInData(sprite, DestroyAnimSprite); } -static void sub_80A8638(struct Sprite *sprite) +// Linearly slides a mon's bg picture back to its original sprite position. +// The sprite parameter is a dummy sprite used for facilitating the movement with its callback. +// arg 0: 1 = target or 0 = attacker +// arg 1: direction (0 = horizontal and vertical, 1 = horizontal only, 2 = vertical only) +// arg 2: duration +static void SlideMonToOriginalPos(struct Sprite *sprite) { int something; - int spriteId; + int monSpriteId; if (!gBattleAnimArgs[0]) - { - spriteId = gBankSpriteIds[gAnimBankAttacker]; - } + monSpriteId = gBankSpriteIds[gAnimBankAttacker]; else - { - spriteId = gBankSpriteIds[gAnimBankTarget]; - } + monSpriteId = gBankSpriteIds[gAnimBankTarget]; + sprite->data[0] = gBattleAnimArgs[2]; - sprite->data[1] = gSprites[spriteId].pos1.x + gSprites[spriteId].pos2.x; - sprite->data[2] = gSprites[spriteId].pos1.x; - sprite->data[3] = gSprites[spriteId].pos1.y + gSprites[spriteId].pos2.y; - sprite->data[4] = gSprites[spriteId].pos1.y; + sprite->data[1] = gSprites[monSpriteId].pos1.x + gSprites[monSpriteId].pos2.x; + sprite->data[2] = gSprites[monSpriteId].pos1.x; + sprite->data[3] = gSprites[monSpriteId].pos1.y + gSprites[monSpriteId].pos2.y; + sprite->data[4] = gSprites[monSpriteId].pos1.y; something = 0; - sub_8078A5C(sprite); + InitSpriteDataForLinearTranslation(sprite); sprite->data[3] = something; sprite->data[4] = something; - sprite->data[5] = gSprites[spriteId].pos2.x; - sprite->data[6] = gSprites[spriteId].pos2.y; + sprite->data[5] = gSprites[monSpriteId].pos2.x; + sprite->data[6] = gSprites[monSpriteId].pos2.y; sprite->invisible = TRUE; + if (gBattleAnimArgs[1] == 1) - { sprite->data[2] = something; - } else if (gBattleAnimArgs[1] == 2) - { sprite->data[1] = something; - } + sprite->data[7] = gBattleAnimArgs[1]; - sprite->data[7] |= spriteId << 8; - sprite->callback = sub_80A86F4; + sprite->data[7] |= monSpriteId << 8; + sprite->callback = SlideMonToOriginalPosStep; } -static void sub_80A86F4(struct Sprite *sprite) +static void SlideMonToOriginalPosStep(struct Sprite *sprite) { - s8 spriteId; + s8 monSpriteId; u8 lo; - struct Sprite *sprite2; + struct Sprite *monSprite; + lo = sprite->data[7] & 0xff; - spriteId = sprite->data[7] >> 8; - sprite2 = &gSprites[spriteId]; + monSpriteId = sprite->data[7] >> 8; + monSprite = &gSprites[monSpriteId]; if (sprite->data[0] == 0) { if (lo < 2) - { - sprite2->pos2.x = 0; - } + monSprite->pos2.x = 0; + if (lo == 2 || lo == 0) - { - sprite2->pos2.y = 0; - } + monSprite->pos2.y = 0; + DestroyAnimSprite(sprite); } else @@ -513,25 +549,30 @@ static void sub_80A86F4(struct Sprite *sprite) sprite->data[0]--; sprite->data[3] += sprite->data[1]; sprite->data[4] += sprite->data[2]; - sprite2->pos2.x = (s8)(sprite->data[3] >> 8) + sprite->data[5]; - sprite2->pos2.y = (s8)(sprite->data[4] >> 8) + sprite->data[6]; + monSprite->pos2.x = (s8)(sprite->data[3] >> 8) + sprite->data[5]; + monSprite->pos2.y = (s8)(sprite->data[4] >> 8) + sprite->data[6]; } } -static void sub_80A8764(struct Sprite *sprite) +// Linearly translates a mon to a target offset. The horizontal offset +// is mirrored for the opponent's pokemon, and the vertical offset +// is only mirrored if arg 3 is set to 1. +// arg 0: 0 = attacker, 1 = target +// arg 1: target x pixel offset +// arg 2: target y pixel offset +// arg 3: mirror vertical translation for opposite battle side +// arg 4: duration +static void SlideMonToOffset(struct Sprite *sprite) { - u8 v1; - u8 spriteId; + u8 battler; + u8 monSpriteId; if (!gBattleAnimArgs[0]) - { - v1 = gAnimBankAttacker; - } + battler = gAnimBankAttacker; else - { - v1 = gAnimBankTarget; - } - spriteId = gBankSpriteIds[v1]; - if (GetBankSide(v1)) + battler = gAnimBankTarget; + + monSpriteId = gBankSpriteIds[battler]; + if (GetBankSide(battler) != SIDE_PLAYER) { gBattleAnimArgs[1] = -gBattleAnimArgs[1]; if (gBattleAnimArgs[3] == 1) @@ -539,18 +580,19 @@ static void sub_80A8764(struct Sprite *sprite) gBattleAnimArgs[2] = -gBattleAnimArgs[2]; } } + sprite->data[0] = gBattleAnimArgs[4]; - sprite->data[1] = gSprites[spriteId].pos1.x; - sprite->data[2] = gSprites[spriteId].pos1.x + gBattleAnimArgs[1]; - sprite->data[3] = gSprites[spriteId].pos1.y; - sprite->data[4] = gSprites[spriteId].pos1.y + gBattleAnimArgs[2]; - sub_8078A5C(sprite); + sprite->data[1] = gSprites[monSpriteId].pos1.x; + sprite->data[2] = gSprites[monSpriteId].pos1.x + gBattleAnimArgs[1]; + sprite->data[3] = gSprites[monSpriteId].pos1.y; + sprite->data[4] = gSprites[monSpriteId].pos1.y + gBattleAnimArgs[2]; + InitSpriteDataForLinearTranslation(sprite); sprite->data[3] = 0; sprite->data[4] = 0; - sprite->data[5] = spriteId; + sprite->data[5] = monSpriteId; sprite->invisible = TRUE; StoreSpriteCallbackInData(sprite, DestroyAnimSprite); - sprite->callback = sub_80784A8; + sprite->callback = TranslateMonBGSubPixelUntil; } static void sub_80A8818(struct Sprite *sprite) @@ -580,7 +622,7 @@ static void sub_80A8818(struct Sprite *sprite) sprite->data[2] = sprite->data[1] + gBattleAnimArgs[1]; sprite->data[3] = gSprites[spriteId].pos1.y + gSprites[spriteId].pos2.y; sprite->data[4] = sprite->data[3] + gBattleAnimArgs[2]; - sub_8078A5C(sprite); + InitSpriteDataForLinearTranslation(sprite); sprite->data[3] = gSprites[spriteId].pos2.x << 8; sprite->data[4] = gSprites[spriteId].pos2.y << 8; sprite->data[5] = spriteId; @@ -593,7 +635,7 @@ static void sub_80A8818(struct Sprite *sprite) { StoreSpriteCallbackInData(sprite, sub_80A88F0); } - sprite->callback = sub_80784A8; + sprite->callback = TranslateMonBGSubPixelUntil; } @@ -712,59 +754,67 @@ static void sub_80A8B3C(u8 taskId) } } -void sub_80A8B88(u8 taskId) +// Task that facilitates translating the mon bg picture back and forth +// in a swaying motion (uses Sine wave). It can sway either horizontally +// or vertically, but not both. +// arg 0: direction (0 = horizontal, 1 = vertical) +// arg 1: wave amplitude +// arg 2: wave period +// arg 3: num sways +// arg 4: which mon (0 = attacker, 1`= target) +void AnimTask_SwayMon(u8 taskId) { u8 spriteId; - if (GetBankSide(gAnimBankAttacker)) - { + if (GetBankSide(gAnimBankAttacker) != SIDE_PLAYER) gBattleAnimArgs[1] = -gBattleAnimArgs[1]; - } + spriteId = GetAnimBankSpriteId(gBattleAnimArgs[4]); TASK.data[0] = gBattleAnimArgs[0]; TASK.data[1] = gBattleAnimArgs[1]; TASK.data[2] = gBattleAnimArgs[2]; TASK.data[3] = gBattleAnimArgs[3]; TASK.data[4] = spriteId; + if (gBattleAnimArgs[4] == 0) - { TASK.data[5] = gAnimBankAttacker; - } else - { TASK.data[5] = gAnimBankTarget; - } + TASK.data[12] = 1; - TASK.func = sub_80A8C0C; + TASK.func = AnimTask_SwayMonStep; } -static void sub_80A8C0C(u8 taskId) +static void AnimTask_SwayMonStep(u8 taskId) { - s16 y; + s16 sineValue; u8 spriteId; - int index; - u16 val; + int waveIndex; + u16 sineIndex; + spriteId = TASK.data[4]; - val = TASK.data[10] + TASK.data[2]; - TASK.data[10] = val; - index = val >> 8; - y = Sin(index, TASK.data[1]); + sineIndex = TASK.data[10] + TASK.data[2]; + TASK.data[10] = sineIndex; + waveIndex = sineIndex >> 8; + sineValue = Sin(waveIndex, TASK.data[1]); + if (TASK.data[0] == 0) { - gSprites[spriteId].pos2.x = y; + gSprites[spriteId].pos2.x = sineValue; } else { - if (GetBankSide(TASK.data[5]) == 0) + if (GetBankSide(TASK.data[5]) == SIDE_PLAYER) { - gSprites[spriteId].pos2.y = (y >= 0) ? y : -y; + gSprites[spriteId].pos2.y = (sineValue >= 0) ? sineValue : -sineValue; } else { - gSprites[spriteId].pos2.y = (y >= 0) ? -y : y; + gSprites[spriteId].pos2.y = (sineValue >= 0) ? -sineValue : sineValue; } } - if (((index >= 0x80u) && (TASK.data[11] == 0) && (TASK.data[12] == 1)) - || ((index < 0x7fu) && (TASK.data[11] == 1) && (TASK.data[12] == 0))) + + if (((waveIndex >= 0x80u) && (TASK.data[11] == 0) && (TASK.data[12] == 1)) + || ((waveIndex < 0x7fu) && (TASK.data[11] == 1) && (TASK.data[12] == 0))) { TASK.data[11] ^= 1; TASK.data[12] ^= 1; diff --git a/src/battle/battle_controller_linkopponent.c b/src/battle/battle_controller_linkopponent.c index 604c21e6d..21ac62401 100644 --- a/src/battle/battle_controller_linkopponent.c +++ b/src/battle/battle_controller_linkopponent.c @@ -73,7 +73,7 @@ extern void sub_80313A0(struct Sprite *); extern void sub_803757C(void); extern void oamt_add_pos2_onto_pos1(); extern void StoreSpriteCallbackInData(); -extern void sub_8078B34(struct Sprite *); +extern void StartTranslateAnimSpriteByDeltas(struct Sprite *); extern void sub_80375B4(void); extern void sub_8010384(struct Sprite *); extern void sub_8037B78(void); @@ -1282,7 +1282,7 @@ void LinkOpponentHandleTrainerSlideBack(void) gSprites[gBankSpriteIds[gActiveBank]].data[0] = 35; gSprites[gBankSpriteIds[gActiveBank]].data[2] = 280; gSprites[gBankSpriteIds[gActiveBank]].data[4] = gSprites[gBankSpriteIds[gActiveBank]].pos1.y; - gSprites[gBankSpriteIds[gActiveBank]].callback = sub_8078B34; + gSprites[gBankSpriteIds[gActiveBank]].callback = StartTranslateAnimSpriteByDeltas; StoreSpriteCallbackInData(&gSprites[gBankSpriteIds[gActiveBank]], SpriteCallbackDummy); gBattleBankFunc[gActiveBank] = sub_80375B4; } @@ -1633,7 +1633,7 @@ void LinkOpponentHandleTrainerBallThrow(void) gSprites[gBankSpriteIds[gActiveBank]].data[0] = 35; gSprites[gBankSpriteIds[gActiveBank]].data[2] = 280; gSprites[gBankSpriteIds[gActiveBank]].data[4] = gSprites[gBankSpriteIds[gActiveBank]].pos1.y; - gSprites[gBankSpriteIds[gActiveBank]].callback = sub_8078B34; + gSprites[gBankSpriteIds[gActiveBank]].callback = StartTranslateAnimSpriteByDeltas; StoreSpriteCallbackInData(&gSprites[gBankSpriteIds[gActiveBank]], sub_803A3A8); taskId = CreateTask(sub_803A2C4, 5); gTasks[taskId].data[0] = gActiveBank; diff --git a/src/battle/battle_controller_linkpartner.c b/src/battle/battle_controller_linkpartner.c index e1f93ba08..1d42f56c3 100644 --- a/src/battle/battle_controller_linkpartner.c +++ b/src/battle/battle_controller_linkpartner.c @@ -76,7 +76,7 @@ extern u8 sub_8031720(); extern u8 mplay_80342A4(); extern void oamt_add_pos2_onto_pos1(); extern void StoreSpriteCallbackInData(); -extern void sub_8078B34(struct Sprite *); +extern void StartTranslateAnimSpriteByDeltas(struct Sprite *); extern void sub_80105EC(struct Sprite *); extern s32 sub_803FC34(u16); extern void LoadPlayerTrainerBankSprite(); @@ -1227,7 +1227,7 @@ void LinkPartnerHandleTrainerSlideBack(void) gSprites[gBankSpriteIds[gActiveBank]].data[0] = 35; gSprites[gBankSpriteIds[gActiveBank]].data[2] = -40; gSprites[gBankSpriteIds[gActiveBank]].data[4] = gSprites[gBankSpriteIds[gActiveBank]].pos1.y; - gSprites[gBankSpriteIds[gActiveBank]].callback = sub_8078B34; + gSprites[gBankSpriteIds[gActiveBank]].callback = StartTranslateAnimSpriteByDeltas; StoreSpriteCallbackInData(&gSprites[gBankSpriteIds[gActiveBank]], SpriteCallbackDummy); gBattleBankFunc[gActiveBank] = sub_811DB1C; } @@ -1579,7 +1579,7 @@ void LinkPartnerHandleTrainerBallThrow(void) gSprites[gBankSpriteIds[gActiveBank]].data[0] = 50; gSprites[gBankSpriteIds[gActiveBank]].data[2] = -40; gSprites[gBankSpriteIds[gActiveBank]].data[4] = gSprites[gBankSpriteIds[gActiveBank]].pos1.y; - gSprites[gBankSpriteIds[gActiveBank]].callback = sub_8078B34; + gSprites[gBankSpriteIds[gActiveBank]].callback = StartTranslateAnimSpriteByDeltas; gSprites[gBankSpriteIds[gActiveBank]].data[5] = gActiveBank; StoreSpriteCallbackInData(&gSprites[gBankSpriteIds[gActiveBank]], sub_8030E38); StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBank]], 1); diff --git a/src/battle/battle_controller_opponent.c b/src/battle/battle_controller_opponent.c index 5fb642e0c..8e8743dbc 100644 --- a/src/battle/battle_controller_opponent.c +++ b/src/battle/battle_controller_opponent.c @@ -84,7 +84,7 @@ extern void sub_80313A0(struct Sprite *); extern void sub_8032B4C(void); extern void sub_8031A6C(u16, u8); extern void sub_8032B84(void); -extern void sub_8078B34(struct Sprite *); +extern void StartTranslateAnimSpriteByDeltas(struct Sprite *); extern void sub_8032BBC(void); extern void oamt_add_pos2_onto_pos1(); extern void StoreSpriteCallbackInData(); @@ -1286,7 +1286,7 @@ void OpponentHandleTrainerSlideBack(void) gSprites[gBankSpriteIds[gActiveBank]].data[0] = 35; gSprites[gBankSpriteIds[gActiveBank]].data[2] = 280; gSprites[gBankSpriteIds[gActiveBank]].data[4] = gSprites[gBankSpriteIds[gActiveBank]].pos1.y; - gSprites[gBankSpriteIds[gActiveBank]].callback = sub_8078B34; + gSprites[gBankSpriteIds[gActiveBank]].callback = StartTranslateAnimSpriteByDeltas; StoreSpriteCallbackInData(&gSprites[gBankSpriteIds[gActiveBank]], SpriteCallbackDummy); gBattleBankFunc[gActiveBank] = sub_8032BBC; } @@ -2225,7 +2225,7 @@ void OpponentHandleTrainerBallThrow(void) gSprites[gBankSpriteIds[gActiveBank]].data[0] = 35; gSprites[gBankSpriteIds[gActiveBank]].data[2] = 280; gSprites[gBankSpriteIds[gActiveBank]].data[4] = gSprites[gBankSpriteIds[gActiveBank]].pos1.y; - gSprites[gBankSpriteIds[gActiveBank]].callback = sub_8078B34; + gSprites[gBankSpriteIds[gActiveBank]].callback = StartTranslateAnimSpriteByDeltas; StoreSpriteCallbackInData(&gSprites[gBankSpriteIds[gActiveBank]], sub_8035C10); taskId = CreateTask(sub_8035C44, 5); gTasks[taskId].data[0] = gActiveBank; diff --git a/src/battle/battle_controller_player.c b/src/battle/battle_controller_player.c index 33a29c064..e28c058a3 100644 --- a/src/battle/battle_controller_player.c +++ b/src/battle/battle_controller_player.c @@ -102,7 +102,7 @@ extern void sub_8047858(); extern u8 GetBankSide(u8); extern void StartBattleIntroAnim(); extern void oamt_add_pos2_onto_pos1(); -extern void sub_8078B34(struct Sprite *); +extern void StartTranslateAnimSpriteByDeltas(struct Sprite *); extern void StoreSpriteCallbackInData(); extern void BattleLoadPlayerMonSprite(); extern bool8 IsDoubleBattle(void); @@ -3145,7 +3145,7 @@ void PlayerHandleTrainerSlideBack(void) gSprites[gBankSpriteIds[gActiveBank]].data[0] = 50; gSprites[gBankSpriteIds[gActiveBank]].data[2] = -40; gSprites[gBankSpriteIds[gActiveBank]].data[4] = gSprites[gBankSpriteIds[gActiveBank]].pos1.y; - gSprites[gBankSpriteIds[gActiveBank]].callback = sub_8078B34; + gSprites[gBankSpriteIds[gActiveBank]].callback = StartTranslateAnimSpriteByDeltas; StoreSpriteCallbackInData(&gSprites[gBankSpriteIds[gActiveBank]], SpriteCallbackDummy); StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBank]], 1); gBattleBankFunc[gActiveBank] = sub_802D274; @@ -3600,7 +3600,7 @@ void PlayerHandleTrainerBallThrow(void) gSprites[gBankSpriteIds[gActiveBank]].data[0] = 50; gSprites[gBankSpriteIds[gActiveBank]].data[2] = -40; gSprites[gBankSpriteIds[gActiveBank]].data[4] = gSprites[gBankSpriteIds[gActiveBank]].pos1.y; - gSprites[gBankSpriteIds[gActiveBank]].callback = sub_8078B34; + gSprites[gBankSpriteIds[gActiveBank]].callback = StartTranslateAnimSpriteByDeltas; gSprites[gBankSpriteIds[gActiveBank]].data[5] = gActiveBank; StoreSpriteCallbackInData(&gSprites[gBankSpriteIds[gActiveBank]], sub_8030E38); StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBank]], 1); diff --git a/src/battle/battle_controller_wally.c b/src/battle/battle_controller_wally.c index 3eacaa085..c590b487c 100644 --- a/src/battle/battle_controller_wally.c +++ b/src/battle/battle_controller_wally.c @@ -87,7 +87,7 @@ extern void sub_80304A8(void); extern void sub_8047858(); extern void StartBattleIntroAnim(); extern void oamt_add_pos2_onto_pos1(); -extern void sub_8078B34(struct Sprite *); +extern void StartTranslateAnimSpriteByDeltas(struct Sprite *); extern void sub_8030E38(struct Sprite *); extern void StoreSpriteCallbackInData(); extern u8 sub_8046400(); @@ -1484,7 +1484,7 @@ void WallyHandleTrainerBallThrow(void) gSprites[gBankSpriteIds[gActiveBank]].data[0] = 50; gSprites[gBankSpriteIds[gActiveBank]].data[2] = -40; gSprites[gBankSpriteIds[gActiveBank]].data[4] = gSprites[gBankSpriteIds[gActiveBank]].pos1.y; - gSprites[gBankSpriteIds[gActiveBank]].callback = sub_8078B34; + gSprites[gBankSpriteIds[gActiveBank]].callback = StartTranslateAnimSpriteByDeltas; gSprites[gBankSpriteIds[gActiveBank]].data[5] = gActiveBank; StoreSpriteCallbackInData(&gSprites[gBankSpriteIds[gActiveBank]], sub_8030E38); StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBank]], 1); diff --git a/src/battle/pokeball.c b/src/battle/pokeball.c index f5b8e1c5d..3a47e0204 100644 --- a/src/battle/pokeball.c +++ b/src/battle/pokeball.c @@ -298,7 +298,7 @@ const struct SpriteTemplate gBallSpriteTemplates[] = extern u32 ball_number_to_ball_processing_index(u16); // not sure of return type extern void sub_80786EC(); -extern bool8 sub_8078718(struct Sprite *); +extern bool8 TranslateAnimSpriteLinearAndSine(struct Sprite *); extern u8 sub_814086C(u8, u8, int, int, u8); extern u8 sub_8141314(u8, u8, int, u8); @@ -406,7 +406,7 @@ static void sub_8046464(u8 taskId) static void objc_0804ABD4(struct Sprite *sprite) { - if (sub_8078718(sprite)) + if (TranslateAnimSpriteLinearAndSine(sprite)) { u8 taskId = sprite->oam.affineParam; u8 r5 = gTasks[taskId].data[4]; @@ -858,7 +858,7 @@ static void sub_80470C4(struct Sprite *sprite) StartSpriteAffineAnim(sprite, 4); } r4 = sprite->data[0]; - sub_8078B5C(sprite); + TranslateAnimSpriteByDeltas(sprite); sprite->data[7] += sprite->data[6] / 3; sprite->pos2.y += Sin(HIBYTE(sprite->data[7]), sprite->data[5]); sprite->oam.affineParam += 0x100; @@ -876,7 +876,7 @@ static void sub_80470C4(struct Sprite *sprite) } else { - if (sub_8078718(sprite)) + if (TranslateAnimSpriteLinearAndSine(sprite)) { sprite->pos1.x += sprite->pos2.x; sprite->pos1.y += sprite->pos2.y; diff --git a/src/rom_8077ABC.c b/src/rom_8077ABC.c index a60fc1078..395736d03 100644 --- a/src/rom_8077ABC.c +++ b/src/rom_8077ABC.c @@ -636,7 +636,7 @@ void unref_sub_8078414(struct Sprite *sprite) sprite->callback = sub_80782F8; } -void sub_8078458(struct Sprite *sprite) +void TranslateMonBGUntil(struct Sprite *sprite) { if (sprite->data[0] > 0) { @@ -650,7 +650,9 @@ void sub_8078458(struct Sprite *sprite) } } -void sub_80784A8(struct Sprite *sprite) +// Same as TranslateMonBGUntil, but it operates on sub-pixel values +// to handle slower translations. +void TranslateMonBGSubPixelUntil(struct Sprite *sprite) { if (sprite->data[0] > 0) { @@ -766,14 +768,14 @@ void sub_80786EC(struct Sprite *sprite) { sprite->data[1] = sprite->pos1.x; sprite->data[3] = sprite->pos1.y; - obj_translate_based_on_private_1_2_3_4(sprite); + InitAnimSpriteTranslationDeltas(sprite); sprite->data[6] = 0x8000 / sprite->data[0]; sprite->data[7] = 0; } -bool8 sub_8078718(struct Sprite *sprite) +bool8 TranslateAnimSpriteLinearAndSine(struct Sprite *sprite) { - if (sub_8078B5C(sprite)) + if (TranslateAnimSpriteByDeltas(sprite)) return TRUE; sprite->data[7] += sprite->data[6]; sprite->pos2.y += Sin((u8)(sprite->data[7] >> 8), sprite->data[5]); @@ -799,7 +801,7 @@ void sub_8078764(struct Sprite *sprite, bool8 a2) sprite->pos1.y += gBattleAnimArgs[1]; } -void sub_80787B0(struct Sprite *sprite, u8 a2) +void InitAnimSpritePos(struct Sprite *sprite, u8 a2) { if (!a2) { @@ -938,12 +940,12 @@ void sub_8078A34(struct Sprite *sprite) { sprite->data[1] = sprite->pos1.x; sprite->data[3] = sprite->pos1.y; - sub_8078A5C(sprite); + InitSpriteDataForLinearTranslation(sprite); sprite->callback = sub_80783D0; sprite->callback(sprite); } -void sub_8078A5C(struct Sprite *sprite) +void InitSpriteDataForLinearTranslation(struct Sprite *sprite) { s16 x = (sprite->data[2] - sprite->data[1]) << 8; s16 y = (sprite->data[4] - sprite->data[3]) << 8; @@ -953,44 +955,44 @@ void sub_8078A5C(struct Sprite *sprite) sprite->data[3] = 0; } -void obj_translate_based_on_private_1_2_3_4(struct Sprite *sprite) +void InitAnimSpriteTranslationDeltas(struct Sprite *sprite) { int x = sprite->data[2] - sprite->data[1]; int y = sprite->data[4] - sprite->data[3]; - bool8 r8 = x < 0; - bool8 r9 = y < 0; - u16 x2 = abs(x) << 8; - u16 y2 = abs(y) << 8; + bool8 movingLeft = x < 0; + bool8 movingUp = y < 0; + u16 xDelta = abs(x) << 8; + u16 yDelta = abs(y) << 8; - x2 = x2 / sprite->data[0]; - y2 = y2 / sprite->data[0]; + xDelta = xDelta / sprite->data[0]; + yDelta = yDelta / sprite->data[0]; - if (r8) - x2 |= 1; + if (movingLeft) + xDelta |= 1; else - x2 &= ~1; + xDelta &= ~1; - if (r9) - y2 |= 1; + if (movingUp) + yDelta |= 1; else - y2 &= ~1; + yDelta &= ~1; - sprite->data[1] = x2; - sprite->data[2] = y2; + sprite->data[1] = xDelta; + sprite->data[2] = yDelta; sprite->data[4] = 0; sprite->data[3] = 0; } -void sub_8078B34(struct Sprite *sprite) +void StartTranslateAnimSpriteByDeltas(struct Sprite *sprite) { sprite->data[1] = sprite->pos1.x; sprite->data[3] = sprite->pos1.y; - obj_translate_based_on_private_1_2_3_4(sprite); - sprite->callback = sub_8078BB8; + InitAnimSpriteTranslationDeltas(sprite); + sprite->callback = TranslateAnimSpriteByDeltasUntil; sprite->callback(sprite); } -bool8 sub_8078B5C(struct Sprite *sprite) +bool8 TranslateAnimSpriteByDeltas(struct Sprite *sprite) { u16 v1, v2, x, y; @@ -1020,9 +1022,9 @@ bool8 sub_8078B5C(struct Sprite *sprite) return FALSE; } -void sub_8078BB8(struct Sprite *sprite) +void TranslateAnimSpriteByDeltasUntil(struct Sprite *sprite) { - if (sub_8078B5C(sprite)) + if (TranslateAnimSpriteByDeltas(sprite)) SetCallbackToStoredInData(sprite); } @@ -1030,7 +1032,7 @@ void sub_8078BD4(struct Sprite *sprite) { int v1 = abs(sprite->data[2] - sprite->data[1]) << 8; sprite->data[0] = v1 / sprite->data[0]; - obj_translate_based_on_private_1_2_3_4(sprite); + InitAnimSpriteTranslationDeltas(sprite); } void sub_8078C00(struct Sprite *sprite) @@ -1038,7 +1040,7 @@ void sub_8078C00(struct Sprite *sprite) sprite->data[1] = sprite->pos1.x; sprite->data[3] = sprite->pos1.y; sub_8078BD4(sprite); - sprite->callback = sub_8078BB8; + sprite->callback = TranslateAnimSpriteByDeltasUntil; sprite->callback(sprite); } @@ -1380,7 +1382,7 @@ void sub_80793C4(struct Sprite *sprite) else var = FALSE; if (!gBattleAnimArgs[2]) - sub_80787B0(sprite, var); + InitAnimSpritePos(sprite, var); else sub_8078764(sprite, var); sprite->data[0]++; @@ -1392,7 +1394,15 @@ void sub_80793C4(struct Sprite *sprite) } } -void sub_807941C(struct Sprite *sprite) +// Linearly translates a sprite to a target position on the +// other mon's sprite. +// arg 0: initial x offset +// arg 1: initial y offset +// arg 2: target x offset +// arg 3: target y offset +// arg 4: duration +// arg 5: lower 8 bits = location on attacking mon, upper 8 bits = location on target mon pick to target +void TranslateAnimSpriteToTargetMonLocation(struct Sprite *sprite) { bool8 v1; u8 v2; @@ -1407,19 +1417,20 @@ void sub_807941C(struct Sprite *sprite) else v2 = 1; - sub_80787B0(sprite, v1); - if (GetBankSide(gAnimBankAttacker)) + InitAnimSpritePos(sprite, v1); + if (GetBankSide(gAnimBankAttacker) != SIDE_PLAYER) gBattleAnimArgs[2] = -gBattleAnimArgs[2]; + sprite->data[0] = gBattleAnimArgs[4]; sprite->data[2] = GetBankPosition(gAnimBankTarget, 2) + gBattleAnimArgs[2]; sprite->data[4] = GetBankPosition(gAnimBankTarget, v2) + gBattleAnimArgs[3]; - sprite->callback = sub_8078B34; + sprite->callback = StartTranslateAnimSpriteByDeltas; StoreSpriteCallbackInData(sprite, DestroyAnimSprite); } void sub_80794A8(struct Sprite *sprite) { - sub_80787B0(sprite, 1); + InitAnimSpritePos(sprite, 1); if (GetBankSide(gAnimBankAttacker)) gBattleAnimArgs[2] = -gBattleAnimArgs[2]; sprite->data[0] = gBattleAnimArgs[4]; @@ -1432,7 +1443,7 @@ void sub_80794A8(struct Sprite *sprite) void sub_8079518(struct Sprite *sprite) { - if (sub_8078718(sprite)) + if (TranslateAnimSpriteLinearAndSine(sprite)) DestroyAnimSprite(sprite); } @@ -1452,7 +1463,7 @@ void sub_8079534(struct Sprite *sprite) } if (!gBattleAnimArgs[5]) { - sub_80787B0(sprite, r4); + InitAnimSpritePos(sprite, r4); slot = gAnimBankAttacker; } else @@ -1466,7 +1477,7 @@ void sub_8079534(struct Sprite *sprite) sprite->data[0] = gBattleAnimArgs[4]; sprite->data[2] = GetBankPosition(slot, 2) + gBattleAnimArgs[2]; sprite->data[4] = GetBankPosition(slot, r7) + gBattleAnimArgs[3]; - sprite->callback = sub_8078B34; + sprite->callback = StartTranslateAnimSpriteByDeltas; StoreSpriteCallbackInData(sprite, DestroyAnimSprite); } @@ -2107,7 +2118,7 @@ s16 sub_807A100(u8 slot, u8 a2) } } -void sub_807A3FC(u8 slot, bool8 a2, s16 *a3, s16 *a4) +void SetAverageBattlerPositions(u8 slot, bool8 a2, s16 *x, s16 *y) { u8 v1, v2; s16 v3, v4; @@ -2135,8 +2146,8 @@ void sub_807A3FC(u8 slot, bool8 a2, s16 *a3, s16 *a4) v5 = v3; v6 = v4; } - *a3 = (v3 + v5) / 2; - *a4 = (v4 + v6) / 2; + *x = (v3 + v5) / 2; + *y = (v4 + v6) / 2; } u8 sub_807A4A0(int bank, u8 sprite, int species) @@ -2338,6 +2349,6 @@ void sub_807A9BC(struct Sprite *sprite) sprite->pos1.x += x; sprite->pos1.y = gBattleAnimArgs[5] - 80; } - sprite->callback = sub_8078B34; + sprite->callback = StartTranslateAnimSpriteByDeltas; StoreSpriteCallbackInData(sprite, DestroyAnimSprite); } |