diff options
44 files changed, 6014 insertions, 7731 deletions
diff --git a/.gitignore b/.gitignore index 13712e63a..50910379c 100644 --- a/.gitignore +++ b/.gitignore @@ -16,6 +16,7 @@ *.gbapal *.hwjpnfont *.i +*.idb *.id0 *.id1 *.id2 @@ -54,3 +55,4 @@ types_*.taghl !sound/programmable_wave_samples/*.pcm _Deparsed_XSubs.pm porymap.project.cfg +.vscode/*.* @@ -76,7 +76,7 @@ ASFLAGS := -mcpu=arm7tdmi --defsym $(GAME_VERSION)=1 --defsym REVISION=$(GAME_RE LDFLAGS = -Map ../../$(MAP) -LIB := $(LIBPATH) -lgcc -lc +LIB := $(LIBPATH) -lc -lgcc #ifneq ($(MODERN),0) #LIB += -lsysbase #endif diff --git a/asm/water.s b/asm/water.s deleted file mode 100644 index 89fcfa3c8..000000000 --- a/asm/water.s +++ /dev/null @@ -1,3775 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_80AABC0 -sub_80AABC0: @ 80AABC0 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - adds r6, r0, 0 - ldr r1, _080AAC48 @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r5, r0, r1 - movs r1, 0x8 - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080AABE8 - ldr r1, _080AAC4C @ =gBattleAnimArgs - ldrh r0, [r1] - strh r0, [r5, 0xA] - ldrh r0, [r1, 0x2] - strh r0, [r5, 0xC] - ldrh r0, [r1, 0x4] - strh r0, [r5, 0xE] -_080AABE8: - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - movs r2, 0x8 - ldrsh r0, [r5, r2] - movs r2, 0xC - ldrsh r1, [r5, r2] - bl __modsi3 - cmp r0, 0x1 - bne _080AAC30 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xF0 - bl __umodsi3 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x50 - bl __umodsi3 - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - ldr r0, _080AAC50 @ =gUnknown_83E5898 - adds r1, r4, 0 - movs r3, 0x4 - bl CreateSprite -_080AAC30: - movs r0, 0x8 - ldrsh r1, [r5, r0] - movs r2, 0xE - ldrsh r0, [r5, r2] - cmp r1, r0 - bne _080AAC42 - adds r0, r6, 0 - bl DestroyAnimVisualTask -_080AAC42: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080AAC48: .4byte gTasks -_080AAC4C: .4byte gBattleAnimArgs -_080AAC50: .4byte gUnknown_83E5898 - thumb_func_end sub_80AABC0 - - thumb_func_start sub_80AAC54 -sub_80AAC54: @ 80AAC54 - ldr r1, _080AAC5C @ =sub_80AAC60 - str r1, [r0, 0x1C] - bx lr - .align 2, 0 -_080AAC5C: .4byte sub_80AAC60 - thumb_func_end sub_80AAC54 - - thumb_func_start sub_80AAC60 -sub_80AAC60: @ 80AAC60 - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x2E] - adds r0, 0x1 - strh r0, [r2, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xD - bgt _080AAC7E - ldrh r0, [r2, 0x24] - adds r0, 0x1 - strh r0, [r2, 0x24] - ldrh r0, [r2, 0x26] - adds r0, 0x4 - strh r0, [r2, 0x26] -_080AAC7E: - adds r0, r2, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080AAC92 - adds r0, r2, 0 - bl DestroySprite -_080AAC92: - pop {r0} - bx r0 - thumb_func_end sub_80AAC60 - - thumb_func_start sub_80AAC98 -sub_80AAC98: @ 80AAC98 - push {r4-r6,lr} - adds r6, r0, 0 - ldr r5, _080AACC0 @ =gBattleAnimAttacker - ldrb r0, [r5] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080AACC8 - ldrb r0, [r5] - movs r1, 0x2 - bl GetBattlerSpriteCoord - lsls r0, 24 - lsrs r0, 24 - ldr r4, _080AACC4 @ =gBattleAnimArgs - ldrh r1, [r4] - subs r0, r1 - b _080AACDA - .align 2, 0 -_080AACC0: .4byte gBattleAnimAttacker -_080AACC4: .4byte gBattleAnimArgs -_080AACC8: - ldrb r0, [r5] - movs r1, 0x2 - bl GetBattlerSpriteCoord - lsls r0, 24 - ldr r4, _080AADA0 @ =gBattleAnimArgs - lsrs r0, 24 - ldrh r1, [r4] - adds r0, r1 -_080AACDA: - strh r0, [r6, 0x20] - ldrb r0, [r5] - movs r1, 0x3 - bl GetBattlerSpriteCoord - lsls r0, 24 - lsrs r0, 24 - ldrh r4, [r4, 0x2] - adds r0, r4 - strh r0, [r6, 0x22] - adds r2, r6, 0 - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x40 - orrs r0, r1 - strb r0, [r2] - ldr r0, _080AADA4 @ =gBattleAnimAttacker - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080AAD10 - ldr r1, _080AADA0 @ =gBattleAnimArgs - ldrh r0, [r1, 0x4] - negs r0, r0 - strh r0, [r1, 0x4] -_080AAD10: - ldr r5, _080AADA0 @ =gBattleAnimArgs - ldrh r0, [r5, 0xC] - strh r0, [r6, 0x2E] - ldrh r0, [r6, 0x20] - strh r0, [r6, 0x30] - ldr r4, _080AADA8 @ =gBattleAnimTarget - ldrb r0, [r4] - movs r1, 0x2 - bl GetBattlerSpriteCoord - lsls r0, 24 - lsrs r0, 24 - strh r0, [r6, 0x32] - ldrh r0, [r6, 0x22] - strh r0, [r6, 0x34] - ldrb r0, [r4] - movs r1, 0x3 - bl GetBattlerSpriteCoord - lsls r0, 24 - lsrs r0, 24 - strh r0, [r6, 0x36] - adds r0, r6, 0 - bl InitAnimLinearTranslation - ldr r0, _080AADAC @ =SpriteCallbackDummy - bl CreateInvisibleSpriteWithCallback - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - strh r4, [r6, 0x38] - ldrb r0, [r5, 0x8] - movs r2, 0x4 - ldrsh r1, [r5, r2] - bl Sin - ldrh r1, [r6, 0x20] - subs r1, r0 - strh r1, [r6, 0x20] - ldrb r0, [r5, 0x8] - movs r2, 0x6 - ldrsh r1, [r5, r2] - bl Cos - ldrh r1, [r6, 0x22] - subs r1, r0 - strh r1, [r6, 0x22] - ldr r0, _080AADB0 @ =gSprites - lsls r1, r4, 4 - adds r1, r4 - lsls r1, 2 - adds r1, r0 - ldrh r0, [r5, 0x4] - strh r0, [r1, 0x2E] - ldrh r0, [r5, 0x6] - strh r0, [r1, 0x30] - ldrh r0, [r5, 0xA] - strh r0, [r1, 0x32] - ldrb r0, [r5, 0x8] - lsls r0, 8 - strh r0, [r1, 0x34] - ldrh r0, [r5, 0xC] - strh r0, [r1, 0x36] - ldr r1, _080AADB4 @ =sub_80AADB8 - str r1, [r6, 0x1C] - adds r0, r6, 0 - bl _call_via_r1 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080AADA0: .4byte gBattleAnimArgs -_080AADA4: .4byte gBattleAnimAttacker -_080AADA8: .4byte gBattleAnimTarget -_080AADAC: .4byte SpriteCallbackDummy -_080AADB0: .4byte gSprites -_080AADB4: .4byte sub_80AADB8 - thumb_func_end sub_80AAC98 - - thumb_func_start sub_80AADB8 -sub_80AADB8: @ 80AADB8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - adds r5, r0, 0 - ldrh r1, [r5, 0x38] - lsls r1, 24 - lsrs r1, 24 - ldr r2, _080AAE20 @ =gSprites - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r7, r0, r2 - ldrh r4, [r7, 0x36] - lsls r4, 24 - lsrs r4, 24 - ldrh r0, [r7, 0x34] - mov r8, r0 - movs r0, 0x1 - strh r0, [r5, 0x2E] - adds r0, r5, 0 - bl AnimTranslateLinear - mov r1, r8 - lsrs r6, r1, 8 - movs r0, 0x2E - ldrsh r1, [r7, r0] - adds r0, r6, 0 - bl Sin - ldrh r1, [r5, 0x24] - adds r0, r1 - strh r0, [r5, 0x24] - movs r0, 0x30 - ldrsh r1, [r7, r0] - adds r0, r6, 0 - bl Cos - ldrh r1, [r5, 0x26] - adds r0, r1 - strh r0, [r5, 0x26] - ldrh r0, [r7, 0x32] - mov r1, r8 - adds r1, r0 - strh r1, [r7, 0x34] - subs r4, 0x1 - lsls r4, 24 - lsrs r4, 24 - cmp r4, 0 - beq _080AAE24 - strh r4, [r7, 0x36] - b _080AAE2E - .align 2, 0 -_080AAE20: .4byte gSprites -_080AAE24: - ldr r0, _080AAE3C @ =sub_80AAE40 - str r0, [r5, 0x1C] - adds r0, r7, 0 - bl DestroySprite -_080AAE2E: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080AAE3C: .4byte sub_80AAE40 - thumb_func_end sub_80AADB8 - - thumb_func_start sub_80AAE40 -sub_80AAE40: @ 80AAE40 - push {lr} - adds r3, r0, 0 - adds r3, 0x2C - ldrb r2, [r3] - movs r1, 0x41 - negs r1, r1 - ands r1, r2 - strb r1, [r3] - ldr r1, _080AAE60 @ =RunStoredCallbackWhenAnimEnds - str r1, [r0, 0x1C] - ldr r1, _080AAE64 @ =sub_80AAE68 - bl StoreSpriteCallbackInData6 - pop {r0} - bx r0 - .align 2, 0 -_080AAE60: .4byte RunStoredCallbackWhenAnimEnds -_080AAE64: .4byte sub_80AAE68 - thumb_func_end sub_80AAE40 - - thumb_func_start sub_80AAE68 -sub_80AAE68: @ 80AAE68 - push {lr} - movs r1, 0xA - strh r1, [r0, 0x2E] - ldr r1, _080AAE7C @ =WaitAnimForDuration - str r1, [r0, 0x1C] - ldr r1, _080AAE80 @ =DestroySpriteAndMatrix - bl StoreSpriteCallbackInData6 - pop {r0} - bx r0 - .align 2, 0 -_080AAE7C: .4byte WaitAnimForDuration -_080AAE80: .4byte DestroySpriteAndMatrix - thumb_func_end sub_80AAE68 - - thumb_func_start sub_80AAE84 -sub_80AAE84: @ 80AAE84 - push {r4-r7,lr} - adds r5, r0, 0 - movs r1, 0x1 - bl InitSpritePosToAnimAttacker - ldr r0, _080AAEAC @ =gBattleAnimAttacker - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080AAEB4 - ldr r1, _080AAEB0 @ =gBattleAnimArgs - ldrh r0, [r1, 0x4] - negs r0, r0 - lsls r0, 16 - lsrs r6, r0, 16 - adds r7, r1, 0 - b _080AAEBA - .align 2, 0 -_080AAEAC: .4byte gBattleAnimAttacker -_080AAEB0: .4byte gBattleAnimArgs -_080AAEB4: - ldr r0, _080AAF10 @ =gBattleAnimArgs - ldrh r6, [r0, 0x4] - adds r7, r0, 0 -_080AAEBA: - ldrh r0, [r7, 0x8] - strh r0, [r5, 0x2E] - ldrh r0, [r5, 0x20] - strh r0, [r5, 0x30] - ldr r4, _080AAF14 @ =gBattleAnimTarget - ldrb r0, [r4] - movs r1, 0x2 - bl GetBattlerSpriteCoord - lsls r0, 24 - lsrs r0, 24 - adds r0, r6 - strh r0, [r5, 0x32] - ldrh r0, [r5, 0x22] - strh r0, [r5, 0x34] - ldrb r0, [r4] - movs r1, 0x3 - bl GetBattlerSpriteCoord - lsls r0, 24 - lsrs r0, 24 - ldrh r7, [r7, 0x6] - adds r0, r7 - strh r0, [r5, 0x36] - adds r0, r5, 0 - bl InitAnimLinearTranslation - ldr r0, _080AAF18 @ =sub_80AAF1C - str r0, [r5, 0x1C] - adds r2, r5, 0 - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2] - ldr r1, [r5, 0x1C] - adds r0, r5, 0 - bl _call_via_r1 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080AAF10: .4byte gBattleAnimArgs -_080AAF14: .4byte gBattleAnimTarget -_080AAF18: .4byte sub_80AAF1C - thumb_func_end sub_80AAE84 - - thumb_func_start sub_80AAF1C -sub_80AAF1C: @ 80AAF1C - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080AAF58 @ =gBattleAnimArgs - ldrh r1, [r0, 0xE] - ldr r0, _080AAF5C @ =0x0000ffff - cmp r1, r0 - bne _080AAF3E - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAnim - adds r2, r4, 0 - adds r2, 0x2C - ldrb r1, [r2] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2] -_080AAF3E: - adds r0, r4, 0 - bl AnimTranslateLinear - lsls r0, 24 - cmp r0, 0 - beq _080AAF50 - adds r0, r4, 0 - bl DestroyAnimSprite -_080AAF50: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AAF58: .4byte gBattleAnimArgs -_080AAF5C: .4byte 0x0000ffff - thumb_func_end sub_80AAF1C - - thumb_func_start sub_80AAF60 -sub_80AAF60: @ 80AAF60 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080AAF94 @ =gTasks - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - adds r4, r1 - ldr r0, _080AAF98 @ =gBattleAnimArgs - ldrh r0, [r0] - strh r0, [r4, 0x8] - ldr r0, _080AAF9C @ =0x0000279c - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 20 - movs r1, 0x80 - lsls r1, 1 - adds r0, r1 - strh r0, [r4, 0xC] - ldr r0, _080AAFA0 @ =sub_80AAFA4 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AAF94: .4byte gTasks -_080AAF98: .4byte gBattleAnimArgs -_080AAF9C: .4byte 0x0000279c -_080AAFA0: .4byte sub_80AAFA4 - thumb_func_end sub_80AAF60 - - thumb_func_start sub_80AAFA4 -sub_80AAFA4: @ 80AAFA4 - push {r4-r7,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _080AB01C @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r2, r0, r1 - ldrh r0, [r2, 0x1C] - adds r0, 0x1 - strh r0, [r2, 0x1C] - lsls r0, 16 - asrs r0, 16 - mov r12, r1 - cmp r0, 0x3 - bne _080AAFF6 - movs r0, 0 - strh r0, [r2, 0x1C] - ldrh r0, [r2, 0xC] - adds r0, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - ldr r1, _080AB020 @ =gPlttBufferFaded - lsls r0, r5, 1 - adds r0, r1 - ldrh r6, [r0] - adds r7, r1, 0 - adds r3, r0, 0x2 - movs r1, 0x6 - adds r2, r0, 0 -_080AAFE0: - ldrh r0, [r3] - strh r0, [r2] - adds r3, 0x2 - adds r2, 0x2 - subs r1, 0x1 - cmp r1, 0 - bge _080AAFE0 - adds r0, r5, 0x7 - lsls r0, 1 - adds r0, r7 - strh r6, [r0] -_080AAFF6: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - add r0, r12 - ldrh r1, [r0, 0x1E] - adds r1, 0x1 - strh r1, [r0, 0x1E] - lsls r1, 16 - asrs r1, 16 - movs r2, 0x8 - ldrsh r0, [r0, r2] - cmp r1, r0 - bne _080AB016 - adds r0, r4, 0 - bl DestroyAnimVisualTask -_080AB016: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080AB01C: .4byte gTasks -_080AB020: .4byte gPlttBufferFaded - thumb_func_end sub_80AAFA4 - - thumb_func_start sub_80AB024 -sub_80AB024: @ 80AB024 - push {r4,r5,lr} - adds r5, r0, 0 - movs r1, 0x1 - bl InitSpritePosToAnimAttacker - movs r0, 0x1E - strh r0, [r5, 0x2E] - ldrh r0, [r5, 0x20] - strh r0, [r5, 0x30] - ldr r4, _080AB08C @ =gBattleAnimTarget - ldrb r0, [r4] - movs r1, 0x2 - bl GetBattlerSpriteCoord - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x32] - ldrh r0, [r5, 0x22] - strh r0, [r5, 0x34] - ldrb r0, [r4] - movs r1, 0x3 - bl GetBattlerSpriteCoord - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x36] - adds r0, r5, 0 - bl InitAnimLinearTranslation - movs r0, 0x2E - ldrsh r1, [r5, r0] - movs r0, 0xD2 - lsls r0, 8 - bl __divsi3 - strh r0, [r5, 0x38] - ldr r0, _080AB090 @ =gBattleAnimArgs - ldrh r2, [r0, 0x6] - strh r2, [r5, 0x3C] - ldrh r1, [r0, 0xE] - movs r3, 0xE - ldrsh r0, [r0, r3] - cmp r0, 0x7F - ble _080AB094 - adds r0, r1, 0 - subs r0, 0x7F - lsls r0, 8 - strh r0, [r5, 0x3A] - negs r0, r2 - strh r0, [r5, 0x3C] - b _080AB098 - .align 2, 0 -_080AB08C: .4byte gBattleAnimTarget -_080AB090: .4byte gBattleAnimArgs -_080AB094: - lsls r0, r1, 8 - strh r0, [r5, 0x3A] -_080AB098: - ldr r1, _080AB0A8 @ =sub_80AB0AC - str r1, [r5, 0x1C] - adds r0, r5, 0 - bl _call_via_r1 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080AB0A8: .4byte sub_80AB0AC - thumb_func_end sub_80AB024 - - thumb_func_start sub_80AB0AC -sub_80AB0AC: @ 80AB0AC - push {r4,lr} - adds r4, r0, 0 - bl AnimTranslateLinear - lsls r0, 24 - cmp r0, 0 - beq _080AB0C0 - adds r0, r4, 0 - bl DestroyAnimSprite -_080AB0C0: - ldrh r0, [r4, 0x3A] - lsls r0, 16 - asrs r0, 24 - movs r2, 0x3C - ldrsh r1, [r4, r2] - bl Sin - ldrh r1, [r4, 0x26] - adds r0, r1 - strh r0, [r4, 0x26] - movs r2, 0x3A - ldrsh r0, [r4, r2] - movs r2, 0x38 - ldrsh r1, [r4, r2] - adds r0, r1 - asrs r0, 8 - cmp r0, 0x7F - ble _080AB0F0 - movs r0, 0 - strh r0, [r4, 0x3A] - ldrh r0, [r4, 0x3C] - negs r0, r0 - strh r0, [r4, 0x3C] - b _080AB0F8 -_080AB0F0: - ldrh r0, [r4, 0x38] - ldrh r1, [r4, 0x3A] - adds r0, r1 - strh r0, [r4, 0x3A] -_080AB0F8: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80AB0AC - - thumb_func_start sub_80AB100 -sub_80AB100: @ 80AB100 - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080AB120 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r3, _080AB124 @ =gBattleAnimArgs - ldrh r0, [r3] - movs r2, 0 - strh r0, [r1, 0x8] - strh r2, [r3, 0xE] - ldr r0, _080AB128 @ =sub_80AB12C - str r0, [r1] - bx lr - .align 2, 0 -_080AB120: .4byte gTasks -_080AB124: .4byte gBattleAnimArgs -_080AB128: .4byte sub_80AB12C - thumb_func_end sub_80AB100 - - thumb_func_start sub_80AB12C -sub_80AB12C: @ 80AB12C - push {lr} - lsls r0, 24 - lsrs r3, r0, 24 - ldr r2, _080AB160 @ =gBattleAnimArgs - ldrh r0, [r2, 0xE] - adds r0, 0x3 - movs r1, 0xFF - ands r0, r1 - strh r0, [r2, 0xE] - ldr r1, _080AB164 @ =gTasks - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - adds r0, r1 - ldrh r1, [r0, 0x8] - subs r1, 0x1 - strh r1, [r0, 0x8] - lsls r1, 16 - cmp r1, 0 - bne _080AB15A - adds r0, r3, 0 - bl DestroyAnimVisualTask -_080AB15A: - pop {r0} - bx r0 - .align 2, 0 -_080AB160: .4byte gBattleAnimArgs -_080AB164: .4byte gTasks - thumb_func_end sub_80AB12C - - thumb_func_start sub_80AB168 -sub_80AB168: @ 80AB168 - push {r4-r7,lr} - adds r4, r0, 0 - ldr r7, _080AB1B4 @ =gBattleAnimAttacker - ldrb r0, [r7] - movs r1, 0 - bl GetBattlerSpriteCoord - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x20] - ldrb r0, [r7] - movs r1, 0x1 - bl GetBattlerSpriteCoord - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x22] - ldr r6, _080AB1B8 @ =0x0000fff6 - strh r6, [r4, 0x26] - ldrb r0, [r7] - bl GetBattlerSpriteSubpriority - lsls r0, 24 - lsrs r5, r0, 24 - bl IsContest - lsls r0, 24 - cmp r0, 0 - bne _080AB1C2 - ldrb r0, [r7] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _080AB1BC - movs r0, 0xA - strh r0, [r4, 0x24] - b _080AB1C4 - .align 2, 0 -_080AB1B4: .4byte gBattleAnimAttacker -_080AB1B8: .4byte 0x0000fff6 -_080AB1BC: - strh r6, [r4, 0x24] - subs r0, r5, 0x2 - b _080AB1C6 -_080AB1C2: - strh r6, [r4, 0x24] -_080AB1C4: - adds r0, r5, 0x2 -_080AB1C6: - adds r1, r4, 0 - adds r1, 0x43 - strb r0, [r1] - ldr r0, _080AB1D8 @ =sub_80AB1DC - str r0, [r4, 0x1C] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080AB1D8: .4byte sub_80AB1DC - thumb_func_end sub_80AB168 - - thumb_func_start sub_80AB1DC -sub_80AB1DC: @ 80AB1DC - push {lr} - adds r2, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080AB1F2 - adds r0, r2, 0 - bl DestroyAnimSprite -_080AB1F2: - pop {r0} - bx r0 - thumb_func_end sub_80AB1DC - - thumb_func_start sub_80AB1F8 -sub_80AB1F8: @ 80AB1F8 - push {r4-r7,lr} - adds r6, r0, 0 - ldr r5, _080AB2B8 @ =gBattleAnimAttacker - ldrb r0, [r5] - bl GetBattlerSide - adds r4, r0, 0 - ldr r0, _080AB2BC @ =gBattleAnimTarget - ldrb r0, [r0] - bl GetBattlerSide - lsls r4, 24 - lsls r0, 24 - cmp r4, r0 - bne _080AB242 - ldr r4, _080AB2C0 @ =gBattleAnimArgs - movs r1, 0 - ldrsh r0, [r4, r1] - negs r0, r0 - strh r0, [r4] - ldrb r0, [r5] - bl GetBattlerPosition - lsls r0, 24 - cmp r0, 0 - beq _080AB23A - ldrb r0, [r5] - bl GetBattlerPosition - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080AB242 -_080AB23A: - movs r1, 0 - ldrsh r0, [r4, r1] - negs r0, r0 - strh r0, [r4] -_080AB242: - ldr r5, _080AB2C0 @ =gBattleAnimArgs - movs r1, 0xA - ldrsh r0, [r5, r1] - movs r1, 0xFF - lsls r1, 8 - ands r0, r1 - movs r1, 0 - cmp r0, 0 - bne _080AB256 - movs r1, 0x1 -_080AB256: - ldrb r0, [r5, 0xA] - movs r7, 0x1 - cmp r0, 0 - bne _080AB260 - movs r7, 0x3 -_080AB260: - adds r0, r6, 0 - bl InitSpritePosToAnimAttacker - ldr r0, _080AB2B8 @ =gBattleAnimAttacker - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080AB27A - ldrh r0, [r5, 0x4] - negs r0, r0 - strh r0, [r5, 0x4] -_080AB27A: - ldrh r0, [r5, 0x8] - strh r0, [r6, 0x2E] - ldr r4, _080AB2BC @ =gBattleAnimTarget - ldrb r0, [r4] - movs r1, 0x2 - bl GetBattlerSpriteCoord - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r5, 0x4] - adds r0, r1 - strh r0, [r6, 0x32] - ldrb r0, [r4] - adds r1, r7, 0 - bl GetBattlerSpriteCoord - lsls r0, 24 - lsrs r0, 24 - ldrh r5, [r5, 0x6] - adds r0, r5 - strh r0, [r6, 0x36] - ldr r0, _080AB2C4 @ =StartAnimLinearTranslation - str r0, [r6, 0x1C] - ldr r1, _080AB2C8 @ =DestroyAnimSprite - adds r0, r6, 0 - bl StoreSpriteCallbackInData6 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080AB2B8: .4byte gBattleAnimAttacker -_080AB2BC: .4byte gBattleAnimTarget -_080AB2C0: .4byte gBattleAnimArgs -_080AB2C4: .4byte StartAnimLinearTranslation -_080AB2C8: .4byte DestroyAnimSprite - thumb_func_end sub_80AB1F8 - - thumb_func_start sub_80AB2CC -sub_80AB2CC: @ 80AB2CC - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl InitSpritePosToAnimTarget - ldr r0, _080AB2FC @ =gBattleAnimArgs - ldrh r1, [r0, 0x8] - strh r1, [r4, 0x2E] - ldrh r0, [r0, 0x4] - ldrh r2, [r4, 0x20] - adds r0, r2 - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x22] - adds r1, r0 - strh r1, [r4, 0x36] - ldr r0, _080AB300 @ =StartAnimLinearTranslation - str r0, [r4, 0x1C] - ldr r1, _080AB304 @ =DestroyAnimSprite - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AB2FC: .4byte gBattleAnimArgs -_080AB300: .4byte StartAnimLinearTranslation -_080AB304: .4byte DestroyAnimSprite - thumb_func_end sub_80AB2CC - - thumb_func_start sub_80AB308 -sub_80AB308: @ 80AB308 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080AB320 @ =gBattleAnimArgs - movs r1, 0x6 - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _080AB324 - adds r0, r4, 0 - movs r1, 0x1 - bl InitSpritePosToAnimTarget - b _080AB32C - .align 2, 0 -_080AB320: .4byte gBattleAnimArgs -_080AB324: - adds r0, r4, 0 - movs r1, 0x1 - bl InitSpritePosToAnimAttacker -_080AB32C: - ldr r0, _080AB33C @ =gBattleAnimArgs - ldrh r0, [r0, 0x4] - strh r0, [r4, 0x3C] - ldr r0, _080AB340 @ =sub_80AB344 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AB33C: .4byte gBattleAnimArgs -_080AB340: .4byte sub_80AB344 - thumb_func_end sub_80AB308 - - thumb_func_start sub_80AB344 -sub_80AB344: @ 80AB344 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - adds r0, 0xB - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x2E] - movs r1, 0x2E - ldrsh r0, [r4, r1] - movs r1, 0x4 - bl Sin - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x30] - adds r0, 0x30 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 24 - negs r0, r0 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x3C] - subs r0, 0x1 - strh r0, [r4, 0x3C] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _080AB384 - adds r0, r4, 0 - bl DestroyAnimSprite -_080AB384: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80AB344 - - thumb_func_start sub_80AB38C -sub_80AB38C: @ 80AB38C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - ldr r1, _080AB3FC @ =0x00003f42 - movs r0, 0x50 - bl SetGpuReg - movs r1, 0x80 - lsls r1, 5 - movs r0, 0x52 - bl SetGpuReg - movs r0, 0x1 - movs r1, 0x4 - movs r2, 0x1 - bl SetAnimBgAttribute - movs r0, 0x1 - movs r1, 0 - movs r2, 0x1 - bl SetAnimBgAttribute - mov r0, sp - bl sub_80752A0 - bl IsContest - lsls r0, 24 - cmp r0, 0 - bne _080AB418 - movs r0, 0x1 - movs r1, 0x3 - movs r2, 0x1 - bl SetAnimBgAttribute - ldr r0, _080AB400 @ =gBattleAnimAttacker - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080AB408 - mov r0, sp - ldrb r0, [r0, 0x9] - ldr r1, _080AB404 @ =gFile_graphics_unknown_unknown_E81D14_tilemap - bl AnimLoadCompressedBgTilemap - b _080AB42E - .align 2, 0 -_080AB3FC: .4byte 0x00003f42 -_080AB400: .4byte gBattleAnimAttacker -_080AB404: .4byte gFile_graphics_unknown_unknown_E81D14_tilemap -_080AB408: - mov r0, sp - ldrb r0, [r0, 0x9] - ldr r1, _080AB414 @ =gFile_graphics_unknown_unknown_E81FE4_tilemap - bl AnimLoadCompressedBgTilemap - b _080AB42E - .align 2, 0 -_080AB414: .4byte gFile_graphics_unknown_unknown_E81FE4_tilemap -_080AB418: - ldr r0, _080AB458 @ =gFile_graphics_unknown_unknown_E822B8_tilemap - ldr r1, [sp, 0x4] - bl LZDecompressVram - mov r0, sp - ldrb r0, [r0, 0x8] - ldr r1, [sp, 0x4] - movs r2, 0 - movs r3, 0x1 - bl sub_80730C0 -_080AB42E: - mov r0, sp - ldrb r0, [r0, 0x9] - ldr r1, _080AB45C @ =gFile_graphics_battle_anims_backgrounds_water_sheet - mov r2, sp - ldrh r2, [r2, 0xA] - bl AnimLoadCompressedBgGfx - ldr r0, _080AB460 @ =gBattleAnimArgs - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080AB468 - ldr r0, _080AB464 @ =gFile_graphics_battle_anims_backgrounds_water_palette - mov r1, sp - ldrb r1, [r1, 0x8] - lsls r1, 4 - movs r2, 0x20 - bl LoadCompressedPalette - b _080AB476 - .align 2, 0 -_080AB458: .4byte gFile_graphics_unknown_unknown_E822B8_tilemap -_080AB45C: .4byte gFile_graphics_battle_anims_backgrounds_water_sheet -_080AB460: .4byte gBattleAnimArgs -_080AB464: .4byte gFile_graphics_battle_anims_backgrounds_water_palette -_080AB468: - ldr r0, _080AB4E0 @ =gFile_graphics_battle_anims_backgrounds_water_muddy_palette - mov r1, sp - ldrb r1, [r1, 0x8] - lsls r1, 4 - movs r2, 0x20 - bl LoadCompressedPalette -_080AB476: - ldr r0, _080AB4E4 @ =sub_80AB79C - ldr r4, _080AB4E8 @ =gTasks - mov r2, r10 - lsls r5, r2, 2 - adds r1, r5, r2 - lsls r1, 3 - adds r6, r1, r4 - ldrb r1, [r6, 0x7] - adds r1, 0x1 - lsls r1, 24 - lsrs r1, 24 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - movs r0, 0 - mov r9, r0 - mov r1, r8 - strh r1, [r6, 0x26] - mov r2, r8 - lsls r0, r2, 2 - add r0, r8 - lsls r0, 3 - adds r7, r0, r4 - mov r0, r9 - strh r0, [r7, 0x8] - movs r0, 0x80 - lsls r0, 5 - strh r0, [r7, 0xA] - strh r0, [r7, 0xC] - bl IsContest - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - beq _080AB4F8 - ldr r1, _080AB4EC @ =0x0000ffb0 - adds r0, r1, 0 - ldr r2, _080AB4F0 @ =gBattle_BG1_X - strh r0, [r2] - adds r1, 0x20 - adds r0, r1, 0 - ldr r2, _080AB4F4 @ =gBattle_BG1_Y - strh r0, [r2] - movs r0, 0x2 - strh r0, [r6, 0x8] - movs r0, 0x1 - strh r0, [r6, 0xA] - mov r0, r9 - strh r0, [r7, 0xE] - b _080AB552 - .align 2, 0 -_080AB4E0: .4byte gFile_graphics_battle_anims_backgrounds_water_muddy_palette -_080AB4E4: .4byte sub_80AB79C -_080AB4E8: .4byte gTasks -_080AB4EC: .4byte 0x0000ffb0 -_080AB4F0: .4byte gBattle_BG1_X -_080AB4F4: .4byte gBattle_BG1_Y -_080AB4F8: - ldr r0, _080AB528 @ =gBattleAnimAttacker - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x1 - bne _080AB53C - ldr r2, _080AB52C @ =0x0000ff20 - adds r0, r2, 0 - ldr r2, _080AB530 @ =gBattle_BG1_X - strh r0, [r2] - movs r2, 0x80 - lsls r2, 1 - adds r0, r2, 0 - ldr r2, _080AB534 @ =gBattle_BG1_Y - strh r0, [r2] - movs r0, 0x2 - strh r0, [r6, 0x8] - ldr r0, _080AB538 @ =0x0000ffff - strh r0, [r6, 0xA] - strh r1, [r7, 0xE] - b _080AB552 - .align 2, 0 -_080AB528: .4byte gBattleAnimAttacker -_080AB52C: .4byte 0x0000ff20 -_080AB530: .4byte gBattle_BG1_X -_080AB534: .4byte gBattle_BG1_Y -_080AB538: .4byte 0x0000ffff -_080AB53C: - ldr r0, _080AB584 @ =gBattle_BG1_X - strh r4, [r0] - ldr r1, _080AB588 @ =0x0000ffd0 - adds r0, r1, 0 - ldr r2, _080AB58C @ =gBattle_BG1_Y - strh r0, [r2] - ldr r0, _080AB590 @ =0x0000fffe - strh r0, [r6, 0x8] - movs r0, 0x1 - strh r0, [r6, 0xA] - strh r4, [r7, 0xE] -_080AB552: - ldr r0, _080AB584 @ =gBattle_BG1_X - ldrh r1, [r0] - movs r0, 0x14 - bl SetGpuReg - ldr r2, _080AB58C @ =gBattle_BG1_Y - ldrh r1, [r2] - movs r0, 0x16 - bl SetGpuReg - ldr r1, _080AB594 @ =gTasks - mov r2, r8 - lsls r0, r2, 2 - add r0, r8 - lsls r0, 3 - adds r1, r0, r1 - movs r2, 0xE - ldrsh r0, [r1, r2] - cmp r0, 0 - bne _080AB598 - movs r0, 0x30 - strh r0, [r1, 0x10] - movs r0, 0x70 - b _080AB59C - .align 2, 0 -_080AB584: .4byte gBattle_BG1_X -_080AB588: .4byte 0x0000ffd0 -_080AB58C: .4byte gBattle_BG1_Y -_080AB590: .4byte 0x0000fffe -_080AB594: .4byte gTasks -_080AB598: - movs r0, 0 - strh r0, [r1, 0x10] -_080AB59C: - strh r0, [r1, 0x12] - ldr r1, _080AB5C0 @ =gTasks - mov r2, r10 - adds r0, r5, r2 - lsls r0, 3 - adds r0, r1 - movs r1, 0x1 - strh r1, [r0, 0x14] - ldr r1, _080AB5C4 @ =sub_80AB5C8 - str r1, [r0] - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080AB5C0: .4byte gTasks -_080AB5C4: .4byte sub_80AB5C8 - thumb_func_end sub_80AB38C - - thumb_func_start sub_80AB5C8 -sub_80AB5C8: @ 80AB5C8 - push {r4-r7,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _080AB6F4 @ =gBattle_BG1_X - ldr r2, _080AB6F8 @ =gBattle_BG1_Y - ldr r0, _080AB6FC @ =gTasks - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - adds r4, r0 - ldrh r0, [r4, 0x8] - ldrh r3, [r1] - adds r0, r3 - strh r0, [r1] - ldrh r0, [r4, 0xA] - ldrh r1, [r2] - adds r0, r1 - strh r0, [r2] - mov r0, sp - bl sub_80752A0 - ldrh r0, [r4, 0xA] - ldrh r3, [r4, 0xC] - adds r0, r3 - strh r0, [r4, 0xC] - ldrh r0, [r4, 0x12] - adds r0, 0x1 - strh r0, [r4, 0x12] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - bne _080AB65C - ldr r1, _080AB700 @ =gPlttBufferFaded - mov r0, sp - ldrb r0, [r0, 0x8] - lsls r0, 4 - adds r0, 0x7 - lsls r0, 1 - adds r0, r1 - ldrh r6, [r0] - movs r2, 0x6 - adds r7, r1, 0 - adds r3, r7, 0 - mov r4, sp -_080AB622: - ldrb r0, [r4, 0x8] - lsls r0, 4 - adds r1, r2, 0x1 - adds r0, r1 - lsls r1, r0, 1 - adds r1, r3 - subs r0, 0x1 - lsls r0, 1 - adds r0, r3 - ldrh r0, [r0] - strh r0, [r1] - subs r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - bne _080AB622 - mov r0, sp - ldrb r0, [r0, 0x8] - lsls r0, 4 - adds r0, 0x1 - lsls r0, 1 - adds r0, r7 - strh r6, [r0] - ldr r1, _080AB6FC @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - strh r2, [r0, 0x12] -_080AB65C: - ldr r1, _080AB6FC @ =gTasks - lsls r2, r5, 2 - adds r0, r2, r5 - lsls r0, 3 - adds r3, r0, r1 - ldrh r0, [r3, 0x14] - adds r0, 0x1 - strh r0, [r3, 0x14] - lsls r0, 16 - asrs r0, 16 - adds r4, r1, 0 - adds r6, r2, 0 - cmp r0, 0x1 - ble _080AB6CA - movs r0, 0 - strh r0, [r3, 0x14] - ldrh r0, [r3, 0xE] - adds r2, r0, 0x1 - strh r2, [r3, 0xE] - lsls r0, r2, 16 - asrs r0, 16 - cmp r0, 0xD - bgt _080AB6A6 - movs r1, 0x26 - ldrsh r0, [r3, r1] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r4 - movs r0, 0x10 - subs r0, r2 - lsls r0, 8 - orrs r2, r0 - strh r2, [r1, 0xA] - ldrh r0, [r3, 0x10] - adds r0, 0x1 - strh r0, [r3, 0x10] -_080AB6A6: - movs r1, 0xE - ldrsh r0, [r3, r1] - cmp r0, 0x36 - ble _080AB6CA - ldrh r2, [r3, 0x10] - subs r2, 0x1 - strh r2, [r3, 0x10] - movs r1, 0x26 - ldrsh r0, [r3, r1] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r4 - movs r0, 0x10 - subs r0, r2 - lsls r0, 8 - orrs r2, r0 - strh r2, [r1, 0xA] -_080AB6CA: - adds r0, r6, r5 - lsls r0, 3 - adds r2, r0, r4 - movs r3, 0x26 - ldrsh r1, [r2, r3] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r4 - ldrh r0, [r0, 0xA] - movs r3, 0x1F - ands r3, r0 - cmp r3, 0 - bne _080AB6EC - strh r3, [r2, 0x8] - ldr r0, _080AB704 @ =sub_80AB708 - str r0, [r2] -_080AB6EC: - add sp, 0x10 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080AB6F4: .4byte gBattle_BG1_X -_080AB6F8: .4byte gBattle_BG1_Y -_080AB6FC: .4byte gTasks -_080AB700: .4byte gPlttBufferFaded -_080AB704: .4byte sub_80AB708 - thumb_func_end sub_80AB5C8 - - thumb_func_start sub_80AB708 -sub_80AB708: @ 80AB708 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - ldr r7, _080AB740 @ =gBattle_BG1_X - ldr r0, _080AB744 @ =gBattle_BG1_Y - mov r8, r0 - ldr r6, _080AB748 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r6 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080AB74C - movs r0, 0x1 - bl sub_8075358 - movs r0, 0x2 - bl sub_8075358 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080AB78E - .align 2, 0 -_080AB740: .4byte gBattle_BG1_X -_080AB744: .4byte gBattle_BG1_Y -_080AB748: .4byte gTasks -_080AB74C: - bl IsContest - lsls r0, 24 - cmp r0, 0 - bne _080AB760 - movs r0, 0x1 - movs r1, 0x3 - movs r2, 0 - bl SetAnimBgAttribute -_080AB760: - movs r0, 0 - strh r0, [r7] - mov r1, r8 - strh r0, [r1] - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0 - bl SetGpuReg - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r6 - ldr r1, _080AB798 @ =0x0000ffff - strh r1, [r0, 0x26] - adds r0, r5, 0 - bl DestroyAnimVisualTask -_080AB78E: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080AB798: .4byte 0x0000ffff - thumb_func_end sub_80AB708 - - thumb_func_start sub_80AB79C -sub_80AB79C: @ 80AB79C - push {r4-r7,lr} - sub sp, 0xC - lsls r0, 24 - lsrs r7, r0, 24 - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - ldr r1, _080AB7C4 @ =gTasks - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - bne _080AB7B8 - b _080AB8F0 -_080AB7B8: - cmp r0, 0x1 - bgt _080AB7C8 - cmp r0, 0 - beq _080AB7D0 - b _080ABA66 - .align 2, 0 -_080AB7C4: .4byte gTasks -_080AB7C8: - cmp r0, 0x2 - bne _080AB7CE - b _080AB9BC -_080AB7CE: - b _080ABA66 -_080AB7D0: - movs r3, 0 - movs r2, 0x10 - ldrsh r0, [r4, r2] - ldr r1, _080AB8A0 @ =gScanlineEffectRegBuffers - mov r12, r1 - cmp r3, r0 - bge _080AB80E - mov r7, r12 - movs r5, 0xF0 - lsls r5, 3 - add r5, r12 - ldr r6, _080AB8A4 @ =0x0000ffff -_080AB7E8: - lsls r2, r3, 16 - asrs r2, 16 - lsls r1, r2, 1 - adds r3, r1, r7 - adds r1, r5 - ldrh r0, [r4, 0xC] - strh r0, [r1] - ldrh r1, [r4, 0xC] - adds r0, r6, 0 - ands r0, r1 - strh r0, [r3] - adds r2, 0x1 - lsls r2, 16 - lsrs r3, r2, 16 - asrs r2, 16 - movs r1, 0x10 - ldrsh r0, [r4, r1] - cmp r2, r0 - blt _080AB7E8 -_080AB80E: - ldrh r3, [r4, 0x10] - lsls r2, r3, 16 - asrs r1, r2, 16 - movs r3, 0x12 - ldrsh r0, [r4, r3] - cmp r1, r0 - bge _080AB848 - ldr r5, _080AB8A0 @ =gScanlineEffectRegBuffers - movs r0, 0xF0 - lsls r0, 3 - adds r6, r5, r0 - ldr r7, _080AB8A4 @ =0x0000ffff -_080AB826: - asrs r2, 16 - lsls r1, r2, 1 - adds r3, r1, r5 - adds r1, r6 - ldrh r0, [r4, 0xA] - strh r0, [r1] - ldrh r1, [r4, 0xA] - adds r0, r7, 0 - ands r0, r1 - strh r0, [r3] - adds r2, 0x1 - lsls r2, 16 - asrs r1, r2, 16 - movs r3, 0x12 - ldrsh r0, [r4, r3] - cmp r1, r0 - blt _080AB826 -_080AB848: - ldrh r3, [r4, 0x12] - lsls r2, r3, 16 - asrs r0, r2, 16 - cmp r0, 0x9F - bgt _080AB87E - ldr r5, _080AB8A0 @ =gScanlineEffectRegBuffers - movs r0, 0xF0 - lsls r0, 3 - adds r6, r5, r0 - ldr r7, _080AB8A4 @ =0x0000ffff -_080AB85C: - asrs r2, 16 - lsls r1, r2, 1 - adds r3, r1, r5 - adds r1, r6 - ldrh r0, [r4, 0xC] - strh r0, [r1] - ldrh r1, [r4, 0xC] - adds r0, r7, 0 - ands r0, r1 - strh r0, [r3] - adds r2, 0x1 - lsls r2, 16 - lsrs r3, r2, 16 - lsls r2, r3, 16 - asrs r0, r2, 16 - cmp r0, 0x9F - ble _080AB85C -_080AB87E: - movs r1, 0x10 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080AB8A8 - lsls r0, r3, 16 - asrs r0, 15 - mov r3, r12 - adds r2, r0, r3 - movs r1, 0xF0 - lsls r1, 3 - add r1, r12 - adds r0, r1 - ldrh r1, [r4, 0xA] - strh r1, [r0] - ldrh r0, [r4, 0xA] - b _080AB8BE - .align 2, 0 -_080AB8A0: .4byte gScanlineEffectRegBuffers -_080AB8A4: .4byte 0x0000ffff -_080AB8A8: - lsls r0, r3, 16 - asrs r0, 15 - mov r1, r12 - adds r2, r0, r1 - movs r1, 0xF0 - lsls r1, 3 - add r1, r12 - adds r0, r1 - ldrh r1, [r4, 0xC] - strh r1, [r0] - ldrh r0, [r4, 0xC] -_080AB8BE: - strh r0, [r2] - ldr r0, _080AB8E8 @ =0x04000052 - str r0, [sp] - ldr r0, _080AB8EC @ =0xa2600001 - str r0, [sp, 0x4] - mov r1, sp - movs r2, 0 - movs r0, 0x1 - strb r0, [r1, 0x8] - mov r0, sp - strb r2, [r0, 0x9] - ldr r0, [sp] - ldr r1, [sp, 0x4] - ldr r2, [sp, 0x8] - bl ScanlineEffect_SetParams - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080ABA66 - .align 2, 0 -_080AB8E8: .4byte 0x04000052 -_080AB8EC: .4byte 0xa2600001 -_080AB8F0: - movs r2, 0xE - ldrsh r1, [r4, r2] - cmp r1, 0 - bne _080AB908 - ldrh r0, [r4, 0x10] - subs r0, 0x1 - strh r0, [r4, 0x10] - lsls r0, 16 - cmp r0, 0 - bgt _080AB91C - strh r1, [r4, 0x10] - b _080AB916 -_080AB908: - ldrh r0, [r4, 0x12] - adds r0, 0x1 - strh r0, [r4, 0x12] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x6F - ble _080AB91C -_080AB916: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_080AB91C: - movs r3, 0 - movs r1, 0x10 - ldrsh r0, [r4, r1] - cmp r3, r0 - bge _080AB950 - ldr r6, _080AB9B4 @ =gScanlineEffectRegBuffers - ldr r5, _080AB9B8 @ =gScanlineEffect -_080AB92A: - lsls r1, r3, 16 - asrs r1, 16 - lsls r3, r1, 1 - ldrb r2, [r5, 0x14] - lsls r0, r2, 4 - subs r0, r2 - lsls r0, 7 - adds r3, r0 - adds r3, r6 - ldrh r0, [r4, 0xC] - strh r0, [r3] - adds r1, 0x1 - lsls r1, 16 - lsrs r3, r1, 16 - asrs r1, 16 - movs r2, 0x10 - ldrsh r0, [r4, r2] - cmp r1, r0 - blt _080AB92A -_080AB950: - ldrh r3, [r4, 0x10] - lsls r2, r3, 16 - asrs r1, r2, 16 - movs r3, 0x12 - ldrsh r0, [r4, r3] - cmp r1, r0 - bge _080AB984 - ldr r6, _080AB9B4 @ =gScanlineEffectRegBuffers - ldr r5, _080AB9B8 @ =gScanlineEffect -_080AB962: - asrs r3, r2, 16 - lsls r2, r3, 1 - ldrb r1, [r5, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - adds r2, r0 - adds r2, r6 - ldrh r0, [r4, 0xA] - strh r0, [r2] - adds r3, 0x1 - lsls r2, r3, 16 - asrs r1, r2, 16 - movs r3, 0x12 - ldrsh r0, [r4, r3] - cmp r1, r0 - blt _080AB962 -_080AB984: - ldrh r3, [r4, 0x12] - lsls r1, r3, 16 - asrs r0, r1, 16 - cmp r0, 0x9F - bgt _080ABA66 - ldr r6, _080AB9B4 @ =gScanlineEffectRegBuffers - ldr r5, _080AB9B8 @ =gScanlineEffect -_080AB992: - asrs r3, r1, 16 - lsls r2, r3, 1 - ldrb r1, [r5, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - adds r2, r0 - adds r2, r6 - ldrh r0, [r4, 0xC] - strh r0, [r2] - adds r3, 0x1 - lsls r1, r3, 16 - asrs r0, r1, 16 - cmp r0, 0x9F - ble _080AB992 - b _080ABA66 - .align 2, 0 -_080AB9B4: .4byte gScanlineEffectRegBuffers -_080AB9B8: .4byte gScanlineEffect -_080AB9BC: - movs r3, 0 - movs r1, 0x10 - ldrsh r0, [r4, r1] - cmp r3, r0 - bge _080AB9F0 - ldr r6, _080ABA70 @ =gScanlineEffectRegBuffers - ldr r5, _080ABA74 @ =gScanlineEffect -_080AB9CA: - lsls r1, r3, 16 - asrs r1, 16 - lsls r3, r1, 1 - ldrb r2, [r5, 0x14] - lsls r0, r2, 4 - subs r0, r2 - lsls r0, 7 - adds r3, r0 - adds r3, r6 - ldrh r0, [r4, 0xC] - strh r0, [r3] - adds r1, 0x1 - lsls r1, 16 - lsrs r3, r1, 16 - asrs r1, 16 - movs r2, 0x10 - ldrsh r0, [r4, r2] - cmp r1, r0 - blt _080AB9CA -_080AB9F0: - ldrh r3, [r4, 0x10] - lsls r2, r3, 16 - asrs r1, r2, 16 - movs r3, 0x12 - ldrsh r0, [r4, r3] - cmp r1, r0 - bge _080ABA24 - ldr r6, _080ABA70 @ =gScanlineEffectRegBuffers - ldr r5, _080ABA74 @ =gScanlineEffect -_080ABA02: - asrs r3, r2, 16 - lsls r2, r3, 1 - ldrb r1, [r5, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - adds r2, r0 - adds r2, r6 - ldrh r0, [r4, 0xA] - strh r0, [r2] - adds r3, 0x1 - lsls r2, r3, 16 - asrs r1, r2, 16 - movs r3, 0x12 - ldrsh r0, [r4, r3] - cmp r1, r0 - blt _080ABA02 -_080ABA24: - ldrh r3, [r4, 0x12] - lsls r1, r3, 16 - asrs r0, r1, 16 - cmp r0, 0x9F - bgt _080ABA50 - ldr r6, _080ABA70 @ =gScanlineEffectRegBuffers - ldr r5, _080ABA74 @ =gScanlineEffect -_080ABA32: - asrs r3, r1, 16 - lsls r2, r3, 1 - ldrb r1, [r5, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - adds r2, r0 - adds r2, r6 - ldrh r0, [r4, 0xC] - strh r0, [r2] - adds r3, 0x1 - lsls r1, r3, 16 - asrs r0, r1, 16 - cmp r0, 0x9F - ble _080ABA32 -_080ABA50: - movs r0, 0x26 - ldrsh r1, [r4, r0] - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - bne _080ABA66 - bl ScanlineEffect_Stop - adds r0, r7, 0 - bl DestroyTask -_080ABA66: - add sp, 0xC - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080ABA70: .4byte gScanlineEffectRegBuffers -_080ABA74: .4byte gScanlineEffect - thumb_func_end sub_80AB79C - - thumb_func_start sub_80ABA78 -sub_80ABA78: @ 80ABA78 - push {r4-r6,lr} - adds r4, r0, 0 - ldrh r2, [r4, 0x4] - lsls r1, r2, 22 - lsrs r1, 22 - adds r1, 0x8 - ldr r3, _080ABACC @ =0x000003ff - adds r0, r3, 0 - ands r1, r0 - ldr r0, _080ABAD0 @ =0xfffffc00 - ands r0, r2 - orrs r0, r1 - strh r0, [r4, 0x4] - adds r0, r4, 0 - movs r1, 0x1 - bl InitSpritePosToAnimTarget - bl Random - movs r5, 0xFF - ands r5, r0 - movs r0, 0x80 - lsls r0, 1 - adds r6, r0, 0 - orrs r5, r6 - bl Random - ldr r1, _080ABAD4 @ =0x000001ff - ands r1, r0 - adds r0, r1, 0 - cmp r0, 0xFF - ble _080ABABE - subs r0, r6, r0 - lsls r0, 16 - lsrs r1, r0, 16 -_080ABABE: - strh r5, [r4, 0x30] - strh r1, [r4, 0x32] - ldr r0, _080ABAD8 @ =sub_80ABADC - str r0, [r4, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080ABACC: .4byte 0x000003ff -_080ABAD0: .4byte 0xfffffc00 -_080ABAD4: .4byte 0x000001ff -_080ABAD8: .4byte sub_80ABADC - thumb_func_end sub_80ABA78 - - thumb_func_start sub_80ABADC -sub_80ABADC: @ 80ABADC - push {r4,lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x30] - ldrh r1, [r2, 0x34] - adds r3, r0, r1 - strh r3, [r2, 0x34] - ldrh r1, [r2, 0x32] - ldrh r4, [r2, 0x36] - adds r1, r4 - strh r1, [r2, 0x36] - movs r1, 0x1 - ands r1, r0 - cmp r1, 0 - beq _080ABB00 - lsls r0, r3, 16 - asrs r0, 24 - negs r0, r0 - b _080ABB04 -_080ABB00: - lsls r0, r3, 16 - asrs r0, 24 -_080ABB04: - strh r0, [r2, 0x24] - ldrh r0, [r2, 0x36] - lsls r0, 16 - asrs r0, 24 - strh r0, [r2, 0x26] - ldrh r0, [r2, 0x2E] - adds r0, 0x1 - strh r0, [r2, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x15 - bne _080ABB22 - adds r0, r2, 0 - bl DestroyAnimSprite -_080ABB22: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80ABADC - - thumb_func_start sub_80ABB28 -sub_80ABB28: @ 80ABB28 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, _080ABB78 @ =gTasks - adds r4, r0 - movs r0, 0 - bl GetAnimBattlerSpriteId - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x26] - ldr r2, _080ABB7C @ =gSprites - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r0, [r0, 0x22] - strh r0, [r4, 0x12] - bl sub_80ABDC8 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0xA] - ldrh r0, [r4, 0x26] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - bl PrepareBattlerSpriteForRotScale - ldr r0, _080ABB80 @ =sub_80ABB84 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080ABB78: .4byte gTasks -_080ABB7C: .4byte gSprites -_080ABB80: .4byte sub_80ABB84 - thumb_func_end sub_80ABB28 - - thumb_func_start sub_80ABB84 -sub_80ABB84: @ 80ABB84 - push {r4-r6,lr} - sub sp, 0xC - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080ABBAC @ =gTasks - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x7 - bls _080ABBA0 - b _080ABDBE -_080ABBA0: - lsls r0, 2 - ldr r1, _080ABBB0 @ =_080ABBB4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080ABBAC: .4byte gTasks -_080ABBB0: .4byte _080ABBB4 - .align 2, 0 -_080ABBB4: - .4byte _080ABBD4 - .4byte _080ABBFA - .4byte _080ABC8C - .4byte _080ABCC2 - .4byte _080ABCD6 - .4byte _080ABCE4 - .4byte _080ABD64 - .4byte _080ABDB0 -_080ABBD4: - ldrh r1, [r4, 0x26] - lsls r1, 24 - lsrs r1, 24 - movs r3, 0x80 - lsls r3, 1 - movs r0, 0xE0 - str r0, [sp] - movs r0, 0x80 - lsls r0, 2 - str r0, [sp, 0x4] - movs r0, 0x20 - str r0, [sp, 0x8] - adds r0, r4, 0 - adds r2, r3, 0 - bl sub_80765D4 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_080ABBFA: - ldrh r0, [r4, 0xE] - adds r0, 0x1 - strh r0, [r4, 0xE] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080ABC56 - movs r0, 0 - strh r0, [r4, 0xE] - ldrh r0, [r4, 0x10] - adds r0, 0x1 - strh r0, [r4, 0x10] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080ABC44 - ldr r2, _080ABC40 @ =gSprites - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x3 - strh r1, [r0, 0x24] - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x22] - adds r1, 0x1 - strh r1, [r0, 0x22] - b _080ABC56 - .align 2, 0 -_080ABC40: .4byte gSprites -_080ABC44: - ldr r2, _080ABC84 @ =gSprites - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldr r1, _080ABC88 @ =0x0000fffd - strh r1, [r0, 0x24] -_080ABC56: - adds r0, r4, 0 - bl sub_8076640 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - beq _080ABC66 - b _080ABDBE -_080ABC66: - ldrh r0, [r4, 0x26] - lsls r0, 24 - lsrs r0, 24 - bl SetBattlerSpriteYOffsetFromYScale - ldr r2, _080ABC84 @ =gSprites - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strh r5, [r0, 0x24] - strh r5, [r4, 0xE] - b _080ABDA0 - .align 2, 0 -_080ABC84: .4byte gSprites -_080ABC88: .4byte 0x0000fffd -_080ABC8C: - ldrh r0, [r4, 0xE] - adds r0, 0x1 - strh r0, [r4, 0xE] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - bgt _080ABC9C - b _080ABDBE -_080ABC9C: - ldrh r1, [r4, 0x26] - lsls r1, 24 - lsrs r1, 24 - movs r3, 0x80 - lsls r3, 2 - movs r0, 0xC0 - lsls r0, 1 - str r0, [sp] - movs r0, 0xE0 - str r0, [sp, 0x4] - movs r0, 0x8 - str r0, [sp, 0x8] - adds r0, r4, 0 - movs r2, 0xE0 - bl sub_80765D4 - movs r0, 0 - strh r0, [r4, 0xE] - b _080ABDA2 -_080ABCC2: - adds r0, r4, 0 - bl sub_8076640 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _080ABDBE - strh r0, [r4, 0xE] - strh r0, [r4, 0x10] - b _080ABDA2 -_080ABCD6: - adds r0, r4, 0 - adds r1, r2, 0 - bl sub_80ABE4C - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_080ABCE4: - ldrh r0, [r4, 0xE] - adds r0, 0x1 - strh r0, [r4, 0xE] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080ABDBE - movs r0, 0 - strh r0, [r4, 0xE] - ldrh r0, [r4, 0x10] - adds r0, 0x1 - strh r0, [r4, 0x10] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080ABD1C - ldr r2, _080ABD18 @ =gSprites - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x26] - adds r1, 0x2 - b _080ABD2E - .align 2, 0 -_080ABD18: .4byte gSprites -_080ABD1C: - ldr r2, _080ABD60 @ =gSprites - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x26] - subs r1, 0x2 -_080ABD2E: - strh r1, [r0, 0x26] - movs r1, 0x10 - ldrsh r0, [r4, r1] - cmp r0, 0xA - bne _080ABDBE - ldrh r1, [r4, 0x26] - lsls r1, 24 - lsrs r1, 24 - movs r2, 0xC0 - lsls r2, 1 - movs r0, 0x80 - lsls r0, 1 - str r0, [sp] - str r0, [sp, 0x4] - movs r0, 0x8 - str r0, [sp, 0x8] - adds r0, r4, 0 - movs r3, 0xE0 - bl sub_80765D4 - movs r0, 0 - strh r0, [r4, 0xE] - strh r0, [r4, 0x10] - b _080ABDA2 - .align 2, 0 -_080ABD60: .4byte gSprites -_080ABD64: - ldr r6, _080ABDAC @ =gSprites - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - ldrh r1, [r0, 0x22] - subs r1, 0x1 - strh r1, [r0, 0x22] - adds r0, r4, 0 - bl sub_8076640 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - bne _080ABDBE - ldrh r0, [r4, 0x26] - lsls r0, 24 - lsrs r0, 24 - bl ResetSpriteRotScale - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - ldrh r1, [r4, 0x12] - strh r1, [r0, 0x22] -_080ABDA0: - strh r5, [r4, 0x10] -_080ABDA2: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080ABDBE - .align 2, 0 -_080ABDAC: .4byte gSprites -_080ABDB0: - movs r1, 0xC - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080ABDBE - adds r0, r2, 0 - bl DestroyAnimVisualTask -_080ABDBE: - add sp, 0xC - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80ABB84 - - thumb_func_start sub_80ABDC8 -sub_80ABDC8: @ 80ABDC8 - push {r4,r5,lr} - ldr r4, _080ABDEC @ =gBattleAnimAttacker - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _080ABDFC - ldr r1, _080ABDF0 @ =gBattlerPartyIndexes - ldrb r0, [r4] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, _080ABDF4 @ =gPlayerParty - b _080ABE0C - .align 2, 0 -_080ABDEC: .4byte gBattleAnimAttacker -_080ABDF0: .4byte gBattlerPartyIndexes -_080ABDF4: .4byte gPlayerParty -_080ABDF8: - adds r0, r2, 0 - b _080ABE3E -_080ABDFC: - ldr r1, _080ABE44 @ =gBattlerPartyIndexes - ldrb r0, [r4] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, _080ABE48 @ =gEnemyParty -_080ABE0C: - adds r5, r1, r0 - adds r0, r5, 0 - movs r1, 0x3A - bl GetMonData - adds r4, r0, 0 - lsls r4, 16 - adds r0, r5, 0 - movs r1, 0x39 - bl GetMonData - lsls r0, 16 - lsrs r3, r0, 16 - lsrs r4, 18 - movs r2, 0 -_080ABE2A: - adds r1, r2, 0x1 - adds r0, r4, 0 - muls r0, r1 - cmp r3, r0 - blt _080ABDF8 - lsls r0, r1, 24 - lsrs r2, r0, 24 - cmp r2, 0x2 - bls _080ABE2A - movs r0, 0x3 -_080ABE3E: - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_080ABE44: .4byte gBattlerPartyIndexes -_080ABE48: .4byte gEnemyParty - thumb_func_end sub_80ABDC8 - - thumb_func_start sub_80ABE4C -sub_80ABE4C: @ 80ABE4C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x14 - adds r7, r0, 0 - lsls r1, 24 - lsrs r1, 24 - str r1, [sp] - ldr r4, _080ABF54 @ =gBattleAnimAttacker - ldrb r0, [r4] - movs r1, 0x2 - bl GetBattlerSpriteCoord - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldrb r0, [r4] - movs r1, 0x3 - bl GetBattlerSpriteCoord - lsls r0, 24 - lsrs r6, r0, 24 - movs r5, 0xAC - ldrb r0, [r4] - bl GetBattlerSpriteSubpriority - subs r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x8] - ldrh r1, [r7, 0xA] - movs r0, 0x4 - subs r0, r1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r0, 0 - bgt _080ABE9C - movs r1, 0x1 -_080ABE9C: - movs r0, 0 - str r0, [sp, 0x4] - lsls r0, r1, 16 - mov r10, r8 - mov r9, r6 - mov r1, r10 - lsls r1, 4 - str r1, [sp, 0xC] - mov r1, r9 - lsls r1, 4 - str r1, [sp, 0x10] - asrs r0, 16 - mov r8, r0 -_080ABEB6: - ldr r0, _080ABF58 @ =gUnknown_83E5AE0 - mov r1, r10 - mov r2, r9 - ldr r3, [sp, 0x8] - bl CreateSprite - lsls r0, 24 - lsrs r2, r0, 24 - lsls r6, r5, 16 - cmp r2, 0x40 - beq _080ABF1E - ldr r1, _080ABF5C @ =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r5, r0, r1 - mov r0, sp - ldrh r0, [r0, 0x4] - strh r0, [r5, 0x30] - mov r1, sp - ldrh r1, [r1, 0xC] - strh r1, [r5, 0x32] - mov r0, sp - ldrh r0, [r0, 0x10] - strh r0, [r5, 0x34] - asrs r4, r6, 16 - adds r0, r4, 0 - movs r1, 0x40 - bl Cos - strh r0, [r5, 0x36] - adds r0, r4, 0 - movs r1, 0x40 - bl Sin - strh r0, [r5, 0x38] - mov r1, sp - ldrh r1, [r1] - strh r1, [r5, 0x3A] - movs r0, 0x2 - strh r0, [r5, 0x3C] - ldrh r1, [r7, 0xC] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080ABF18 - adds r0, r5, 0 - bl sub_80ABF60 -_080ABF18: - ldrh r0, [r7, 0xC] - adds r0, 0x1 - strh r0, [r7, 0xC] -_080ABF1E: - mov r1, r8 - lsls r0, r1, 1 - asrs r1, r6, 16 - adds r1, r0 - lsls r1, 16 - movs r0, 0xFF - lsls r0, 16 - ands r0, r1 - lsrs r5, r0, 16 - ldr r1, [sp, 0x4] - lsls r0, r1, 16 - asrs r0, 16 - add r0, r8 - lsls r0, 16 - lsrs r1, r0, 16 - str r1, [sp, 0x4] - asrs r0, 16 - cmp r0, 0x13 - ble _080ABEB6 - add sp, 0x14 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080ABF54: .4byte gBattleAnimAttacker -_080ABF58: .4byte gUnknown_83E5AE0 -_080ABF5C: .4byte gSprites - thumb_func_end sub_80ABE4C - - thumb_func_start sub_80ABF60 -sub_80ABF60: @ 80ABF60 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080ABF72 - cmp r0, 0x1 - beq _080ABFA8 - b _080AC002 -_080ABF72: - movs r2, 0x30 - ldrsh r0, [r4, r2] - movs r1, 0x6 - bl __modsi3 - lsls r0, 16 - asrs r0, 16 - lsls r1, r0, 1 - adds r1, r0 - ldrh r0, [r4, 0x36] - adds r1, r0 - strh r1, [r4, 0x36] - movs r1, 0x30 - ldrsh r0, [r4, r1] - movs r1, 0x3 - bl __modsi3 - lsls r0, 16 - asrs r0, 16 - lsls r1, r0, 1 - adds r1, r0 - ldrh r2, [r4, 0x38] - adds r1, r2 - strh r1, [r4, 0x38] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] -_080ABFA8: - ldrh r0, [r4, 0x36] - ldrh r1, [r4, 0x32] - adds r0, r1 - strh r0, [r4, 0x32] - ldrh r1, [r4, 0x38] - ldrh r2, [r4, 0x34] - adds r1, r2 - strh r1, [r4, 0x34] - lsls r0, 16 - asrs r0, 20 - strh r0, [r4, 0x20] - lsls r1, 16 - asrs r2, r1, 20 - strh r2, [r4, 0x22] - adds r0, 0x8 - lsls r0, 16 - movs r1, 0x80 - lsls r1, 17 - cmp r0, r1 - bhi _080ABFDE - adds r1, r2, 0 - movs r0, 0x8 - negs r0, r0 - cmp r1, r0 - blt _080ABFDE - cmp r1, 0x78 - ble _080AC002 -_080ABFDE: - ldr r3, _080AC008 @ =gTasks - movs r0, 0x3C - ldrsh r1, [r4, r0] - lsls r1, 1 - movs r0, 0x3A - ldrsh r2, [r4, r0] - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r1, r0 - adds r3, 0x8 - adds r1, r3 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - adds r0, r4, 0 - bl DestroySprite -_080AC002: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AC008: .4byte gTasks - thumb_func_end sub_80ABF60 - - thumb_func_start sub_80AC00C -sub_80AC00C: @ 80AC00C - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080AC03C @ =gTasks - adds r4, r1, r0 - bl sub_80ABDC8 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0xA] - ldr r0, _080AC040 @ =gBattleAnimAttacker - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _080AC044 - movs r0, 0x88 - strh r0, [r4, 0x10] - movs r0, 0x28 - b _080AC04A - .align 2, 0 -_080AC03C: .4byte gTasks -_080AC040: .4byte gBattleAnimAttacker -_080AC044: - movs r0, 0x10 - strh r0, [r4, 0x10] - movs r0, 0x50 -_080AC04A: - strh r0, [r4, 0x14] - movs r0, 0x62 - strh r0, [r4, 0x12] - ldrh r0, [r4, 0x10] - adds r0, 0x31 - strh r0, [r4, 0x16] - movs r0, 0xA - ldrsh r1, [r4, r0] - lsls r0, r1, 2 - adds r0, r1 - adds r0, 0x5 - strh r0, [r4, 0x20] - ldr r0, _080AC06C @ =sub_80AC070 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AC06C: .4byte sub_80AC070 - thumb_func_end sub_80AC00C - - thumb_func_start sub_80AC070 -sub_80AC070: @ 80AC070 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r1, r0, 24 - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - ldr r7, _080AC094 @ =gTasks - adds r4, r0, r7 - movs r0, 0x8 - ldrsh r2, [r4, r0] - cmp r2, 0 - beq _080AC098 - cmp r2, 0x1 - beq _080AC148 - b _080AC156 - .align 2, 0 -_080AC094: .4byte gTasks -_080AC098: - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - ble _080AC0AE - strh r2, [r4, 0xC] - adds r0, r4, 0 - bl sub_80AC160 -_080AC0AE: - movs r1, 0x1C - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080AC128 - movs r2, 0x22 - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _080AC128 - ldr r5, _080AC13C @ =gBattleAnimArgs - movs r1, 0x1 - mov r8, r1 - mov r2, r8 - strh r2, [r5] - strh r0, [r5, 0x2] - movs r0, 0xC - strh r0, [r5, 0x4] - ldr r6, _080AC140 @ =sub_80B94B4 - adds r0, r6, 0 - movs r1, 0x50 - bl CreateTask - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xFF - beq _080AC0F8 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r7 - ldr r1, [r0] - adds r0, r2, 0 - bl _call_via_r1 - ldr r1, _080AC144 @ =gAnimVisualTaskCount - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_080AC0F8: - movs r0, 0x3 - strh r0, [r5] - adds r0, r6, 0 - movs r1, 0x50 - bl CreateTask - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xFF - beq _080AC124 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r7 - ldr r1, [r0] - adds r0, r2, 0 - bl _call_via_r1 - ldr r1, _080AC144 @ =gAnimVisualTaskCount - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_080AC124: - mov r0, r8 - strh r0, [r4, 0x22] -_080AC128: - movs r2, 0x1E - ldrsh r1, [r4, r2] - movs r2, 0x20 - ldrsh r0, [r4, r2] - cmp r1, r0 - blt _080AC156 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080AC156 - .align 2, 0 -_080AC13C: .4byte gBattleAnimArgs -_080AC140: .4byte sub_80B94B4 -_080AC144: .4byte gAnimVisualTaskCount -_080AC148: - movs r2, 0x1A - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _080AC156 - adds r0, r1, 0 - bl DestroyAnimVisualTask -_080AC156: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80AC070 - - thumb_func_start sub_80AC160 -sub_80AC160: @ 80AC160 - push {r4-r6,lr} - adds r4, r0, 0 - lsls r1, 24 - lsrs r6, r1, 24 - ldr r1, _080AC1EC @ =gSineTable - movs r2, 0x18 - ldrsh r0, [r4, r2] - lsls r0, 1 - adds r0, r1 - movs r1, 0 - ldrsh r0, [r0, r1] - adds r0, 0x3 - asrs r0, 4 - ldrh r2, [r4, 0x14] - adds r0, r2 - lsls r0, 16 - lsrs r5, r0, 16 - ldr r0, _080AC1F0 @ =gUnknown_83E5AE0 - movs r2, 0x16 - ldrsh r1, [r4, r2] - movs r2, 0 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x40 - beq _080AC1BA - ldr r3, _080AC1F4 @ =gSprites - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r3, 0 - adds r1, 0x1C - adds r1, r0, r1 - ldr r2, _080AC1F8 @ =sub_80AC204 - str r2, [r1] - adds r0, r3 - strh r5, [r0, 0x38] - strh r6, [r0, 0x3A] - movs r1, 0x9 - strh r1, [r0, 0x3C] - ldrh r0, [r4, 0x1A] - adds r0, 0x1 - strh r0, [r4, 0x1A] -_080AC1BA: - ldrh r0, [r4, 0x1E] - adds r0, 0x1 - strh r0, [r4, 0x1E] - ldrh r0, [r4, 0x18] - adds r0, 0x27 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x18] - movs r0, 0x16 - ldrsh r1, [r4, r0] - ldr r0, _080AC1FC @ =0x41c64e6d - muls r0, r1 - ldr r1, _080AC200 @ =0x00003039 - adds r0, r1 - movs r2, 0x12 - ldrsh r1, [r4, r2] - bl __modsi3 - ldrh r1, [r4, 0x10] - adds r1, r0 - strh r1, [r4, 0x16] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080AC1EC: .4byte gSineTable -_080AC1F0: .4byte gUnknown_83E5AE0 -_080AC1F4: .4byte gSprites -_080AC1F8: .4byte sub_80AC204 -_080AC1FC: .4byte 0x41c64e6d -_080AC200: .4byte 0x00003039 - thumb_func_end sub_80AC160 - - thumb_func_start sub_80AC204 -sub_80AC204: @ 80AC204 - push {r4,r5,lr} - adds r5, r0, 0 - movs r1, 0x2E - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080AC29A - ldrh r0, [r5, 0x22] - adds r0, 0x8 - strh r0, [r5, 0x22] - lsls r0, 16 - asrs r0, 16 - movs r2, 0x38 - ldrsh r1, [r5, r2] - cmp r0, r1 - blt _080AC29A - ldr r2, _080AC2A0 @ =gTasks - movs r3, 0x3A - ldrsh r1, [r5, r3] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - movs r1, 0x1 - strh r1, [r0, 0x1C] - ldr r0, _080AC2A4 @ =gUnknown_83E7C38 - movs r2, 0x20 - ldrsh r1, [r5, r2] - movs r3, 0x22 - ldrsh r2, [r5, r3] - movs r3, 0x1 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x30] - cmp r0, 0x40 - beq _080AC294 - movs r0, 0x30 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, _080AC2A8 @ =gSprites - adds r0, r4 - movs r1, 0x3 - bl StartSpriteAffineAnim - movs r2, 0x30 - ldrsh r1, [r5, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrh r1, [r5, 0x3A] - strh r1, [r0, 0x3A] - movs r3, 0x30 - ldrsh r1, [r5, r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrh r1, [r5, 0x3C] - strh r1, [r0, 0x3C] - movs r0, 0x30 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r4, 0x1C - adds r0, r4 - ldr r1, _080AC2AC @ =sub_80AC2B0 - str r1, [r0] -_080AC294: - adds r0, r5, 0 - bl DestroySprite -_080AC29A: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080AC2A0: .4byte gTasks -_080AC2A4: .4byte gUnknown_83E7C38 -_080AC2A8: .4byte gSprites -_080AC2AC: .4byte sub_80AC2B0 - thumb_func_end sub_80AC204 - - thumb_func_start sub_80AC2B0 -sub_80AC2B0: @ 80AC2B0 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080AC31C - movs r0, 0 - strh r0, [r4, 0x30] - adds r3, r4, 0 - adds r3, 0x3E - ldrb r2, [r3] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xC - bne _080AC31C - ldr r3, _080AC324 @ =gTasks - movs r0, 0x3C - ldrsh r1, [r4, r0] - lsls r1, 1 - movs r0, 0x3A - ldrsh r2, [r4, r0] - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r1, r0 - adds r3, 0x8 - adds r1, r3 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - ldrb r0, [r4, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - adds r0, r4, 0 - bl DestroySprite -_080AC31C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AC324: .4byte gTasks - thumb_func_end sub_80AC2B0 - - thumb_func_start sub_80AC328 -sub_80AC328: @ 80AC328 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080AC3AC @ =gTasks - adds r5, r1, r0 - ldr r4, _080AC3B0 @ =gBattleAnimAttacker - ldrb r0, [r4] - movs r1, 0x2 - bl GetBattlerSpriteCoord - lsls r0, 24 - lsrs r0, 24 - movs r6, 0 - strh r0, [r5, 0xE] - ldrb r0, [r4] - movs r1, 0x3 - bl GetBattlerSpriteCoord - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x10] - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, 24 - movs r2, 0x1 - negs r2, r2 - adds r1, r2, 0 - cmp r0, 0 - bne _080AC36C - movs r1, 0x1 -_080AC36C: - strh r1, [r5, 0x16] - bl IsContest - lsls r0, 24 - cmp r0, 0 - beq _080AC380 - movs r1, 0x16 - ldrsh r0, [r5, r1] - negs r0, r0 - strh r0, [r5, 0x16] -_080AC380: - movs r2, 0x16 - ldrsh r0, [r5, r2] - lsls r0, 3 - ldrh r1, [r5, 0xE] - adds r0, r1 - strh r0, [r5, 0x12] - movs r2, 0x16 - ldrsh r1, [r5, r2] - lsls r1, 3 - ldrh r0, [r5, 0x10] - subs r0, r1 - strh r0, [r5, 0x14] - ldr r0, _080AC3B4 @ =0x0000ffe0 - strh r0, [r5, 0x1A] - strh r6, [r5, 0xA] - strh r6, [r5, 0x8] - ldr r0, _080AC3B8 @ =sub_80AC3BC - str r0, [r5] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080AC3AC: .4byte gTasks -_080AC3B0: .4byte gBattleAnimAttacker -_080AC3B4: .4byte 0x0000ffe0 -_080AC3B8: .4byte sub_80AC3BC - thumb_func_end sub_80AC328 - - thumb_func_start sub_80AC3BC -sub_80AC3BC: @ 80AC3BC - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080AC3E0 @ =gTasks - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x6 - bls _080AC3D6 - b _080AC4F6 -_080AC3D6: - lsls r0, 2 - ldr r1, _080AC3E4 @ =_080AC3E8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080AC3E0: .4byte gTasks -_080AC3E4: .4byte _080AC3E8 - .align 2, 0 -_080AC3E8: - .4byte _080AC404 - .4byte _080AC414 - .4byte _080AC42E - .4byte _080AC470 - .4byte _080AC492 - .4byte _080AC4C0 - .4byte _080AC4E6 -_080AC404: - adds r0, r4, 0 - bl sub_80AC504 - movs r1, 0x1C - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080AC4FC - b _080AC4EE -_080AC414: - adds r0, r4, 0 - bl sub_80AC504 - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x10 - ble _080AC4FC - movs r0, 0 - strh r0, [r4, 0xA] - b _080AC4EE -_080AC42E: - adds r0, r4, 0 - bl sub_80AC504 - movs r1, 0x16 - ldrsh r0, [r4, r1] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 1 - ldrh r0, [r4, 0x12] - adds r1, r0 - movs r2, 0 - strh r1, [r4, 0x12] - adds r1, 0x10 - lsls r1, 16 - movs r0, 0x88 - lsls r0, 17 - cmp r1, r0 - bls _080AC4FC - ldrh r0, [r4, 0x20] - adds r0, 0x1 - strh r0, [r4, 0x20] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - ble _080AC46C - movs r0, 0x1 - strh r0, [r4, 0x22] - movs r0, 0x6 - strh r0, [r4, 0x8] - strh r2, [r4, 0xA] - b _080AC4FC -_080AC46C: - strh r2, [r4, 0xA] - b _080AC4EE -_080AC470: - adds r0, r4, 0 - bl sub_80AC504 - movs r0, 0x16 - ldrsh r1, [r4, r0] - lsls r1, 1 - ldrh r0, [r4, 0x14] - subs r0, r1 - strh r0, [r4, 0x14] - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x7 - ble _080AC4FC - b _080AC4EE -_080AC492: - adds r0, r4, 0 - bl sub_80AC504 - movs r1, 0x16 - ldrsh r0, [r4, r1] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 1 - ldrh r0, [r4, 0x12] - subs r0, r1 - strh r0, [r4, 0x12] - adds r0, 0x10 - lsls r0, 16 - movs r1, 0x88 - lsls r1, 17 - cmp r0, r1 - bls _080AC4FC - ldrh r0, [r4, 0x20] - adds r0, 0x1 - strh r0, [r4, 0x20] - movs r0, 0 - strh r0, [r4, 0xA] - b _080AC4EE -_080AC4C0: - adds r0, r4, 0 - bl sub_80AC504 - movs r0, 0x16 - ldrsh r1, [r4, r0] - lsls r1, 1 - ldrh r0, [r4, 0x14] - subs r0, r1 - strh r0, [r4, 0x14] - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x7 - ble _080AC4FC - movs r0, 0x2 - strh r0, [r4, 0x8] - b _080AC4FC -_080AC4E6: - movs r1, 0x18 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080AC4FC -_080AC4EE: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080AC4FC -_080AC4F6: - adds r0, r2, 0 - bl DestroyAnimVisualTask -_080AC4FC: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80AC3BC - - thumb_func_start sub_80AC504 -sub_80AC504: @ 80AC504 - push {r4-r6,lr} - adds r6, r0, 0 - ldrh r0, [r6, 0xC] - adds r0, 0x1 - strh r0, [r6, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080AC55E - movs r0, 0 - strh r0, [r6, 0xC] - ldr r0, _080AC564 @ =gUnknown_83E5AE0 - movs r2, 0xE - ldrsh r1, [r6, r2] - movs r3, 0x10 - ldrsh r2, [r6, r3] - movs r3, 0xA - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x40 - beq _080AC55E - ldr r5, _080AC568 @ =gSprites - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - adds r0, r4, r5 - movs r1, 0x10 - strh r1, [r0, 0x2E] - ldrh r1, [r6, 0x12] - strh r1, [r0, 0x32] - ldrh r1, [r6, 0x14] - strh r1, [r0, 0x36] - ldrh r1, [r6, 0x1A] - strh r1, [r0, 0x38] - bl InitAnimArcTranslation - adds r5, 0x1C - adds r4, r5 - ldr r0, _080AC56C @ =sub_80AC570 - str r0, [r4] - ldrh r0, [r6, 0x18] - adds r0, 0x1 - strh r0, [r6, 0x18] -_080AC55E: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080AC564: .4byte gUnknown_83E5AE0 -_080AC568: .4byte gSprites -_080AC56C: .4byte sub_80AC570 - thumb_func_end sub_80AC504 - - thumb_func_start sub_80AC570 -sub_80AC570: @ 80AC570 - push {r4-r6,lr} - adds r6, r0, 0 - bl TranslateAnimHorizontalArc - lsls r0, 24 - cmp r0, 0 - beq _080AC5CA - ldrh r0, [r6, 0x24] - ldrh r1, [r6, 0x20] - adds r0, r1 - strh r0, [r6, 0x20] - ldrh r0, [r6, 0x26] - ldrh r1, [r6, 0x22] - adds r0, r1 - strh r0, [r6, 0x22] - movs r0, 0x6 - strh r0, [r6, 0x2E] - bl Random - movs r4, 0x1F - adds r1, r4, 0 - ands r1, r0 - ldr r5, _080AC5D0 @ =0x0000fff0 - adds r1, r5 - ldrh r0, [r6, 0x20] - adds r1, r0 - strh r1, [r6, 0x32] - bl Random - ands r4, r0 - adds r4, r5 - ldrh r1, [r6, 0x22] - adds r4, r1 - strh r4, [r6, 0x36] - bl Random - movs r1, 0x7 - ands r1, r0 - mvns r1, r1 - strh r1, [r6, 0x38] - adds r0, r6, 0 - bl InitAnimArcTranslation - ldr r0, _080AC5D4 @ =sub_80AC5D8 - str r0, [r6, 0x1C] -_080AC5CA: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080AC5D0: .4byte 0x0000fff0 -_080AC5D4: .4byte sub_80AC5D8 - thumb_func_end sub_80AC570 - - thumb_func_start sub_80AC5D8 -sub_80AC5D8: @ 80AC5D8 - push {r4-r6,lr} - adds r5, r0, 0 - bl TranslateAnimHorizontalArc - lsls r0, 24 - cmp r0, 0 - beq _080AC614 - movs r4, 0 - ldr r6, _080AC61C @ =gTasks -_080AC5EA: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r2, r0, r6 - ldr r1, [r2] - ldr r0, _080AC620 @ =sub_80AC3BC - cmp r1, r0 - bne _080AC60A - movs r0, 0x1 - strh r0, [r2, 0x1C] - ldrh r0, [r2, 0x18] - subs r0, 0x1 - strh r0, [r2, 0x18] - adds r0, r5, 0 - bl DestroySprite -_080AC60A: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0xF - bls _080AC5EA -_080AC614: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080AC61C: .4byte gTasks -_080AC620: .4byte sub_80AC3BC - thumb_func_end sub_80AC5D8 - - thumb_func_start sub_80AC624 -sub_80AC624: @ 80AC624 - ldr r2, _080AC644 @ =gBattleAnimArgs - ldrh r1, [r2] - strh r1, [r0, 0x20] - ldrh r1, [r2, 0x2] - strh r1, [r0, 0x22] - ldrh r1, [r2, 0x4] - strh r1, [r0, 0x2E] - ldrh r1, [r2, 0x6] - strh r1, [r0, 0x30] - ldrh r1, [r2, 0x8] - strh r1, [r0, 0x32] - ldrh r1, [r2, 0xA] - strh r1, [r0, 0x34] - ldr r1, _080AC648 @ =sub_80AC64C - str r1, [r0, 0x1C] - bx lr - .align 2, 0 -_080AC644: .4byte gBattleAnimArgs -_080AC648: .4byte sub_80AC64C - thumb_func_end sub_80AC624 - - thumb_func_start sub_80AC64C -sub_80AC64C: @ 80AC64C - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x36] - ldrh r1, [r4, 0x2E] - subs r0, r1 - strh r0, [r4, 0x36] - movs r1, 0x36 - ldrsh r0, [r4, r1] - movs r1, 0xA - bl __divsi3 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x30] - ldrh r2, [r4, 0x38] - adds r0, r2 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x38] - movs r1, 0x38 - ldrsh r0, [r4, r1] - movs r2, 0x32 - ldrsh r1, [r4, r2] - bl Sin - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x34] - subs r0, 0x1 - strh r0, [r4, 0x34] - lsls r0, 16 - cmp r0, 0 - bne _080AC690 - adds r0, r4, 0 - bl DestroyAnimSprite -_080AC690: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80AC64C - - thumb_func_start sub_80AC698 -sub_80AC698: @ 80AC698 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x30] - ldrh r1, [r4, 0x34] - adds r0, r1 - strh r0, [r4, 0x34] - ldrh r1, [r4, 0x32] - ldrh r2, [r4, 0x36] - adds r1, r2 - strh r1, [r4, 0x36] - lsls r0, 16 - asrs r0, 23 - strh r0, [r4, 0x24] - lsls r1, 16 - asrs r1, 23 - strh r1, [r4, 0x26] - ldrh r0, [r4, 0x2E] - subs r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - cmp r0, 0 - bne _080AC6D0 - adds r0, r4, 0 - bl FreeSpriteOamMatrix - adds r0, r4, 0 - bl DestroySprite -_080AC6D0: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80AC698 - - thumb_func_start AnimWaterPulseRing -AnimWaterPulseRing: @ 80AC6D8 - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl InitSpritePosToAnimAttacker - ldr r5, _080AC714 @ =gBattleAnimTarget - ldrb r0, [r5] - movs r1, 0x2 - bl GetBattlerSpriteCoord - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x30] - ldrb r0, [r5] - movs r1, 0x3 - bl GetBattlerSpriteCoord - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x32] - ldr r1, _080AC718 @ =gBattleAnimArgs - ldrh r0, [r1, 0x4] - strh r0, [r4, 0x34] - ldrh r0, [r1, 0x6] - strh r0, [r4, 0x36] - ldr r0, _080AC71C @ =sub_80AC720 - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080AC714: .4byte gBattleAnimTarget -_080AC718: .4byte gBattleAnimArgs -_080AC71C: .4byte sub_80AC720 - thumb_func_end AnimWaterPulseRing - - thumb_func_start sub_80AC720 -sub_80AC720: @ 80AC720 - push {r4-r6,lr} - adds r4, r0, 0 - movs r0, 0x30 - ldrsh r1, [r4, r0] - movs r2, 0x20 - ldrsh r0, [r4, r2] - subs r6, r1, r0 - movs r0, 0x32 - ldrsh r1, [r4, r0] - movs r2, 0x22 - ldrsh r0, [r4, r2] - subs r5, r1, r0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - muls r0, r6 - movs r2, 0x34 - ldrsh r1, [r4, r2] - bl __divsi3 - strh r0, [r4, 0x24] - movs r1, 0x2E - ldrsh r0, [r4, r1] - muls r0, r5 - movs r2, 0x34 - ldrsh r1, [r4, r2] - bl __divsi3 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x38] - adds r0, 0x1 - strh r0, [r4, 0x38] - lsls r0, 16 - asrs r0, 16 - movs r2, 0x36 - ldrsh r1, [r4, r2] - cmp r0, r1 - bne _080AC778 - movs r0, 0 - strh r0, [r4, 0x38] - adds r0, r4, 0 - adds r1, r6, 0 - adds r2, r5, 0 - bl sub_80AC798 -_080AC778: - movs r0, 0x34 - ldrsh r1, [r4, r0] - movs r2, 0x2E - ldrsh r0, [r4, r2] - cmp r1, r0 - bne _080AC78A - adds r0, r4, 0 - bl DestroyAnimSprite -_080AC78A: - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80AC720 - - thumb_func_start sub_80AC798 -sub_80AC798: @ 80AC798 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x18 - adds r4, r1, 0 - adds r5, r2, 0 - movs r2, 0x2E - ldrsh r1, [r0, r2] - lsrs r2, r1, 31 - adds r1, r2 - lsls r1, 15 - lsrs r1, 16 - str r1, [sp] - ldrh r1, [r0, 0x24] - ldrh r3, [r0, 0x20] - adds r1, r3 - lsls r1, 16 - lsrs r1, 16 - mov r8, r1 - ldrh r1, [r0, 0x26] - ldrh r0, [r0, 0x22] - adds r1, r0 - lsls r1, 16 - lsrs r1, 16 - mov r10, r1 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xA - bl __umodsi3 - adds r0, r5, r0 - subs r0, 0x5 - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - bl Random - negs r4, r4 - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xA - bl __umodsi3 - adds r4, r0 - subs r4, 0x5 - lsls r4, 16 - lsrs r7, r4, 16 - movs r6, 0 - mov r0, r8 - lsls r0, 16 - mov r8, r0 - mov r1, r10 - lsls r1, 16 - str r1, [sp, 0xC] - ldr r2, [sp] - lsls r2, 16 - str r2, [sp, 0x10] - asrs r1, 16 - lsls r0, r7, 16 - asrs r5, r0, 16 - str r0, [sp, 0x14] - negs r3, r5 - str r3, [sp, 0x4] - asrs r0, r2, 16 - adds r1, r0 - lsls r1, 16 - mov r10, r1 -_080AC826: - ldr r0, _080AC868 @ =gUnknown_83E5B88 - mov r2, r8 - asrs r1, r2, 16 - mov r3, r10 - asrs r2, r3, 16 - movs r3, 0x82 - bl CreateSprite - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, _080AC86C @ =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r4, r0, r1 - movs r0, 0x14 - strh r0, [r4, 0x2E] - mov r0, r9 - strh r0, [r4, 0x30] - ldr r0, _080AC870 @ =gBattleAnimAttacker - ldrb r0, [r0] - bl GetBattlerSpriteSubpriority - subs r0, 0x1 - adds r1, r4, 0 - adds r1, 0x43 - strb r0, [r1] - cmp r5, 0 - bge _080AC874 - mov r1, sp - ldrh r1, [r1, 0x4] - strh r1, [r4, 0x32] - b _080AC876 - .align 2, 0 -_080AC868: .4byte gUnknown_83E5B88 -_080AC86C: .4byte gSprites -_080AC870: .4byte gBattleAnimAttacker -_080AC874: - strh r7, [r4, 0x32] -_080AC876: - lsls r0, r6, 16 - movs r2, 0x80 - lsls r2, 9 - adds r0, r2 - lsrs r6, r0, 16 - cmp r0, 0 - ble _080AC826 - movs r6, 0 - ldr r3, [sp, 0xC] - asrs r1, r3, 16 - ldr r0, [sp, 0x14] - asrs r5, r0, 16 - negs r2, r5 - str r2, [sp, 0x8] - ldr r3, [sp, 0x10] - asrs r0, r3, 16 - subs r1, r0 - lsls r1, 16 - mov r10, r1 -_080AC89C: - ldr r0, _080AC8E0 @ =gUnknown_83E5B88 - mov r2, r8 - asrs r1, r2, 16 - mov r3, r10 - asrs r2, r3, 16 - movs r3, 0x82 - bl CreateSprite - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, _080AC8E4 @ =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r4, r0, r1 - movs r0, 0x14 - strh r0, [r4, 0x2E] - mov r0, r9 - strh r0, [r4, 0x30] - ldr r0, _080AC8E8 @ =gBattleAnimAttacker - ldrb r0, [r0] - bl GetBattlerSpriteSubpriority - subs r0, 0x1 - adds r1, r4, 0 - adds r1, 0x43 - strb r0, [r1] - cmp r5, 0 - ble _080AC8EC - mov r1, sp - ldrh r1, [r1, 0x8] - strh r1, [r4, 0x32] - b _080AC8EE - .align 2, 0 -_080AC8E0: .4byte gUnknown_83E5B88 -_080AC8E4: .4byte gSprites -_080AC8E8: .4byte gBattleAnimAttacker -_080AC8EC: - strh r7, [r4, 0x32] -_080AC8EE: - lsls r0, r6, 16 - movs r2, 0x80 - lsls r2, 9 - adds r0, r2 - lsrs r6, r0, 16 - cmp r0, 0 - ble _080AC89C - add sp, 0x18 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80AC798 - - .align 2, 0 @ Don't pad with nop. diff --git a/data/battle_anim_effects_misc.s b/data/battle_anim_effects_misc.s deleted file mode 100644 index c6cb89e24..000000000 --- a/data/battle_anim_effects_misc.s +++ /dev/null @@ -1,210 +0,0 @@ -#include "constants/maps.h" -#include "constants/species.h" - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - .align 2 - -gUnknown_83E44F4:: @ 83E44F4 - .incbin "graphics/battle_anims/unk_83E4874.4bpp" - -gUnknown_83E4874:: - .incbin "graphics/battle_anims/unk_83E4874.bin" - -gUnknown_83E5874:: @ 83E5874 - obj_image_anim_frame 0, 2 - obj_image_anim_frame 8, 2 - obj_image_anim_frame 16, 2 - obj_image_anim_frame 24, 6 - obj_image_anim_frame 32, 2 - obj_image_anim_frame 40, 2 - obj_image_anim_frame 48, 2 - obj_image_anim_end - -gUnknown_83E5894:: @ 83E5894 - .4byte gUnknown_83E5874 - -gUnknown_83E5898:: @ 83E5898 - spr_template 10115, 10115, gOamData_AffineOff_ObjNormal_16x32, gUnknown_83E5894, NULL, gDummySpriteAffineAnimTable, sub_80AAC54 - -gUnknown_83E58B0:: @ 83E58B0 - obj_rot_scal_anim_frame -5, -5, 0, 10 - obj_rot_scal_anim_frame 5, 5, 0, 10 - obj_rot_scal_anim_jump 0 - -gUnknown_83E58C8:: @ 83E58C8 - .4byte gUnknown_83E58B0 - -gUnknown_83E58CC:: @ 83E58CC - obj_image_anim_frame 0, 1 - obj_image_anim_frame 4, 5 - obj_image_anim_frame 8, 5 - obj_image_anim_end - -gUnknown_83E58DC:: @ 83E58DC - .4byte gUnknown_83E58CC - -gUnknown_83E58E0:: @ 83E58E0 - spr_template 10146, 10146, gOamData_AffineNormal_ObjBlend_16x16, gUnknown_83E58DC, NULL, gUnknown_83E58C8, sub_80AAC98 - -gUnknown_83E58F8:: @ 83E58F8 - obj_image_anim_frame 0, 1 - obj_image_anim_end - -gUnknown_83E5900:: @ 83E5900 - obj_image_anim_frame 4, 1 - obj_image_anim_end - -gUnknown_83E5908:: @ 83E5908 - .4byte gUnknown_83E58F8 - .4byte gUnknown_83E5900 - -gUnknown_83E5910:: @ 83E5910 - obj_rot_scal_anim_frame 0, 0, 0, 1 - obj_rot_scal_anim_frame 96, 96, 0, 1 - obj_rot_scal_anim_end - -gUnknown_83E5928:: @ 83E5928 - .4byte gUnknown_83E5910 - -gUnknown_83E592C:: @ 83E592C - spr_template 10140, 10140, gOamData_AffineDouble_ObjNormal_8x16, gUnknown_83E5908, NULL, gUnknown_83E5928, sub_80AAE84 - -gUnknown_83E5944:: @ 83E5944 - obj_image_anim_frame 0, 1 - obj_image_anim_frame 4, 1 - obj_image_anim_frame 8, 1 - obj_image_anim_frame 12, 1 - obj_image_anim_jump 0 - -gUnknown_83E5958:: @ 83E5958 - .4byte gUnknown_83E5944 - -gUnknown_83E595C:: @ 83E595C - spr_template 10149, 10149, gOamData_AffineOff_ObjBlend_16x16, gUnknown_83E5958, NULL, gDummySpriteAffineAnimTable, sub_80AB024 - -gUnknown_83E5974:: @ 83E5974 - spr_template 10259, 10259, gOamData_AffineOff_ObjBlend_16x16, gUnknown_83E5958, NULL, gDummySpriteAffineAnimTable, sub_80AB024 - -gUnknown_83E598C:: @ 83E598C - spr_template 10264, 10264, gOamData_AffineOff_ObjNormal_8x8, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80AB024 - -gUnknown_83E59A4:: @ 83E59A4 - spr_template 10265, 10265, gOamData_AffineOff_ObjNormal_8x8, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80AB024 - -gUnknown_83E59BC:: @ 83E59BC - obj_image_anim_frame 16, 2 - obj_image_anim_frame 32, 2 - obj_image_anim_frame 48, 2 - obj_image_anim_jump 0 - -gUnknown_83E59CC:: @ 83E59CC - .4byte gUnknown_83E59BC - -gUnknown_83E59D0:: @ 83E59D0 - spr_template 10029, 10029, gOamData_AffineOff_ObjNormal_32x32, gUnknown_83E59CC, NULL, gDummySpriteAffineAnimTable, sub_80AB024 - -gUnknown_83E59E8:: @ 83E59E8 - spr_template 10165, 10165, gOamData_AffineDouble_ObjNormal_16x32, gDummySpriteAnimTable, NULL, gGrowingRingAffineAnimTable, sub_80AB024 - -gUnknown_83E5A00:: @ 83E5A00 - obj_rot_scal_anim_frame 3, 3, 10, 50 - obj_rot_scal_anim_frame 0, 0, 0, 10 - obj_rot_scal_anim_frame -20, -20, 246, 20 - obj_rot_scal_anim_end - -gUnknown_83E5A20:: @ 83E5A20 - obj_rot_scal_anim_frame 336, 336, 0, 0 - obj_rot_scal_anim_end - -gUnknown_83E5A30:: @ 83E5A30 - .4byte gUnknown_83E5A00 - -gUnknown_83E5A34:: @ 83E5A34 - .4byte gUnknown_83E5A20 - -gUnknown_83E5A38:: @ 83E5A38 - spr_template 10149, 10149, gOamData_AffineDouble_ObjBlend_16x16, gUnknown_83E5958, NULL, gUnknown_83E5A30, sub_80AB168 - -gUnknown_83E5A50:: @ 83E5A50 - spr_template 10149, 10149, gOamData_AffineDouble_ObjBlend_16x16, gUnknown_83E5958, NULL, gUnknown_83E5A34, sub_80AB1F8 - -gUnknown_83E5A68:: @ 83E5A68 - obj_image_anim_frame 0, 1 - obj_image_anim_end - -gUnknown_83E5A70:: @ 83E5A70 - obj_image_anim_frame 4, 1 - obj_image_anim_end - -gUnknown_83E5A78:: @ 83E5A78 - .4byte gUnknown_83E5A68 - -gUnknown_83E5A7C:: @ 83E5A7C - .4byte gUnknown_83E5A70 - -gUnknown_83E5A80:: @ 83E5A80 - spr_template 10155, 10155, gOamData_AffineOff_ObjBlend_16x16, gUnknown_83E5A78, NULL, gDummySpriteAffineAnimTable, AnimThrowProjectile - -gUnknown_83E5A98:: @ 83E5A98 - spr_template 10155, 10155, gOamData_AffineDouble_ObjBlend_16x16, gUnknown_83E5A7C, NULL, gUnknown_83E6A80, sub_80AB2CC - -gUnknown_83E5AB0:: @ 83E5AB0 - spr_template 10141, 10141, gOamData_AffineOff_ObjNormal_8x8, gUnknown_83E6330, NULL, gDummySpriteAffineAnimTable, sub_80AB308 - -gUnknown_83E5AC8:: @ 83E5AC8 - spr_template 10155, 10155, gOamData_AffineOff_ObjNormal_8x8, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80ABA78 - -gUnknown_83E5AE0:: @ 83E5AE0 - spr_template 10268, 10268, gOamData_AffineOff_ObjNormal_8x8, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80ABF60 - -gUnknown_83E5AF8:: @ 83E5AF8 - obj_image_anim_frame 8, 1 - obj_image_anim_end - -gUnknown_83E5B00:: @ 83E5B00 - obj_image_anim_frame 9, 1 - obj_image_anim_end - -gUnknown_83E5B08:: @ 83E5B08 - obj_image_anim_frame 4, 1 - obj_image_anim_end - -gUnknown_83E5B10:: @ 83E5B10 - .4byte gUnknown_83E5AF8 - .4byte gUnknown_83E5B00 - -gUnknown_83E5B18:: @ 83E5B18 - .4byte gUnknown_83E5B08 - -gUnknown_83E5B1C:: @ 83E5B1C - obj_rot_scal_anim_frame 256, 256, 0, 0 - obj_rot_scal_anim_frame -10, -10, 0, 15 - obj_rot_scal_anim_end - -gUnknown_83E5B34:: @ 83E5B34 - obj_rot_scal_anim_frame 224, 224, 0, 0 - obj_rot_scal_anim_frame -8, -8, 0, 15 - obj_rot_scal_anim_end - -gUnknown_83E5B4C:: @ 83E5B4C - obj_rot_scal_anim_frame 336, 336, 0, 0 - obj_rot_scal_anim_frame 0, 0, 0, 15 - obj_rot_scal_anim_end - -gUnknown_83E5B64:: @ 83E5B64 - .4byte gUnknown_83E5B1C - .4byte gUnknown_83E5B34 - -gUnknown_83E5B6C:: @ 83E5B6C - .4byte gUnknown_83E5B4C - -gUnknown_83E5B70:: @ 83E5B70 - spr_template 10155, 10155, gOamData_AffineOff_ObjNormal_8x8, gUnknown_83E5B10, NULL, gDummySpriteAffineAnimTable, sub_80AC624 - -gUnknown_83E5B88:: @ 83E5B88 - spr_template 10155, 10155, gOamData_AffineNormal_ObjNormal_8x8, gUnknown_83E5B10, NULL, gUnknown_83E5B64, sub_80AC698 - -gUnknown_83E5BA0:: @ 83E5BA0 - spr_template 10155, 10155, gOamData_AffineNormal_ObjNormal_16x16, gUnknown_83E5B18, NULL, gUnknown_83E5B6C, sub_8077350 diff --git a/data/battle_anim_scripts.s b/data/battle_anim_scripts.s index 05f298340..c8b37d1cc 100644 --- a/data/battle_anim_scripts.s +++ b/data/battle_anim_scripts.s @@ -471,9 +471,8 @@ Move_DOUBLE_SLAP:: @ 81C6F65 loadspritegfx ANIM_TAG_IMPACT monbg 1 setalpha 12, 8 - choosetwoturnanim gUnknown_81C6F90, gUnknown_81C6FA4 - -gUnknown_81C6F76:: @ 81C6F76 + choosetwoturnanim DoubleSlapLeft, DoubleSlapRight +DoubleSlapContinue:: @ 81C6F76 createvisualtask AnimTask_ShakeMon, 2, 1, 3, 0, 6, 1 playsewithpan SE_W003, 63 waitforvisualfinish @@ -481,13 +480,13 @@ gUnknown_81C6F76:: @ 81C6F76 blendoff end -gUnknown_81C6F90:: @ 81C6F90 +DoubleSlapLeft:: @ 81C6F90 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -8, 0, 1, 2 - goto gUnknown_81C6F76 + goto DoubleSlapContinue -gUnknown_81C6FA4:: @ 81C6FA4 +DoubleSlapRight:: @ 81C6FA4 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 8, 0, 1, 2 - goto gUnknown_81C6F76 + goto DoubleSlapContinue Move_POISON_POWDER:: @ 81C6FB8 loadspritegfx ANIM_TAG_POISON_POWDER @@ -565,7 +564,7 @@ Move_SLEEP_POWDER:: @ 81C7217 Move_SWIFT:: @ 81C7345 loadspritegfx ANIM_TAG_YELLOW_STAR loadspritegfx ANIM_TAG_IMPACT - monbg 3 + monbg ANIM_DEF_PARTNER setalpha 12, 8 playsewithpan SE_W129, 192 createsprite gSwiftStarSpriteTemplate, ANIM_TARGET, 3, 20, -10, 20, 0, 22, 20, 1 @@ -585,13 +584,13 @@ Move_SWIFT:: @ 81C7345 createsprite gSwiftStarSpriteTemplate, ANIM_TARGET, 3, 20, -10, 20, 0, 22, 12, 1 delay 5 waitforvisualfinish - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER blendoff end Move_STRENGTH:: @ 81C73FE loadspritegfx ANIM_TAG_IMPACT - monbg 3 + monbg ANIM_DEF_PARTNER setalpha 12, 8 playsewithpan SE_W036, 192 createvisualtask AnimTask_ShakeAndSinkMon, 5, 0, 2, 0, 96, 30 @@ -611,7 +610,7 @@ Move_STRENGTH:: @ 81C73FE waitforvisualfinish createvisualtask AnimTask_ShakeMon2, 2, 1, 2, 0, 8, 1 waitforvisualfinish - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER blendoff end @@ -631,7 +630,7 @@ Move_TACKLE:: @ 81C7492 Move_BODY_SLAM:: @ 81C74D0 loadspritegfx ANIM_TAG_IMPACT - monbg 3 + monbg ANIM_DEF_PARTNER setalpha 12, 8 playsewithpan SE_W036, 192 createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 6, 1, 0 @@ -651,28 +650,28 @@ Move_BODY_SLAM:: @ 81C74D0 delay 5 createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 1, 0, 6 waitforvisualfinish - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER blendoff end Move_SUPERSONIC:: @ 81C755D loadspritegfx ANIM_TAG_GOLD_RING - monbg 2 + monbg ANIM_ATK_PARTNER monbgprio_2A 0 setalpha 12, 8 createvisualtask AnimTask_ShakeMon2, 2, 0, 2, 0, 8, 1 - call gUnknown_81C759B - call gUnknown_81C759B - call gUnknown_81C759B - call gUnknown_81C759B - call gUnknown_81C759B - call gUnknown_81C759B + call SupersonicRing + call SupersonicRing + call SupersonicRing + call SupersonicRing + call SupersonicRing + call SupersonicRing waitforvisualfinish - clearmonbg 2 + clearmonbg ANIM_ATK_PARTNER blendoff end -gUnknown_81C759B:: @ 81C759B +SupersonicRing:: @ 81C759B playsewithpan SE_W048, 192 createsprite gSupersonicWaveSpriteTemplate, ANIM_TARGET, 2, 16, 0, 0, 0, 30, 0 delay 2 @@ -681,14 +680,14 @@ gUnknown_81C759B:: @ 81C759B Move_SCREECH:: @ 81C75B5 loadspritegfx ANIM_TAG_PURPLE_RING createvisualtask AnimTask_ShakeMon2, 2, 0, 3, 0, 2, 1 - call gUnknown_81C75E8 - call gUnknown_81C75E8 + call ScreechRing + call ScreechRing delay 16 createvisualtask AnimTask_SwayMon, 5, 0, 6, 2048, 2, 1 waitforvisualfinish end -gUnknown_81C75E8:: @ 81C75E8 +ScreechRing:: @ 81C75E8 playsewithpan SE_W103, 192 createsprite gScreechWaveSpriteTemplate, ANIM_TARGET, 2, 16, 0, 0, 0, 30, 0 delay 2 @@ -696,27 +695,27 @@ gUnknown_81C75E8:: @ 81C75E8 Move_FLAME_WHEEL:: @ 81C7602 loadspritegfx ANIM_TAG_SMALL_EMBER - monbg 3 + monbg ANIM_DEF_PARTNER monbgprio_2A 1 - createsprite gUnknown_83E5DFC, ANIM_ATTACKER, 3, 0, 0, 56, 0 + createsprite gFireSpiralOutwardSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 56, 0 playsewithpan SE_W172, 192 delay 2 - createsprite gUnknown_83E5DFC, ANIM_ATTACKER, 3, 0, 0, 56, 4 + createsprite gFireSpiralOutwardSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 56, 4 playsewithpan SE_W172, 192 delay 2 - createsprite gUnknown_83E5DFC, ANIM_ATTACKER, 3, 0, 0, 56, 8 + createsprite gFireSpiralOutwardSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 56, 8 playsewithpan SE_W172, 192 delay 2 - createsprite gUnknown_83E5DFC, ANIM_ATTACKER, 3, 0, 0, 56, 12 + createsprite gFireSpiralOutwardSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 56, 12 playsewithpan SE_W172, 192 delay 2 - createsprite gUnknown_83E5DFC, ANIM_ATTACKER, 3, 0, 0, 56, 16 + createsprite gFireSpiralOutwardSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 56, 16 playsewithpan SE_W172, 192 delay 2 - createsprite gUnknown_83E5DFC, ANIM_ATTACKER, 3, 0, 0, 56, 20 + createsprite gFireSpiralOutwardSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 56, 20 playsewithpan SE_W172, 192 delay 2 - createsprite gUnknown_83E5DFC, ANIM_ATTACKER, 3, 0, 0, 56, 24 + createsprite gFireSpiralOutwardSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 56, 24 playsewithpan SE_W172, 192 waitforvisualfinish createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 0, 24, 0, 0, 6 @@ -724,13 +723,13 @@ Move_FLAME_WHEEL:: @ 81C7602 createvisualtask AnimTask_ShakeMon, 2, 1, 5, 0, 8, 1 createvisualtask AnimTask_BlendMonInAndOut, 3, 1, 31, 12, 1, 1 playsewithpan SE_W172B, 63 - call gUnknown_81D0950 + call FireSpreadEffect delay 7 createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 9 waitforvisualfinish - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER end - createsprite gUnknown_83E5DFC, ANIM_ATTACKER, 3, 0, 0, 50 + createsprite gFireSpiralOutwardSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 50 delay 4 return @@ -794,7 +793,7 @@ Move_ICICLE_SPEAR:: @ 81C77C1 Move_TAKE_DOWN:: @ 81C7886 loadspritegfx ANIM_TAG_IMPACT - monbg 3 + monbg ANIM_DEF_PARTNER setalpha 12, 8 playsewithpan SE_W036, 192 createvisualtask AnimTask_WindUpLunge, 5, 0, -24, 8, 23, 10, 40, 10 @@ -812,7 +811,7 @@ Move_TAKE_DOWN:: @ 81C7886 delay 3 createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 1, 0, 7 waitforvisualfinish - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER blendoff end @@ -834,14 +833,14 @@ Move_DOUBLE_EDGE:: @ 81C791A createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 4, -10, 0, 1, 0 createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 1, -32, 0, 0, 3 waitforvisualfinish - createvisualtask sub_8099980, 2, 8, -256, 0, 0 - createvisualtask sub_8099980, 2, 8, -256, 1, 0 + createvisualtask AnimTask_RotateMonSpriteToSide, 2, 8, -256, 0, 0 + createvisualtask AnimTask_RotateMonSpriteToSide, 2, 8, -256, 1, 0 createvisualtask AnimTask_ShakeMonInPlace, 2, 0, 4, 0, 12, 1 createvisualtask AnimTask_ShakeMonInPlace, 2, 1, 4, 0, 12, 1 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 2, 16, 0, RGB_WHITE waitforvisualfinish - createvisualtask sub_8099980, 2, 8, -256, 0, 1 - createvisualtask sub_8099980, 2, 8, -256, 1, 1 + createvisualtask AnimTask_RotateMonSpriteToSide, 2, 8, -256, 0, 1 + createvisualtask AnimTask_RotateMonSpriteToSide, 2, 8, -256, 1, 1 waitforvisualfinish createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 5 delay 3 @@ -863,7 +862,7 @@ Move_POISON_STING:: @ 81C7A2D createvisualtask AnimTask_ShakeMon2, 2, 1, 2, 0, 5, 1 playsewithpan SE_W030, 63 waitforvisualfinish - call gUnknown_81D575B + call PoisonBubblesEffect waitforvisualfinish clearmonbg 1 blendoff @@ -880,10 +879,10 @@ Move_TWINEEDLE:: @ 81C7A82 createsprite gLinearStingerSpriteTemplate, ANIM_TARGET, 2, 20, 12, 10, 12, 20 delay 20 createvisualtask AnimTask_ShakeMon2, 2, 1, 2, 0, 5, 1 - createsprite gUnknown_83E7C20, ANIM_ATTACKER, 3, 0, -4, 1, 3 + createsprite gHandleInvertHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, -4, 1, 3 loopsewithpan SE_W030, 63, 5, 2 delay 1 - createsprite gUnknown_83E7C20, ANIM_ATTACKER, 3, 10, 12, 1, 3 + createsprite gHandleInvertHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 10, 12, 1, 3 waitforvisualfinish clearmonbg 1 blendoff @@ -892,51 +891,51 @@ Move_TWINEEDLE:: @ 81C7A82 Move_FIRE_BLAST:: @ 81C7AF5 loadspritegfx ANIM_TAG_SMALL_EMBER createsoundtask sub_80DCE10, 137, 138 - call gUnknown_81C7B89 - call gUnknown_81C7B89 - call gUnknown_81C7B89 + call FireBlastRing + call FireBlastRing + call FireBlastRing delay 24 createvisualtask AnimTask_BlendSelected, 10, 1, 3, 0, 8, RGB_BLACK waitforvisualfinish delay 19 createvisualtask AnimTask_ShakeMon, 2, 1, 5, 0, 20, 1 - call gUnknown_81C7BCD + call FireBlastCross delay 3 - call gUnknown_81C7BCD + call FireBlastCross delay 3 - call gUnknown_81C7BCD + call FireBlastCross delay 3 - call gUnknown_81C7BCD + call FireBlastCross delay 3 - call gUnknown_81C7BCD + call FireBlastCross delay 3 - call gUnknown_81C7BCD + call FireBlastCross delay 3 - call gUnknown_81C7BCD + call FireBlastCross delay 3 - call gUnknown_81C7BCD + call FireBlastCross delay 3 - call gUnknown_81C7BCD + call FireBlastCross waitforvisualfinish createvisualtask AnimTask_BlendSelected, 10, 1, 2, 8, 0, RGB_BLACK waitforvisualfinish end -gUnknown_81C7B89:: @ 81C7B89 - createsprite gUnknown_83E5D94, ANIM_TARGET, 2, 0, 0, 0 - createsprite gUnknown_83E5D94, ANIM_TARGET, 2, 0, 0, 51 - createsprite gUnknown_83E5D94, ANIM_TARGET, 2, 0, 0, 102 - createsprite gUnknown_83E5D94, ANIM_TARGET, 2, 0, 0, 153 - createsprite gUnknown_83E5D94, ANIM_TARGET, 2, 0, 0, 204 +FireBlastRing:: @ 81C7B89 + createsprite gFireBlastRingSpriteTemplate, ANIM_TARGET, 2, 0, 0, 0 + createsprite gFireBlastRingSpriteTemplate, ANIM_TARGET, 2, 0, 0, 51 + createsprite gFireBlastRingSpriteTemplate, ANIM_TARGET, 2, 0, 0, 102 + createsprite gFireBlastRingSpriteTemplate, ANIM_TARGET, 2, 0, 0, 153 + createsprite gFireBlastRingSpriteTemplate, ANIM_TARGET, 2, 0, 0, 204 delay 5 return -gUnknown_81C7BCD:: @ 81C7BCD - createsprite gUnknown_83E5DE4, ANIM_TARGET, 2, 0, 0, 10, 0, -2 - createsprite gUnknown_83E5DE4, ANIM_TARGET, 2, 0, 0, 13, -2, 0 - createsprite gUnknown_83E5DE4, ANIM_TARGET, 2, 0, 0, 13, 2, 0 - createsprite gUnknown_83E5DE4, ANIM_TARGET, 2, 0, 0, 15, -2, 2 - createsprite gUnknown_83E5DE4, ANIM_TARGET, 2, 0, 0, 15, 2, 2 +FireBlastCross:: @ 81C7BCD + createsprite gFireBlastCrossSpriteTemplate, ANIM_TARGET, 2, 0, 0, 10, 0, -2 + createsprite gFireBlastCrossSpriteTemplate, ANIM_TARGET, 2, 0, 0, 13, -2, 0 + createsprite gFireBlastCrossSpriteTemplate, ANIM_TARGET, 2, 0, 0, 13, 2, 0 + createsprite gFireBlastCrossSpriteTemplate, ANIM_TARGET, 2, 0, 0, 15, -2, 2 + createsprite gFireBlastCrossSpriteTemplate, ANIM_TARGET, 2, 0, 0, 15, 2, 2 return Move_LEECH_SEED:: @ 81C7C23 @@ -964,12 +963,12 @@ Move_EMBER:: @ 81C7C79 createsprite gEmberSpriteTemplate, ANIM_TARGET, 2, 20, 0, 16, 24, 20, 1 delay 16 playsewithpan SE_W172, 63 - call gUnknown_81C7CD5 - call gUnknown_81C7CD5 - call gUnknown_81C7CD5 + call EmberFireHit + call EmberFireHit + call EmberFireHit end -gUnknown_81C7CD5:: @ 81C7CD5 +EmberFireHit:: @ 81C7CD5 createsprite gEmberFlareSpriteTemplate, ANIM_TARGET, 2, -24, 24, 24, 24, 20, 1, 1 delay 4 return @@ -985,7 +984,7 @@ Move_MEGA_PUNCH:: @ 81C7CED createsprite gMegaPunchKickSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 0, 50 createvisualtask AnimTask_BlendSelected, 10, 4, 2, 0, 7, RGB_WHITE delay 50 - call gUnknown_81C7D89 + call SetImpactBackground createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 1, 0 createvisualtask AnimTask_ShakeMon2, 2, 1, 4, 0, 22, 1 createvisualtask AnimTask_BlendSelected, 10, 4, 2, 0, 0, RGB_WHITE @@ -999,28 +998,27 @@ Move_MEGA_PUNCH:: @ 81C7CED waitbgfadein end -gUnknown_81C7D89:: @ 81C7D89 +SetImpactBackground:: @ 81C7D89 delay 2 createvisualtask AnimTask_IsContest, 2, - jumpargeq 7, 1, gUnknown_81C7DC0 + jumpargeq 7, 1, SetImpactContestsBG createvisualtask AnimTask_IsTargetPlayerSide, 2, - jumpargeq 7, 0, gUnknown_81C7DB2 - jumpargeq 7, 1, gUnknown_81C7DB9 - -gUnknown_81C7DB1:: @ 81C7DB1 + jumpargeq 7, 0, SetImpactOpponentBG + jumpargeq 7, 1, SetImpactPlayerBG +SetImpactBackgroundRet:: @ 81C7DB1 return -gUnknown_81C7DB2:: @ 81C7DB2 +SetImpactOpponentBG:: @ 81C7DB2 changebg 4 - goto gUnknown_81C7DB1 + goto SetImpactBackgroundRet -gUnknown_81C7DB9:: @ 81C7DB9 +SetImpactPlayerBG:: @ 81C7DB9 changebg 5 - goto gUnknown_81C7DB1 + goto SetImpactBackgroundRet -gUnknown_81C7DC0:: @ 81C7DC0 +SetImpactContestsBG:: @ 81C7DC0 changebg 6 - goto gUnknown_81C7DB1 + goto SetImpactBackgroundRet Move_MEGA_KICK:: @ 81C7DC7 loadspritegfx ANIM_TAG_IMPACT @@ -1034,7 +1032,7 @@ Move_MEGA_KICK:: @ 81C7DC7 createvisualtask AnimTask_BlendSelected, 10, 4, 2, 0, 7, RGB_WHITE delay 50 playsewithpan SE_W025B, 63 - call gUnknown_81C7D89 + call SetImpactBackground createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 1, 0 createvisualtask AnimTask_ShakeMon2, 2, 1, 4, 0, 22, 1 createvisualtask AnimTask_BlendSelected, 10, 4, 2, 0, 0, RGB_WHITE @@ -1052,9 +1050,9 @@ Move_COMET_PUNCH:: @ 81C7E63 loadspritegfx ANIM_TAG_HANDS_AND_FEET monbg 1 setalpha 12, 8 - choosetwoturnanim gUnknown_81C7E91, gUnknown_81C7EB6 + choosetwoturnanim CometPunchLeft, CometPunchRight -gUnknown_81C7E77:: @ 81C7E77 +CometPunchContinue:: @ 81C7E77 createvisualtask AnimTask_ShakeMon, 2, 1, 3, 0, 6, 1 playsewithpan SE_W004, 63 waitforvisualfinish @@ -1062,39 +1060,39 @@ gUnknown_81C7E77:: @ 81C7E77 blendoff end -gUnknown_81C7E91:: @ 81C7E91 +CometPunchLeft:: @ 81C7E91 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -8, -8, 1, 2 createsprite gFistFootSpriteTemplate, ANIM_ATTACKER, 3, -8, 0, 8, 1, 0 - goto gUnknown_81C7E77 + goto CometPunchContinue -gUnknown_81C7EB6:: @ 81C7EB6 +CometPunchRight:: @ 81C7EB6 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 8, -8, 1, 2 createsprite gFistFootSpriteTemplate, ANIM_ATTACKER, 3, 8, 0, 8, 1, 0 - goto gUnknown_81C7E77 + goto CometPunchContinue Move_SONIC_BOOM:: @ 81C7EDB loadspritegfx ANIM_TAG_AIR_WAVE loadspritegfx ANIM_TAG_IMPACT - monbg 3 + monbg ANIM_DEF_PARTNER monbgprio_28 1 setalpha 12, 8 - call gUnknown_81C7F12 - call gUnknown_81C7F12 - call gUnknown_81C7F12 + call SonicBoomProjectile + call SonicBoomProjectile + call SonicBoomProjectile createvisualtask AnimTask_ShakeMon, 2, 1, 3, 0, 10, 1 - call gUnknown_81C7F2A + call SonicBoomHit waitforvisualfinish - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER blendoff end -gUnknown_81C7F12:: @ 81C7F12 +SonicBoomProjectile:: @ 81C7F12 playsewithpan SE_W013B, 192 createsprite gSonicBoomSpriteTemplate, ANIM_TARGET, 2, 16, 0, 0, 0, 15 delay 4 return -gUnknown_81C7F2A:: @ 81C7F2A +SonicBoomHit:: @ 81C7F2A createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, 1, 2 delay 4 return @@ -1105,7 +1103,7 @@ Move_THUNDER_SHOCK:: @ 81C7F3C createvisualtask AnimTask_BlendSelected, 10, 1, 0, 0, 6, RGB_BLACK waitforvisualfinish delay 10 - createvisualtask sub_80AE220, 5, 0, -44, 0 + createvisualtask AnimTask_ElectricBolt, 5, 0, -44, 0 playsewithpan SE_W085, 63 delay 9 createvisualtask AnimTask_BlendSelected, 10, 4, 0, 0, 13, RGB_BLACK @@ -1113,7 +1111,7 @@ Move_THUNDER_SHOCK:: @ 81C7F3C createvisualtask AnimTask_BlendSelected, 10, 4, 0, 13, 0, RGB_BLACK waitforvisualfinish delay 20 - call gUnknown_81D58D4 + call ElectricityEffect waitforvisualfinish delay 20 createvisualtask AnimTask_BlendSelected, 10, 1, 0, 6, 0, RGB_BLACK @@ -1127,13 +1125,13 @@ Move_THUNDERBOLT:: @ 81C7FAA createvisualtask AnimTask_BlendSelected, 10, 1, 0, 0, 6, RGB_BLACK waitforvisualfinish delay 10 - createvisualtask sub_80AE220, 5, 24, -52, 0 + createvisualtask AnimTask_ElectricBolt, 5, 24, -52, 0 playsewithpan SE_W085, 63 delay 7 - createvisualtask sub_80AE220, 5, -24, -52, 0 + createvisualtask AnimTask_ElectricBolt, 5, -24, -52, 0 playsewithpan SE_W085, 63 delay 7 - createvisualtask sub_80AE220, 5, 0, -60, 1 + createvisualtask AnimTask_ElectricBolt, 5, 0, -60, 1 playsewithpan SE_W085, 63 delay 9 createvisualtask AnimTask_BlendSelected, 10, 4, 0, 0, 13, RGB_BLACK @@ -1141,15 +1139,15 @@ Move_THUNDERBOLT:: @ 81C7FAA createvisualtask AnimTask_BlendSelected, 10, 4, 0, 13, 0, RGB_BLACK waitforvisualfinish delay 20 - createsprite gUnknown_83E6058, ANIM_TARGET, 3, 44, 0, 0, 3 - createsprite gUnknown_83E6070, ANIM_TARGET, 4, 0, 0, 32, 44, 0, 40, 0, -32765 - createsprite gUnknown_83E6070, ANIM_TARGET, 4, 0, 0, 32, 44, 64, 40, 1, -32765 - createsprite gUnknown_83E6070, ANIM_TARGET, 4, 0, 0, 32, 44, 128, 40, 0, -32765 - createsprite gUnknown_83E6070, ANIM_TARGET, 4, 0, 0, 32, 44, 192, 40, 2, -32765 - createsprite gUnknown_83E6070, ANIM_TARGET, 4, 0, 0, 16, 44, 32, 40, 0, -32765 - createsprite gUnknown_83E6070, ANIM_TARGET, 4, 0, 0, 16, 44, 96, 40, 1, -32765 - createsprite gUnknown_83E6070, ANIM_TARGET, 4, 0, 0, 16, 44, 160, 40, 0, -32765 - createsprite gUnknown_83E6070, ANIM_TARGET, 4, 0, 0, 16, 44, 224, 40, 2, -32765 + createsprite gThunderboltOrbSpriteTemplate, ANIM_TARGET, 3, 44, 0, 0, 3 + createsprite gSparkElectricityFlashingSpriteTemplate, ANIM_TARGET, 4, 0, 0, 32, 44, 0, 40, 0, -32765 + createsprite gSparkElectricityFlashingSpriteTemplate, ANIM_TARGET, 4, 0, 0, 32, 44, 64, 40, 1, -32765 + createsprite gSparkElectricityFlashingSpriteTemplate, ANIM_TARGET, 4, 0, 0, 32, 44, 128, 40, 0, -32765 + createsprite gSparkElectricityFlashingSpriteTemplate, ANIM_TARGET, 4, 0, 0, 32, 44, 192, 40, 2, -32765 + createsprite gSparkElectricityFlashingSpriteTemplate, ANIM_TARGET, 4, 0, 0, 16, 44, 32, 40, 0, -32765 + createsprite gSparkElectricityFlashingSpriteTemplate, ANIM_TARGET, 4, 0, 0, 16, 44, 96, 40, 1, -32765 + createsprite gSparkElectricityFlashingSpriteTemplate, ANIM_TARGET, 4, 0, 0, 16, 44, 160, 40, 0, -32765 + createsprite gSparkElectricityFlashingSpriteTemplate, ANIM_TARGET, 4, 0, 0, 16, 44, 224, 40, 2, -32765 playsewithpan SE_W063, 63 delay 0 createvisualtask AnimTask_BlendSelected, 10, 1, 0, 2, 2, RGB_BLACK @@ -1162,7 +1160,7 @@ Move_THUNDERBOLT:: @ 81C7FAA waitforvisualfinish delay 20 waitplaysewithpan SE_W085B, 63, 19 - call gUnknown_81D58D4 + call ElectricityEffect waitforvisualfinish delay 20 createvisualtask AnimTask_BlendSelected, 10, 1, 0, 6, 0, RGB_BLACK @@ -1176,15 +1174,15 @@ Move_THUNDER_WAVE:: @ 81C8160 createvisualtask AnimTask_BlendSelected, 10, 1, 0, 0, 6, RGB_BLACK waitforvisualfinish delay 10 - createvisualtask sub_80AE220, 5, 0, -48, 0 + createvisualtask AnimTask_ElectricBolt, 5, 0, -48, 0 playsewithpan SE_W086, 63 delay 20 loopsewithpan SE_W085B, 63, 10, 4 - createsprite gUnknown_83E60B8, ANIM_TARGET, 2, -16, -16 + createsprite gThunderWaveSpriteTemplate, ANIM_TARGET, 2, -16, -16 delay 4 - createsprite gUnknown_83E60B8, ANIM_TARGET, 2, -16, 0 + createsprite gThunderWaveSpriteTemplate, ANIM_TARGET, 2, -16, 0 delay 4 - createsprite gUnknown_83E60B8, ANIM_TARGET, 2, -16, 16 + createsprite gThunderWaveSpriteTemplate, ANIM_TARGET, 2, -16, 16 waitforvisualfinish createvisualtask AnimTask_BlendSelected, 10, 1, 0, 6, 0, RGB_BLACK waitforvisualfinish @@ -1195,15 +1193,14 @@ Move_BEAT_UP:: @ 81C81CF loadspritegfx ANIM_TAG_HANDS_AND_FEET monbg 1 setalpha 12, 8 - choosetwoturnanim gUnknown_81C81E8, gUnknown_81C8259 - -gUnknown_81C81E3:: @ 81C81E3 + choosetwoturnanim BeatUpLeft, BeatUpRight +BeatUpContinue:: @ 81C81E3 waitforvisualfinish clearmonbg 1 blendoff end -gUnknown_81C81E8:: @ 81C81E8 +BeatUpLeft:: @ 81C81E8 createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, -20, -20, 1, 2 createsprite gFistFootSpriteTemplate, ANIM_TARGET, 3, -20, -12, 8, 1, 0 createvisualtask AnimTask_ShakeMon, 2, 1, 3, 0, 6, 1 @@ -1213,9 +1210,9 @@ gUnknown_81C81E8:: @ 81C81E8 createsprite gFistFootSpriteTemplate, ANIM_TARGET, 3, 8, 8, 8, 1, 0 createvisualtask AnimTask_ShakeMon, 2, 1, 3, 0, 6, 1 playsewithpan SE_W233B, 63 - goto gUnknown_81C81E3 + goto BeatUpContinue -gUnknown_81C8259:: @ 81C8259 +BeatUpRight:: @ 81C8259 createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, 12, -20, 1, 2 createsprite gFistFootSpriteTemplate, ANIM_TARGET, 3, 12, -12, 8, 1, 0 createvisualtask AnimTask_ShakeMon, 2, 1, 3, 0, 6, 1 @@ -1225,7 +1222,7 @@ gUnknown_81C8259:: @ 81C8259 createsprite gFistFootSpriteTemplate, ANIM_TARGET, 3, -12, 8, 8, 1, 0 createvisualtask AnimTask_ShakeMon, 2, 1, 3, 0, 6, 1 playsewithpan SE_W233B, 63 - goto gUnknown_81C81E3 + goto BeatUpContinue Move_STOMP:: @ 81C82CA loadspritegfx ANIM_TAG_HANDS_AND_FEET @@ -1233,7 +1230,7 @@ Move_STOMP:: @ 81C82CA monbg 1 setalpha 12, 8 playsewithpan SE_W104, 63 - createsprite gUnknown_83E67D8, ANIM_ATTACKER, 3, 0, -32, 15 + createsprite gStompFootSpriteTemplate, ANIM_ATTACKER, 3, 0, -32, 15 delay 19 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, -8, 1, 1 createvisualtask AnimTask_ShakeMon, 2, 1, 0, 4, 9, 1 @@ -1318,38 +1315,37 @@ Move_REVERSAL:: @ 81C8445 createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 3, 1, RGB_WHITE, 8, 0, 0 createsprite gFistFootSpriteTemplate, ANIM_TARGET, 4, 0, 0, 10, 1, 0 createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, 1, 1 - createvisualtask sub_8099BD4, 5, 0, 1, 8, 1, 0 + createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 5, 0, 1, 8, 1, 0 end Move_PURSUIT:: @ 81C8520 loadspritegfx ANIM_TAG_IMPACT - monbg 1 - fadetobg 1 + monbg ANIM_TARGET + fadetobg BG_DARK waitbgfadein delay 0 setalpha 12, 8 - choosetwoturnanim gUnknown_81C853F, gUnknown_81C8568 - -gUnknown_81C8536:: @ 81C8536 + choosetwoturnanim PursuitNormal, PursuitOnSwitchout +PursuitContinue:: @ 81C8536 waitforvisualfinish - clearmonbg 1 + clearmonbg ANIM_TARGET blendoff delay 0 restorebg waitbgfadein end -gUnknown_81C853F:: @ 81C853F +PursuitNormal:: @ 81C853F playsewithpan SE_W004, 63 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 1, 2 - createvisualtask sub_8099BD4, 5, 0, 1, 6, 1, 0 - goto gUnknown_81C8536 + createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 5, 0, 1, 6, 1, 0 + goto PursuitContinue -gUnknown_81C8568:: @ 81C8568 +PursuitOnSwitchout:: @ 81C8568 playsewithpan SE_W004, 63 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 1, 1 - createvisualtask sub_8099BD4, 5, 0, 1, 6, 1, 0 - goto gUnknown_81C8536 + createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 5, 0, 1, 6, 1, 0 + goto PursuitContinue Move_SPIKE_CANNON:: @ 81C8591 loadspritegfx ANIM_TAG_NEEDLE @@ -1365,9 +1361,9 @@ Move_SPIKE_CANNON:: @ 81C8591 createsprite gLinearStingerSpriteTemplate, ANIM_ATTACKER, 2, 18, 0, 0, 0, 20 createsprite gLinearStingerSpriteTemplate, ANIM_ATTACKER, 2, 26, 8, 8, 8, 20 waitforvisualfinish - createsprite gUnknown_83E7C20, ANIM_ATTACKER, 3, -8, -8, 1, 2 - createsprite gUnknown_83E7C20, ANIM_ATTACKER, 3, 0, 0, 1, 2 - createsprite gUnknown_83E7C20, ANIM_ATTACKER, 3, 8, 8, 1, 2 + createsprite gHandleInvertHitSplatSpriteTemplate, ANIM_ATTACKER, 3, -8, -8, 1, 2 + createsprite gHandleInvertHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 1, 2 + createsprite gHandleInvertHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 8, 8, 1, 2 createvisualtask AnimTask_ShakeMon2, 2, 1, 3, 0, 7, 1 loopsewithpan SE_W030, 63, 5, 3 waitforvisualfinish @@ -1377,26 +1373,26 @@ Move_SPIKE_CANNON:: @ 81C8591 Move_SWORDS_DANCE:: @ 81C8644 loadspritegfx ANIM_TAG_SWORD - monbg 0 + monbg ANIM_ATTACKER setalpha 12, 8 playsewithpan SE_W014, 192 createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, 0, 16, 6, 1, 4 createsprite gSwordsDanceBladeSpriteTemplate, ANIM_ATTACKER, 2, 0, 0 delay 22 - createvisualtask sub_80B9F6C, 2, 10005, 2, 2, 32754, 16, 0, 0 + createvisualtask AnimTask_FlashAnimTagWithColor, 2, 10005, 2, 2, 32754, 16, 0, 0 waitforvisualfinish - clearmonbg 0 + clearmonbg ANIM_ATTACKER blendoff delay 1 end Move_PSYCH_UP:: @ 81C868A loadspritegfx ANIM_TAG_SPIRAL - monbg 2 - createvisualtask sub_80B9CE4, 2, 1, 2, 6, 1, 11, 0 + monbg ANIM_ATK_PARTNER + createvisualtask AnimTask_BlendColorCycleExclude, 2, 1, 2, 6, 1, 11, 0 setalpha 12, 8 loopsewithpan SE_W060B, 192, 5, 10 - createsprite gUnknown_83E6DF8, ANIM_ATTACKER, 2, 0, 0, 0, 0 + createsprite gPsychUpSpiralSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 0, 0 createvisualtask AnimTask_SwayMon, 5, 0, 5, 2560, 8, 0 delay 127 delay 4 @@ -1404,7 +1400,7 @@ Move_PSYCH_UP:: @ 81C868A createvisualtask AnimTask_ScaleMonAndRestore, 5, -5, -5, 10, 0, 1 createvisualtask AnimTask_BlendSelected, 9, 2, 2, 10, 0, RGB(31, 31, 0) delay 30 - clearmonbg 2 + clearmonbg ANIM_ATK_PARTNER blendoff waitforvisualfinish end @@ -1415,33 +1411,33 @@ Move_DIZZY_PUNCH:: @ 81C86FC loadspritegfx ANIM_TAG_IMPACT monbg 1 setalpha 12, 8 - call gUnknown_81C8817 + call DizzyPunchLunge createsprite gFistFootSpriteTemplate, ANIM_TARGET, 5, 16, 8, 20, 1, 0 createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 4, 16, 0, 1, 1 playsewithpan SE_W004, 63 - createsprite gUnknown_83E67F0, ANIM_TARGET, 3, 16, 8, 160, -32 - createsprite gUnknown_83E67F0, ANIM_TARGET, 3, 16, 8, -256, -40 - createsprite gUnknown_83E67F0, ANIM_TARGET, 3, 16, 8, 128, -16 - createsprite gUnknown_83E67F0, ANIM_TARGET, 3, 16, 8, 416, -38 - createsprite gUnknown_83E67F0, ANIM_TARGET, 3, 16, 8, -128, -22 - createsprite gUnknown_83E67F0, ANIM_TARGET, 3, 16, 8, -384, -31 + createsprite gDizzyPunchDuckSpriteTemplate, ANIM_TARGET, 3, 16, 8, 160, -32 + createsprite gDizzyPunchDuckSpriteTemplate, ANIM_TARGET, 3, 16, 8, -256, -40 + createsprite gDizzyPunchDuckSpriteTemplate, ANIM_TARGET, 3, 16, 8, 128, -16 + createsprite gDizzyPunchDuckSpriteTemplate, ANIM_TARGET, 3, 16, 8, 416, -38 + createsprite gDizzyPunchDuckSpriteTemplate, ANIM_TARGET, 3, 16, 8, -128, -22 + createsprite gDizzyPunchDuckSpriteTemplate, ANIM_TARGET, 3, 16, 8, -384, -31 delay 10 - call gUnknown_81C8817 + call DizzyPunchLunge createsprite gFistFootSpriteTemplate, ANIM_TARGET, 5, -16, -8, 20, 1, 0 createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 4, -16, -16, 1, 1 playsewithpan SE_W233B, 63 - createsprite gUnknown_83E67F0, ANIM_TARGET, 3, -16, -8, 160, -32 - createsprite gUnknown_83E67F0, ANIM_TARGET, 3, -16, -8, -256, -40 - createsprite gUnknown_83E67F0, ANIM_TARGET, 3, -16, -8, 128, -16 - createsprite gUnknown_83E67F0, ANIM_TARGET, 3, -16, -8, 416, -38 - createsprite gUnknown_83E67F0, ANIM_TARGET, 3, -16, -8, -128, -22 - createsprite gUnknown_83E67F0, ANIM_TARGET, 3, -16, -8, -384, -31 + createsprite gDizzyPunchDuckSpriteTemplate, ANIM_TARGET, 3, -16, -8, 160, -32 + createsprite gDizzyPunchDuckSpriteTemplate, ANIM_TARGET, 3, -16, -8, -256, -40 + createsprite gDizzyPunchDuckSpriteTemplate, ANIM_TARGET, 3, -16, -8, 128, -16 + createsprite gDizzyPunchDuckSpriteTemplate, ANIM_TARGET, 3, -16, -8, 416, -38 + createsprite gDizzyPunchDuckSpriteTemplate, ANIM_TARGET, 3, -16, -8, -128, -22 + createsprite gDizzyPunchDuckSpriteTemplate, ANIM_TARGET, 3, -16, -8, -384, -31 waitforvisualfinish clearmonbg 1 blendoff end -gUnknown_81C8817:: @ 81C8817 +DizzyPunchLunge:: @ 81C8817 createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 6, 4 delay 6 createvisualtask AnimTask_ShakeMon2, 2, 1, 3, 0, 7, 1 @@ -1451,24 +1447,24 @@ Move_FIRE_SPIN:: @ 81C8836 loadspritegfx ANIM_TAG_SMALL_EMBER playsewithpan SE_W221B, 63 createvisualtask AnimTask_ShakeMon, 5, 1, 0, 2, 47, 1 - call gUnknown_81C885F - call gUnknown_81C885F - call gUnknown_81C885F + call FireSpinEffect + call FireSpinEffect + call FireSpinEffect waitforvisualfinish end -gUnknown_81C885F:: @ 81C885F - createsprite gUnknown_83E7438, ANIM_TARGET, 2, 0, 28, 528, 30, 13, 50, 1 +FireSpinEffect:: @ 81C885F + createsprite gFireSpinSpriteTemplate, ANIM_TARGET, 2, 0, 28, 528, 30, 13, 50, 1 delay 2 - createsprite gUnknown_83E7438, ANIM_TARGET, 2, 0, 32, 480, 20, 16, -46, 1 + createsprite gFireSpinSpriteTemplate, ANIM_TARGET, 2, 0, 32, 480, 20, 16, -46, 1 delay 2 - createsprite gUnknown_83E7438, ANIM_TARGET, 2, 0, 33, 576, 20, 8, 42, 1 + createsprite gFireSpinSpriteTemplate, ANIM_TARGET, 2, 0, 33, 576, 20, 8, 42, 1 delay 2 - createsprite gUnknown_83E7438, ANIM_TARGET, 2, 0, 31, 400, 25, 11, -42, 1 + createsprite gFireSpinSpriteTemplate, ANIM_TARGET, 2, 0, 31, 400, 25, 11, -42, 1 delay 2 - createsprite gUnknown_83E7438, ANIM_TARGET, 2, 0, 28, 512, 25, 16, 46, 1 + createsprite gFireSpinSpriteTemplate, ANIM_TARGET, 2, 0, 28, 512, 25, 16, 46, 1 delay 2 - createsprite gUnknown_83E7438, ANIM_TARGET, 2, 0, 33, 464, 30, 15, -50, 1 + createsprite gFireSpinSpriteTemplate, ANIM_TARGET, 2, 0, 33, 464, 30, 15, -50, 1 delay 2 return @@ -1478,17 +1474,17 @@ Move_FURY_CUTTER:: @ 81C88EA setalpha 12, 8 playsewithpan SE_W013, 63 createvisualtask AnimTask_IsFuryCutterHitRight, 2, - jumpargeq 7, 0, gUnknown_81C8947 - goto gUnknown_81C8959 + jumpargeq 7, 0, FuryCutterLeft + goto FuryCutterRight -gUnknown_81C890A:: @ 81C890A +FuryCutterContinue:: @ 81C890A createvisualtask AnimTask_GetFuryCutterHitCount, 2, - jumpargeq 7, 1, gUnknown_81C892E - jumpargeq 7, 2, gUnknown_81C896B - jumpargeq 7, 3, gUnknown_81C8985 - goto gUnknown_81C899F + jumpargeq 7, 1, FuryCutterContinue2 + jumpargeq 7, 2, FuryCutterMedium + jumpargeq 7, 3, FuryCutterStrong + goto FuryCutterStrongest -gUnknown_81C892E:: @ 81C892E +FuryCutterContinue2:: @ 81C892E delay 5 createvisualtask AnimTask_ShakeMon, 2, 1, 0, 3, 10, 1 waitforvisualfinish @@ -1497,25 +1493,25 @@ gUnknown_81C892E:: @ 81C892E waitforvisualfinish end -gUnknown_81C8947:: @ 81C8947 +FuryCutterLeft:: @ 81C8947 createsprite gCuttingSliceSpriteTemplate, ANIM_ATTACKER, 2, 40, -32, 0 - goto gUnknown_81C890A + goto FuryCutterContinue -gUnknown_81C8959:: @ 81C8959 +FuryCutterRight:: @ 81C8959 createsprite gCuttingSliceSpriteTemplate, ANIM_ATTACKER, 2, 40, -32, 1 - goto gUnknown_81C890A + goto FuryCutterContinue -gUnknown_81C896B:: @ 81C896B +FuryCutterMedium:: @ 81C896B createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 3, 1, 10505, 4, 0, 0 - goto gUnknown_81C892E + goto FuryCutterContinue2 -gUnknown_81C8985:: @ 81C8985 +FuryCutterStrong:: @ 81C8985 createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 3, 3, 10505, 4, 0, 0 - goto gUnknown_81C892E + goto FuryCutterContinue2 -gUnknown_81C899F:: @ 81C899F +FuryCutterStrongest:: @ 81C899F createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 3, 3, 10505, 4, 0, 0 - goto gUnknown_81C892E + goto FuryCutterContinue2 Move_SELF_DESTRUCT:: @ 81C89B9 loadspritegfx ANIM_TAG_EXPLOSION @@ -1525,13 +1521,13 @@ Move_SELF_DESTRUCT:: @ 81C89B9 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 gUnknown_81C8A3F - call gUnknown_81C8A3F + call SelfDestructExplode + call SelfDestructExplode waitforvisualfinish createvisualtask AnimTask_BlendSelected, 10, 2, 1, 9, 0, RGB(31, 0, 0) end -gUnknown_81C8A3F:: @ 81C8A3F +SelfDestructExplode:: @ 81C8A3F playsewithpan SE_W120, 192 createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 0, 1 delay 6 @@ -1594,7 +1590,7 @@ Move_DRILL_PECK:: @ 81C8B68 createsprite gBowMonSpriteTemplate, ANIM_ATTACKER, 2, 1 delay 2 loopsewithpan SE_W030, 63, 4, 8 - createvisualtask sub_80B2868, 5, + createvisualtask AnimTask_DrillPeckHitSplats, 5 createvisualtask AnimTask_ShakeMon2, 2, 1, 4, 0, 18, 1 waitforvisualfinish createsprite gBowMonSpriteTemplate, ANIM_ATTACKER, 2, 2 @@ -1607,81 +1603,81 @@ Move_WATERFALL:: @ 81C8BC1 loadspritegfx ANIM_TAG_WATER_IMPACT loadspritegfx ANIM_TAG_SMALL_BUBBLES loadspritegfx ANIM_TAG_ICE_CRYSTALS - monbg 3 + monbg ANIM_DEF_PARTNER setalpha 12, 8 createvisualtask AnimTask_ShakeMon, 5, 0, 0, 2, 23, 1 delay 5 playsewithpan SE_W152, 192 - createsprite gUnknown_83E5AB0, ANIM_ATTACKER, 2, 10, 10, 25, 0 + createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, 10, 10, 25, 0 delay 4 playsewithpan SE_W152, 192 - createsprite gUnknown_83E5AB0, ANIM_ATTACKER, 2, -15, 0, 25, 0 + createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, -15, 0, 25, 0 delay 4 playsewithpan SE_W152, 192 - createsprite gUnknown_83E5AB0, ANIM_ATTACKER, 2, 20, 10, 25, 0 + createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, 20, 10, 25, 0 delay 4 playsewithpan SE_W152, 192 - createsprite gUnknown_83E5AB0, ANIM_ATTACKER, 2, 0, -10, 25, 0 + createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, 0, -10, 25, 0 delay 4 playsewithpan SE_W152, 192 - createsprite gUnknown_83E5AB0, ANIM_ATTACKER, 2, -10, 15, 25, 0 + createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, -10, 15, 25, 0 delay 4 playsewithpan SE_W152, 192 - createsprite gUnknown_83E5AB0, ANIM_ATTACKER, 2, 25, 20, 25, 0 + createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, 25, 20, 25, 0 delay 4 playsewithpan SE_W152, 192 - createsprite gUnknown_83E5AB0, ANIM_ATTACKER, 2, -20, 20, 25, 0 + createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, -20, 20, 25, 0 delay 4 playsewithpan SE_W152, 192 - createsprite gUnknown_83E5AB0, ANIM_ATTACKER, 2, 12, 0, 25, 0 + createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, 12, 0, 25, 0 waitforvisualfinish delay 10 createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 6, 5 delay 6 - call gUnknown_81C8CA2 + call RisingWaterHitEffect waitforvisualfinish - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER blendoff end -gUnknown_81C8CA2:: @ 81C8CA2 +RisingWaterHitEffect:: @ 81C8CA2 playsewithpan SE_W127, 63 createvisualtask AnimTask_ShakeMon2, 5, 1, 4, 0, 17, 1 - createsprite gUnknown_83E7C38, ANIM_ATTACKER, 3, 0, 20, 1, 1 - createsprite gUnknown_83E5AC8, ANIM_ATTACKER, 4, 0, 20 - createsprite gUnknown_83E5AC8, ANIM_ATTACKER, 4, 0, 20 + createsprite gWaterHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 20, 1, 1 + createsprite gSmallDriftingBubblesSpriteTemplate, ANIM_ATTACKER, 4, 0, 20 + createsprite gSmallDriftingBubblesSpriteTemplate, ANIM_ATTACKER, 4, 0, 20 delay 2 - createsprite gUnknown_83E7C38, ANIM_ATTACKER, 3, 0, 15, 1, 1 - createsprite gUnknown_83E5AC8, ANIM_ATTACKER, 4, 0, 15 - createsprite gUnknown_83E5AC8, ANIM_ATTACKER, 4, 0, 15 + createsprite gWaterHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 15, 1, 1 + createsprite gSmallDriftingBubblesSpriteTemplate, ANIM_ATTACKER, 4, 0, 15 + createsprite gSmallDriftingBubblesSpriteTemplate, ANIM_ATTACKER, 4, 0, 15 delay 2 - createsprite gUnknown_83E7C38, ANIM_ATTACKER, 3, 0, 10, 1, 1 - createsprite gUnknown_83E5AC8, ANIM_ATTACKER, 4, 0, 10 - createsprite gUnknown_83E5AC8, ANIM_ATTACKER, 4, 0, 10 + createsprite gWaterHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 10, 1, 1 + createsprite gSmallDriftingBubblesSpriteTemplate, ANIM_ATTACKER, 4, 0, 10 + createsprite gSmallDriftingBubblesSpriteTemplate, ANIM_ATTACKER, 4, 0, 10 delay 2 - createsprite gUnknown_83E7C38, ANIM_ATTACKER, 3, 0, 5, 1, 1 - createsprite gUnknown_83E5AC8, ANIM_ATTACKER, 4, 0, 5 - createsprite gUnknown_83E5AC8, ANIM_ATTACKER, 4, 0, 5 + createsprite gWaterHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 5, 1, 1 + createsprite gSmallDriftingBubblesSpriteTemplate, ANIM_ATTACKER, 4, 0, 5 + createsprite gSmallDriftingBubblesSpriteTemplate, ANIM_ATTACKER, 4, 0, 5 delay 2 - createsprite gUnknown_83E7C38, ANIM_ATTACKER, 3, 0, 0, 1, 1 - createsprite gUnknown_83E5AC8, ANIM_ATTACKER, 4, 0, 0 - createsprite gUnknown_83E5AC8, ANIM_ATTACKER, 4, 0, 0 + createsprite gWaterHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 1, 1 + createsprite gSmallDriftingBubblesSpriteTemplate, ANIM_ATTACKER, 4, 0, 0 + createsprite gSmallDriftingBubblesSpriteTemplate, ANIM_ATTACKER, 4, 0, 0 delay 2 - createsprite gUnknown_83E7C38, ANIM_ATTACKER, 3, 0, -5, 1, 1 - createsprite gUnknown_83E5AC8, ANIM_ATTACKER, 4, 0, -5 - createsprite gUnknown_83E5AC8, ANIM_ATTACKER, 4, 0, -5 + createsprite gWaterHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, -5, 1, 1 + createsprite gSmallDriftingBubblesSpriteTemplate, ANIM_ATTACKER, 4, 0, -5 + createsprite gSmallDriftingBubblesSpriteTemplate, ANIM_ATTACKER, 4, 0, -5 delay 2 - createsprite gUnknown_83E7C38, ANIM_ATTACKER, 3, 0, -10, 1, 1 - createsprite gUnknown_83E5AC8, ANIM_ATTACKER, 4, 0, -10 - createsprite gUnknown_83E5AC8, ANIM_ATTACKER, 4, 0, -10 + createsprite gWaterHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, -10, 1, 1 + createsprite gSmallDriftingBubblesSpriteTemplate, ANIM_ATTACKER, 4, 0, -10 + createsprite gSmallDriftingBubblesSpriteTemplate, ANIM_ATTACKER, 4, 0, -10 delay 2 - createsprite gUnknown_83E7C38, ANIM_ATTACKER, 3, 0, -15, 1, 1 - createsprite gUnknown_83E5AC8, ANIM_ATTACKER, 4, 0, -15 - createsprite gUnknown_83E5AC8, ANIM_ATTACKER, 4, 0, -15 + createsprite gWaterHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, -15, 1, 1 + createsprite gSmallDriftingBubblesSpriteTemplate, ANIM_ATTACKER, 4, 0, -15 + createsprite gSmallDriftingBubblesSpriteTemplate, ANIM_ATTACKER, 4, 0, -15 delay 2 - createsprite gUnknown_83E7C38, ANIM_ATTACKER, 3, 0, -20, 1, 1 - createsprite gUnknown_83E5AC8, ANIM_ATTACKER, 4, 0, -20 - createsprite gUnknown_83E5AC8, ANIM_ATTACKER, 4, 0, -20 + createsprite gWaterHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, -20, 1, 1 + createsprite gSmallDriftingBubblesSpriteTemplate, ANIM_ATTACKER, 4, 0, -20 + createsprite gSmallDriftingBubblesSpriteTemplate, ANIM_ATTACKER, 4, 0, -20 return Move_EXPLOSION:: @ 81C8E15 @@ -1692,15 +1688,15 @@ Move_EXPLOSION:: @ 81C8E15 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 gUnknown_81C8EB2 - call gUnknown_81C8EB2 + call Explosion1 + call Explosion1 waitforvisualfinish createvisualtask AnimTask_BlendSelected, 10, 1, 1, 16, 16, RGB_WHITE delay 50 createvisualtask AnimTask_BlendSelected, 10, 1, 3, 16, 0, RGB_WHITE end -gUnknown_81C8EB2:: @ 81C8EB2 +Explosion1:: @ 81C8EB2 playsewithpan SE_W153, 192 createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 0, 1 delay 6 @@ -1732,12 +1728,12 @@ Move_DEFENSE_CURL:: @ 81C8F1C Move_PROTECT:: @ 81C8F55 loadspritegfx ANIM_TAG_PROTECT - monbg 2 + monbg ANIM_ATK_PARTNER monbgprio_28 0 waitplaysewithpan SE_W115, 192, 16 createsprite gProtectWallSpriteTemplate, ANIM_ATTACKER, 2, 24, 0, 90 waitforvisualfinish - clearmonbg 2 + clearmonbg ANIM_ATK_PARTNER end Move_DETECT:: @ 81C8F72 @@ -1758,21 +1754,20 @@ Move_DETECT:: @ 81C8F72 Move_FRUSTRATION:: @ 81C8FD0 loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_ANGER - monbg 3 + monbg ANIM_DEF_PARTNER setalpha 12, 8 createvisualtask AnimTask_GetFrustrationPowerLevel, 1, - jumpargeq 7, 0, gUnknown_81C9004 - jumpargeq 7, 1, gUnknown_81C910A - jumpargeq 7, 2, gUnknown_81C91D7 - goto gUnknown_81C9253 - -gUnknown_81C8FFF:: @ 81C8FFF + jumpargeq 7, 0, Frustration_Strongest + jumpargeq 7, 1, Frustration_Strong + jumpargeq 7, 2, Frustration_Medium + goto Frustration_Weak +Frustration_Continue:: @ 81C8FFF waitforvisualfinish - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER blendoff end -gUnknown_81C9004:: @ 81C9004 +Frustration_Strongest:: @ 81C9004 playsewithpan SE_W082, 192 createvisualtask AnimTask_ShakeMon2, 5, 0, 1, 0, 15, 1 createvisualtask AnimTask_BlendSelected, 10, 2, 3, 0, 9, RGB(31, 0, 0) @@ -1807,9 +1802,9 @@ gUnknown_81C9004:: @ 81C9004 playsewithpan SE_W004, 63 waitforvisualfinish createvisualtask AnimTask_BlendSelected, 10, 2, 3, 9, 0, RGB(31, 0, 0) - goto gUnknown_81C8FFF + goto Frustration_Continue -gUnknown_81C910A:: @ 81C910A +Frustration_Strong:: @ 81C910A playsewithpan SE_W082, 192 createvisualtask AnimTask_ShakeMon2, 5, 0, 1, 0, 15, 1 createvisualtask AnimTask_BlendSelected, 10, 2, 3, 0, 9, RGB(31, 0, 0) @@ -1834,9 +1829,9 @@ gUnknown_81C910A:: @ 81C910A createvisualtask AnimTask_ShakeMon2, 5, 1, 4, 0, 6, 1 waitforvisualfinish createvisualtask AnimTask_BlendSelected, 10, 2, 3, 9, 0, RGB(31, 0, 0) - goto gUnknown_81C8FFF + goto Frustration_Continue -gUnknown_81C91D7:: @ 81C91D7 +Frustration_Medium:: @ 81C91D7 playsewithpan SE_W207B, 192 createsprite gAngerMarkSpriteTemplate, ANIM_ATTACKER, 2, 0, 20, -28 waitforvisualfinish @@ -1852,9 +1847,9 @@ gUnknown_81C91D7:: @ 81C91D7 playsewithpan SE_W004, 63 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -10, -4, 1, 2 createvisualtask AnimTask_ShakeMon2, 2, 1, 3, 0, 6, 1 - goto gUnknown_81C8FFF + goto Frustration_Continue -gUnknown_81C9253:: @ 81C9253 +Frustration_Weak:: @ 81C9253 createsprite gWeakFrustrationAngerMarkSpriteTemplate, ANIM_ATTACKER, 2, 20, -28 waitforvisualfinish delay 10 @@ -1863,11 +1858,11 @@ gUnknown_81C9253:: @ 81C9253 playsewithpan SE_W004, 63 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 1, 2 createvisualtask AnimTask_ShakeMon2, 2, 1, 1, 0, 6, 1 - goto gUnknown_81C8FFF + goto Frustration_Continue Move_SAFEGUARD:: @ 81C9297 loadspritegfx ANIM_TAG_GUARD_RING - monbg 2 + monbg ANIM_ATK_PARTNER setalpha 8, 8 playsewithpan SE_W208, 192 createsprite gGuardRingSpriteTemplate, ANIM_ATTACKER, 2, @@ -1879,7 +1874,7 @@ Move_SAFEGUARD:: @ 81C9297 playsewithpan SE_REAPOKE, 192 createvisualtask AnimTask_CurseBlendEffect, 2, 10, 0, 2, 0, 10, RGB_WHITE waitforvisualfinish - clearmonbg 2 + clearmonbg ANIM_ATK_PARTNER blendoff end @@ -1910,7 +1905,7 @@ Move_PAIN_SPLIT:: @ 81C92D9 Move_VICE_GRIP:: @ 81C9381 loadspritegfx ANIM_TAG_CUT loadspritegfx ANIM_TAG_IMPACT - monbg 3 + monbg ANIM_DEF_PARTNER setalpha 12, 8 playsewithpan SE_W011, 63 createsprite gViceGripSpriteTemplate, ANIM_ATTACKER, 2, 0 @@ -1919,14 +1914,14 @@ Move_VICE_GRIP:: @ 81C9381 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 1, 0, 0, 1, 2 createvisualtask AnimTask_ShakeMon2, 5, 1, 2, 0, 5, 1 waitforvisualfinish - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER blendoff end Move_GUILLOTINE:: @ 81C93C9 loadspritegfx ANIM_TAG_CUT loadspritegfx ANIM_TAG_IMPACT - monbg 3 + monbg ANIM_DEF_PARTNER setalpha 12, 8 fadetobgfromset 12, 13, 14 waitbgfadein @@ -1942,7 +1937,7 @@ Move_GUILLOTINE:: @ 81C93C9 createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 3, 1, 0, 8, 0, 0 playsewithpan SE_W013, 63 waitforvisualfinish - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER blendoff restorebg waitbgfadein @@ -1972,44 +1967,44 @@ Move_OUTRAGE:: @ 81C94A8 createvisualtask AnimTask_CurseBlendEffect, 2, 7, 2, 5, 3, 8, 430 createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, 0, 12, 6, 5, 4 delay 0 - createsprite gUnknown_83E772C, ANIM_TARGET, 2, 0, 0, 30, 1280, 0, 3 + createsprite gOutrageFlameSpriteTemplate, ANIM_TARGET, 2, 0, 0, 30, 1280, 0, 3 delay 0 - createsprite gUnknown_83E772C, ANIM_TARGET, 2, 0, 0, 30, -1280, 0, 3 + createsprite gOutrageFlameSpriteTemplate, ANIM_TARGET, 2, 0, 0, 30, -1280, 0, 3 delay 0 - createsprite gUnknown_83E772C, ANIM_TARGET, 2, 0, 0, 30, 0, 1280, 3 + createsprite gOutrageFlameSpriteTemplate, ANIM_TARGET, 2, 0, 0, 30, 0, 1280, 3 delay 0 - createsprite gUnknown_83E772C, ANIM_TARGET, 2, 0, 0, 30, 0, -1280, 3 + createsprite gOutrageFlameSpriteTemplate, ANIM_TARGET, 2, 0, 0, 30, 0, -1280, 3 delay 0 createvisualtask AnimTask_ShakeMon2, 2, 1, 2, 0, 40, 1 - createsprite gUnknown_83E772C, ANIM_TARGET, 2, 0, 0, 30, 1280, 768, 3 + createsprite gOutrageFlameSpriteTemplate, ANIM_TARGET, 2, 0, 0, 30, 1280, 768, 3 delay 0 - createsprite gUnknown_83E772C, ANIM_TARGET, 2, 0, 0, 30, -1280, 768, 3 + createsprite gOutrageFlameSpriteTemplate, ANIM_TARGET, 2, 0, 0, 30, -1280, 768, 3 delay 0 - createsprite gUnknown_83E772C, ANIM_TARGET, 2, 0, 0, 30, 1280, -768, 3 + createsprite gOutrageFlameSpriteTemplate, ANIM_TARGET, 2, 0, 0, 30, 1280, -768, 3 delay 0 - createsprite gUnknown_83E772C, ANIM_TARGET, 2, 0, 0, 30, -1280, -768, 3 + createsprite gOutrageFlameSpriteTemplate, ANIM_TARGET, 2, 0, 0, 30, -1280, -768, 3 delay 0 - createsprite gUnknown_83E772C, ANIM_TARGET, 2, 0, 0, 30, 1280, 0, 3 - call gUnknown_81C95AF - call gUnknown_81C95AF + createsprite gOutrageFlameSpriteTemplate, ANIM_TARGET, 2, 0, 0, 30, 1280, 0, 3 + call OutrageFlames + call OutrageFlames waitforvisualfinish end -gUnknown_81C95AF:: @ 81C95AF +OutrageFlames:: @ 81C95AF delay 3 - createsprite gUnknown_83E772C, ANIM_TARGET, 2, 0, 0, 30, -1280, 0, 3 + createsprite gOutrageFlameSpriteTemplate, ANIM_TARGET, 2, 0, 0, 30, -1280, 0, 3 delay 0 - createsprite gUnknown_83E772C, ANIM_TARGET, 2, 0, 0, 30, 0, 1280, 3 + createsprite gOutrageFlameSpriteTemplate, ANIM_TARGET, 2, 0, 0, 30, 0, 1280, 3 delay 0 - createsprite gUnknown_83E772C, ANIM_TARGET, 2, 0, 0, 30, 0, -1280, 3 + createsprite gOutrageFlameSpriteTemplate, ANIM_TARGET, 2, 0, 0, 30, 0, -1280, 3 delay 0 - createsprite gUnknown_83E772C, ANIM_TARGET, 2, 0, 0, 30, 1280, 768, 3 + createsprite gOutrageFlameSpriteTemplate, ANIM_TARGET, 2, 0, 0, 30, 1280, 768, 3 delay 0 - createsprite gUnknown_83E772C, ANIM_TARGET, 2, 0, 0, 30, -1280, 768, 3 + createsprite gOutrageFlameSpriteTemplate, ANIM_TARGET, 2, 0, 0, 30, -1280, 768, 3 delay 0 - createsprite gUnknown_83E772C, ANIM_TARGET, 2, 0, 0, 30, 1280, -768, 3 + createsprite gOutrageFlameSpriteTemplate, ANIM_TARGET, 2, 0, 0, 30, 1280, -768, 3 delay 0 - createsprite gUnknown_83E772C, ANIM_TARGET, 2, 0, 0, 30, -1280, -768, 3 + createsprite gOutrageFlameSpriteTemplate, ANIM_TARGET, 2, 0, 0, 30, -1280, -768, 3 return Move_SPARK:: @ 81C9643 @@ -2018,32 +2013,32 @@ Move_SPARK:: @ 81C9643 delay 0 createvisualtask AnimTask_CurseBlendEffect, 2, 3, -31, 1, 5, 5, 23551 playsewithpan SE_W085B, 192 - createsprite gUnknown_83E5FC4, ANIM_ATTACKER, 0, 32, 24, 190, 12, 0, 1, 0 + createsprite gSparkElectricitySpriteTemplate, ANIM_ATTACKER, 0, 32, 24, 190, 12, 0, 1, 0 delay 0 - createsprite gUnknown_83E5FC4, ANIM_ATTACKER, 0, 80, 24, 22, 12, 0, 1, 0 - createsprite gUnknown_83E5FC4, ANIM_ATTACKER, 0, 156, 24, 121, 13, 0, 1, 1 + createsprite gSparkElectricitySpriteTemplate, ANIM_ATTACKER, 0, 80, 24, 22, 12, 0, 1, 0 + createsprite gSparkElectricitySpriteTemplate, ANIM_ATTACKER, 0, 156, 24, 121, 13, 0, 1, 1 delay 0 createvisualtask AnimTask_CurseBlendEffect, 2, 3, -31, 1, 0, 0, 23551 delay 10 createvisualtask AnimTask_CurseBlendEffect, 2, 3, -31, 1, 5, 5, 23551 playsewithpan SE_W085B, 192 - createsprite gUnknown_83E5FC4, ANIM_ATTACKER, 0, 100, 24, 60, 10, 0, 1, 0 - createsprite gUnknown_83E5FC4, ANIM_ATTACKER, 0, 170, 24, 42, 11, 0, 1, 1 + createsprite gSparkElectricitySpriteTemplate, ANIM_ATTACKER, 0, 100, 24, 60, 10, 0, 1, 0 + createsprite gSparkElectricitySpriteTemplate, ANIM_ATTACKER, 0, 170, 24, 42, 11, 0, 1, 1 delay 0 - createsprite gUnknown_83E5FC4, ANIM_ATTACKER, 0, 238, 24, 165, 10, 0, 1, 1 + createsprite gSparkElectricitySpriteTemplate, ANIM_ATTACKER, 0, 238, 24, 165, 10, 0, 1, 1 delay 0 createvisualtask AnimTask_CurseBlendEffect, 2, 3, -31, 1, 0, 0, 23551 delay 20 createvisualtask AnimTask_CurseBlendEffect, 2, 3, -31, 1, 7, 7, 23551 playsewithpan SE_W085B, 192 - createsprite gUnknown_83E6070, ANIM_ATTACKER, 4, 0, 0, 32, 12, 0, 20, 0, 0 - createsprite gUnknown_83E6070, ANIM_ATTACKER, 4, 0, 0, 32, 12, 64, 20, 1, 0 - createsprite gUnknown_83E6070, ANIM_ATTACKER, 4, 0, 0, 32, 12, 128, 20, 0, 0 - createsprite gUnknown_83E6070, ANIM_ATTACKER, 4, 0, 0, 32, 12, 192, 20, 2, 0 - createsprite gUnknown_83E6070, ANIM_ATTACKER, 4, 0, 0, 16, 12, 32, 20, 0, 0 - createsprite gUnknown_83E6070, ANIM_ATTACKER, 4, 0, 0, 16, 12, 96, 20, 1, 0 - createsprite gUnknown_83E6070, ANIM_ATTACKER, 4, 0, 0, 16, 12, 160, 20, 0, 0 - createsprite gUnknown_83E6070, ANIM_ATTACKER, 4, 0, 0, 16, 12, 224, 20, 2, 0 + createsprite gSparkElectricityFlashingSpriteTemplate, ANIM_ATTACKER, 4, 0, 0, 32, 12, 0, 20, 0, 0 + createsprite gSparkElectricityFlashingSpriteTemplate, ANIM_ATTACKER, 4, 0, 0, 32, 12, 64, 20, 1, 0 + createsprite gSparkElectricityFlashingSpriteTemplate, ANIM_ATTACKER, 4, 0, 0, 32, 12, 128, 20, 0, 0 + createsprite gSparkElectricityFlashingSpriteTemplate, ANIM_ATTACKER, 4, 0, 0, 32, 12, 192, 20, 2, 0 + createsprite gSparkElectricityFlashingSpriteTemplate, ANIM_ATTACKER, 4, 0, 0, 16, 12, 32, 20, 0, 0 + createsprite gSparkElectricityFlashingSpriteTemplate, ANIM_ATTACKER, 4, 0, 0, 16, 12, 96, 20, 1, 0 + createsprite gSparkElectricityFlashingSpriteTemplate, ANIM_ATTACKER, 4, 0, 0, 16, 12, 160, 20, 0, 0 + createsprite gSparkElectricityFlashingSpriteTemplate, ANIM_ATTACKER, 4, 0, 0, 16, 12, 224, 20, 2, 0 delay 4 waitforvisualfinish createvisualtask AnimTask_CurseBlendEffect, 2, 3, -31, 1, 0, 0, 23551 @@ -2054,7 +2049,7 @@ Move_SPARK:: @ 81C9643 createvisualtask AnimTask_ShakeMon, 2, 1, 3, 0, 6, 1 waitforvisualfinish createvisualtask AnimTask_CurseBlendEffect, 2, 4, -31, 2, 0, 6, 23551 - call gUnknown_81D58D4 + call ElectricityEffect waitforvisualfinish end @@ -2088,13 +2083,13 @@ Move_ATTRACT:: @ 81C985A end Move_GROWTH:: @ 81C9953 - call gUnknown_81C9960 + call GrowthEffect waitforvisualfinish - call gUnknown_81C9960 + call GrowthEffect waitforvisualfinish end -gUnknown_81C9960:: @ 81C9960 +GrowthEffect:: @ 81C9960 createvisualtask AnimTask_CurseBlendEffect, 2, 2, 0, 2, 0, 8, RGB_WHITE playsewithpan SE_W036, 192 createvisualtask AnimTask_ScaleMonAndRestore, 5, -3, -3, 16, 0, 0 @@ -2102,12 +2097,12 @@ gUnknown_81C9960:: @ 81C9960 Move_WHIRLWIND:: @ 81C9989 loadspritegfx ANIM_TAG_WHIRLWIND_LINES - createsprite gUnknown_83E6C84, ANIM_ATTACKER, 2, 0, -8, 1, 60, 0 - createsprite gUnknown_83E6C84, ANIM_ATTACKER, 2, 0, 0, 1, 60, 1 - createsprite gUnknown_83E6C84, ANIM_ATTACKER, 2, 0, 8, 1, 60, 2 - createsprite gUnknown_83E6C84, ANIM_ATTACKER, 2, 0, 16, 1, 60, 3 - createsprite gUnknown_83E6C84, ANIM_ATTACKER, 2, 0, 24, 1, 60, 4 - createsprite gUnknown_83E6C84, ANIM_ATTACKER, 2, 0, 32, 1, 60, 0 + createsprite gWhirlwindLineSpriteTemplate, ANIM_ATTACKER, 2, 0, -8, 1, 60, 0 + createsprite gWhirlwindLineSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 1, 60, 1 + createsprite gWhirlwindLineSpriteTemplate, ANIM_ATTACKER, 2, 0, 8, 1, 60, 2 + createsprite gWhirlwindLineSpriteTemplate, ANIM_ATTACKER, 2, 0, 16, 1, 60, 3 + createsprite gWhirlwindLineSpriteTemplate, ANIM_ATTACKER, 2, 0, 24, 1, 60, 4 + createsprite gWhirlwindLineSpriteTemplate, ANIM_ATTACKER, 2, 0, 32, 1, 60, 0 delay 5 loopsewithpan SE_W104, 63, 10, 4 createvisualtask AnimTask_ShakeMon2, 2, 1, 4, 0, 15, 1 @@ -2115,26 +2110,26 @@ Move_WHIRLWIND:: @ 81C9989 createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, 1, 12, 6, 1, 5 delay 7 playsewithpan SE_W081, 63 - createvisualtask sub_80995FC, 5, 1, 8 + createvisualtask AnimTask_SlideOffScreen, 5, 1, 8 waitforvisualfinish end Move_CONFUSE_RAY:: @ 81C9A31 loadspritegfx ANIM_TAG_YELLOW_BALL - monbg 3 + monbg ANIM_DEF_PARTNER fadetobg 2 waitbgfadein - createvisualtask sub_80DD444, 2, -64, 63, 2, 0 - createvisualtask sub_80B9E58, 2, 10013, 0, 6, 0, 14, 351 - createsprite gUnknown_83E75C4, ANIM_TARGET, 2, 28, 0, 288 + createvisualtask SoundTask_AdjustPanningVar, 2, -64, 63, 2, 0 + createvisualtask AnimTask_BlendColorCycleByTag, 2, ANIM_TAG_YELLOW_BALL, 0, 6, 0, 14, 351 + createsprite gConfuseRayBallBounceSpriteTemplate, ANIM_TARGET, 2, 28, 0, 288 waitforvisualfinish setalpha 8, 8 playsewithpan SE_W081B, 63 - createsprite gUnknown_83E75DC, ANIM_TARGET, 2, 0, -16 + createsprite gConfuseRayBallSpiralSpriteTemplate, ANIM_TARGET, 2, 0, -16 waitforvisualfinish delay 0 blendoff - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER restorebg waitbgfadein end @@ -2153,7 +2148,7 @@ Move_LOCK_ON:: @ 81C9A84 Move_MEAN_LOOK:: @ 81C9ABA loadspritegfx ANIM_TAG_EYE - monbg 3 + monbg ANIM_DEF_PARTNER playsewithpan SE_W060, 192 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 0, 16, 0 loopsewithpan SE_W109, 63, 15, 4 @@ -2162,78 +2157,78 @@ Move_MEAN_LOOK:: @ 81C9ABA delay 120 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 2, 16, 0, 0 delay 30 - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER waitforvisualfinish end Move_ROCK_THROW:: @ 81C9AFF loadspritegfx ANIM_TAG_ROCKS - createsprite gUnknown_83E7B88, ANIM_TARGET, 2, 6, 1, 15, 1 - createsprite gUnknown_83E73B4, ANIM_TARGET, 2, 0, 1, 0, 0 + createsprite gShakeMonOrTerrainSpriteTemplate, ANIM_TARGET, 2, 6, 1, 15, 1 + createsprite gFallingRockSpriteTemplate, ANIM_TARGET, 2, 0, 1, 0, 0 playsewithpan SE_W088, 63 delay 6 - createsprite gUnknown_83E73B4, ANIM_TARGET, 2, 19, 1, 10, 0 + createsprite gFallingRockSpriteTemplate, ANIM_TARGET, 2, 19, 1, 10, 0 playsewithpan SE_W088, 63 delay 6 - createsprite gUnknown_83E73B4, ANIM_TARGET, 2, -23, 2, -10, 0 + createsprite gFallingRockSpriteTemplate, ANIM_TARGET, 2, -23, 2, -10, 0 playsewithpan SE_W088, 63 createvisualtask AnimTask_ShakeMon, 2, 1, 0, 5, 20, 1 delay 6 - createsprite gUnknown_83E73B4, ANIM_TARGET, 2, -15, 1, -10, 0 + createsprite gFallingRockSpriteTemplate, ANIM_TARGET, 2, -15, 1, -10, 0 playsewithpan SE_W088, 63 delay 6 - createsprite gUnknown_83E73B4, ANIM_TARGET, 2, 23, 2, 10, 0 + createsprite gFallingRockSpriteTemplate, ANIM_TARGET, 2, 23, 2, 10, 0 playsewithpan SE_W088, 63 waitforvisualfinish end Move_ROCK_SLIDE:: @ 81C9B8B loadspritegfx ANIM_TAG_ROCKS - monbg 3 - createsprite gUnknown_83E7B88, ANIM_ATTACKER, 2, 7, 1, 11, 1 - createsprite gUnknown_83E73B4, ANIM_TARGET, 2, -5, 1, -5, 1 + monbg ANIM_DEF_PARTNER + createsprite gShakeMonOrTerrainSpriteTemplate, ANIM_ATTACKER, 2, 7, 1, 11, 1 + createsprite gFallingRockSpriteTemplate, ANIM_TARGET, 2, -5, 1, -5, 1 playsewithpan SE_W088, 63 delay 2 - createsprite gUnknown_83E73B4, ANIM_TARGET, 2, 5, 0, 6, 1 + createsprite gFallingRockSpriteTemplate, ANIM_TARGET, 2, 5, 0, 6, 1 playsewithpan SE_W088, 63 delay 2 - createsprite gUnknown_83E73B4, ANIM_TARGET, 2, 19, 1, 10, 1 + createsprite gFallingRockSpriteTemplate, ANIM_TARGET, 2, 19, 1, 10, 1 playsewithpan SE_W088, 63 delay 2 - createsprite gUnknown_83E73B4, ANIM_TARGET, 2, -23, 2, -10, 1 + createsprite gFallingRockSpriteTemplate, ANIM_TARGET, 2, -23, 2, -10, 1 playsewithpan SE_W088, 63 createvisualtask AnimTask_ShakeMon, 2, 1, 0, 5, 50, 1 createvisualtask AnimTask_ShakeMon, 2, 3, 0, 5, 50, 1 delay 2 - call gUnknown_81C9C23 - call gUnknown_81C9C23 + call RockSlideRocks + call RockSlideRocks waitforvisualfinish - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER end -gUnknown_81C9C23:: @ 81C9C23 - createsprite gUnknown_83E73B4, ANIM_TARGET, 2, -20, 0, -10, 1 +RockSlideRocks:: @ 81C9C23 + createsprite gFallingRockSpriteTemplate, ANIM_TARGET, 2, -20, 0, -10, 1 playsewithpan SE_W088, 63 delay 2 - createsprite gUnknown_83E73B4, ANIM_TARGET, 2, 28, 1, 10, 1 + createsprite gFallingRockSpriteTemplate, ANIM_TARGET, 2, 28, 1, 10, 1 playsewithpan SE_W088, 63 delay 2 - createsprite gUnknown_83E73B4, ANIM_TARGET, 2, -10, 1, -5, 1 + createsprite gFallingRockSpriteTemplate, ANIM_TARGET, 2, -10, 1, -5, 1 playsewithpan SE_W088, 63 delay 2 - createsprite gUnknown_83E73B4, ANIM_TARGET, 2, 10, 0, 6, 1 + createsprite gFallingRockSpriteTemplate, ANIM_TARGET, 2, 10, 0, 6, 1 playsewithpan SE_W088, 63 delay 2 - createsprite gUnknown_83E73B4, ANIM_TARGET, 2, 24, 1, 10, 1 + createsprite gFallingRockSpriteTemplate, ANIM_TARGET, 2, 24, 1, 10, 1 playsewithpan SE_W088, 63 delay 2 - createsprite gUnknown_83E73B4, ANIM_TARGET, 2, -32, 2, -10, 1 + createsprite gFallingRockSpriteTemplate, ANIM_TARGET, 2, -32, 2, -10, 1 playsewithpan SE_W088, 63 delay 2 - createsprite gUnknown_83E73B4, ANIM_TARGET, 2, -20, 0, -10, 1 + createsprite gFallingRockSpriteTemplate, ANIM_TARGET, 2, -20, 0, -10, 1 playsewithpan SE_W088, 63 delay 2 - createsprite gUnknown_83E73B4, ANIM_TARGET, 2, 30, 2, 10, 1 + createsprite gFallingRockSpriteTemplate, ANIM_TARGET, 2, 30, 2, 10, 1 playsewithpan SE_W088, 63 delay 2 return @@ -2265,34 +2260,34 @@ Move_BUBBLE_BEAM:: @ 81C9D13 monbgprio_28 1 setalpha 12, 8 delay 1 - call gUnknown_81C9D4D + call BulbblebeamCreateBubbles createvisualtask AnimTask_SwayMon, 5, 0, 3, 3072, 8, 1 - call gUnknown_81C9D4D - call gUnknown_81C9D4D + call BulbblebeamCreateBubbles + call BulbblebeamCreateBubbles waitforvisualfinish - call gUnknown_81D57CC + call WaterBubblesEffectShort waitforvisualfinish clearmonbg 1 blendoff end -gUnknown_81C9D4D:: @ 81C9D4D - createsprite gUnknown_83E58E0, ANIM_ATTACKER, 2, 18, 0, 35, 70, 0, 256, 50 +BulbblebeamCreateBubbles:: @ 81C9D4D + createsprite gWaterBubbleProjectileSpriteTemplate, ANIM_ATTACKER, 2, 18, 0, 35, 70, 0, 256, 50 playsewithpan SE_W145, 192 delay 3 - createsprite gUnknown_83E58E0, ANIM_ATTACKER, 2, 18, 0, 20, 40, -10, 256, 50 + createsprite gWaterBubbleProjectileSpriteTemplate, ANIM_ATTACKER, 2, 18, 0, 20, 40, -10, 256, 50 playsewithpan SE_W145, 192 delay 3 - createsprite gUnknown_83E58E0, ANIM_ATTACKER, 2, 18, 0, 10, -60, 0, 256, 50 + createsprite gWaterBubbleProjectileSpriteTemplate, ANIM_ATTACKER, 2, 18, 0, 10, -60, 0, 256, 50 playsewithpan SE_W145, 192 delay 3 - createsprite gUnknown_83E58E0, ANIM_ATTACKER, 2, 18, 0, 15, -15, 10, 256, 50 + createsprite gWaterBubbleProjectileSpriteTemplate, ANIM_ATTACKER, 2, 18, 0, 15, -15, 10, 256, 50 playsewithpan SE_W145, 192 delay 3 - createsprite gUnknown_83E58E0, ANIM_ATTACKER, 2, 18, 0, 30, 10, -10, 256, 50 + createsprite gWaterBubbleProjectileSpriteTemplate, ANIM_ATTACKER, 2, 18, 0, 30, 10, -10, 256, 50 playsewithpan SE_W145, 192 delay 3 - createsprite gUnknown_83E58E0, ANIM_ATTACKER, 2, 18, 0, 25, -30, 10, 256, 50 + createsprite gWaterBubbleProjectileSpriteTemplate, ANIM_ATTACKER, 2, 18, 0, 25, -30, 10, 256, 50 playsewithpan SE_W145, 192 delay 3 return @@ -2300,7 +2295,7 @@ gUnknown_81C9D4D:: @ 81C9D4D Move_ICY_WIND:: @ 81C9DF0 loadspritegfx ANIM_TAG_ICE_CRYSTALS loadspritegfx ANIM_TAG_ICE_SPIKES - monbg 3 + monbg ANIM_DEF_PARTNER createvisualtask AnimTask_BlendSelected, 10, 11, 4, 0, 4, RGB_BLACK fadetobg 15 waitbgfadeout @@ -2308,30 +2303,30 @@ Move_ICY_WIND:: @ 81C9DF0 waitbgfadein waitforvisualfinish panse_1B SE_W016, 192, 63, 2, 0 - call gUnknown_81C9E48 + call IcyWindSwirlingSnowballs delay 5 - call gUnknown_81C9E48 + call IcyWindSwirlingSnowballs playsewithpan SE_W016B, 63 delay 55 - call gUnknown_81D55E2 + call IceSpikesEffectLong waitforvisualfinish - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER restorebg waitbgfadeout createvisualtask AnimTask_BlendSelected, 10, 11, 4, 4, 0, RGB_BLACK waitbgfadein end -gUnknown_81C9E48:: @ 81C9E48 - createsprite gUnknown_83E6410, ANIM_TARGET, 40, 0, 0, 0, 0, 72, 1 +IcyWindSwirlingSnowballs:: @ 81C9E48 + createsprite gSwirlingSnowballSpriteTemplate, ANIM_TARGET, 40, 0, 0, 0, 0, 72, 1 delay 5 - createsprite gUnknown_83E6410, ANIM_TARGET, 40, 0, 10, 0, 10, 72, 1 + createsprite gSwirlingSnowballSpriteTemplate, ANIM_TARGET, 40, 0, 10, 0, 10, 72, 1 delay 5 - createsprite gUnknown_83E6410, ANIM_TARGET, 40, 0, -10, 0, -10, 72, 1 + createsprite gSwirlingSnowballSpriteTemplate, ANIM_TARGET, 40, 0, -10, 0, -10, 72, 1 delay 5 - createsprite gUnknown_83E6410, ANIM_TARGET, 40, 0, 15, 0, 15, 72, 1 + createsprite gSwirlingSnowballSpriteTemplate, ANIM_TARGET, 40, 0, 15, 0, 15, 72, 1 delay 5 - createsprite gUnknown_83E6410, ANIM_TARGET, 40, 0, -5, 0, -5, 72, 1 + createsprite gSwirlingSnowballSpriteTemplate, ANIM_TARGET, 40, 0, -5, 0, -5, 72, 1 return Move_SMOKESCREEN:: @ 81C9EB0 @@ -2360,7 +2355,7 @@ Move_SMOKESCREEN:: @ 81C9EB0 Move_CONVERSION:: @ 81C9FA9 loadspritegfx ANIM_TAG_CONVERSION - monbg 2 + monbg ANIM_ATK_PARTNER monbgprio_28 0 setalpha 16, 0 delay 0 @@ -2401,18 +2396,18 @@ Move_CONVERSION:: @ 81C9FA9 createsprite gConversionSpriteTemplate, ANIM_ATTACKER, 2, 24, 24 delay 20 playsewithpan SE_W112, 192 - createvisualtask sub_80B9F6C, 2, 10018, 1, 1, 14335, 12, 0, 0 + createvisualtask AnimTask_FlashAnimTagWithColor, 2, 10018, 1, 1, 14335, 12, 0, 0 delay 6 createvisualtask AnimTask_ConversionAlphaBlend, 5, waitforvisualfinish delay 1 - clearmonbg 2 + clearmonbg ANIM_ATK_PARTNER blendoff end Move_CONVERSION_2:: @ 81CA0BE loadspritegfx ANIM_TAG_CONVERSION - monbg 3 + monbg ANIM_DEF_PARTNER monbgprio_2A 1 setalpha 0, 16 delay 0 @@ -2451,7 +2446,7 @@ Move_CONVERSION_2:: @ 81CA0BE delay 10 playsewithpan SE_W129, 63 waitforvisualfinish - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER blendoff end @@ -2466,7 +2461,7 @@ Move_ROLLING_KICK:: @ 81CA1DA playsewithpan SE_W104, 192 waitforvisualfinish createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 0, 20, 0, 0, 4 - createsprite gUnknown_83E6758, ANIM_ATTACKER, 2, -24, 0, 48, 10, 160, 0 + createsprite gSlidingKickSpriteTemplate, ANIM_ATTACKER, 2, -24, 0, 48, 10, 160, 0 delay 5 playsewithpan SE_W233B, 63 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -8, 0, 1, 2 @@ -2488,7 +2483,7 @@ Move_HEADBUTT:: @ 81CA25D createvisualtask AnimTask_ShakeMonInPlace, 2, 0, 2, 0, 4, 1 createvisualtask AnimTask_ShakeMon, 2, 1, 5, 0, 6, 1 createsprite gBowMonSpriteTemplate, ANIM_ATTACKER, 2, 2 - createsprite gUnknown_83E7C98, ANIM_TARGET, 3, 0, 0, 1, 1 + createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, 1, 1 playsewithpan SE_W233B, 63 waitforvisualfinish end @@ -2506,7 +2501,7 @@ Move_HORN_ATTACK:: @ 81CA2BA createvisualtask AnimTask_ShakeMonInPlace, 2, 0, 2, 0, 4, 1 createvisualtask AnimTask_ShakeMon, 2, 1, 5, 0, 6, 1 createsprite gBowMonSpriteTemplate, ANIM_ATTACKER, 2, 2 - createsprite gUnknown_83E7C98, ANIM_TARGET, 3, 0, 0, 1, 1 + createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, 1, 1 playsewithpan SE_W030, 63 waitforvisualfinish end @@ -2514,37 +2509,35 @@ Move_HORN_ATTACK:: @ 81CA2BA Move_FURY_ATTACK:: @ 81CA327 loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_HORN_HIT - createvisualtask sub_8099980, 2, 4, 256, 0, 2 - choosetwoturnanim gUnknown_81CA358, gUnknown_81CA37E - -gUnknown_81CA345:: @ 81CA345 + createvisualtask AnimTask_RotateMonSpriteToSide, 2, 4, 256, 0, 2 + choosetwoturnanim FuryAttackRight, FuryAttackLeft +FuryAttackContinue:: @ 81CA345 createvisualtask AnimTask_ShakeMon, 2, 1, 5, 0, 6, 1 waitforvisualfinish end -gUnknown_81CA358:: @ 81CA358 +FuryAttackRight:: @ 81CA358 createsprite gHornHitSpriteTemplate, ANIM_TARGET, 4, 8, 8, 10 waitforvisualfinish - createsprite gUnknown_83E7C98, ANIM_TARGET, 3, 0, 0, 1, 1 + createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, 1, 1 playsewithpan SE_W030, 63 - goto gUnknown_81CA345 + goto FuryAttackContinue -gUnknown_81CA37E:: @ 81CA37E +FuryAttackLeft:: @ 81CA37E createsprite gHornHitSpriteTemplate, ANIM_TARGET, 4, -8, -8, 10 waitforvisualfinish - createsprite gUnknown_83E7C98, ANIM_TARGET, 3, 0, 0, 1, 1 + createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, 1, 1 playsewithpan SE_W030, 63 - goto gUnknown_81CA345 + goto FuryAttackContinue Move_HORN_DRILL:: @ 81CA3A4 loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_HORN_HIT - jumpifcontest gUnknown_81CA50A + jumpifcontest HornDrillInContest fadetobg 7 waitbgfadeout - createvisualtask sub_80BB82C, 5, -2304, 768, 1, -1 - -gUnknown_81CA3C1:: @ 81CA3C1 + createvisualtask AnimTask_StartSlidingBg, 5, -2304, 768, 1, -1 +HornDrillContinue:: @ 81CA3C1 waitbgfadein setalpha 12, 8 createsprite gBowMonSpriteTemplate, ANIM_ATTACKER, 2, 0 @@ -2557,37 +2550,37 @@ gUnknown_81CA3C1:: @ 81CA3C1 playse SE_BAN createvisualtask AnimTask_ShakeMonInPlace, 2, 0, 2, 0, 40, 1 createvisualtask AnimTask_ShakeMonInPlace, 2, 1, 10, 0, 40, 1 - createsprite gUnknown_83E7C98, ANIM_TARGET, 3, 0, 0, 1, 3 + createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, 1, 3 playsewithpan SE_W030, 63 delay 4 - createsprite gUnknown_83E7C98, ANIM_TARGET, 3, 0, 2, 1, 3 + createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 2, 1, 3 playsewithpan SE_W030, 63 delay 4 - createsprite gUnknown_83E7C98, ANIM_TARGET, 3, -4, 3, 1, 3 + createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, -4, 3, 1, 3 playsewithpan SE_W030, 63 delay 4 - createsprite gUnknown_83E7C98, ANIM_TARGET, 3, -8, -5, 1, 3 + createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, -8, -5, 1, 3 playsewithpan SE_W030, 63 delay 4 - createsprite gUnknown_83E7C98, ANIM_TARGET, 3, 4, -12, 1, 3 + createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, 4, -12, 1, 3 playsewithpan SE_W030, 63 delay 4 - createsprite gUnknown_83E7C98, ANIM_TARGET, 3, 16, 0, 1, 3 + createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, 16, 0, 1, 3 playsewithpan SE_W030, 63 delay 4 - createsprite gUnknown_83E7C98, ANIM_TARGET, 3, 5, 18, 1, 3 + createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, 5, 18, 1, 3 playsewithpan SE_W030, 63 delay 4 - createsprite gUnknown_83E7C98, ANIM_TARGET, 3, -17, 12, 1, 2 + createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, -17, 12, 1, 2 playsewithpan SE_W030, 63 delay 4 - createsprite gUnknown_83E7C98, ANIM_TARGET, 3, -21, -15, 1, 2 + createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, -21, -15, 1, 2 playsewithpan SE_W030, 63 delay 4 - createsprite gUnknown_83E7C98, ANIM_TARGET, 3, 8, -27, 1, 2 + createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, 8, -27, 1, 2 playsewithpan SE_W030, 63 delay 4 - createsprite gUnknown_83E7C98, ANIM_TARGET, 3, 32, 0, 1, 2 + createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, 32, 0, 1, 2 playsewithpan SE_W030, 63 delay 4 createsprite gBowMonSpriteTemplate, ANIM_ATTACKER, 2, 2 @@ -2598,33 +2591,33 @@ gUnknown_81CA3C1:: @ 81CA3C1 waitbgfadein end -gUnknown_81CA50A:: @ 81CA50A +HornDrillInContest:: @ 81CA50A fadetobg 8 waitbgfadeout - createvisualtask sub_80BB82C, 5, 2304, 768, 0, -1 - goto gUnknown_81CA3C1 + createvisualtask AnimTask_StartSlidingBg, 5, 2304, 768, 0, -1 + goto HornDrillContinue Move_THRASH:: @ 81CA521 loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_HANDS_AND_FEET createvisualtask AnimTask_ThrashMoveMonHorizontal, 2, createvisualtask AnimTask_ThrashMoveMonVertical, 2, - createsprite gUnknown_83E6728, ANIM_TARGET, 3, 1, 10, 0 + createsprite gFistFootRandomPosSpriteTemplate, ANIM_TARGET, 3, 1, 10, 0 createvisualtask AnimTask_ShakeMonInPlace, 2, 1, 4, 0, 7, 1 playsewithpan SE_W004, 63 delay 28 - createsprite gUnknown_83E6728, ANIM_TARGET, 3, 1, 10, 1 + createsprite gFistFootRandomPosSpriteTemplate, ANIM_TARGET, 3, 1, 10, 1 createvisualtask AnimTask_ShakeMonInPlace, 2, 1, 4, 0, 7, 1 playsewithpan SE_W233B, 63 delay 28 - createsprite gUnknown_83E6728, ANIM_TARGET, 3, 1, 10, 3 + createsprite gFistFootRandomPosSpriteTemplate, ANIM_TARGET, 3, 1, 10, 3 createvisualtask AnimTask_ShakeMonInPlace, 2, 1, 8, 0, 16, 1 playsewithpan SE_W025B, 63 end Move_SING:: @ 81CA5A0 loadspritegfx ANIM_TAG_MUSIC_NOTES - monbg 3 + monbg ANIM_DEF_PARTNER createvisualtask AnimTask_MusicNotesRainbowBlend, 2, waitforvisualfinish panse_1B SE_W047, 192, 63, 2, 0 @@ -2653,7 +2646,7 @@ Move_SING:: @ 81CA5A0 createsprite gWavyMusicNotesSpriteTemplate, ANIM_TARGET, 2, 5, 3, 12 delay 4 waitforvisualfinish - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER createvisualtask AnimTask_MusicNotesClearRainbowBlend, 2, waitforvisualfinish end @@ -2662,18 +2655,18 @@ Move_LOW_KICK:: @ 81CA674 loadspritegfx ANIM_TAG_HANDS_AND_FEET loadspritegfx ANIM_TAG_IMPACT createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 0, 20, 0, 0, 4 - createsprite gUnknown_83E6758, ANIM_TARGET, 2, -24, 28, 40, 8, 160, 0 + createsprite gSlidingKickSpriteTemplate, ANIM_TARGET, 2, -24, 28, 40, 8, 160, 0 delay 4 createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, -8, 8, 1, 2 - createvisualtask sub_8099980, 2, 6, 384, 1, 2 + createvisualtask AnimTask_RotateMonSpriteToSide, 2, 6, 384, 1, 2 playsewithpan SE_W233B, 63 waitforvisualfinish createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 0, 1, 4 end Move_EARTHQUAKE:: @ 81CA6D1 - createvisualtask sub_80B94B4, 5, 5, 10, 50 - createvisualtask sub_80B94B4, 5, 4, 10, 50 + createvisualtask AnimTask_HorizontalShake, 5, 5, 10, 50 + createvisualtask AnimTask_HorizontalShake, 5, 4, 10, 50 playsewithpan SE_W089, 0 delay 10 createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 1, 0, 14, RGB_WHITE, 14 @@ -2683,23 +2676,23 @@ Move_EARTHQUAKE:: @ 81CA6D1 Move_FISSURE:: @ 81CA71E loadspritegfx ANIM_TAG_MUD_SAND - createvisualtask sub_80B94B4, 3, 5, 10, 50 - createvisualtask sub_80B94B4, 3, 1, 10, 50 + createvisualtask AnimTask_HorizontalShake, 3, 5, 10, 50 + createvisualtask AnimTask_HorizontalShake, 3, 1, 10, 50 playsewithpan SE_W089, 63 delay 8 - call gUnknown_81CA79F + call FissureDirtPlumeFar delay 15 createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 1, 0, 14, RGB_WHITE, 14 delay 15 - call gUnknown_81CA7F0 + call FissureDirtPlumeClose delay 15 createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 1, 0, 14, RGB_WHITE, 14 delay 15 - call gUnknown_81CA79F + call FissureDirtPlumeFar delay 50 - fadetobg 21 + fadetobg BG_FISSURE waitbgfadeout - createvisualtask sub_80B9800, 5, 1, 5, -1 + createvisualtask AnimTask_PositionFissureBgOnBattler, 5, 1, 5, -1 waitbgfadein delay 40 restorebg @@ -2708,86 +2701,85 @@ Move_FISSURE:: @ 81CA71E waitbgfadein end -gUnknown_81CA79F:: @ 81CA79F - createsprite gUnknown_83E7AAC, ANIM_TARGET, 2, 1, 0, 12, -48, -16, 24 - createsprite gUnknown_83E7AAC, ANIM_TARGET, 2, 1, 0, 16, -16, -10, 24 - createsprite gUnknown_83E7AAC, ANIM_TARGET, 2, 1, 1, 14, -52, -18, 24 - createsprite gUnknown_83E7AAC, ANIM_TARGET, 2, 1, 1, 12, -32, -16, 24 +FissureDirtPlumeFar:: @ 81CA79F + createsprite gDirtPlumeSpriteTemplate, ANIM_TARGET, 2, 1, 0, 12, -48, -16, 24 + createsprite gDirtPlumeSpriteTemplate, ANIM_TARGET, 2, 1, 0, 16, -16, -10, 24 + createsprite gDirtPlumeSpriteTemplate, ANIM_TARGET, 2, 1, 1, 14, -52, -18, 24 + createsprite gDirtPlumeSpriteTemplate, ANIM_TARGET, 2, 1, 1, 12, -32, -16, 24 playsewithpan SE_W091, 63 return -gUnknown_81CA7F0:: @ 81CA7F0 - createsprite gUnknown_83E7AAC, ANIM_TARGET, 2, 1, 0, 12, -24, -16, 24 - createsprite gUnknown_83E7AAC, ANIM_TARGET, 2, 1, 0, 16, -38, -10, 24 - createsprite gUnknown_83E7AAC, ANIM_TARGET, 2, 1, 1, 14, -20, -18, 24 - createsprite gUnknown_83E7AAC, ANIM_TARGET, 2, 1, 1, 12, -36, -16, 24 +FissureDirtPlumeClose:: @ 81CA7F0 + createsprite gDirtPlumeSpriteTemplate, ANIM_TARGET, 2, 1, 0, 12, -24, -16, 24 + createsprite gDirtPlumeSpriteTemplate, ANIM_TARGET, 2, 1, 0, 16, -38, -10, 24 + createsprite gDirtPlumeSpriteTemplate, ANIM_TARGET, 2, 1, 1, 14, -20, -18, 24 + createsprite gDirtPlumeSpriteTemplate, ANIM_TARGET, 2, 1, 1, 12, -36, -16, 24 playsewithpan SE_W091, 63 return Move_DIG:: @ 81CA841 - choosetwoturnanim gUnknown_81CA84B, gUnknown_81CA8A6 - -gUnknown_81CA84A:: @ 81CA84A + choosetwoturnanim DigSetUp, DigUnleash +DigEnd:: @ 81CA84A end -gUnknown_81CA84B:: @ 81CA84B +DigSetUp:: @ 81CA84B loadspritegfx ANIM_TAG_MUD_SAND loadspritegfx ANIM_TAG_DIRT_MOUND - createsprite gUnknown_83E7AC4, ANIM_ATTACKER, 1, 0, 0, 180 - createsprite gUnknown_83E7AC4, ANIM_ATTACKER, 1, 0, 1, 180 + createsprite gDirtMoundSpriteTemplate, ANIM_ATTACKER, 1, 0, 0, 180 + createsprite gDirtMoundSpriteTemplate, ANIM_ATTACKER, 1, 0, 1, 180 monbg_22 0 delay 1 - createvisualtask sub_80B8E94, 2, 0 + createvisualtask AnimTask_DigDownMovement, 2, 0 delay 6 - call gUnknown_81CA90A - call gUnknown_81CA90A - call gUnknown_81CA90A - call gUnknown_81CA90A - call gUnknown_81CA90A + call DigThrowDirt + call DigThrowDirt + call DigThrowDirt + call DigThrowDirt + call DigThrowDirt waitforvisualfinish clearmonbg_23 0 delay 1 - createvisualtask sub_80B8E94, 2, 1 - goto gUnknown_81CA84A + createvisualtask AnimTask_DigDownMovement, 2, 1 + goto DigEnd -gUnknown_81CA8A6:: @ 81CA8A6 +DigUnleash:: @ 81CA8A6 loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_DIRT_MOUND - createvisualtask sub_80B90EC, 2, 0 + createvisualtask AnimTask_DigUpMovement, 2, 0 waitforvisualfinish - monbg 0 - createsprite gUnknown_83E7AC4, ANIM_ATTACKER, 1, 0, 0, 48 - createsprite gUnknown_83E7AC4, ANIM_ATTACKER, 1, 0, 1, 48 + monbg ANIM_ATTACKER + createsprite gDirtMoundSpriteTemplate, ANIM_ATTACKER, 1, 0, 0, 48 + createsprite gDirtMoundSpriteTemplate, ANIM_ATTACKER, 1, 0, 1, 48 delay 1 - createvisualtask sub_80B90EC, 2, 1 + createvisualtask AnimTask_DigUpMovement, 2, 1 delay 16 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -8, 0, 1, 2 createvisualtask AnimTask_ShakeMon, 2, 1, 5, 0, 6, 1 playsewithpan SE_W025B, 192 - clearmonbg 0 - goto gUnknown_81CA84A - -gUnknown_81CA90A:: @ 81CA90A - createsprite gUnknown_83E7AAC, ANIM_ATTACKER, 2, 0, 0, 12, 4, -16, 18 - createsprite gUnknown_83E7AAC, ANIM_ATTACKER, 2, 0, 0, 16, 4, -10, 18 - createsprite gUnknown_83E7AAC, ANIM_ATTACKER, 2, 0, 1, 14, 4, -18, 18 - createsprite gUnknown_83E7AAC, ANIM_ATTACKER, 2, 0, 1, 12, 4, -16, 18 + clearmonbg ANIM_ATTACKER + goto DigEnd + +DigThrowDirt:: @ 81CA90A + createsprite gDirtPlumeSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 12, 4, -16, 18 + createsprite gDirtPlumeSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 16, 4, -10, 18 + createsprite gDirtPlumeSpriteTemplate, ANIM_ATTACKER, 2, 0, 1, 14, 4, -18, 18 + createsprite gDirtPlumeSpriteTemplate, ANIM_ATTACKER, 2, 0, 1, 12, 4, -16, 18 playsewithpan SE_W091, 192 delay 32 return Move_MEDITATE:: @ 81CA95D - call gUnknown_81D59BB - createvisualtask sub_80B3418, 2, + call SetPsychicBackground + createvisualtask AnimTask_MeditateStretchAttacker, 2 playsewithpan SE_W029, 192 delay 16 playsewithpan SE_W036, 192 waitforvisualfinish - call gUnknown_81D59C7 + call UnsetPsychicBg end Move_AGILITY:: @ 81CA97A - monbg 2 + monbg ANIM_ATK_PARTNER setalpha 12, 8 createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, 0, 24, 6, 4, 4 createvisualtask AnimTask_CloneBattlerSpriteWithBlend, 2, 0, 4, 7, 10 @@ -2802,14 +2794,14 @@ Move_AGILITY:: @ 81CA97A playsewithpan SE_W104, 192 delay 12 waitforvisualfinish - clearmonbg 2 + clearmonbg ANIM_ATK_PARTNER blendoff delay 1 end Move_QUICK_ATTACK:: @ 81CA9C4 loadspritegfx ANIM_TAG_IMPACT - monbg 2 + monbg ANIM_ATK_PARTNER setalpha 12, 8 createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, 0, 24, 6, 1, 5 createvisualtask AnimTask_CloneBattlerSpriteWithBlend, 2, 0, 4, 7, 3 @@ -2819,7 +2811,7 @@ Move_QUICK_ATTACK:: @ 81CA9C4 createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 4, 0, 0, 1, 1 playsewithpan SE_W233B, 63 waitforvisualfinish - clearmonbg 2 + clearmonbg ANIM_ATK_PARTNER blendoff waitforvisualfinish end @@ -2839,23 +2831,23 @@ Move_RAGE:: @ 81CAA1C createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 4, 6 delay 4 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 1, 2 - createvisualtask sub_8099BD4, 2, 1, 1, 10, 1, 0 + createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 2, 1, 1, 10, 1, 0 playsewithpan SE_W233B, 63 waitforvisualfinish clearmonbg 1 end Move_TELEPORT:: @ 81CAA92 - call gUnknown_81D59BB - createvisualtask sub_80B3480, 2, + call SetPsychicBackground + createvisualtask AnimTask_Teleport, 2 playsewithpan SE_W100, 192 delay 15 - call gUnknown_81D59C7 + call UnsetPsychicBg waitforvisualfinish end Move_DOUBLE_TEAM:: @ 81CAAAB - monbg 2 + monbg ANIM_ATK_PARTNER setalpha 12, 8 createvisualtask AnimTask_DoubleTeam, 2, playsewithpan SE_W104, 192 @@ -2876,7 +2868,7 @@ Move_DOUBLE_TEAM:: @ 81CAAAB delay 8 playsewithpan SE_W104, 192 waitforvisualfinish - clearmonbg 2 + clearmonbg ANIM_ATK_PARTNER blendoff delay 1 end @@ -2902,28 +2894,27 @@ Move_METRONOME:: @ 81CAB05 end Move_SKULL_BASH:: @ 81CAB2F - choosetwoturnanim gUnknown_81CAB39, gUnknown_81CAB86 - -gUnknown_81CAB38:: @ 81CAB38 + choosetwoturnanim SkullBashSetUp, SkullBashAttack +SkullBashEnd:: @ 81CAB38 end -gUnknown_81CAB39:: @ 81CAB39 - call gUnknown_81CAB49 - call gUnknown_81CAB49 +SkullBashSetUp:: @ 81CAB39 + call SkullBashSetUpHeadDown + call SkullBashSetUpHeadDown waitforvisualfinish - goto gUnknown_81CAB38 + goto SkullBashEnd -gUnknown_81CAB49:: @ 81CAB49 - createsprite gUnknown_83D4EB4, ANIM_ATTACKER, 2, 0, -24, 0, 0, 10, 0 +SkullBashSetUpHeadDown:: @ 81CAB49 + createsprite gSlideMonToOffsetAndBackSpriteTemplate, ANIM_ATTACKER, 2, 0, -24, 0, 0, 10, 0 playsewithpan SE_W036, 192 waitforvisualfinish - createvisualtask sub_8099980, 2, 16, 96, 0, 2 + createvisualtask AnimTask_RotateMonSpriteToSide, 2, 16, 96, 0, 2 waitforvisualfinish - createsprite gUnknown_83D4EB4, ANIM_ATTACKER, 2, 0, 24, 0, 0, 10, 1 + createsprite gSlideMonToOffsetAndBackSpriteTemplate, ANIM_ATTACKER, 2, 0, 24, 0, 0, 10, 1 waitforvisualfinish return -gUnknown_81CAB86:: @ 81CAB86 +SkullBashAttack:: @ 81CAB86 loadspritegfx ANIM_TAG_IMPACT createvisualtask AnimTask_SkullBashPosition, 2, 0 playsewithpan SE_W036, 192 @@ -2932,30 +2923,30 @@ gUnknown_81CAB86:: @ 81CAB86 createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 1, 0, 14, RGB_WHITE, 14 createvisualtask AnimTask_ShakeMonInPlace, 2, 0, 2, 0, 40, 1 createvisualtask AnimTask_ShakeMonInPlace, 2, 1, 10, 0, 40, 1 - createsprite gUnknown_83E7C98, ANIM_TARGET, 4, 0, 0, 1, 0 + createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 4, 0, 0, 1, 0 loopsewithpan SE_W025B, 63, 8, 3 waitforvisualfinish createvisualtask AnimTask_SkullBashPosition, 2, 1 - goto gUnknown_81CAB38 + goto SkullBashEnd Move_AMNESIA:: @ 81CABF5 loadspritegfx ANIM_TAG_AMNESIA - call gUnknown_81D59BB + call SetPsychicBackground delay 8 - createsprite gUnknown_83E6FF4, ANIM_ATTACKER, 20, + createsprite gQuestionMarkSpriteTemplate, ANIM_ATTACKER, 20 playsewithpan SE_W118, 192 delay 54 loopsewithpan SE_W118, 192, 16, 3 waitforvisualfinish - call gUnknown_81D59C7 + call UnsetPsychicBg end Move_KINESIS:: @ 81CAC19 loadspritegfx ANIM_TAG_ALERT loadspritegfx ANIM_TAG_BENT_SPOON playsewithpan SE_W060, 192 - call gUnknown_81D59BB - createsprite gUnknown_83E6F8C, ANIM_ATTACKER, 20, + call SetPsychicBackground + createsprite gBentSpoonSpriteTemplate, ANIM_ATTACKER, 20 createsprite gKinesisZapEnergySpriteTemplate, ANIM_ATTACKER, 19, 32, -8, 0 createsprite gKinesisZapEnergySpriteTemplate, ANIM_ATTACKER, 19, 32, 16, 1 loopsewithpan SE_W109, 192, 21, 2 @@ -2966,7 +2957,7 @@ Move_KINESIS:: @ 81CAC19 delay 70 playsewithpan SE_W207B, 192 waitforvisualfinish - call gUnknown_81D59C7 + call UnsetPsychicBg end Move_GLARE:: @ 81CAC6A @@ -2982,7 +2973,7 @@ Move_GLARE:: @ 81CAC6A createvisualtask AnimTask_ScaryFace, 5, playsewithpan SE_W043, 192 delay 2 - createvisualtask sub_80ADAD8, 3, 20, 1, 0 + createvisualtask AnimTask_ShakeTargetInPattern, 3, 20, 1, 0 waitforvisualfinish createvisualtask AnimTask_BlendSelected, 5, 1, 0, 16, 0, RGB_BLACK end @@ -2992,31 +2983,30 @@ Move_BARRAGE:: @ 81CACD3 createvisualtask AnimTask_BarrageBall, 3, playsewithpan SE_W207, 192 delay 24 - createsprite gUnknown_83E7B88, ANIM_ATTACKER, 2, 8, 1, 40, 1 + createsprite gShakeMonOrTerrainSpriteTemplate, ANIM_ATTACKER, 2, 8, 1, 40, 1 createvisualtask AnimTask_ShakeMon, 3, 1, 0, 4, 20, 1 createvisualtask AnimTask_ShakeMon, 3, 3, 0, 4, 20, 1 loopsewithpan SE_W070, 63, 8, 2 end Move_SKY_ATTACK:: @ 81CAD1B - choosetwoturnanim gUnknown_81CAD25, gUnknown_81CAE2E - -gUnknown_81CAD24:: @ 81CAD24 + choosetwoturnanim SkyAttackSetUp, SkyAttackUnleash +SkyAttackEnd:: @ 81CAD24 end -gUnknown_81CAD25:: @ 81CAD25 - monbg 3 +SkyAttackSetUp:: @ 81CAD25 + monbg ANIM_DEF_PARTNER setalpha 12, 11 createvisualtask AnimTask_GetTargetIsAttackerPartner, 5, 7 - jumpargeq 7, 0, gUnknown_81CAD40 - goto gUnknown_81CADB7 + jumpargeq 7, 0, SkyAttackSetUpAgainstOpponent + goto SkyAttackSetUpAgainstPartner -gUnknown_81CAD40:: @ 81CAD40 +SkyAttackSetUpAgainstOpponent:: @ 81CAD40 createvisualtask AnimTask_BlendSelected, 10, 27, 1, 0, 12, RGB_BLACK waitforvisualfinish delay 12 createvisualtask AnimTask_BlendSelected, 10, 2, 1, 8, 0, RGB_BLACK - createvisualtask sub_80B94B4, 5, 0, 2, 16 + createvisualtask AnimTask_HorizontalShake, 5, 0, 2, 16 loopsewithpan SE_W287, 192, 4, 8 createvisualtask AnimTask_BlendSelected, 10, 2, 1, 0, 15, RGB_WHITE delay 20 @@ -3024,16 +3014,16 @@ gUnknown_81CAD40:: @ 81CAD40 waitforvisualfinish createvisualtask AnimTask_BlendSelected, 10, 25, 1, 8, 0, RGB_BLACK waitforvisualfinish - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER blendoff - goto gUnknown_81CAD24 + goto SkyAttackEnd -gUnknown_81CADB7:: @ 81CADB7 +SkyAttackSetUpAgainstPartner:: @ 81CADB7 createvisualtask AnimTask_BlendExcept, 10, 1, 1, 0, 12, 0 waitforvisualfinish delay 12 createvisualtask AnimTask_BlendSelected, 10, 2, 1, 8, 0, RGB_BLACK - createvisualtask sub_80B94B4, 5, 0, 2, 16 + createvisualtask AnimTask_HorizontalShake, 5, 0, 2, 16 playsewithpan SE_W287, 192 delay 8 createvisualtask AnimTask_BlendSelected, 10, 2, 1, 0, 15, RGB_WHITE @@ -3042,36 +3032,36 @@ gUnknown_81CADB7:: @ 81CADB7 waitforvisualfinish createvisualtask AnimTask_BlendExcept, 10, 4, 1, 8, 0, 0 waitforvisualfinish - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER blendoff - goto gUnknown_81CAD24 + goto SkyAttackEnd -gUnknown_81CAE2E:: @ 81CAE2E +SkyAttackUnleash:: @ 81CAE2E loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_BIRD - call gUnknown_81D59CF - monbg 0 + call SetSkyBg + monbg ANIM_ATTACKER createvisualtask AnimTask_BlendSelected, 10, 2, 0, 0, 16, RGB_WHITE delay 4 - createvisualtask sub_80B78E0, 5, 0 + createvisualtask AnimTask_AttackerFadeToInvisible, 5, 0 waitforvisualfinish - createvisualtask sub_80DD410, 5, 231, -64 - createsprite gUnknown_83E6DB4, ANIM_TARGET, 2, + createvisualtask SoundTask_PlaySE2WithPanning, 5, 231, -64 + createsprite gSkyAttackBirdSpriteTemplate, ANIM_TARGET, 2 delay 14 createvisualtask AnimTask_ShakeMon2, 2, 1, 10, 0, 18, 1 - createvisualtask sub_80DD3DC, 5, 134, 63 + createvisualtask SoundTask_PlaySE1WithPanning, 5, 134, 63 delay 20 - createvisualtask sub_80B79DC, 5, 1 + createvisualtask AnimTask_AttackerFadeFromInvisible, 5, 1 delay 2 createvisualtask AnimTask_BlendSelected, 10, 2, 0, 15, 0, RGB_WHITE waitforvisualfinish - clearmonbg 0 - call gUnknown_81D59FF - goto gUnknown_81CAD24 + clearmonbg ANIM_ATTACKER + call UnsetSkyBg + goto SkyAttackEnd Move_FLASH:: @ 81CAEB3 playsewithpan SE_W043, 192 - createvisualtask sub_80BB660, 2, + createvisualtask AnimTask_Flash, 2 waitforvisualfinish end @@ -3083,13 +3073,13 @@ Move_SPLASH:: @ 81CAEC0 end Move_ACID_ARMOR:: @ 81CAED5 - monbg 0 + monbg ANIM_ATTACKER setalpha 15, 0 createvisualtask AnimTask_AcidArmor, 2, 0 playsewithpan SE_W151, 192 waitforvisualfinish blendoff - clearmonbg 0 + clearmonbg ANIM_ATTACKER delay 1 end @@ -3151,7 +3141,7 @@ Move_STRUGGLE:: @ 81CAFB5 Move_SKETCH:: @ 81CB01B loadspritegfx ANIM_TAG_PENCIL monbg 1 - createvisualtask sub_80A8874, 2, + createvisualtask AnimTask_SketchDrawMon, 2 createsprite gPencilSpriteTemplate, ANIM_TARGET, 2, waitforvisualfinish clearmonbg 1 @@ -3162,18 +3152,18 @@ Move_SKETCH:: @ 81CB01B Move_NIGHTMARE:: @ 81CB043 fadetobg 2 waitbgfadein - jumpifcontest gUnknown_81CB06F - monbg 3 - createvisualtask sub_80B58AC, 2, + jumpifcontest NightmareInContest + monbg ANIM_DEF_PARTNER + createvisualtask AnimTask_NightmareClone, 2 createvisualtask AnimTask_ShakeMon, 2, 1, 3, 0, 40, 1 playsewithpan SE_W171, 63 waitforvisualfinish - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER restorebg waitbgfadein end -gUnknown_81CB06F:: @ 81CB06F +NightmareInContest:: @ 81CB06F createvisualtask AnimTask_BlendMonInAndOut, 2, 0, RGB_WHITE, 10, 2, 1 createvisualtask AnimTask_ShakeMon, 2, 0, 3, 0, 32, 1 playsewithpan SE_W171, 63 @@ -3189,8 +3179,8 @@ Move_FLAIL:: @ 81CB099 createvisualtask AnimTask_FlailMovement, 2, 0 loopsewithpan SE_W029, 192, 8, 2 waitforvisualfinish - createsprite gUnknown_83E7C50, ANIM_TARGET, 3, 1, 3 - createvisualtask sub_8099BD4, 2, 0, 1, 30, 1, 0 + createsprite gRandomPosHitSplatSpriteTemplate, ANIM_TARGET, 3, 1, 3 + createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 2, 0, 1, 30, 1, 0 playsewithpan SE_W025B, 63 waitforvisualfinish clearmonbg 1 @@ -3201,9 +3191,9 @@ Move_SPITE:: @ 81CB0D6 fadetobg 2 playsewithpan SE_W060, 192 waitbgfadein - monbg 3 + monbg ANIM_DEF_PARTNER createvisualtask AnimTask_CurseBlendEffect, 2, 2, 2, 6, 0, 8, RGB_WHITE - createvisualtask sub_80B5AAC, 2, + createvisualtask AnimTask_SpiteTargetShadow, 2 loopsewithpan SE_W060, 63, 20, 3 waitforvisualfinish restorebg @@ -3214,18 +3204,18 @@ Move_SPITE:: @ 81CB0D6 Move_MACH_PUNCH:: @ 81CB105 loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_HANDS_AND_FEET - monbg 2 + monbg ANIM_ATK_PARTNER createvisualtask AnimTask_GetAttackerSide, 2, - jumpargeq 7, 1, gUnknown_81CB186 - fadetobg 9 + jumpargeq 7, 1, MachPunchOnPlayer + fadetobg BG_HIGHSPEED_OPPONENT -gUnknown_81CB11E:: @ 81CB11E +MachPunchContinue:: @ 81CB11E waitbgfadeout - createvisualtask sub_80BB82C, 5, -2304, 0, 1, -1 + createvisualtask AnimTask_StartSlidingBg, 5, -2304, 0, 1, -1 waitbgfadein delay 0 setalpha 9, 8 - createvisualtask sub_8077030, 2, 28968, 10 + createvisualtask AnimTask_AttackerPunchWithTrace, 2, 28968, 10 playsewithpan SE_W026, 192 delay 6 createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, 1, 1 @@ -3233,7 +3223,7 @@ gUnknown_81CB11E:: @ 81CB11E playsewithpan SE_W004, 63 createvisualtask AnimTask_ShakeMon, 2, 1, 3, 0, 6, 1 waitforvisualfinish - clearmonbg 2 + clearmonbg ANIM_ATK_PARTNER blendoff restorebg waitbgfadeout @@ -3241,13 +3231,13 @@ gUnknown_81CB11E:: @ 81CB11E waitbgfadein end -gUnknown_81CB186:: @ 81CB186 - fadetobg 10 - goto gUnknown_81CB11E +MachPunchOnPlayer:: @ 81CB186 + fadetobg BG_HIGHSPEED_PLAYER + goto MachPunchContinue Move_FORESIGHT:: @ 81CB18D loadspritegfx ANIM_TAG_MAGNIFYING_GLASS - monbg 3 + monbg ANIM_DEF_PARTNER monbgprio_28 1 setalpha 16, 0 createsprite gForesightMagnifyingGlassSpriteTemplate, ANIM_TARGET, 2, 1 @@ -3261,7 +3251,7 @@ Move_FORESIGHT:: @ 81CB18D playsewithpan SE_W197, 63 waitforvisualfinish blendoff - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER end Move_DESTINY_BOND:: @ 81CB1CC @@ -3269,7 +3259,7 @@ Move_DESTINY_BOND:: @ 81CB1CC fadetobg 2 playsewithpan SE_W060, 192 waitbgfadein - createvisualtask sub_80B6020, 5, 0, 48 + createvisualtask AnimTask_DestinyBondWhiteShadow, 5, 0, 48 playsewithpan SE_W109, 192 delay 48 createvisualtask AnimTask_ShakeMonInPlace, 2, 0, 2, 0, 24, 1 @@ -3287,17 +3277,17 @@ Move_DESTINY_BOND:: @ 81CB1CC Move_ENDURE:: @ 81CB227 loadspritegfx ANIM_TAG_FOCUS_ENERGY playsewithpan SE_W082, 192 - call gUnknown_81CB267 + call EndureEffect delay 8 createvisualtask AnimTask_CurseBlendEffect, 2, 2, 2, 2, 0, 11, 31 createvisualtask AnimTask_ShakeMon2, 2, 0, 1, 0, 32, 1 - call gUnknown_81CB267 + call EndureEffect delay 8 - call gUnknown_81CB267 + call EndureEffect waitforvisualfinish end -gUnknown_81CB267:: @ 81CB267 +EndureEffect:: @ 81CB267 createsprite gEndureEnergySpriteTemplate, ANIM_ATTACKER, 2, 0, -24, 26, 2 delay 4 createsprite gEndureEnergySpriteTemplate, ANIM_ATTACKER, 2, 0, 14, 28, 1 @@ -3327,16 +3317,16 @@ Move_ROLLOUT:: @ 81CB2FE loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_MUD_SAND loadspritegfx ANIM_TAG_ROCKS - monbg 3 + monbg ANIM_DEF_PARTNER monbgprio_28 1 setalpha 12, 8 - createvisualtask sub_80B4BD0, 2, + createvisualtask AnimTask_Rollout, 2 waitforvisualfinish - createvisualtask sub_8099BD4, 2, 0, 1, 30, 1, 0 + createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 2, 0, 1, 30, 1, 0 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 4, 0, 0, 1, 2 playsewithpan SE_W025B, 63 waitforvisualfinish - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER blendoff end @@ -3402,52 +3392,51 @@ Move_MILK_DRINK:: @ 81CB40E playsewithpan SE_W208, 192 waitforvisualfinish clearmonbg 1 - call gUnknown_81D5712 + call HealingEffect2 waitforvisualfinish end Move_MAGNITUDE:: @ 81CB450 createvisualtask AnimTask_IsPowerOver99, 2, waitforvisualfinish - jumpargeq 15, 0, gUnknown_81CB469 - jumpargeq 15, 1, gUnknown_81CB48E - -gUnknown_81CB468:: @ 81CB468 + jumpargeq 15, 0, MagnitudeRegular + jumpargeq 15, 1, MagnitudeIntense +MagnitudeEnd:: @ 81CB468 end -gUnknown_81CB469:: @ 81CB469 - createvisualtask sub_80B94B4, 5, 5, 0, 50 - createvisualtask sub_80B94B4, 5, 4, 0, 50 +MagnitudeRegular:: @ 81CB469 + createvisualtask AnimTask_HorizontalShake, 5, 5, 0, 50 + createvisualtask AnimTask_HorizontalShake, 5, 4, 0, 50 loopsewithpan SE_W070, 63, 8, 10 - goto gUnknown_81CB468 + goto MagnitudeEnd -gUnknown_81CB48E:: @ 81CB48E - createvisualtask sub_80B94B4, 5, 5, 0, 50 - createvisualtask sub_80B94B4, 5, 4, 0, 50 +MagnitudeIntense:: @ 81CB48E + createvisualtask AnimTask_HorizontalShake, 5, 5, 0, 50 + createvisualtask AnimTask_HorizontalShake, 5, 4, 0, 50 loopsewithpan SE_W070, 63, 8, 10 delay 10 createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 1, 0, 14, RGB_WHITE, 14 delay 16 createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 1, 0, 14, RGB_WHITE, 14 - goto gUnknown_81CB468 + goto MagnitudeEnd Move_RAPID_SPIN:: @ 81CB4E1 loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_RAPID_SPIN - monbg 0 + monbg ANIM_ATTACKER createsprite gRapidSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 32, -32, 40, -2 createvisualtask AnimTask_RapinSpinMonElevation, 2, 0, 2, 0 loopsewithpan SE_W013B, 192, 8, 4 waitforvisualfinish createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, 1, 2 - createvisualtask sub_8099BD4, 2, 0, 1, 10, 1, 0 + createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 2, 0, 1, 10, 1, 0 playsewithpan SE_W003, 63 waitforvisualfinish delay 8 createvisualtask AnimTask_RapinSpinMonElevation, 2, 0, 2, 1 loopsewithpan SE_W013B, 192, 8, 4 waitforvisualfinish - clearmonbg 0 + clearmonbg ANIM_ATTACKER end Move_MOONLIGHT:: @ 81CB54E @@ -3458,7 +3447,7 @@ Move_MOONLIGHT:: @ 81CB54E createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 0, 16, 0 waitforvisualfinish createsprite gMoonSpriteTemplate, ANIM_ATTACKER, 2, 120, 56 - createvisualtask sub_8076048, 3, 0, 16, 16, 0, 1 + createvisualtask AnimTask_AlphaFadeIn, 3, 0, 16, 16, 0, 1 playsewithpan SE_W236, 0 delay 30 createsprite gMoonlightSparkleSpriteTemplate, ANIM_ATTACKER, 40, -12, 0 @@ -3473,7 +3462,7 @@ Move_MOONLIGHT:: @ 81CB54E delay 20 createvisualtask AnimTask_FadeScreenBlue, 2, waitforvisualfinish - call gUnknown_81D56C9 + call HealingEffect waitforvisualfinish end @@ -3481,31 +3470,31 @@ Move_EXTREME_SPEED:: @ 81CB5DE loadspritegfx ANIM_TAG_SPEED_DUST loadspritegfx ANIM_TAG_IMPACT createvisualtask AnimTask_GetAttackerSide, 2, - jumpargeq 7, 1, gUnknown_81CB695 - fadetobg 9 + jumpargeq 7, 1, ExtremeSpeedOnPlayer + fadetobg BG_HIGHSPEED_OPPONENT -gUnknown_81CB5F5:: @ 81CB5F5 +ExtremeSpeedContinue:: @ 81CB5F5 waitbgfadeout - createvisualtask sub_80BB82C, 5, -2304, 0, 1, -1 + createvisualtask AnimTask_StartSlidingBg, 5, -2304, 0, 1, -1 waitbgfadein - createvisualtask AnimTask_StretchAttacker, 2, + createvisualtask AnimTask_StretchAttacker, 2 loopsewithpan SE_W013B, 192, 8, 3 waitforvisualfinish delay 1 - createvisualtask sub_80BC12C, 2, - monbg 1 + createvisualtask AnimTask_SetAttackerInvisibleWaitForSignal, 2 + monbg ANIM_TARGET setalpha 12, 8 delay 18 createvisualtask AnimTask_ExtremeSpeedImpact, 2, delay 2 playsewithpan SE_W004, 63 - createsprite gUnknown_83E7C68, ANIM_TARGET, 2, 1, 0, -12, 3 + createsprite gMonEdgeHitSplatSpriteTemplate, ANIM_TARGET, 2, 1, 0, -12, 3 delay 10 playsewithpan SE_W004, 63 - createsprite gUnknown_83E7C68, ANIM_TARGET, 2, 1, 0, 12, 3 + createsprite gMonEdgeHitSplatSpriteTemplate, ANIM_TARGET, 2, 1, 0, 12, 3 delay 10 playsewithpan SE_W233B, 63 - createsprite gUnknown_83E7C68, ANIM_TARGET, 2, 1, 0, 0, 3 + createsprite gMonEdgeHitSplatSpriteTemplate, ANIM_TARGET, 2, 1, 0, 0, 3 waitforvisualfinish createvisualtask AnimTask_SpeedDust, 2, delay 10 @@ -3523,14 +3512,14 @@ gUnknown_81CB5F5:: @ 81CB5F5 delay 1 end -gUnknown_81CB695:: @ 81CB695 - fadetobg 10 - goto gUnknown_81CB5F5 +ExtremeSpeedOnPlayer:: @ 81CB695 + fadetobg BG_HIGHSPEED_PLAYER + goto ExtremeSpeedContinue Move_UPROAR:: @ 81CB69C loadspritegfx ANIM_TAG_JAGGED_MUSIC_NOTE loadspritegfx ANIM_TAG_THIN_RING - monbg 3 + monbg ANIM_DEF_PARTNER createvisualtask AnimTask_UproarDistortion, 2, 0 createsprite gUproarRingSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 0, 0, 31, 8 playsewithpan SE_W253, 192 @@ -3549,7 +3538,7 @@ Move_UPROAR:: @ 81CB69C createsprite gJaggedMusicNoteSpriteTemplate, ANIM_ATTACKER, 2, 0, 24, -24, 1 createsprite gJaggedMusicNoteSpriteTemplate, ANIM_ATTACKER, 2, 0, -24, -24, 0 waitforvisualfinish - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER end Move_HEAT_WAVE:: @ 81CB766 @@ -3559,21 +3548,21 @@ Move_HEAT_WAVE:: @ 81CB766 createvisualtask AnimTask_BlendBackground, 6, 6, 31 panse_1B SE_W257, 192, 63, 2, 0 delay 4 - createvisualtask sub_80AD800, 5, + createvisualtask AnimTask_MoveHeatWaveTargets, 5 delay 12 - createsprite gUnknown_83E7450, ANIM_ATTACKER, 40, 10, 2304, 96, 1 + createsprite gFlyingSandCrescentSpriteTemplate, ANIM_ATTACKER, 40, 10, 2304, 96, 1 delay 10 - createsprite gUnknown_83E7450, ANIM_ATTACKER, 40, 90, 2048, 96, 1 + createsprite gFlyingSandCrescentSpriteTemplate, ANIM_ATTACKER, 40, 90, 2048, 96, 1 delay 10 - createsprite gUnknown_83E7450, ANIM_ATTACKER, 40, 50, 2560, 96, 1 + createsprite gFlyingSandCrescentSpriteTemplate, ANIM_ATTACKER, 40, 50, 2560, 96, 1 delay 10 - createsprite gUnknown_83E7450, ANIM_ATTACKER, 40, 20, 2304, 96, 1 + createsprite gFlyingSandCrescentSpriteTemplate, ANIM_ATTACKER, 40, 20, 2304, 96, 1 delay 10 - createsprite gUnknown_83E7450, ANIM_ATTACKER, 40, 70, 1984, 96, 1 + createsprite gFlyingSandCrescentSpriteTemplate, ANIM_ATTACKER, 40, 70, 1984, 96, 1 delay 10 - createsprite gUnknown_83E7450, ANIM_ATTACKER, 40, 0, 2816, 96, 1 + createsprite gFlyingSandCrescentSpriteTemplate, ANIM_ATTACKER, 40, 0, 2816, 96, 1 delay 10 - createsprite gUnknown_83E7450, ANIM_ATTACKER, 40, 60, 2560, 96, 1 + createsprite gFlyingSandCrescentSpriteTemplate, ANIM_ATTACKER, 40, 60, 2560, 96, 1 end Move_HAIL:: @ 81CB816 @@ -3603,9 +3592,9 @@ Move_TORMENT:: @ 81CB84E Move_MEMENTO:: @ 81CB892 setalpha 0, 16 delay 1 - createvisualtask sub_80B85B8, 2, + createvisualtask AnimTask_InitMementoShadow, 2 delay 1 - createvisualtask sub_80B7DA4, 5, + createvisualtask AnimTask_MoveAttackerMementoShadow, 5 playsewithpan SE_W060, 192 delay 48 playsewithpan SE_W060B, 192 @@ -3615,7 +3604,7 @@ Move_MEMENTO:: @ 81CB892 setalpha 0, 16 delay 1 monbg_22 1 - createvisualtask sub_80B8070, 5, + createvisualtask AnimTask_MoveTargetMementoShadow, 5 playsewithpan SE_W060, 63 waitforvisualfinish clearmonbg_23 1 @@ -3660,17 +3649,17 @@ Move_CHARGE:: @ 81CB970 loadspritegfx ANIM_TAG_ELECTRIC_ORBS loadspritegfx ANIM_TAG_CIRCLE_OF_LIGHT loadspritegfx ANIM_TAG_ELECTRICITY - monbg 0 + monbg ANIM_ATTACKER setalpha 12, 8 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 2, 0, 4, 0 waitforvisualfinish - createvisualtask sub_80AE540, 2, 0, 60, 2, 12 + createvisualtask AnimTask_ElectricChargingParticles, 2, 0, 60, 2, 12 playsewithpan SE_W268, 192 delay 30 playsewithpan SE_W268, 192 delay 30 playsewithpan SE_W268, 192 - createsprite gUnknown_83E61D4, ANIM_ATTACKER, 2, 0 + createsprite gGrowingChargeOrbSpriteTemplate, ANIM_ATTACKER, 2, 0 delay 25 playsewithpan SE_W268, 192 delay 20 @@ -3681,13 +3670,13 @@ Move_CHARGE:: @ 81CB970 delay 6 loopsewithpan SE_W268, 192, 6, 5 waitforvisualfinish - createsprite gUnknown_83E6204, ANIM_ATTACKER, 2, 0, 16, 16 + createsprite gElectricPuffSpriteTemplate, ANIM_ATTACKER, 2, 0, 16, 16 delay 2 - createsprite gUnknown_83E6204, ANIM_ATTACKER, 2, 0, -16, -16 + createsprite gElectricPuffSpriteTemplate, ANIM_ATTACKER, 2, 0, -16, -16 playsewithpan SE_W085B, 192 waitforvisualfinish createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 4, 4, 0, 0 - clearmonbg 0 + clearmonbg ANIM_ATTACKER blendoff end @@ -3749,39 +3738,39 @@ Move_SUPERPOWER:: @ 81CBB43 loadspritegfx ANIM_TAG_CIRCLE_OF_LIGHT loadspritegfx ANIM_TAG_METEOR loadspritegfx ANIM_TAG_FLAT_ROCK - monbg 2 + monbg ANIM_ATK_PARTNER monbgprio_28 0 setalpha 12, 8 - createsprite gUnknown_83E6864, ANIM_TARGET, 2, 0 + createsprite gSuperpowerOrbSpriteTemplate, ANIM_TARGET, 2, 0 playsewithpan SE_W025, 192 delay 20 - createsprite gUnknown_83E7B88, ANIM_ATTACKER, 2, 4, 1, 180, 1 - createvisualtask sub_80DD410, 5, 227, 0 + createsprite gShakeMonOrTerrainSpriteTemplate, ANIM_ATTACKER, 2, 4, 1, 180, 1 + createvisualtask SoundTask_PlaySE2WithPanning, 5, 227, 0 delay 40 - createsprite gUnknown_83E687C, ANIM_ATTACKER, 41, 200, 96, 1, 120 + createsprite gSuperpowerRockSpriteTemplate, ANIM_ATTACKER, 41, 200, 96, 1, 120 delay 8 - createsprite gUnknown_83E687C, ANIM_ATTACKER, 41, 20, 248, 4, 112 + createsprite gSuperpowerRockSpriteTemplate, ANIM_ATTACKER, 41, 20, 248, 4, 112 delay 8 - createsprite gUnknown_83E687C, ANIM_ATTACKER, 41, 130, 160, 2, 104 + createsprite gSuperpowerRockSpriteTemplate, ANIM_ATTACKER, 41, 130, 160, 2, 104 delay 8 - createsprite gUnknown_83E687C, ANIM_ATTACKER, 41, 160, 192, 0, 96 + createsprite gSuperpowerRockSpriteTemplate, ANIM_ATTACKER, 41, 160, 192, 0, 96 delay 8 - createsprite gUnknown_83E687C, ANIM_ATTACKER, 41, 60, 288, 3, 88 + createsprite gSuperpowerRockSpriteTemplate, ANIM_ATTACKER, 41, 60, 288, 3, 88 delay 74 - createsprite gUnknown_83E6894, ANIM_TARGET, 3, 0 + createsprite gSuperpowerFireballSpriteTemplate, ANIM_TARGET, 3, 0 playsewithpan SE_W207, 192 delay 16 createvisualtask AnimTask_ShakeMon2, 2, 1, 8, 0, 16, 1 playsewithpan SE_W025B, 63 waitforvisualfinish - clearmonbg 2 + clearmonbg ANIM_ATK_PARTNER blendoff delay 1 end Move_RECYCLE:: @ 81CBBFE loadspritegfx ANIM_TAG_RECYCLE - monbg 0 + monbg ANIM_ATTACKER setalpha 0, 16 delay 1 createsprite gRecycleSpriteTemplate, ANIM_ATTACKER, 2, @@ -3791,7 +3780,7 @@ Move_RECYCLE:: @ 81CBBFE playsewithpan SE_W036, 192 waitforvisualfinish blendoff - clearmonbg 0 + clearmonbg ANIM_ATTACKER delay 1 end @@ -3800,9 +3789,9 @@ Move_BRICK_BREAK:: @ 81CBC32 loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_HANDS_AND_FEET loadspritegfx ANIM_TAG_TORN_METAL - choosetwoturnanim gUnknown_81CBC47, gUnknown_81CBD16 + choosetwoturnanim BrickBreakNormal, BrickBreakShatteredWall -gUnknown_81CBC47:: @ 81CBC47 +BrickBreakNormal:: @ 81CBC47 monbg 1 setalpha 12, 8 createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 3, 8 @@ -3830,12 +3819,12 @@ gUnknown_81CBC47:: @ 81CBC47 clearmonbg 1 end -gUnknown_81CBD16:: @ 81CBD16 +BrickBreakShatteredWall:: @ 81CBD16 monbg 1 setalpha 12, 8 createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 3, 8 delay 4 - createsprite gUnknown_83E6808, ANIM_ATTACKER, 3, 1, 0, 0, 90, 10 + createsprite gBrickBreakWallSpriteTemplate, ANIM_ATTACKER, 3, 1, 0, 0, 90, 10 delay 1 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, -18, -18, 1, 1 createsprite gFistFootSpriteTemplate, ANIM_ATTACKER, 2, -18, -18, 10, 1, 0 @@ -3854,10 +3843,10 @@ gUnknown_81CBD16:: @ 81CBD16 createsprite gFistFootSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 10, 1, 0 playsewithpan SE_W233B, 63 waitforvisualfinish - createsprite gUnknown_83E6820, ANIM_ATTACKER, 2, 1, 0, -8, -12 - createsprite gUnknown_83E6820, ANIM_ATTACKER, 2, 1, 1, 8, -12 - createsprite gUnknown_83E6820, ANIM_ATTACKER, 2, 1, 2, -8, 12 - createsprite gUnknown_83E6820, ANIM_ATTACKER, 2, 1, 3, 8, 12 + createsprite gBrickBreakWallShardSpriteTemplate, ANIM_ATTACKER, 2, 1, 0, -8, -12 + createsprite gBrickBreakWallShardSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 8, -12 + createsprite gBrickBreakWallShardSpriteTemplate, ANIM_ATTACKER, 2, 1, 2, -8, 12 + createsprite gBrickBreakWallShardSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 8, 12 playsewithpan SE_W280, 63 waitforvisualfinish createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 2, 6, 0, 0 @@ -3888,11 +3877,11 @@ Move_ENDEAVOR:: @ 81CBE7A loopsewithpan SE_W039, 192, 24, 2 createvisualtask AnimTask_BlendMonInAndOut, 5, 0, 703, 12, 1, 2 delay 6 - createvisualtask sub_8099BD4, 5, 0, 1, 8, 1, 0 + createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 5, 0, 1, 8, 1, 0 createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, 12, -12, 1, 2 playsewithpan SE_W003, 63 delay 24 - createvisualtask sub_8099BD4, 5, 0, 1, 8, 1, 0 + createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 5, 0, 1, 8, 1, 0 createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, -12, 12, 1, 2 playsewithpan SE_W004, 63 end @@ -3901,22 +3890,22 @@ Move_ERUPTION:: @ 81CBEEF loadspritegfx ANIM_TAG_WARM_ROCK createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 2, 0, 4, 31 waitforvisualfinish - createvisualtask sub_80ACEA4, 2, + createvisualtask AnimTask_EruptionLaunchRocks, 2 waitplaysewithpan SE_W153, 192, 60 waitforvisualfinish - createvisualtask sub_80ACEA4, 2, + createvisualtask AnimTask_EruptionLaunchRocks, 2 waitplaysewithpan SE_W153, 192, 60 waitforvisualfinish delay 30 - createsprite gUnknown_83E5E60, ANIM_ATTACKER, 40, 200, -32, 0, 100, 0 - createsprite gUnknown_83E5E60, ANIM_ATTACKER, 40, 30, -32, 16, 90, 1 - createsprite gUnknown_83E5E60, ANIM_ATTACKER, 40, 150, -32, 32, 60, 2 - createsprite gUnknown_83E5E60, ANIM_ATTACKER, 40, 90, -32, 48, 80, 3 - createsprite gUnknown_83E5E60, ANIM_ATTACKER, 40, 110, -32, 64, 50, 0 - createsprite gUnknown_83E5E60, ANIM_ATTACKER, 40, 60, -32, 80, 70, 1 + createsprite gEruptionFallingRockSpriteTemplate, ANIM_ATTACKER, 40, 200, -32, 0, 100, 0 + createsprite gEruptionFallingRockSpriteTemplate, ANIM_ATTACKER, 40, 30, -32, 16, 90, 1 + createsprite gEruptionFallingRockSpriteTemplate, ANIM_ATTACKER, 40, 150, -32, 32, 60, 2 + createsprite gEruptionFallingRockSpriteTemplate, ANIM_ATTACKER, 40, 90, -32, 48, 80, 3 + createsprite gEruptionFallingRockSpriteTemplate, ANIM_ATTACKER, 40, 110, -32, 64, 50, 0 + createsprite gEruptionFallingRockSpriteTemplate, ANIM_ATTACKER, 40, 60, -32, 80, 70, 1 delay 22 - createvisualtask sub_80B94B4, 5, 5, 8, 60 - createvisualtask sub_80B94B4, 5, 4, 8, 60 + createvisualtask AnimTask_HorizontalShake, 5, 5, 8, 60 + createvisualtask AnimTask_HorizontalShake, 5, 4, 8, 60 loopsewithpan SE_W088, 63, 16, 12 delay 80 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 40, 31, 4, 4, 0, 31 @@ -3924,42 +3913,42 @@ Move_ERUPTION:: @ 81CBEEF Move_SKILL_SWAP:: @ 81CBFBC loadspritegfx ANIM_TAG_BLUEGREEN_ORB - call gUnknown_81D59BB - createvisualtask sub_80B3834, 3, 1 + call SetPsychicBackground + createvisualtask AnimTask_SkillSwap, 3, 1 createvisualtask AnimTask_BlendMonInAndOut, 5, 1, RGB_WHITE, 12, 3, 1 loopsewithpan SE_W179, 192, 24, 3 delay 16 - createvisualtask sub_80B3834, 3, 0 + createvisualtask AnimTask_SkillSwap, 3, 0 createvisualtask AnimTask_BlendMonInAndOut, 5, 0, RGB_WHITE, 12, 3, 1 waitforvisualfinish - call gUnknown_81D59C7 + call UnsetPsychicBg end Move_IMPRISON:: @ 81CC007 loadspritegfx ANIM_TAG_HOLLOW_ORB loadspritegfx ANIM_TAG_X_SIGN - call gUnknown_81D59BB - monbg 3 - createvisualtask sub_80B3584, 5, + call SetPsychicBackground + monbg ANIM_DEF_PARTNER + createvisualtask AnimTask_ImprisonOrbs, 5 delay 8 loopsewithpan SE_W030, 192, 8, 5 waitforvisualfinish delay 4 - createsprite gUnknown_83E705C, ANIM_ATTACKER, 5, 0, 40 - createvisualtask sub_80B94B4, 5, 4, 1, 10 + createsprite gRedXSpriteTemplate, ANIM_ATTACKER, 5, 0, 40 + createvisualtask AnimTask_HorizontalShake, 5, 4, 1, 10 playsewithpan SE_W063, 192 - clearmonbg 3 - call gUnknown_81D59C7 + clearmonbg ANIM_DEF_PARTNER + call UnsetPsychicBg end Move_GRUDGE:: @ 81CC04A loadspritegfx ANIM_TAG_PURPLE_FLAME - monbg 0 + monbg ANIM_ATTACKER monbgprio_29 fadetobg 2 playsewithpan SE_W060, 192 waitbgfadein - createvisualtask sub_80B68C8, 3, + createvisualtask AnimTask_GrudgeFlames, 3 loopsewithpan SE_W052, 192, 16, 4 delay 10 delay 80 @@ -3967,39 +3956,39 @@ Move_GRUDGE:: @ 81CC04A waitforvisualfinish restorebg waitbgfadein - clearmonbg 0 + clearmonbg ANIM_ATTACKER end Move_CAMOUFLAGE:: @ 81CC072 - monbg 2 + monbg ANIM_ATK_PARTNER monbgprio_28 0 setalpha 16, 0 createvisualtask AnimTask_SetCamouflageBlend, 5, 2, 3, 0, 14 delay 16 - createvisualtask sub_80B78E0, 2, 4 + createvisualtask AnimTask_AttackerFadeToInvisible, 2, 4 playsewithpan SE_W185, 192 waitforvisualfinish delay 8 createvisualtask AnimTask_SetCamouflageBlend, 5, 2, 0, 0, 0 waitforvisualfinish - createvisualtask sub_80B79DC, 2, 1 + createvisualtask AnimTask_AttackerFadeFromInvisible, 2, 1 waitforvisualfinish blendoff - clearmonbg 2 + clearmonbg ANIM_ATK_PARTNER end Move_TAIL_GLOW:: @ 81CC0B8 loadspritegfx ANIM_TAG_CIRCLE_OF_LIGHT - monbg 0 + monbg ANIM_ATTACKER setalpha 12, 8 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 2, 0, 4, 0 waitforvisualfinish - createsprite gUnknown_83E7378, ANIM_ATTACKER, 66, 0 + createsprite gTailGlowOrbSpriteTemplate, ANIM_ATTACKER, 66, 0 delay 18 loopsewithpan SE_W234, 192, 16, 6 waitforvisualfinish createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 4, 4, 0, 0 - clearmonbg 0 + clearmonbg ANIM_ATTACKER blendoff delay 1 end @@ -4011,40 +4000,40 @@ Move_LUSTER_PURGE:: @ 81CC0FB waitbgfadeout createvisualtask AnimTask_FadeScreenToWhite, 5, waitbgfadein - monbg 0 + monbg ANIM_ATTACKER setalpha 12, 8 playsewithpan SE_W076, 192 - createsprite gUnknown_83E7148, ANIM_ATTACKER, 41, 0, 0, 0, 0 + createsprite gLusterPurgeCircleSpriteTemplate, ANIM_ATTACKER, 41, 0, 0, 0, 0 delay 20 createvisualtask AnimTask_BlendExcept, 5, 5, 2, 0, 16, -1 createvisualtask AnimTask_BlendParticle, 5, 10267, 2, 0, 16, -1 waitforvisualfinish createvisualtask AnimTask_BlendParticle, 5, 10135, 0, 12, 12, 23552 waitforvisualfinish - createsprite gUnknown_83E7C50, ANIM_TARGET, 3, 1, 2 - createvisualtask sub_80DD3DC, 5, 208, 63 + createsprite gRandomPosHitSplatSpriteTemplate, ANIM_TARGET, 3, 1, 2 + createvisualtask SoundTask_PlaySE1WithPanning, 5, 208, 63 delay 3 - createsprite gUnknown_83E7C50, ANIM_TARGET, 3, 1, 2 - createvisualtask sub_80DD3DC, 5, 208, 63 + createsprite gRandomPosHitSplatSpriteTemplate, ANIM_TARGET, 3, 1, 2 + createvisualtask SoundTask_PlaySE1WithPanning, 5, 208, 63 delay 3 - createsprite gUnknown_83E7C50, ANIM_TARGET, 3, 1, 2 - createvisualtask sub_80DD3DC, 5, 208, 63 + createsprite gRandomPosHitSplatSpriteTemplate, ANIM_TARGET, 3, 1, 2 + createvisualtask SoundTask_PlaySE1WithPanning, 5, 208, 63 delay 3 - createsprite gUnknown_83E7C50, ANIM_TARGET, 3, 1, 2 - createvisualtask sub_80DD3DC, 5, 208, 63 + createsprite gRandomPosHitSplatSpriteTemplate, ANIM_TARGET, 3, 1, 2 + createvisualtask SoundTask_PlaySE1WithPanning, 5, 208, 63 delay 3 - createsprite gUnknown_83E7C50, ANIM_TARGET, 3, 1, 2 - createvisualtask sub_80DD3DC, 5, 208, 63 + createsprite gRandomPosHitSplatSpriteTemplate, ANIM_TARGET, 3, 1, 2 + createvisualtask SoundTask_PlaySE1WithPanning, 5, 208, 63 delay 3 - createsprite gUnknown_83E7C50, ANIM_TARGET, 3, 1, 2 - createvisualtask sub_80DD3DC, 5, 208, 63 + createsprite gRandomPosHitSplatSpriteTemplate, ANIM_TARGET, 3, 1, 2 + createvisualtask SoundTask_PlaySE1WithPanning, 5, 208, 63 waitforvisualfinish createvisualtask AnimTask_BlendExcept, 5, 5, 2, 16, 0, -1 - createvisualtask sub_80B94B4, 5, 1, 5, 14 + createvisualtask AnimTask_HorizontalShake, 5, 1, 5, 14 waitforvisualfinish - clearmonbg 0 + clearmonbg ANIM_ATTACKER blendoff - call gUnknown_81D59C7 + call UnsetPsychicBg end Move_MIST_BALL:: @ 81CC212 @@ -4052,7 +4041,7 @@ Move_MIST_BALL:: @ 81CC212 loadspritegfx ANIM_TAG_WHITE_FEATHER delay 0 playsewithpan SE_W081, 192 - createsprite gUnknown_83E64E8, ANIM_TARGET, 0, 0, 0, 0, 0, 30, 0 + createsprite gMistBallSpriteTemplate, ANIM_TARGET, 0, 0, 0, 0, 0, 30, 0 waitforvisualfinish playsewithpan SE_W028, 63 createvisualtask AnimTask_ShakeMon, 2, 1, 5, 0, 10, 0 @@ -4069,24 +4058,24 @@ Move_MIST_BALL:: @ 81CC212 Move_FEATHER_DANCE:: @ 81CC2A1 loadspritegfx ANIM_TAG_WHITE_FEATHER - monbg 3 + monbg ANIM_DEF_PARTNER monbgprio_29 playsewithpan SE_W080, 63 delay 0 - createsprite gUnknown_83E6C00, ANIM_TARGET, 0, 0, -16, 64, 2, 104, 11304, 32, 1 + createsprite gFallingFeatherSpriteTemplate, ANIM_TARGET, 0, 0, -16, 64, 2, 104, 11304, 32, 1 delay 6 - createsprite gUnknown_83E6C00, ANIM_TARGET, 0, 0, -16, 32, 2, 104, 11304, 32, 1 - createsprite gUnknown_83E6C00, ANIM_TARGET, 0, 0, -16, 0, 2, 104, 11304, 32, 1 + createsprite gFallingFeatherSpriteTemplate, ANIM_TARGET, 0, 0, -16, 32, 2, 104, 11304, 32, 1 + createsprite gFallingFeatherSpriteTemplate, ANIM_TARGET, 0, 0, -16, 0, 2, 104, 11304, 32, 1 delay 6 - createsprite gUnknown_83E6C00, ANIM_TARGET, 0, 0, -16, 224, 2, 104, 11304, 32, 1 - createsprite gUnknown_83E6C00, ANIM_TARGET, 0, 0, -16, 128, 2, 104, 11304, 32, 1 + createsprite gFallingFeatherSpriteTemplate, ANIM_TARGET, 0, 0, -16, 224, 2, 104, 11304, 32, 1 + createsprite gFallingFeatherSpriteTemplate, ANIM_TARGET, 0, 0, -16, 128, 2, 104, 11304, 32, 1 delay 6 - createsprite gUnknown_83E6C00, ANIM_TARGET, 0, 0, -16, 192, 2, 104, 11304, 32, 1 - createsprite gUnknown_83E6C00, ANIM_TARGET, 0, 0, -16, 160, 2, 104, 11304, 32, 1 + createsprite gFallingFeatherSpriteTemplate, ANIM_TARGET, 0, 0, -16, 192, 2, 104, 11304, 32, 1 + createsprite gFallingFeatherSpriteTemplate, ANIM_TARGET, 0, 0, -16, 160, 2, 104, 11304, 32, 1 delay 6 - createsprite gUnknown_83E6C00, ANIM_TARGET, 0, 0, -16, 96, 2, 104, 11304, 32, 1 + createsprite gFallingFeatherSpriteTemplate, ANIM_TARGET, 0, 0, -16, 96, 2, 104, 11304, 32, 1 waitforvisualfinish - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER end Move_TEETER_DANCE:: @ 81CC371 @@ -4113,46 +4102,46 @@ Move_MUD_SPORT:: @ 81CC3DC loadspritegfx ANIM_TAG_MUD_SAND createvisualtask AnimTask_Splash, 2, 0, 6 delay 24 - createsprite gUnknown_83E7A94, ANIM_TARGET, 2, 0, -4, -16 - createsprite gUnknown_83E7A94, ANIM_TARGET, 2, 0, 4, -12 + createsprite gMudsportMudSpriteTemplate, ANIM_TARGET, 2, 0, -4, -16 + createsprite gMudsportMudSpriteTemplate, ANIM_TARGET, 2, 0, 4, -12 playsewithpan SE_W091, 192 delay 32 - createsprite gUnknown_83E7A94, ANIM_TARGET, 2, 0, -3, -12 - createsprite gUnknown_83E7A94, ANIM_TARGET, 2, 0, 5, -14 + createsprite gMudsportMudSpriteTemplate, ANIM_TARGET, 2, 0, -3, -12 + createsprite gMudsportMudSpriteTemplate, ANIM_TARGET, 2, 0, 5, -14 playsewithpan SE_W091, 192 delay 32 - createsprite gUnknown_83E7A94, ANIM_TARGET, 2, 0, -5, -18 - createsprite gUnknown_83E7A94, ANIM_TARGET, 2, 0, 3, -14 + createsprite gMudsportMudSpriteTemplate, ANIM_TARGET, 2, 0, -5, -18 + createsprite gMudsportMudSpriteTemplate, ANIM_TARGET, 2, 0, 3, -14 playsewithpan SE_W091, 192 delay 16 - createsprite gUnknown_83E7A94, ANIM_TARGET, 2, 1, 220, 60 + createsprite gMudsportMudSpriteTemplate, ANIM_TARGET, 2, 1, 220, 60 waitplaysewithpan SE_W145B, 0, 15 delay 2 - createsprite gUnknown_83E7A94, ANIM_TARGET, 2, 1, 60, 100 + createsprite gMudsportMudSpriteTemplate, ANIM_TARGET, 2, 1, 60, 100 waitplaysewithpan SE_W145B, 0, 25 delay 2 - createsprite gUnknown_83E7A94, ANIM_TARGET, 2, 1, 140, 55 + createsprite gMudsportMudSpriteTemplate, ANIM_TARGET, 2, 1, 140, 55 waitplaysewithpan SE_W145B, 0, 14 delay 2 - createsprite gUnknown_83E7A94, ANIM_TARGET, 2, 1, 180, 50 + createsprite gMudsportMudSpriteTemplate, ANIM_TARGET, 2, 1, 180, 50 waitplaysewithpan SE_W145B, 0, 10 delay 2 - createsprite gUnknown_83E7A94, ANIM_TARGET, 2, 1, 20, 90 + createsprite gMudsportMudSpriteTemplate, ANIM_TARGET, 2, 1, 20, 90 waitplaysewithpan SE_W145B, 0, 22 delay 2 - createsprite gUnknown_83E7A94, ANIM_TARGET, 2, 1, 90, 90 + createsprite gMudsportMudSpriteTemplate, ANIM_TARGET, 2, 1, 90, 90 waitplaysewithpan SE_W145B, 0, 22 delay 2 - createsprite gUnknown_83E7A94, ANIM_TARGET, 2, 1, 160, 60 + createsprite gMudsportMudSpriteTemplate, ANIM_TARGET, 2, 1, 160, 60 waitplaysewithpan SE_W145B, 0, 15 delay 2 - createsprite gUnknown_83E7A94, ANIM_TARGET, 2, 1, 30, 90 + createsprite gMudsportMudSpriteTemplate, ANIM_TARGET, 2, 1, 30, 90 waitplaysewithpan SE_W145B, 0, 22 delay 2 - createsprite gUnknown_83E7A94, ANIM_TARGET, 2, 1, 120, 60 + createsprite gMudsportMudSpriteTemplate, ANIM_TARGET, 2, 1, 120, 60 waitplaysewithpan SE_W145B, 0, 15 delay 2 - createsprite gUnknown_83E7A94, ANIM_TARGET, 2, 1, 200, 40 + createsprite gMudsportMudSpriteTemplate, ANIM_TARGET, 2, 1, 200, 40 waitplaysewithpan SE_W145B, 0, 10 end @@ -4204,7 +4193,7 @@ Move_SLACK_OFF:: @ 81CC6C3 createvisualtask AnimTask_SlackOffSquish, 2, 0 playsewithpan SE_W281, 192 waitforvisualfinish - call gUnknown_81D56C9 + call HealingEffect waitforvisualfinish end @@ -4217,12 +4206,12 @@ Move_CRUSH_CLAW:: @ 81CC6DB createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 6, 4 delay 4 createvisualtask AnimTask_ShakeMon2, 2, 1, 2, 0, 18, 1 - createsprite gUnknown_83E79E8, ANIM_TARGET, 2, -10, -10, 0 - createsprite gUnknown_83E79E8, ANIM_TARGET, 2, -10, 10, 0 + createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, -10, -10, 0 + createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, -10, 10, 0 playsewithpan SE_W013, 63 delay 12 - createsprite gUnknown_83E79E8, ANIM_TARGET, 2, 10, -10, 1 - createsprite gUnknown_83E79E8, ANIM_TARGET, 2, 10, 10, 1 + createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, 10, -10, 1 + createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, 10, 10, 1 playsewithpan SE_W013, 63 waitforvisualfinish waitforvisualfinish @@ -4237,7 +4226,7 @@ Move_AROMATHERAPY:: @ 81CC74B loadspritegfx ANIM_TAG_SPARKLE_2 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, 1, 0, 0, 7, 13293 delay 1 - monbg 0 + monbg ANIM_ATTACKER delay 1 createsprite gAromatherapySmallFlowerSpriteTemplate, ANIM_ATTACKER, 0, 24, 16, 0, 2, 2, 0, 0 createsprite gAromatherapySmallFlowerSpriteTemplate, ANIM_ATTACKER, 66, 64, 24, 0, 3, 1, 1, 0 @@ -4251,12 +4240,12 @@ Move_AROMATHERAPY:: @ 81CC74B createsprite gAromatherapySmallFlowerSpriteTemplate, ANIM_ATTACKER, 0, 128, 12, 0, 3, 3, 0, 0 createsprite gAromatherapyBigFlowerSpriteTemplate, ANIM_ATTACKER, 0, 90, 16, 0, 2, 1, 0, 0 waitforvisualfinish - clearmonbg 0 + clearmonbg ANIM_ATTACKER delay 1 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, 1, 0, 7, 0, 13293 delay 1 playsewithpan SE_W287, 192 - createvisualtask sub_80E2084, 2, 1 + createvisualtask AnimTask_StatusClearedEffect, 2, 1 waitforvisualfinish playsewithpan SE_W234, 192 createsprite gSparklingStarsSpriteTemplate, ANIM_ATTACKER, 16, -15, 0, 0, 0, 32, 60, 1 @@ -4278,17 +4267,17 @@ Move_FAKE_TEARS:: @ 81CC8AD createvisualtask AnimTask_RockMonBackAndForth, 5, 0, 2, 1 loopsewithpan SE_W039, 192, 12, 4 delay 8 - createsprite gUnknown_83E7998, ANIM_ATTACKER, 2, 0, 0 - createsprite gUnknown_83E7998, ANIM_ATTACKER, 2, 0, 1 + createsprite gTearDropSpriteTemplate, ANIM_ATTACKER, 2, 0, 0 + createsprite gTearDropSpriteTemplate, ANIM_ATTACKER, 2, 0, 1 delay 8 - createsprite gUnknown_83E7998, ANIM_ATTACKER, 2, 0, 2 - createsprite gUnknown_83E7998, ANIM_ATTACKER, 2, 0, 3 + createsprite gTearDropSpriteTemplate, ANIM_ATTACKER, 2, 0, 2 + createsprite gTearDropSpriteTemplate, ANIM_ATTACKER, 2, 0, 3 delay 8 - createsprite gUnknown_83E7998, ANIM_ATTACKER, 2, 0, 0 - createsprite gUnknown_83E7998, ANIM_ATTACKER, 2, 0, 1 + createsprite gTearDropSpriteTemplate, ANIM_ATTACKER, 2, 0, 0 + createsprite gTearDropSpriteTemplate, ANIM_ATTACKER, 2, 0, 1 delay 8 - createsprite gUnknown_83E7998, ANIM_ATTACKER, 2, 0, 2 - createsprite gUnknown_83E7998, ANIM_ATTACKER, 2, 0, 3 + createsprite gTearDropSpriteTemplate, ANIM_ATTACKER, 2, 0, 2 + createsprite gTearDropSpriteTemplate, ANIM_ATTACKER, 2, 0, 3 waitforvisualfinish end @@ -4297,7 +4286,7 @@ Move_AIR_CUTTER:: @ 81CC93D loadspritegfx ANIM_TAG_CUT loadspritegfx ANIM_TAG_IMPACT delay 0 - monbg 3 + monbg ANIM_DEF_PARTNER setalpha 12, 8 delay 0 createvisualtask AnimTask_AirCutterProjectile, 2, 32, -24, 1536, 2, 128 @@ -4309,7 +4298,7 @@ Move_AIR_CUTTER:: @ 81CC93D createvisualtask AnimTask_ShakeMon2, 2, 3, 2, 0, 8, 1 waitforvisualfinish blendoff - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER delay 0 end @@ -4387,17 +4376,17 @@ Move_TICKLE:: @ 81CCADC Move_WATER_SPOUT:: @ 81CCB48 loadspritegfx ANIM_TAG_GLOWY_BLUE_ORB loadspritegfx ANIM_TAG_WATER_IMPACT - monbg 3 + monbg ANIM_DEF_PARTNER setalpha 12, 8 - createvisualtask sub_80ABB28, 5, + createvisualtask AnimTask_WaterSpoutLaunch, 5, playsewithpan SE_W029, 192 delay 44 playsewithpan SE_W291, 192 waitforvisualfinish delay 16 - createvisualtask sub_80AC00C, 5, + createvisualtask AnimTask_WaterSpoutRain, 5, playsewithpan SE_W057, 63 - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER blendoff end @@ -4406,9 +4395,9 @@ Move_SHADOW_PUNCH:: @ 81CCB76 loadspritegfx ANIM_TAG_HANDS_AND_FEET fadetobg 2 waitbgfadein - monbg 2 + monbg ANIM_ATK_PARTNER setalpha 9, 8 - createvisualtask sub_8077030, 2, 0, 13 + createvisualtask AnimTask_AttackerPunchWithTrace, 2, 0, 13 playsewithpan SE_W026, 192 delay 6 createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, 1, 1 @@ -4416,31 +4405,31 @@ Move_SHADOW_PUNCH:: @ 81CCB76 playsewithpan SE_W004, 63 createvisualtask AnimTask_ShakeMon, 2, 1, 3, 0, 6, 1 waitforvisualfinish - clearmonbg 2 + clearmonbg ANIM_ATK_PARTNER blendoff restorebg waitbgfadein end Move_EXTRASENSORY:: @ 81CCBD1 - call gUnknown_81D59BB - monbg 3 + call SetPsychicBackground + monbg ANIM_DEF_PARTNER setalpha 12, 8 createvisualtask AnimTask_BlendMonInAndOut, 5, 0, 891, 12, 1, 1 - createvisualtask sub_80B3A58, 5, 0 + createvisualtask AnimTask_ExtrasensoryDistortion, 5, 0 playsewithpan SE_W020, 63 waitforvisualfinish createvisualtask AnimTask_BlendMonInAndOut, 5, 0, 891, 12, 1, 1 - createvisualtask sub_80B3A58, 5, 1 + createvisualtask AnimTask_ExtrasensoryDistortion, 5, 1 playsewithpan SE_W020, 63 waitforvisualfinish - createvisualtask sub_80B3C78, 5, 0 - createvisualtask sub_80B3A58, 5, 2 + createvisualtask AnimTask_TransparentCloneGrowAndShrink, 5, ANIM_ATTACKER + createvisualtask AnimTask_ExtrasensoryDistortion, 5, 2 playsewithpan SE_W043, 192 waitforvisualfinish blendoff - clearmonbg 3 - call gUnknown_81D59C7 + clearmonbg ANIM_DEF_PARTNER + call UnsetPsychicBg end Move_AERIAL_ACE:: @ 81CCC39 @@ -4477,8 +4466,8 @@ Move_HOWL:: @ 81CCCDC loadspritegfx ANIM_TAG_NOISE_LINE createvisualtask AnimTask_DeepInhale, 2, 0 delay 12 - call gUnknown_81CDB06 - createvisualtask sub_80DD06C, 2, 0, 3 + call RoarEffect + createvisualtask SoundTask_PlayCryHighPitch, 2, 0, 3 waitforvisualfinish delay 30 end @@ -4514,44 +4503,44 @@ Move_VOLT_TACKLE:: @ 81CCD79 loadspritegfx ANIM_TAG_SPARK loadspritegfx ANIM_TAG_CIRCLE_OF_LIGHT loadspritegfx ANIM_TAG_ELECTRICITY - monbg 0 + monbg ANIM_ATTACKER setalpha 12, 8 createvisualtask AnimTask_BlendSelected, 10, 1, 0, 0, 8, RGB_BLACK waitforvisualfinish - createsprite gUnknown_83E621C, ANIM_ATTACKER, 1, + createsprite gVoltTackleOrbSlideSpriteTemplate, ANIM_ATTACKER, 1 playsewithpan SE_W268, 192 waitforvisualfinish - clearmonbg 0 + clearmonbg ANIM_ATTACKER blendoff delay 8 - createvisualtask sub_80AEA10, 5, 0 + createvisualtask AnimTask_VoltTackleBolt, 5, 0 playsewithpan SE_W085, 192 waitforvisualfinish - createvisualtask sub_80AEA10, 5, 1 + createvisualtask AnimTask_VoltTackleBolt, 5, 1 playsewithpan SE_W085, 63 waitforvisualfinish - createvisualtask sub_80AEA10, 5, 2 + createvisualtask AnimTask_VoltTackleBolt, 5, 2 playsewithpan SE_W085, 192 waitforvisualfinish - createvisualtask sub_80AEA10, 5, 3 + createvisualtask AnimTask_VoltTackleBolt, 5, 3 playsewithpan SE_W085, 63 waitforvisualfinish - createvisualtask sub_80AEA10, 5, 4 + createvisualtask AnimTask_VoltTackleBolt, 5, 4 playsewithpan SE_W085, 192 delay 8 createvisualtask AnimTask_ShakeMon2, 2, 1, 10, 0, 18, 1 playsewithpan SE_W120, 63 - createsprite gUnknown_83E6204, ANIM_ATTACKER, 2, 1, 16, 16 + createsprite gElectricPuffSpriteTemplate, ANIM_ATTACKER, 2, 1, 16, 16 delay 2 - createsprite gUnknown_83E6204, ANIM_ATTACKER, 2, 1, -16, -16 + createsprite gElectricPuffSpriteTemplate, ANIM_ATTACKER, 2, 1, -16, -16 delay 8 - createvisualtask sub_80AE8A0, 5, + createvisualtask AnimTask_VoltTackleAttackerReappear, 5 waitforvisualfinish createvisualtask AnimTask_ShakeMon2, 2, 0, 3, 0, 9, 1 playsewithpan SE_W085B, 192 - createsprite gUnknown_83E6204, ANIM_ATTACKER, 2, 0, 16, 16 + createsprite gElectricPuffSpriteTemplate, ANIM_ATTACKER, 2, 0, 16, 16 delay 2 - createsprite gUnknown_83E6204, ANIM_ATTACKER, 2, 0, -16, -16 + createsprite gElectricPuffSpriteTemplate, ANIM_ATTACKER, 2, 0, -16, -16 waitforvisualfinish createvisualtask AnimTask_BlendSelected, 10, 1, 0, 8, 0, RGB_BLACK waitforvisualfinish @@ -4559,7 +4548,7 @@ Move_VOLT_TACKLE:: @ 81CCD79 Move_WATER_SPORT:: @ 81CCE71 loadspritegfx ANIM_TAG_GLOWY_BLUE_ORB - createvisualtask sub_80AC328, 5, + createvisualtask AnimTask_WaterSport, 5, delay 8 playsewithpan SE_W057, 192 delay 44 @@ -4572,10 +4561,10 @@ Move_WATER_SPORT:: @ 81CCE71 Move_CALM_MIND:: @ 81CCE97 loadspritegfx ANIM_TAG_THIN_RING - monbg 2 + monbg ANIM_ATK_PARTNER createvisualtask AnimTask_BlendExcept, 5, 0, 0, 0, 16, 0 waitforvisualfinish - createvisualtask sub_80BB9B0, 5, 1 + createvisualtask AnimTask_SetAllNonAttackersInvisiblity, 5, 1 waitforvisualfinish createsprite gThinRingShrinkingSpriteTemplate, ANIM_ATTACKER, 40, 0, 0, 0, 0 playsewithpan SE_W048, 192 @@ -4586,12 +4575,12 @@ Move_CALM_MIND:: @ 81CCE97 createsprite gThinRingShrinkingSpriteTemplate, ANIM_ATTACKER, 40, 0, 0, 0, 0 playsewithpan SE_W048, 192 waitforvisualfinish - createvisualtask sub_80BB9B0, 5, 0 + createvisualtask AnimTask_SetAllNonAttackersInvisiblity, 5, 0 visible 0 waitforvisualfinish createvisualtask AnimTask_BlendExcept, 5, 0, 0, 16, 0, 0 waitforvisualfinish - clearmonbg 2 + clearmonbg ANIM_ATK_PARTNER end Move_LEAF_BLADE:: @ 81CCF17 @@ -4612,7 +4601,7 @@ Move_LEAF_BLADE:: @ 81CCF17 setalpha 12, 8 delay 12 createvisualtask AnimTask_ShakeMon2, 2, 1, 8, 0, 18, 1 - createsprite gUnknown_83E7C80, ANIM_TARGET, 2, 0, 0, 1, 36 + createsprite gCrossImpactSpriteTemplate, ANIM_TARGET, 2, 0, 0, 1, 36 playsewithpan SE_W043, 63 waitforvisualfinish clearmonbg 1 @@ -4621,25 +4610,25 @@ Move_LEAF_BLADE:: @ 81CCF17 Move_DRAGON_DANCE:: @ 81CCF9A loadspritegfx ANIM_TAG_HOLLOW_ORB - monbg 0 + monbg ANIM_ATTACKER monbgprio_28 0 delay 1 - createvisualtask sub_80B75E0, 5, + createvisualtask AnimTask_DragonDanceWaver, 5 playsewithpan SE_W100, 192 delay 8 - createvisualtask sub_8076288, 5, 10249, 19456, 14, 0, 3 - createsprite gUnknown_83E7848, ANIM_ATTACKER, 2, 0 - createsprite gUnknown_83E7848, ANIM_ATTACKER, 2, 43 - createsprite gUnknown_83E7848, ANIM_ATTACKER, 2, 85 - createsprite gUnknown_83E7848, ANIM_ATTACKER, 2, 128 - createsprite gUnknown_83E7848, ANIM_ATTACKER, 2, 170 - createsprite gUnknown_83E7848, ANIM_ATTACKER, 2, 213 + createvisualtask AnimTask_BlendPalInAndOutByTag, 5, 10249, 19456, 14, 0, 3 + createsprite gDragonDanceOrbSpriteTemplate, ANIM_ATTACKER, 2, 0 + createsprite gDragonDanceOrbSpriteTemplate, ANIM_ATTACKER, 2, 43 + createsprite gDragonDanceOrbSpriteTemplate, ANIM_ATTACKER, 2, 85 + createsprite gDragonDanceOrbSpriteTemplate, ANIM_ATTACKER, 2, 128 + createsprite gDragonDanceOrbSpriteTemplate, ANIM_ATTACKER, 2, 170 + createsprite gDragonDanceOrbSpriteTemplate, ANIM_ATTACKER, 2, 213 delay 30 playsewithpan SE_W100, 192 delay 30 playsewithpan SE_W100, 192 waitforvisualfinish - clearmonbg 0 + clearmonbg ANIM_ATTACKER delay 1 end @@ -4648,19 +4637,19 @@ Move_SHOCK_WAVE:: @ 81CD009 loadspritegfx ANIM_TAG_CIRCLE_OF_LIGHT loadspritegfx ANIM_TAG_SPARK loadspritegfx ANIM_TAG_LIGHTNING - monbg 0 + monbg ANIM_ATTACKER setalpha 12, 8 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 2, 0, 4, 0 waitforvisualfinish - createvisualtask sub_80AE540, 2, 0, 20, 0, 2 + createvisualtask AnimTask_ElectricChargingParticles, 2, 0, 20, 0, 2 playsewithpan SE_W268, 192 delay 12 - createsprite gUnknown_83E6290, ANIM_ATTACKER, 2, + createsprite gGrowingShockWaveOrbSpriteTemplate, ANIM_ATTACKER, 2 delay 30 - createvisualtask sub_80AECE0, 5, + createvisualtask AnimTask_ShockWaveProgressingBolt, 5, delay 12 waitforvisualfinish - createvisualtask sub_80AEFA0, 5, + createvisualtask AnimTask_ShockWaveLightning, 5, playsewithpan SE_W161B, 63 waitforvisualfinish createvisualtask AnimTask_ShakeMon, 2, 1, 0, 6, 18, 1 @@ -4669,7 +4658,7 @@ Move_SHOCK_WAVE:: @ 81CD009 delay 4 createvisualtask AnimTask_BlendSelected, 5, 4, 0, 0, 0, RGB_BLACK waitforvisualfinish - clearmonbg 0 + clearmonbg ANIM_ATTACKER blendoff end @@ -4684,27 +4673,27 @@ Move_BELLY_DRUM:: @ 81CD0C0 loadspritegfx ANIM_TAG_PURPLE_HAND_OUTLINE createvisualtask AnimTask_MusicNotesRainbowBlend, 2, waitforvisualfinish - call gUnknown_81CD18D + call BellyDrumRight createsprite gSlowFlyingMusicNotesSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 0, 0 playsewithpan SE_W187, 192 delay 15 - call gUnknown_81CD172 + call BellyDrumLeft createsprite gSlowFlyingMusicNotesSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 1, 0 playsewithpan SE_W187, 192 delay 15 - call gUnknown_81CD18D + call BellyDrumRight createsprite gSlowFlyingMusicNotesSpriteTemplate, ANIM_ATTACKER, 2, 0, 3, 3, 128 playsewithpan SE_W187, 192 delay 7 - call gUnknown_81CD172 + call BellyDrumLeft createsprite gSlowFlyingMusicNotesSpriteTemplate, ANIM_ATTACKER, 2, 1, 2, 0, 128 playsewithpan SE_W187, 192 delay 7 - call gUnknown_81CD18D + call BellyDrumRight createsprite gSlowFlyingMusicNotesSpriteTemplate, ANIM_ATTACKER, 2, 0, 1, 1, 0 playsewithpan SE_W187, 192 delay 7 - call gUnknown_81CD172 + call BellyDrumLeft createsprite gSlowFlyingMusicNotesSpriteTemplate, ANIM_ATTACKER, 2, 1, 0, 3, 0 playsewithpan SE_W187, 192 waitforvisualfinish @@ -4712,12 +4701,12 @@ Move_BELLY_DRUM:: @ 81CD0C0 waitforvisualfinish end -gUnknown_81CD172:: @ 81CD172 +BellyDrumLeft:: @ 81CD172 createsprite gBellyDrumHandSpriteTemplate, ANIM_ATTACKER, 3, 0 createvisualtask AnimTask_ShakeMon, 2, 0, 0, 8, 2, 1 return -gUnknown_81CD18D:: @ 81CD18D +BellyDrumRight:: @ 81CD18D createsprite gBellyDrumHandSpriteTemplate, ANIM_ATTACKER, 3, 1 createvisualtask AnimTask_ShakeMon, 2, 0, 0, 8, 2, 1 return @@ -4733,12 +4722,12 @@ Move_MIND_READER:: @ 81CD1A8 delay 40 playsewithpan SE_W043, 63 createvisualtask AnimTask_CurseBlendEffect, 2, 1, 1, 2, 0, 10, 0 - call gUnknown_81CD1EF + call MindReaderEyeSpikeEffect waitforvisualfinish clearmonbg 4 end -gUnknown_81CD1EF:: @ 81CD1EF +MindReaderEyeSpikeEffect:: @ 81CD1EF createsprite gTealAlertSpriteTemplate, ANIM_ATTACKER, 4, 70, 0, 6 createsprite gTealAlertSpriteTemplate, ANIM_ATTACKER, 4, 40, 40, 6 createsprite gTealAlertSpriteTemplate, ANIM_ATTACKER, 4, 10, -60, 6 @@ -4763,7 +4752,7 @@ gUnknown_81CD1EF:: @ 81CD1EF return Move_ICE_PUNCH:: @ 81CD2E0 - monbg 3 + monbg ANIM_DEF_PARTNER setalpha 12, 8 loadspritegfx ANIM_TAG_ICE_CRYSTALS loadspritegfx ANIM_TAG_IMPACT @@ -4772,15 +4761,15 @@ Move_ICE_PUNCH:: @ 81CD2E0 createvisualtask AnimTask_BlendSelected, 10, 4, 2, 0, 9, RGB(12, 26, 31) delay 20 playsewithpan SE_W081, 63 - createsprite gUnknown_83E6360, ANIM_ATTACKER, 2, 0 - createsprite gUnknown_83E6360, ANIM_ATTACKER, 2, 64 - createsprite gUnknown_83E6360, ANIM_ATTACKER, 2, 128 - createsprite gUnknown_83E6360, ANIM_ATTACKER, 2, 192 + createsprite gIceCrystalSpiralInwardSmall, ANIM_ATTACKER, 2, 0 + createsprite gIceCrystalSpiralInwardSmall, ANIM_ATTACKER, 2, 64 + createsprite gIceCrystalSpiralInwardSmall, ANIM_ATTACKER, 2, 128 + createsprite gIceCrystalSpiralInwardSmall, ANIM_ATTACKER, 2, 192 delay 5 - createsprite gUnknown_83E6348, ANIM_ATTACKER, 2, 32 - createsprite gUnknown_83E6348, ANIM_ATTACKER, 2, 96 - createsprite gUnknown_83E6348, ANIM_ATTACKER, 2, 160 - createsprite gUnknown_83E6348, ANIM_ATTACKER, 2, 224 + createsprite gIceCrystalSpiralInwardLarge, ANIM_ATTACKER, 2, 32 + createsprite gIceCrystalSpiralInwardLarge, ANIM_ATTACKER, 2, 96 + createsprite gIceCrystalSpiralInwardLarge, ANIM_ATTACKER, 2, 160 + createsprite gIceCrystalSpiralInwardLarge, ANIM_ATTACKER, 2, 224 delay 17 createsprite gFistFootSpriteTemplate, ANIM_ATTACKER, 4, 0, -10, 8, 1, 0 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, -10, 1, 1 @@ -4789,13 +4778,13 @@ Move_ICE_PUNCH:: @ 81CD2E0 createvisualtask AnimTask_ShakeMon, 5, 1, 0, 5, 3, 1 waitforvisualfinish delay 15 - call gUnknown_81D540A + call IceCrystalEffectShort delay 5 createvisualtask AnimTask_BlendSelected, 10, 4, 2, 9, 0, RGB(12, 26, 31) waitforvisualfinish createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 0, 7, 0, 0 waitforvisualfinish - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER blendoff end @@ -4811,8 +4800,8 @@ Move_REST:: @ 81CD3CB end Move_CONFUSION:: @ 81CD40B - monbg 3 - call gUnknown_81D59BB + monbg ANIM_DEF_PARTNER + call SetPsychicBackground setalpha 8, 8 createvisualtask AnimTask_ShakeMon2, 2, 0, 1, 0, 10, 1 createvisualtask AnimTask_CurseBlendEffect, 2, 2, 0, 2, 0, 8, RGB_WHITE @@ -4821,15 +4810,15 @@ Move_CONFUSION:: @ 81CD40B createvisualtask AnimTask_ShakeMon, 2, 1, 3, 0, 15, 1 createvisualtask AnimTask_ScaleMonAndRestore, 5, -4, -4, 15, 1, 1 waitforvisualfinish - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER blendoff delay 1 - call gUnknown_81D59C7 + call UnsetPsychicBg end Move_PSYCHIC:: @ 81CD46C - monbg 3 - call gUnknown_81D59BB + monbg ANIM_DEF_PARTNER + call SetPsychicBackground setalpha 8, 8 createvisualtask AnimTask_ShakeMon2, 2, 0, 1, 0, 10, 1 createvisualtask AnimTask_CurseBlendEffect, 2, 2, 0, 2, 0, 8, 767 @@ -4838,36 +4827,35 @@ Move_PSYCHIC:: @ 81CD46C createvisualtask AnimTask_ShakeMon, 2, 1, 5, 0, 15, 1 createvisualtask AnimTask_ScaleMonAndRestore, 5, -6, -6, 15, 1, 1 waitforvisualfinish - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER blendoff delay 1 - call gUnknown_81D59C7 + call UnsetPsychicBg end Move_FUTURE_SIGHT:: @ 81CD4CF - goto gUnknown_81CD4DD - -gUnknown_81CD4D4:: @ 81CD4D4 + goto FutureSight +FutureSightContinue:: @ 81CD4D4 waitforvisualfinish delay 1 - call gUnknown_81D59C7 + call UnsetPsychicBg end -gUnknown_81CD4DD:: @ 81CD4DD - monbg 2 +FutureSight:: @ 81CD4DD + monbg ANIM_ATK_PARTNER playsewithpan SE_W060, 192 - call gUnknown_81D59BB + call SetPsychicBackground setalpha 8, 8 playsewithpan SE_W048, 192 createvisualtask AnimTask_CurseBlendEffect, 2, 2, 0, 2, 0, 8, RGB_WHITE createvisualtask AnimTask_ScaleMonAndRestore, 5, -4, -4, 15, 0, 1 waitforvisualfinish - clearmonbg 2 + clearmonbg ANIM_ATK_PARTNER blendoff - goto gUnknown_81CD4D4 - monbg 3 + goto FutureSightContinue + monbg ANIM_DEF_PARTNER playsewithpan SE_W060, 192 - call gUnknown_81D59BB + call SetPsychicBackground setalpha 8, 8 playsewithpan SE_W048, 63 waitplaysewithpan SE_W048, 63, 8 @@ -4876,59 +4864,59 @@ gUnknown_81CD4DD:: @ 81CD4DD waitforvisualfinish createvisualtask AnimTask_ShakeMon, 2, 1, 4, 0, 24, 1 waitforvisualfinish - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER blendoff - goto gUnknown_81CD4D4 + goto FutureSightContinue Move_THUNDER:: @ 81CD570 loadspritegfx ANIM_TAG_LIGHTNING fadetobg 11 waitbgfadeout - createvisualtask sub_80BB82C, 5, -256, 0, 1, -1 + createvisualtask AnimTask_StartSlidingBg, 5, -256, 0, 1, -1 waitbgfadein createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 2, 0, 16, 0 delay 16 - createvisualtask sub_80BA0E8, 2, 257, 257, 257 + createvisualtask AnimTask_InvertScreenColor, 2, 257, 257, 257 playsewithpan SE_W086, 63 delay 1 - createsprite gUnknown_83E5F38, ANIM_TARGET, 2, 16, -36 + createsprite gLightningSpriteTemplate, ANIM_TARGET, 2, 16, -36 delay 1 - createsprite gUnknown_83E5F38, ANIM_TARGET, 2, 16, -20 + createsprite gLightningSpriteTemplate, ANIM_TARGET, 2, 16, -20 delay 1 - createsprite gUnknown_83E5F38, ANIM_TARGET, 2, 16, 12 + createsprite gLightningSpriteTemplate, ANIM_TARGET, 2, 16, 12 delay 20 - createsprite gUnknown_83E5F38, ANIM_TARGET, 6, -16, -32 + createsprite gLightningSpriteTemplate, ANIM_TARGET, 6, -16, -32 playsewithpan SE_W086, 63 delay 1 - createsprite gUnknown_83E5F38, ANIM_TARGET, 6, -16, -16 + createsprite gLightningSpriteTemplate, ANIM_TARGET, 6, -16, -16 delay 1 - createsprite gUnknown_83E5F38, ANIM_TARGET, 6, -16, 16 + createsprite gLightningSpriteTemplate, ANIM_TARGET, 6, -16, 16 playsewithpan SE_W086, 63 delay 5 - createvisualtask sub_80BA0E8, 2, 257, 257, 257 + createvisualtask AnimTask_InvertScreenColor, 2, 257, 257, 257 delay 1 - createsprite gUnknown_83E5F38, ANIM_TARGET, 2, 24, -32 + createsprite gLightningSpriteTemplate, ANIM_TARGET, 2, 24, -32 delay 1 - createsprite gUnknown_83E5F38, ANIM_TARGET, 2, 24, -16 + createsprite gLightningSpriteTemplate, ANIM_TARGET, 2, 24, -16 delay 1 - createsprite gUnknown_83E5F38, ANIM_TARGET, 2, 24, 16 + createsprite gLightningSpriteTemplate, ANIM_TARGET, 2, 24, 16 delay 30 - createvisualtask sub_80BA0E8, 2, 257, 257, 257 + createvisualtask AnimTask_InvertScreenColor, 2, 257, 257, 257 delay 5 - createvisualtask sub_80BA0E8, 2, 257, 257, 257 + createvisualtask AnimTask_InvertScreenColor, 2, 257, 257, 257 delay 1 - createsprite gUnknown_83E5F38, ANIM_TARGET, 2, 0, -32 + createsprite gLightningSpriteTemplate, ANIM_TARGET, 2, 0, -32 playsewithpan SE_W161B, 63 delay 1 - createsprite gUnknown_83E5F38, ANIM_TARGET, 2, 0, -16 + createsprite gLightningSpriteTemplate, ANIM_TARGET, 2, 0, -16 delay 1 - createsprite gUnknown_83E5F38, ANIM_TARGET, 2, 0, 16 + createsprite gLightningSpriteTemplate, ANIM_TARGET, 2, 0, 16 delay 10 - createvisualtask sub_80BA0E8, 2, 257, 257, 257 + createvisualtask AnimTask_InvertScreenColor, 2, 257, 257, 257 delay 1 - createvisualtask sub_80ADAD8, 2, 30, 3, 1, 0 + createvisualtask AnimTask_ShakeTargetInPattern, 2, 30, 3, 1, 0 delay 2 - createvisualtask sub_80BA0E8, 2, 257, 257, 257 + createvisualtask AnimTask_InvertScreenColor, 2, 257, 257, 257 delay 1 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_TARGET, 2, 1, 2, 16, 0, 0 waitforvisualfinish @@ -4950,16 +4938,16 @@ Move_THUNDER_PUNCH:: @ 81CD6CA createsprite gFistFootSpriteTemplate, ANIM_TARGET, 4, 0, 0, 8, 1, 0 createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, 1, 1 delay 1 - createvisualtask sub_80BA0E8, 2, 257, 257, 257 + createvisualtask AnimTask_InvertScreenColor, 2, 257, 257, 257 delay 1 - createsprite gUnknown_83E5F38, ANIM_TARGET, 2, 0, -48 + createsprite gLightningSpriteTemplate, ANIM_TARGET, 2, 0, -48 delay 1 - createsprite gUnknown_83E5F38, ANIM_ATTACKER, 2, 0, -16 + createsprite gLightningSpriteTemplate, ANIM_ATTACKER, 2, 0, -16 delay 1 - createsprite gUnknown_83E5F38, ANIM_ATTACKER, 2, 0, 16 + createsprite gLightningSpriteTemplate, ANIM_ATTACKER, 2, 0, 16 delay 1 playsewithpan SE_W161B, 63 - createvisualtask sub_80BA0E8, 2, 257, 257, 257 + createvisualtask AnimTask_InvertScreenColor, 2, 257, 257, 257 delay 2 createvisualtask AnimTask_ShakeMon, 2, 1, 0, 3, 15, 1 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 1, 2 @@ -4975,56 +4963,56 @@ Move_SACRED_FIRE:: @ 81CD793 loadspritegfx ANIM_TAG_FIRE loadspritegfx ANIM_TAG_FIRE_PLUME loopsewithpan SE_W221, 192, 7, 5 - createsprite gUnknown_83E5CA0, ANIM_ATTACKER, 2, -32, 0, 50, 5, -2, 0 + createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 2, -32, 0, 50, 5, -2, 0 delay 1 - createsprite gUnknown_83E5CA0, ANIM_ATTACKER, 66, -20, -10, 50, 5, -1, -1 + createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 66, -20, -10, 50, 5, -1, -1 delay 1 - createsprite gUnknown_83E5CA0, ANIM_ATTACKER, 66, 0, -16, 50, 5, 0, -1 + createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 66, 0, -16, 50, 5, 0, -1 delay 1 - createsprite gUnknown_83E5CA0, ANIM_ATTACKER, 66, 20, -10, 50, 5, 1, -1 + createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 66, 20, -10, 50, 5, 1, -1 delay 1 - createsprite gUnknown_83E5CA0, ANIM_ATTACKER, 2, 32, 0, 50, 5, 2, 0 + createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 2, 32, 0, 50, 5, 2, 0 delay 1 - createsprite gUnknown_83E5CA0, ANIM_ATTACKER, 2, 20, 10, 50, 5, 1, 1 + createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 2, 20, 10, 50, 5, 1, 1 delay 1 - createvisualtask sub_80BA0E8, 2, 257, 257, 257 + createvisualtask AnimTask_InvertScreenColor, 2, 257, 257, 257 delay 1 - createsprite gUnknown_83E5CA0, ANIM_ATTACKER, 2, 0, 16, 50, 5, 0, 1 + createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 2, 0, 16, 50, 5, 0, 1 delay 1 - createsprite gUnknown_83E5CA0, ANIM_ATTACKER, 2, -20, 10, 50, 5, -1, 1 - createvisualtask sub_80BA0E8, 2, 257, 257, 257 + createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 2, -20, 10, 50, 5, -1, 1 + createvisualtask AnimTask_InvertScreenColor, 2, 257, 257, 257 delay 1 waitforvisualfinish playsewithpan SE_W221B, 63 - createsprite gUnknown_83E5C70, ANIM_TARGET, 2, -16, 0, 70, 16, 0, 1 + createsprite gLargeFlameSpriteTemplate, ANIM_TARGET, 2, -16, 0, 70, 16, 0, 1 delay 10 playsewithpan SE_W221B, 63 - createsprite gUnknown_83E5C70, ANIM_TARGET, 2, 0, 0, 70, 16, 0, 1 + createsprite gLargeFlameSpriteTemplate, ANIM_TARGET, 2, 0, 0, 70, 16, 0, 1 delay 10 playsewithpan SE_W221B, 63 - createsprite gUnknown_83E5C70, ANIM_TARGET, 2, 16, 0, 80, 16, 0, 1 + createsprite gLargeFlameSpriteTemplate, ANIM_TARGET, 2, 16, 0, 80, 16, 0, 1 delay 1 - createvisualtask sub_80BA0E8, 2, 257, 257, 257 + createvisualtask AnimTask_InvertScreenColor, 2, 257, 257, 257 delay 1 waitforvisualfinish - createvisualtask sub_80BA0E8, 2, 257, 257, 257 + createvisualtask AnimTask_InvertScreenColor, 2, 257, 257, 257 delay 1 playsewithpan SE_W172B, 63 - createsprite gUnknown_83E5C88, ANIM_TARGET, 2, 0, 0, 30, 30, -1, 0 + createsprite gLargeFlameScatterSpriteTemplate, ANIM_TARGET, 2, 0, 0, 30, 30, -1, 0 delay 1 - createsprite gUnknown_83E5C88, ANIM_TARGET, 2, 0, 0, 30, 30, 0, 1 + createsprite gLargeFlameScatterSpriteTemplate, ANIM_TARGET, 2, 0, 0, 30, 30, 0, 1 delay 1 - createsprite gUnknown_83E5C88, ANIM_TARGET, 2, 0, 0, 30, 30, -1, -1 + createsprite gLargeFlameScatterSpriteTemplate, ANIM_TARGET, 2, 0, 0, 30, 30, -1, -1 delay 1 - createsprite gUnknown_83E5C88, ANIM_TARGET, 2, 0, 0, 30, 30, 2, 1 + createsprite gLargeFlameScatterSpriteTemplate, ANIM_TARGET, 2, 0, 0, 30, 30, 2, 1 delay 1 - createsprite gUnknown_83E5C88, ANIM_TARGET, 2, 0, 0, 30, 30, 1, -1 + createsprite gLargeFlameScatterSpriteTemplate, ANIM_TARGET, 2, 0, 0, 30, 30, 1, -1 delay 1 - createsprite gUnknown_83E5C88, ANIM_TARGET, 2, 0, 0, 30, 30, -1, 1 + createsprite gLargeFlameScatterSpriteTemplate, ANIM_TARGET, 2, 0, 0, 30, 30, -1, 1 delay 1 - createsprite gUnknown_83E5C88, ANIM_TARGET, 2, 0, 0, 30, 30, 1, -2 + createsprite gLargeFlameScatterSpriteTemplate, ANIM_TARGET, 2, 0, 0, 30, 30, 1, -2 delay 1 - createsprite gUnknown_83E5C88, ANIM_TARGET, 2, 0, 0, 30, 30, 3, 1 + createsprite gLargeFlameScatterSpriteTemplate, ANIM_TARGET, 2, 0, 0, 30, 30, 3, 1 waitforvisualfinish end @@ -5043,57 +5031,57 @@ Move_SCRATCH:: @ 81CD97A Move_DRAGON_BREATH:: @ 81CD9AC loadspritegfx ANIM_TAG_SMALL_EMBER - monbg 3 + monbg ANIM_DEF_PARTNER monbgprio_28 1 loopsewithpan SE_W172, 192, 7, 7 - createsprite gUnknown_83E77A4, ANIM_TARGET, 2, 0, 0, 0, 0, 20 + createsprite gDragonBreathFireSpriteTemplate, ANIM_TARGET, 2, 0, 0, 0, 0, 20 delay 2 - createsprite gUnknown_83E77A4, ANIM_TARGET, 2, 0, 0, 0, 0, 20 + createsprite gDragonBreathFireSpriteTemplate, ANIM_TARGET, 2, 0, 0, 0, 0, 20 delay 2 createvisualtask AnimTask_BlendSelected, 10, 4, 1, 0, 9, RGB(31, 0, 0) - createsprite gUnknown_83E77A4, ANIM_TARGET, 2, 0, 0, 0, 0, 20 + createsprite gDragonBreathFireSpriteTemplate, ANIM_TARGET, 2, 0, 0, 0, 0, 20 delay 2 createvisualtask AnimTask_ShakeMon2, 2, 1, 2, 0, 21, 1 - createsprite gUnknown_83E77A4, ANIM_TARGET, 2, 0, 0, 0, 0, 20 + createsprite gDragonBreathFireSpriteTemplate, ANIM_TARGET, 2, 0, 0, 0, 0, 20 delay 2 - createsprite gUnknown_83E77A4, ANIM_TARGET, 2, 0, 0, 0, 0, 20 + createsprite gDragonBreathFireSpriteTemplate, ANIM_TARGET, 2, 0, 0, 0, 0, 20 delay 2 - createsprite gUnknown_83E77A4, ANIM_TARGET, 2, 0, 0, 0, 0, 20 + createsprite gDragonBreathFireSpriteTemplate, ANIM_TARGET, 2, 0, 0, 0, 0, 20 delay 2 - createsprite gUnknown_83E77A4, ANIM_TARGET, 2, 0, 0, 0, 0, 20 + createsprite gDragonBreathFireSpriteTemplate, ANIM_TARGET, 2, 0, 0, 0, 0, 20 delay 2 - createsprite gUnknown_83E77A4, ANIM_TARGET, 2, 0, 0, 0, 0, 20 + createsprite gDragonBreathFireSpriteTemplate, ANIM_TARGET, 2, 0, 0, 0, 0, 20 delay 2 - createsprite gUnknown_83E77A4, ANIM_TARGET, 2, 0, 0, 0, 0, 20 + createsprite gDragonBreathFireSpriteTemplate, ANIM_TARGET, 2, 0, 0, 0, 0, 20 delay 2 - createsprite gUnknown_83E77A4, ANIM_TARGET, 2, 0, 0, 0, 0, 20 + createsprite gDragonBreathFireSpriteTemplate, ANIM_TARGET, 2, 0, 0, 0, 0, 20 delay 2 - createsprite gUnknown_83E77A4, ANIM_TARGET, 2, 0, 0, 0, 0, 20 + createsprite gDragonBreathFireSpriteTemplate, ANIM_TARGET, 2, 0, 0, 0, 0, 20 waitforvisualfinish createvisualtask AnimTask_BlendSelected, 10, 4, 1, 9, 0, RGB(31, 0, 0) waitforvisualfinish - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER end Move_ROAR:: @ 81CDAC0 loadspritegfx ANIM_TAG_NOISE_LINE - monbg 0 + monbg ANIM_ATTACKER monbgprio_28 0 setalpha 8, 8 - createvisualtask sub_80DD148, 2, 0, 2 + createvisualtask SoundTask_PlayDoubleCry, 2, 0, 2 createvisualtask AnimTask_ScaleMonAndRestore, 5, -5, -5, 10, 0, 1 - call gUnknown_81CDB06 + call RoarEffect delay 20 - createvisualtask sub_80995FC, 5, 1, 2 + createvisualtask AnimTask_SlideOffScreen, 5, 1, 2 waitforvisualfinish - clearmonbg 0 + clearmonbg ANIM_ATTACKER blendoff waitforvisualfinish - createvisualtask sub_80DD2F4, 5, + createvisualtask SoundTask_WaitForCry, 5, waitforvisualfinish end -gUnknown_81CDB06:: @ 81CDB06 +RoarEffect:: @ 81CDB06 createsprite gRoarNoiseLineSpriteTemplate, ANIM_ATTACKER, 2, 24, -8, 0 createsprite gRoarNoiseLineSpriteTemplate, ANIM_ATTACKER, 2, 24, 0, 2 createsprite gRoarNoiseLineSpriteTemplate, ANIM_ATTACKER, 2, 24, 8, 1 @@ -5105,33 +5093,33 @@ gUnknown_81CDB06:: @ 81CDB06 Move_GROWL:: @ 81CDB57 loadspritegfx ANIM_TAG_NOISE_LINE - createvisualtask sub_80DD148, 2, 0, 255 - call gUnknown_81CDB06 + createvisualtask SoundTask_PlayDoubleCry, 2, 0, 255 + call RoarEffect delay 10 createvisualtask AnimTask_ShakeMon2, 2, 1, 1, 0, 9, 1 createvisualtask AnimTask_ShakeMon2, 2, 3, 1, 0, 9, 1 waitforvisualfinish - createvisualtask sub_80DD2F4, 5, + createvisualtask SoundTask_WaitForCry, 5, waitforvisualfinish end Move_SNORE:: @ 81CDB98 loadspritegfx ANIM_TAG_SNORE_Z - monbg 2 + monbg ANIM_ATK_PARTNER setalpha 8, 8 - call gUnknown_81CDBB1 + call SnoreEffect delay 30 - call gUnknown_81CDBB1 + call SnoreEffect waitforvisualfinish - clearmonbg 2 + clearmonbg ANIM_ATK_PARTNER blendoff end -gUnknown_81CDBB1:: @ 81CDBB1 +SnoreEffect:: @ 81CDBB1 playsewithpan SE_W173, 192 createvisualtask AnimTask_ScaleMonAndRestore, 5, -7, -7, 7, 0, 1 createvisualtask AnimTask_ShakeMon2, 2, 1, 4, 0, 7, 1 - createsprite gUnknown_83E7B88, ANIM_ATTACKER, 2, 6, 1, 14, 0, 0 + createsprite gShakeMonOrTerrainSpriteTemplate, ANIM_ATTACKER, 2, 6, 1, 14, 0, 0 createsprite gSnoreZSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, -42, -38, 24, 0, 0 createsprite gSnoreZSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 0, -42, 24, 0, 0 createsprite gSnoreZSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 42, -38, 24, 0, 0 @@ -5142,36 +5130,36 @@ Move_LIGHT_SCREEN:: @ 81CDC28 loadspritegfx ANIM_TAG_GREEN_LIGHT_WALL setalpha 0, 16 waitplaysewithpan SE_W115, 192, 15 - createsprite gUnknown_83E6E10, ANIM_ATTACKER, 1, 40, 0, 10166 + createsprite gLightScreenWallSpriteTemplate, ANIM_ATTACKER, 1, 40, 0, 10166 delay 10 - call gUnknown_81CDC4F + call SpecialScreenSparkle waitforvisualfinish delay 1 blendoff end -gUnknown_81CDC4F:: @ 81CDC4F - createsprite gUnknown_83E6ED4, ANIM_ATTACKER, 2, 23, 0, 0, 1 +SpecialScreenSparkle:: @ 81CDC4F + createsprite gSpecialScreenSparkleSpriteTemplate, ANIM_ATTACKER, 2, 23, 0, 0, 1 delay 6 - createsprite gUnknown_83E6ED4, ANIM_ATTACKER, 2, 31, -8, 0, 1 + createsprite gSpecialScreenSparkleSpriteTemplate, ANIM_ATTACKER, 2, 31, -8, 0, 1 delay 5 - createsprite gUnknown_83E6ED4, ANIM_ATTACKER, 2, 30, 20, 0, 1 + createsprite gSpecialScreenSparkleSpriteTemplate, ANIM_ATTACKER, 2, 30, 20, 0, 1 delay 7 - createsprite gUnknown_83E6ED4, ANIM_ATTACKER, 2, 10, -15, 0, 1 + createsprite gSpecialScreenSparkleSpriteTemplate, ANIM_ATTACKER, 2, 10, -15, 0, 1 delay 6 - createsprite gUnknown_83E6ED4, ANIM_ATTACKER, 2, 20, 10, 0, 1 + createsprite gSpecialScreenSparkleSpriteTemplate, ANIM_ATTACKER, 2, 20, 10, 0, 1 delay 6 - createsprite gUnknown_83E6ED4, ANIM_ATTACKER, 2, 10, 18, 0, 1 + createsprite gSpecialScreenSparkleSpriteTemplate, ANIM_ATTACKER, 2, 10, 18, 0, 1 return Move_MIRROR_COAT:: @ 81CDCB4 loadspritegfx ANIM_TAG_SPARKLE_3 loadspritegfx ANIM_TAG_RED_LIGHT_WALL setalpha 0, 16 - createsprite gUnknown_83E6E40, ANIM_ATTACKER, 1, 40, 0, 10168 + createsprite gMirrorCoatWallSpriteTemplate, ANIM_ATTACKER, 1, 40, 0, 10168 delay 10 playsewithpan SE_W115, 192 - call gUnknown_81CDC4F + call SpecialScreenSparkle waitforvisualfinish delay 1 blendoff @@ -5182,13 +5170,13 @@ Move_REFLECT:: @ 81CDCDA loadspritegfx ANIM_TAG_BLUE_LIGHT_WALL setalpha 0, 16 waitplaysewithpan SE_W115, 192, 15 - createsprite gUnknown_83E6E28, ANIM_ATTACKER, 1, 40, 0, 10167 + createsprite gReflectWallSpriteTemplate, ANIM_ATTACKER, 1, 40, 0, 10167 delay 20 - createsprite gUnknown_83E6EA4, ANIM_ATTACKER, 2, 30, 0, 0, 1 + createsprite gReflectSparkleSpriteTemplate, ANIM_ATTACKER, 2, 30, 0, 0, 1 delay 7 - createsprite gUnknown_83E6EA4, ANIM_ATTACKER, 2, 19, -12, 0, 1 + createsprite gReflectSparkleSpriteTemplate, ANIM_ATTACKER, 2, 19, -12, 0, 1 delay 7 - createsprite gUnknown_83E6EA4, ANIM_ATTACKER, 2, 10, 20, 0, 1 + createsprite gReflectSparkleSpriteTemplate, ANIM_ATTACKER, 2, 10, 20, 0, 1 waitforvisualfinish delay 1 blendoff @@ -5198,7 +5186,7 @@ Move_BARRIER:: @ 81CDD2D loadspritegfx ANIM_TAG_GRAY_LIGHT_WALL setalpha 0, 16 waitplaysewithpan SE_W112, 192, 15 - createsprite gUnknown_83E6E58, ANIM_ATTACKER, 3, 40, 0, 10169 + createsprite gBarrierWallSpriteTemplate, ANIM_ATTACKER, 3, 40, 0, 10169 waitforvisualfinish delay 1 blendoff @@ -5210,31 +5198,31 @@ Move_BUBBLE:: @ 81CDD4A monbg 1 setalpha 12, 8 delay 1 - createsprite gUnknown_83E58E0, ANIM_ATTACKER, 2, 18, 0, 15, -15, 10, 128, 100 + createsprite gWaterBubbleProjectileSpriteTemplate, ANIM_ATTACKER, 2, 18, 0, 15, -15, 10, 128, 100 playsewithpan SE_W145, 192 waitplaysewithpan SE_W145B, 63, 100 delay 6 - createsprite gUnknown_83E58E0, ANIM_ATTACKER, 2, 18, 0, 35, 37, 40, 128, 100 + createsprite gWaterBubbleProjectileSpriteTemplate, ANIM_ATTACKER, 2, 18, 0, 35, 37, 40, 128, 100 playsewithpan SE_W145, 192 waitplaysewithpan SE_W145B, 63, 100 delay 6 - createsprite gUnknown_83E58E0, ANIM_ATTACKER, 2, 18, 0, 10, -37, 30, 128, 100 + createsprite gWaterBubbleProjectileSpriteTemplate, ANIM_ATTACKER, 2, 18, 0, 10, -37, 30, 128, 100 playsewithpan SE_W145, 192 waitplaysewithpan SE_W145B, 63, 100 delay 6 - createsprite gUnknown_83E58E0, ANIM_ATTACKER, 2, 18, 0, 30, 10, 15, 128, 100 + createsprite gWaterBubbleProjectileSpriteTemplate, ANIM_ATTACKER, 2, 18, 0, 30, 10, 15, 128, 100 playsewithpan SE_W145, 192 waitplaysewithpan SE_W145B, 63, 100 delay 6 - createsprite gUnknown_83E58E0, ANIM_ATTACKER, 2, 18, 0, 20, 33, 20, 128, 100 + createsprite gWaterBubbleProjectileSpriteTemplate, ANIM_ATTACKER, 2, 18, 0, 20, 33, 20, 128, 100 playsewithpan SE_W145, 192 waitplaysewithpan SE_W145B, 63, 100 delay 6 - createsprite gUnknown_83E58E0, ANIM_ATTACKER, 2, 18, 0, 25, -30, 10, 128, 100 + createsprite gWaterBubbleProjectileSpriteTemplate, ANIM_ATTACKER, 2, 18, 0, 25, -30, 10, 128, 100 playsewithpan SE_W145, 192 waitplaysewithpan SE_W145B, 63, 100 waitforvisualfinish - call gUnknown_81D583D + call WaterBubblesEffectLong waitforvisualfinish clearmonbg 1 blendoff @@ -5242,46 +5230,46 @@ Move_BUBBLE:: @ 81CDD4A Move_SMOG:: @ 81CDE20 loadspritegfx ANIM_TAG_PURPLE_GAS_CLOUD - monbg 3 + monbg ANIM_DEF_PARTNER monbgprio_29 setalpha 12, 8 loopsewithpan SE_W054, 63, 17, 10 - call gUnknown_81CDE85 - call gUnknown_81CDE85 - call gUnknown_81CDE85 - call gUnknown_81CDE85 - call gUnknown_81CDE85 - call gUnknown_81CDE85 - call gUnknown_81CDE85 + call SmogCloud + call SmogCloud + call SmogCloud + call SmogCloud + call SmogCloud + call SmogCloud + call SmogCloud delay 120 loopsewithpan SE_W092, 63, 18, 2 createvisualtask AnimTask_CurseBlendEffect, 2, 4, 2, 2, 0, 12, 26650 delay 10 createvisualtask AnimTask_ShakeMon2, 2, 1, 2, 0, 15, 1 waitforvisualfinish - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER blendoff end -gUnknown_81CDE85:: @ 81CDE85 - createsprite gUnknown_83E64BC, ANIM_ATTACKER, 2, 0, -24, 48, 240, 1, 0 +SmogCloud:: @ 81CDE85 + createsprite gSmogCloudSpriteTemplate, ANIM_ATTACKER, 2, 0, -24, 48, 240, 1, 0 delay 7 return Move_FAINT_ATTACK:: @ 81CDE9B loadspritegfx ANIM_TAG_IMPACT - monbg 0 + monbg ANIM_ATTACKER fadetobg 1 waitbgfadein delay 0 playsewithpan SE_W185, 192 createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, 0, 18, 6, 1, 3 - createvisualtask sub_80B78E0, 2, 1 + createvisualtask AnimTask_AttackerFadeToInvisible, 2, 1 waitforvisualfinish - clearmonbg 0 + clearmonbg ANIM_ATTACKER invisible 0 delay 1 - createvisualtask sub_80BC12C, 2, + createvisualtask AnimTask_SetAttackerInvisibleWaitForSignal, 2, monbg 1 setalpha 12, 8 delay 1 @@ -5294,11 +5282,11 @@ Move_FAINT_ATTACK:: @ 81CDE9B delay 1 setarg 7, 4096 delay 32 - createvisualtask sub_80B7A80, 2, - monbg 0 - createvisualtask sub_80B79DC, 2, 1 + createvisualtask AnimTask_InitAttackerFadeFromInvisible, 2 + monbg ANIM_ATTACKER + createvisualtask AnimTask_AttackerFadeFromInvisible, 2, 1 waitforvisualfinish - clearmonbg 0 + clearmonbg ANIM_ATTACKER delay 1 restorebg waitbgfadein @@ -5306,30 +5294,30 @@ Move_FAINT_ATTACK:: @ 81CDE9B Move_SAND_ATTACK:: @ 81CDF22 loadspritegfx ANIM_TAG_MUD_SAND - monbg 2 + monbg ANIM_ATK_PARTNER monbgprio_28 0 setalpha 12, 8 playsewithpan SE_W028, 192 createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 0, -10, 0, 0, 3 waitforvisualfinish createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 2 - call gUnknown_81CDF72 - call gUnknown_81CDF72 - call gUnknown_81CDF72 - call gUnknown_81CDF72 - call gUnknown_81CDF72 - call gUnknown_81CDF72 + call SandAttackDirt + call SandAttackDirt + call SandAttackDirt + call SandAttackDirt + call SandAttackDirt + call SandAttackDirt waitforvisualfinish - clearmonbg 2 + clearmonbg ANIM_ATK_PARTNER blendoff end -gUnknown_81CDF72:: @ 81CDF72 - createsprite gUnknown_83E7A58, ANIM_TARGET, 2, 15, 15, 20, 0, 0 - createsprite gUnknown_83E7A58, ANIM_TARGET, 2, 15, 15, 20, 10, 10 - createsprite gUnknown_83E7A58, ANIM_TARGET, 2, 15, 15, 20, -10, -10 - createsprite gUnknown_83E7A58, ANIM_TARGET, 2, 15, 15, 20, 20, 5 - createsprite gUnknown_83E7A58, ANIM_TARGET, 2, 15, 15, 20, -20, -5 +SandAttackDirt:: @ 81CDF72 + createsprite gSandAttackDirtSpriteTemplate, ANIM_TARGET, 2, 15, 15, 20, 0, 0 + createsprite gSandAttackDirtSpriteTemplate, ANIM_TARGET, 2, 15, 15, 20, 10, 10 + createsprite gSandAttackDirtSpriteTemplate, ANIM_TARGET, 2, 15, 15, 20, -10, -10 + createsprite gSandAttackDirtSpriteTemplate, ANIM_TARGET, 2, 15, 15, 20, 20, 5 + createsprite gSandAttackDirtSpriteTemplate, ANIM_TARGET, 2, 15, 15, 20, -20, -5 delay 2 return @@ -5339,21 +5327,21 @@ Move_MUD_SLAP:: @ 81CDFCA createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 0, -10, 0, 0, 3 waitforvisualfinish createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 2 - call gUnknown_81CE010 - call gUnknown_81CE010 - call gUnknown_81CE010 - call gUnknown_81CE010 - call gUnknown_81CE010 - call gUnknown_81CE010 + call MudSlapMud + call MudSlapMud + call MudSlapMud + call MudSlapMud + call MudSlapMud + call MudSlapMud waitforvisualfinish end -gUnknown_81CE010:: @ 81CE010 - createsprite gUnknown_83E7A7C, ANIM_TARGET, 2, 15, 15, 20, 0, 0 - createsprite gUnknown_83E7A7C, ANIM_TARGET, 2, 15, 15, 20, 10, 5 - createsprite gUnknown_83E7A7C, ANIM_TARGET, 2, 15, 15, 20, -10, -5 - createsprite gUnknown_83E7A7C, ANIM_TARGET, 2, 15, 15, 20, 20, 10 - createsprite gUnknown_83E7A7C, ANIM_TARGET, 2, 15, 15, 20, -20, -10 +MudSlapMud:: @ 81CE010 + createsprite gMudSlapMudSpriteTemplate, ANIM_TARGET, 2, 15, 15, 20, 0, 0 + createsprite gMudSlapMudSpriteTemplate, ANIM_TARGET, 2, 15, 15, 20, 10, 5 + createsprite gMudSlapMudSpriteTemplate, ANIM_TARGET, 2, 15, 15, 20, -10, -5 + createsprite gMudSlapMudSpriteTemplate, ANIM_TARGET, 2, 15, 15, 20, 20, 10 + createsprite gMudSlapMudSpriteTemplate, ANIM_TARGET, 2, 15, 15, 20, -20, -10 delay 2 return @@ -5365,25 +5353,25 @@ Move_DRAGON_RAGE:: @ 81CE068 waitforvisualfinish createsprite gSlideMonToOffsetSpriteTemplate, ANIM_TARGET, 2, 0, 15, 0, 0, 4 waitforvisualfinish - createsprite gUnknown_83E7830, ANIM_TARGET, 2, 30, 15, 0, 10, 10 + createsprite gDragonRageFireSpitSpriteTemplate, ANIM_TARGET, 2, 30, 15, 0, 10, 10 waitforvisualfinish loopsewithpan SE_W172B, 63, 11, 3 createvisualtask AnimTask_ShakeMon, 5, 1, 0, 3, 25, 1 - createsprite gUnknown_83E77D8, ANIM_TARGET, 66, 1, 5, 0 + createsprite gDragonRageFirePlumeSpriteTemplate, ANIM_TARGET, 66, 1, 5, 0 delay 1 - createsprite gUnknown_83E77D8, ANIM_TARGET, 66, 1, -10, -15 + createsprite gDragonRageFirePlumeSpriteTemplate, ANIM_TARGET, 66, 1, -10, -15 delay 1 - createsprite gUnknown_83E77D8, ANIM_TARGET, 2, 1, 0, 25 + createsprite gDragonRageFirePlumeSpriteTemplate, ANIM_TARGET, 2, 1, 0, 25 delay 1 - createsprite gUnknown_83E77D8, ANIM_TARGET, 66, 1, 15, 5 + createsprite gDragonRageFirePlumeSpriteTemplate, ANIM_TARGET, 66, 1, 15, 5 delay 1 - createsprite gUnknown_83E77D8, ANIM_TARGET, 66, 1, -25, 0 + createsprite gDragonRageFirePlumeSpriteTemplate, ANIM_TARGET, 66, 1, -25, 0 delay 1 - createsprite gUnknown_83E77D8, ANIM_TARGET, 2, 1, 30, 30 + createsprite gDragonRageFirePlumeSpriteTemplate, ANIM_TARGET, 2, 1, 30, 30 delay 1 - createsprite gUnknown_83E77D8, ANIM_TARGET, 2, 1, -27, 25 + createsprite gDragonRageFirePlumeSpriteTemplate, ANIM_TARGET, 2, 1, -27, 25 delay 1 - createsprite gUnknown_83E77D8, ANIM_TARGET, 66, 1, 0, 8 + createsprite gDragonRageFirePlumeSpriteTemplate, ANIM_TARGET, 66, 1, 0, 8 waitforvisualfinish createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_TARGET, 66, 0, 0, 4 waitforvisualfinish @@ -5394,8 +5382,8 @@ Move_RAIN_DANCE:: @ 81CE145 playsewithpan SE_W240, 192 createvisualtask AnimTask_BlendSelected, 10, 1 | (0xF << 7), 2, 0, 4, RGB_BLACK waitforvisualfinish - createvisualtask sub_80AABC0, 2, 0, 3, 120 - createvisualtask sub_80AABC0, 2, 0, 3, 120 + createvisualtask AnimTask_CreateRaindrops, 2, 0, 3, 120 + createvisualtask AnimTask_CreateRaindrops, 2, 0, 3, 120 delay 120 delay 30 waitforvisualfinish @@ -5409,8 +5397,8 @@ Move_BITE:: @ 81CE190 monbg 1 setalpha 12, 8 playsewithpan SE_W044, 63 - createsprite gUnknown_83E7930, ANIM_ATTACKER, 2, 0, -32, 0, 0, 819, 10 - createsprite gUnknown_83E7930, ANIM_ATTACKER, 2, 0, 32, 4, 0, -819, 10 + createsprite gSharpTeethSpriteTemplate, ANIM_ATTACKER, 2, 0, -32, 0, 0, 819, 10 + createsprite gSharpTeethSpriteTemplate, ANIM_ATTACKER, 2, 0, 32, 4, 0, -819, 10 delay 10 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 1, 2 createvisualtask AnimTask_ShakeMon, 5, 1, 0, 4, 7, 1 @@ -5428,15 +5416,15 @@ Move_CRUNCH:: @ 81CE1EE waitbgfadein setalpha 12, 8 playsewithpan SE_W044, 63 - createsprite gUnknown_83E7930, ANIM_ATTACKER, 2, -32, -32, 1, 819, 819, 10 - createsprite gUnknown_83E7930, ANIM_ATTACKER, 2, 32, 32, 5, -819, -819, 10 + createsprite gSharpTeethSpriteTemplate, ANIM_ATTACKER, 2, -32, -32, 1, 819, 819, 10 + createsprite gSharpTeethSpriteTemplate, ANIM_ATTACKER, 2, 32, 32, 5, -819, -819, 10 delay 10 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -8, 0, 1, 1 createvisualtask AnimTask_ShakeMon, 5, 1, 0, 7, 5, 2 waitforvisualfinish playsewithpan SE_W044, 63 - createsprite gUnknown_83E7930, ANIM_ATTACKER, 2, 32, -32, 7, -819, 819, 10 - createsprite gUnknown_83E7930, ANIM_ATTACKER, 2, -32, 32, 3, 819, -819, 10 + createsprite gSharpTeethSpriteTemplate, ANIM_ATTACKER, 2, 32, -32, 7, -819, 819, 10 + createsprite gSharpTeethSpriteTemplate, ANIM_ATTACKER, 2, -32, 32, 3, 819, -819, 10 delay 10 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 8, 0, 1, 1 createvisualtask AnimTask_ShakeMon, 5, 1, 0, 8, 4, 2 @@ -5454,8 +5442,8 @@ Move_CLAMP:: @ 81CE29E monbg 1 setalpha 12, 8 playsewithpan SE_W011, 63 - createsprite gUnknown_83E7948, ANIM_ATTACKER, 2, -32, 0, 2, 819, 0, 10 - createsprite gUnknown_83E7948, ANIM_ATTACKER, 2, 32, 0, 6, -819, 0, 10 + createsprite gClampJawSpriteTemplate, ANIM_ATTACKER, 2, -32, 0, 2, 819, 0, 10 + createsprite gClampJawSpriteTemplate, ANIM_ATTACKER, 2, 32, 0, 6, -819, 0, 10 delay 10 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 1, 2 createvisualtask AnimTask_ShakeMon, 5, 1, 3, 0, 5, 1 @@ -5472,29 +5460,29 @@ Move_ICE_BEAM:: @ 81CE2FB loadspritegfx ANIM_TAG_ICE_CRYSTALS createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 0, 7, 0 waitforvisualfinish - createsoundtask mas_80DCF38, 176, -64, 63, 4, 4, 0, 10 - createsprite gUnknown_83E63A4, ANIM_ATTACKER, 2, 20, 12, 0, 12, 20 - createsprite gUnknown_83E63A4, ANIM_ATTACKER, 2, 20, -12, 0, -12, 20 + createsoundtask SoundTask_LoopSEAdjustPanning, 176, -64, 63, 4, 4, 0, 10 + createsprite gIceBeamOuterCrystalSpriteTemplate, ANIM_ATTACKER, 2, 20, 12, 0, 12, 20 + createsprite gIceBeamOuterCrystalSpriteTemplate, ANIM_ATTACKER, 2, 20, -12, 0, -12, 20 delay 1 - call gUnknown_81CE3FC - call gUnknown_81CE3FC - call gUnknown_81CE3FC + call IceBeamCreateCrystals + call IceBeamCreateCrystals + call IceBeamCreateCrystals createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 4, -31, 0, 7, 32384 createvisualtask AnimTask_ShakeMon2, 2, 1, 2, 0, 25, 1 - call gUnknown_81CE3FC - call gUnknown_81CE3FC - call gUnknown_81CE3FC - call gUnknown_81CE3FC - call gUnknown_81CE3FC - call gUnknown_81CE3FC - call gUnknown_81CE3FC - call gUnknown_81CE3FC - createsprite gUnknown_83E638C, ANIM_ATTACKER, 2, 20, 0, 0, 0, 11 - delay 1 - createsprite gUnknown_83E638C, ANIM_ATTACKER, 2, 20, 0, 0, 0, 11 + call IceBeamCreateCrystals + call IceBeamCreateCrystals + call IceBeamCreateCrystals + call IceBeamCreateCrystals + call IceBeamCreateCrystals + call IceBeamCreateCrystals + call IceBeamCreateCrystals + call IceBeamCreateCrystals + createsprite gIceBeamInnerCrystalSpriteTemplate, ANIM_ATTACKER, 2, 20, 0, 0, 0, 11 + delay 1 + createsprite gIceBeamInnerCrystalSpriteTemplate, ANIM_ATTACKER, 2, 20, 0, 0, 0, 11 waitforvisualfinish delay 20 - call gUnknown_81D540A + call IceCrystalEffectShort createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 4, 5, 7, 0, 32384 waitforvisualfinish createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 0, 7, 0, 0 @@ -5503,10 +5491,10 @@ Move_ICE_BEAM:: @ 81CE2FB blendoff end -gUnknown_81CE3FC:: @ 81CE3FC - createsprite gUnknown_83E63A4, ANIM_ATTACKER, 2, 20, 12, 0, 12, 20 - createsprite gUnknown_83E63A4, ANIM_ATTACKER, 2, 20, -12, 0, -12, 20 - createsprite gUnknown_83E638C, ANIM_ATTACKER, 2, 20, 0, 0, 0, 11 +IceBeamCreateCrystals:: @ 81CE3FC + createsprite gIceBeamOuterCrystalSpriteTemplate, ANIM_ATTACKER, 2, 20, 12, 0, 12, 20 + createsprite gIceBeamOuterCrystalSpriteTemplate, ANIM_ATTACKER, 2, 20, -12, 0, -12, 20 + createsprite gIceBeamInnerCrystalSpriteTemplate, ANIM_ATTACKER, 2, 20, 0, 0, 0, 11 delay 1 return @@ -5522,57 +5510,56 @@ Move_AURORA_BEAM:: @ 81CE43F waitbgfadein playsewithpan SE_W062, 192 setarg 7, 0 - createvisualtask sub_80AAF60, 10, 130 - call gUnknown_81CE4C6 + createvisualtask AnimTask_RotateAuroraRingColors, 10, 130 + call AuroraBeamCreateRings createvisualtask AnimTask_ShakeMon2, 5, 1, 1, 0, 17, 1 - call gUnknown_81CE4C6 - call gUnknown_81CE4C6 - call gUnknown_81CE4C6 + call AuroraBeamCreateRings + call AuroraBeamCreateRings + call AuroraBeamCreateRings setarg 7, 65535 - createsoundtask mas_80DCF38, 176, -64, 63, 3, 6, 0, 10 + createsoundtask SoundTask_LoopSEAdjustPanning, 176, -64, 63, 3, 6, 0, 10 createvisualtask AnimTask_ShakeMon2, 5, 1, 2, 0, 40, 1 - call gUnknown_81CE4C6 - call gUnknown_81CE4C6 - call gUnknown_81CE4C6 - call gUnknown_81CE4C6 - call gUnknown_81CE4C6 - call gUnknown_81CE4C6 + call AuroraBeamCreateRings + call AuroraBeamCreateRings + call AuroraBeamCreateRings + call AuroraBeamCreateRings + call AuroraBeamCreateRings + call AuroraBeamCreateRings waitforvisualfinish restorebg waitbgfadein end -gUnknown_81CE4C6:: @ 81CE4C6 - createsprite gUnknown_83E592C, ANIM_TARGET, 2, 20, 0, 0, 0, 17 +AuroraBeamCreateRings:: @ 81CE4C6 + createsprite gAuroraBeamRingSpriteTemplate, ANIM_TARGET, 2, 20, 0, 0, 0, 17 delay 1 - createsprite gUnknown_83E592C, ANIM_TARGET, 2, 20, 0, 0, 0, 17 + createsprite gAuroraBeamRingSpriteTemplate, ANIM_TARGET, 2, 20, 0, 0, 0, 17 delay 1 - createsprite gUnknown_83E592C, ANIM_TARGET, 2, 20, 0, 0, 0, 17 + createsprite gAuroraBeamRingSpriteTemplate, ANIM_TARGET, 2, 20, 0, 0, 0, 17 delay 1 - createsprite gUnknown_83E592C, ANIM_TARGET, 2, 20, 0, 0, 0, 17 + createsprite gAuroraBeamRingSpriteTemplate, ANIM_TARGET, 2, 20, 0, 0, 0, 17 delay 1 return Move_SOLAR_BEAM:: @ 81CE513 loadspritegfx ANIM_TAG_ORBS - choosetwoturnanim BattleAnimScript_SolarBeam_Turn1, BattleAnimScript_SolarBeam_Turn2 - -BattleAnimScript_SolarBeam_End:: @ 81CE51F + choosetwoturnanim SolarBeamSetUp, SolarBeamUnleash +SolarBeamEnd:: @ 81CE51F waitforvisualfinish end -BattleAnimScript_SolarBeam_Turn1:: @ 81CE521 - monbg 2 +SolarBeamSetUp:: @ 81CE521 + monbg ANIM_ATK_PARTNER setalpha 12, 8 createvisualtask AnimTask_CurseBlendEffect, 2, 2, 1, 4, 0, 11, 12287 playsewithpan SE_W025, 192 - call gUnknown_81CE54B + call SolarBeamAbsorbEffect waitforvisualfinish - clearmonbg 2 + clearmonbg ANIM_ATK_PARTNER blendoff - goto BattleAnimScript_SolarBeam_End + goto SolarBeamEnd -gUnknown_81CE54B:: @ 81CE54B +SolarBeamAbsorbEffect:: @ 81CE54B createsprite gPowerAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 2, 40, 40, 16 delay 2 createsprite gPowerAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 2, -40, -40, 16 @@ -5603,8 +5590,8 @@ gUnknown_81CE54B:: @ 81CE54B delay 2 return -BattleAnimScript_SolarBeam_Turn2:: @ 81CE61E - call gUnknown_81D5A07 +SolarBeamUnleash:: @ 81CE61E + call SetSolarbeamBg panse_1B SE_W076, 192, 63, 2, 0 createvisualtask AnimTask_CreateSmallSolarbeamOrbs, 5, createsprite gSolarbeamBigOrbSpriteTemplate, ANIM_TARGET, 3, 15, 0, 20, 0 @@ -5623,14 +5610,14 @@ BattleAnimScript_SolarBeam_Turn2:: @ 81CE61E delay 4 createsprite gSolarbeamBigOrbSpriteTemplate, ANIM_TARGET, 3, 15, 0, 20, 6 delay 4 - call gUnknown_81CE6F0 - call gUnknown_81CE6F0 + call SolarBeamUnleash1 + call SolarBeamUnleash1 waitforvisualfinish createvisualtask AnimTask_BlendSelected, 10, 4, 1, 10, 0, RGB(25, 31, 0) - call gUnknown_81D5A41 - goto BattleAnimScript_SolarBeam_End + call UnsetSolarbeamBg + goto SolarBeamEnd -gUnknown_81CE6F0:: @ 81CE6F0 +SolarBeamUnleash1:: @ 81CE6F0 createsprite gSolarbeamBigOrbSpriteTemplate, ANIM_TARGET, 3, 15, 0, 20, 0 delay 4 createsprite gSolarbeamBigOrbSpriteTemplate, ANIM_TARGET, 3, 15, 0, 20, 1 @@ -5649,24 +5636,24 @@ gUnknown_81CE6F0:: @ 81CE6F0 Move_BLIZZARD:: @ 81CE768 loadspritegfx ANIM_TAG_ICE_CRYSTALS - monbg 3 + monbg ANIM_DEF_PARTNER createvisualtask AnimTask_GetAttackerSide, 2, - jumpargeq 7, 1, gUnknown_81CE8ED - fadetobg 9 + jumpargeq 7, 1, BlizzardOnPlayer + fadetobg BG_HIGHSPEED_OPPONENT -gUnknown_81CE77E:: @ 81CE77E +BlizzardContinue:: @ 81CE77E waitbgfadeout - createvisualtask sub_80BB82C, 5, -2304, 0, 1, -1 + createvisualtask AnimTask_StartSlidingBg, 5, -2304, 0, 1, -1 waitbgfadein waitforvisualfinish panse_1B SE_W059, 192, 63, 2, 0 - call gUnknown_81CE7B8 - call gUnknown_81CE7B8 + call BlizzardIceCrystals + call BlizzardIceCrystals playsewithpan SE_W059B, 63 waitforvisualfinish - call gUnknown_81D548E + call IceCrystalEffectLong waitforvisualfinish - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER delay 20 restorebg waitbgfadeout @@ -5674,116 +5661,116 @@ gUnknown_81CE77E:: @ 81CE77E waitbgfadein end -gUnknown_81CE7B8:: @ 81CE7B8 - createsprite gUnknown_83E6410, ANIM_ATTACKER, 40, 0, -10, 0, -10, 72, 1 - createsprite gUnknown_83E6428, ANIM_ATTACKER, 40, 0, 0, 0, 0, 80, 0, 0, 1 +BlizzardIceCrystals:: @ 81CE7B8 + createsprite gSwirlingSnowballSpriteTemplate, ANIM_ATTACKER, 40, 0, -10, 0, -10, 72, 1 + createsprite gBlizzardIceCrystalSpriteTemplate, ANIM_ATTACKER, 40, 0, 0, 0, 0, 80, 0, 0, 1 delay 3 - createsprite gUnknown_83E6410, ANIM_ATTACKER, 40, 0, -15, 0, -15, 72, 1 - createsprite gUnknown_83E6428, ANIM_ATTACKER, 40, 0, -10, 0, -10, 80, 0, 0, 1 + createsprite gSwirlingSnowballSpriteTemplate, ANIM_ATTACKER, 40, 0, -15, 0, -15, 72, 1 + createsprite gBlizzardIceCrystalSpriteTemplate, ANIM_ATTACKER, 40, 0, -10, 0, -10, 80, 0, 0, 1 delay 3 - createsprite gUnknown_83E6410, ANIM_ATTACKER, 40, 0, -5, 0, -5, 72, 1 - createsprite gUnknown_83E6428, ANIM_ATTACKER, 40, 0, 10, 0, 10, 80, 0, 0, 1 + createsprite gSwirlingSnowballSpriteTemplate, ANIM_ATTACKER, 40, 0, -5, 0, -5, 72, 1 + createsprite gBlizzardIceCrystalSpriteTemplate, ANIM_ATTACKER, 40, 0, 10, 0, 10, 80, 0, 0, 1 delay 3 - createsprite gUnknown_83E6410, ANIM_ATTACKER, 40, 0, -10, 0, -10, 72, 1 - createsprite gUnknown_83E6428, ANIM_ATTACKER, 40, 0, -20, 0, -20, 80, 0, 0, 1 + createsprite gSwirlingSnowballSpriteTemplate, ANIM_ATTACKER, 40, 0, -10, 0, -10, 72, 1 + createsprite gBlizzardIceCrystalSpriteTemplate, ANIM_ATTACKER, 40, 0, -20, 0, -20, 80, 0, 0, 1 delay 3 - createsprite gUnknown_83E6410, ANIM_ATTACKER, 40, 0, -20, 0, -20, 72, 1 - createsprite gUnknown_83E6428, ANIM_ATTACKER, 40, 0, 15, 0, 15, 80, 0, 0, 1 + createsprite gSwirlingSnowballSpriteTemplate, ANIM_ATTACKER, 40, 0, -20, 0, -20, 72, 1 + createsprite gBlizzardIceCrystalSpriteTemplate, ANIM_ATTACKER, 40, 0, 15, 0, 15, 80, 0, 0, 1 delay 3 - createsprite gUnknown_83E6410, ANIM_ATTACKER, 40, 0, -15, 0, -15, 72, 1 - createsprite gUnknown_83E6428, ANIM_ATTACKER, 40, 0, -20, 0, -20, 80, 0, 0, 1 + createsprite gSwirlingSnowballSpriteTemplate, ANIM_ATTACKER, 40, 0, -15, 0, -15, 72, 1 + createsprite gBlizzardIceCrystalSpriteTemplate, ANIM_ATTACKER, 40, 0, -20, 0, -20, 80, 0, 0, 1 delay 3 - createsprite gUnknown_83E6410, ANIM_ATTACKER, 40, 0, -25, 0, -25, 72, 1 - createsprite gUnknown_83E6428, ANIM_ATTACKER, 40, 0, 20, 0, 20, 80, 0, 0, 1 + createsprite gSwirlingSnowballSpriteTemplate, ANIM_ATTACKER, 40, 0, -25, 0, -25, 72, 1 + createsprite gBlizzardIceCrystalSpriteTemplate, ANIM_ATTACKER, 40, 0, 20, 0, 20, 80, 0, 0, 1 delay 3 return -gUnknown_81CE8ED:: @ 81CE8ED - fadetobg 10 - goto gUnknown_81CE77E +BlizzardOnPlayer:: @ 81CE8ED + fadetobg BG_HIGHSPEED_PLAYER + goto BlizzardContinue Move_POWDER_SNOW:: @ 81CE8F4 loadspritegfx ANIM_TAG_ICE_CRYSTALS - monbg 3 + monbg ANIM_DEF_PARTNER createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 1, 0, 3, 0 waitforvisualfinish panse_1B SE_W016, 192, 63, 2, 0 - call gUnknown_81CE93E - call gUnknown_81CE93E + call PowderSnowSnowballs + call PowderSnowSnowballs playsewithpan SE_W016B, 63 waitforvisualfinish waitsound - call gUnknown_81D548E + call IceCrystalEffectLong waitforvisualfinish - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER delay 20 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 1, 3, 0, 0 end -gUnknown_81CE93E:: @ 81CE93E - createsprite gUnknown_83E6440, ANIM_ATTACKER, 40, 0, 0, 0, 0, 56, 4, 4, 1 +PowderSnowSnowballs:: @ 81CE93E + createsprite gPowderSnowSnowballSpriteTemplate, ANIM_ATTACKER, 40, 0, 0, 0, 0, 56, 4, 4, 1 delay 3 - createsprite gUnknown_83E6440, ANIM_ATTACKER, 40, 0, -10, 0, -10, 56, 4, 4, 1 + createsprite gPowderSnowSnowballSpriteTemplate, ANIM_ATTACKER, 40, 0, -10, 0, -10, 56, 4, 4, 1 delay 3 - createsprite gUnknown_83E6440, ANIM_ATTACKER, 40, 0, 10, 0, 10, 56, -4, 3, 1 + createsprite gPowderSnowSnowballSpriteTemplate, ANIM_ATTACKER, 40, 0, 10, 0, 10, 56, -4, 3, 1 delay 3 - createsprite gUnknown_83E6440, ANIM_ATTACKER, 40, 0, -20, 0, -20, 56, -4, 5, 1 + createsprite gPowderSnowSnowballSpriteTemplate, ANIM_ATTACKER, 40, 0, -20, 0, -20, 56, -4, 5, 1 delay 3 - createsprite gUnknown_83E6440, ANIM_ATTACKER, 40, 0, 15, 0, 15, 56, 4, 4, 1 + createsprite gPowderSnowSnowballSpriteTemplate, ANIM_ATTACKER, 40, 0, 15, 0, 15, 56, 4, 4, 1 delay 3 - createsprite gUnknown_83E6440, ANIM_ATTACKER, 40, 0, -20, 0, -20, 56, 4, 4, 1 + createsprite gPowderSnowSnowballSpriteTemplate, ANIM_ATTACKER, 40, 0, -20, 0, -20, 56, 4, 4, 1 delay 3 - createsprite gUnknown_83E6440, ANIM_ATTACKER, 40, 0, 20, 0, 20, 56, 4, 4, 1 + createsprite gPowderSnowSnowballSpriteTemplate, ANIM_ATTACKER, 40, 0, 20, 0, 20, 56, 4, 4, 1 delay 3 return Move_HYDRO_PUMP:: @ 81CE9EE loadspritegfx ANIM_TAG_WATER_ORB loadspritegfx ANIM_TAG_WATER_IMPACT - monbg 3 + monbg ANIM_DEF_PARTNER monbgprio_28 1 setalpha 12, 8 createvisualtask AnimTask_ShakeMon, 5, 0, 0, 2, 40, 1 delay 6 panse_1B SE_W056, 192, 63, 2, 0 - createvisualtask sub_80AB100, 5, 100 - call gUnknown_81CEA8D - call gUnknown_81CEA8D - call gUnknown_81CEA8D + createvisualtask AnimTask_StartSinAnimTimer, 5, 100 + call HydroPumpBeams + call HydroPumpBeams + call HydroPumpBeams createvisualtask AnimTask_ShakeMon, 5, 1, 3, 0, 37, 1 - call gUnknown_81CEACE - call gUnknown_81CEA8D - call gUnknown_81CEA8D - call gUnknown_81CEACE - call gUnknown_81CEA8D - call gUnknown_81CEA8D - call gUnknown_81CEACE - call gUnknown_81CEA8D - call gUnknown_81CEA8D - call gUnknown_81CEACE - call gUnknown_81CEA8D - call gUnknown_81CEA8D - call gUnknown_81CEACE + call HydroPumpHitSplats + call HydroPumpBeams + call HydroPumpBeams + call HydroPumpHitSplats + call HydroPumpBeams + call HydroPumpBeams + call HydroPumpHitSplats + call HydroPumpBeams + call HydroPumpBeams + call HydroPumpHitSplats + call HydroPumpBeams + call HydroPumpBeams + call HydroPumpHitSplats delay 1 delay 1 - call gUnknown_81CEACE + call HydroPumpHitSplats waitforvisualfinish - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER blendoff end -gUnknown_81CEA8D:: @ 81CEA8D - createsprite gUnknown_83E595C, ANIM_ATTACKER, 3, 10, 10, 0, 16 - createsprite gUnknown_83E595C, ANIM_ATTACKER, 3, 10, 10, 0, -16 +HydroPumpBeams:: @ 81CEA8D + createsprite gHydroPumpOrbSpriteTemplate, ANIM_ATTACKER, 3, 10, 10, 0, 16 + createsprite gHydroPumpOrbSpriteTemplate, ANIM_ATTACKER, 3, 10, 10, 0, -16 delay 1 - createsprite gUnknown_83E595C, ANIM_ATTACKER, 3, 10, 10, 0, 16 - createsprite gUnknown_83E595C, ANIM_ATTACKER, 3, 10, 10, 0, -16 + createsprite gHydroPumpOrbSpriteTemplate, ANIM_ATTACKER, 3, 10, 10, 0, 16 + createsprite gHydroPumpOrbSpriteTemplate, ANIM_ATTACKER, 3, 10, 10, 0, -16 delay 1 return -gUnknown_81CEACE:: @ 81CEACE - createsprite gUnknown_83E7C38, ANIM_ATTACKER, 4, 0, 15, 1, 1 - createsprite gUnknown_83E7C38, ANIM_ATTACKER, 4, 0, -15, 1, 1 +HydroPumpHitSplats:: @ 81CEACE + createsprite gWaterHitSplatSpriteTemplate, ANIM_ATTACKER, 4, 0, 15, 1, 1 + createsprite gWaterHitSplatSpriteTemplate, ANIM_ATTACKER, 4, 0, -15, 1, 1 return Move_SIGNAL_BEAM:: @ 81CEAED @@ -5793,38 +5780,38 @@ Move_SIGNAL_BEAM:: @ 81CEAED createvisualtask AnimTask_ShakeMon, 5, 0, 0, 2, 25, 1 delay 6 panse_1B SE_W062, 192, 63, 1, 0 - createvisualtask sub_80AB100, 5, 100 - call gUnknown_81CEBB4 - call gUnknown_81CEBB4 - call gUnknown_81CEBB4 - call gUnknown_81CEBB4 - call gUnknown_81CEBB4 - call gUnknown_81CEBB4 + createvisualtask AnimTask_StartSinAnimTimer, 5, 100 + call SignalBeamOrbs + call SignalBeamOrbs + call SignalBeamOrbs + call SignalBeamOrbs + call SignalBeamOrbs + call SignalBeamOrbs createvisualtask AnimTask_ShakeMon, 5, 1, 3, 0, 25, 1 createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 4, 8, 5, 31, 8, 961, 8 - call gUnknown_81CEBB4 - call gUnknown_81CEBB4 - call gUnknown_81CEBB4 - call gUnknown_81CEBB4 - call gUnknown_81CEBB4 - call gUnknown_81CEBB4 - call gUnknown_81CEBB4 - call gUnknown_81CEBB4 - call gUnknown_81CEBB4 - call gUnknown_81CEBB4 - call gUnknown_81CEBB4 - call gUnknown_81CEBB4 - call gUnknown_81CEBB4 - call gUnknown_81CEBB4 - call gUnknown_81CEBB4 - call gUnknown_81CEBB4 - call gUnknown_81CEBB4 - waitforvisualfinish - end - -gUnknown_81CEBB4:: @ 81CEBB4 - createsprite gUnknown_83E598C, ANIM_TARGET, 3, 10, 10, 0, 16 - createsprite gUnknown_83E59A4, ANIM_TARGET, 3, 10, 10, 0, -16 + call SignalBeamOrbs + call SignalBeamOrbs + call SignalBeamOrbs + call SignalBeamOrbs + call SignalBeamOrbs + call SignalBeamOrbs + call SignalBeamOrbs + call SignalBeamOrbs + call SignalBeamOrbs + call SignalBeamOrbs + call SignalBeamOrbs + call SignalBeamOrbs + call SignalBeamOrbs + call SignalBeamOrbs + call SignalBeamOrbs + call SignalBeamOrbs + call SignalBeamOrbs + waitforvisualfinish + end + +SignalBeamOrbs:: @ 81CEBB4 + createsprite gSignalBeamRedOrbSpriteTemplate, ANIM_TARGET, 3, 10, 10, 0, 16 + createsprite gSignalBeamGreenOrbSpriteTemplate, ANIM_TARGET, 3, 10, 10, 0, -16 delay 1 return @@ -5832,7 +5819,7 @@ Move_ABSORB:: @ 81CEBD5 loadspritegfx ANIM_TAG_ORBS loadspritegfx ANIM_TAG_BLUE_STAR loadspritegfx ANIM_TAG_IMPACT - monbg 3 + monbg ANIM_DEF_PARTNER monbgprio_2A 1 setalpha 12, 8 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 0, 4, 13293 @@ -5843,18 +5830,18 @@ Move_ABSORB:: @ 81CEBD5 createvisualtask AnimTask_ShakeMon, 5, 1, 0, 5, 5, 1 waitforvisualfinish delay 3 - call gUnknown_81CEC44 + call AbsorbEffect waitforvisualfinish delay 15 - call gUnknown_81D56C9 + call HealingEffect waitforvisualfinish createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 4, 0, 13293 waitforvisualfinish - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER blendoff end -gUnknown_81CEC44:: @ 81CEC44 +AbsorbEffect:: @ 81CEC44 playsewithpan SE_W152, 63 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, 5, 8, 26 delay 4 @@ -5885,7 +5872,7 @@ Move_MEGA_DRAIN:: @ 81CECED loadspritegfx ANIM_TAG_ORBS loadspritegfx ANIM_TAG_BLUE_STAR loadspritegfx ANIM_TAG_IMPACT - monbg 3 + monbg ANIM_DEF_PARTNER monbgprio_2A 1 setalpha 12, 8 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 0, 8, 13293 @@ -5896,18 +5883,18 @@ Move_MEGA_DRAIN:: @ 81CECED createvisualtask AnimTask_ShakeMon, 5, 1, 0, 5, 5, 1 waitforvisualfinish delay 3 - call gUnknown_81CED5C + call MegaDrainAbsorbEffect waitforvisualfinish delay 15 - call gUnknown_81D56C9 + call HealingEffect waitforvisualfinish createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 8, 0, 13293 waitforvisualfinish - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER blendoff end -gUnknown_81CED5C:: @ 81CED5C +MegaDrainAbsorbEffect:: @ 81CED5C playsewithpan SE_W145C, 63 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, 5, 8, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 5, -18, -20, 35 @@ -5946,7 +5933,7 @@ Move_GIGA_DRAIN:: @ 81CEE7D loadspritegfx ANIM_TAG_ORBS loadspritegfx ANIM_TAG_BLUE_STAR loadspritegfx ANIM_TAG_IMPACT - monbg 3 + monbg ANIM_DEF_PARTNER monbgprio_2A 1 setalpha 12, 8 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 0, 12, 13293 @@ -5957,18 +5944,18 @@ Move_GIGA_DRAIN:: @ 81CEE7D createvisualtask AnimTask_ShakeMon, 5, 1, 0, 5, 5, 1 waitforvisualfinish delay 3 - call gUnknown_81CEEEC + call GigaDrainAbsorbEffect waitforvisualfinish delay 15 - call gUnknown_81D56C9 + call HealingEffect waitforvisualfinish createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 12, 0, 13293 waitforvisualfinish - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER blendoff end -gUnknown_81CEEEC:: @ 81CEEEC +GigaDrainAbsorbEffect:: @ 81CEEEC playsewithpan SE_W202, 63 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, 5, 8, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 5, -18, -40, 35 @@ -6017,11 +6004,11 @@ Move_LEECH_LIFE:: @ 81CF085 delay 1 loadspritegfx ANIM_TAG_BLUE_STAR loadspritegfx ANIM_TAG_IMPACT - monbg 3 + monbg ANIM_DEF_PARTNER monbgprio_2A 1 setalpha 12, 8 delay 1 - createsprite gUnknown_83E7278, ANIM_ATTACKER, 2, -20, 15, 12 + createsprite gLeechLifeNeedleSpriteTemplate, ANIM_ATTACKER, 2, -20, 15, 12 waitforvisualfinish createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 1, 2 playsewithpan SE_W071, 63 @@ -6030,14 +6017,14 @@ Move_LEECH_LIFE:: @ 81CF085 waitforvisualfinish createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 0, 7, 0 waitforvisualfinish - call gUnknown_81CEC44 + call AbsorbEffect waitforvisualfinish delay 15 - call gUnknown_81D56C9 + call HealingEffect waitforvisualfinish createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 7, 0, 0 waitforvisualfinish - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER blendoff end @@ -6046,34 +6033,34 @@ Move_SYNTHESIS:: @ 81CF107 loadspritegfx ANIM_TAG_SPARKLE_2 createvisualtask AnimTask_CurseBlendEffect, 2, 2, 2, 2, 0, 16, 19451 playsewithpan SE_W025, 192 - call gUnknown_81D569E + call GrantingStarsEffect waitforvisualfinish - call gUnknown_81D56C9 + call HealingEffect waitforvisualfinish end Move_TOXIC:: @ 81CF131 loadspritegfx ANIM_TAG_TOXIC_BUBBLE loadspritegfx ANIM_TAG_POISON_BUBBLE - call gUnknown_81CF14B - call gUnknown_81CF14B + call ToxicBubbles + call ToxicBubbles waitforvisualfinish delay 15 - call gUnknown_81D575B + call PoisonBubblesEffect waitforvisualfinish end -gUnknown_81CF14B:: @ 81CF14B - createsprite gUnknown_83E69AC, ANIM_TARGET, 2, -24, 16, 1, 1 +ToxicBubbles:: @ 81CF14B + createsprite gToxicBubbleSpriteTemplate, ANIM_TARGET, 2, -24, 16, 1, 1 playsewithpan SE_W092, 63 delay 15 - createsprite gUnknown_83E69AC, ANIM_TARGET, 2, 8, 16, 1, 1 + createsprite gToxicBubbleSpriteTemplate, ANIM_TARGET, 2, 8, 16, 1, 1 playsewithpan SE_W092, 63 delay 15 - createsprite gUnknown_83E69AC, ANIM_TARGET, 2, -8, 16, 1, 1 + createsprite gToxicBubbleSpriteTemplate, ANIM_TARGET, 2, -8, 16, 1, 1 playsewithpan SE_W092, 63 delay 15 - createsprite gUnknown_83E69AC, ANIM_TARGET, 2, 24, 16, 1, 1 + createsprite gToxicBubbleSpriteTemplate, ANIM_TARGET, 2, 24, 16, 1, 1 playsewithpan SE_W092, 63 delay 15 return @@ -6081,99 +6068,99 @@ gUnknown_81CF14B:: @ 81CF14B Move_SLUDGE:: @ 81CF1A0 loadspritegfx ANIM_TAG_POISON_BUBBLE playsewithpan SE_W145C, 192 - createsprite gUnknown_83E6A20, ANIM_TARGET, 2, 20, 0, 40, 0 + createsprite gSludgeProjectileSpriteTemplate, ANIM_TARGET, 2, 20, 0, 40, 0 waitforvisualfinish createvisualtask AnimTask_ShakeMon, 5, 1, 3, 0, 5, 1 createvisualtask AnimTask_CurseBlendEffect, 2, 4, 1, 2, 0, 12, 31774 - call gUnknown_81D575B + call PoisonBubblesEffect waitforvisualfinish end Move_SLUDGE_BOMB:: @ 81CF1E2 loadspritegfx ANIM_TAG_POISON_BUBBLE - call gUnknown_81CF2F2 - call gUnknown_81CF2F2 - call gUnknown_81CF2F2 - call gUnknown_81CF2F2 - call gUnknown_81CF2F2 - call gUnknown_81CF2F2 - call gUnknown_81CF2F2 - call gUnknown_81CF2F2 - call gUnknown_81CF2F2 - call gUnknown_81CF2F2 + call SludgeBombProjectile + call SludgeBombProjectile + call SludgeBombProjectile + call SludgeBombProjectile + call SludgeBombProjectile + call SludgeBombProjectile + call SludgeBombProjectile + call SludgeBombProjectile + call SludgeBombProjectile + call SludgeBombProjectile createvisualtask AnimTask_ShakeMon2, 5, 1, 3, 0, 15, 1 createvisualtask AnimTask_CurseBlendEffect, 2, 4, 1, 2, 0, 12, 31774 - createsprite gUnknown_83E6A50, ANIM_TARGET, 2, 42, 27, 20 - createsprite gUnknown_83E6A50, ANIM_TARGET, 2, -27, 44, 20 - createsprite gUnknown_83E6A50, ANIM_TARGET, 2, 39, -28, 20 - createsprite gUnknown_83E6A50, ANIM_TARGET, 2, -42, -42, 20 + createsprite gSludgeBombHitParticleSpriteTemplate, ANIM_TARGET, 2, 42, 27, 20 + createsprite gSludgeBombHitParticleSpriteTemplate, ANIM_TARGET, 2, -27, 44, 20 + createsprite gSludgeBombHitParticleSpriteTemplate, ANIM_TARGET, 2, 39, -28, 20 + createsprite gSludgeBombHitParticleSpriteTemplate, ANIM_TARGET, 2, -42, -42, 20 playsewithpan SE_W091, 63 delay 5 - createsprite gUnknown_83E6A50, ANIM_TARGET, 2, 0, 40, 20 - createsprite gUnknown_83E6A50, ANIM_TARGET, 2, -8, -44, 20 - createsprite gUnknown_83E6A50, ANIM_TARGET, 2, -46, -28, 20 - createsprite gUnknown_83E6A50, ANIM_TARGET, 2, 46, 9, 20 + createsprite gSludgeBombHitParticleSpriteTemplate, ANIM_TARGET, 2, 0, 40, 20 + createsprite gSludgeBombHitParticleSpriteTemplate, ANIM_TARGET, 2, -8, -44, 20 + createsprite gSludgeBombHitParticleSpriteTemplate, ANIM_TARGET, 2, -46, -28, 20 + createsprite gSludgeBombHitParticleSpriteTemplate, ANIM_TARGET, 2, 46, 9, 20 playsewithpan SE_W091, 63 delay 5 - createsprite gUnknown_83E6A50, ANIM_TARGET, 2, 42, 0, 20 - createsprite gUnknown_83E6A50, ANIM_TARGET, 2, -43, -12, 20 - createsprite gUnknown_83E6A50, ANIM_TARGET, 2, 16, -46, 20 - createsprite gUnknown_83E6A50, ANIM_TARGET, 2, -16, 44, 20 + createsprite gSludgeBombHitParticleSpriteTemplate, ANIM_TARGET, 2, 42, 0, 20 + createsprite gSludgeBombHitParticleSpriteTemplate, ANIM_TARGET, 2, -43, -12, 20 + createsprite gSludgeBombHitParticleSpriteTemplate, ANIM_TARGET, 2, 16, -46, 20 + createsprite gSludgeBombHitParticleSpriteTemplate, ANIM_TARGET, 2, -16, 44, 20 playsewithpan SE_W091, 63 delay 0 waitsound waitforvisualfinish - call gUnknown_81D575B + call PoisonBubblesEffect waitforvisualfinish end -gUnknown_81CF2F2:: @ 81CF2F2 +SludgeBombProjectile:: @ 81CF2F2 playsewithpan SE_W145C, 192 - createsprite gUnknown_83E6A20, ANIM_TARGET, 2, 20, 0, 40, 0 + createsprite gSludgeProjectileSpriteTemplate, ANIM_TARGET, 2, 20, 0, 40, 0 delay 3 return Move_ACID:: @ 81CF308 loadspritegfx ANIM_TAG_POISON_BUBBLE - monbg 3 - createsprite gUnknown_83E6A38, ANIM_TARGET, 2, 20, 0, 40, 1, 0, 0 + monbg ANIM_DEF_PARTNER + createsprite gAcidPoisonBubbleSpriteTemplate, ANIM_TARGET, 2, 20, 0, 40, 1, 0, 0 playsewithpan SE_W145C, 192 delay 5 - createsprite gUnknown_83E6A38, ANIM_TARGET, 2, 20, 0, 40, 1, 24, 0 + createsprite gAcidPoisonBubbleSpriteTemplate, ANIM_TARGET, 2, 20, 0, 40, 1, 24, 0 playsewithpan SE_W145C, 192 delay 5 - createsprite gUnknown_83E6A38, ANIM_TARGET, 2, 20, 0, 40, 1, -24, 0 + createsprite gAcidPoisonBubbleSpriteTemplate, ANIM_TARGET, 2, 20, 0, 40, 1, -24, 0 playsewithpan SE_W145C, 192 delay 15 createvisualtask AnimTask_ShakeMon2, 5, 1, 2, 0, 10, 1 createvisualtask AnimTask_ShakeMon2, 5, 3, 2, 0, 10, 1 createvisualtask AnimTask_CurseBlendEffect, 2, 20, 2, 2, 0, 12, 31774 - createsprite gUnknown_83E6A84, ANIM_TARGET, 2, 0, -22, 0, 15, 55 + createsprite gAcidPoisonDropletSpriteTemplate, ANIM_TARGET, 2, 0, -22, 0, 15, 55 playsewithpan SE_W145, 63 delay 10 - createsprite gUnknown_83E6A84, ANIM_TARGET, 2, -26, -24, 0, 15, 55 + createsprite gAcidPoisonDropletSpriteTemplate, ANIM_TARGET, 2, -26, -24, 0, 15, 55 playsewithpan SE_W145, 63 delay 10 - createsprite gUnknown_83E6A84, ANIM_TARGET, 2, 15, -27, 0, 15, 50 + createsprite gAcidPoisonDropletSpriteTemplate, ANIM_TARGET, 2, 15, -27, 0, 15, 50 playsewithpan SE_W145, 63 delay 10 - createsprite gUnknown_83E6A84, ANIM_TARGET, 2, -15, -17, 0, 10, 45 + createsprite gAcidPoisonDropletSpriteTemplate, ANIM_TARGET, 2, -15, -17, 0, 10, 45 playsewithpan SE_W145, 63 delay 10 - createsprite gUnknown_83E6A84, ANIM_TARGET, 2, 27, -22, 0, 15, 50 + createsprite gAcidPoisonDropletSpriteTemplate, ANIM_TARGET, 2, 27, -22, 0, 15, 50 playsewithpan SE_W145, 63 waitforvisualfinish - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER end Move_BONEMERANG:: @ 81CF402 loadspritegfx ANIM_TAG_BONE loadspritegfx ANIM_TAG_IMPACT - monbg 3 + monbg ANIM_DEF_PARTNER monbgprio_28 1 setalpha 12, 8 playsewithpan SE_W155, 192 - createsprite gUnknown_83E7A28, ANIM_ATTACKER, 2, + createsprite gBonemerangSpriteTemplate, ANIM_ATTACKER, 2 delay 20 playsewithpan SE_W030, 63 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 1, 1 @@ -6182,47 +6169,47 @@ Move_BONEMERANG:: @ 81CF402 playsewithpan SE_W233, 192 createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 6, -4 waitforvisualfinish - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER blendoff end Move_BONE_CLUB:: @ 81CF456 loadspritegfx ANIM_TAG_BONE loadspritegfx ANIM_TAG_IMPACT - monbg 3 + monbg ANIM_DEF_PARTNER monbgprio_28 1 setalpha 12, 8 playsewithpan SE_W155, 63 - createsprite gUnknown_83E7A40, ANIM_ATTACKER, 2, -42, -25, 0, 0, 15 + createsprite gSpinningBoneSpriteTemplate, ANIM_ATTACKER, 2, -42, -25, 0, 0, 15 delay 12 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 1, 1 createvisualtask AnimTask_ShakeMon, 5, 1, 0, 5, 5, 1 createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 7, 5, 1, 0, 10, 0, 0 playsewithpan SE_W233B, 63 waitforvisualfinish - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER blendoff end Move_BONE_RUSH:: @ 81CF4B8 loadspritegfx ANIM_TAG_BONE loadspritegfx ANIM_TAG_IMPACT - monbg 3 + monbg ANIM_DEF_PARTNER setalpha 12, 8 playsewithpan SE_W155, 63 - createsprite gUnknown_83E7A40, ANIM_ATTACKER, 2, -42, -25, 0, 0, 15 + createsprite gSpinningBoneSpriteTemplate, ANIM_ATTACKER, 2, -42, -25, 0, 0, 15 delay 12 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 1, 2 createvisualtask AnimTask_ShakeMon, 5, 1, 0, 3, 5, 1 playsewithpan SE_W030, 63 waitforvisualfinish - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER blendoff end Move_SPIKES:: @ 81CF503 loadspritegfx ANIM_TAG_SPIKES - monbg 3 + monbg ANIM_DEF_PARTNER playsewithpan SE_W026, 192 waitplaysewithpan SE_W030, 63, 28 createsprite gSpikesSpriteTemplate, ANIM_TARGET, 2, 20, 0, 0, 24, 30 @@ -6234,20 +6221,19 @@ Move_SPIKES:: @ 81CF503 waitplaysewithpan SE_W030, 63, 28 createsprite gSpikesSpriteTemplate, ANIM_TARGET, 2, 20, 0, 24, 24, 30 waitforvisualfinish - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER end Move_MEGAHORN:: @ 81CF55A loadspritegfx ANIM_TAG_HORN_HIT_2 loadspritegfx ANIM_TAG_IMPACT - monbg 3 + monbg ANIM_DEF_PARTNER playsewithpan SE_W082, 192 - jumpifcontest gUnknown_81CF631 + jumpifcontest MegahornInContest fadetobg 7 waitbgfadeout - createvisualtask sub_80BB82C, 5, -2304, 768, 1, -1 - -gUnknown_81CF57D:: @ 81CF57D + createvisualtask AnimTask_StartSlidingBg, 5, -2304, 768, 1, -1 +MegahornContinue:: @ 81CF57D waitbgfadein setalpha 12, 8 createvisualtask AnimTask_ShakeMon, 5, 0, 2, 0, 15, 1 @@ -6255,7 +6241,7 @@ gUnknown_81CF57D:: @ 81CF57D delay 10 createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 0, 24, 0, 0, 6 delay 3 - createsprite gUnknown_83E7224, ANIM_ATTACKER, 3, -42, 25, 0, 0, 6 + createsprite gMegahornHornSpriteTemplate, ANIM_ATTACKER, 3, -42, 25, 0, 0, 6 delay 4 playsewithpan SE_W011, 63 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 1, 0 @@ -6269,7 +6255,7 @@ gUnknown_81CF57D:: @ 81CF57D createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 1, 0, 7 waitforvisualfinish waitforvisualfinish - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER blendoff restorebg waitbgfadeout @@ -6277,41 +6263,41 @@ gUnknown_81CF57D:: @ 81CF57D waitbgfadein end -gUnknown_81CF631:: @ 81CF631 +MegahornInContest:: @ 81CF631 fadetobg 8 waitbgfadeout - createvisualtask sub_80BB82C, 5, 2304, 768, 0, -1 - goto gUnknown_81CF57D + createvisualtask AnimTask_StartSlidingBg, 5, 2304, 768, 0, -1 + goto MegahornContinue Move_GUST:: @ 81CF648 loadspritegfx ANIM_TAG_GUST loadspritegfx ANIM_TAG_IMPACT - monbg 3 + monbg ANIM_DEF_PARTNER monbgprio_28 1 setalpha 12, 8 playsewithpan SE_W016, 63 - createsprite gUnknown_83E6AE8, ANIM_ATTACKER, 2, 0, -16 - createvisualtask sub_80B194C, 5, 1, 70 + createsprite gEllipticalGustSpriteTemplate, ANIM_ATTACKER, 2, 0, -16 + createvisualtask AnimTask_AnimateGustTornadoPalette, 5, 1, 70 waitforvisualfinish createvisualtask AnimTask_ShakeMon2, 5, 1, 1, 0, 7, 1 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 1, 2 playsewithpan SE_W016B, 63 waitforvisualfinish - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER blendoff end Move_WING_ATTACK:: @ 81CF699 loadspritegfx ANIM_TAG_GUST loadspritegfx ANIM_TAG_IMPACT - monbg 3 + monbg ANIM_DEF_PARTNER monbgprio_28 1 setalpha 12, 8 loopsewithpan SE_W017, 192, 20, 2 createvisualtask AnimTask_TranslateMonElliptical, 2, 0, 12, 4, 1, 4 - createvisualtask sub_80B194C, 5, 1, 70 - createsprite gUnknown_83E6B1C, ANIM_ATTACKER, 2, -25, 0, 0, 0, 20 - createsprite gUnknown_83E6B1C, ANIM_ATTACKER, 2, 25, 0, 0, 0, 20 + createvisualtask AnimTask_AnimateGustTornadoPalette, 5, 1, 70 + createsprite gGustToTargetSpriteTemplate, ANIM_ATTACKER, 2, -25, 0, 0, 0, 20 + createsprite gGustToTargetSpriteTemplate, ANIM_ATTACKER, 2, 25, 0, 0, 0, 20 delay 24 createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 0, 24, 0, 0, 9 delay 17 @@ -6321,90 +6307,90 @@ Move_WING_ATTACK:: @ 81CF699 waitforvisualfinish createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 11 waitforvisualfinish - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER blendoff end Move_PECK:: @ 81CF736 loadspritegfx ANIM_TAG_IMPACT playsewithpan SE_W030, 63 - createvisualtask sub_8099A78, 2, 3, -768, 1, 2 - createsprite gUnknown_83E7C98, ANIM_TARGET, 3, -12, 0, 1, 3 + createvisualtask AnimTask_RotateMonToSideAndRestore, 2, 3, -768, 1, 2 + createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, -12, 0, 1, 3 waitforvisualfinish end Move_AEROBLAST:: @ 81CF75D loadspritegfx ANIM_TAG_AIR_WAVE_2 loadspritegfx ANIM_TAG_IMPACT - monbg 3 - call gUnknown_81D59CF + monbg ANIM_DEF_PARTNER + call SetSkyBg monbgprio_28 1 setalpha 12, 8 - call gUnknown_81CF7B9 + call AeroblastBeam createvisualtask AnimTask_ShakeMon, 5, 1, 5, 0, 50, 1 - call gUnknown_81CF7B9 - call gUnknown_81CF7B9 - call gUnknown_81CF7B9 - call gUnknown_81CF7B9 + call AeroblastBeam + call AeroblastBeam + call AeroblastBeam + call AeroblastBeam waitforvisualfinish createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 1, 0 playsewithpan SE_W013, 63 waitforvisualfinish - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER blendoff delay 0 - call gUnknown_81D59FF + call UnsetSkyBg end -gUnknown_81CF7B9:: @ 81CF7B9 +AeroblastBeam:: @ 81CF7B9 playsewithpan SE_W026, 192 - createsprite gUnknown_83E6B4C, ANIM_ATTACKER, 2, 14, -12, 0, -12, 15, 0, 0 - createsprite gUnknown_83E6B4C, ANIM_ATTACKER, 2, 26, 8, 12, 8, 15, 0, 0 + createsprite gAirWaveCrescentSpriteTemplate, ANIM_ATTACKER, 2, 14, -12, 0, -12, 15, 0, 0 + createsprite gAirWaveCrescentSpriteTemplate, ANIM_ATTACKER, 2, 26, 8, 12, 8, 15, 0, 0 delay 3 playsewithpan SE_W026, 192 - createsprite gUnknown_83E6B4C, ANIM_ATTACKER, 2, 14, -12, 0, -12, 15, 1, 0 - createsprite gUnknown_83E6B4C, ANIM_ATTACKER, 2, 26, 8, 12, 8, 15, 1, 0 + createsprite gAirWaveCrescentSpriteTemplate, ANIM_ATTACKER, 2, 14, -12, 0, -12, 15, 1, 0 + createsprite gAirWaveCrescentSpriteTemplate, ANIM_ATTACKER, 2, 26, 8, 12, 8, 15, 1, 0 delay 3 playsewithpan SE_W026, 192 - createsprite gUnknown_83E6B4C, ANIM_ATTACKER, 2, 14, -12, 0, -12, 15, 2, 0 - createsprite gUnknown_83E6B4C, ANIM_ATTACKER, 2, 26, 8, 12, 8, 15, 2, 0 + createsprite gAirWaveCrescentSpriteTemplate, ANIM_ATTACKER, 2, 14, -12, 0, -12, 15, 2, 0 + createsprite gAirWaveCrescentSpriteTemplate, ANIM_ATTACKER, 2, 26, 8, 12, 8, 15, 2, 0 delay 3 playsewithpan SE_W026, 192 - createsprite gUnknown_83E6B4C, ANIM_ATTACKER, 2, 14, -12, 0, -12, 15, 3, 0 - createsprite gUnknown_83E6B4C, ANIM_ATTACKER, 2, 26, 8, 12, 8, 15, 3, 0 + createsprite gAirWaveCrescentSpriteTemplate, ANIM_ATTACKER, 2, 14, -12, 0, -12, 15, 3, 0 + createsprite gAirWaveCrescentSpriteTemplate, ANIM_ATTACKER, 2, 26, 8, 12, 8, 15, 3, 0 delay 3 return Move_WATER_GUN:: @ 81CF87A loadspritegfx ANIM_TAG_SMALL_BUBBLES loadspritegfx ANIM_TAG_WATER_IMPACT - monbg 3 + monbg ANIM_DEF_PARTNER monbgprio_28 1 setalpha 12, 8 - createsprite gUnknown_83E5A80, ANIM_ATTACKER, 2, 20, 0, 0, 0, 40, -25 + createsprite gWaterGunProjectileSpriteTemplate, ANIM_ATTACKER, 2, 20, 0, 0, 0, 40, -25 playsewithpan SE_W145, 192 waitforvisualfinish createvisualtask AnimTask_ShakeMon2, 5, 1, 1, 0, 8, 1 - createsprite gUnknown_83E7C38, ANIM_ATTACKER, 4, 0, 0, 1, 2 - createsprite gUnknown_83E5A98, ANIM_ATTACKER, 2, 0, -15, 0, 15, 55 + createsprite gWaterHitSplatSpriteTemplate, ANIM_ATTACKER, 4, 0, 0, 1, 2 + createsprite gWaterGunDropletSpriteTemplate, ANIM_ATTACKER, 2, 0, -15, 0, 15, 55 playsewithpan SE_W152, 63 delay 10 - createsprite gUnknown_83E5A98, ANIM_ATTACKER, 2, 15, -20, 0, 15, 50 + createsprite gWaterGunDropletSpriteTemplate, ANIM_ATTACKER, 2, 15, -20, 0, 15, 50 playsewithpan SE_W152, 63 delay 10 - createsprite gUnknown_83E5A98, ANIM_ATTACKER, 2, -15, -10, 0, 10, 45 + createsprite gWaterGunDropletSpriteTemplate, ANIM_ATTACKER, 2, -15, -10, 0, 10, 45 playsewithpan SE_W152, 63 waitforvisualfinish - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER blendoff end Move_CRABHAMMER:: @ 81CF907 loadspritegfx ANIM_TAG_ICE_CRYSTALS loadspritegfx ANIM_TAG_WATER_IMPACT - monbg 3 + monbg ANIM_DEF_PARTNER setalpha 12, 8 - createsprite gUnknown_83E7C38, ANIM_ATTACKER, 4, 0, 0, 1, 0 + createsprite gWaterHitSplatSpriteTemplate, ANIM_ATTACKER, 4, 0, 0, 1, 0 playsewithpan SE_W233B, 63 delay 1 createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 3, 1, 32429, 10, 0, 0 @@ -6416,28 +6402,28 @@ Move_CRABHAMMER:: @ 81CF907 waitforvisualfinish loopsewithpan SE_W152, 63, 20, 3 createvisualtask AnimTask_ShakeMon, 5, 1, 0, 4, 8, 1 - createsprite gUnknown_83E5AB0, ANIM_ATTACKER, 2, 10, 10, 20, 1 + createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, 10, 10, 20, 1 delay 4 - createsprite gUnknown_83E5AB0, ANIM_ATTACKER, 2, 20, -20, 20, 1 + createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, 20, -20, 20, 1 delay 4 - createsprite gUnknown_83E5AB0, ANIM_ATTACKER, 2, -15, 15, 20, 1 + createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, -15, 15, 20, 1 delay 4 - createsprite gUnknown_83E5AB0, ANIM_ATTACKER, 2, 0, 0, 20, 1 + createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 20, 1 delay 4 - createsprite gUnknown_83E5AB0, ANIM_ATTACKER, 2, -10, -20, 20, 1 + createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, -10, -20, 20, 1 delay 4 - createsprite gUnknown_83E5AB0, ANIM_ATTACKER, 2, 16, -8, 20, 1 + createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, 16, -8, 20, 1 delay 4 - createsprite gUnknown_83E5AB0, ANIM_ATTACKER, 2, 5, 8, 20, 1 + createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, 5, 8, 20, 1 delay 4 - createsprite gUnknown_83E5AB0, ANIM_ATTACKER, 2, -16, 0, 20, 1 + createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, -16, 0, 20, 1 waitforvisualfinish - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER blendoff end Move_SURF:: @ 81CFA01 - createvisualtask sub_80AB38C, 2, 0 + createvisualtask AnimTask_CreateSurfWave, 2, 0 delay 24 panse_1B SE_W057, 192, 63, 2, 0 waitforvisualfinish @@ -6445,34 +6431,34 @@ Move_SURF:: @ 81CFA01 Move_FLAMETHROWER:: @ 81CFA15 loadspritegfx ANIM_TAG_SMALL_EMBER - monbg 3 + monbg ANIM_DEF_PARTNER monbgprio_28 1 setalpha 12, 8 createvisualtask AnimTask_ShakeMon, 5, 0, 0, 2, 46, 1 delay 6 - createvisualtask sub_80AB100, 5, 100 + createvisualtask AnimTask_StartSinAnimTimer, 5, 100 panse_1B SE_W053, 192, 63, 2, 0 - call gUnknown_81CFA8F - call gUnknown_81CFA8F - call gUnknown_81CFA8F + call FlamethrowerCreateFlames + call FlamethrowerCreateFlames + call FlamethrowerCreateFlames createvisualtask AnimTask_ShakeMon, 5, 1, 3, 0, 43, 1 - call gUnknown_81CFA8F - call gUnknown_81CFA8F - call gUnknown_81CFA8F - call gUnknown_81CFA8F - call gUnknown_81CFA8F - call gUnknown_81CFA8F - call gUnknown_81CFA8F - call gUnknown_81CFA8F + call FlamethrowerCreateFlames + call FlamethrowerCreateFlames + call FlamethrowerCreateFlames + call FlamethrowerCreateFlames + call FlamethrowerCreateFlames + call FlamethrowerCreateFlames + call FlamethrowerCreateFlames + call FlamethrowerCreateFlames waitforvisualfinish - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER blendoff end -gUnknown_81CFA8F:: @ 81CFA8F - createsprite gUnknown_83E59D0, ANIM_ATTACKER, 3, 10, 10, 0, 16 +FlamethrowerCreateFlames:: @ 81CFA8F + createsprite gFlamethrowerFlameSpriteTemplate, ANIM_ATTACKER, 3, 10, 10, 0, 16 delay 2 - createsprite gUnknown_83E59D0, ANIM_ATTACKER, 3, 10, 10, 0, 16 + createsprite gFlamethrowerFlameSpriteTemplate, ANIM_ATTACKER, 3, 10, 10, 0, 16 delay 2 return @@ -6481,173 +6467,171 @@ Move_SANDSTORM:: @ 81CFAB2 playsewithpan SE_W201, 0 createvisualtask AnimTask_LoadSandstormBackground, 5, 0 delay 16 - createsprite gUnknown_83E7450, ANIM_ATTACKER, 40, 10, 2304, 96, 0 + createsprite gFlyingSandCrescentSpriteTemplate, ANIM_ATTACKER, 40, 10, 2304, 96, 0 delay 10 - createsprite gUnknown_83E7450, ANIM_ATTACKER, 40, 90, 2048, 96, 0 + createsprite gFlyingSandCrescentSpriteTemplate, ANIM_ATTACKER, 40, 90, 2048, 96, 0 delay 10 - createsprite gUnknown_83E7450, ANIM_ATTACKER, 40, 50, 2560, 96, 0 + createsprite gFlyingSandCrescentSpriteTemplate, ANIM_ATTACKER, 40, 50, 2560, 96, 0 delay 10 - createsprite gUnknown_83E7450, ANIM_ATTACKER, 40, 20, 2304, 96, 0 + createsprite gFlyingSandCrescentSpriteTemplate, ANIM_ATTACKER, 40, 20, 2304, 96, 0 delay 10 - createsprite gUnknown_83E7450, ANIM_ATTACKER, 40, 70, 1984, 96, 0 + createsprite gFlyingSandCrescentSpriteTemplate, ANIM_ATTACKER, 40, 70, 1984, 96, 0 delay 10 - createsprite gUnknown_83E7450, ANIM_ATTACKER, 40, 0, 2816, 96, 0 + createsprite gFlyingSandCrescentSpriteTemplate, ANIM_ATTACKER, 40, 0, 2816, 96, 0 delay 10 - createsprite gUnknown_83E7450, ANIM_ATTACKER, 40, 60, 2560, 96, 0 + createsprite gFlyingSandCrescentSpriteTemplate, ANIM_ATTACKER, 40, 60, 2560, 96, 0 end Move_WHIRLPOOL:: @ 81CFB3A loadspritegfx ANIM_TAG_WATER_ORB - monbg 3 + monbg ANIM_DEF_PARTNER monbgprio_28 1 setalpha 12, 8 delay 0 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, 4, 2, 0, 7, 23968 playsewithpan SE_W250, 63 createvisualtask AnimTask_ShakeMon, 5, 1, 0, 2, 50, 1 - call gUnknown_81CFB92 - call gUnknown_81CFB92 - call gUnknown_81CFB92 + call WhirlpoolEffect + call WhirlpoolEffect + call WhirlpoolEffect delay 12 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, 4, 2, 7, 0, 23968 waitforvisualfinish - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER end -gUnknown_81CFB92:: @ 81CFB92 - createsprite gUnknown_83E7420, ANIM_TARGET, 2, 0, 28, 384, 50, 8, 50, 1 +WhirlpoolEffect:: @ 81CFB92 + createsprite gWhirlpoolSpriteTemplate, ANIM_TARGET, 2, 0, 28, 384, 50, 8, 50, 1 delay 2 - createsprite gUnknown_83E7420, ANIM_TARGET, 2, 0, 32, 240, 40, 11, -46, 1 + createsprite gWhirlpoolSpriteTemplate, ANIM_TARGET, 2, 0, 32, 240, 40, 11, -46, 1 delay 2 - createsprite gUnknown_83E7420, ANIM_TARGET, 2, 0, 33, 416, 40, 4, 42, 1 + createsprite gWhirlpoolSpriteTemplate, ANIM_TARGET, 2, 0, 33, 416, 40, 4, 42, 1 delay 2 - createsprite gUnknown_83E7420, ANIM_TARGET, 2, 0, 31, 288, 45, 6, -42, 1 + createsprite gWhirlpoolSpriteTemplate, ANIM_TARGET, 2, 0, 31, 288, 45, 6, -42, 1 delay 2 - createsprite gUnknown_83E7420, ANIM_TARGET, 2, 0, 28, 448, 45, 11, 46, 1 + createsprite gWhirlpoolSpriteTemplate, ANIM_TARGET, 2, 0, 28, 448, 45, 11, 46, 1 delay 2 - createsprite gUnknown_83E7420, ANIM_TARGET, 2, 0, 33, 464, 50, 10, -50, 1 + createsprite gWhirlpoolSpriteTemplate, ANIM_TARGET, 2, 0, 33, 464, 50, 10, -50, 1 delay 2 return Move_FLY:: @ 81CFC1D loadspritegfx ANIM_TAG_ROUND_SHADOW loadspritegfx ANIM_TAG_IMPACT - choosetwoturnanim BattleAnimScript_Fly_Turn1, BattleAnimScript_Fly_Turn2 - -BattleAnimScript_Fly_End:: @ 81CFC2C + choosetwoturnanim FlySetUp, FlyUnleash +FlyEnd:: @ 81CFC2C waitforvisualfinish end -BattleAnimScript_Fly_Turn1:: @ 81CFC2E +FlySetUp:: @ 81CFC2E playsewithpan SE_W019, 192 - createsprite gUnknown_83E6BB8, ANIM_ATTACKER, 2, 0, 0, 13, 336 - goto BattleAnimScript_Fly_End + createsprite gFlyBallUpSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 13, 336 + goto FlyEnd -BattleAnimScript_Fly_Turn2:: @ 81CFC46 - monbg 3 +FlyUnleash:: @ 81CFC46 + monbg ANIM_DEF_PARTNER setalpha 12, 8 playsewithpan SE_W104, 192 - createsprite gUnknown_83E6BD0, ANIM_ATTACKER, 2, 20 + createsprite gFlyBallAttackSpriteTemplate, ANIM_ATTACKER, 2, 20 delay 20 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 1, 0 createvisualtask AnimTask_ShakeMon, 5, 1, 6, 0, 8, 1 playsewithpan SE_W013, 63 waitforvisualfinish - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER blendoff - goto BattleAnimScript_Fly_End + goto FlyEnd Move_BOUNCE:: @ 81CFC87 loadspritegfx ANIM_TAG_ROUND_SHADOW loadspritegfx ANIM_TAG_IMPACT - choosetwoturnanim BattleAnimScript_Bounce_Turn1, BattleAnimScript_Bounce_Turn2 - -BattleAnimScript_Bounce_End:: @ 81CFC96 + choosetwoturnanim BounceSetUp, BounceUnleash +BounceEnd:: @ 81CFC96 end -BattleAnimScript_Bounce_Turn1:: @ 81CFC97 +BounceSetUp:: @ 81CFC97 playsewithpan SE_W100, 192 - createsprite gUnknown_83E6CD0, ANIM_ATTACKER, 2, 0, 0 - goto BattleAnimScript_Bounce_End + createsprite gBounceBallShrinkSpriteTemplate, ANIM_ATTACKER, 2, 0, 0 + goto BounceEnd -BattleAnimScript_Bounce_Turn2:: @ 81CFCAB - monbg 3 +BounceUnleash:: @ 81CFCAB + monbg ANIM_DEF_PARTNER setalpha 12, 8 playsewithpan SE_W207, 63 - createsprite gUnknown_83E6CFC, ANIM_TARGET, 3, + createsprite gBounceBallLandSpriteTemplate, ANIM_TARGET, 3 delay 7 playsewithpan SE_W025B, 63 createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, 1, 0 createvisualtask AnimTask_ShakeMon, 5, 1, 0, 5, 11, 1 waitforvisualfinish - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER blendoff - goto BattleAnimScript_Bounce_End + goto BounceEnd Move_KARATE_CHOP:: @ 81CFCEA loadspritegfx ANIM_TAG_HANDS_AND_FEET loadspritegfx ANIM_TAG_IMPACT - monbg 3 + monbg ANIM_DEF_PARTNER monbgprio_28 1 setalpha 12, 8 playsewithpan SE_W104, 63 - createsprite gUnknown_83E66E0, ANIM_ATTACKER, 2, -16, 0, 0, 0, 10, 1, 3, 0 + createsprite gKarateChopSpriteTemplate, ANIM_ATTACKER, 2, -16, 0, 0, 0, 10, 1, 3, 0 waitforvisualfinish playsewithpan SE_W004, 63 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 1, 2 createvisualtask AnimTask_ShakeMon, 5, 1, 4, 0, 6, 1 waitforvisualfinish - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER blendoff end Move_CROSS_CHOP:: @ 81CFD3C loadspritegfx ANIM_TAG_HANDS_AND_FEET loadspritegfx ANIM_TAG_CROSS_IMPACT - monbg 3 + monbg ANIM_DEF_PARTNER setalpha 12, 8 playsewithpan SE_W025, 63 - createsprite gUnknown_83E6740, ANIM_ATTACKER, 2, 0, 0, 0 - createsprite gUnknown_83E6740, ANIM_ATTACKER, 2, 0, 0, 1 + createsprite gCrossChopHandSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 0 + createsprite gCrossChopHandSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 1 delay 40 playsewithpan SE_W013, 63 createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 3, 1, RGB_WHITE, 10, 0, 10 - createsprite gUnknown_83E7C80, ANIM_ATTACKER, 3, 0, 0, 1, 20 + createsprite gCrossImpactSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 1, 20 createvisualtask AnimTask_ShakeMon, 5, 1, 7, 0, 9, 1 waitforvisualfinish - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER blendoff end Move_JUMP_KICK:: @ 81CFDA5 loadspritegfx ANIM_TAG_HANDS_AND_FEET loadspritegfx ANIM_TAG_IMPACT - monbg 3 + monbg ANIM_DEF_PARTNER setalpha 12, 8 createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 4, 4 delay 3 - createsprite gUnknown_83E66F8, ANIM_ATTACKER, 2, -16, 8, 0, 0, 10, 1, 1, 1 + createsprite gJumpKickSpriteTemplate, ANIM_ATTACKER, 2, -16, 8, 0, 0, 10, 1, 1, 1 playsewithpan SE_W026, 63 waitforvisualfinish createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 1, 0, 0, 1, 1 createvisualtask AnimTask_ShakeMon, 5, 1, 5, 0, 7, 1 playsewithpan SE_W004, 63 waitforvisualfinish - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER blendoff end Move_HI_JUMP_KICK:: @ 81CFE02 loadspritegfx ANIM_TAG_HANDS_AND_FEET loadspritegfx ANIM_TAG_IMPACT - monbg 3 + monbg ANIM_DEF_PARTNER setalpha 12, 8 createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 0, -24, 0, 0, 8 waitforvisualfinish delay 10 createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 3 delay 2 - createsprite gUnknown_83E66F8, ANIM_ATTACKER, 2, -16, 8, 0, 0, 10, 1, 1, 1 + createsprite gJumpKickSpriteTemplate, ANIM_ATTACKER, 2, -16, 8, 0, 0, 10, 1, 1, 1 playsewithpan SE_W026, 63 waitforvisualfinish createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 1, 1 @@ -6659,57 +6643,56 @@ Move_HI_JUMP_KICK:: @ 81CFE02 delay 5 createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 1, 0, 6 waitforvisualfinish - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER blendoff end Move_DOUBLE_KICK:: @ 81CFE98 loadspritegfx ANIM_TAG_HANDS_AND_FEET loadspritegfx ANIM_TAG_IMPACT - monbg 3 + monbg ANIM_DEF_PARTNER setalpha 12, 8 - createsprite gUnknown_83E6728, ANIM_ATTACKER, 3, 1, 20, 1 + createsprite gFistFootRandomPosSpriteTemplate, ANIM_ATTACKER, 3, 1, 20, 1 createvisualtask AnimTask_ShakeMon, 5, 1, 4, 0, 6, 1 playsewithpan SE_W233B, 63 waitforvisualfinish waitforvisualfinish - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER blendoff end Move_TRIPLE_KICK:: @ 81CFECB loadspritegfx ANIM_TAG_HANDS_AND_FEET loadspritegfx ANIM_TAG_IMPACT - monbg 3 + monbg ANIM_DEF_PARTNER setalpha 12, 8 playsewithpan SE_W233B, 63 - jumpifmoveturn 0, gUnknown_81CFEF0 - jumpifmoveturn 1, gUnknown_81CFF26 - goto gUnknown_81CFF5C - -gUnknown_81CFEEB:: @ 81CFEEB + jumpifmoveturn 0, TripleKickLeft + jumpifmoveturn 1, TripleKickRight + goto TripleKickCenter +TripleKickContinue:: @ 81CFEEB waitforvisualfinish - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER blendoff end -gUnknown_81CFEF0:: @ 81CFEF0 +TripleKickLeft:: @ 81CFEF0 createsprite gFistFootSpriteTemplate, ANIM_TARGET, 4, -16, -8, 20, 1, 1 createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, -16, -16, 1, 2 createvisualtask AnimTask_ShakeMon, 5, 1, 4, 0, 6, 1 - goto gUnknown_81CFEEB + goto TripleKickContinue -gUnknown_81CFF26:: @ 81CFF26 +TripleKickRight:: @ 81CFF26 createsprite gFistFootSpriteTemplate, ANIM_TARGET, 4, 8, 8, 20, 1, 1 createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 8, 0, 1, 2 createvisualtask AnimTask_ShakeMon, 5, 1, 4, 0, 6, 1 - goto gUnknown_81CFEEB + goto TripleKickContinue -gUnknown_81CFF5C:: @ 81CFF5C +TripleKickCenter:: @ 81CFF5C createsprite gFistFootSpriteTemplate, ANIM_TARGET, 4, 0, 0, 20, 1, 1 createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, -8, 1, 1 createvisualtask AnimTask_ShakeMon, 5, 1, 6, 0, 8, 1 - goto gUnknown_81CFEEB + goto TripleKickContinue Move_DYNAMIC_PUNCH:: @ 81CFF92 loadspritegfx ANIM_TAG_HANDS_AND_FEET @@ -6717,7 +6700,7 @@ Move_DYNAMIC_PUNCH:: @ 81CFF92 loadspritegfx ANIM_TAG_EXPLOSION loadspritegfx ANIM_TAG_EXPLOSION_6 delay 1 - monbg 3 + monbg ANIM_DEF_PARTNER setalpha 12, 8 playsewithpan SE_W233B, 63 createsprite gFistFootSpriteTemplate, ANIM_TARGET, 3, 0, 0, 20, 1, 0 @@ -6741,14 +6724,14 @@ Move_DYNAMIC_PUNCH:: @ 81CFF92 playsewithpan SE_W120, 63 createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, 16, 16, 1, 1 waitforvisualfinish - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER blendoff end Move_COUNTER:: @ 81D005A loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_HANDS_AND_FEET - monbg 3 + monbg ANIM_DEF_PARTNER setalpha 12, 8 createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, 0, 18, 6, 1, 4 playsewithpan SE_W233, 192 @@ -6773,13 +6756,13 @@ Move_COUNTER:: @ 81D005A delay 5 createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 5 waitforvisualfinish - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER blendoff end Move_VITAL_THROW:: @ 81D0129 loadspritegfx ANIM_TAG_IMPACT - monbg 3 + monbg ANIM_DEF_PARTNER setalpha 12, 8 playsewithpan SE_W233, 192 createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, 0, 12, 4, 1, 2 @@ -6796,7 +6779,7 @@ Move_VITAL_THROW:: @ 81D0129 delay 11 createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 1, 0, 10 waitforvisualfinish - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER blendoff end @@ -6804,7 +6787,7 @@ Move_ROCK_SMASH:: @ 81D01A4 loadspritegfx ANIM_TAG_ROCKS loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_HANDS_AND_FEET - monbg 3 + monbg ANIM_DEF_PARTNER setalpha 12, 8 delay 1 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 1, 1 @@ -6813,23 +6796,23 @@ Move_ROCK_SMASH:: @ 81D01A4 createvisualtask AnimTask_ShakeMon, 2, 1, 3, 0, 5, 1 waitforvisualfinish playsewithpan SE_W088, 63 - createsprite gUnknown_83E73CC, ANIM_ATTACKER, 2, 0, 0, 20, 24, 14, 2 - createsprite gUnknown_83E73CC, ANIM_ATTACKER, 2, 5, 0, -20, 24, 14, 1 - createsprite gUnknown_83E73CC, ANIM_ATTACKER, 2, 0, 5, 20, -24, 14, 2 - createsprite gUnknown_83E73CC, ANIM_ATTACKER, 2, -5, 0, -20, -24, 14, 2 - createsprite gUnknown_83E73CC, ANIM_ATTACKER, 2, 0, -5, 30, 18, 8, 2 - createsprite gUnknown_83E73CC, ANIM_ATTACKER, 2, 0, 0, 30, -18, 8, 2 - createsprite gUnknown_83E73CC, ANIM_ATTACKER, 2, 0, 0, -30, 18, 8, 2 - createsprite gUnknown_83E73CC, ANIM_ATTACKER, 2, 0, 0, -30, -18, 8, 2 + createsprite gRockFragmentSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 20, 24, 14, 2 + createsprite gRockFragmentSpriteTemplate, ANIM_ATTACKER, 2, 5, 0, -20, 24, 14, 1 + createsprite gRockFragmentSpriteTemplate, ANIM_ATTACKER, 2, 0, 5, 20, -24, 14, 2 + createsprite gRockFragmentSpriteTemplate, ANIM_ATTACKER, 2, -5, 0, -20, -24, 14, 2 + createsprite gRockFragmentSpriteTemplate, ANIM_ATTACKER, 2, 0, -5, 30, 18, 8, 2 + createsprite gRockFragmentSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 30, -18, 8, 2 + createsprite gRockFragmentSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, -30, 18, 8, 2 + createsprite gRockFragmentSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, -30, -18, 8, 2 createvisualtask AnimTask_ShakeMon, 2, 1, 0, 3, 7, 1 waitforvisualfinish - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER blendoff end Move_SUBMISSION:: @ 81D029C loadspritegfx ANIM_TAG_IMPACT - monbg 3 + monbg ANIM_DEF_PARTNER setalpha 12, 8 playsewithpan SE_W104, 192 waitplaysewithpan SE_W004, 63, 10 @@ -6843,15 +6826,15 @@ Move_SUBMISSION:: @ 81D029C waitplaysewithpan SE_W004, 63, 90 createvisualtask AnimTask_TranslateMonElliptical, 2, 0, -18, 6, 6, 4 createvisualtask AnimTask_TranslateMonElliptical, 2, 1, 18, 6, 6, 4 - call gUnknown_81D030B - call gUnknown_81D030B - call gUnknown_81D030B + call SubmissionHit + call SubmissionHit + call SubmissionHit waitforvisualfinish - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER blendoff end -gUnknown_81D030B:: @ 81D030B +SubmissionHit:: @ 81D030B createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, -12, 1, 1 delay 8 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, -12, 8, 1, 1 @@ -6862,40 +6845,40 @@ gUnknown_81D030B:: @ 81D030B Move_SUNNY_DAY:: @ 81D033F loadspritegfx ANIM_TAG_SUNLIGHT - monbg 2 + monbg ANIM_ATK_PARTNER setalpha 13, 3 createvisualtask AnimTask_BlendSelected, 10, 1 | (0xF << 7), 1, 0, 6, RGB_WHITE waitforvisualfinish panse_26 SE_W080, 192, 63, 1, 0 - call gUnknown_81D038B - call gUnknown_81D038B - call gUnknown_81D038B - call gUnknown_81D038B + call SunnyDayLightRay + call SunnyDayLightRay + call SunnyDayLightRay + call SunnyDayLightRay waitforvisualfinish createvisualtask AnimTask_BlendSelected, 10, 1 | (0xF << 7), 1, 6, 0, RGB_WHITE waitforvisualfinish - clearmonbg 2 + clearmonbg ANIM_ATK_PARTNER blendoff end -gUnknown_81D038B:: @ 81D038B - createsprite gUnknown_83E5D18, ANIM_ATTACKER, 40, +SunnyDayLightRay:: @ 81D038B + createsprite gSunlightRaySpriteTemplate, ANIM_ATTACKER, 40 delay 6 return Move_COTTON_SPORE:: @ 81D0395 loadspritegfx ANIM_TAG_SPORE - monbg 3 + monbg ANIM_DEF_PARTNER monbgprio_28 1 loopsewithpan SE_W077, 63, 18, 10 - call gUnknown_81D03B5 - call gUnknown_81D03B5 - call gUnknown_81D03B5 + call CreateCottonSpores + call CreateCottonSpores + call CreateCottonSpores waitforvisualfinish - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER end -gUnknown_81D03B5:: @ 81D03B5 +CreateCottonSpores:: @ 81D03B5 createsprite gSporeParticleSpriteTemplate, ANIM_ATTACKER, 2, 0, -20, 85, 80, 0 delay 12 createsprite gSporeParticleSpriteTemplate, ANIM_ATTACKER, 2, 0, -10, 170, 80, 0 @@ -6906,20 +6889,20 @@ gUnknown_81D03B5:: @ 81D03B5 Move_SPORE:: @ 81D03EF loadspritegfx ANIM_TAG_SPORE - monbg 3 + monbg ANIM_DEF_PARTNER setalpha 12, 8 createvisualtask AnimTask_SporeDoubleBattle, 2, loopsewithpan SE_W077, 63, 16, 11 - call gUnknown_81D041A - call gUnknown_81D041A - call gUnknown_81D041A + call CreateSpore + call CreateSpore + call CreateSpore waitforvisualfinish delay 1 - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER blendoff end -gUnknown_81D041A:: @ 81D041A +CreateSpore:: @ 81D041A createsprite gSporeParticleSpriteTemplate, ANIM_TARGET, 2, 0, -20, 85, 80, 1 delay 12 createsprite gSporeParticleSpriteTemplate, ANIM_TARGET, 2, 0, -10, 170, 80, 1 @@ -6931,7 +6914,7 @@ gUnknown_81D041A:: @ 81D041A Move_PETAL_DANCE:: @ 81D0454 loadspritegfx ANIM_TAG_FLOWER loadspritegfx ANIM_TAG_IMPACT - monbg 3 + monbg ANIM_DEF_PARTNER setalpha 12, 8 playsewithpan SE_W080, 192 createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, 0, 12, 6, 6, 3 @@ -6962,7 +6945,7 @@ Move_PETAL_DANCE:: @ 81D0454 delay 8 createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 7 waitforvisualfinish - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER blendoff end @@ -6970,7 +6953,7 @@ Move_RAZOR_LEAF:: @ 81D058C loadspritegfx ANIM_TAG_LEAF loadspritegfx ANIM_TAG_RAZOR_LEAF loadspritegfx ANIM_TAG_IMPACT - monbg 3 + monbg ANIM_DEF_PARTNER setalpha 12, 8 delay 1 loopsewithpan SE_W077, 192, 10, 5 @@ -7002,30 +6985,30 @@ Move_RAZOR_LEAF:: @ 81D058C createvisualtask AnimTask_ShakeMon2, 2, 1, 2, 0, 8, 1 createvisualtask AnimTask_ShakeMon2, 2, 3, 2, 0, 8, 1 waitforvisualfinish - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER blendoff end Move_ANCIENT_POWER:: @ 81D0693 loadspritegfx ANIM_TAG_ROCKS loadspritegfx ANIM_TAG_IMPACT - monbg 3 - setalpha 12, 8 - createsprite gUnknown_83E7B88, ANIM_ATTACKER, 2, 4, 1, 10, 1 - createsprite gUnknown_83E74C0, ANIM_ATTACKER, 2, 20, 32, -48, 50, 2 - createsprite gUnknown_83E74C0, ANIM_ATTACKER, 2, 0, 32, -38, 25, 5 - createsprite gUnknown_83E74C0, ANIM_ATTACKER, 2, 32, 32, -28, 40, 3 - createsprite gUnknown_83E74C0, ANIM_ATTACKER, 2, -20, 32, -48, 50, 2 - createsprite gUnknown_83E74C0, ANIM_ATTACKER, 2, 20, 32, -28, 60, 1 - createsprite gUnknown_83E74C0, ANIM_ATTACKER, 2, 0, 32, -28, 30, 4 + monbg ANIM_DEF_PARTNER + setalpha 12, 8 + createsprite gShakeMonOrTerrainSpriteTemplate, ANIM_ATTACKER, 2, 4, 1, 10, 1 + createsprite gAncientPowerRockSpriteTemplate, ANIM_ATTACKER, 2, 20, 32, -48, 50, 2 + createsprite gAncientPowerRockSpriteTemplate, ANIM_ATTACKER, 2, 0, 32, -38, 25, 5 + createsprite gAncientPowerRockSpriteTemplate, ANIM_ATTACKER, 2, 32, 32, -28, 40, 3 + createsprite gAncientPowerRockSpriteTemplate, ANIM_ATTACKER, 2, -20, 32, -48, 50, 2 + createsprite gAncientPowerRockSpriteTemplate, ANIM_ATTACKER, 2, 20, 32, -28, 60, 1 + createsprite gAncientPowerRockSpriteTemplate, ANIM_ATTACKER, 2, 0, 32, -28, 30, 4 createvisualtask AnimTask_ShakeMon2, 2, 0, 1, 0, 30, 1 playsewithpan SE_W082, 192 delay 10 - createsprite gUnknown_83E74C0, ANIM_ATTACKER, 2, 15, 32, -48, 25, 5 - createsprite gUnknown_83E74C0, ANIM_ATTACKER, 2, -10, 32, -42, 30, 4 + createsprite gAncientPowerRockSpriteTemplate, ANIM_ATTACKER, 2, 15, 32, -48, 25, 5 + createsprite gAncientPowerRockSpriteTemplate, ANIM_ATTACKER, 2, -10, 32, -42, 30, 4 delay 10 - createsprite gUnknown_83E74C0, ANIM_ATTACKER, 2, 0, 32, -42, 25, 5 - createsprite gUnknown_83E74C0, ANIM_ATTACKER, 2, -25, 32, -48, 30, 4 + createsprite gAncientPowerRockSpriteTemplate, ANIM_ATTACKER, 2, 0, 32, -42, 25, 5 + createsprite gAncientPowerRockSpriteTemplate, ANIM_ATTACKER, 2, -25, 32, -48, 30, 4 waitforvisualfinish createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 0, 16, 0, 0, 4 delay 3 @@ -7035,7 +7018,7 @@ Move_ANCIENT_POWER:: @ 81D0693 waitforvisualfinish createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 7 waitforvisualfinish - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER blendoff end @@ -7058,25 +7041,25 @@ Move_OCTAZOOKA:: @ 81D07BB Move_MIST:: @ 81D0821 loadspritegfx ANIM_TAG_MIST_CLOUD - monbg 2 + monbg ANIM_ATK_PARTNER setalpha 12, 8 loopsewithpan SE_W054, 192, 20, 15 - call gUnknown_81D086C - call gUnknown_81D086C - call gUnknown_81D086C - call gUnknown_81D086C - call gUnknown_81D086C - call gUnknown_81D086C - call gUnknown_81D086C + call MistCloud + call MistCloud + call MistCloud + call MistCloud + call MistCloud + call MistCloud + call MistCloud delay 32 createvisualtask AnimTask_CurseBlendEffect, 2, 10, 8, 2, 0, 14, RGB_WHITE waitforvisualfinish - clearmonbg 2 + clearmonbg ANIM_ATK_PARTNER blendoff end -gUnknown_81D086C:: @ 81D086C - createsprite gUnknown_83E64A4, ANIM_ATTACKER, 2, 0, -24, 48, 240, 0, 1 +MistCloud:: @ 81D086C + createsprite gMistCloudSpriteTemplate, ANIM_ATTACKER, 2, 0, -24, 48, 240, 0, 1 delay 7 return @@ -7094,41 +7077,41 @@ Move_FIRE_PUNCH:: @ 81D08B5 loadspritegfx ANIM_TAG_HANDS_AND_FEET loadspritegfx ANIM_TAG_SMALL_EMBER loadspritegfx ANIM_TAG_IMPACT - monbg 3 + monbg ANIM_DEF_PARTNER setalpha 12, 8 createvisualtask AnimTask_BlendSelected, 10, 4, 2, 0, 9, RGB(31, 0, 0) - createsprite gUnknown_83E5BE0, ANIM_TARGET, 1, 0 - createsprite gUnknown_83E5BE0, ANIM_TARGET, 1, 64 - createsprite gUnknown_83E5BE0, ANIM_TARGET, 1, 128 - createsprite gUnknown_83E5BE0, ANIM_TARGET, 1, 196 + createsprite gFireSpiralInwardSpriteTemplate, ANIM_TARGET, 1, 0 + createsprite gFireSpiralInwardSpriteTemplate, ANIM_TARGET, 1, 64 + createsprite gFireSpiralInwardSpriteTemplate, ANIM_TARGET, 1, 128 + createsprite gFireSpiralInwardSpriteTemplate, ANIM_TARGET, 1, 196 playsewithpan SE_W172, 63 waitforvisualfinish createsprite gFistFootSpriteTemplate, ANIM_TARGET, 3, 0, 0, 8, 1, 0 createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, 1, 1 createvisualtask AnimTask_ShakeMon, 2, 1, 0, 3, 15, 1 - call gUnknown_81D0950 + call FireSpreadEffect delay 4 playsewithpan SE_W007, 63 waitforvisualfinish createvisualtask AnimTask_BlendSelected, 10, 4, 0, 9, 0, RGB(31, 0, 0) waitforvisualfinish - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER blendoff end -gUnknown_81D0950:: @ 81D0950 - createsprite gUnknown_83E5BF8, ANIM_TARGET, 1, 0, 10, 192, 176, 40 - createsprite gUnknown_83E5BF8, ANIM_TARGET, 1, 0, 10, -192, 240, 40 - createsprite gUnknown_83E5BF8, ANIM_TARGET, 1, 0, 10, 192, -160, 40 - createsprite gUnknown_83E5BF8, ANIM_TARGET, 1, 0, 10, -192, -112, 40 - createsprite gUnknown_83E5BF8, ANIM_TARGET, 1, 0, 10, 160, 48, 40 - createsprite gUnknown_83E5BF8, ANIM_TARGET, 1, 0, 10, -224, -32, 40 - createsprite gUnknown_83E5BF8, ANIM_TARGET, 1, 0, 10, 112, -128, 40 +FireSpreadEffect:: @ 81D0950 + createsprite gFireSpreadSpriteTemplate, ANIM_TARGET, 1, 0, 10, 192, 176, 40 + createsprite gFireSpreadSpriteTemplate, ANIM_TARGET, 1, 0, 10, -192, 240, 40 + createsprite gFireSpreadSpriteTemplate, ANIM_TARGET, 1, 0, 10, 192, -160, 40 + createsprite gFireSpreadSpriteTemplate, ANIM_TARGET, 1, 0, 10, -192, -112, 40 + createsprite gFireSpreadSpriteTemplate, ANIM_TARGET, 1, 0, 10, 160, 48, 40 + createsprite gFireSpreadSpriteTemplate, ANIM_TARGET, 1, 0, 10, -224, -32, 40 + createsprite gFireSpreadSpriteTemplate, ANIM_TARGET, 1, 0, 10, 112, -128, 40 return Move_LEER:: @ 81D09C8 loadspritegfx ANIM_TAG_LEER - monbg 0 + monbg ANIM_ATTACKER monbgprio_28 0 setalpha 8, 8 playsewithpan SE_W043, 192 @@ -7139,7 +7122,7 @@ Move_LEER:: @ 81D09C8 createvisualtask AnimTask_ShakeMon2, 2, 1, 1, 0, 9, 1 createvisualtask AnimTask_ShakeMon2, 2, 3, 1, 0, 9, 1 waitforvisualfinish - clearmonbg 0 + clearmonbg ANIM_ATTACKER blendoff delay 1 waitforvisualfinish @@ -7148,10 +7131,10 @@ Move_LEER:: @ 81D09C8 Move_DREAM_EATER:: @ 81D0A1F loadspritegfx ANIM_TAG_ORBS loadspritegfx ANIM_TAG_BLUE_STAR - monbg 3 + monbg ANIM_DEF_PARTNER monbgprio_2A 1 playsewithpan SE_W060, 192 - call gUnknown_81D59BB + call SetPsychicBackground setalpha 8, 8 playsewithpan SE_W107, 63 createvisualtask AnimTask_ShakeMon, 2, 1, 5, 0, 15, 1 @@ -7159,18 +7142,18 @@ Move_DREAM_EATER:: @ 81D0A1F waitforvisualfinish setalpha 12, 8 createvisualtask AnimTask_ShakeMon, 2, 1, 0, 2, 25, 1 - call gUnknown_81D0A89 + call DreamEaterAbsorb waitforvisualfinish delay 15 - call gUnknown_81D56C9 + call HealingEffect waitforvisualfinish - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER blendoff delay 1 - call gUnknown_81D59C7 + call UnsetPsychicBg end -gUnknown_81D0A89:: @ 81D0A89 +DreamEaterAbsorb:: @ 81D0A89 playsewithpan SE_W207, 63 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, 5, 8, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 5, -18, -40, 35 @@ -7217,125 +7200,125 @@ Move_POISON_GAS:: @ 81D0C22 loadspritegfx ANIM_TAG_PURPLE_GAS_CLOUD loadspritegfx ANIM_TAG_POISON_BUBBLE delay 0 - monbg 3 + monbg ANIM_DEF_PARTNER monbgprio_29 setalpha 12, 8 delay 0 playsewithpan SE_W054, 192 - createsprite gUnknown_83E6514, ANIM_TARGET, 0, 64, 0, 0, -32, -6, 4192, 1072, 0 + createsprite gPoisonGasCloudSpriteTemplate, ANIM_TARGET, 0, 64, 0, 0, -32, -6, 4192, 1072, 0 delay 4 playsewithpan SE_W054, 192 - createsprite gUnknown_83E6514, ANIM_TARGET, 0, 64, 0, 0, -32, -6, 4192, 1072, 0 + createsprite gPoisonGasCloudSpriteTemplate, ANIM_TARGET, 0, 64, 0, 0, -32, -6, 4192, 1072, 0 delay 4 playsewithpan SE_W054, 192 - createsprite gUnknown_83E6514, ANIM_TARGET, 0, 64, 0, 0, -32, -6, 4192, 1072, 0 + createsprite gPoisonGasCloudSpriteTemplate, ANIM_TARGET, 0, 64, 0, 0, -32, -6, 4192, 1072, 0 delay 4 playsewithpan SE_W054, 192 - createsprite gUnknown_83E6514, ANIM_TARGET, 0, 64, 0, 0, -32, -6, 4192, 1072, 0 + createsprite gPoisonGasCloudSpriteTemplate, ANIM_TARGET, 0, 64, 0, 0, -32, -6, 4192, 1072, 0 delay 4 playsewithpan SE_W054, 192 - createsprite gUnknown_83E6514, ANIM_TARGET, 0, 64, 0, 0, -32, -6, 4192, 1072, 0 + createsprite gPoisonGasCloudSpriteTemplate, ANIM_TARGET, 0, 64, 0, 0, -32, -6, 4192, 1072, 0 delay 4 playsewithpan SE_W054, 192 - createsprite gUnknown_83E6514, ANIM_TARGET, 0, 64, 0, 0, -32, -6, 4192, 1072, 0 + createsprite gPoisonGasCloudSpriteTemplate, ANIM_TARGET, 0, 64, 0, 0, -32, -6, 4192, 1072, 0 delay 40 loopsewithpan SE_W054, 63, 28, 6 createvisualtask AnimTask_CurseBlendEffect, 2, 4, 6, 2, 0, 12, 26650 waitforvisualfinish blendoff - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER delay 0 end Move_BIND:: @ 81D0D00 createvisualtask AnimTask_SwayMon, 5, 0, 6, 3328, 4, 0 - goto gUnknown_81D0D16 + goto BindWrap -gUnknown_81D0D16:: @ 81D0D16 +BindWrap:: @ 81D0D16 playsewithpan SE_W020, 63 - call gUnknown_81D0D26 - call gUnknown_81D0D26 + call BindWrapSqueezeTarget + call BindWrapSqueezeTarget waitforvisualfinish end -gUnknown_81D0D26:: @ 81D0D26 +BindWrapSqueezeTarget:: @ 81D0D26 createvisualtask AnimTask_ScaleMonAndRestore, 5, 10, -5, 5, 1, 0 delay 16 return Move_WRAP:: @ 81D0D3A createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, 0, 6, 4, 2, 4 - goto gUnknown_81D0D16 + goto BindWrap Move_PSYBEAM:: @ 81D0D50 loadspritegfx ANIM_TAG_GOLD_RING playsewithpan SE_W060, 192 - call gUnknown_81D59BB - createsoundtask mas_80DCF38, 193, -64, 63, 3, 4, 0, 15 - call gUnknown_81D0DD4 - call gUnknown_81D0DD4 + call SetPsychicBackground + createsoundtask SoundTask_LoopSEAdjustPanning, 193, -64, 63, 3, 4, 0, 15 + call PsybeamRings + call PsybeamRings createvisualtask AnimTask_SwayMon, 5, 0, 6, 2048, 4, 1 createvisualtask AnimTask_CurseBlendEffect, 2, 4, 2, 2, 0, 12, 32351 - call gUnknown_81D0DD4 - call gUnknown_81D0DD4 - call gUnknown_81D0DD4 - call gUnknown_81D0DD4 - call gUnknown_81D0DD4 - call gUnknown_81D0DD4 - call gUnknown_81D0DD4 - call gUnknown_81D0DD4 - call gUnknown_81D0DD4 + call PsybeamRings + call PsybeamRings + call PsybeamRings + call PsybeamRings + call PsybeamRings + call PsybeamRings + call PsybeamRings + call PsybeamRings + call PsybeamRings waitforvisualfinish delay 1 - call gUnknown_81D59C7 + call UnsetPsychicBg end -gUnknown_81D0DD4:: @ 81D0DD4 - createsprite gUnknown_83E6EEC, ANIM_TARGET, 2, 16, 0, 0, 0, 13, 0 +PsybeamRings:: @ 81D0DD4 + createsprite gGoldRingSpriteTemplate, ANIM_TARGET, 2, 16, 0, 0, 0, 13, 0 delay 4 return Move_HYPNOSIS:: @ 81D0DEA loadspritegfx ANIM_TAG_GOLD_RING - call gUnknown_81D59BB - call gUnknown_81D0E1D - call gUnknown_81D0E1D - call gUnknown_81D0E1D + call SetPsychicBackground + call HypnosisRings + call HypnosisRings + call HypnosisRings createvisualtask AnimTask_CurseBlendEffect, 2, 4, 2, 2, 0, 12, 32351 waitforvisualfinish delay 1 - call gUnknown_81D59C7 + call UnsetPsychicBg end -gUnknown_81D0E1D:: @ 81D0E1D +HypnosisRings:: @ 81D0E1D playsewithpan SE_W048, 192 - createsprite gUnknown_83E6EEC, ANIM_TARGET, 2, 0, 8, 0, 8, 27, 0 - createsprite gUnknown_83E6EEC, ANIM_TARGET, 2, 16, -8, 0, -8, 27, 0 + createsprite gGoldRingSpriteTemplate, ANIM_TARGET, 2, 0, 8, 0, 8, 27, 0 + createsprite gGoldRingSpriteTemplate, ANIM_TARGET, 2, 16, -8, 0, -8, 27, 0 delay 6 return Move_PSYWAVE:: @ 81D0E4A loadspritegfx ANIM_TAG_BLUE_RING playsewithpan SE_W060, 192 - call gUnknown_81D59BB - createvisualtask sub_80AB100, 5, 100 - createsoundtask mas_80DCF38, 196, -64, 63, 2, 9, 0, 10 - call gUnknown_81D0EAD - call gUnknown_81D0EAD + call SetPsychicBackground + createvisualtask AnimTask_StartSinAnimTimer, 5, 100 + createsoundtask SoundTask_LoopSEAdjustPanning, 196, -64, 63, 2, 9, 0, 10 + call PsywaveRings + call PsywaveRings createvisualtask AnimTask_CurseBlendEffect, 2, 4, 1, 4, 0, 12, 32351 - call gUnknown_81D0EAD - call gUnknown_81D0EAD - call gUnknown_81D0EAD - call gUnknown_81D0EAD + call PsywaveRings + call PsywaveRings + call PsywaveRings + call PsywaveRings waitforvisualfinish delay 1 - call gUnknown_81D59C7 + call UnsetPsychicBg end -gUnknown_81D0EAD:: @ 81D0EAD - createsprite gUnknown_83E59E8, ANIM_TARGET, 3, 10, 10, 0, 16 +PsywaveRings:: @ 81D0EAD + createsprite gPsywaveRingSpriteTemplate, ANIM_TARGET, 3, 10, 10, 0, 16 delay 4 - createsprite gUnknown_83E59E8, ANIM_TARGET, 3, 10, 10, 0, 16 + createsprite gPsywaveRingSpriteTemplate, ANIM_TARGET, 3, 10, 10, 0, 16 delay 4 return @@ -7343,20 +7326,20 @@ Move_ZAP_CANNON:: @ 81D0ED0 loadspritegfx ANIM_TAG_BLACK_BALL_2 loadspritegfx ANIM_TAG_SPARK_2 playsewithpan SE_W086, 192 - createsprite gUnknown_83E5FDC, ANIM_TARGET, 3, 10, 0, 0, 0, 30, 0 - createsprite gUnknown_83E6008, ANIM_TARGET, 4, 10, 0, 16, 30, 0, 40, 0 - createsprite gUnknown_83E6008, ANIM_TARGET, 4, 10, 0, 16, 30, 64, 40, 1 - createsprite gUnknown_83E6008, ANIM_TARGET, 4, 10, 0, 16, 30, 128, 40, 0 - createsprite gUnknown_83E6008, ANIM_TARGET, 4, 10, 0, 16, 30, 192, 40, 2 - createsprite gUnknown_83E6008, ANIM_TARGET, 4, 10, 0, 8, 30, 32, 40, 0 - createsprite gUnknown_83E6008, ANIM_TARGET, 4, 10, 0, 8, 30, 96, 40, 1 - createsprite gUnknown_83E6008, ANIM_TARGET, 4, 10, 0, 8, 30, 160, 40, 0 - createsprite gUnknown_83E6008, ANIM_TARGET, 4, 10, 0, 8, 30, 224, 40, 2 + createsprite gZapCannonBallSpriteTemplate, ANIM_TARGET, 3, 10, 0, 0, 0, 30, 0 + createsprite gZapCannonSparkSpriteTemplate, ANIM_TARGET, 4, 10, 0, 16, 30, 0, 40, 0 + createsprite gZapCannonSparkSpriteTemplate, ANIM_TARGET, 4, 10, 0, 16, 30, 64, 40, 1 + createsprite gZapCannonSparkSpriteTemplate, ANIM_TARGET, 4, 10, 0, 16, 30, 128, 40, 0 + createsprite gZapCannonSparkSpriteTemplate, ANIM_TARGET, 4, 10, 0, 16, 30, 192, 40, 2 + createsprite gZapCannonSparkSpriteTemplate, ANIM_TARGET, 4, 10, 0, 8, 30, 32, 40, 0 + createsprite gZapCannonSparkSpriteTemplate, ANIM_TARGET, 4, 10, 0, 8, 30, 96, 40, 1 + createsprite gZapCannonSparkSpriteTemplate, ANIM_TARGET, 4, 10, 0, 8, 30, 160, 40, 0 + createsprite gZapCannonSparkSpriteTemplate, ANIM_TARGET, 4, 10, 0, 8, 30, 224, 40, 2 waitforvisualfinish createvisualtask AnimTask_ShakeMon2, 2, 1, 4, 0, 5, 1 delay 15 waitplaysewithpan SE_W085B, 63, 19 - call gUnknown_81D58D4 + call ElectricityEffect waitforvisualfinish end @@ -7366,14 +7349,14 @@ Move_STEEL_WING:: @ 81D0FB5 loopsewithpan SE_W231, 192, 28, 2 createvisualtask AnimTask_MetallicShine, 5, 0, 0, 0 waitforvisualfinish - monbg 3 + monbg ANIM_DEF_PARTNER monbgprio_28 1 setalpha 12, 8 loopsewithpan SE_W017, 192, 20, 2 createvisualtask AnimTask_TranslateMonElliptical, 2, 0, 12, 4, 1, 4 - createvisualtask sub_80B194C, 5, 1, 70 - createsprite gUnknown_83E6B1C, ANIM_ATTACKER, 2, -25, 0, 0, 0, 20 - createsprite gUnknown_83E6B1C, ANIM_ATTACKER, 2, 25, 0, 0, 0, 20 + createvisualtask AnimTask_AnimateGustTornadoPalette, 5, 1, 70 + createsprite gGustToTargetSpriteTemplate, ANIM_ATTACKER, 2, -25, 0, 0, 0, 20 + createsprite gGustToTargetSpriteTemplate, ANIM_ATTACKER, 2, 25, 0, 0, 0, 20 delay 24 createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 0, 24, 0, 0, 9 delay 17 @@ -7383,7 +7366,7 @@ Move_STEEL_WING:: @ 81D0FB5 waitforvisualfinish createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 11 waitforvisualfinish - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER blendoff end @@ -7423,7 +7406,7 @@ Move_POISON_TAIL:: @ 81D10C2 createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, 0, 1 clearmonbg 1 blendoff - call gUnknown_81D575B + call PoisonBubblesEffect waitforvisualfinish end @@ -7435,33 +7418,33 @@ Move_METAL_CLAW:: @ 81D1128 createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 6, 4 delay 2 playsewithpan SE_W013, 63 - createsprite gUnknown_83E79E8, ANIM_TARGET, 2, -10, -10, 0 - createsprite gUnknown_83E79E8, ANIM_TARGET, 2, -10, 10, 0 - createsprite gUnknown_83E7B88, ANIM_ATTACKER, 2, -4, 1, 10, 3, 1 + createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, -10, -10, 0 + createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, -10, 10, 0 + createsprite gShakeMonOrTerrainSpriteTemplate, ANIM_ATTACKER, 2, -4, 1, 10, 3, 1 delay 8 createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 6, 4 delay 2 playsewithpan SE_W013, 63 - createsprite gUnknown_83E79E8, ANIM_TARGET, 2, 10, -10, 1 - createsprite gUnknown_83E79E8, ANIM_TARGET, 2, 10, 10, 1 - createsprite gUnknown_83E7B88, ANIM_ATTACKER, 2, -4, 1, 10, 3, 1 + createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, 10, -10, 1 + createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, 10, 10, 1 + createsprite gShakeMonOrTerrainSpriteTemplate, ANIM_ATTACKER, 2, -4, 1, 10, 3, 1 waitforvisualfinish end Move_NIGHT_SHADE:: @ 81D11BB - monbg 0 + monbg ANIM_ATTACKER monbgprio_28 0 playsewithpan SE_W060, 192 fadetobg 2 waitbgfadein delay 10 playsewithpan SE_W043, 192 - createvisualtask sub_80B54E8, 5, 85 + createvisualtask AnimTask_NightShadeClone, 5, 85 delay 70 createvisualtask AnimTask_ShakeMon2, 2, 1, 2, 0, 12, 1 createvisualtask AnimTask_CurseBlendEffect, 2, 4, 0, 2, 0, 13, 0 waitforvisualfinish - clearmonbg 0 + clearmonbg ANIM_ATTACKER delay 1 restorebg waitbgfadein @@ -7497,7 +7480,7 @@ Move_SHADOW_BALL:: @ 81D129D fadetobg 2 waitbgfadein delay 15 - createsoundtask mas_80DCF38, 161, -64, 63, 5, 5, 0, 5 + createsoundtask SoundTask_LoopSEAdjustPanning, 161, -64, 63, 5, 5, 0, 5 createsprite gShadowBallSpriteTemplate, ANIM_TARGET, 2, 16, 16, 8 waitforvisualfinish playsewithpan SE_W028, 63 @@ -7511,7 +7494,7 @@ Move_LICK:: @ 81D12E0 loadspritegfx ANIM_TAG_LICK delay 15 playsewithpan SE_W122, 63 - createsprite gUnknown_83E763C, ANIM_TARGET, 2, 0, 0 + createsprite gLickSpriteTemplate, ANIM_TARGET, 2, 0, 0 createvisualtask AnimTask_ShakeMon2, 2, 1, 1, 0, 16, 1 waitforvisualfinish end @@ -7519,13 +7502,13 @@ Move_LICK:: @ 81D12E0 Move_FOCUS_ENERGY:: @ 81D1307 loadspritegfx ANIM_TAG_FOCUS_ENERGY playsewithpan SE_W082, 192 - call gUnknown_81CB267 + call EndureEffect delay 8 createvisualtask AnimTask_CurseBlendEffect, 2, 2, 2, 2, 0, 11, RGB_WHITE createvisualtask AnimTask_ShakeMon2, 2, 0, 1, 0, 32, 1 - call gUnknown_81CB267 + call EndureEffect delay 8 - call gUnknown_81CB267 + call EndureEffect waitforvisualfinish end @@ -7542,7 +7525,7 @@ BattleAnimScript_Bide_Setup:: @ 81D1351 BattleAnimScript_Bide_Release:: @ 81D137D loadspritegfx ANIM_TAG_IMPACT - monbg 3 + monbg ANIM_DEF_PARTNER setalpha 12, 8 loopsewithpan SE_W036, 192, 9, 2 createvisualtask AnimTask_BlendSelected, 10, 2, 2, 0, 11, RGB(31, 0, 0) @@ -7566,51 +7549,51 @@ BattleAnimScript_Bide_Release:: @ 81D137D waitforvisualfinish createvisualtask AnimTask_BlendSelected, 10, 2, 2, 11, 0, RGB(31, 0, 0) waitforvisualfinish - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER blendoff end Move_STRING_SHOT:: @ 81D1446 loadspritegfx ANIM_TAG_STRING loadspritegfx ANIM_TAG_WEB_THREAD - monbg 3 + monbg ANIM_DEF_PARTNER delay 0 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 5, 1, 2, 0, 9, 0 waitforvisualfinish loopsewithpan SE_W081, 192, 9, 6 - call gUnknown_81D1504 - call gUnknown_81D1504 - call gUnknown_81D1504 - call gUnknown_81D1504 - call gUnknown_81D1504 - call gUnknown_81D1504 - call gUnknown_81D1504 - call gUnknown_81D1504 - call gUnknown_81D1504 - call gUnknown_81D1504 - call gUnknown_81D1504 - call gUnknown_81D1504 - call gUnknown_81D1504 - call gUnknown_81D1504 - call gUnknown_81D1504 - call gUnknown_81D1504 - call gUnknown_81D1504 - call gUnknown_81D1504 + call StringShotThread + call StringShotThread + call StringShotThread + call StringShotThread + call StringShotThread + call StringShotThread + call StringShotThread + call StringShotThread + call StringShotThread + call StringShotThread + call StringShotThread + call StringShotThread + call StringShotThread + call StringShotThread + call StringShotThread + call StringShotThread + call StringShotThread + call StringShotThread waitforvisualfinish playsewithpan SE_W081B, 63 - createsprite gUnknown_83E72A8, ANIM_TARGET, 2, 0, 10 + createsprite gStringWrapSpriteTemplate, ANIM_TARGET, 2, 0, 10 delay 4 - createsprite gUnknown_83E72A8, ANIM_TARGET, 2, 0, -2 + createsprite gStringWrapSpriteTemplate, ANIM_TARGET, 2, 0, -2 delay 4 - createsprite gUnknown_83E72A8, ANIM_TARGET, 2, 0, 22 + createsprite gStringWrapSpriteTemplate, ANIM_TARGET, 2, 0, 22 waitforvisualfinish - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER delay 1 waitforvisualfinish createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 5, 1, 2, 9, 0, 0 end -gUnknown_81D1504:: @ 81D1504 +StringShotThread:: @ 81D1504 createsprite gWebThreadSpriteTemplate, ANIM_TARGET, 2, 20, 0, 512, 20, 1 delay 1 return @@ -7618,48 +7601,48 @@ gUnknown_81D1504:: @ 81D1504 Move_SPIDER_WEB:: @ 81D1518 loadspritegfx ANIM_TAG_SPIDER_WEB loadspritegfx ANIM_TAG_WEB_THREAD - monbg 3 + monbg ANIM_DEF_PARTNER delay 0 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 5, 1, 2, 0, 9, 0 waitforvisualfinish monbgprio_28 1 loopsewithpan SE_W081, 192, 9, 6 - call gUnknown_81D15A5 - call gUnknown_81D15A5 - call gUnknown_81D15A5 - call gUnknown_81D15A5 - call gUnknown_81D15A5 - call gUnknown_81D15A5 - call gUnknown_81D15A5 - call gUnknown_81D15A5 - call gUnknown_81D15A5 - call gUnknown_81D15A5 - call gUnknown_81D15A5 - call gUnknown_81D15A5 - call gUnknown_81D15A5 - call gUnknown_81D15A5 + call SpiderWebThread + call SpiderWebThread + call SpiderWebThread + call SpiderWebThread + call SpiderWebThread + call SpiderWebThread + call SpiderWebThread + call SpiderWebThread + call SpiderWebThread + call SpiderWebThread + call SpiderWebThread + call SpiderWebThread + call SpiderWebThread + call SpiderWebThread waitforvisualfinish playsewithpan SE_W081B, 63 createsprite gSpiderWebSpriteTemplate, ANIM_ATTACKER, 2, waitforvisualfinish - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER delay 1 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 5, 1, 2, 9, 0, 0 end -gUnknown_81D15A5:: @ 81D15A5 +SpiderWebThread:: @ 81D15A5 createsprite gWebThreadSpriteTemplate, ANIM_TARGET, 2, 20, 0, 512, 20, 0 delay 1 return Move_RAZOR_WIND:: @ 81D15B9 - choosetwoturnanim BattleAnimScript_RazorWInd_Turn1, BattleAnimScript_RazorWInd_Turn2 + choosetwoturnanim RazorWindSetUp, RazorWindUnleash -gUnknown_81D15C2:: @ 81D15C2 +RazorWindEnd:: @ 81D15C2 waitforvisualfinish end -BattleAnimScript_RazorWInd_Turn1:: @ 81D15C4 +RazorWindSetUp:: @ 81D15C4 loadspritegfx ANIM_TAG_GUST playsewithpan SE_W016, 192 createsprite gRazorWindTornadoSpriteTemplate, ANIM_ATTACKER, 2, 32, 0, 16, 16, 0, 7, 40 @@ -7667,21 +7650,21 @@ BattleAnimScript_RazorWInd_Turn1:: @ 81D15C4 createsprite gRazorWindTornadoSpriteTemplate, ANIM_ATTACKER, 2, 32, 0, 16, 16, 170, 7, 40 waitforvisualfinish playsewithpan SE_W016B, 192 - goto gUnknown_81D15C2 + goto RazorWindEnd -BattleAnimScript_RazorWInd_Turn2:: @ 81D1614 +RazorWindUnleash:: @ 81D1614 loadspritegfx ANIM_TAG_AIR_WAVE_2 loadspritegfx ANIM_TAG_IMPACT monbg 1 setalpha 12, 8 playsewithpan SE_W013B, 192 - createsprite gUnknown_83E6B4C, ANIM_ATTACKER, 2, 14, 8, 0, 0, 22, 2, 1 + createsprite gAirWaveCrescentSpriteTemplate, ANIM_ATTACKER, 2, 14, 8, 0, 0, 22, 2, 1 delay 2 playsewithpan SE_W013B, 192 - createsprite gUnknown_83E6B4C, ANIM_ATTACKER, 2, 14, -8, 16, 14, 22, 1, 1 + createsprite gAirWaveCrescentSpriteTemplate, ANIM_ATTACKER, 2, 14, -8, 16, 14, 22, 1, 1 delay 2 playsewithpan SE_W013B, 192 - createsprite gUnknown_83E6B4C, ANIM_ATTACKER, 2, 14, 12, -16, -14, 22, 0, 1 + createsprite gAirWaveCrescentSpriteTemplate, ANIM_ATTACKER, 2, 14, 12, -16, -14, 22, 0, 1 delay 17 playsewithpan SE_W013, 63 createvisualtask AnimTask_ShakeMon2, 2, 1, 2, 0, 10, 1 @@ -7689,7 +7672,7 @@ BattleAnimScript_RazorWInd_Turn2:: @ 81D1614 waitforvisualfinish clearmonbg 1 blendoff - goto gUnknown_81D15C2 + goto RazorWindEnd Move_DISABLE:: @ 81D169F loadspritegfx ANIM_TAG_SPARKLE_4 @@ -7710,22 +7693,22 @@ Move_DISABLE:: @ 81D169F Move_RECOVER:: @ 81D16CD loadspritegfx ANIM_TAG_ORBS loadspritegfx ANIM_TAG_BLUE_STAR - monbg 2 + monbg ANIM_ATK_PARTNER setalpha 12, 8 loopsewithpan SE_W025, 192, 13, 3 createvisualtask AnimTask_CurseBlendEffect, 2, 2, 0, 6, 0, 11, 12287 - call gUnknown_81D170D - call gUnknown_81D170D - call gUnknown_81D170D + call RecoverAbsorbEffect + call RecoverAbsorbEffect + call RecoverAbsorbEffect waitforvisualfinish - clearmonbg 2 + clearmonbg ANIM_ATK_PARTNER blendoff delay 1 - call gUnknown_81D56C9 + call HealingEffect waitforvisualfinish end -gUnknown_81D170D:: @ 81D170D +RecoverAbsorbEffect:: @ 81D170D createsprite gPowerAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 2, 40, -10, 13 delay 3 createsprite gPowerAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 2, -35, -10, 13 @@ -7747,7 +7730,7 @@ Move_MIMIC:: @ 81D1777 monbg_22 3 setalpha 11, 5 panse_1B SE_W107, 63, 192, 253, 0 - createvisualtask sub_80A2F0C, 5, 128, 24 + createvisualtask AnimTask_ShrinkTargetCopy, 5, 128, 24 delay 15 createsprite gMimicOrbSpriteTemplate, ANIM_TARGET, 2, -12, 24 delay 10 @@ -7778,49 +7761,49 @@ Move_CONSTRICT:: @ 81D17C1 end Move_CURSE:: @ 81D1829 - choosetwoturnanim BattleAnimScript_Curse_Ghost, BattleAnimScript_Curse_Other + choosetwoturnanim CurseGhost, CurseStats -BattleAnimScript_Curse_Ghost:: @ 81D1832 +CurseGhost:: @ 81D1832 loadspritegfx ANIM_TAG_NAIL loadspritegfx ANIM_TAG_GHOSTLY_SPIRIT - monbg 2 - createvisualtask sub_80B63B4, 5, + monbg ANIM_ATK_PARTNER + createvisualtask AnimTask_CurseStretchingBlackBg, 5 waitforvisualfinish delay 20 - createsprite gUnknown_83E7680, ANIM_ATTACKER, 2, + createsprite gCurseNailSpriteTemplate, ANIM_ATTACKER, 2 delay 60 - call gUnknown_81D1899 + call CurseGhostShakeFromNail delay 41 - call gUnknown_81D1899 + call CurseGhostShakeFromNail delay 41 - call gUnknown_81D1899 + call CurseGhostShakeFromNail waitforvisualfinish - clearmonbg 2 + clearmonbg ANIM_ATK_PARTNER delay 1 - monbg 3 + monbg ANIM_DEF_PARTNER playsewithpan SE_W171, 63 - createsprite gUnknown_83E7698, ANIM_TARGET, 2, + createsprite gCurseGhostSpriteTemplate, ANIM_TARGET, 2 createvisualtask AnimTask_ShakeMon2, 2, 1, 2, 0, 14, 1 waitforvisualfinish createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 16, 0, 0 waitforvisualfinish - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER end -gUnknown_81D1899:: @ 81D1899 +CurseGhostShakeFromNail:: @ 81D1899 createvisualtask AnimTask_ShakeMon2, 2, 0, 4, 0, 10, 0 playsewithpan SE_W020, 192 return -BattleAnimScript_Curse_Other:: @ 81D18AF +CurseStats:: @ 81D18AF createvisualtask AnimTask_SwayMon, 5, 0, 10, 1536, 3, 0 waitforvisualfinish delay 10 - call gUnknown_81D18CA + call CurseStats1 waitforvisualfinish end -gUnknown_81D18CA:: @ 81D18CA +CurseStats1:: @ 81D18CA playsewithpan SE_W082, 192 createvisualtask AnimTask_SetUpCurseBackground, 5, createvisualtask AnimTask_CurseBlendEffect, 5, 2, 4, 2, 0, 10, 31 @@ -7830,7 +7813,7 @@ Move_SOFT_BOILED:: @ 81D18E9 loadspritegfx ANIM_TAG_BREAKING_EGG loadspritegfx ANIM_TAG_THIN_RING loadspritegfx ANIM_TAG_BLUE_STAR - monbg 2 + monbg ANIM_ATK_PARTNER playsewithpan SE_W039, 192 createvisualtask AnimTask_ShakeMon, 2, 0, 0, 2, 6, 1 createsprite gSoftBoiledEggSpriteTemplate, ANIM_ATTACKER, 4, 0, 16, 0 @@ -7845,8 +7828,8 @@ Move_SOFT_BOILED:: @ 81D18E9 delay 60 setarg 7, 65535 waitforvisualfinish - clearmonbg 2 - call gUnknown_81D5712 + clearmonbg ANIM_ATK_PARTNER + call HealingEffect2 end Move_HEAL_BELL:: @ 81D196B @@ -7855,28 +7838,28 @@ Move_HEAL_BELL:: @ 81D196B loadspritegfx ANIM_TAG_THIN_RING createvisualtask AnimTask_BlendSelected, 10, 10, 0, 0, 10, RGB_WHITE waitforvisualfinish - createvisualtask sub_80A96B4, 5, + createvisualtask AnimTask_LoadMusicNotesPals, 5 createsprite gBellSpriteTemplate, ANIM_ATTACKER, 2, 0, -24, 0, 1 delay 12 createsprite gHealBellMusicNoteSpriteTemplate, ANIM_ATTACKER, 40, 0, -24, 48, -18, 35, 0, 0 createsprite gHealBellMusicNoteSpriteTemplate, ANIM_ATTACKER, 40, 0, -24, -48, 20, 30, 1, 1 createsprite gHealBellMusicNoteSpriteTemplate, ANIM_ATTACKER, 40, 0, -24, -38, -29, 30, 2, 2 createsprite gHealBellMusicNoteSpriteTemplate, ANIM_ATTACKER, 40, 0, -24, 36, 18, 30, 3, 3 - call gUnknown_81D1B2F + call HealBellRing delay 33 createsprite gHealBellMusicNoteSpriteTemplate, ANIM_ATTACKER, 40, 0, -24, 19, 26, 35, 4, 4 createsprite gHealBellMusicNoteSpriteTemplate, ANIM_ATTACKER, 40, 0, -24, -34, -12, 30, 5, 5 createsprite gHealBellMusicNoteSpriteTemplate, ANIM_ATTACKER, 40, 0, -24, 41, -20, 34, 6, 2 createsprite gHealBellMusicNoteSpriteTemplate, ANIM_ATTACKER, 40, 0, -24, -15, 26, 32, 7, 0 - call gUnknown_81D1B2F + call HealBellRing delay 33 createsprite gHealBellMusicNoteSpriteTemplate, ANIM_ATTACKER, 40, 0, -24, -48, 18, 31, 0, 2 createsprite gHealBellMusicNoteSpriteTemplate, ANIM_ATTACKER, 40, 0, -24, 48, -20, 30, 2, 5 createsprite gHealBellMusicNoteSpriteTemplate, ANIM_ATTACKER, 40, 0, -24, 38, 29, 33, 4, 3 createsprite gHealBellMusicNoteSpriteTemplate, ANIM_ATTACKER, 40, 0, -24, -36, -18, 30, 6, 1 - call gUnknown_81D1B2F + call HealBellRing waitforvisualfinish - createvisualtask sub_80A9760, 5, + createvisualtask AnimTask_FreeMusicNotesPals, 5 waitforvisualfinish unloadspritegfx ANIM_TAG_BELL unloadspritegfx ANIM_TAG_MUSIC_NOTES_2 @@ -7895,7 +7878,7 @@ Move_HEAL_BELL:: @ 81D196B createsprite gBlendThinRingExpandingSpriteTemplate, ANIM_ATTACKER, 16, 0, 0, 0, 1 end -gUnknown_81D1B2F:: @ 81D1B2F +HealBellRing:: @ 81D1B2F createvisualtask AnimTask_BlendExcept, 10, 4, 3, 8, 0, 31500 createvisualtask AnimTask_BlendSelected, 10, 10, 3, 2, 10, RGB_WHITE createsprite gThinRingExpandingSpriteTemplate, ANIM_ATTACKER, 40, 0, -24, 0, 1 @@ -7908,7 +7891,7 @@ Move_FAKE_OUT:: @ 81D1B65 waitforvisualfinish playsewithpan SE_W166, 63 createvisualtask AnimTask_ShakeMon2, 2, 1, 4, 0, 5, 1 - createvisualtask sub_80A9A20, 3, + createvisualtask AnimTask_StretchTargetUp, 3 waitforvisualfinish createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 16, 0, RGB_WHITE end @@ -7925,7 +7908,7 @@ Move_SCARY_FACE:: @ 81D1BA0 createsprite gEyeSparkleSpriteTemplate, ANIM_ATTACKER, 0, -16, -8 createsprite gEyeSparkleSpriteTemplate, ANIM_ATTACKER, 0, 16, -8 waitforvisualfinish - createvisualtask sub_80ADAD8, 3, 20, 1, 0 + createvisualtask AnimTask_ShakeTargetInPattern, 3, 20, 1, 0 playsewithpan SE_W081B, 63 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 27, 3, 16, 0, 0 waitforvisualfinish @@ -8020,11 +8003,11 @@ Move_PRESENT:: @ 81D1DC8 delay 20 playsewithpan SE_W145B, 63 waitforvisualfinish - jumpargeq 7, 0, gUnknown_81D1E0B - jumpargeq 7, 1, gUnknown_81D1E76 + jumpargeq 7, 0, PresentDamage + jumpargeq 7, 1, PresentHeal end -gUnknown_81D1E0B:: @ 81D1E0B +PresentDamage:: @ 81D1E0B loadspritegfx ANIM_TAG_EXPLOSION playsewithpan SE_W120, 63 createsprite gExplosionSpriteTemplate, ANIM_TARGET, 3, 0, 0, 1, 1 @@ -8042,7 +8025,7 @@ gUnknown_81D1E0B:: @ 81D1E0B createsprite gExplosionSpriteTemplate, ANIM_TARGET, 3, 16, 16, 1, 1 end -gUnknown_81D1E76:: @ 81D1E76 +PresentHeal:: @ 81D1E76 loadspritegfx ANIM_TAG_GREEN_SPARKLE loadspritegfx ANIM_TAG_BLUE_STAR playsewithpan SE_W234, 63 @@ -8065,7 +8048,7 @@ gUnknown_81D1E76:: @ 81D1E76 createsprite gPresentHealParticleSpriteTemplate, ANIM_TARGET, 4, -24, 32, -3, 1 waitforvisualfinish waitsound - call gUnknown_81D5712 + call HealingEffect2 end Move_BATON_PASS:: @ 81D1F1F @@ -8144,12 +8127,11 @@ Move_HYPER_FANG:: @ 81D2165 delay 1 delay 2 createvisualtask AnimTask_IsContest, 2, - jumpargeq 7, 1, gUnknown_81D21C5 + jumpargeq 7, 1, HyperFangInContest createvisualtask AnimTask_IsTargetPlayerSide, 2, - jumpargeq 7, 0, gUnknown_81D21B7 - goto gUnknown_81D21BE - -gUnknown_81D2193:: @ 81D2193 + jumpargeq 7, 0, HyperFangOnOpponent + goto HyperFangOnPlayer +HyperFangContinue:: @ 81D2193 waitbgfadeout createsprite gFangSpriteTemplate, ANIM_TARGET, 2, waitbgfadein @@ -8161,17 +8143,17 @@ gUnknown_81D2193:: @ 81D2193 waitforvisualfinish end -gUnknown_81D21B7:: @ 81D21B7 +HyperFangOnOpponent:: @ 81D21B7 fadetobg 4 - goto gUnknown_81D2193 + goto HyperFangContinue -gUnknown_81D21BE:: @ 81D21BE +HyperFangOnPlayer:: @ 81D21BE fadetobg 5 - goto gUnknown_81D2193 + goto HyperFangContinue -gUnknown_81D21C5:: @ 81D21C5 +HyperFangInContest:: @ 81D21C5 fadetobg 6 - goto gUnknown_81D2193 + goto HyperFangContinue Move_TRI_ATTACK:: @ 81D21CC loadspritegfx ANIM_TAG_TRI_FORCE_TRIANGLE @@ -8180,44 +8162,44 @@ Move_TRI_ATTACK:: @ 81D21CC delay 20 playsewithpan SE_W161, 192 delay 20 - createsoundtask mas_80DCF38, 213, -64, 63, 5, 6, 0, 7 + createsoundtask SoundTask_LoopSEAdjustPanning, 213, -64, 63, 5, 6, 0, 7 waitforvisualfinish createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 2, 0, 16, 0 delay 16 loadspritegfx ANIM_TAG_FIRE - createsprite gUnknown_83E5C88, ANIM_TARGET, 2, 0, 0, 30, 30, -1, 0 + createsprite gLargeFlameScatterSpriteTemplate, ANIM_TARGET, 2, 0, 0, 30, 30, -1, 0 playsewithpan SE_W172B, 63 - createsprite gUnknown_83E5C88, ANIM_TARGET, 2, 0, 0, 30, 30, 0, 1 + createsprite gLargeFlameScatterSpriteTemplate, ANIM_TARGET, 2, 0, 0, 30, 30, 0, 1 delay 1 - createsprite gUnknown_83E5C88, ANIM_TARGET, 2, 0, 0, 30, 30, -1, -1 + createsprite gLargeFlameScatterSpriteTemplate, ANIM_TARGET, 2, 0, 0, 30, 30, -1, -1 delay 1 - createsprite gUnknown_83E5C88, ANIM_TARGET, 2, 0, 0, 30, 30, 2, 1 + createsprite gLargeFlameScatterSpriteTemplate, ANIM_TARGET, 2, 0, 0, 30, 30, 2, 1 delay 1 - createsprite gUnknown_83E5C88, ANIM_TARGET, 2, 0, 0, 30, 30, 1, -1 + createsprite gLargeFlameScatterSpriteTemplate, ANIM_TARGET, 2, 0, 0, 30, 30, 1, -1 delay 1 - createsprite gUnknown_83E5C88, ANIM_TARGET, 2, 0, 0, 30, 30, -1, 1 + createsprite gLargeFlameScatterSpriteTemplate, ANIM_TARGET, 2, 0, 0, 30, 30, -1, 1 delay 1 - createsprite gUnknown_83E5C88, ANIM_TARGET, 2, 0, 0, 30, 30, 1, -2 + createsprite gLargeFlameScatterSpriteTemplate, ANIM_TARGET, 2, 0, 0, 30, 30, 1, -2 delay 1 - createsprite gUnknown_83E5C88, ANIM_TARGET, 2, 0, 0, 30, 30, 3, 1 + createsprite gLargeFlameScatterSpriteTemplate, ANIM_TARGET, 2, 0, 0, 30, 30, 3, 1 delay 2 - createvisualtask sub_80ADAD8, 2, 20, 3, 1, 1 + createvisualtask AnimTask_ShakeTargetInPattern, 2, 20, 3, 1, 1 waitforvisualfinish loadspritegfx ANIM_TAG_LIGHTNING - createvisualtask sub_80BA0E8, 2, 257, 257, 257 + createvisualtask AnimTask_InvertScreenColor, 2, 257, 257, 257 playsewithpan SE_W161B, 63 - createsprite gUnknown_83E5F38, ANIM_TARGET, 2, 0, -48 + createsprite gLightningSpriteTemplate, ANIM_TARGET, 2, 0, -48 delay 1 - createsprite gUnknown_83E5F38, ANIM_TARGET, 2, 0, -16 + createsprite gLightningSpriteTemplate, ANIM_TARGET, 2, 0, -16 delay 1 - createsprite gUnknown_83E5F38, ANIM_TARGET, 2, 0, 16 + createsprite gLightningSpriteTemplate, ANIM_TARGET, 2, 0, 16 delay 20 - createvisualtask sub_80ADAD8, 2, 20, 3, 1, 0 + createvisualtask AnimTask_ShakeTargetInPattern, 2, 20, 3, 1, 0 delay 2 - createvisualtask sub_80BA0E8, 2, 257, 257, 257 + createvisualtask AnimTask_InvertScreenColor, 2, 257, 257, 257 waitforvisualfinish loadspritegfx ANIM_TAG_ICE_CRYSTALS - call gUnknown_81D540A + call IceCrystalEffectShort createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 2, 16, 0, 0 waitforvisualfinish end @@ -8225,32 +8207,32 @@ Move_TRI_ATTACK:: @ 81D21CC Move_WILL_O_WISP:: @ 81D2340 loadspritegfx ANIM_TAG_WISP_FIRE loadspritegfx ANIM_TAG_WISP_ORB - monbg 3 + monbg ANIM_DEF_PARTNER monbgprio_2A 1 playsewithpan SE_W052, 192 waitplaysewithpan SE_W052, 192, 10 - createvisualtask sub_80DD444, 2, -64, -64, 1, 0 - createsprite gUnknown_83E5EB4, ANIM_ATTACKER, 2, 0, 0, 0 + createvisualtask SoundTask_AdjustPanningVar, 2, -64, -64, 1, 0 + createsprite gWillOWispOrbSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 0 delay 3 - createsprite gUnknown_83E5EB4, ANIM_ATTACKER, 3, 0, 0, 1 + createsprite gWillOWispOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 1 delay 3 - createsprite gUnknown_83E5EB4, ANIM_ATTACKER, 4, 0, 0, 2 + createsprite gWillOWispOrbSpriteTemplate, ANIM_ATTACKER, 4, 0, 0, 2 delay 3 - createsprite gUnknown_83E5EB4, ANIM_ATTACKER, 4, 0, 0, 3 + createsprite gWillOWispOrbSpriteTemplate, ANIM_ATTACKER, 4, 0, 0, 3 delay 40 - createvisualtask sub_80DD444, 2, -64, 63, 2, 0 + createvisualtask SoundTask_AdjustPanningVar, 2, -64, 63, 2, 0 waitforvisualfinish monbgprio_29 playsewithpan SE_W172B, 63 createvisualtask AnimTask_ShakeMon2, 2, 1, 4, 0, 13, 1 - createsprite gUnknown_83E5EE4, ANIM_ATTACKER, 2, 0 - createsprite gUnknown_83E5EE4, ANIM_ATTACKER, 2, 42 - createsprite gUnknown_83E5EE4, ANIM_ATTACKER, 2, 84 - createsprite gUnknown_83E5EE4, ANIM_ATTACKER, 2, 126 - createsprite gUnknown_83E5EE4, ANIM_ATTACKER, 2, 168 - createsprite gUnknown_83E5EE4, ANIM_ATTACKER, 2, 210 + createsprite gWillOWispFireSpriteTemplate, ANIM_ATTACKER, 2, 0 + createsprite gWillOWispFireSpriteTemplate, ANIM_ATTACKER, 2, 42 + createsprite gWillOWispFireSpriteTemplate, ANIM_ATTACKER, 2, 84 + createsprite gWillOWispFireSpriteTemplate, ANIM_ATTACKER, 2, 126 + createsprite gWillOWispFireSpriteTemplate, ANIM_ATTACKER, 2, 168 + createsprite gWillOWispFireSpriteTemplate, ANIM_ATTACKER, 2, 210 waitforvisualfinish - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER end Move_ENCORE:: @ 81D23FE @@ -8265,7 +8247,7 @@ Move_ENCORE:: @ 81D23FE createsprite gClappingHand2SpriteTemplate, ANIM_ATTACKER, 3, -2, 0, 0, 0, 9 createsprite gClappingHand2SpriteTemplate, ANIM_ATTACKER, 3, 2, 0, 1, 0, 9 delay 16 - createvisualtask sub_80DD410, 5, 216, 63 + createvisualtask SoundTask_PlaySE2WithPanning, 5, 216, 63 createvisualtask AnimTask_SwayMon, 5, 1, 8, 1536, 5, 1 waitforvisualfinish createvisualtask AnimTask_HardwarePaletteFade, 2, BLDCNT_TGT1_BG3 | BLDCNT_TGT1_OBJ | BLDCNT_TGT1_BD | BLDCNT_EFFECT_DARKEN, 3, 10, 0, TRUE @@ -8280,8 +8262,8 @@ Move_TRICK:: @ 81D24A5 createsprite gTrickBagSpriteTemplate, ANIM_ATTACKER, 2, -40, 208 delay 16 playsewithpan SE_W166, 0 - createvisualtask sub_80A9A20, 3, - createvisualtask sub_80A9AB0, 3, + createvisualtask AnimTask_StretchTargetUp, 3, + createvisualtask AnimTask_StretchAttackerUp, 3 delay 30 playsewithpan SE_W104, 0 delay 24 @@ -8311,7 +8293,7 @@ Move_WISH:: @ 81D2523 waitforvisualfinish delay 60 loopsewithpan SE_W215, 192, 16, 3 - call gUnknown_81D569E + call GrantingStarsEffect waitforvisualfinish createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 10, 0, 0 waitforvisualfinish @@ -8322,13 +8304,13 @@ Move_STOCKPILE:: @ 81D256B playsewithpan SE_W025, 192 createvisualtask AnimTask_CurseBlendEffect, 2, 2, 8, 1, 0, 12, RGB_WHITE createvisualtask AnimTask_StockpileDeformMon, 5, - call gUnknown_81D25A9 - call gUnknown_81D25A9 + call StockpileAbsorb + call StockpileAbsorb waitforvisualfinish createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 2, 0, 12, 0, RGB_WHITE end -gUnknown_81D25A9:: @ 81D25A9 +StockpileAbsorb:: @ 81D25A9 createsprite gStockpileAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 2, 55, 55, 13 delay 1 createsprite gStockpileAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 2, -55, -55, 13 @@ -8365,28 +8347,27 @@ Move_SPIT_UP:: @ 81D2622 createsprite gSpitUpOrbSpriteTemplate, ANIM_ATTACKER, 2, 192, 12 createsprite gSpitUpOrbSpriteTemplate, ANIM_ATTACKER, 2, 224, 12 delay 5 - jumpifmoveturn 2, gUnknown_81D26EF - jumpifmoveturn 3, gUnknown_81D2718 - -gUnknown_81D26B2:: @ 81D26B2 + jumpifmoveturn 2, SpitUpStrong + jumpifmoveturn 3, SpitUpStrongest +SpitUpContinue:: @ 81D26B2 delay 5 - createvisualtask sub_8099BD4, 2, 0, 1, 8, 1, 0 + createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 2, 0, 1, 8, 1, 0 playsewithpan SE_W003, 63 - createsprite gUnknown_83E7C98, ANIM_TARGET, 3, -12, 10, 1, 1 + createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, -12, 10, 1, 1 delay 5 playsewithpan SE_W003, 63 - createsprite gUnknown_83E7C98, ANIM_TARGET, 3, 12, -10, 1, 1 + createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, 12, -10, 1, 1 waitforvisualfinish end -gUnknown_81D26EF:: @ 81D26EF +SpitUpStrong:: @ 81D26EF createsprite gSpitUpOrbSpriteTemplate, ANIM_ATTACKER, 2, 16 createsprite gSpitUpOrbSpriteTemplate, ANIM_ATTACKER, 2, 80 createsprite gSpitUpOrbSpriteTemplate, ANIM_ATTACKER, 2, 144 createsprite gSpitUpOrbSpriteTemplate, ANIM_ATTACKER, 2, 208 - goto gUnknown_81D26B2 + goto SpitUpContinue -gUnknown_81D2718:: @ 81D2718 +SpitUpStrongest:: @ 81D2718 createsprite gSpitUpOrbSpriteTemplate, ANIM_ATTACKER, 2, 16 createsprite gSpitUpOrbSpriteTemplate, ANIM_ATTACKER, 2, 48 createsprite gSpitUpOrbSpriteTemplate, ANIM_ATTACKER, 2, 80 @@ -8395,7 +8376,7 @@ gUnknown_81D2718:: @ 81D2718 createsprite gSpitUpOrbSpriteTemplate, ANIM_ATTACKER, 2, 176 createsprite gSpitUpOrbSpriteTemplate, ANIM_ATTACKER, 2, 208 createsprite gSpitUpOrbSpriteTemplate, ANIM_ATTACKER, 2, 240 - goto gUnknown_81D26B2 + goto SpitUpContinue Move_SWALLOW:: @ 81D2765 loadspritegfx ANIM_TAG_BLUE_ORB @@ -8406,16 +8387,15 @@ Move_SWALLOW:: @ 81D2765 delay 38 playsewithpan SE_W255, 192 createvisualtask AnimTask_ShakeMon2, 2, 0, 2, 0, 12, 1 - call gUnknown_81D27B6 - jumpifmoveturn 2, gUnknown_81D27F8 - jumpifmoveturn 3, gUnknown_81D2802 - -gUnknown_81D27AF:: @ 81D27AF + call SwallowEffect + jumpifmoveturn 2, SwallowGood + jumpifmoveturn 3, SwallowBest +SwallowContinue:: @ 81D27AF waitforvisualfinish - call gUnknown_81D56C9 + call HealingEffect end -gUnknown_81D27B6:: @ 81D27B6 +SwallowEffect:: @ 81D27B6 createsprite gSwallowBlueOrbSpriteTemplate, ANIM_ATTACKER, 2, 0, -8 delay 1 createsprite gSwallowBlueOrbSpriteTemplate, ANIM_ATTACKER, 2, -24, -8 @@ -8428,22 +8408,22 @@ gUnknown_81D27B6:: @ 81D27B6 delay 1 return -gUnknown_81D27F8:: @ 81D27F8 - call gUnknown_81D27B6 - goto gUnknown_81D27AF +SwallowGood:: @ 81D27F8 + call SwallowEffect + goto SwallowContinue -gUnknown_81D2802:: @ 81D2802 - call gUnknown_81D27B6 - call gUnknown_81D27B6 - goto gUnknown_81D27AF +SwallowBest:: @ 81D2802 + call SwallowEffect + call SwallowEffect + goto SwallowContinue Move_TRANSFORM:: @ 81D2811 - monbg 0 + monbg ANIM_ATTACKER playsewithpan SE_W100, 192 waitplaysewithpan SE_W107, 192, 48 createvisualtask AnimTask_TransformMon, 2, 0 waitforvisualfinish - clearmonbg 0 + clearmonbg ANIM_ATTACKER end Move_MORNING_SUN:: @ 81D2829 @@ -8453,28 +8433,28 @@ Move_MORNING_SUN:: @ 81D2829 delay 8 createvisualtask AnimTask_BlendSelected, 10, 1 | (0xF << 7), 8, 0, 12, RGB_WHITE delay 14 - call gUnknown_81D28AF - call gUnknown_81D28AF - call gUnknown_81D28AF - call gUnknown_81D28AF - call gUnknown_81D28AF - call gUnknown_81D28AF - call gUnknown_81D28AF - call gUnknown_81D28AF - call gUnknown_81D28AF - call gUnknown_81D28AF - call gUnknown_81D28AF - call gUnknown_81D28AF - call gUnknown_81D28AF - call gUnknown_81D28AF - call gUnknown_81D28AF + call MorningSunStar + call MorningSunStar + call MorningSunStar + call MorningSunStar + call MorningSunStar + call MorningSunStar + call MorningSunStar + call MorningSunStar + call MorningSunStar + call MorningSunStar + call MorningSunStar + call MorningSunStar + call MorningSunStar + call MorningSunStar + call MorningSunStar createvisualtask AnimTask_BlendSelected, 10, 1 | (0xF << 7), 3, 12, 0, RGB_WHITE waitforvisualfinish waitsound - call gUnknown_81D56C9 + call HealingEffect end -gUnknown_81D28AF:: @ 81D28AF +MorningSunStar:: @ 81D28AF createsprite gGreenStarSpriteTemplate, ANIM_ATTACKER, 2, 30, 640 delay 5 return @@ -8485,15 +8465,15 @@ Move_SWEET_SCENT:: @ 81D28BD createsprite gSweetScentPetalSpriteTemplate, ANIM_ATTACKER, 2, 100, 0, 100 delay 25 setpan 0 - call gUnknown_81D2901 + call SweetScentEffect createsprite gSweetScentPetalSpriteTemplate, ANIM_ATTACKER, 2, 55, 0 setpan 63 createvisualtask AnimTask_CurseBlendEffect, 2, 20, 1, 5, 5, 13, 22207 - call gUnknown_81D2901 + call SweetScentEffect waitforvisualfinish end -gUnknown_81D2901:: @ 81D2901 +SweetScentEffect:: @ 81D2901 createsprite gSweetScentPetalSpriteTemplate, ANIM_ATTACKER, 2, 70, 1, 64 delay 2 createsprite gSweetScentPetalSpriteTemplate, ANIM_ATTACKER, 2, 60, 0, 64 @@ -8527,43 +8507,43 @@ Move_HYPER_BEAM:: @ 81D29A7 createvisualtask AnimTask_ShakeMon2, 2, 0, 1, 0, 4, 1 waitforvisualfinish delay 30 - createsoundtask mas_80DCF38, 240, -64, 63, 1, 15, 0, 5 + createsoundtask SoundTask_LoopSEAdjustPanning, 240, -64, 63, 1, 15, 0, 5 createvisualtask AnimTask_ShakeMon, 2, 0, 0, 4, 50, 1 - createvisualtask sub_80B9F6C, 2, 10147, 1, 12, 31, 16, 0, 0 - call gUnknown_81D2AD8 - call gUnknown_81D2AD8 - call gUnknown_81D2AD8 - call gUnknown_81D2AD8 - call gUnknown_81D2AD8 + createvisualtask AnimTask_FlashAnimTagWithColor, 2, 10147, 1, 12, 31, 16, 0, 0 + call HyperBeamOrbs + call HyperBeamOrbs + call HyperBeamOrbs + call HyperBeamOrbs + call HyperBeamOrbs createvisualtask AnimTask_ShakeMon2, 2, 1, 4, 0, 50, 1 createvisualtask AnimTask_BlendSelected, 10, 4, 2, 0, 11, RGB(25, 25, 25) - call gUnknown_81D2AD8 - call gUnknown_81D2AD8 - call gUnknown_81D2AD8 - call gUnknown_81D2AD8 - call gUnknown_81D2AD8 - call gUnknown_81D2AD8 - call gUnknown_81D2AD8 - call gUnknown_81D2AD8 - call gUnknown_81D2AD8 - call gUnknown_81D2AD8 - call gUnknown_81D2AD8 - call gUnknown_81D2AD8 - call gUnknown_81D2AD8 - call gUnknown_81D2AD8 - call gUnknown_81D2AD8 - call gUnknown_81D2AD8 - call gUnknown_81D2AD8 - call gUnknown_81D2AD8 - call gUnknown_81D2AD8 - call gUnknown_81D2AD8 - call gUnknown_81D2AD8 + call HyperBeamOrbs + call HyperBeamOrbs + call HyperBeamOrbs + call HyperBeamOrbs + call HyperBeamOrbs + call HyperBeamOrbs + call HyperBeamOrbs + call HyperBeamOrbs + call HyperBeamOrbs + call HyperBeamOrbs + call HyperBeamOrbs + call HyperBeamOrbs + call HyperBeamOrbs + call HyperBeamOrbs + call HyperBeamOrbs + call HyperBeamOrbs + call HyperBeamOrbs + call HyperBeamOrbs + call HyperBeamOrbs + call HyperBeamOrbs + call HyperBeamOrbs createvisualtask AnimTask_BlendSelected, 10, 4, 2, 11, 0, RGB(25, 25, 25) waitforvisualfinish createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 4, 16, 0, 0 end -gUnknown_81D2AD8:: @ 81D2AD8 +HyperBeamOrbs:: @ 81D2AD8 createsprite gHyperBeamOrbSpriteTemplate, ANIM_TARGET, 2, createsprite gHyperBeamOrbSpriteTemplate, ANIM_TARGET, 2, delay 1 @@ -8572,7 +8552,7 @@ gUnknown_81D2AD8:: @ 81D2AD8 Move_FLATTER:: @ 81D2AE9 loadspritegfx ANIM_TAG_SPOTLIGHT loadspritegfx ANIM_TAG_CONFETTI - createvisualtask sub_80DD410, 5, 216, 63 + createvisualtask SoundTask_PlaySE2WithPanning, 5, 216, 63 createvisualtask AnimTask_CreateSpotlight, 2, createvisualtask AnimTask_HardwarePaletteFade, 2, BLDCNT_TGT1_BG3 | BLDCNT_TGT1_OBJ | BLDCNT_TGT1_BD | BLDCNT_EFFECT_DARKEN, 3, 0, 10, FALSE waitforvisualfinish @@ -8582,41 +8562,41 @@ Move_FLATTER:: @ 81D2AE9 delay 10 createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 5, 2, 1 delay 0 - createvisualtask sub_80DD3DC, 5, 222, -64 - call gUnknown_81D2BD2 - call gUnknown_81D2BD2 - call gUnknown_81D2BD2 - call gUnknown_81D2BD2 - call gUnknown_81D2BD2 - call gUnknown_81D2BD2 - call gUnknown_81D2BD2 - call gUnknown_81D2BD2 - call gUnknown_81D2BD2 - call gUnknown_81D2BD2 - call gUnknown_81D2BD2 - call gUnknown_81D2BD2 - call gUnknown_81D2BD2 - call gUnknown_81D2BD2 - call gUnknown_81D2BD2 - call gUnknown_81D2BD2 - call gUnknown_81D2BD2 - call gUnknown_81D2BD2 - call gUnknown_81D2BD2 + createvisualtask SoundTask_PlaySE1WithPanning, 5, 222, -64 + call CreateFlatterConfetti + call CreateFlatterConfetti + call CreateFlatterConfetti + call CreateFlatterConfetti + call CreateFlatterConfetti + call CreateFlatterConfetti + call CreateFlatterConfetti + call CreateFlatterConfetti + call CreateFlatterConfetti + call CreateFlatterConfetti + call CreateFlatterConfetti + call CreateFlatterConfetti + call CreateFlatterConfetti + call CreateFlatterConfetti + call CreateFlatterConfetti + call CreateFlatterConfetti + call CreateFlatterConfetti + call CreateFlatterConfetti + call CreateFlatterConfetti delay 5 - createvisualtask sub_80DD3DC, 5, 222, 63 + createvisualtask SoundTask_PlaySE1WithPanning, 5, 222, 63 waitforvisualfinish createvisualtask AnimTask_HardwarePaletteFade, 2, BLDCNT_TGT1_BG3 | BLDCNT_TGT1_OBJ | BLDCNT_TGT1_BD | BLDCNT_EFFECT_DARKEN, 3, 10, 0, TRUE waitforvisualfinish createvisualtask AnimTask_RemoveSpotlight, 2, end -gUnknown_81D2BD2:: @ 81D2BD2 +CreateFlatterConfetti:: @ 81D2BD2 createsprite gFlatterConfettiSpriteTemplate, ANIM_ATTACKER, 40, 0 createsprite gFlatterConfettiSpriteTemplate, ANIM_ATTACKER, 40, 1 return Move_ROLE_PLAY:: @ 81D2BE5 - monbg 2 + monbg ANIM_ATK_PARTNER createvisualtask AnimTask_BlendSelected, 10, 4, 2, 0, 16, RGB_WHITE createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 2, 0, 10, 0 waitforvisualfinish @@ -8624,7 +8604,7 @@ Move_ROLE_PLAY:: @ 81D2BE5 waitplaysewithpan SE_W197, 192, 30 createvisualtask AnimTask_RolePlaySilhouette, 2, waitforvisualfinish - clearmonbg 2 + clearmonbg ANIM_ATK_PARTNER createvisualtask AnimTask_BlendSelected, 10, 4, 2, 16, 0, RGB_WHITE delay 8 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 2, 10, 0, 0 @@ -8634,10 +8614,10 @@ Move_REFRESH:: @ 81D2C42 loadspritegfx ANIM_TAG_THIN_RING loadspritegfx ANIM_TAG_SPARKLE_2 playsewithpan SE_W287, 192 - createvisualtask sub_80E2084, 2, 0 + createvisualtask AnimTask_StatusClearedEffect, 2, 0 waitforvisualfinish playsewithpan SE_W234, 192 - call gUnknown_81D569E + call GrantingStarsEffect waitforvisualfinish playsewithpan SE_REAPOKE, 192 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 3, 10, 0, 31500 @@ -8651,7 +8631,7 @@ Move_BLAZE_KICK:: @ 81D2C85 monbg 1 setalpha 12, 8 playsewithpan SE_W172, 63 - createsprite gUnknown_83E678C, ANIM_TARGET, 3, 0, 0, 1, 30 + createsprite gSpinningHandOrFootSpriteTemplate, ANIM_TARGET, 3, 0, 0, 1, 30 createvisualtask AnimTask_BlendSelected, 10, 4, 2, 0, 7, RGB_WHITE delay 30 playsewithpan SE_W007, 63 @@ -8659,7 +8639,7 @@ Move_BLAZE_KICK:: @ 81D2C85 createvisualtask AnimTask_ShakeMon2, 2, 1, 3, 0, 14, 1 createvisualtask AnimTask_BlendSelected, 10, 4, 2, 0, 0, RGB_WHITE createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 3, 1, 0, 8, 0, 0 - call gUnknown_81D0950 + call FireSpreadEffect waitforvisualfinish clearmonbg 1 blendoff @@ -8667,22 +8647,22 @@ Move_BLAZE_KICK:: @ 81D2C85 Move_HYPER_VOICE:: @ 81D2D0D loadspritegfx ANIM_TAG_THIN_RING - call gUnknown_81D2D1F + call HyperVoiceEffect waitforvisualfinish delay 8 - call gUnknown_81D2D1F + call HyperVoiceEffect waitforvisualfinish end -gUnknown_81D2D1F:: @ 81D2D1F - createvisualtask sub_80DD334, 5, +HyperVoiceEffect:: @ 81D2D1F + createvisualtask sub_80DD334, 5 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 3, 8, 0, 1023 createvisualtask AnimTask_ScaleMonAndRestore, 5, -5, -5, 5, 0, 0 createsprite gHyperVoiceRingSpriteTemplate, ANIM_ATTACKER, 0, 45, 0, 0, 0, 0, 0, 1 createvisualtask AnimTask_ShakeMon2, 2, 1, 1, 0, 6, 1 createvisualtask AnimTask_ShakeMon2, 2, 3, 1, 0, 6, 1 - createvisualtask sub_80BA47C, 2, 1, 0, 6, 1 - createvisualtask sub_80DD2F4, 5, + createvisualtask AnimTask_ShakeBattleTerrain, 2, 1, 0, 6, 1 + createvisualtask SoundTask_WaitForCry, 5, return Move_SAND_TOMB:: @ 81D2D96 @@ -8690,26 +8670,26 @@ Move_SAND_TOMB:: @ 81D2D96 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, 4, 2, 0, 7, 563 createvisualtask AnimTask_ShakeMon, 5, 1, 0, 2, 43, 1 playsewithpan SE_W328, 63 - call gUnknown_81D2DE3 - call gUnknown_81D2DE3 - call gUnknown_81D2DE3 + call SandTombSwirlingDirt + call SandTombSwirlingDirt + call SandTombSwirlingDirt delay 22 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, 4, 2, 7, 0, 563 waitforvisualfinish end -gUnknown_81D2DE3:: @ 81D2DE3 - createsprite gUnknown_83E73E4, ANIM_TARGET, 2, 0, 32, 528, 30, 10, 50, 1 +SandTombSwirlingDirt:: @ 81D2DE3 + createsprite gSwirlingDirtSpriteTemplate, ANIM_TARGET, 2, 0, 32, 528, 30, 10, 50, 1 delay 2 - createsprite gUnknown_83E73E4, ANIM_TARGET, 2, 0, 36, 480, 20, 13, -46, 1 + createsprite gSwirlingDirtSpriteTemplate, ANIM_TARGET, 2, 0, 36, 480, 20, 13, -46, 1 delay 2 - createsprite gUnknown_83E73E4, ANIM_TARGET, 2, 0, 37, 576, 20, 5, 42, 1 + createsprite gSwirlingDirtSpriteTemplate, ANIM_TARGET, 2, 0, 37, 576, 20, 5, 42, 1 delay 2 - createsprite gUnknown_83E73E4, ANIM_TARGET, 2, 0, 35, 400, 25, 8, -42, 1 + createsprite gSwirlingDirtSpriteTemplate, ANIM_TARGET, 2, 0, 35, 400, 25, 8, -42, 1 delay 2 - createsprite gUnknown_83E73E4, ANIM_TARGET, 2, 0, 32, 512, 25, 13, 46, 1 + createsprite gSwirlingDirtSpriteTemplate, ANIM_TARGET, 2, 0, 32, 512, 25, 13, 46, 1 delay 2 - createsprite gUnknown_83E73E4, ANIM_TARGET, 2, 0, 37, 464, 30, 12, -50, 1 + createsprite gSwirlingDirtSpriteTemplate, ANIM_TARGET, 2, 0, 37, 464, 30, 12, -50, 1 delay 2 return @@ -8719,13 +8699,13 @@ Move_SHEER_COLD:: @ 81D2E6E playsewithpan SE_W196, 0 waitbgfadein loadspritegfx ANIM_TAG_ICE_CUBE - monbg 3 + monbg ANIM_DEF_PARTNER monbgprio_28 1 setalpha 12, 8 - createvisualtask sub_80783FC, 2, + createvisualtask AnimTask_FrozenIceCube, 2 waitplaysewithpan SE_W258, 63, 17 waitforvisualfinish - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER blendoff restorebg waitbgfadein @@ -8736,34 +8716,33 @@ Move_ARM_THRUST:: @ 81D2E93 loadspritegfx ANIM_TAG_IMPACT monbgprio_28 1 setalpha 12, 8 - createvisualtask sub_8099980, 5, 8, 5, 0, 0 + createvisualtask AnimTask_RotateMonSpriteToSide, 5, 8, 5, 0, 0 delay 6 createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 4, 3 delay 4 playsewithpan SE_W207, 63 - createsprite gUnknown_83E68AC, ANIM_TARGET, 2, 10, -8, 14, 3 + createsprite gArmThrustHandSpriteTemplate, ANIM_TARGET, 2, 10, -8, 14, 3 waitforvisualfinish - createvisualtask sub_8099980, 5, 8, 5, 0, 1 + createvisualtask AnimTask_RotateMonSpriteToSide, 5, 8, 5, 0, 1 playsewithpan SE_W003, 63 - choosetwoturnanim gUnknown_81D2F00, gUnknown_81D2F14 - -gUnknown_81D2EEC:: @ 81D2EEC + choosetwoturnanim ArmThrustRight, ArmThrustLeft +ArmThrustContinue:: @ 81D2EEC createvisualtask AnimTask_ShakeMon, 5, 1, 4, 0, 6, 1 waitforvisualfinish blendoff end -gUnknown_81D2F00:: @ 81D2F00 +ArmThrustRight:: @ 81D2F00 createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, 8, 0, 1, 2 - goto gUnknown_81D2EEC + goto ArmThrustContinue -gUnknown_81D2F14:: @ 81D2F14 +ArmThrustLeft:: @ 81D2F14 createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, -8, 0, 1, 2 - goto gUnknown_81D2EEC + goto ArmThrustContinue Move_MUDDY_WATER:: @ 81D2F28 panse_1B SE_W250, 192, 63, 2, 0 - createvisualtask sub_80AB38C, 2, 1 + createvisualtask AnimTask_CreateSurfWave, 2, 1 waitforvisualfinish end @@ -8798,91 +8777,91 @@ Move_DRAGON_CLAW:: @ 81D2FD0 playsewithpan SE_W221B, 192 createvisualtask AnimTask_BlendSelected, 10, 2, 4, 0, 8, RGB(31, 19, 0) createvisualtask AnimTask_ShakeMon, 5, 0, 0, 2, 15, 1 - call gUnknown_81D31AD - call gUnknown_81D31AD + call DragonClawFireSpiral + call DragonClawFireSpiral createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 6, 4 - createsprite gUnknown_83E7438, ANIM_ATTACKER, 2, 0, 28, 528, 30, 13, 50, 0 + createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 28, 528, 30, 13, 50, 0 delay 2 - createvisualtask sub_80DD3DC, 5, 129, 63 - createsprite gUnknown_83E79E8, ANIM_TARGET, 2, -10, -10, 0 - createsprite gUnknown_83E79E8, ANIM_TARGET, 2, -10, 10, 0 - createsprite gUnknown_83E7B88, ANIM_ATTACKER, 2, -4, 1, 10, 3, 1 - createsprite gUnknown_83E7438, ANIM_ATTACKER, 2, 0, 32, 480, 20, 16, -46, 0 + createvisualtask SoundTask_PlaySE1WithPanning, 5, 129, 63 + createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, -10, -10, 0 + createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, -10, 10, 0 + createsprite gShakeMonOrTerrainSpriteTemplate, ANIM_ATTACKER, 2, -4, 1, 10, 3, 1 + createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 32, 480, 20, 16, -46, 0 delay 2 - createsprite gUnknown_83E7438, ANIM_ATTACKER, 2, 0, 33, 576, 20, 8, 42, 0 + createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 33, 576, 20, 8, 42, 0 delay 2 - createsprite gUnknown_83E7438, ANIM_ATTACKER, 2, 0, 31, 400, 25, 11, -42, 0 + createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 31, 400, 25, 11, -42, 0 delay 2 createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 6, 4 - createsprite gUnknown_83E7438, ANIM_ATTACKER, 2, 0, 28, 512, 25, 16, 46, 0 + createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 28, 512, 25, 16, 46, 0 delay 2 - createvisualtask sub_80DD3DC, 5, 129, 63 - createsprite gUnknown_83E79E8, ANIM_TARGET, 2, 10, -10, 1 - createsprite gUnknown_83E79E8, ANIM_TARGET, 2, 10, 10, 1 - createsprite gUnknown_83E7B88, ANIM_ATTACKER, 2, -4, 1, 10, 3, 1 - createsprite gUnknown_83E7438, ANIM_ATTACKER, 2, 0, 33, 464, 30, 15, -50, 0 + createvisualtask SoundTask_PlaySE1WithPanning, 5, 129, 63 + createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, 10, -10, 1 + createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, 10, 10, 1 + createsprite gShakeMonOrTerrainSpriteTemplate, ANIM_ATTACKER, 2, -4, 1, 10, 3, 1 + createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 33, 464, 30, 15, -50, 0 delay 2 - createsprite gUnknown_83E7438, ANIM_ATTACKER, 2, 0, 28, 528, 30, 13, 50, 0 + createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 28, 528, 30, 13, 50, 0 delay 2 - createsprite gUnknown_83E7438, ANIM_ATTACKER, 2, 0, 32, 480, 20, 16, -46, 0 + createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 32, 480, 20, 16, -46, 0 delay 2 - createsprite gUnknown_83E7438, ANIM_ATTACKER, 2, 0, 33, 576, 20, 8, 42, 0 + createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 33, 576, 20, 8, 42, 0 delay 2 - createsprite gUnknown_83E7438, ANIM_ATTACKER, 2, 0, 31, 400, 25, 11, -42, 0 + createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 31, 400, 25, 11, -42, 0 delay 2 - createsprite gUnknown_83E7438, ANIM_ATTACKER, 2, 0, 28, 512, 25, 16, 46, 0 + createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 28, 512, 25, 16, 46, 0 delay 2 - createsprite gUnknown_83E7438, ANIM_ATTACKER, 2, 0, 33, 464, 30, 15, -50, 0 + createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 33, 464, 30, 15, -50, 0 createvisualtask AnimTask_BlendSelected, 10, 2, 4, 8, 0, RGB(31, 19, 0) waitforvisualfinish end -gUnknown_81D31AD:: @ 81D31AD - createsprite gUnknown_83E7438, ANIM_ATTACKER, 2, 0, 28, 528, 30, 13, 50, 0 +DragonClawFireSpiral:: @ 81D31AD + createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 28, 528, 30, 13, 50, 0 delay 2 - createsprite gUnknown_83E7438, ANIM_ATTACKER, 2, 0, 32, 480, 20, 16, -46, 0 + createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 32, 480, 20, 16, -46, 0 delay 2 - createsprite gUnknown_83E7438, ANIM_ATTACKER, 2, 0, 33, 576, 20, 8, 42, 0 + createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 33, 576, 20, 8, 42, 0 delay 2 - createsprite gUnknown_83E7438, ANIM_ATTACKER, 2, 0, 31, 400, 25, 11, -42, 0 + createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 31, 400, 25, 11, -42, 0 delay 2 - createsprite gUnknown_83E7438, ANIM_ATTACKER, 2, 0, 28, 512, 25, 16, 46, 0 + createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 28, 512, 25, 16, 46, 0 delay 2 - createsprite gUnknown_83E7438, ANIM_ATTACKER, 2, 0, 33, 464, 30, 15, -50, 0 + createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 33, 464, 30, 15, -50, 0 delay 2 return end Move_MUD_SHOT:: @ 81D3239 loadspritegfx ANIM_TAG_BROWN_ORB - monbg 3 + monbg ANIM_DEF_PARTNER monbgprio_28 1 setalpha 12, 8 createvisualtask AnimTask_ShakeMon, 5, 0, 0, 2, 46, 1 delay 6 - createvisualtask sub_80AB100, 5, 100 + createvisualtask AnimTask_StartSinAnimTimer, 5, 100 panse_1B SE_W250, 192, 63, 1, 0 - call gUnknown_81D32B3 - call gUnknown_81D32B3 - call gUnknown_81D32B3 + call MudShotOrbs + call MudShotOrbs + call MudShotOrbs createvisualtask AnimTask_ShakeMon, 5, 1, 3, 0, 43, 1 - call gUnknown_81D32B3 - call gUnknown_81D32B3 - call gUnknown_81D32B3 - call gUnknown_81D32B3 - call gUnknown_81D32B3 - call gUnknown_81D32B3 - call gUnknown_81D32B3 - call gUnknown_81D32B3 + call MudShotOrbs + call MudShotOrbs + call MudShotOrbs + call MudShotOrbs + call MudShotOrbs + call MudShotOrbs + call MudShotOrbs + call MudShotOrbs waitforvisualfinish - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER blendoff end -gUnknown_81D32B3:: @ 81D32B3 - createsprite gUnknown_83E5974, ANIM_ATTACKER, 3, 10, 10, 0, 16 +MudShotOrbs:: @ 81D32B3 + createsprite gMudShotOrbSpriteTemplate, ANIM_ATTACKER, 3, 10, 10, 0, 16 delay 2 - createsprite gUnknown_83E5974, ANIM_ATTACKER, 3, 10, 10, 0, 16 + createsprite gMudShotOrbSpriteTemplate, ANIM_ATTACKER, 3, 10, 10, 0, 16 delay 2 return @@ -8898,7 +8877,7 @@ Move_METEOR_MASH:: @ 81D32D6 delay 10 createsprite gMeteorMashStarSpriteTemplate, ANIM_TARGET, 3, -112, -64, 8, 32, 30 delay 40 - createsprite gUnknown_83E678C, ANIM_TARGET, 3, 0, 0, 0, 30 + createsprite gSpinningHandOrFootSpriteTemplate, ANIM_TARGET, 3, 0, 0, 0, 30 createsprite gMeteorMashStarSpriteTemplate, ANIM_TARGET, 3, -80, -64, 40, 32, 30 delay 20 playsewithpan SE_W233B, 63 @@ -8916,7 +8895,7 @@ Move_REVENGE:: @ 81D335D monbg 1 setalpha 12, 8 playsewithpan SE_W036, 192 - createsprite gUnknown_83E6900, ANIM_ATTACKER, 2, 10, -10 + createsprite gRevengeSmallScratchSpriteTemplate, ANIM_ATTACKER, 2, 10, -10 waitforvisualfinish createvisualtask AnimTask_CurseBlendEffect, 2, 2, 0, 4, 2, 8, 31 waitforvisualfinish @@ -8925,15 +8904,15 @@ Move_REVENGE:: @ 81D335D createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 6, 4 delay 4 playsewithpan SE_W207, 63 - createsprite gUnknown_83E6948, ANIM_TARGET, 2, 10, -10 + createsprite gRevengeBigScratchSpriteTemplate, ANIM_TARGET, 2, 10, -10 waitforvisualfinish unloadspritegfx ANIM_TAG_PURPLE_SWIPE loadspritegfx ANIM_TAG_IMPACT createvisualtask AnimTask_ShakeMon2, 2, 1, 3, 0, 10, 1 - createsprite gUnknown_83E7CB0, ANIM_TARGET, 3, -10, -8, 1, 1, 8 + createsprite gPersistHitSplatSpriteTemplate, ANIM_TARGET, 3, -10, -8, 1, 1, 8 playsewithpan SE_W233B, 63 delay 8 - createsprite gUnknown_83E7CB0, ANIM_TARGET, 3, 10, 8, 1, 1, 8 + createsprite gPersistHitSplatSpriteTemplate, ANIM_TARGET, 3, 10, 8, 1, 1, 8 playsewithpan SE_W025B, 63 waitforvisualfinish clearmonbg 1 @@ -8949,7 +8928,7 @@ Move_POISON_FANG:: @ 81D33F4 createvisualtask AnimTask_ShakeMon, 3, 1, 3, 0, 10, 1 waitforvisualfinish createvisualtask AnimTask_CurseBlendEffect, 2, 4, 0, 4, 0, 12, 26650 - call gUnknown_81D575B + call PoisonBubblesEffect waitforvisualfinish end @@ -9020,48 +8999,46 @@ Move_FRENZY_PLANT:: @ 81D343F Move_METAL_SOUND:: @ 81D35E3 loadspritegfx ANIM_TAG_METAL_SOUND_WAVES - monbg 3 + monbg ANIM_DEF_PARTNER monbgprio_2A 1 createvisualtask AnimTask_ShakeMon2, 2, 0, 2, 0, 8, 1 - call gUnknown_81D3616 - call gUnknown_81D3616 - call gUnknown_81D3616 - call gUnknown_81D3616 + call MetalSoundRings + call MetalSoundRings + call MetalSoundRings + call MetalSoundRings waitforvisualfinish - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER delay 0 waitforvisualfinish end -gUnknown_81D3616:: @ 81D3616 +MetalSoundRings:: @ 81D3616 panse_1B SE_W103, 192, 63, 2, 0 createsprite gMetalSoundSpriteTemplate, ANIM_TARGET, 2, 16, 0, 0, 0, 30, 0 delay 2 return Move_FOCUS_PUNCH:: @ 81D3633 - goto gUnknown_81D363A - -gUnknown_81D3638:: @ 81D3638 + goto FocusPunch +FocusPunchEnd:: @ 81D3638 waitforvisualfinish end -gUnknown_81D363A:: @ 81D363A +FocusPunch:: @ 81D363A loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_HANDS_AND_FEET delay 1 createvisualtask AnimTask_IsContest, 2, - jumpargeq 7, 1, gUnknown_81D36F3 + jumpargeq 7, 1, FocusPunchInContest createvisualtask AnimTask_IsTargetPlayerSide, 2, - jumpargeq 7, 0, gUnknown_81D36E5 - jumpargeq 7, 1, gUnknown_81D36EC - -gUnknown_81D3668:: @ 81D3668 + jumpargeq 7, 0, FocusPunchOnOpponent + jumpargeq 7, 1, FocusPunchOnPlayer +FocusPunchContinue:: @ 81D3668 waitbgfadein - monbg 3 + monbg ANIM_DEF_PARTNER setalpha 12, 8 playsewithpan SE_W207, 63 - createsprite gUnknown_83E697C, ANIM_TARGET, 2, + createsprite gFocusPunchFistSpriteTemplate, ANIM_TARGET, 2 delay 10 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -10, -8, 1, 0 createvisualtask AnimTask_ShakeMon, 5, 1, 8, 0, 24, 1 @@ -9077,160 +9054,159 @@ gUnknown_81D3668:: @ 81D3668 waitforvisualfinish restorebg waitbgfadein - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER blendoff - goto gUnknown_81D3638 + goto FocusPunchEnd -gUnknown_81D36E5:: @ 81D36E5 +FocusPunchOnOpponent:: @ 81D36E5 fadetobg 4 - goto gUnknown_81D3668 + goto FocusPunchContinue -gUnknown_81D36EC:: @ 81D36EC +FocusPunchOnPlayer:: @ 81D36EC fadetobg 5 - goto gUnknown_81D3668 + goto FocusPunchContinue -gUnknown_81D36F3:: @ 81D36F3 +FocusPunchInContest:: @ 81D36F3 fadetobg 6 - goto gUnknown_81D3668 + goto FocusPunchContinue Move_RETURN:: @ 81D36FA loadspritegfx ANIM_TAG_IMPACT - monbg 3 + monbg ANIM_DEF_PARTNER setalpha 12, 8 createvisualtask AnimTask_GetReturnPowerLevel, 2, delay 2 - jumpargeq 7, 0, gUnknown_81D3730 - jumpargeq 7, 1, gUnknown_81D3782 - jumpargeq 7, 2, gUnknown_81D37E2 - jumpargeq 7, 3, gUnknown_81D38FD - -gUnknown_81D372B:: @ 81D372B + jumpargeq 7, 0, ReturnWeak + jumpargeq 7, 1, ReturnMedium + jumpargeq 7, 2, ReturnStrong + jumpargeq 7, 3, ReturnStrongest +ReturnContinue:: @ 81D372B waitforvisualfinish - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER blendoff end -gUnknown_81D3730:: @ 81D3730 +ReturnWeak:: @ 81D3730 createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 16, 1, 0 - createvisualtask sub_80DD410, 5, 160, -64 + createvisualtask SoundTask_PlaySE2WithPanning, 5, 160, -64 waitforvisualfinish createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 16, 1, 0 - createvisualtask sub_80DD410, 5, 160, -64 + createvisualtask SoundTask_PlaySE2WithPanning, 5, 160, -64 delay 5 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -10, -8, 1, 2 - createvisualtask sub_80DD3DC, 5, 132, 63 - goto gUnknown_81D372B + createvisualtask SoundTask_PlaySE1WithPanning, 5, 132, 63 + goto ReturnContinue -gUnknown_81D3782:: @ 81D3782 +ReturnMedium:: @ 81D3782 createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 6, 1, 0 - createvisualtask sub_80DD410, 5, 160, -64 + createvisualtask SoundTask_PlaySE2WithPanning, 5, 160, -64 waitforvisualfinish createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 6, 1, 0 - createvisualtask sub_80DD410, 5, 160, -64 + createvisualtask SoundTask_PlaySE2WithPanning, 5, 160, -64 waitforvisualfinish delay 11 createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 5, 4 delay 6 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 1, 2 - createvisualtask sub_80DD3DC, 5, 134, 63 - goto gUnknown_81D372B + createvisualtask SoundTask_PlaySE1WithPanning, 5, 134, 63 + goto ReturnContinue -gUnknown_81D37E2:: @ 81D37E2 +ReturnStrong:: @ 81D37E2 createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 6, 1, 0 - createvisualtask sub_80DD410, 5, 160, -64 + createvisualtask SoundTask_PlaySE2WithPanning, 5, 160, -64 waitforvisualfinish createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 6, 1, 0 - createvisualtask sub_80DD410, 5, 160, -64 + createvisualtask SoundTask_PlaySE2WithPanning, 5, 160, -64 waitforvisualfinish createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 6, 1, 0 - createvisualtask sub_80DD410, 5, 160, -64 + createvisualtask SoundTask_PlaySE2WithPanning, 5, 160, -64 waitforvisualfinish createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 6, 1, 0 - createvisualtask sub_80DD410, 5, 160, -64 + createvisualtask SoundTask_PlaySE2WithPanning, 5, 160, -64 waitforvisualfinish createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -10, -8, 1, 2 - createvisualtask sub_80DD3DC, 5, 116, 63 + createvisualtask SoundTask_PlaySE1WithPanning, 5, 116, 63 createvisualtask AnimTask_ShakeMon, 5, 1, 6, 0, 8, 1 delay 8 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 10, 10, 1, 2 - createvisualtask sub_80DD3DC, 5, 116, 63 + createvisualtask SoundTask_PlaySE1WithPanning, 5, 116, 63 createvisualtask AnimTask_ShakeMon, 5, 1, 6, 0, 8, 1 delay 8 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 3, -5, 1, 2 - createvisualtask sub_80DD3DC, 5, 116, 63 + createvisualtask SoundTask_PlaySE1WithPanning, 5, 116, 63 createvisualtask AnimTask_ShakeMon, 5, 1, 6, 0, 8, 1 delay 8 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -5, 3, 1, 2 - createvisualtask sub_80DD3DC, 5, 116, 63 + createvisualtask SoundTask_PlaySE1WithPanning, 5, 116, 63 createvisualtask AnimTask_ShakeMon, 5, 1, 6, 0, 8, 1 - goto gUnknown_81D372B + goto ReturnContinue -gUnknown_81D38FD:: @ 81D38FD +ReturnStrongest:: @ 81D38FD createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 0, 0, 6, 0 waitforvisualfinish createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 16, 1, 0 - createvisualtask sub_80DD410, 5, 160, -64 + createvisualtask SoundTask_PlaySE2WithPanning, 5, 160, -64 delay 8 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 3, -5, 1, 2 - createvisualtask sub_80DD3DC, 5, 116, 63 + createvisualtask SoundTask_PlaySE1WithPanning, 5, 116, 63 waitforvisualfinish createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 12, 1, 0 - createvisualtask sub_80DD410, 5, 160, -64 + createvisualtask SoundTask_PlaySE2WithPanning, 5, 160, -64 delay 5 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -10, -8, 1, 2 - createvisualtask sub_80DD3DC, 5, 116, 63 + createvisualtask SoundTask_PlaySE1WithPanning, 5, 116, 63 createvisualtask AnimTask_ShakeMon, 5, 1, 6, 0, 8, 1 waitforvisualfinish delay 4 createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 8, 1, 0 - createvisualtask sub_80DD410, 5, 160, -64 + createvisualtask SoundTask_PlaySE2WithPanning, 5, 160, -64 delay 5 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -10, -8, 1, 2 - createvisualtask sub_80DD3DC, 5, 116, 63 + createvisualtask SoundTask_PlaySE1WithPanning, 5, 116, 63 createvisualtask AnimTask_ShakeMon, 5, 1, 6, 0, 8, 1 waitforvisualfinish delay 2 createvisualtask AnimTask_CloneBattlerSpriteWithBlend, 2, 0, 4, 5, 1 createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 4, 1, 0 - createvisualtask sub_80DD410, 5, 160, -64 + createvisualtask SoundTask_PlaySE2WithPanning, 5, 160, -64 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -10, -8, 1, 2 - createvisualtask sub_80DD3DC, 5, 116, 63 + createvisualtask SoundTask_PlaySE1WithPanning, 5, 116, 63 createvisualtask AnimTask_ShakeMon, 5, 1, 6, 0, 8, 1 createvisualtask AnimTask_CloneBattlerSpriteWithBlend, 2, 0, 4, 5, 1 waitforvisualfinish createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 4, 2, 0 - createvisualtask sub_80DD410, 5, 160, -64 + createvisualtask SoundTask_PlaySE2WithPanning, 5, 160, -64 delay 5 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -10, -8, 1, 2 - createvisualtask sub_80DD3DC, 5, 116, 63 + createvisualtask SoundTask_PlaySE1WithPanning, 5, 116, 63 createvisualtask AnimTask_ShakeMon, 5, 1, 6, 0, 8, 1 createvisualtask AnimTask_CloneBattlerSpriteWithBlend, 2, 0, 4, 5, 1 waitforvisualfinish - call gUnknown_81D3B35 - call gUnknown_81D3B35 - call gUnknown_81D3B35 - call gUnknown_81D3B35 + call ReturnStrongestHit + call ReturnStrongestHit + call ReturnStrongestHit + call ReturnStrongestHit createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -10, -8, 1, 0 - createvisualtask sub_80DD3DC, 5, 134, 63 + createvisualtask SoundTask_PlaySE1WithPanning, 5, 134, 63 createvisualtask AnimTask_ShakeMon, 5, 1, 8, 0, 24, 1 delay 6 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 10, 10, 1, 0 - createvisualtask sub_80DD3DC, 5, 134, 63 + createvisualtask SoundTask_PlaySE1WithPanning, 5, 134, 63 delay 6 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 3, -5, 1, 0 - createvisualtask sub_80DD3DC, 5, 134, 63 + createvisualtask SoundTask_PlaySE1WithPanning, 5, 134, 63 delay 6 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -5, 3, 1, 0 - createvisualtask sub_80DD3DC, 5, 134, 63 + createvisualtask SoundTask_PlaySE1WithPanning, 5, 134, 63 waitforvisualfinish createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 0, 6, 0, 0 - goto gUnknown_81D372B + goto ReturnContinue -gUnknown_81D3B35:: @ 81D3B35 +ReturnStrongestHit:: @ 81D3B35 createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 4, 3, 0 - createvisualtask sub_80DD410, 5, 160, -64 + createvisualtask SoundTask_PlaySE2WithPanning, 5, 160, -64 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 1, 2 - createvisualtask sub_80DD3DC, 5, 116, 63 + createvisualtask SoundTask_PlaySE1WithPanning, 5, 116, 63 createvisualtask AnimTask_ShakeMon, 5, 1, 6, 0, 8, 1 createvisualtask AnimTask_CloneBattlerSpriteWithBlend, 2, 0, 4, 5, 1 waitforvisualfinish @@ -9238,21 +9214,21 @@ gUnknown_81D3B35:: @ 81D3B35 Move_COSMIC_POWER:: @ 81D3B89 loadspritegfx ANIM_TAG_SPARKLE_2 - createvisualtask sub_80DD410, 5, 236, 0 + createvisualtask SoundTask_PlaySE2WithPanning, 5, 236, 0 playsewithpan SE_W322, 0 - createvisualtask sub_80BB7DC, 2, 0, 0, 15, 0 + createvisualtask AnimTask_BlendNonAttackerPalettes, 2, 0, 0, 15, 0 waitforvisualfinish fadetobg 16 waitbgfadeout - createvisualtask sub_80BB82C, 2, 0, 128, 0, -1 + createvisualtask AnimTask_StartSlidingBg, 2, 0, 128, 0, -1 waitbgfadein delay 70 - createvisualtask sub_80DD3DC, 5, 221, -64 + createvisualtask SoundTask_PlaySE1WithPanning, 5, 221, -64 createsprite gGrantingStarsSpriteTemplate, ANIM_ATTACKER, 2, -15, 0, 0, 0, 32, 60 delay 8 createsprite gGrantingStarsSpriteTemplate, ANIM_ATTACKER, 2, 12, -5, 0, 0, 32, 60 delay 40 - createvisualtask sub_80BB7DC, 2, 0, 15, 0, 0 + createvisualtask AnimTask_BlendNonAttackerPalettes, 2, 0, 15, 0, 0 waitforvisualfinish restorebg waitbgfadeout @@ -9264,77 +9240,77 @@ Move_COSMIC_POWER:: @ 81D3B89 Move_BLAST_BURN:: @ 81D3C0E loadspritegfx ANIM_TAG_FIRE_PLUME loadspritegfx ANIM_TAG_IMPACT - monbg 3 + monbg ANIM_DEF_PARTNER setalpha 12, 8 playsewithpan SE_W221, 192 - createsprite gUnknown_83E5CA0, ANIM_ATTACKER, 2, -32, 0, 24, 0, 0, 0 - createsprite gUnknown_83E5CA0, ANIM_ATTACKER, 2, -20, -10, 24, 0, 0, 0 - createsprite gUnknown_83E5CA0, ANIM_ATTACKER, 66, 0, -16, 24, 0, 0, 0 - createsprite gUnknown_83E5CA0, ANIM_ATTACKER, 66, 20, -10, 24, 0, 0, 0 - createsprite gUnknown_83E5CA0, ANIM_ATTACKER, 66, 32, 0, 24, 0, 0, 0 - createsprite gUnknown_83E5CA0, ANIM_ATTACKER, 66, 20, 10, 24, 0, 0, 0 - createsprite gUnknown_83E5CA0, ANIM_ATTACKER, 2, 0, 16, 24, 0, 0, 0 - createsprite gUnknown_83E5CA0, ANIM_ATTACKER, 2, -20, 10, 24, 0, 0, 0 + createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 2, -32, 0, 24, 0, 0, 0 + createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 2, -20, -10, 24, 0, 0, 0 + createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 66, 0, -16, 24, 0, 0, 0 + createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 66, 20, -10, 24, 0, 0, 0 + createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 66, 32, 0, 24, 0, 0, 0 + createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 66, 20, 10, 24, 0, 0, 0 + createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 2, 0, 16, 24, 0, 0, 0 + createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 2, -20, 10, 24, 0, 0, 0 delay 25 playsewithpan SE_W172B, 192 - createsprite gUnknown_83E5CA0, ANIM_ATTACKER, 2, -64, 0, 24, 0, 0, 0 - createsprite gUnknown_83E5CA0, ANIM_ATTACKER, 6, -40, -20, 24, 0, 0, 0 - createsprite gUnknown_83E5CA0, ANIM_ATTACKER, 70, 0, -32, 24, 0, 0, 0 - createsprite gUnknown_83E5CA0, ANIM_ATTACKER, 70, 40, -20, 24, 0, 0, 0 + createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 2, -64, 0, 24, 0, 0, 0 + createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 6, -40, -20, 24, 0, 0, 0 + createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 70, 0, -32, 24, 0, 0, 0 + createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 70, 40, -20, 24, 0, 0, 0 createvisualtask AnimTask_ShakeMon, 5, 1, 6, 0, 8, 1 - createsprite gUnknown_83E5CA0, ANIM_ATTACKER, 66, 64, 0, 24, 0, 0, 0 - createsprite gUnknown_83E5CA0, ANIM_ATTACKER, 66, 40, 20, 24, 0, 0, 0 - createsprite gUnknown_83E5CA0, ANIM_ATTACKER, 2, 0, 32, 24, 0, 0, 0 - createsprite gUnknown_83E5CA0, ANIM_ATTACKER, 2, -40, 20, 24, 0, 0, 0 - createvisualtask sub_80BA0E8, 2, 257, 257, 257 + createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 66, 64, 0, 24, 0, 0, 0 + createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 66, 40, 20, 24, 0, 0, 0 + createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 2, 0, 32, 24, 0, 0, 0 + createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 2, -40, 20, 24, 0, 0, 0 + createvisualtask AnimTask_InvertScreenColor, 2, 257, 257, 257 delay 25 playsewithpan SE_W172B, 192 - createsprite gUnknown_83E5CA0, ANIM_ATTACKER, 2, -96, 0, 24, 0, 0, 0 - createsprite gUnknown_83E5CA0, ANIM_ATTACKER, 6, -60, -30, 24, 0, 0, 0 - createsprite gUnknown_83E5CA0, ANIM_ATTACKER, 70, 0, -48, 24, 0, 0, 0 - createsprite gUnknown_83E5CA0, ANIM_ATTACKER, 70, 60, -30, 24, 0, 0, 0 + createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 2, -96, 0, 24, 0, 0, 0 + createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 6, -60, -30, 24, 0, 0, 0 + createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 70, 0, -48, 24, 0, 0, 0 + createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 70, 60, -30, 24, 0, 0, 0 createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, -4, 3, 1, 0 createvisualtask AnimTask_ShakeMon, 5, 1, 12, 0, 20, 1 - createvisualtask sub_80BA47C, 2, 2, 0, 10, 1 - createsprite gUnknown_83E5CA0, ANIM_ATTACKER, 66, 96, 0, 24, 0, 0, 0 - createsprite gUnknown_83E5CA0, ANIM_ATTACKER, 66, 60, 30, 24, 0, 0, 0 - createsprite gUnknown_83E5CA0, ANIM_ATTACKER, 2, 0, 48, 24, 0, 0, 0 - createsprite gUnknown_83E5CA0, ANIM_ATTACKER, 2, -60, 30, 24, 0, 0, 0 - createvisualtask sub_80BA0E8, 2, 257, 257, 257 + createvisualtask AnimTask_ShakeBattleTerrain, 2, 2, 0, 10, 1 + createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 66, 96, 0, 24, 0, 0, 0 + createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 66, 60, 30, 24, 0, 0, 0 + createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 2, 0, 48, 24, 0, 0, 0 + createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 2, -60, 30, 24, 0, 0, 0 + createvisualtask AnimTask_InvertScreenColor, 2, 257, 257, 257 waitforvisualfinish - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER blendoff end Move_ROCK_TOMB:: @ 81D3E50 loadspritegfx ANIM_TAG_X_SIGN loadspritegfx ANIM_TAG_ROCKS - createvisualtask sub_80BA47C, 2, 2, 0, 10, 1 + createvisualtask AnimTask_ShakeBattleTerrain, 2, 2, 0, 10, 1 waitforvisualfinish - createsprite gUnknown_83E7508, ANIM_TARGET, 2, 20, 12, 64, 114, 0 + createsprite gRockTombRockSpriteTemplate, ANIM_TARGET, 2, 20, 12, 64, 114, 0 delay 8 - createvisualtask sub_80BA47C, 2, 0, 2, 3, 1 + createvisualtask AnimTask_ShakeBattleTerrain, 2, 0, 2, 3, 1 playsewithpan SE_W070, 63 delay 8 - createsprite gUnknown_83E7508, ANIM_TARGET, 2, -20, 12, 64, 98, 0 + createsprite gRockTombRockSpriteTemplate, ANIM_TARGET, 2, -20, 12, 64, 98, 0 delay 8 - createvisualtask sub_80BA47C, 2, 0, 2, 3, 1 + createvisualtask AnimTask_ShakeBattleTerrain, 2, 0, 2, 3, 1 playsewithpan SE_W070, 63 delay 8 - createsprite gUnknown_83E7508, ANIM_TARGET, 66, 3, 6, 64, 82, 0 + createsprite gRockTombRockSpriteTemplate, ANIM_TARGET, 66, 3, 6, 64, 82, 0 delay 8 - createvisualtask sub_80BA47C, 2, 0, 2, 3, 1 + createvisualtask AnimTask_ShakeBattleTerrain, 2, 0, 2, 3, 1 playsewithpan SE_W070, 63 delay 8 - createsprite gUnknown_83E7508, ANIM_TARGET, 2, -3, 13, 64, 66, 0 + createsprite gRockTombRockSpriteTemplate, ANIM_TARGET, 2, -3, 13, 64, 66, 0 delay 8 - createvisualtask sub_80BA47C, 2, 0, 2, 3, 1 + createvisualtask AnimTask_ShakeBattleTerrain, 2, 0, 2, 3, 1 playsewithpan SE_W070, 63 delay 24 playsewithpan SE_W063, 63 - createsprite gUnknown_83E705C, ANIM_TARGET, 5, 1, 50 + createsprite gRedXSpriteTemplate, ANIM_TARGET, 5, 1, 50 createvisualtask AnimTask_ShakeMon, 5, 1, 3, 0, 20, 1 - createvisualtask sub_80BA47C, 2, 2, 0, 10, 1 + createvisualtask AnimTask_ShakeBattleTerrain, 2, 2, 0, 10, 1 waitforvisualfinish end @@ -9343,17 +9319,16 @@ Move_SILVER_WIND:: @ 81D3F37 panse_1B SE_W016, 192, 63, 2, 0 playsewithpan SE_W234, 0 delay 0 - monbg 3 + monbg ANIM_DEF_PARTNER monbgprio_29 delay 0 createvisualtask AnimTask_BlendExcept, 10, 1, 0, 0, 4, 0 createvisualtask AnimTask_GetTargetSide, 2, - jumpargeq 7, 1, gUnknown_81D4138 - fadetobg 22 + jumpargeq 7, 1, SilverWindOnPlayer + fadetobg BG_BUG_OPPONENT waitbgfadeout - createvisualtask sub_80BB82C, 5, 1536, 0, 0, -1 - -gUnknown_81D3F7E:: @ 81D3F7E + createvisualtask AnimTask_StartSlidingBg, 5, 1536, 0, 0, -1 +SilverWindContinue:: @ 81D3F7E delay 0 createvisualtask AnimTask_BlendSelected, 10, 1, 0, 4, 4, RGB_BLACK waitbgfadein @@ -9382,7 +9357,7 @@ gUnknown_81D3F7E:: @ 81D3F7E createsprite gSilverWindSmallSparkSpriteTemplate, ANIM_TARGET, 66, -16, 12, 192, 5, 2, 3, 1 waitforvisualfinish playsewithpan SE_W016B, 63 - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER delay 0 restorebg waitbgfadeout @@ -9391,11 +9366,11 @@ gUnknown_81D3F7E:: @ 81D3F7E waitbgfadein end -gUnknown_81D4138:: @ 81D4138 - fadetobg 23 +SilverWindOnPlayer:: @ 81D4138 + fadetobg BG_BUG_PLAYER waitbgfadeout - createvisualtask sub_80BB82C, 5, -1536, 0, 0, -1 - goto gUnknown_81D3F7E + createvisualtask AnimTask_StartSlidingBg, 5, -1536, 0, 0, -1 + goto SilverWindContinue Move_SNATCH:: @ 81D414F playsewithpan SE_W036, 192 @@ -9405,50 +9380,50 @@ Move_SNATCH:: @ 81D414F Move_DIVE:: @ 81D4169 loadspritegfx ANIM_TAG_SPLASH loadspritegfx ANIM_TAG_SWEAT_BEAD - choosetwoturnanim gUnknown_81D4178, gUnknown_81D41CD + choosetwoturnanim DiveSetUp, DiveAttack -gUnknown_81D4178:: @ 81D4178 +DiveSetUp:: @ 81D4178 loadspritegfx ANIM_TAG_ROUND_SHADOW playsewithpan SE_W029, 192 - createsprite gUnknown_83E6D40, ANIM_ATTACKER, 2, 0, 0, 13, 336 + createsprite gDiveBallSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 13, 336 waitforvisualfinish playsewithpan SE_W291, 192 - createsprite gUnknown_83E6D7C, ANIM_ATTACKER, 3, 0 - call gUnknown_81D41B6 - call gUnknown_81D41B6 - call gUnknown_81D41B6 - call gUnknown_81D41B6 - call gUnknown_81D41B6 + createsprite gDiveWaterSplashSpriteTemplate, ANIM_ATTACKER, 3, 0 + call DiveSetUpWaterDroplets + call DiveSetUpWaterDroplets + call DiveSetUpWaterDroplets + call DiveSetUpWaterDroplets + call DiveSetUpWaterDroplets end -gUnknown_81D41B6:: @ 81D41B6 - createsprite gUnknown_83E6D94, ANIM_ATTACKER, 5, 0, 0 - createsprite gUnknown_83E6D94, ANIM_ATTACKER, 5, 1, 0 +DiveSetUpWaterDroplets:: @ 81D41B6 + createsprite gSprayWaterDropletSpriteTemplate, ANIM_ATTACKER, 5, 0, 0 + createsprite gSprayWaterDropletSpriteTemplate, ANIM_ATTACKER, 5, 1, 0 return -gUnknown_81D41CD:: @ 81D41CD +DiveAttack:: @ 81D41CD loadspritegfx ANIM_TAG_WATER_IMPACT loadspritegfx ANIM_TAG_SMALL_BUBBLES - monbg 3 + monbg ANIM_DEF_PARTNER setalpha 12, 8 playsewithpan SE_W153, 63 - createsprite gUnknown_83E6D7C, ANIM_TARGET, 3, 1 - call gUnknown_81D420C - call gUnknown_81D420C - call gUnknown_81D420C - call gUnknown_81D420C - call gUnknown_81D420C + createsprite gDiveWaterSplashSpriteTemplate, ANIM_TARGET, 3, 1 + call DiveAttackWaterDroplets + call DiveAttackWaterDroplets + call DiveAttackWaterDroplets + call DiveAttackWaterDroplets + call DiveAttackWaterDroplets delay 12 - call gUnknown_81C8CA2 + call RisingWaterHitEffect waitforvisualfinish visible 0 - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER blendoff end -gUnknown_81D420C:: @ 81D420C - createsprite gUnknown_83E6D94, ANIM_TARGET, 5, 0, 1 - createsprite gUnknown_83E6D94, ANIM_TARGET, 5, 1, 1 +DiveAttackWaterDroplets:: @ 81D420C + createsprite gSprayWaterDropletSpriteTemplate, ANIM_TARGET, 5, 0, 1 + createsprite gSprayWaterDropletSpriteTemplate, ANIM_TARGET, 5, 1, 1 return Move_ROCK_BLAST:: @ 81D4223 @@ -9457,64 +9432,64 @@ Move_ROCK_BLAST:: @ 81D4223 createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 4, 6 delay 3 playsewithpan SE_W207, 192 - createsprite gUnknown_83E7548, ANIM_TARGET, 2, 16, 0, 0, 0, 25, 257 + createsprite gRockBlastRockSpriteTemplate, ANIM_TARGET, 2, 16, 0, 0, 0, 25, 257 waitforvisualfinish createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, 1, 1 playsewithpan SE_W088, 63 - createsprite gUnknown_83E73CC, ANIM_TARGET, 2, 0, 0, 20, 24, 14, 2 + createsprite gRockFragmentSpriteTemplate, ANIM_TARGET, 2, 0, 0, 20, 24, 14, 2 createvisualtask AnimTask_ShakeMon, 2, 1, 3, 0, 5, 1 - createsprite gUnknown_83E73CC, ANIM_TARGET, 2, 5, 0, -20, 24, 14, 1 - createsprite gUnknown_83E73CC, ANIM_TARGET, 2, 0, 5, 20, -24, 14, 2 - createsprite gUnknown_83E73CC, ANIM_TARGET, 2, -5, 0, -20, -24, 14, 2 + createsprite gRockFragmentSpriteTemplate, ANIM_TARGET, 2, 5, 0, -20, 24, 14, 1 + createsprite gRockFragmentSpriteTemplate, ANIM_TARGET, 2, 0, 5, 20, -24, 14, 2 + createsprite gRockFragmentSpriteTemplate, ANIM_TARGET, 2, -5, 0, -20, -24, 14, 2 waitforvisualfinish end Move_OVERHEAT:: @ 81D42C0 loadspritegfx ANIM_TAG_SMALL_EMBER loadspritegfx ANIM_TAG_IMPACT - monbg 3 + monbg ANIM_DEF_PARTNER setalpha 12, 18 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 0, 5, 28 waitforvisualfinish - createvisualtask sub_80BBE10, 5, + createvisualtask AnimTask_AllocBackupPalBuffer, 5 waitforvisualfinish - createvisualtask sub_80BBE6C, 5, 0, 1 + createvisualtask AnimTask_CopyPalUnfadedToBackup, 5, 0, 1 delay 1 - createvisualtask sub_80BBFA4, 5, 0 + createvisualtask AnimTask_CopyPalFadedToUnfaded, 5, 0 delay 1 playsewithpan SE_W082, 192 - createvisualtask sub_80BBE6C, 5, 1, 0 + createvisualtask AnimTask_CopyPalUnfadedToBackup, 5, 1, 0 delay 1 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 2, 1, 0, 13, 28 createvisualtask AnimTask_ShakeMon, 5, 0, 2, 0, 15, 1 waitforvisualfinish playsewithpan SE_W172B, 192 - createsprite gUnknown_83E7860, ANIM_ATTACKER, 2, 1, 0, 30, 25, -20 - createsprite gUnknown_83E7860, ANIM_ATTACKER, 2, 1, 32, 30, 25, -20 - createsprite gUnknown_83E7860, ANIM_ATTACKER, 2, 1, 64, 30, 25, -20 - createsprite gUnknown_83E7860, ANIM_ATTACKER, 2, 1, 96, 30, 25, -20 - createsprite gUnknown_83E7860, ANIM_ATTACKER, 2, 1, 128, 30, 25, -20 - createsprite gUnknown_83E7860, ANIM_ATTACKER, 66, 1, 160, 30, 25, -20 - createsprite gUnknown_83E7860, ANIM_ATTACKER, 66, 1, 192, 30, 25, -20 - createsprite gUnknown_83E7860, ANIM_ATTACKER, 66, 1, 224, 30, 25, -20 + createsprite gOverheatFlameSpriteTemplate, ANIM_ATTACKER, 2, 1, 0, 30, 25, -20 + createsprite gOverheatFlameSpriteTemplate, ANIM_ATTACKER, 2, 1, 32, 30, 25, -20 + createsprite gOverheatFlameSpriteTemplate, ANIM_ATTACKER, 2, 1, 64, 30, 25, -20 + createsprite gOverheatFlameSpriteTemplate, ANIM_ATTACKER, 2, 1, 96, 30, 25, -20 + createsprite gOverheatFlameSpriteTemplate, ANIM_ATTACKER, 2, 1, 128, 30, 25, -20 + createsprite gOverheatFlameSpriteTemplate, ANIM_ATTACKER, 66, 1, 160, 30, 25, -20 + createsprite gOverheatFlameSpriteTemplate, ANIM_ATTACKER, 66, 1, 192, 30, 25, -20 + createsprite gOverheatFlameSpriteTemplate, ANIM_ATTACKER, 66, 1, 224, 30, 25, -20 delay 5 - createsprite gUnknown_83E7860, ANIM_ATTACKER, 2, 1, 0, 30, 25, 0 - createsprite gUnknown_83E7860, ANIM_ATTACKER, 2, 1, 32, 30, 25, 0 - createsprite gUnknown_83E7860, ANIM_ATTACKER, 2, 1, 64, 30, 25, 0 - createsprite gUnknown_83E7860, ANIM_ATTACKER, 2, 1, 96, 30, 25, 0 - createsprite gUnknown_83E7860, ANIM_ATTACKER, 2, 1, 128, 30, 25, 0 - createsprite gUnknown_83E7860, ANIM_ATTACKER, 66, 1, 160, 30, 25, 0 - createsprite gUnknown_83E7860, ANIM_ATTACKER, 66, 1, 192, 30, 25, 0 - createsprite gUnknown_83E7860, ANIM_ATTACKER, 66, 1, 224, 30, 25, 0 + createsprite gOverheatFlameSpriteTemplate, ANIM_ATTACKER, 2, 1, 0, 30, 25, 0 + createsprite gOverheatFlameSpriteTemplate, ANIM_ATTACKER, 2, 1, 32, 30, 25, 0 + createsprite gOverheatFlameSpriteTemplate, ANIM_ATTACKER, 2, 1, 64, 30, 25, 0 + createsprite gOverheatFlameSpriteTemplate, ANIM_ATTACKER, 2, 1, 96, 30, 25, 0 + createsprite gOverheatFlameSpriteTemplate, ANIM_ATTACKER, 2, 1, 128, 30, 25, 0 + createsprite gOverheatFlameSpriteTemplate, ANIM_ATTACKER, 66, 1, 160, 30, 25, 0 + createsprite gOverheatFlameSpriteTemplate, ANIM_ATTACKER, 66, 1, 192, 30, 25, 0 + createsprite gOverheatFlameSpriteTemplate, ANIM_ATTACKER, 66, 1, 224, 30, 25, 0 delay 5 - createsprite gUnknown_83E7860, ANIM_ATTACKER, 2, 1, 0, 30, 25, 10 - createsprite gUnknown_83E7860, ANIM_ATTACKER, 2, 1, 32, 30, 25, 10 - createsprite gUnknown_83E7860, ANIM_ATTACKER, 2, 1, 64, 30, 25, 10 - createsprite gUnknown_83E7860, ANIM_ATTACKER, 2, 1, 96, 30, 25, 10 - createsprite gUnknown_83E7860, ANIM_ATTACKER, 2, 1, 128, 30, 25, 10 - createsprite gUnknown_83E7860, ANIM_ATTACKER, 66, 1, 160, 30, 25, 10 - createsprite gUnknown_83E7860, ANIM_ATTACKER, 66, 1, 192, 30, 25, 10 - createsprite gUnknown_83E7860, ANIM_ATTACKER, 66, 1, 224, 30, 25, 10 + createsprite gOverheatFlameSpriteTemplate, ANIM_ATTACKER, 2, 1, 0, 30, 25, 10 + createsprite gOverheatFlameSpriteTemplate, ANIM_ATTACKER, 2, 1, 32, 30, 25, 10 + createsprite gOverheatFlameSpriteTemplate, ANIM_ATTACKER, 2, 1, 64, 30, 25, 10 + createsprite gOverheatFlameSpriteTemplate, ANIM_ATTACKER, 2, 1, 96, 30, 25, 10 + createsprite gOverheatFlameSpriteTemplate, ANIM_ATTACKER, 2, 1, 128, 30, 25, 10 + createsprite gOverheatFlameSpriteTemplate, ANIM_ATTACKER, 66, 1, 160, 30, 25, 10 + createsprite gOverheatFlameSpriteTemplate, ANIM_ATTACKER, 66, 1, 192, 30, 25, 10 + createsprite gOverheatFlameSpriteTemplate, ANIM_ATTACKER, 66, 1, 224, 30, 25, 10 delay 5 waitforvisualfinish createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, -5, 3, 1, 0 @@ -9529,68 +9504,68 @@ Move_OVERHEAT:: @ 81D42C0 delay 8 createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, 1, 0 playsewithpan SE_W007, 63 - createvisualtask sub_80BBFA4, 5, 1 + createvisualtask AnimTask_CopyPalFadedToUnfaded, 5, 1 delay 1 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 2, -1, 0, 13, 19026 createvisualtask AnimTask_ShakeMon, 5, 0, 3, 0, 15, 1 waitforvisualfinish - createvisualtask sub_80BBF08, 5, 0, 1 + createvisualtask AnimTask_CopyPalUnfadedFromBackup, 5, 0, 1 delay 1 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 5, 0, 28 waitforvisualfinish - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER blendoff waitforvisualfinish delay 15 - createvisualtask sub_80BBF08, 5, 1, 0 + createvisualtask AnimTask_CopyPalUnfadedFromBackup, 5, 1, 0 delay 1 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 2, 0, 13, 0, 19026 waitforvisualfinish - createvisualtask sub_80BBE3C, 5, + createvisualtask AnimTask_FreeBackupPalBuffer, 5 waitforvisualfinish end Move_HYDRO_CANNON:: @ 81D45B2 loadspritegfx ANIM_TAG_WATER_ORB loadspritegfx ANIM_TAG_WATER_IMPACT - monbg 3 + monbg ANIM_DEF_PARTNER setalpha 12, 8 playsewithpan SE_W057, 192 - createsprite gUnknown_83E5A38, ANIM_TARGET, 2, + createsprite gHydroCannonChargeSpriteTemplate, ANIM_TARGET, 2, delay 10 - createvisualtask sub_80BA0E8, 2, 257, 257, 257 + createvisualtask AnimTask_InvertScreenColor, 2, 257, 257, 257 delay 30 panse_1B SE_W056, 192, 63, 2, 0 - call gUnknown_81D467C + call HydroCannonBeam createvisualtask AnimTask_ShakeMon, 5, 1, 10, 0, 40, 1 - createsprite gUnknown_83E7C38, ANIM_TARGET, 2, 0, 0, 1, 0 - call gUnknown_81D467C - createsprite gUnknown_83E7C38, ANIM_TARGET, 2, 0, 0, 1, 0 - call gUnknown_81D467C - createsprite gUnknown_83E7C38, ANIM_TARGET, 2, 0, 0, 1, 0 - call gUnknown_81D467C - createsprite gUnknown_83E7C38, ANIM_TARGET, 2, 0, 0, 1, 0 - call gUnknown_81D467C - createsprite gUnknown_83E7C38, ANIM_TARGET, 2, 0, 0, 1, 0 - call gUnknown_81D467C - createsprite gUnknown_83E7C38, ANIM_TARGET, 2, 0, 0, 1, 0 + createsprite gWaterHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, 1, 0 + call HydroCannonBeam + createsprite gWaterHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, 1, 0 + call HydroCannonBeam + createsprite gWaterHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, 1, 0 + call HydroCannonBeam + createsprite gWaterHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, 1, 0 + call HydroCannonBeam + createsprite gWaterHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, 1, 0 + call HydroCannonBeam + createsprite gWaterHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, 1, 0 waitforvisualfinish - createvisualtask sub_80BA0E8, 2, 257, 257, 257 + createvisualtask AnimTask_InvertScreenColor, 2, 257, 257, 257 waitforvisualfinish - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER blendoff end -gUnknown_81D467C:: @ 81D467C - createsprite gUnknown_83E5A50, ANIM_TARGET, 2, 10, -10, 0, 0, 15, 257 +HydroCannonBeam:: @ 81D467C + createsprite gHydroCannonBeamSpriteTemplate, ANIM_TARGET, 2, 10, -10, 0, 0, 15, 257 delay 1 - createsprite gUnknown_83E5A50, ANIM_TARGET, 2, 10, -10, 0, 0, 15, 257 + createsprite gHydroCannonBeamSpriteTemplate, ANIM_TARGET, 2, 10, -10, 0, 0, 15, 257 delay 1 - createsprite gUnknown_83E5A50, ANIM_TARGET, 2, 10, -10, 0, 0, 15, 257 + createsprite gHydroCannonBeamSpriteTemplate, ANIM_TARGET, 2, 10, -10, 0, 0, 15, 257 delay 1 - createsprite gUnknown_83E5A50, ANIM_TARGET, 2, 10, -10, 0, 0, 15, 257 + createsprite gHydroCannonBeamSpriteTemplate, ANIM_TARGET, 2, 10, -10, 0, 0, 15, 257 delay 1 - createsprite gUnknown_83E5A50, ANIM_TARGET, 2, 10, -10, 0, 0, 15, 257 + createsprite gHydroCannonBeamSpriteTemplate, ANIM_TARGET, 2, 10, -10, 0, 0, 15, 257 return Move_ASTONISH:: @ 81D46E4 @@ -9598,11 +9573,11 @@ Move_ASTONISH:: @ 81D46E4 playsewithpan SE_W227, 192 createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 4, 6 delay 25 - createsprite gUnknown_83E6D94, ANIM_TARGET, 5, 0, 1 + createsprite gSprayWaterDropletSpriteTemplate, ANIM_TARGET, 5, 0, 1 playsewithpan SE_W166, 63 - createsprite gUnknown_83E6D94, ANIM_TARGET, 5, 1, 1 + createsprite gSprayWaterDropletSpriteTemplate, ANIM_TARGET, 5, 1, 1 createvisualtask AnimTask_ShakeMon2, 2, 1, 4, 0, 5, 1 - createvisualtask sub_80A9A20, 3, + createvisualtask AnimTask_StretchTargetUp, 3, waitforvisualfinish end @@ -9610,80 +9585,79 @@ Move_SEISMIC_TOSS:: @ 81D472C loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_ROCKS setarg 7, 0 - monbg 3 + monbg ANIM_DEF_PARTNER setalpha 12, 8 waitforvisualfinish createvisualtask AnimTask_GetSeismicTossDamageLevel, 3, delay 1 fadetobg 17 waitbgfadeout - createvisualtask sub_80B5188, 3, + createvisualtask AnimTask_MoveSeismicTossBg, 3 playsewithpan SE_W327, 0 waitbgfadein waitforvisualfinish - createvisualtask sub_80B51EC, 3, - jumpargeq 7, 0, gUnknown_81D477F - jumpargeq 7, 1, gUnknown_81D4790 - jumpargeq 7, 2, gUnknown_81D47A8 - -gUnknown_81D4774:: @ 81D4774 + createvisualtask AnimTask_SeismicTossBgAccelerateDownAtEnd, 3 + jumpargeq 7, 0, SeismicTossWeak + jumpargeq 7, 1, SeismicTossMedium + jumpargeq 7, 2, SeismicTossStrong +SeismicTossContinue:: @ 81D4774 restorebg waitbgfadeout setarg 7, 4095 waitbgfadein - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER blendoff end -gUnknown_81D477F:: @ 81D477F - call gUnknown_81D47C7 +SeismicTossWeak:: @ 81D477F + call SeismicTossRockScatter1 delay 16 - call gUnknown_81D4828 - goto gUnknown_81D4774 + call SeismicTossRockScatter2 + goto SeismicTossContinue -gUnknown_81D4790:: @ 81D4790 - call gUnknown_81D47C7 +SeismicTossMedium:: @ 81D4790 + call SeismicTossRockScatter1 delay 14 - call gUnknown_81D4828 + call SeismicTossRockScatter2 delay 14 - call gUnknown_81D47C7 - goto gUnknown_81D4774 + call SeismicTossRockScatter1 + goto SeismicTossContinue -gUnknown_81D47A8:: @ 81D47A8 - call gUnknown_81D4828 +SeismicTossStrong:: @ 81D47A8 + call SeismicTossRockScatter2 delay 10 - call gUnknown_81D47C7 + call SeismicTossRockScatter1 delay 10 - call gUnknown_81D4828 + call SeismicTossRockScatter2 delay 10 - call gUnknown_81D47C7 - goto gUnknown_81D4774 + call SeismicTossRockScatter1 + goto SeismicTossContinue -gUnknown_81D47C7:: @ 81D47C7 +SeismicTossRockScatter1:: @ 81D47C7 createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, -10, -8, 1, 1 playsewithpan SE_W070, 63 createvisualtask AnimTask_ShakeMon, 2, 1, 0, 3, 5, 1 - createsprite gUnknown_83E7560, ANIM_TARGET, 2, -12, 27, 2, 3 - createsprite gUnknown_83E7560, ANIM_TARGET, 2, 8, 28, 3, 4 - createsprite gUnknown_83E7560, ANIM_TARGET, 2, -4, 30, 2, 3 - createsprite gUnknown_83E7560, ANIM_TARGET, 2, 12, 25, 4, 4 + createsprite gRockScatterSpriteTemplate, ANIM_TARGET, 2, -12, 27, 2, 3 + createsprite gRockScatterSpriteTemplate, ANIM_TARGET, 2, 8, 28, 3, 4 + createsprite gRockScatterSpriteTemplate, ANIM_TARGET, 2, -4, 30, 2, 3 + createsprite gRockScatterSpriteTemplate, ANIM_TARGET, 2, 12, 25, 4, 4 return -gUnknown_81D4828:: @ 81D4828 +SeismicTossRockScatter2:: @ 81D4828 createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 10, -8, 1, 1 playsewithpan SE_W088, 63 createvisualtask AnimTask_ShakeMon, 2, 1, 0, 3, 5, 1 - createsprite gUnknown_83E7560, ANIM_TARGET, 2, -12, 32, 3, 4 - createsprite gUnknown_83E7560, ANIM_TARGET, 2, 8, 31, 2, 2 - createsprite gUnknown_83E7560, ANIM_TARGET, 2, -4, 28, 2, 3 - createsprite gUnknown_83E7560, ANIM_TARGET, 2, 12, 30, 4, 3 + createsprite gRockScatterSpriteTemplate, ANIM_TARGET, 2, -12, 32, 3, 4 + createsprite gRockScatterSpriteTemplate, ANIM_TARGET, 2, 8, 31, 2, 2 + createsprite gRockScatterSpriteTemplate, ANIM_TARGET, 2, -4, 28, 2, 3 + createsprite gRockScatterSpriteTemplate, ANIM_TARGET, 2, 12, 30, 4, 3 return Move_MAGIC_COAT:: @ 81D4889 loadspritegfx ANIM_TAG_ORANGE_LIGHT_WALL setalpha 0, 16 waitplaysewithpan SE_W112, 192, 15 - createsprite gUnknown_83E6E70, ANIM_ATTACKER, 3, 40, 0, 10170 + createsprite gMagicCoatWallSpriteTemplate, ANIM_ATTACKER, 3, 40, 0, 10170 waitforvisualfinish delay 1 blendoff @@ -9697,11 +9671,11 @@ Move_WATER_PULSE:: @ 81D48A6 playsewithpan SE_W145C, 192 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 0, 0, 7, 29472 delay 10 - createsprite gUnknown_83E5B70, ANIM_ATTACKER, 66, 100, 100, 8, 1, 20, 40, 0 - createsprite gUnknown_83E5B70, ANIM_ATTACKER, 66, 20, 100, 16, 2, 10, 35, 1 - createsprite gUnknown_83E5B70, ANIM_ATTACKER, 66, 200, 80, 8, 1, 40, 20, 0 - createsprite gUnknown_83E5B70, ANIM_ATTACKER, 66, 80, 60, 10, 3, 20, 50, 0 - createsprite gUnknown_83E5B70, ANIM_ATTACKER, 66, 140, 100, 16, 1, 20, 30, 1 + createsprite gWaterPulseBubbleSpriteTemplate, ANIM_ATTACKER, 66, 100, 100, 8, 1, 20, 40, 0 + createsprite gWaterPulseBubbleSpriteTemplate, ANIM_ATTACKER, 66, 20, 100, 16, 2, 10, 35, 1 + createsprite gWaterPulseBubbleSpriteTemplate, ANIM_ATTACKER, 66, 200, 80, 8, 1, 40, 20, 0 + createsprite gWaterPulseBubbleSpriteTemplate, ANIM_ATTACKER, 66, 80, 60, 10, 3, 20, 50, 0 + createsprite gWaterPulseBubbleSpriteTemplate, ANIM_ATTACKER, 66, 140, 100, 16, 1, 20, 30, 1 playsewithpan SE_W145C, 63 waitforvisualfinish playsewithpan SE_W202, 192 @@ -9717,12 +9691,12 @@ Move_WATER_PULSE:: @ 81D48A6 waitforvisualfinish createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 7, 0, 29472 waitforvisualfinish - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER end Move_PSYCHO_BOOST:: @ 81D499B loadspritegfx ANIM_TAG_CIRCLE_OF_LIGHT - monbg 2 + monbg ANIM_ATK_PARTNER fadetobg 3 waitbgfadeout createvisualtask AnimTask_FadeScreenToWhite, 5, @@ -9735,16 +9709,16 @@ Move_PSYCHO_BOOST:: @ 81D499B delay 10 createvisualtask AnimTask_ShakeMon, 2, 0, 3, 0, 240, 0 loopsewithpan SE_W060B, 192, 14, 10 - createsprite gUnknown_83E71D0, ANIM_ATTACKER, 2, + createsprite gPsychoBoostOrbSpriteTemplate, ANIM_ATTACKER, 2 delay 110 loopsewithpan SE_W060B, 192, 7, 10 waitforvisualfinish createvisualtask AnimTask_ShakeMon2, 2, 1, -8, 1, 24, 1 playsewithpan SE_W043, 63 waitforvisualfinish - clearmonbg 2 + clearmonbg ANIM_ATK_PARTNER blendoff - call gUnknown_81D59C7 + call UnsetPsychicBg end Move_KNOCK_OFF:: @ 81D4A0F @@ -9769,9 +9743,9 @@ Move_KNOCK_OFF:: @ 81D4A0F end Move_DOOM_DESIRE:: @ 81D4A9F - createvisualtask sub_80B8B38, 2, + createvisualtask GetIsDoomDesireHitTurn, 2 delay 1 - monbg 2 + monbg ANIM_ATK_PARTNER createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, 1, 0 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 0, 4, 0 waitforvisualfinish @@ -9783,7 +9757,7 @@ Move_DOOM_DESIRE:: @ 81D4A9F createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, 1, 1 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 4, 0, 0 waitforvisualfinish - clearmonbg 2 + clearmonbg ANIM_ATK_PARTNER blendoff end loadspritegfx ANIM_TAG_EXPLOSION @@ -9820,12 +9794,12 @@ Move_DOOM_DESIRE:: @ 81D4A9F Move_SKY_UPPERCUT:: @ 81D4BC1 loadspritegfx ANIM_TAG_IMPACT - monbg 3 + monbg ANIM_DEF_PARTNER monbgprio_28 1 fadetobg 17 waitbgfadeout playsewithpan SE_W327, 192 - createvisualtask sub_80B1530, 5, 55 + createvisualtask AnimTask_MoveSkyUppercutBg, 5, 55 waitbgfadein setalpha 12, 8 delay 38 @@ -9854,7 +9828,7 @@ Move_SKY_UPPERCUT:: @ 81D4BC1 createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 6 delay 4 createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 1, 0, 6 - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER blendoff restorebg waitbgfadeout @@ -9879,7 +9853,7 @@ Move_TWISTER:: @ 81D4D0E loadspritegfx ANIM_TAG_LEAF loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_ROCKS - monbg 3 + monbg ANIM_DEF_PARTNER monbgprio_28 1 playsewithpan SE_W239, 63 createsprite gTwisterLeafParticleSpriteTemplate, ANIM_TARGET, 2, 120, 70, 5, 70, 30 @@ -9889,16 +9863,16 @@ Move_TWISTER:: @ 81D4D0E createsprite gTwisterLeafParticleSpriteTemplate, ANIM_TARGET, 2, 115, 60, 7, 60, 30 createsprite gTwisterLeafParticleSpriteTemplate, ANIM_TARGET, 2, 115, 55, 10, 60, 30 delay 3 - createsprite gUnknown_83E7578, ANIM_TARGET, 2, 100, 50, 4, 50, 26 + createsprite gTwisterRockSpriteTemplate, ANIM_TARGET, 2, 100, 50, 4, 50, 26 delay 1 createsprite gTwisterLeafParticleSpriteTemplate, ANIM_TARGET, 2, 105, 25, 8, 60, 20 delay 1 createsprite gTwisterLeafParticleSpriteTemplate, ANIM_TARGET, 2, 115, 40, 10, 48, 30 delay 3 - createsprite gUnknown_83E7578, ANIM_TARGET, 2, 120, 30, 6, 45, 25 + createsprite gTwisterRockSpriteTemplate, ANIM_TARGET, 2, 120, 30, 6, 45, 25 createsprite gTwisterLeafParticleSpriteTemplate, ANIM_TARGET, 2, 115, 35, 10, 60, 30 delay 3 - createsprite gUnknown_83E7578, ANIM_TARGET, 2, 105, 20, 8, 40, 0 + createsprite gTwisterRockSpriteTemplate, ANIM_TARGET, 2, 105, 20, 8, 40, 0 delay 3 createsprite gTwisterLeafParticleSpriteTemplate, ANIM_TARGET, 2, 20, 255, 15, 32, 0 createsprite gTwisterLeafParticleSpriteTemplate, ANIM_TARGET, 2, 110, 10, 8, 32, 20 @@ -9908,16 +9882,16 @@ Move_TWISTER:: @ 81D4D0E createvisualtask AnimTask_ShakeMonInPlace, 2, 1, 3, 0, 12, 1 createvisualtask AnimTask_ShakeMonInPlace, 2, 3, 3, 0, 12, 1 delay 4 - createsprite gUnknown_83E7C50, ANIM_TARGET, 3, 1, 3 + createsprite gRandomPosHitSplatSpriteTemplate, ANIM_TARGET, 3, 1, 3 playsewithpan SE_W004, 63 delay 4 - createsprite gUnknown_83E7C50, ANIM_TARGET, 3, 1, 3 + createsprite gRandomPosHitSplatSpriteTemplate, ANIM_TARGET, 3, 1, 3 playsewithpan SE_W004, 63 delay 4 createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 32, 20, 1, 3 playsewithpan SE_W004, 63 waitforvisualfinish - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER blendoff end @@ -9925,11 +9899,11 @@ Move_MAGICAL_LEAF:: @ 81D4E6D loadspritegfx ANIM_TAG_LEAF loadspritegfx ANIM_TAG_RAZOR_LEAF loadspritegfx ANIM_TAG_IMPACT - monbg 3 + monbg ANIM_DEF_PARTNER setalpha 12, 8 delay 1 loopsewithpan SE_W077, 192, 10, 5 - createvisualtask sub_80A41C4, 5, + createvisualtask AnimTask_CycleMagicalLeafPal, 5 createsprite gRazorLeafParticleSpriteTemplate, ANIM_ATTACKER, 2, -3, -2, 10 delay 2 createsprite gRazorLeafParticleSpriteTemplate, ANIM_ATTACKER, 2, -1, -1, 15 @@ -9961,7 +9935,7 @@ Move_MAGICAL_LEAF:: @ 81D4E6D delay 20 setarg 7, 65535 waitforvisualfinish - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER blendoff end @@ -9969,101 +9943,98 @@ Move_ICE_BALL:: @ 81D4F8E loadspritegfx ANIM_TAG_ICE_CHUNK loadspritegfx ANIM_TAG_ICE_CRYSTALS createvisualtask AnimTask_GetRolloutCounter, 5, 0 - jumpargeq 0, 4, gUnknown_81D5005 - -gUnknown_81D4FA5:: @ 81D4FA5 + jumpargeq 0, 4, IceBallSetIceBg +IceBallContinue:: @ 81D4FA5 playsewithpan SE_W196, 192 - createsprite gUnknown_83E665C, ANIM_TARGET, 2, 15, 0, -12, -16, 30, -40 + createsprite gIceBallChunkSpriteTemplate, ANIM_TARGET, 2, 15, 0, -12, -16, 30, -40 delay 28 playsewithpan SE_W280, 63 createvisualtask AnimTask_GetRolloutCounter, 5, 0 - jumpargeq 0, 0, gUnknown_81D5016 - jumpargeq 0, 1, gUnknown_81D5045 - jumpargeq 0, 2, gUnknown_81D507E - jumpargeq 0, 3, gUnknown_81D50C1 - jumpargeq 0, 4, gUnknown_81D5109 - -gUnknown_81D4FF3:: @ 81D4FF3 + jumpargeq 0, 0, IceBallWeakest + jumpargeq 0, 1, IceBallWeak + jumpargeq 0, 2, IceBallMediun + jumpargeq 0, 3, IceBallStrong + jumpargeq 0, 4, IceBallStrongest +IceBallContinue2:: @ 81D4FF3 createvisualtask AnimTask_GetRolloutCounter, 5, 0 - jumpargeq 0, 4, gUnknown_81D500C - -gUnknown_81D5004:: @ 81D5004 + jumpargeq 0, 4, IceBallUnsetIceBg +IceBallEnd:: @ 81D5004 end -gUnknown_81D5005:: @ 81D5005 +IceBallSetIceBg:: @ 81D5005 fadetobg 15 - goto gUnknown_81D4FA5 + goto IceBallContinue -gUnknown_81D500C:: @ 81D500C +IceBallUnsetIceBg:: @ 81D500C waitbgfadein delay 45 restorebg waitbgfadein - goto gUnknown_81D5004 - -gUnknown_81D5016:: @ 81D5016 - createvisualtask sub_8099BD4, 2, 0, 1, 8, 1, 0 - call gUnknown_81D5151 - call gUnknown_81D5151 - call gUnknown_81D5151 - call gUnknown_81D5151 - call gUnknown_81D5151 - goto gUnknown_81D4FF3 - -gUnknown_81D5045:: @ 81D5045 - createvisualtask sub_8099BD4, 2, 0, 1, 10, 1, 0 - call gUnknown_81D5151 - call gUnknown_81D5151 - call gUnknown_81D5151 - call gUnknown_81D5151 - call gUnknown_81D5151 - call gUnknown_81D5151 - call gUnknown_81D5151 - goto gUnknown_81D4FF3 - -gUnknown_81D507E:: @ 81D507E - createvisualtask sub_8099BD4, 2, 0, 1, 14, 1, 0 - call gUnknown_81D5151 - call gUnknown_81D5151 - call gUnknown_81D5151 - call gUnknown_81D5151 - call gUnknown_81D5151 - call gUnknown_81D5151 - call gUnknown_81D5151 - call gUnknown_81D5151 - call gUnknown_81D5151 - goto gUnknown_81D4FF3 - -gUnknown_81D50C1:: @ 81D50C1 - createvisualtask sub_8099BD4, 2, 0, 1, 18, 1, 0 - call gUnknown_81D5151 - call gUnknown_81D5151 - call gUnknown_81D5151 - call gUnknown_81D5151 - call gUnknown_81D5151 - call gUnknown_81D5151 - call gUnknown_81D5151 - call gUnknown_81D5151 - call gUnknown_81D5151 - call gUnknown_81D5151 - goto gUnknown_81D4FF3 - -gUnknown_81D5109:: @ 81D5109 - createvisualtask sub_8099BD4, 2, 0, 1, 30, 1, 0 - call gUnknown_81D5151 - call gUnknown_81D5151 - call gUnknown_81D5151 - call gUnknown_81D5151 - call gUnknown_81D5151 - call gUnknown_81D5151 - call gUnknown_81D5151 - call gUnknown_81D5151 - call gUnknown_81D5151 - call gUnknown_81D5151 - goto gUnknown_81D4FF3 - -gUnknown_81D5151:: @ 81D5151 - createsprite gUnknown_83E6674, ANIM_TARGET, 4, -12, -16 + goto IceBallEnd + +IceBallWeakest:: @ 81D5016 + createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 2, 0, 1, 8, 1, 0 + call IceBallImpactShard + call IceBallImpactShard + call IceBallImpactShard + call IceBallImpactShard + call IceBallImpactShard + goto IceBallContinue2 + +IceBallWeak:: @ 81D5045 + createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 2, 0, 1, 10, 1, 0 + call IceBallImpactShard + call IceBallImpactShard + call IceBallImpactShard + call IceBallImpactShard + call IceBallImpactShard + call IceBallImpactShard + call IceBallImpactShard + goto IceBallContinue2 + +IceBallMediun:: @ 81D507E + createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 2, 0, 1, 14, 1, 0 + call IceBallImpactShard + call IceBallImpactShard + call IceBallImpactShard + call IceBallImpactShard + call IceBallImpactShard + call IceBallImpactShard + call IceBallImpactShard + call IceBallImpactShard + call IceBallImpactShard + goto IceBallContinue2 + +IceBallStrong:: @ 81D50C1 + createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 2, 0, 1, 18, 1, 0 + call IceBallImpactShard + call IceBallImpactShard + call IceBallImpactShard + call IceBallImpactShard + call IceBallImpactShard + call IceBallImpactShard + call IceBallImpactShard + call IceBallImpactShard + call IceBallImpactShard + call IceBallImpactShard + goto IceBallContinue2 + +IceBallStrongest:: @ 81D5109 + createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 2, 0, 1, 30, 1, 0 + call IceBallImpactShard + call IceBallImpactShard + call IceBallImpactShard + call IceBallImpactShard + call IceBallImpactShard + call IceBallImpactShard + call IceBallImpactShard + call IceBallImpactShard + call IceBallImpactShard + call IceBallImpactShard + goto IceBallContinue2 + +IceBallImpactShard:: @ 81D5151 + createsprite gIceBallImpactShardSpriteTemplate, ANIM_TARGET, 4, -12, -16 return Move_WEATHER_BALL:: @ 81D515D @@ -10071,7 +10042,7 @@ Move_WEATHER_BALL:: @ 81D515D createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 8, 1, 0 delay 8 playsewithpan SE_W207, 192 - createsprite gSpriteTemplate_83BF434, ANIM_ATTACKER, 2, + createsprite gWeatherBallUpSpriteTemplate, ANIM_ATTACKER, 2 waitforvisualfinish delay 15 playsewithpan SE_W197, 0 @@ -10079,15 +10050,15 @@ Move_WEATHER_BALL:: @ 81D515D waitforvisualfinish createvisualtask AnimTask_GetWeather, 2, delay 1 - jumpargeq 7, 0, gUnknown_81D51C8 - jumpargeq 7, 1, gUnknown_81D5205 - jumpargeq 7, 2, gUnknown_81D5269 - jumpargeq 7, 3, gUnknown_81D52CD - jumpargeq 7, 4, gUnknown_81D536D + jumpargeq 7, 0, WeatherBallNormal + jumpargeq 7, 1, WeatherBallFire + jumpargeq 7, 2, WeatherBallWater + jumpargeq 7, 3, WeatherBallSandstorm + jumpargeq 7, 4, WeatherBallIce -gUnknown_81D51C8:: @ 81D51C8 +WeatherBallNormal:: @ 81D51C8 loadspritegfx ANIM_TAG_IMPACT - createsprite gSpriteTemplate_83BF44C, ANIM_TARGET, 2, -30, -100, 25, 1, 0, 0 + createsprite gWeatherBallNormalDownSpriteTemplate, ANIM_TARGET, 2, -30, -100, 25, 1, 0, 0 waitforvisualfinish playsewithpan SE_W025B, 63 createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 4, -10, 0, 1, 2 @@ -10095,15 +10066,15 @@ gUnknown_81D51C8:: @ 81D51C8 waitforvisualfinish end -gUnknown_81D5205:: @ 81D5205 +WeatherBallFire:: @ 81D5205 loadspritegfx ANIM_TAG_SMALL_EMBER - createsprite gUnknown_83E5E14, ANIM_TARGET, 2, -30, -100, 25, 1, 40, 10 + createsprite gWeatherBallFireDownSpriteTemplate, ANIM_TARGET, 2, -30, -100, 25, 1, 40, 10 playsewithpan SE_W172, 63 delay 10 - createsprite gUnknown_83E5E14, ANIM_TARGET, 2, -30, -100, 25, 1, -40, 20 + createsprite gWeatherBallFireDownSpriteTemplate, ANIM_TARGET, 2, -30, -100, 25, 1, -40, 20 playsewithpan SE_W172, 63 delay 10 - createsprite gUnknown_83E5E14, ANIM_TARGET, 2, -30, -100, 25, 1, 0, 0 + createsprite gWeatherBallFireDownSpriteTemplate, ANIM_TARGET, 2, -30, -100, 25, 1, 0, 0 playsewithpan SE_W172, 63 waitforvisualfinish playsewithpan SE_W172B, 63 @@ -10111,15 +10082,15 @@ gUnknown_81D5205:: @ 81D5205 waitforvisualfinish end -gUnknown_81D5269:: @ 81D5269 +WeatherBallWater:: @ 81D5269 loadspritegfx ANIM_TAG_SMALL_BUBBLES - createsprite gUnknown_83E5BA0, ANIM_TARGET, 2, -30, -100, 25, 1, 50, 10 + createsprite gWeatherBallWaterDownSpriteTemplate, ANIM_TARGET, 2, -30, -100, 25, 1, 50, 10 playsewithpan SE_W152, 63 delay 8 - createsprite gUnknown_83E5BA0, ANIM_TARGET, 2, -30, -100, 25, 1, -20, 20 + createsprite gWeatherBallWaterDownSpriteTemplate, ANIM_TARGET, 2, -30, -100, 25, 1, -20, 20 playsewithpan SE_W152, 63 delay 13 - createsprite gUnknown_83E5BA0, ANIM_TARGET, 2, -30, -100, 25, 1, 0, 0 + createsprite gWeatherBallWaterDownSpriteTemplate, ANIM_TARGET, 2, -30, -100, 25, 1, 0, 0 playsewithpan SE_W152, 63 waitforvisualfinish createvisualtask AnimTask_ShakeMon, 2, 1, 0, 3, 8, 1 @@ -10127,41 +10098,41 @@ gUnknown_81D5269:: @ 81D5269 waitforvisualfinish end -gUnknown_81D52CD:: @ 81D52CD +WeatherBallSandstorm:: @ 81D52CD loadspritegfx ANIM_TAG_ROCKS - createsprite gUnknown_83E7590, ANIM_TARGET, 2, -30, -100, 25, 1, 30, 0 + createsprite gWeatherBallRockDownSpriteTemplate, ANIM_TARGET, 2, -30, -100, 25, 1, 30, 0 playsewithpan SE_W088, 63 delay 5 - createsprite gUnknown_83E7590, ANIM_TARGET, 2, -30, -100, 25, 1, -40, 20 + createsprite gWeatherBallRockDownSpriteTemplate, ANIM_TARGET, 2, -30, -100, 25, 1, -40, 20 playsewithpan SE_W088, 63 delay 14 - createsprite gUnknown_83E7590, ANIM_TARGET, 2, -30, -100, 25, 1, 0, 0 + createsprite gWeatherBallRockDownSpriteTemplate, ANIM_TARGET, 2, -30, -100, 25, 1, 0, 0 playsewithpan SE_W088, 63 waitforvisualfinish playsewithpan SE_W070, 63 - createsprite gUnknown_83E7560, ANIM_TARGET, 2, -12, 27, 2, 3 - createsprite gUnknown_83E7560, ANIM_TARGET, 2, 8, 28, 3, 4 - createsprite gUnknown_83E7560, ANIM_TARGET, 2, -4, 30, 2, 3 - createsprite gUnknown_83E7560, ANIM_TARGET, 2, 12, 25, 4, 4 + createsprite gRockScatterSpriteTemplate, ANIM_TARGET, 2, -12, 27, 2, 3 + createsprite gRockScatterSpriteTemplate, ANIM_TARGET, 2, 8, 28, 3, 4 + createsprite gRockScatterSpriteTemplate, ANIM_TARGET, 2, -4, 30, 2, 3 + createsprite gRockScatterSpriteTemplate, ANIM_TARGET, 2, 12, 25, 4, 4 createvisualtask AnimTask_ShakeMon2, 2, 1, 2, 0, 8, 1 waitforvisualfinish end -gUnknown_81D536D:: @ 81D536D +WeatherBallIce:: @ 81D536D loadspritegfx ANIM_TAG_HAIL loadspritegfx ANIM_TAG_ICE_CRYSTALS - createsprite gUnknown_83E65BC, ANIM_TARGET, 2, -30, -100, 25, 25, -40, 20 + createsprite gWeatherBallIceDownSpriteTemplate, ANIM_TARGET, 2, -30, -100, 25, 25, -40, 20 playsewithpan SE_W258, 63 delay 10 - createsprite gUnknown_83E65BC, ANIM_TARGET, 2, -30, -100, 25, 25, 40, 0 + createsprite gWeatherBallIceDownSpriteTemplate, ANIM_TARGET, 2, -30, -100, 25, 25, 40, 0 playsewithpan SE_W258, 63 delay 10 - createsprite gUnknown_83E65BC, ANIM_TARGET, 2, -30, -100, 25, 25, 0, 0 + createsprite gWeatherBallIceDownSpriteTemplate, ANIM_TARGET, 2, -30, -100, 25, 25, 0, 0 playsewithpan SE_W258, 63 waitforvisualfinish createvisualtask AnimTask_ShakeMon2, 2, 1, 2, 0, 8, 1 playsewithpan SE_W196, 63 - call gUnknown_81D540A + call IceCrystalEffectShort waitforvisualfinish end @@ -10177,110 +10148,112 @@ Move_COUNT:: @ 81D53D9 blendoff end -gUnknown_81D540A:: @ 81D540A - createsprite gUnknown_83E63E0, ANIM_TARGET, 2, -10, -10, 0 +IceCrystalEffectShort:: @ 81D540A + createsprite gIceCrystalHitLargeSpriteTemplate, ANIM_TARGET, 2, -10, -10, 0 playsewithpan SE_W196, 63 delay 4 - createsprite gUnknown_83E63F8, ANIM_TARGET, 2, 10, 20, 0 + createsprite gIceCrystalHitSmallSpriteTemplate, ANIM_TARGET, 2, 10, 20, 0 playsewithpan SE_W196, 63 delay 4 - createsprite gUnknown_83E63E0, ANIM_TARGET, 2, -5, 10, 0 + createsprite gIceCrystalHitLargeSpriteTemplate, ANIM_TARGET, 2, -5, 10, 0 playsewithpan SE_W196, 63 delay 4 - createsprite gUnknown_83E63F8, ANIM_TARGET, 2, 17, -12, 0 + createsprite gIceCrystalHitSmallSpriteTemplate, ANIM_TARGET, 2, 17, -12, 0 playsewithpan SE_W196, 63 delay 4 - createsprite gUnknown_83E63F8, ANIM_TARGET, 2, -15, 15, 0 + createsprite gIceCrystalHitSmallSpriteTemplate, ANIM_TARGET, 2, -15, 15, 0 playsewithpan SE_W196, 63 delay 4 - createsprite gUnknown_83E63F8, ANIM_TARGET, 2, 0, 0, 0 + createsprite gIceCrystalHitSmallSpriteTemplate, ANIM_TARGET, 2, 0, 0, 0 playsewithpan SE_W196, 63 delay 4 - createsprite gUnknown_83E63E0, ANIM_TARGET, 2, 20, 2, 0 + createsprite gIceCrystalHitLargeSpriteTemplate, ANIM_TARGET, 2, 20, 2, 0 playsewithpan SE_W196, 63 return -gUnknown_81D548E:: @ 81D548E - createsprite gUnknown_83E63E0, ANIM_TARGET, 2, -10, -10, 1 +IceCrystalEffectLong:: @ 81D548E + createsprite gIceCrystalHitLargeSpriteTemplate, ANIM_TARGET, 2, -10, -10, 1 playsewithpan SE_W196, 63 delay 4 - createsprite gUnknown_83E63F8, ANIM_TARGET, 2, 10, 20, 1 + createsprite gIceCrystalHitSmallSpriteTemplate, ANIM_TARGET, 2, 10, 20, 1 playsewithpan SE_W196, 63 delay 4 - createsprite gUnknown_83E63E0, ANIM_TARGET, 2, -29, 0, 1 + createsprite gIceCrystalHitLargeSpriteTemplate, ANIM_TARGET, 2, -29, 0, 1 playsewithpan SE_W196, 63 delay 4 - createsprite gUnknown_83E63F8, ANIM_TARGET, 2, 29, -20, 1 + createsprite gIceCrystalHitSmallSpriteTemplate, ANIM_TARGET, 2, 29, -20, 1 playsewithpan SE_W196, 63 delay 4 - createsprite gUnknown_83E63E0, ANIM_TARGET, 2, -5, 10, 1 + createsprite gIceCrystalHitLargeSpriteTemplate, ANIM_TARGET, 2, -5, 10, 1 playsewithpan SE_W196, 63 delay 4 - createsprite gUnknown_83E63F8, ANIM_TARGET, 2, 17, -12, 1 + createsprite gIceCrystalHitSmallSpriteTemplate, ANIM_TARGET, 2, 17, -12, 1 playsewithpan SE_W196, 63 delay 4 - createsprite gUnknown_83E63E0, ANIM_TARGET, 2, -20, 0, 1 + createsprite gIceCrystalHitLargeSpriteTemplate, ANIM_TARGET, 2, -20, 0, 1 playsewithpan SE_W196, 63 delay 4 - createsprite gUnknown_83E63F8, ANIM_TARGET, 2, -15, 15, 1 + createsprite gIceCrystalHitSmallSpriteTemplate, ANIM_TARGET, 2, -15, 15, 1 playsewithpan SE_W196, 63 delay 4 - createsprite gUnknown_83E63F8, ANIM_TARGET, 2, 26, -5, 1 + createsprite gIceCrystalHitSmallSpriteTemplate, ANIM_TARGET, 2, 26, -5, 1 playsewithpan SE_W196, 63 delay 4 - createsprite gUnknown_83E63F8, ANIM_TARGET, 2, 0, 0, 1 + createsprite gIceCrystalHitSmallSpriteTemplate, ANIM_TARGET, 2, 0, 0, 1 playsewithpan SE_W196, 63 delay 4 - createsprite gUnknown_83E63E0, ANIM_TARGET, 2, 20, 2, 1 + createsprite gIceCrystalHitLargeSpriteTemplate, ANIM_TARGET, 2, 20, 2, 1 playsewithpan SE_W196, 63 return + +IceSpikesEffectShort: @ Unused loopsewithpan SE_W196, 63, 6, 4 - createsprite gUnknown_83E647C, ANIM_TARGET, 2, 0, 24, 0 + createsprite gIceGroundSpikeSpriteTemplate, ANIM_TARGET, 2, 0, 24, 0 delay 4 - createsprite gUnknown_83E647C, ANIM_TARGET, 2, 8, 24, 0 - createsprite gUnknown_83E647C, ANIM_TARGET, 2, -8, 24, 0 + createsprite gIceGroundSpikeSpriteTemplate, ANIM_TARGET, 2, 8, 24, 0 + createsprite gIceGroundSpikeSpriteTemplate, ANIM_TARGET, 2, -8, 24, 0 delay 4 - createsprite gUnknown_83E647C, ANIM_TARGET, 2, 16, 24, 0 - createsprite gUnknown_83E647C, ANIM_TARGET, 2, -16, 24, 0 + createsprite gIceGroundSpikeSpriteTemplate, ANIM_TARGET, 2, 16, 24, 0 + createsprite gIceGroundSpikeSpriteTemplate, ANIM_TARGET, 2, -16, 24, 0 delay 4 - createsprite gUnknown_83E647C, ANIM_TARGET, 2, 24, 24, 0 - createsprite gUnknown_83E647C, ANIM_TARGET, 2, -24, 24, 0 + createsprite gIceGroundSpikeSpriteTemplate, ANIM_TARGET, 2, 24, 24, 0 + createsprite gIceGroundSpikeSpriteTemplate, ANIM_TARGET, 2, -24, 24, 0 delay 4 - createsprite gUnknown_83E647C, ANIM_TARGET, 2, 32, 24, 0 - createsprite gUnknown_83E647C, ANIM_TARGET, 2, -32, 24, 0 + createsprite gIceGroundSpikeSpriteTemplate, ANIM_TARGET, 2, 32, 24, 0 + createsprite gIceGroundSpikeSpriteTemplate, ANIM_TARGET, 2, -32, 24, 0 return -gUnknown_81D55E2:: @ 81D55E2 +IceSpikesEffectLong:: @ 81D55E2 loopsewithpan SE_W196, 63, 6, 4 - createsprite gUnknown_83E647C, ANIM_TARGET, 2, 0, 24, 1 + createsprite gIceGroundSpikeSpriteTemplate, ANIM_TARGET, 2, 0, 24, 1 delay 4 - createsprite gUnknown_83E647C, ANIM_TARGET, 2, 8, 24, 1 - createsprite gUnknown_83E647C, ANIM_TARGET, 2, -8, 24, 1 + createsprite gIceGroundSpikeSpriteTemplate, ANIM_TARGET, 2, 8, 24, 1 + createsprite gIceGroundSpikeSpriteTemplate, ANIM_TARGET, 2, -8, 24, 1 delay 4 - createsprite gUnknown_83E647C, ANIM_TARGET, 2, 16, 24, 1 - createsprite gUnknown_83E647C, ANIM_TARGET, 2, -16, 24, 1 + createsprite gIceGroundSpikeSpriteTemplate, ANIM_TARGET, 2, 16, 24, 1 + createsprite gIceGroundSpikeSpriteTemplate, ANIM_TARGET, 2, -16, 24, 1 delay 4 - createsprite gUnknown_83E647C, ANIM_TARGET, 2, 24, 24, 1 - createsprite gUnknown_83E647C, ANIM_TARGET, 2, -24, 24, 1 + createsprite gIceGroundSpikeSpriteTemplate, ANIM_TARGET, 2, 24, 24, 1 + createsprite gIceGroundSpikeSpriteTemplate, ANIM_TARGET, 2, -24, 24, 1 delay 4 - createsprite gUnknown_83E647C, ANIM_TARGET, 2, 32, 24, 1 - createsprite gUnknown_83E647C, ANIM_TARGET, 2, -32, 24, 1 + createsprite gIceGroundSpikeSpriteTemplate, ANIM_TARGET, 2, 32, 24, 1 + createsprite gIceGroundSpikeSpriteTemplate, ANIM_TARGET, 2, -32, 24, 1 delay 4 - createsprite gUnknown_83E647C, ANIM_TARGET, 2, 40, 24, 1 - createsprite gUnknown_83E647C, ANIM_TARGET, 2, -40, 24, 1 + createsprite gIceGroundSpikeSpriteTemplate, ANIM_TARGET, 2, 40, 24, 1 + createsprite gIceGroundSpikeSpriteTemplate, ANIM_TARGET, 2, -40, 24, 1 delay 4 - createsprite gUnknown_83E647C, ANIM_TARGET, 2, 48, 24, 1 - createsprite gUnknown_83E647C, ANIM_TARGET, 2, -48, 24, 1 + createsprite gIceGroundSpikeSpriteTemplate, ANIM_TARGET, 2, 48, 24, 1 + createsprite gIceGroundSpikeSpriteTemplate, ANIM_TARGET, 2, -48, 24, 1 return -gUnknown_81D569E:: @ 81D569E +GrantingStarsEffect:: @ 81D569E createsprite gGrantingStarsSpriteTemplate, ANIM_ATTACKER, 2, -15, 0, 0, 0, 32, 60 delay 8 createsprite gGrantingStarsSpriteTemplate, ANIM_ATTACKER, 2, 12, -5, 0, 0, 32, 60 delay 8 return -gUnknown_81D56C9:: @ 81D56C9 +HealingEffect:: @ 81D56C9 playsewithpan SE_W071B, 192 createsprite gHealingBlueStarSpriteTemplate, ANIM_ATTACKER, 2, 0, -5, 0, 0 delay 7 @@ -10292,7 +10265,7 @@ gUnknown_81D56C9:: @ 81D56C9 delay 7 return -gUnknown_81D5712:: @ 81D5712 +HealingEffect2:: @ 81D5712 playsewithpan SE_W071B, 63 createsprite gHealingBlueStarSpriteTemplate, ANIM_TARGET, 2, 0, -5, 1, 0 delay 7 @@ -10304,7 +10277,7 @@ gUnknown_81D5712:: @ 81D5712 delay 7 return -gUnknown_81D575B:: @ 81D575B +PoisonBubblesEffect:: @ 81D575B createsprite gPoisonBubbleSpriteTemplate, ANIM_TARGET, 2, 10, 10, 0 playsewithpan SE_W092, 63 delay 6 @@ -10324,7 +10297,7 @@ gUnknown_81D575B:: @ 81D575B playsewithpan SE_W092, 63 return -gUnknown_81D57CC:: @ 81D57CC +WaterBubblesEffectShort:: @ 81D57CC createsprite gWaterBubbleSpriteTemplate, ANIM_ATTACKER, 2, 10, 10, 0 playsewithpan SE_W145C, 63 delay 6 @@ -10344,7 +10317,7 @@ gUnknown_81D57CC:: @ 81D57CC playsewithpan SE_W145C, 63 return -gUnknown_81D583D:: @ 81D583D +WaterBubblesEffectLong:: @ 81D583D createsprite gWaterBubbleSpriteTemplate, ANIM_ATTACKER, 2, 10, 10, 1 playsewithpan SE_W145C, 63 delay 6 @@ -10370,7 +10343,7 @@ gUnknown_81D583D:: @ 81D583D playsewithpan SE_W145C, 63 return -gUnknown_81D58D4:: @ 81D58D4 +ElectricityEffect:: @ 81D58D4 playsewithpan SE_W085B, 63 createsprite gElectricitySpriteTemplate, ANIM_TARGET, 2, 5, 0, 5, 0 delay 2 @@ -10389,7 +10362,7 @@ gUnknown_81D58D4:: @ 81D58D4 createsprite gElectricitySpriteTemplate, ANIM_TARGET, 2, -20, 15, 5, 1 return -gUnknown_81D595F:: @ 81D595F +ConfusionEffect:: @ 81D595F loopsewithpan SE_W146, 63, 13, 6 createsprite gConfusionDuckSpriteTemplate, ANIM_TARGET, 2, 0, -15, 0, 3, 90 createsprite gConfusionDuckSpriteTemplate, ANIM_TARGET, 2, 0, -15, 51, 3, 90 @@ -10398,67 +10371,65 @@ gUnknown_81D595F:: @ 81D595F createsprite gConfusionDuckSpriteTemplate, ANIM_TARGET, 2, 0, -15, 204, 3, 90 return -gUnknown_81D59BB:: @ 81D59BB +SetPsychicBackground:: @ 81D59BB fadetobg 3 waitbgfadeout createvisualtask AnimTask_SetPsychicBackground, 5, waitbgfadein return -gUnknown_81D59C7:: @ 81D59C7 +UnsetPsychicBg:: @ 81D59C7 restorebg waitbgfadeout setarg 7, 65535 waitbgfadein return -gUnknown_81D59CF:: @ 81D59CF - jumpifcontest gUnknown_81D59E8 +SetSkyBg:: @ 81D59CF + jumpifcontest SetSkyBgContest fadetobg 18 waitbgfadeout - createvisualtask sub_80BB82C, 5, -2304, 768, 1, -1 - -gUnknown_81D59E6:: @ 81D59E6 + createvisualtask AnimTask_StartSlidingBg, 5, -2304, 768, 1, -1 +SetSkyBgContinue:: @ 81D59E6 waitbgfadein return -gUnknown_81D59E8:: @ 81D59E8 +SetSkyBgContest:: @ 81D59E8 fadetobg 19 waitbgfadeout - createvisualtask sub_80BB82C, 5, 2304, 768, 0, -1 - goto gUnknown_81D59E6 + createvisualtask AnimTask_StartSlidingBg, 5, 2304, 768, 0, -1 + goto SetSkyBgContinue -gUnknown_81D59FF:: @ 81D59FF +UnsetSkyBg:: @ 81D59FF restorebg waitbgfadeout setarg 7, 65535 waitbgfadein return -gUnknown_81D5A07:: @ 81D5A07 +SetSolarbeamBg:: @ 81D5A07 createvisualtask AnimTask_IsContest, 2, - jumpargeq 7, 1, gUnknown_81D5A2C + jumpargeq 7, 1, SetSolarbeamBgContest createvisualtask AnimTask_IsTargetPlayerSide, 2, - jumpargeq 7, 0, gUnknown_81D5A3A - goto gUnknown_81D5A33 - -gUnknown_81D5A2A:: @ 81D5A2A + jumpargeq 7, 0, SetSolarbeamBgOpponent + goto SetSolarbeamBgPlayer +SetSolarbeamBgContinue:: @ 81D5A2A waitbgfadein return -gUnknown_81D5A2C:: @ 81D5A2C - fadetobg 26 - goto gUnknown_81D5A2A +SetSolarbeamBgContest:: @ 81D5A2C + fadetobg BG_SOLARBEAM_CONTESTS + goto SetSolarbeamBgContinue -gUnknown_81D5A33:: @ 81D5A33 - fadetobg 25 - goto gUnknown_81D5A2A +SetSolarbeamBgPlayer:: @ 81D5A33 + fadetobg BG_SOLARBEAM_PLAYER + goto SetSolarbeamBgContinue -gUnknown_81D5A3A:: @ 81D5A3A - fadetobg 24 - goto gUnknown_81D5A2A +SetSolarbeamBgOpponent:: @ 81D5A3A + fadetobg BG_SOLARBEAM_OPPONENT + goto SetSolarbeamBgContinue -gUnknown_81D5A41:: @ 81D5A41 +UnsetSolarbeamBg:: @ 81D5A41 restorebg waitbgfadein return @@ -10471,20 +10442,20 @@ Status_Poison:: @ 81D5A44 Status_Confusion:: @ 81D5A6F loadspritegfx ANIM_TAG_DUCK - call gUnknown_81D595F + call ConfusionEffect end Status_Burn:: @ 81D5A78 loadspritegfx ANIM_TAG_SMALL_EMBER playsewithpan SE_W172, 63 - call gUnknown_81D5A90 - call gUnknown_81D5A90 - call gUnknown_81D5A90 + call BurnFlame + call BurnFlame + call BurnFlame waitforvisualfinish end -gUnknown_81D5A90:: @ 81D5A90 - createsprite gUnknown_83E5D7C, ANIM_TARGET, 2, -24, 24, 24, 24, 20, 1, 1 +BurnFlame:: @ 81D5A90 + createsprite gBurnFlameSpriteTemplate, ANIM_TARGET, 2, -24, 24, 24, 24, 20, 1, 1 delay 4 return @@ -10511,55 +10482,55 @@ Status_Sleep:: @ 81D5ADD Status_Paralysis:: @ 81D5B09 loadspritegfx ANIM_TAG_SPARK_2 createvisualtask AnimTask_ShakeMon2, 2, 0, 1, 0, 10, 1 - call gUnknown_81D58D4 + call ElectricityEffect end Status_Freeze:: @ 81D5B23 playsewithpan SE_W196, 0 loadspritegfx ANIM_TAG_ICE_CUBE - monbg 3 + monbg ANIM_DEF_PARTNER monbgprio_28 1 waitplaysewithpan SE_W258, 63, 17 - createvisualtask sub_80783FC, 2, + createvisualtask AnimTask_FrozenIceCube, 2, waitforvisualfinish - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER end Status_Curse:: @ 81D5B3E loadspritegfx ANIM_TAG_GHOSTLY_SPIRIT - monbg 3 + monbg ANIM_DEF_PARTNER playsewithpan SE_W171, 63 - createsprite gUnknown_83E7698, ANIM_TARGET, 2, + createsprite gCurseGhostSpriteTemplate, ANIM_TARGET, 2, createvisualtask AnimTask_ShakeMon2, 2, 1, 2, 0, 14, 1 waitforvisualfinish - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER end Status_Nightmare:: @ 81D5B63 loadspritegfx ANIM_TAG_DEVIL - monbg 3 + monbg ANIM_DEF_PARTNER playsewithpan SE_W171, 63 - createsprite gUnknown_83E76B0, ANIM_TARGET, 2, + createsprite gNightmareDevilSpriteTemplate, ANIM_TARGET, 2 createvisualtask AnimTask_ShakeMon2, 2, 1, 2, 0, 14, 1 waitforvisualfinish - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER end General_CastformChange:: @ 81D5B88 createvisualtask AnimTask_IsMonInvisible, 2, - jumpargeq 7, 1, gUnknown_81D5BB4 - goto gUnknown_81D5B9C + jumpargeq 7, 1, CastformChangeSkipAnim + goto CastformChangeContinue -gUnknown_81D5B9C:: @ 81D5B9C - monbg 0 +CastformChangeContinue:: @ 81D5B9C + monbg ANIM_ATTACKER playsewithpan SE_W100, 192 waitplaysewithpan SE_W107, 192, 48 createvisualtask AnimTask_TransformMon, 2, 1 waitforvisualfinish - clearmonbg 0 + clearmonbg ANIM_ATTACKER end -gUnknown_81D5BB4:: @ 81D5BB4 +CastformChangeSkipAnim:: @ 81D5BB4 createvisualtask AnimTask_CastformGfxChange, 2, 1 end @@ -10569,16 +10540,16 @@ General_StatsChange:: @ 81D5BBE end General_SubstituteFade:: @ 81D5BC7 - monbg 0 - createvisualtask sub_80F15C8, 5, + monbg ANIM_ATTACKER + createvisualtask AnimTask_SubstituteFadeToInvisible, 5 createvisualtask AnimTask_BlendSelected, 10, 2, 0, 0, 16, RGB_WHITE waitforvisualfinish delay 1 - clearmonbg 0 + clearmonbg ANIM_ATTACKER delay 2 blendoff createvisualtask AnimTask_BlendSelected, 10, 2, 0, 0, 0, RGB_WHITE - createvisualtask sub_80F1420, 2, 1 + createvisualtask AnimTask_SwapMonSpriteToFromSubstitute, 2, 1 end General_SubstituteAppear:: @ 81D5C04 @@ -10605,13 +10576,13 @@ General_ItemKnockoff:: @ 81D5C54 General_TurnTrap:: @ 81D5C5F createvisualtask AnimTask_GetTrappedMoveAnimId, 5, - jumpargeq 0, 1, gUnknown_81D5CD3 - jumpargeq 0, 2, gUnknown_81D5CF8 - jumpargeq 0, 3, gUnknown_81D5D4C - jumpargeq 0, 4, gUnknown_81D5DA9 - goto gUnknown_81D5C8B + jumpargeq 0, 1, Status_FireSpin + jumpargeq 0, 2, Status_Whirlpool + jumpargeq 0, 3, Status_Clamp + jumpargeq 0, 4, Status_SandTomb + goto Status_BindWrap -gUnknown_81D5C8B:: @ 81D5C8B +Status_BindWrap:: @ 81D5C8B loadspritegfx ANIM_TAG_TENDRILS loopsewithpan SE_W010, 63, 6, 2 createsprite gConstrictBindingSpriteTemplate, ANIM_TARGET, 4, 0, 16, 0, 1 @@ -10625,42 +10596,42 @@ gUnknown_81D5C8B:: @ 81D5C8B waitforvisualfinish end -gUnknown_81D5CD3:: @ 81D5CD3 +Status_FireSpin:: @ 81D5CD3 loadspritegfx ANIM_TAG_SMALL_EMBER playsewithpan SE_W221B, 63 createvisualtask AnimTask_ShakeMon, 5, 1, 0, 2, 30, 1 - call gUnknown_81C885F - call gUnknown_81C885F + call FireSpinEffect + call FireSpinEffect waitforvisualfinish stopsound end -gUnknown_81D5CF8:: @ 81D5CF8 +Status_Whirlpool:: @ 81D5CF8 loadspritegfx ANIM_TAG_WATER_ORB - monbg 3 + monbg ANIM_DEF_PARTNER monbgprio_28 1 setalpha 12, 8 delay 0 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, 4, 2, 0, 7, 23968 playsewithpan SE_W250, 63 createvisualtask AnimTask_ShakeMon, 5, 1, 0, 2, 30, 1 - call gUnknown_81CFB92 - call gUnknown_81CFB92 + call WhirlpoolEffect + call WhirlpoolEffect delay 12 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, 4, 2, 7, 0, 23968 waitforvisualfinish stopsound - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER end -gUnknown_81D5D4C:: @ 81D5D4C +Status_Clamp:: @ 81D5D4C loadspritegfx ANIM_TAG_CLAMP loadspritegfx ANIM_TAG_IMPACT monbg 1 setalpha 12, 8 playsewithpan SE_W011, 63 - createsprite gUnknown_83E7948, ANIM_ATTACKER, 2, -32, 0, 2, 819, 0, 10 - createsprite gUnknown_83E7948, ANIM_ATTACKER, 2, 32, 0, 6, -819, 0, 10 + createsprite gClampJawSpriteTemplate, ANIM_ATTACKER, 2, -32, 0, 2, 819, 0, 10 + createsprite gClampJawSpriteTemplate, ANIM_ATTACKER, 2, 32, 0, 6, -819, 0, 10 delay 10 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 1, 2 createvisualtask AnimTask_ShakeMon, 5, 1, 3, 0, 5, 1 @@ -10670,13 +10641,13 @@ gUnknown_81D5D4C:: @ 81D5D4C waitforvisualfinish end -gUnknown_81D5DA9:: @ 81D5DA9 +Status_SandTomb:: @ 81D5DA9 loadspritegfx ANIM_TAG_MUD_SAND createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, 4, 2, 0, 7, 563 createvisualtask AnimTask_ShakeMon, 5, 1, 0, 2, 30, 1 playsewithpan SE_W328, 63 - call gUnknown_81D2DE3 - call gUnknown_81D2DE3 + call SandTombSwirlingDirt + call SandTombSwirlingDirt delay 22 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, 4, 2, 7, 0, 563 waitforvisualfinish @@ -10688,16 +10659,16 @@ General_ItemEffect:: @ 81D5DF2 loadspritegfx ANIM_TAG_SPARKLE_2 delay 0 playsewithpan SE_W036, 192 - createvisualtask sub_8099A78, 2, 16, 128, 0, 2 + createvisualtask AnimTask_RotateMonToSideAndRestore, 2, 16, 128, 0, 2 waitforvisualfinish playsewithpan SE_W036, 192 - createvisualtask sub_8099A78, 2, 16, 128, 0, 2 + createvisualtask AnimTask_RotateMonToSideAndRestore, 2, 16, 128, 0, 2 waitforvisualfinish playsewithpan SE_W036, 192 - createvisualtask sub_8099A78, 2, 16, 128, 0, 2 + createvisualtask AnimTask_RotateMonToSideAndRestore, 2, 16, 128, 0, 2 waitforvisualfinish playsewithpan SE_W234, 192 - call gUnknown_81D569E + call GrantingStarsEffect waitforvisualfinish playsewithpan SE_REAPOKE, 192 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 2, 3, 7, 0, 26609 @@ -10707,7 +10678,7 @@ General_ItemEffect:: @ 81D5DF2 General_SmokeballEscape:: @ 81D5E66 loadspritegfx ANIM_TAG_PINK_CLOUD - monbg 0 + monbg ANIM_ATTACKER setalpha 12, 4 delay 0 playsewithpan SE_BOWA2, 63 @@ -10723,7 +10694,7 @@ General_SmokeballEscape:: @ 81D5E66 createsprite gSmokeBallEscapeCloudSpriteTemplate, ANIM_ATTACKER, 124, 2, 14, -20, 30 delay 4 playsewithpan SE_BOWA2, 63 - createvisualtask sub_80B78E0, 2, 2 + createvisualtask AnimTask_AttackerFadeToInvisible, 2, 2 createsprite gSmokeBallEscapeCloudSpriteTemplate, ANIM_ATTACKER, 123, 3, 4, 4, 30 delay 14 playsewithpan SE_BOWA2, 63 @@ -10737,7 +10708,7 @@ General_SmokeballEscape:: @ 81D5E66 delay 0 createsprite gSmokeBallEscapeCloudSpriteTemplate, ANIM_ATTACKER, 118, 3, 0, 0, 46 waitforvisualfinish - clearmonbg 0 + clearmonbg ANIM_ATTACKER invisible 0 delay 0 blendoff @@ -10746,7 +10717,7 @@ General_SmokeballEscape:: @ 81D5E66 General_HangedOn:: @ 81D5F42 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, 2, 7, 0, 9, 31 playsewithpan SE_W082, 192 - createvisualtask sub_80E1C48, 5, 30, 128, 0, 1, 2, 0, 1 + createvisualtask AnimTask_SlideMonForFocusBand, 5, 30, 128, 0, 1, 2, 0, 1 waitforvisualfinish createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, 2, 4, 9, 0, 31 waitforvisualfinish @@ -10759,8 +10730,8 @@ General_Rain:: @ 81D5F8F playsewithpan SE_W240, 192 createvisualtask AnimTask_BlendSelected, 10, 1 | (0xF << 7), 2, 0, 4, RGB_BLACK waitforvisualfinish - createvisualtask sub_80AABC0, 2, 0, 3, 60 - createvisualtask sub_80AABC0, 2, 0, 3, 60 + createvisualtask AnimTask_CreateRaindrops, 2, 0, 3, 60 + createvisualtask AnimTask_CreateRaindrops, 2, 0, 3, 60 delay 50 waitforvisualfinish createvisualtask AnimTask_BlendSelected, 10, 1 | (0xF << 7), 2, 4, 0, RGB_BLACK @@ -10795,7 +10766,7 @@ General_MonHit:: @ 81D5FF5 General_ItemSteal:: @ 81D6026 loadspritegfx ANIM_TAG_ITEM_BAG - createvisualtask sub_80BC0FC, 2, + createvisualtask AnimTask_SetAnimAttackerAndTargetForEffectAtk, 2 createvisualtask AnimTask_TargetToEffectBattler, 2, delay 1 createsprite gItemStealSpriteTemplate, ANIM_ATTACKER, 2, 0, -5, 10, 2, -1 @@ -10803,35 +10774,35 @@ General_ItemSteal:: @ 81D6026 General_SnatchMove:: @ 81D604B loadspritegfx ANIM_TAG_ITEM_BAG - createvisualtask sub_80BC060, 2, - call gUnknown_81D6476 + createvisualtask AnimTask_SetAnimAttackerAndTargetForEffectTgt, 2 + call SnatchMoveTrySwapFromSubstitute delay 1 createvisualtask AnimTask_SwayMon, 2, 0, 5, 5120, 4, 1 waitforvisualfinish createvisualtask AnimTask_IsTargetSameSide, 2, - jumpargeq 7, 0, gUnknown_81D6089 - goto gUnknown_81D6099 + jumpargeq 7, 0, SnatchOpposingMonMove + goto SnatchPartnerMonMove -gUnknown_81D6082:: @ 81D6082 +SnatchMoveContinue:: @ 81D6082 waitforvisualfinish - call gUnknown_81D6496 + call SnatchMoveTrySwapToSubstitute end -gUnknown_81D6089:: @ 81D6089 +SnatchOpposingMonMove:: @ 81D6089 playsewithpan SE_W104, 192 createvisualtask AnimTask_SnatchOpposingMonMove, 2, - goto gUnknown_81D6082 + goto SnatchMoveContinue -gUnknown_81D6099:: @ 81D6099 +SnatchPartnerMonMove:: @ 81D6099 playsewithpan SE_W104, 192 createvisualtask AnimTask_SnatchPartnerMove, 2, - goto gUnknown_81D6082 + goto SnatchMoveContinue General_FutureSightHit:: @ 81D60A9 - createvisualtask sub_80BC0DC, 2, - monbg 3 + createvisualtask AnimTask_SetAnimTargetToBattlerTarget, 2 + monbg ANIM_DEF_PARTNER playsewithpan SE_W060, 192 - call gUnknown_81D59BB + call SetPsychicBackground setalpha 8, 8 playsewithpan SE_W048, 63 waitplaysewithpan SE_W048, 63, 8 @@ -10840,15 +10811,15 @@ General_FutureSightHit:: @ 81D60A9 waitforvisualfinish createvisualtask AnimTask_ShakeMon, 2, 1, 4, 0, 24, 1 waitforvisualfinish - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER blendoff waitforvisualfinish delay 1 - call gUnknown_81D59C7 + call UnsetPsychicBg end General_DoomDesireHit:: @ 81D6108 - createvisualtask sub_80BC0DC, 2, + createvisualtask AnimTask_SetAnimTargetToBattlerTarget, 2, loadspritegfx ANIM_TAG_EXPLOSION createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 0, 16, RGB_WHITE waitforvisualfinish @@ -10884,32 +10855,32 @@ General_DoomDesireHit:: @ 81D6108 General_FocusPunchSetUp:: @ 81D61CD loadspritegfx ANIM_TAG_FOCUS_ENERGY playsewithpan SE_W082, 192 - call gUnknown_81CB267 + call EndureEffect delay 8 createvisualtask AnimTask_CurseBlendEffect, 2, 2, 2, 2, 0, 11, 31 createvisualtask AnimTask_ShakeMon2, 2, 0, 1, 0, 32, 1 - call gUnknown_81CB267 + call EndureEffect delay 8 - call gUnknown_81CB267 + call EndureEffect waitforvisualfinish end General_IngrainHeal:: @ 81D620D loadspritegfx ANIM_TAG_ORBS loadspritegfx ANIM_TAG_BLUE_STAR - monbg 3 + monbg ANIM_DEF_PARTNER setalpha 12, 8 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 0, 4, 13293 waitforvisualfinish delay 3 - call gUnknown_81CEC44 + call AbsorbEffect waitforvisualfinish delay 15 - call gUnknown_81D56C9 + call HealingEffect waitforvisualfinish createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 4, 0, 13293 waitforvisualfinish - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER blendoff end @@ -10919,9 +10890,9 @@ General_WishHeal:: @ 81D6250 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 0, 10, 0 waitforvisualfinish playsewithpan SE_W025, 192 - call gUnknown_81D569E + call GrantingStarsEffect waitforvisualfinish - call gUnknown_81D56C9 + call HealingEffect waitforvisualfinish createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 10, 0, 0 end @@ -10933,11 +10904,11 @@ General_MonScared:: @ 81D628A createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, 4, 2, 0, 10, 26336 createvisualtask AnimTask_ShakeMon2, 2, 1, 2, 0, 10, 1 delay 20 - createsprite gUnknown_83E6D94, ANIM_TARGET, 5, 0, 1 + createsprite gSprayWaterDropletSpriteTemplate, ANIM_TARGET, 5, 0, 1 playsewithpan SE_W166, 63 - createsprite gUnknown_83E6D94, ANIM_TARGET, 5, 1, 1 + createsprite gSprayWaterDropletSpriteTemplate, ANIM_TARGET, 5, 1, 1 createvisualtask AnimTask_ShakeMon2, 2, 1, 4, 0, 5, 1 - createvisualtask sub_80A9A20, 3, + createvisualtask AnimTask_StretchTargetUp, 3, waitforvisualfinish createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, 4, 2, 10, 0, 26336 waitforvisualfinish @@ -10957,10 +10928,10 @@ General_GhostGetOut:: @ 81D6301 delay 1 loadspritegfx ANIM_TAG_SWEAT_BEAD createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, 4, -1, 0, 6, 27349 - createsprite gUnknown_83E6D94, ANIM_TARGET, 5, 0, 1 - createsprite gUnknown_83E6D94, ANIM_TARGET, 5, 1, 1 + createsprite gSprayWaterDropletSpriteTemplate, ANIM_TARGET, 5, 0, 1 + createsprite gSprayWaterDropletSpriteTemplate, ANIM_TARGET, 5, 1, 1 createvisualtask AnimTask_ShakeMon2, 2, 1, 4, 0, 5, 1 - createvisualtask sub_80A9A20, 3, + createvisualtask AnimTask_StretchTargetUp, 3, waitforvisualfinish createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, 4, -1, 6, 0, 27349 waitforvisualfinish @@ -10969,13 +10940,13 @@ General_GhostGetOut:: @ 81D6301 end General_SilphScoped:: @ 81D637B - monbg 0 + monbg ANIM_ATTACKER playsewithpan SE_W100, 192 waitplaysewithpan SE_W107, 192, 48 createvisualtask AnimTask_TransformMon, 2, 255 waitsound waitforvisualfinish - clearmonbg 0 + clearmonbg ANIM_ATTACKER end General_SafariRockThrow:: @ 81D6394 @@ -10985,15 +10956,15 @@ General_SafariRockThrow:: @ 81D6394 loadspritegfx ANIM_TAG_IMPACT delay 0 waitplaysewithpan SE_W026, 192, 22 - createsprite gUnknown_840C210, ANIM_TARGET, 3, -17, 14, 8, 0 + createsprite gSafariRockTemplate, ANIM_TARGET, 3, -17, 14, 8, 0 delay 50 - monbg 3 + monbg ANIM_DEF_PARTNER setalpha 12, 8 delay 0 playsewithpan SE_W003, 63 createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, -4, -20, 1, 2 waitforvisualfinish - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER blendoff waitforvisualfinish end @@ -11008,10 +10979,10 @@ General_SafariReaction:: @ 81D63DC gUnknown_81D63FD:: @ 81D63FD playsewithpan SE_W036, 63 - createvisualtask sub_8099A78, 2, 16, 96, 0, 2 + createvisualtask AnimTask_RotateMonToSideAndRestore, 2, 16, 96, 0, 2 waitforvisualfinish playsewithpan SE_W036, 63 - createvisualtask sub_8099A78, 2, 16, -96, 0, 2 + createvisualtask AnimTask_RotateMonToSideAndRestore, 2, 16, -96, 0, 2 end gUnknown_81D6425:: @ 81D6425 @@ -11026,106 +10997,105 @@ gUnknown_81D6425:: @ 81D6425 gUnknown_81D644E:: @ 81D644E playsewithpan SE_W036, 63 - createvisualtask sub_8099A78, 2, 8, 136, 0, 2 + createvisualtask AnimTask_RotateMonToSideAndRestore, 2, 8, 136, 0, 2 waitforvisualfinish playsewithpan SE_W036, 63 - createvisualtask sub_8099A78, 2, 8, 136, 0, 2 + createvisualtask AnimTask_RotateMonToSideAndRestore, 2, 8, 136, 0, 2 end -gUnknown_81D6476:: @ 81D6476 +SnatchMoveTrySwapFromSubstitute:: @ 81D6476 createvisualtask AnimTask_IsAttackerBehindSubstitute, 2, - jumpargeq 7, 1, gUnknown_81D6487 + jumpargeq 7, 1, SnatchMoveSwapSubstituteForMon -gUnknown_81D6485:: @ 81D6485 +SnatchMoveTrySwapFromSubstituteEnd:: @ 81D6485 waitforvisualfinish return -gUnknown_81D6487:: @ 81D6487 - createvisualtask sub_80F1420, 2, 1 +SnatchMoveSwapSubstituteForMon:: @ 81D6487 + createvisualtask AnimTask_SwapMonSpriteToFromSubstitute, 2, 1 waitforvisualfinish - goto gUnknown_81D6485 + goto SnatchMoveTrySwapFromSubstituteEnd -gUnknown_81D6496:: @ 81D6496 +SnatchMoveTrySwapToSubstitute:: @ 81D6496 createvisualtask AnimTask_IsAttackerBehindSubstitute, 2, - jumpargeq 7, 1, gUnknown_81D64A7 + jumpargeq 7, 1, SnatchMoveSwapMonForSubstitute -gUnknown_81D64A5:: @ 81D64A5 +SnatchMoveTrySwapToSubstituteEnd:: @ 81D64A5 waitforvisualfinish return -gUnknown_81D64A7:: @ 81D64A7 - createvisualtask sub_80F1420, 2, 0 +SnatchMoveSwapMonForSubstitute:: @ 81D64A7 + createvisualtask AnimTask_SwapMonSpriteToFromSubstitute, 2, 0 waitforvisualfinish - goto gUnknown_81D64A5 + goto SnatchMoveTrySwapToSubstituteEnd Special_LevelUp:: @ 81D64B6 playsewithpan SE_EXPMAX, 0 - createvisualtask sub_80EF0B4, 2, + createvisualtask AnimTask_LoadHealthboxPalsForLevelUp, 2 delay 0 - createvisualtask sub_80EF1A0, 5, 0, 0 + createvisualtask AnimTask_FlashHealthboxOnLevelUp, 5, 0, 0 waitforvisualfinish - createvisualtask sub_80EF180, 2, + createvisualtask AnimTask_FreeHealthboxPalsForLevelUp, 2 end Special_SwitchOutPlayerMon:: @ 81D64D7 - createvisualtask sub_80EF344, 2, + createvisualtask AnimTask_SwitchOutBallEffect, 2 delay 10 - createvisualtask sub_80EF298, 2, + createvisualtask AnimTask_SwitchOutShrinkMon, 2 end Special_SwitchOutOpponentMon:: @ 81D64E8 - createvisualtask sub_80EF344, 2, + createvisualtask AnimTask_SwitchOutBallEffect, 2, delay 10 - createvisualtask sub_80EF298, 2, + createvisualtask AnimTask_SwitchOutShrinkMon, 2, end Special_BallThrow:: @ 81D64F9 - createvisualtask sub_80EF490, 2, + createvisualtask AnimTask_LoadBallGfx, 2 delay 0 playsewithpan SE_NAGERU, 0 - createvisualtask sub_80EF5AC, 2, + createvisualtask AnimTask_ThrowBall, 2 createvisualtask AnimTask_IsBallBlockedByTrainerOrDodged, 2, - jumpargeq 7, 65535, gUnknown_81D652D - jumpargeq 7, 65534, gUnknown_81D6555 - -gUnknown_81D6524:: @ 81D6524 + jumpargeq 7, -1, BallThrowTrainerBlock + jumpargeq 7, -2, BallThrowGhostDodged +BallThrowEnd:: @ 81D6524 waitforvisualfinish - createvisualtask sub_80EF4B8, 2, + createvisualtask AnimTask_FreeBallGfx, 2 end -gUnknown_81D652D:: @ 81D652D +BallThrowTrainerBlock:: @ 81D652D loadspritegfx ANIM_TAG_IMPACT delay 25 - monbg 3 + monbg ANIM_DEF_PARTNER setalpha 12, 8 delay 0 playsewithpan SE_W003, 63 createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, -4, -20, 1, 2 waitforvisualfinish - clearmonbg 3 + clearmonbg ANIM_DEF_PARTNER blendoff - goto gUnknown_81D6524 + goto BallThrowEnd -gUnknown_81D6555:: @ 81D6555 +BallThrowGhostDodged:: @ 81D6555 delay 16 createvisualtask AnimTask_WindUpLunge, 2, 1, 48, 6, 16, 48, -48, 16 playsewithpan SE_W036, 63 waitplaysewithpan SE_W036, 63, 48 waitforvisualfinish - goto gUnknown_81D6524 + goto BallThrowEnd Special_SafariBallThrow:: @ 81D657B - createvisualtask sub_80EF490, 2, + createvisualtask AnimTask_LoadBallGfx, 2, delay 0 - createvisualtask sub_80EF6D4, 2, + createvisualtask AnimTask_ThrowBallSpecial, 2 waitforvisualfinish - createvisualtask sub_80EF4B8, 2, + createvisualtask AnimTask_FreeBallGfx, 2, end Special_SubstituteToMon:: @ 81D6594 - createvisualtask sub_80F1420, 2, 1 + createvisualtask AnimTask_SwapMonSpriteToFromSubstitute, 2, 1 end Special_MonToSubstitute:: @ 81D659E - createvisualtask sub_80F1420, 2, 0 + createvisualtask AnimTask_SwapMonSpriteToFromSubstitute, 2, 0 end diff --git a/graphics/unknown/unknown_E822B8.bin b/graphics/battle_anims/backgrounds/water_contest.bin index 6312b8645..6312b8645 100644 --- a/graphics/unknown/unknown_E822B8.bin +++ b/graphics/battle_anims/backgrounds/water_contest.bin diff --git a/graphics/unknown/unknown_E81D14.bin b/graphics/battle_anims/backgrounds/water_opponent.bin Binary files differindex d48de1d6f..d48de1d6f 100644 --- a/graphics/unknown/unknown_E81D14.bin +++ b/graphics/battle_anims/backgrounds/water_opponent.bin diff --git a/graphics/unknown/unknown_E81FE4.bin b/graphics/battle_anims/backgrounds/water_player.bin index 6a6f7c049..6a6f7c049 100644 --- a/graphics/unknown/unknown_E81FE4.bin +++ b/graphics/battle_anims/backgrounds/water_player.bin diff --git a/include/battle_anim.h b/include/battle_anim.h index e987457c7..866ca663e 100644 --- a/include/battle_anim.h +++ b/include/battle_anim.h @@ -215,9 +215,10 @@ void AnimMetronomeFinger(struct Sprite *); void AnimFollowMeFinger(struct Sprite *); void AnimTauntFinger(struct Sprite *); void SetSpriteNextToMonHead(u8 battler, struct Sprite* sprite); -void sub_80A2F0C(u8 taskId); +void AnimTask_ShrinkTargetCopy(u8 taskId); // battle_anim_effects_2.c +extern const union AffineAnimCmd *const gGrowingRingAffineAnimTable[]; void sub_80A6E48(struct Sprite *); void sub_80A6E98(struct Sprite *); void sub_80A6F8C(struct Sprite *); @@ -345,7 +346,6 @@ void LaunchStatusAnimation(u8 battlerId, u8 statusAnimId); // battle_anim_mons.c extern const struct MonCoords gCastformFrontSpriteCoords[]; - u8 GetBattlerSpriteCoord(u8 battlerId, u8 coordType); u8 GetBattlerSpriteCoord2(u8 battlerId, u8 coordType); u8 GetBattlerSpriteDefault_Y(u8 battlerId); @@ -421,9 +421,9 @@ void AnimThrowProjectile(struct Sprite *sprite); void AnimSnoreZ(struct Sprite *sprite); s16 CloneBattlerSpriteWithBlend(u8 animBattler); void obj_delete_but_dont_free_vram(struct Sprite *sprite); -void sub_8076048(u8 taskId); +void AnimTask_AlphaFadeIn(u8 taskId); void AnimTask_BlendMonInAndOut(u8 task); -void sub_8076288(u8 taskId); +void AnimTask_BlendPalInAndOutByTag(u8 taskId); void PrepareAffineAnimInTaskData(struct Task *task, u8 spriteId, const union AffineAnimCmd *affineAnimCmds); bool8 RunAffineAnimFromTaskData(struct Task *task); void SetBattlerSpriteYOffsetFromYScale(u8 spriteId); @@ -445,9 +445,9 @@ u8 sub_8076E34(s32 battlerId, u8 spriteId, s32 species); void sub_8076ED8(struct Sprite *sprite); void sub_8076F58(struct Sprite *sprite); void sub_8076FD0(struct Sprite *sprite); -void sub_8077030(u8 taskId); +void AnimTask_AttackerPunchWithTrace(u8 taskId); void sub_807729C(struct Sprite *sprite); -void sub_8077350(struct Sprite *sprite); +void AnimWeatherBallDown(struct Sprite *sprite); // battle_anim_mon_movement.c void AnimTask_ShakeMon(u8 taskId); @@ -457,107 +457,111 @@ void AnimTask_ShakeAndSinkMon(u8 taskId); void AnimTask_TranslateMonElliptical(u8 taskId); void AnimTask_TranslateMonEllipticalRespectSide(u8 taskId); void AnimTask_WindUpLunge(u8 taskId); -void sub_80995FC(u8 taskId); +void AnimTask_SlideOffScreen(u8 taskId); void AnimTask_SwayMon(u8 taskId); void AnimTask_ScaleMonAndRestore(u8 taskId); -void sub_8099980(u8 taskId); -void sub_8099A78(u8 taskId); -void sub_8099BD4(u8 taskId); +void AnimTask_RotateMonSpriteToSide(u8 taskId); +void AnimTask_RotateMonToSideAndRestore(u8 taskId); +void AnimTask_ShakeTargetBasedOnMovePowerOrDmg(u8 taskId); // normal.c -extern const struct SpriteTemplate gUnknown_83E7C98; +extern const struct SpriteTemplate gFlashingHitSplatSpriteTemplate; extern const struct SpriteTemplate gBasicHitSplatSpriteTemplate; +extern const struct SpriteTemplate gWaterHitSplatSpriteTemplate; u32 UnpackSelectedBattleAnimPalettes(s16 selector); void AnimTask_CurseBlendEffect(u8 taskId); -void sub_80B9CE4(u8 taskId); -void sub_80B9E58(u8 taskId); -void sub_80B9F6C(u8 taskId); -void sub_80BA0E8(u8 taskId); -void sub_80BA47C(u8 taskId); +void AnimTask_BlendColorCycleExclude(u8 taskId); +void AnimTask_BlendColorCycleByTag(u8 taskId); +void AnimTask_FlashAnimTagWithColor(u8 taskId); +void AnimTask_InvertScreenColor(u8 taskId); +void AnimTask_ShakeBattleTerrain(u8 taskId); // ground.c -void sub_80B8E94(u8 taskId); -void sub_80B90EC(u8 taskId); -void sub_80B94B4(u8 taskId); +void AnimTask_DigDownMovement(u8 taskId); +void AnimTask_DigUpMovement(u8 taskId); +void AnimTask_HorizontalShake(u8 taskId); void AnimTask_IsPowerOver99(u8 taskId); -void sub_80B9800(u8 taskId); +void AnimTask_PositionFissureBgOnBattler(u8 taskId); // dragon.c -void sub_80B75E0(u8 taskId); +void AnimTask_DragonDanceWaver(u8 taskId); // ghost.c -void sub_80B54E8(u8 taskId); -void sub_80B58AC(u8 taskId); -void sub_80B5AAC(u8 taskId); -void sub_80B6020(u8 taskId); -void sub_80B63B4(u8 taskId); -void sub_80B68C8(u8 taskId); +void AnimTask_NightShadeClone(u8 taskId); +void AnimTask_NightmareClone(u8 taskId); +void AnimTask_SpiteTargetShadow(u8 taskId); +void AnimTask_DestinyBondWhiteShadow(u8 taskId); +void AnimTask_CurseStretchingBlackBg(u8 taskId); +void AnimTask_GrudgeFlames(u8 taskId); void sub_80B6BBC(u8 taskId); // rock.c void AnimTask_LoadSandstormBackground(u8 taskId); -void sub_80B4BD0(u8 taskId); +void AnimTask_Rollout(u8 taskId); void AnimTask_GetSeismicTossDamageLevel(u8 taskId); -void sub_80B5188(u8 taskId); -void sub_80B51EC(u8 taskId); +void AnimTask_MoveSeismicTossBg(u8 taskId); +void AnimTask_SeismicTossBgAccelerateDownAtEnd(u8 taskId); // psychic.c -void sub_80B3418(u8 taskId); -void sub_80B3480(u8 taskId); -void sub_80B3584(u8 taskId); -void sub_80B3834(u8 taskId); -void sub_80B3A58(u8 taskId); -void sub_80B3C78(u8 taskId); +void AnimTask_MeditateStretchAttacker(u8 taskId); +void AnimTask_Teleport(u8 taskId); +void AnimTask_ImprisonOrbs(u8 taskId); +void AnimTask_SkillSwap(u8 taskId); +void AnimTask_ExtrasensoryDistortion(u8 taskId); +void AnimTask_TransparentCloneGrowAndShrink(u8 taskId); // dark.c -extern const union AffineAnimCmd *const gUnknown_83E7910[]; -void sub_80B78E0(u8 taskId); -void sub_80B79DC(u8 taskId); -void sub_80B7A80(u8 taskId); -void sub_80B7DA4(u8 taskId); -void sub_80B8070(u8 taskId); -void sub_80B85B8(u8 taskId); +extern const union AffineAnimCmd *const gAffineAnims_Bite[]; +void AnimTask_AttackerFadeToInvisible(u8 taskId); +void AnimTask_AttackerFadeFromInvisible(u8 taskId); +void AnimTask_InitAttackerFadeFromInvisible(u8 taskId); +void AnimTask_MoveAttackerMementoShadow(u8 taskId); +void AnimTask_MoveTargetMementoShadow(u8 taskId); +void AnimTask_InitMementoShadow(u8 taskId); void sub_80B8664(u8 taskId); void AnimTask_MetallicShine(u8 taskId); void AnimTask_SetGreyscaleOrOriginalPal(u8 taskId); -void sub_80B8B38(u8 taskId); +void GetIsDoomDesireHitTurn(u8 taskId); // flying.c -void sub_80B194C(u8 taskId); +void AnimTask_AnimateGustTornadoPalette(u8 taskId); void sub_80B1D3C(struct Sprite *sprite); -void sub_80B2868(u8 taskId); +void AnimTask_DrillPeckHitSplats(u8 taskId); + +// poison.c +extern const union AffineAnimCmd *const gAffineAnims_Droplet[]; // fighting.c -void sub_80B1530(u8 taskId); +void AnimTask_MoveSkyUppercutBg(u8 taskId); // ice.c +extern const union AnimCmd *const gAnims_SmallBubblePair[]; void AnimTask_Haze1(u8 taskId); void AnimTask_LoadMistTiles(u8 taskId); void AnimTask_Hail1(u8 taskId); void AnimTask_GetRolloutCounter(u8 taskId); // electric.c -void sub_80AE220(u8 taskId); -void sub_80AE540(u8 taskId); -void sub_80AE8A0(u8 taskId); -void sub_80AEA10(u8 taskId); -void sub_80AECE0(u8 taskId); -void sub_80AEFA0(u8 taskId); +void AnimTask_ElectricBolt(u8 taskId); +void AnimTask_ElectricChargingParticles(u8 taskId); +void AnimTask_VoltTackleAttackerReappear(u8 taskId); +void AnimTask_VoltTackleBolt(u8 taskId); +void AnimTask_ShockWaveProgressingBolt(u8 taskId); +void AnimTask_ShockWaveLightning(u8 taskId); // fire.c -extern const union AnimCmd *const gUnknown_83E5D48[]; - -void sub_80ACEA4(u8 taskId); -void sub_80ADAD8(u8 taskId); +extern const union AnimCmd *const gAnims_BasicFire[]; +void AnimTask_EruptionLaunchRocks(u8 taskId); +void AnimTask_ShakeTargetInPattern(u8 taskId); void AnimTask_BlendBackground(u8 taskId); -void sub_80AD800(u8 taskId); +void AnimTask_MoveHeatWaveTargets(u8 taskId); -// water.s -extern const union AnimCmd *const gUnknown_83E5958[]; -extern const union AnimCmd *const gUnknown_83E5A78[]; +// water.c +extern const union AnimCmd *const gAnims_WaterMudOrb[]; +extern const union AnimCmd *const gAnims_WaterBubble[]; void AnimWaterPulseRing(struct Sprite *sprite); -// smokescreen.s +// smokescreen.c u8 SmokescreenImpact(s16 x, s16 y, u8 a3); // battle_anim_utility_funcs.c @@ -570,25 +574,25 @@ void AnimTask_CloneBattlerSpriteWithBlend(u8 taskId); void AnimTask_SetUpCurseBackground(u8 taskId); void sub_80BB088(u8 taskId); void sub_80BB660(u8 taskId); -void sub_80BB7DC(u8 taskId); -void sub_80BB82C(u8 taskId); +void AnimTask_BlendNonAttackerPalettes(u8 taskId); +void AnimTask_StartSlidingBg(u8 taskId); void AnimTask_GetAttackerSide(u8 taskId); void AnimTask_GetTargetSide(u8 taskId); void AnimTask_GetTargetIsAttackerPartner(u8 taskId); -void sub_80BB9B0(u8 taskId); +void AnimTask_SetAllNonAttackersInvisiblity(u8 taskId); void sub_80BBA20(u8 taskId, s32 unused, u16 arg2, u8 battler1, u8 arg4, u8 arg5, u8 arg6, u8 arg7, const u32 *gfx, const u32 *tilemap, const u32 *palette); void AnimTask_GetBattleTerrain(u8 taskId); -void sub_80BBE10(u8 taskId); -void sub_80BBE3C(u8 taskId); -void sub_80BBE6C(u8 taskId); -void sub_80BBF08(u8 taskId); -void sub_80BBFA4(u8 taskId); +void AnimTask_AllocBackupPalBuffer(u8 taskId); +void AnimTask_FreeBackupPalBuffer(u8 taskId); +void AnimTask_CopyPalUnfadedToBackup(u8 taskId); +void AnimTask_CopyPalUnfadedFromBackup(u8 taskId); +void AnimTask_CopyPalFadedToUnfaded(u8 taskId); void AnimTask_IsContest(u8 taskId); -void sub_80BC060(u8 taskId); +void AnimTask_SetAnimAttackerAndTargetForEffectTgt(u8 taskId); void AnimTask_IsTargetSameSide(u8 taskId); -void sub_80BC0DC(u8 taskId); -void sub_80BC0FC(u8 taskId); -void sub_80BC12C(u8 taskId); +void AnimTask_SetAnimTargetToBattlerTarget(u8 taskId); +void AnimTask_SetAnimAttackerAndTargetForEffectAtk(u8 taskId); +void AnimTask_SetAttackerInvisibleWaitForSignal(u8 taskId); // battle_anim_scripts.s extern const u8 *const gBattleAnims_StatusConditions[]; diff --git a/include/graphics.h b/include/graphics.h index 40a41b87e..35ef29391 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -4241,6 +4241,7 @@ extern const u32 gBattleAnimBgImage_Cosmic[]; extern const u32 gBattleAnimBgImage_InAir[]; extern const u32 gBattleAnimBgImage_Aurora[]; extern const u32 gBattleAnimBgImage_Fissure[]; +extern const u32 gBattleAnimBgImage_Surf[]; extern const u32 gBattleAnimBgPalette_Dark[]; extern const u32 gBattleAnimBgPalette_Ghost[]; extern const u32 gBattleAnimBgPalette_Psychic[]; @@ -4252,11 +4253,13 @@ extern const u32 gBattleAnimBgPalette_Guillotine[]; extern const u32 gBattleAnimBgPalette_Ice[]; extern const u32 gBattleAnimBgPalette_Cosmic[]; extern const u32 gBattleAnimBgPalette_InAir[]; +extern const u32 gBattleAnimBgPalette_MuddyWater[]; extern const u32 gBattleAnimBgPalette_Sky[]; extern const u32 gBattleAnimBgPalette_Aurora[]; extern const u32 gBattleAnimBgPalette_Fissure[]; extern const u32 gBattleAnimBgPalette_Bug[]; extern const u32 gBattleAnimBgPalette_Solarbeam[]; +extern const u32 gBattleAnimBgPalette_Surf[]; extern const u32 gBattleAnimBgTilemap_Dark[]; extern const u32 gBattleAnimBgTilemap_Ghost[]; extern const u32 gBattleAnimBgTilemap_Psychic[]; @@ -4276,6 +4279,9 @@ extern const u32 gBattleAnimBgTilemap_Cosmic[]; extern const u32 gBattleAnimBgTilemap_InAir[]; extern const u32 gBattleAnimBgTilemap_Aurora[]; extern const u32 gBattleAnimBgTilemap_Fissure[]; +extern const u32 gBattleAnimBgTilemap_SurfOpponent[]; +extern const u32 gBattleAnimBgTilemap_SurfPlayer[]; +extern const u32 gBattleAnimBgTilemap_SurfContest[]; // dark extern const u32 gMetalShineGfx[]; diff --git a/include/librfu.h b/include/librfu.h index 3c9d776f1..88e77acbd 100644 --- a/include/librfu.h +++ b/include/librfu.h @@ -90,13 +90,8 @@ #define RFU_MBOOT_DOWNLOADER_SERIAL_NO 0x0000 // The game serial number of the multi-boot downloader (programs that boot without a Game Pak) -#if LIBRFU_VERSION >= 1028 -#define RFU_API_BUFF_SIZE_RAM 0x0e8c // Necessary size for buffer specified by rfu_initializeAPI (fast communication version that operates the library SIO interrupt routines in RAM) -#define RFU_API_BUFF_SIZE_ROM 0x052c // Necessary size for buffer specified by rfu_initializeAPI (fast communication version that operates the library SIO interrupt routines in ROM) -#else #define RFU_API_BUFF_SIZE_RAM 0x0e64 // Necessary size for buffer specified by rfu_initializeAPI (fast communication version that operates the library SIO interrupt routines in RAM) #define RFU_API_BUFF_SIZE_ROM 0x0504 // Necessary size for buffer specified by rfu_initializeAPI (fast communication version that operates the library SIO interrupt routines in ROM) -#endif #define RFU_CHILD_MAX 4 // Maximum number of slaves that can be connected to one parent device @@ -376,8 +371,7 @@ struct NIComm u16 state; // Communication state of slot u16 failCounter; // Count of failed transmissions/receptions (Count is increased when transmission/reception of data does not succeed within 1PF=16.7 ms) const u8 *now_p[WINDOW_COUNT]; // Address of current send/receive (The data is divided into WINDOW_COUNT blocks and sent in payloadSize units.) - // remainSize is u32 in SDK. This is a hack to match ASM - s32 remainSize; // Size of remaining communication data + u32 remainSize; // Size of remaining communication data u16 errorCode; // Error code u8 bmSlot; // Expresses the current communication slot in bits // (When sending from the Master, because multiple slaves can be specified with bmSlot, communications are terminated based on the failCounter for each child device) diff --git a/ld_script.txt b/ld_script.txt index 8951d15b2..f6f8730db 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -162,7 +162,7 @@ SECTIONS { src/item_use.o(.text); src/battle_anim_effects_1.o(.text); src/battle_anim_effects_2.o(.text); - asm/water.o(.text); + src/water.o(.text); src/fire.o(.text); src/electric.o(.text); src/ice.o(.text); @@ -483,7 +483,7 @@ SECTIONS { src/item_use.o(.rodata); src/battle_anim_effects_1.o(.rodata); src/battle_anim_effects_2.o(.rodata); - data/battle_anim_effects_misc.o(.rodata); + src/water.o(.rodata); src/fire.o(.rodata); src/electric.o(.rodata); src/ice.o(.rodata); diff --git a/src/battle_anim_effects_1.c b/src/battle_anim_effects_1.c index d1f75ff8f..4fd58b19e 100644 --- a/src/battle_anim_effects_1.c +++ b/src/battle_anim_effects_1.c @@ -2767,7 +2767,7 @@ static void AnimConstrictBindingStep2(struct Sprite* sprite) } } -void sub_80A2F0C(u8 taskId) +void AnimTask_ShrinkTargetCopy(u8 taskId) { u8 spriteId = GetAnimBattlerSpriteId(ANIM_TARGET); @@ -3605,7 +3605,7 @@ static void AnimFlyingParticleStep(struct Sprite* sprite) DestroySpriteAndMatrix(sprite); } -void sub_80A41C4(u8 taskId) +void AnimTask_CycleMagicalLeafPal(u8 taskId) { struct Task* task = &gTasks[taskId]; diff --git a/src/battle_anim_effects_2.c b/src/battle_anim_effects_2.c index 94423bab9..563e3ffc2 100644 --- a/src/battle_anim_effects_2.c +++ b/src/battle_anim_effects_2.c @@ -32,7 +32,7 @@ static void AnimTask_SplashStep(u8); static void AnimTask_GrowAndShrinkStep(u8); static void ThrashMoveMonStep(u8); static void ThrashMoveMon(u8); -static void AnimTask_SketchDrawMon(u8); +static void AnimTask_SketchDrawMon_Step(u8); static void AnimPencil_Step(struct Sprite *); static void AnimSoftBoiledEgg_Step1(struct Sprite *); static void AnimSoftBoiledEgg_Step2(struct Sprite *); @@ -115,7 +115,7 @@ static const struct SpriteTemplate sUnknown_83E3B30 = .oam = &gOamData_AffineNormal_ObjBlend_64x64, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_83E7910, + .affineAnims = gAffineAnims_Bite, .callback = sub_80A7020, }; @@ -2347,7 +2347,7 @@ static void ThrashMoveMon(u8 taskId) } } -void sub_80A8874(u8 taskId) +void AnimTask_SketchDrawMon(u8 taskId) { struct Task* task = &gTasks[taskId]; struct ScanlineEffectParams params; @@ -2385,10 +2385,10 @@ void sub_80A8874(u8 taskId) params.initState = 1; params.unused9 = 0; ScanlineEffect_SetParams(params); - task->func = AnimTask_SketchDrawMon; + task->func = AnimTask_SketchDrawMon_Step; } -static void AnimTask_SketchDrawMon(u8 taskId) +static void AnimTask_SketchDrawMon_Step(u8 taskId) { struct Task* task = &gTasks[taskId]; @@ -2983,7 +2983,7 @@ void AnimSpeedDust(struct Sprite *sprite) } } -void sub_80A96B4(u8 taskId) +void AnimTask_LoadMusicNotesPals(u8 taskId) { int i; u8 paletteNums[3]; @@ -3001,7 +3001,7 @@ void sub_80A96B4(u8 taskId) DestroyAnimVisualTask(taskId); } -void sub_80A9760(u8 taskId) +void AnimTask_FreeMusicNotesPals(u8 taskId) { int i; @@ -3101,7 +3101,7 @@ static void FakeOutStep2(u8 taskId) } } -void sub_80A9A20(u8 taskId) +void AnimTask_StretchTargetUp(u8 taskId) { u8 spriteId = GetAnimBattlerSpriteId(ANIM_TARGET); @@ -3122,7 +3122,7 @@ void sub_80A9A20(u8 taskId) } } -void sub_80A9AB0(u8 taskId) +void AnimTask_StretchAttackerUp(u8 taskId) { u8 spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER); diff --git a/src/battle_anim_effects_3.c b/src/battle_anim_effects_3.c index e9bfb2618..c60f51c31 100644 --- a/src/battle_anim_effects_3.c +++ b/src/battle_anim_effects_3.c @@ -3571,7 +3571,7 @@ static void sub_80E1AD8(u8 taskId) } } -void sub_80E1C48(u8 taskId) +void AnimTask_SlideMonForFocusBand(u8 taskId) { gTasks[taskId].data[15] = gBattlerSpriteIds[gBattleAnimAttacker]; gTasks[taskId].data[14] = gBattleAnimArgs[0]; @@ -3751,7 +3751,7 @@ static void AnimTask_FacadeColorBlendStep(u8 taskId) } } -void sub_80E2084(u8 taskId) +void AnimTask_StatusClearedEffect(u8 taskId) { sub_80BBA20(taskId, 0, 0x1A0, gBattleAnimAttacker, gBattleAnimArgs[0], 10, 2, 30, gCureBubblesGfx, gCureBubblesTilemap, gCureBubblesPal); } diff --git a/src/battle_anim_mon_movement.c b/src/battle_anim_mon_movement.c index 8ed996993..5045f26ed 100644 --- a/src/battle_anim_mon_movement.c +++ b/src/battle_anim_mon_movement.c @@ -73,7 +73,7 @@ const struct SpriteTemplate gSlideMonToOffsetSpriteTemplate = .callback = SlideMonToOffset, }; -const struct SpriteTemplate gUnknown_83D4EB4 = +const struct SpriteTemplate gSlideMonToOffsetAndBackSpriteTemplate = { .tileTag = 0, .paletteTag = 0, @@ -620,7 +620,7 @@ static void AnimTask_WindUpLungePart2(u8 taskId) } } -void sub_80995FC(u8 taskId) +void AnimTask_SlideOffScreen(u8 taskId) { u8 spriteId; @@ -772,7 +772,7 @@ static void AnimTask_ScaleMonAndRestoreStep(u8 taskId) } } -void sub_8099980(u8 taskId) +void AnimTask_RotateMonSpriteToSide(u8 taskId) { u8 spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[2]); PrepareBattlerSpriteForRotScale(spriteId, 0); @@ -805,7 +805,7 @@ void sub_8099980(u8 taskId) gTasks[taskId].func = sub_8099B54; } -void sub_8099A78(u8 taskId) +void AnimTask_RotateMonToSideAndRestore(u8 taskId) { u8 spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[2]); PrepareBattlerSpriteForRotScale(spriteId, 0); @@ -866,7 +866,7 @@ static void sub_8099B54(u8 taskId) } } -void sub_8099BD4(u8 taskId) +void AnimTask_ShakeTargetBasedOnMovePowerOrDmg(u8 taskId) { if (gBattleAnimArgs[0] == 0) { diff --git a/src/battle_anim_mons.c b/src/battle_anim_mons.c index 741fdf312..036e1b052 100644 --- a/src/battle_anim_mons.c +++ b/src/battle_anim_mons.c @@ -1466,7 +1466,7 @@ void obj_delete_but_dont_free_vram(struct Sprite *sprite) DestroySprite(sprite); } -void sub_8076048(u8 taskId) +void AnimTask_AlphaFadeIn(u8 taskId) { s16 v1 = 0, v2 = 0; @@ -1584,7 +1584,7 @@ static void AnimTask_BlendMonInAndOutStep(u8 taskId) } } -void sub_8076288(u8 taskId) +void AnimTask_BlendPalInAndOutByTag(u8 taskId) { u8 palette = IndexOfSpritePaletteTag(gBattleAnimArgs[0]); @@ -2117,7 +2117,7 @@ void sub_8076FD0(struct Sprite *sprite) StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); } -void sub_8077030(u8 taskId) +void AnimTask_AttackerPunchWithTrace(u8 taskId) { u16 src; u16 dest; @@ -2225,7 +2225,7 @@ static void sub_80772F4(struct Sprite *sprite) DestroyAnimSprite(sprite); } -void sub_8077350(struct Sprite *sprite) +void AnimWeatherBallDown(struct Sprite *sprite) { s32 x; diff --git a/src/battle_anim_sound_tasks.c b/src/battle_anim_sound_tasks.c index a820667fb..ee99b75a6 100644 --- a/src/battle_anim_sound_tasks.c +++ b/src/battle_anim_sound_tasks.c @@ -66,7 +66,7 @@ static void sub_80DCEE4(u8 taskId) } } -void mas_80DCF38(u8 taskId) +void SoundTask_LoopSEAdjustPanning(u8 taskId) { u16 songId = gBattleAnimArgs[0]; s8 targetPan = gBattleAnimArgs[2]; @@ -116,7 +116,7 @@ static void sub_80DCFE8(u8 taskId) } } -void sub_80DD06C(u8 taskId) +void SoundTask_PlayCryHighPitch(u8 taskId) { u16 species = SPECIES_NONE; u8 battlerId; @@ -147,7 +147,7 @@ void sub_80DD06C(u8 taskId) DestroyAnimVisualTask(taskId); } -void sub_80DD148(u8 taskId) +void SoundTask_PlayDoubleCry(u8 taskId) { u16 species = SPECIES_NONE; u8 battlerId; @@ -214,7 +214,7 @@ static void sub_80DD270(u8 taskId) } } -void sub_80DD2F4(u8 taskId) +void SoundTask_WaitForCry(u8 taskId) { if (gTasks[taskId].data[9] < 2) ++gTasks[taskId].data[9]; @@ -259,7 +259,7 @@ static void sub_80DD390(u8 taskId) } } -void sub_80DD3DC(u8 taskId) +void SoundTask_PlaySE1WithPanning(u8 taskId) { u16 songId = gBattleAnimArgs[0]; s8 pan = BattleAnimAdjustPanning(gBattleAnimArgs[1]); @@ -268,7 +268,7 @@ void sub_80DD3DC(u8 taskId) DestroyAnimVisualTask(taskId); } -void sub_80DD410(u8 taskId) +void SoundTask_PlaySE2WithPanning(u8 taskId) { u16 songId = gBattleAnimArgs[0]; s8 pan = BattleAnimAdjustPanning(gBattleAnimArgs[1]); @@ -277,7 +277,7 @@ void sub_80DD410(u8 taskId) DestroyAnimVisualTask(taskId); } -void sub_80DD444(u8 taskId) +void SoundTask_AdjustPanningVar(u8 taskId) { s8 targetPan = gBattleAnimArgs[1]; s8 panIncrement = gBattleAnimArgs[2]; diff --git a/src/battle_anim_special.c b/src/battle_anim_special.c index c753f5dc4..677090a65 100644 --- a/src/battle_anim_special.c +++ b/src/battle_anim_special.c @@ -397,7 +397,7 @@ static const union AnimCmd *const sSpriteAnimTable_840C20C[] = sUnknown_840C204, }; -const struct SpriteTemplate gUnknown_840C210 = +const struct SpriteTemplate gSafariRockTemplate = { .tileTag = ANIM_TAG_ROCKS, .paletteTag = ANIM_TAG_ROCKS, @@ -534,7 +534,7 @@ void sub_80EEFC8(u8 *paletteId1, u8 *paletteId2, u8 battler) gSprites[spriteId2].oam.paletteNum = *paletteId2; } -void sub_80EF0B4(u8 taskId) +void AnimTask_LoadHealthboxPalsForLevelUp(u8 taskId) { u8 paletteId1, paletteId2; @@ -560,13 +560,13 @@ void sub_80EF0E0(u8 battler) gSprites[spriteId2].oam.paletteNum = paletteId2; } -void sub_80EF180(u8 taskId) +void AnimTask_FreeHealthboxPalsForLevelUp(u8 taskId) { sub_80EF0E0(gBattleAnimAttacker); DestroyAnimVisualTask(taskId); } -void sub_80EF1A0(u8 taskId) +void AnimTask_FlashHealthboxOnLevelUp(u8 taskId) { gTasks[taskId].data[10] = gBattleAnimArgs[0]; gTasks[taskId].data[11] = gBattleAnimArgs[1]; @@ -610,7 +610,7 @@ static void sub_80EF1CC(u8 taskId) } } -void sub_80EF298(u8 taskId) +void AnimTask_SwitchOutShrinkMon(u8 taskId) { u8 spriteId; @@ -637,7 +637,7 @@ void sub_80EF298(u8 taskId) } } -void sub_80EF344(u8 taskId) +void AnimTask_SwitchOutBallEffect(u8 taskId) { u8 spriteId; u16 ball; @@ -672,7 +672,7 @@ void sub_80EF344(u8 taskId) } } -void sub_80EF490(u8 taskId) +void AnimTask_LoadBallGfx(u8 taskId) { u8 ballId = ItemIdToBallId(gLastUsedItem); @@ -680,7 +680,7 @@ void sub_80EF490(u8 taskId) DestroyAnimVisualTask(taskId); } -void sub_80EF4B8(u8 taskId) +void AnimTask_FreeBallGfx(u8 taskId) { u8 ballId = ItemIdToBallId(gLastUsedItem); @@ -738,7 +738,7 @@ u8 ItemIdToBallId(u16 ballItem) } } -void sub_80EF5AC(u8 taskId) +void AnimTask_ThrowBall(u8 taskId) { u8 ballId; u8 spriteId; @@ -762,7 +762,7 @@ static void sub_80EF698(u8 taskId) DestroyAnimVisualTask(taskId); } -void sub_80EF6D4(u8 taskId) +void AnimTask_ThrowBallSpecial(u8 taskId) { int x, y; u8 ballId; @@ -1942,7 +1942,7 @@ static void sub_80F13C0(u8 taskId) } } -void sub_80F1420(u8 taskId) +void AnimTask_SwapMonSpriteToFromSubstitute(u8 taskId) { u8 spriteId; u32 x; @@ -2000,7 +2000,7 @@ void sub_80F1420(u8 taskId) } } -void sub_80F15C8(u8 taskId) +void AnimTask_SubstituteFadeToInvisible(u8 taskId) { u8 spriteId; diff --git a/src/battle_anim_status_effects.c b/src/battle_anim_status_effects.c index 4eb475a5c..23dc0461e 100644 --- a/src/battle_anim_status_effects.c +++ b/src/battle_anim_status_effects.c @@ -68,7 +68,7 @@ static const union AnimCmd *const sSpriteAnimTable_83BF430[] = sUnknown_83BF428 }; -const struct SpriteTemplate gSpriteTemplate_83BF434 = +const struct SpriteTemplate gWeatherBallUpSpriteTemplate = { .tileTag = ANIM_TAG_WEATHER_BALL, .paletteTag = ANIM_TAG_WEATHER_BALL, @@ -79,7 +79,7 @@ const struct SpriteTemplate gSpriteTemplate_83BF434 = .callback = sub_807729C, }; -const struct SpriteTemplate gSpriteTemplate_83BF44C = +const struct SpriteTemplate gWeatherBallNormalDownSpriteTemplate = { .tileTag = ANIM_TAG_WEATHER_BALL, .paletteTag = ANIM_TAG_WEATHER_BALL, @@ -87,7 +87,7 @@ const struct SpriteTemplate gSpriteTemplate_83BF44C = .anims = sSpriteAnimTable_83BF430, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8077350, + .callback = AnimWeatherBallDown, }; static const union AnimCmd sUnknown_83BF464[] = @@ -343,7 +343,7 @@ static void sub_8078380(struct Sprite *sprite) } } -void sub_80783FC(u8 taskId) +void AnimTask_FrozenIceCube(u8 taskId) { s16 x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) - 32; s16 y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) - 36; diff --git a/src/battle_anim_utility_funcs.c b/src/battle_anim_utility_funcs.c index a1897b94a..489198ed4 100644 --- a/src/battle_anim_utility_funcs.c +++ b/src/battle_anim_utility_funcs.c @@ -577,7 +577,7 @@ static void sub_80BB4B8(u8 taskId) } } -void sub_80BB660(u8 taskId) +void AnimTask_Flash(u8 taskId) { u32 selectedPalettes = SelectBattlerSpritePalettes(1, 1, 1, 1); @@ -646,7 +646,7 @@ static void sub_80BB790(u32 selectedPalettes, u16 color) gPlttBufferFaded[curOffset] = color; } -void sub_80BB7DC(u8 taskId) +void AnimTask_BlendNonAttackerPalettes(u8 taskId) { s32 j; u32 battler, selectedPalettes = 0; @@ -659,7 +659,7 @@ void sub_80BB7DC(u8 taskId) StartBlendAnimSpriteColor(taskId, selectedPalettes); } -void sub_80BB82C(u8 taskId) +void AnimTask_StartSlidingBg(u8 taskId) { u8 newTaskId; @@ -712,7 +712,7 @@ void AnimTask_GetTargetIsAttackerPartner(u8 taskId) DestroyAnimVisualTask(taskId); } -void sub_80BB9B0(u8 taskId) +void AnimTask_SetAllNonAttackersInvisiblity(u8 taskId) { u16 battler; @@ -837,19 +837,19 @@ void AnimTask_GetBattleTerrain(u8 taskId) DestroyAnimVisualTask(taskId); } -void sub_80BBE10(u8 taskId) +void AnimTask_AllocBackupPalBuffer(u8 taskId) { gMonSpritesGfxPtr->field_17C = AllocZeroed(0x2000); DestroyAnimVisualTask(taskId); } -void sub_80BBE3C(u8 taskId) +void AnimTask_FreeBackupPalBuffer(u8 taskId) { FREE_AND_SET_NULL(gMonSpritesGfxPtr->field_17C); DestroyAnimVisualTask(taskId); } -void sub_80BBE6C(u8 taskId) +void AnimTask_CopyPalUnfadedToBackup(u8 taskId) { u32 selectedPalettes; s32 paletteIndex = 0; @@ -867,7 +867,7 @@ void sub_80BBE6C(u8 taskId) DestroyAnimVisualTask(taskId); } -void sub_80BBF08(u8 taskId) +void AnimTask_CopyPalUnfadedFromBackup(u8 taskId) { u32 selectedPalettes; s32 paletteIndex = 0; @@ -885,7 +885,7 @@ void sub_80BBF08(u8 taskId) DestroyAnimVisualTask(taskId); } -void sub_80BBFA4(u8 taskId) +void AnimTask_CopyPalFadedToUnfaded(u8 taskId) { u32 selectedPalettes; s32 paletteIndex = 0; @@ -912,7 +912,7 @@ void AnimTask_IsContest(u8 taskId) DestroyAnimVisualTask(taskId); } -void sub_80BC060(u8 taskId) +void AnimTask_SetAnimAttackerAndTargetForEffectTgt(u8 taskId) { gBattleAnimAttacker = gBattlerTarget; gBattleAnimTarget = gEffectBattler; @@ -928,20 +928,20 @@ void AnimTask_IsTargetSameSide(u8 taskId) DestroyAnimVisualTask(taskId); } -void sub_80BC0DC(u8 taskId) +void AnimTask_SetAnimTargetToBattlerTarget(u8 taskId) { gBattleAnimTarget = gBattlerTarget; DestroyAnimVisualTask(taskId); } -void sub_80BC0FC(u8 taskId) +void AnimTask_SetAnimAttackerAndTargetForEffectAtk(u8 taskId) { gBattleAnimAttacker = gBattlerAttacker; gBattleAnimTarget = gEffectBattler; DestroyAnimVisualTask(taskId); } -void sub_80BC12C(u8 taskId) +void AnimTask_SetAttackerInvisibleWaitForSignal(u8 taskId) { if (IsContest()) { @@ -1,3 +1,4 @@ +#include <limits.h> #include "global.h" #include "bg.h" #include "dma3.h" @@ -1136,20 +1137,19 @@ void CopyTileMapEntry(const u16 *src, u16 *dest, s32 palette1, s32 tileOffset, s { u16 var; - if (palette1 == 16) - goto CASE_16; switch (palette1) { - case 0 ... 16: + case 0 ... 15: var = ((*src + tileOffset) & 0xFFF) + ((palette1 + palette2) << 12); break; - CASE_16: + case 16: var = *dest; var &= 0xFC00; var += palette2 << 12; var |= (*src + tileOffset) & 0x3FF; break; default: + case 17 ... INT_MAX: var = *src + tileOffset + (palette2 << 12); break; } @@ -3,90 +3,90 @@ #include "gpu_regs.h" #include "trig.h" -static void sub_80B3FAC(struct Sprite *sprite); -static void sub_80B407C(struct Sprite *sprite); +static void AnimMegahornHorn(struct Sprite *sprite); +static void AnimLeechLifeNeedle(struct Sprite *sprite); static void AnimTranslateWebThread(struct Sprite *sprite); -static void sub_80B41F8(struct Sprite *sprite); -static void sub_80B42C0(struct Sprite *sprite); +static void AnimStringWrap(struct Sprite *sprite); +static void AnimSpiderWeb(struct Sprite *sprite); static void AnimTranslateStinger(struct Sprite *sprite); static void AnimMissileArc(struct Sprite *sprite); -static void sub_80B45D8(struct Sprite *sprite); +static void AnimTailGlowOrb(struct Sprite *sprite); static void sub_80B41C0(struct Sprite *sprite); static void sub_80B4274(struct Sprite *sprite); static void sub_80B42E8(struct Sprite *sprite); static void sub_80B4344(struct Sprite *sprite); static void AnimMissileArcStep(struct Sprite *sprite); -static const union AffineAnimCmd gUnknown_83E71E8[] = +static const union AffineAnimCmd sAffineAnim_MegahornHorn_0[] = { AFFINEANIMCMD_FRAME(0x100, 0x100, 30, 0), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd gUnknown_83E71F8[] = +static const union AffineAnimCmd sAffineAnim_MegahornHorn_1[] = { AFFINEANIMCMD_FRAME(0x100, 0x100, -99, 0), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd gUnknown_83E7208[] = +static const union AffineAnimCmd sAffineAnim_MegahornHorn_2[] = { AFFINEANIMCMD_FRAME(0x100, 0x100, 94, 0), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd *const gUnknown_83E7218[] = +static const union AffineAnimCmd *const sAffineAnims_MegahornHorn[] = { - gUnknown_83E71E8, - gUnknown_83E71F8, - gUnknown_83E7208, + sAffineAnim_MegahornHorn_0, + sAffineAnim_MegahornHorn_1, + sAffineAnim_MegahornHorn_2, }; -const struct SpriteTemplate gUnknown_83E7224 = +const struct SpriteTemplate gMegahornHornSpriteTemplate = { .tileTag = ANIM_TAG_HORN_HIT_2, .paletteTag = ANIM_TAG_HORN_HIT_2, .oam = &gOamData_AffineDouble_ObjNormal_32x16, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_83E7218, - .callback = sub_80B3FAC, + .affineAnims = sAffineAnims_MegahornHorn, + .callback = AnimMegahornHorn, }; -static const union AffineAnimCmd gUnknown_83E723C[] = +static const union AffineAnimCmd sAffineAnim_LeechLifeNeedle_0[] = { AFFINEANIMCMD_FRAME(0x0, 0x0, -33, 1), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd gUnknown_83E724C[] = +static const union AffineAnimCmd sAffineAnim_LeechLifeNeedle_1[] = { AFFINEANIMCMD_FRAME(0x0, 0x0, 96, 1), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd gUnknown_83E725C[] = +static const union AffineAnimCmd sAffineAnim_LeechLifeNeedle_2[] = { AFFINEANIMCMD_FRAME(0x0, 0x0, -96, 1), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd *const gUnknown_83E726C[] = +static const union AffineAnimCmd *const sAffineAnims_LeechLifeNeedle[] = { - gUnknown_83E723C, - gUnknown_83E724C, - gUnknown_83E725C, + sAffineAnim_LeechLifeNeedle_0, + sAffineAnim_LeechLifeNeedle_1, + sAffineAnim_LeechLifeNeedle_2, }; -const struct SpriteTemplate gUnknown_83E7278 = +const struct SpriteTemplate gLeechLifeNeedleSpriteTemplate = { .tileTag = ANIM_TAG_NEEDLE, .paletteTag = ANIM_TAG_NEEDLE, .oam = &gOamData_AffineNormal_ObjNormal_16x16, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_83E726C, - .callback = sub_80B407C, + .affineAnims = sAffineAnims_LeechLifeNeedle, + .callback = AnimLeechLifeNeedle, }; const struct SpriteTemplate gWebThreadSpriteTemplate = @@ -100,7 +100,7 @@ const struct SpriteTemplate gWebThreadSpriteTemplate = .callback = AnimTranslateWebThread, }; -const struct SpriteTemplate gUnknown_83E72A8 = +const struct SpriteTemplate gStringWrapSpriteTemplate = { .tileTag = ANIM_TAG_STRING, .paletteTag = ANIM_TAG_STRING, @@ -108,19 +108,19 @@ const struct SpriteTemplate gUnknown_83E72A8 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B41F8, + .callback = AnimStringWrap, }; -static const union AffineAnimCmd gUnknown_83E72C0[] = +static const union AffineAnimCmd sAffineAnim_SpiderWeb[] = { AFFINEANIMCMD_FRAME(0x10, 0x10, 0, 0), AFFINEANIMCMD_FRAME(0x6, 0x6, 0, 1), AFFINEANIMCMD_JUMP(1), }; -static const union AffineAnimCmd *const gUnknown_83E72D8[] = +static const union AffineAnimCmd *const sAffineAnims_SpiderWeb[] = { - gUnknown_83E72C0, + sAffineAnim_SpiderWeb, }; const struct SpriteTemplate gSpiderWebSpriteTemplate = @@ -130,8 +130,8 @@ const struct SpriteTemplate gSpiderWebSpriteTemplate = .oam = &gOamData_AffineDouble_ObjBlend_64x64, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_83E72D8, - .callback = sub_80B42C0, + .affineAnims = sAffineAnims_SpiderWeb, + .callback = AnimSpiderWeb, }; const struct SpriteTemplate gLinearStingerSpriteTemplate = @@ -167,7 +167,7 @@ const struct SpriteTemplate gIcicleSpearSpriteTemplate = .callback = AnimMissileArc, }; -static const union AffineAnimCmd gUnknown_83E733C[] = +static const union AffineAnimCmd sAffineAnim_TailGlowOrb[] = { AFFINEANIMCMD_FRAME(0x10, 0x10, 0, 0), AFFINEANIMCMD_FRAME(0x8, 0x8, 0, 18), @@ -178,23 +178,23 @@ static const union AffineAnimCmd gUnknown_83E733C[] = AFFINEANIMCMD_END, }; -static const union AffineAnimCmd *const gUnknown_83E7374[] = +static const union AffineAnimCmd *const sAffineAnims_TailGlowOrb[] = { - gUnknown_83E733C, + sAffineAnim_TailGlowOrb, }; -const struct SpriteTemplate gUnknown_83E7378 = +const struct SpriteTemplate gTailGlowOrbSpriteTemplate = { .tileTag = ANIM_TAG_CIRCLE_OF_LIGHT, .paletteTag = ANIM_TAG_CIRCLE_OF_LIGHT, .oam = &gOamData_AffineNormal_ObjBlend_64x64, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_83E7374, - .callback = sub_80B45D8, + .affineAnims = sAffineAnims_TailGlowOrb, + .callback = AnimTailGlowOrb, }; -static void sub_80B3FAC(struct Sprite *sprite) +static void AnimMegahornHorn(struct Sprite *sprite) { if (IsContest()) { @@ -219,7 +219,7 @@ static void sub_80B3FAC(struct Sprite *sprite) StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); } -static void sub_80B407C(struct Sprite *sprite) +static void AnimLeechLifeNeedle(struct Sprite *sprite) { if (IsContest()) { @@ -280,7 +280,7 @@ static void sub_80B41C0(struct Sprite *sprite) sprite->data[6] = (sprite->data[6] + 13) & 0xFF; } -static void sub_80B41F8(struct Sprite *sprite) +static void AnimStringWrap(struct Sprite *sprite) { SetAverageBattlerPositions(gBattleAnimTarget, 0, &sprite->pos1.x, &sprite->pos1.y); if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) @@ -306,7 +306,7 @@ static void sub_80B4274(struct Sprite *sprite) } } -static void sub_80B42C0(struct Sprite *sprite) +static void AnimSpiderWeb(struct Sprite *sprite) { SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND); SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(16, 0)); @@ -445,7 +445,7 @@ static void AnimMissileArcStep(struct Sprite *sprite) } } -static void sub_80B45D8(struct Sprite *sprite) +static void AnimTailGlowOrb(struct Sprite *sprite) { if (gBattleAnimArgs[0] == 0) { diff --git a/src/dark.c b/src/dark.c index d2e0996bd..86523f2f1 100644 --- a/src/dark.c +++ b/src/dark.c @@ -7,11 +7,11 @@ #include "util.h" static void sub_80B7ACC(struct Sprite *sprite); -static void sub_80B7BD4(struct Sprite *sprite); -static void sub_80B7C88(struct Sprite *sprite); -static void sub_80B86B0(struct Sprite *sprite); -static void sub_80B7954(u8 taskId); -static void sub_80B7A14(u8 taskId); +static void AnimBite(struct Sprite *sprite); +static void AnimTearDrop(struct Sprite *sprite); +static void AnimClawSlash(struct Sprite *sprite); +static void AnimTask_AttackerFadeToInvisible_Step(u8 taskId); +static void AnimTask_AttackerFadeFromInvisible_Step(u8 taskId); static void sub_80B7B48(struct Sprite *sprite); static void sub_80B7C10(struct Sprite *sprite); static void sub_80B7C50(struct Sprite *sprite); @@ -33,120 +33,120 @@ const struct SpriteTemplate gUnknown_83E7878 = .callback = sub_80B7ACC, }; -static const union AffineAnimCmd gUnknown_83E7890[] = +static const union AffineAnimCmd sAffineAnim_Bite_0[] = { AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 1), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd gUnknown_83E78A0[] = +static const union AffineAnimCmd sAffineAnim_Bite_1[] = { AFFINEANIMCMD_FRAME(0x0, 0x0, 32, 1), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd gUnknown_83E78B0[] = +static const union AffineAnimCmd sAffineAnim_Bite_2[] = { AFFINEANIMCMD_FRAME(0x0, 0x0, 64, 1), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd gUnknown_83E78C0[] = +static const union AffineAnimCmd sAffineAnim_Bite_3[] = { AFFINEANIMCMD_FRAME(0x0, 0x0, 96, 1), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd gUnknown_83E78D0[] = +static const union AffineAnimCmd sAffineAnim_Bite_4[] = { AFFINEANIMCMD_FRAME(0x0, 0x0, -128, 1), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd gUnknown_83E78E0[] = +static const union AffineAnimCmd sAffineAnim_Bite_5[] = { AFFINEANIMCMD_FRAME(0x0, 0x0, -96, 1), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd gUnknown_83E78F0[] = +static const union AffineAnimCmd sAffineAnim_Bite_6[] = { AFFINEANIMCMD_FRAME(0x0, 0x0, -64, 1), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd gUnknown_83E7900[] = +static const union AffineAnimCmd sAffineAnim_Bite_7[] = { AFFINEANIMCMD_FRAME(0x0, 0x0, -32, 1), AFFINEANIMCMD_END, }; -const union AffineAnimCmd *const gUnknown_83E7910[] = +const union AffineAnimCmd *const gAffineAnims_Bite[] = { - gUnknown_83E7890, - gUnknown_83E78A0, - gUnknown_83E78B0, - gUnknown_83E78C0, - gUnknown_83E78D0, - gUnknown_83E78E0, - gUnknown_83E78F0, - gUnknown_83E7900, + sAffineAnim_Bite_0, + sAffineAnim_Bite_1, + sAffineAnim_Bite_2, + sAffineAnim_Bite_3, + sAffineAnim_Bite_4, + sAffineAnim_Bite_5, + sAffineAnim_Bite_6, + sAffineAnim_Bite_7, }; -const struct SpriteTemplate gUnknown_83E7930 = +const struct SpriteTemplate gSharpTeethSpriteTemplate = { .tileTag = ANIM_TAG_SHARP_TEETH, .paletteTag = ANIM_TAG_SHARP_TEETH, .oam = &gOamData_AffineNormal_ObjBlend_64x64, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_83E7910, - .callback = sub_80B7BD4, + .affineAnims = gAffineAnims_Bite, + .callback = AnimBite, }; -const struct SpriteTemplate gUnknown_83E7948 = +const struct SpriteTemplate gClampJawSpriteTemplate = { .tileTag = ANIM_TAG_CLAMP, .paletteTag = ANIM_TAG_CLAMP, .oam = &gOamData_AffineNormal_ObjBlend_64x64, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_83E7910, - .callback = sub_80B7BD4, + .affineAnims = gAffineAnims_Bite, + .callback = AnimBite, }; -static const union AffineAnimCmd gUnknown_83E7960[] = +static const union AffineAnimCmd sAffineAnim_TearDrop_0[] = { AFFINEANIMCMD_FRAME(0xC0, 0xC0, 80, 0), AFFINEANIMCMD_FRAME(0x0, 0x0, -2, 8), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd gUnknown_83E7978[] = +static const union AffineAnimCmd sAffineAnim_TearDrop_1[] = { AFFINEANIMCMD_FRAME(0xC0, 0xC0, -80, 0), AFFINEANIMCMD_FRAME(0x0, 0x0, 2, 8), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd *const gUnknown_83E7990[] = +static const union AffineAnimCmd *const sAffineAnims_TearDrop[] = { - gUnknown_83E7960, - gUnknown_83E7978, + sAffineAnim_TearDrop_0, + sAffineAnim_TearDrop_1, }; -const struct SpriteTemplate gUnknown_83E7998 = +const struct SpriteTemplate gTearDropSpriteTemplate = { .tileTag = ANIM_TAG_SMALL_BUBBLES, .paletteTag = ANIM_TAG_SMALL_BUBBLES, .oam = &gOamData_AffineNormal_ObjNormal_16x16, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_83E7990, - .callback = sub_80B7C88, + .affineAnims = sAffineAnims_TearDrop, + .callback = AnimTearDrop, }; -static const union AnimCmd gUnknown_83E79B0[] = +static const union AnimCmd sAnim_ClawSlash_0[] = { ANIMCMD_FRAME(0, 4), ANIMCMD_FRAME(16, 4), @@ -156,7 +156,7 @@ static const union AnimCmd gUnknown_83E79B0[] = ANIMCMD_END, }; -static const union AnimCmd gUnknown_83E79C8[] = +static const union AnimCmd sAnim_ClawSlash_1[] = { ANIMCMD_FRAME(0, 4, .hFlip = TRUE), ANIMCMD_FRAME(16, 4, .hFlip = TRUE), @@ -166,24 +166,24 @@ static const union AnimCmd gUnknown_83E79C8[] = ANIMCMD_END, }; -static const union AnimCmd *const gUnknown_83E79E0[] = +static const union AnimCmd *const sAnims_ClawSlash[] = { - gUnknown_83E79B0, - gUnknown_83E79C8, + sAnim_ClawSlash_0, + sAnim_ClawSlash_1, }; -const struct SpriteTemplate gUnknown_83E79E8 = +const struct SpriteTemplate gClawSlashSpriteTemplate = { .tileTag = ANIM_TAG_CLAW_SLASH, .paletteTag = ANIM_TAG_CLAW_SLASH, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_83E79E0, + .anims = sAnims_ClawSlash, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B86B0, + .callback = AnimClawSlash, }; -void sub_80B78E0(u8 taskId) +void AnimTask_AttackerFadeToInvisible(u8 taskId) { s32 battler; @@ -195,10 +195,10 @@ void sub_80B78E0(u8 taskId) SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND | BLDCNT_TGT1_BG1); else SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND | BLDCNT_TGT1_BG2); - gTasks[taskId].func = sub_80B7954; + gTasks[taskId].func = AnimTask_AttackerFadeToInvisible_Step; } -static void sub_80B7954(u8 taskId) +static void AnimTask_AttackerFadeToInvisible_Step(u8 taskId) { u8 blendA = gTasks[taskId].data[1] >> 8; u8 blendB = gTasks[taskId].data[1]; @@ -222,15 +222,15 @@ static void sub_80B7954(u8 taskId) } } -void sub_80B79DC(u8 taskId) +void AnimTask_AttackerFadeFromInvisible(u8 taskId) { gTasks[taskId].data[0] = gBattleAnimArgs[0]; gTasks[taskId].data[1] = BLDALPHA_BLEND(0, 16); - gTasks[taskId].func = sub_80B7A14; + gTasks[taskId].func = AnimTask_AttackerFadeFromInvisible_Step; SetGpuReg(REG_OFFSET_BLDALPHA, gTasks[taskId].data[1]); } -static void sub_80B7A14(u8 taskId) +static void AnimTask_AttackerFadeFromInvisible_Step(u8 taskId) { u8 blendA = gTasks[taskId].data[1] >> 8; u8 blendB = gTasks[taskId].data[1]; @@ -255,7 +255,7 @@ static void sub_80B7A14(u8 taskId) } } -void sub_80B7A80(u8 taskId) +void AnimTask_InitAttackerFadeFromInvisible(u8 taskId) { SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0, 16)); if (GetBattlerSpriteBGPriorityRank(gBattleAnimAttacker) == 1) @@ -306,7 +306,7 @@ static void sub_80B7B48(struct Sprite *sprite) DestroyAnimSprite(sprite); } -static void sub_80B7BD4(struct Sprite *sprite) +static void AnimBite(struct Sprite *sprite) { sprite->pos1.x += gBattleAnimArgs[0]; sprite->pos1.y += gBattleAnimArgs[1]; @@ -337,7 +337,7 @@ static void sub_80B7C50(struct Sprite *sprite) DestroySpriteAndMatrix(sprite); } -static void sub_80B7C88(struct Sprite *sprite) +static void AnimTearDrop(struct Sprite *sprite) { u8 battler; s8 xOffset; @@ -385,7 +385,7 @@ static void sub_80B7D88(struct Sprite *sprite) DestroySpriteAndMatrix(sprite); } -void sub_80B7DA4(u8 taskId) +void AnimTask_MoveAttackerMementoShadow(u8 taskId) { struct ScanlineEffectParams scanlineParams; struct BattleAnimBgData animBg; @@ -502,7 +502,7 @@ static void sub_80B7F58(u8 taskId) } } -void sub_80B8070(u8 taskId) +void AnimTask_MoveTargetMementoShadow(u8 taskId) { struct BattleAnimBgData animBg; struct ScanlineEffectParams scanlineParams; @@ -724,7 +724,7 @@ static void sub_80B856C(u8 priority) } } -void sub_80B85B8(u8 taskId) +void AnimTask_InitMementoShadow(u8 taskId) { bool8 toBG2 = GetBattlerSpriteBGPriorityRank(gBattleAnimAttacker) ^ 1 ? TRUE : FALSE; @@ -748,7 +748,7 @@ void sub_80B8664(u8 taskId) DestroyAnimVisualTask(taskId); } -static void sub_80B86B0(struct Sprite *sprite) +static void AnimClawSlash(struct Sprite *sprite) { sprite->pos1.x += gBattleAnimArgs[0]; sprite->pos1.y += gBattleAnimArgs[1]; @@ -910,7 +910,7 @@ void AnimTask_SetGreyscaleOrOriginalPal(u8 taskId) DestroyAnimVisualTask(taskId); } -void sub_80B8B38(u8 taskId) +void GetIsDoomDesireHitTurn(u8 taskId) { if (gAnimMoveTurn < 2) gBattleAnimArgs[7] = 0; diff --git a/src/dragon.c b/src/dragon.c index d18cf25df..747efdb7c 100644 --- a/src/dragon.c +++ b/src/dragon.c @@ -5,10 +5,10 @@ #include "trig.h" static void sub_80B725C(struct Sprite *sprite); -static void sub_80B741C(struct Sprite *sprite); -static void sub_80B73AC(struct Sprite *sprite); -static void sub_80B7448(struct Sprite *sprite); -static void sub_80B77E4(struct Sprite *sprite); +static void AnimDragonFireToTarget(struct Sprite *sprite); +static void AnimDragonRageFirePlume(struct Sprite *sprite); +static void AnimDragonDanceOrb(struct Sprite *sprite); +static void AnimOverheatFlame(struct Sprite *sprite); static void sub_80B74D8(struct Sprite *sprite); static void sub_80B76B0(u8 taskId); static void sub_80B776C(struct Task *task); @@ -31,7 +31,7 @@ static const union AnimCmd *const gUnknown_83E7728[] = gUnknown_83E7710, }; -const struct SpriteTemplate gUnknown_83E772C = +const struct SpriteTemplate gOutrageFlameSpriteTemplate = { .tileTag = ANIM_TAG_SMALL_EMBER, .paletteTag = ANIM_TAG_SMALL_EMBER, @@ -42,7 +42,7 @@ const struct SpriteTemplate gUnknown_83E772C = .callback = sub_80B725C, }; -static const union AnimCmd gUnknown_83E7744[] = +static const union AnimCmd sAnim_DragonBreathFire_0[] = { ANIMCMD_FRAME(16, 3), ANIMCMD_FRAME(32, 3), @@ -50,7 +50,7 @@ static const union AnimCmd gUnknown_83E7744[] = ANIMCMD_JUMP(0), }; -static const union AnimCmd gUnknown_83E7754[] = +static const union AnimCmd sAnim_DragonBreathFire_1[] = { ANIMCMD_FRAME(16, 3, .vFlip = TRUE, .hFlip = TRUE), ANIMCMD_FRAME(32, 3, .vFlip = TRUE, .hFlip = TRUE), @@ -58,44 +58,44 @@ static const union AnimCmd gUnknown_83E7754[] = ANIMCMD_JUMP(0), }; -static const union AnimCmd *const gUnknown_83E7764[] = +static const union AnimCmd *const sAnims_DragonBreathFire[] = { - gUnknown_83E7744, - gUnknown_83E7754, + sAnim_DragonBreathFire_0, + sAnim_DragonBreathFire_1, }; -static const union AffineAnimCmd gUnknown_83E776C[] = +static const union AffineAnimCmd sAffineAnim_DragonBreathFire_0[] = { AFFINEANIMCMD_FRAME(0x50, 0x50, 127, 0), AFFINEANIMCMD_FRAME(0xD, 0xD, 0, 100), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd gUnknown_83E7784[] = +static const union AffineAnimCmd sAffineAnim_DragonBreathFire_1[] = { AFFINEANIMCMD_FRAME(0x50, 0x50, 0, 0), AFFINEANIMCMD_FRAME(0xD, 0xD, 0, 100), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd *const gUnknown_83E779C[] = +static const union AffineAnimCmd *const sAffineAnims_DragonBreathFire[] = { - gUnknown_83E776C, - gUnknown_83E7784, + sAffineAnim_DragonBreathFire_0, + sAffineAnim_DragonBreathFire_1, }; -const struct SpriteTemplate gUnknown_83E77A4 = +const struct SpriteTemplate gDragonBreathFireSpriteTemplate = { .tileTag = ANIM_TAG_SMALL_EMBER, .paletteTag = ANIM_TAG_SMALL_EMBER, .oam = &gOamData_AffineDouble_ObjNormal_32x32, - .anims = gUnknown_83E7764, + .anims = sAnims_DragonBreathFire, .images = NULL, - .affineAnims = gUnknown_83E779C, - .callback = sub_80B741C, + .affineAnims = sAffineAnims_DragonBreathFire, + .callback = AnimDragonFireToTarget, }; -const union AnimCmd gUnknown_83E77BC[] = +const union AnimCmd sAnim_DragonRageFirePlume[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_FRAME(16, 5), @@ -105,23 +105,23 @@ const union AnimCmd gUnknown_83E77BC[] = ANIMCMD_END, }; -static const union AnimCmd *const gUnknown_83E77D4[] = +static const union AnimCmd *const sAnims_DragonRageFirePlume[] = { - gUnknown_83E77BC, + sAnim_DragonRageFirePlume, }; -const struct SpriteTemplate gUnknown_83E77D8 = +const struct SpriteTemplate gDragonRageFirePlumeSpriteTemplate = { .tileTag = ANIM_TAG_FIRE_PLUME, .paletteTag = ANIM_TAG_FIRE_PLUME, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_83E77D4, + .anims = sAnims_DragonRageFirePlume, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B73AC, + .callback = AnimDragonRageFirePlume, }; -static const union AnimCmd gUnknown_83E77F0[] = +static const union AnimCmd sAnim_DragonRageFire[] = { ANIMCMD_FRAME(16, 3), ANIMCMD_FRAME(32, 3), @@ -129,42 +129,42 @@ static const union AnimCmd gUnknown_83E77F0[] = ANIMCMD_JUMP(0), }; -static const union AnimCmd *const gUnknown_83E7800[] = +static const union AnimCmd *const sAnims_DragonRageFire[] = { - gUnknown_83E77F0, - gUnknown_83E77F0, + sAnim_DragonRageFire, + sAnim_DragonRageFire, }; -static const union AffineAnimCmd gUnknown_83E7808[] = +static const union AffineAnimCmd sAffineAnim_DragonRageFire_0[] = { AFFINEANIMCMD_FRAME(0x64, 0x64, 127, 1), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd gUnknown_83E7818[] = +static const union AffineAnimCmd sAffineAnim_DragonRageFire_1[] = { AFFINEANIMCMD_FRAME(0x64, 0x64, 0, 1), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd *const gUnknown_83E7828[] = +static const union AffineAnimCmd *const sAffineAnims_DragonRageFire[] = { - gUnknown_83E7808, - gUnknown_83E7818, + sAffineAnim_DragonRageFire_0, + sAffineAnim_DragonRageFire_1, }; -const struct SpriteTemplate gUnknown_83E7830 = +const struct SpriteTemplate gDragonRageFireSpitSpriteTemplate = { .tileTag = ANIM_TAG_SMALL_EMBER, .paletteTag = ANIM_TAG_SMALL_EMBER, .oam = &gOamData_AffineDouble_ObjNormal_32x32, - .anims = gUnknown_83E7800, + .anims = sAnims_DragonRageFire, .images = NULL, - .affineAnims = gUnknown_83E7828, - .callback = sub_80B741C, + .affineAnims = sAffineAnims_DragonRageFire, + .callback = AnimDragonFireToTarget, }; -const struct SpriteTemplate gUnknown_83E7848 = +const struct SpriteTemplate gDragonDanceOrbSpriteTemplate = { .tileTag = ANIM_TAG_HOLLOW_ORB, .paletteTag = ANIM_TAG_HOLLOW_ORB, @@ -172,10 +172,10 @@ const struct SpriteTemplate gUnknown_83E7848 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B7448, + .callback = AnimDragonDanceOrb, }; -const struct SpriteTemplate gUnknown_83E7860 = +const struct SpriteTemplate gOverheatFlameSpriteTemplate = { .tileTag = ANIM_TAG_SMALL_EMBER, .paletteTag = ANIM_TAG_SMALL_EMBER, @@ -183,7 +183,7 @@ const struct SpriteTemplate gUnknown_83E7860 = .anims = gUnknown_83E7728, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B77E4, + .callback = AnimOverheatFlame, }; static void sub_80B725C(struct Sprite *sprite) @@ -235,7 +235,7 @@ static void sub_80B72F8(struct Sprite *sprite) StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix); } -static void sub_80B73AC(struct Sprite *sprite) +static void AnimDragonRageFirePlume(struct Sprite *sprite) { if (gBattleAnimArgs[0] == 0) { @@ -253,14 +253,14 @@ static void sub_80B73AC(struct Sprite *sprite) StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix); } -static void sub_80B741C(struct Sprite *sprite) +static void AnimDragonFireToTarget(struct Sprite *sprite) { if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) StartSpriteAffineAnim(sprite, 1); sub_80B72F8(sprite); } -static void sub_80B7448(struct Sprite *sprite) +static void AnimDragonDanceOrb(struct Sprite *sprite) { u16 r5; u16 r0; @@ -319,7 +319,7 @@ static void sub_80B74D8(struct Sprite *sprite) } } -void sub_80B75E0(u8 taskId) +void AnimTask_DragonDanceWaver(u8 taskId) { struct ScanlineEffectParams sp; struct Task *task = &gTasks[taskId]; @@ -404,7 +404,7 @@ static void sub_80B776C(struct Task *task) task->data[5] = (task->data[5] + 9) & 0xFF; } -static void sub_80B77E4(struct Sprite *sprite) +static void AnimOverheatFlame(struct Sprite *sprite) { s32 i, r6 = (gBattleAnimArgs[2] * 3) / 5; diff --git a/src/electric.c b/src/electric.c index 908ce60a4..d3fe25924 100644 --- a/src/electric.c +++ b/src/electric.c @@ -4,22 +4,22 @@ #include "sound.h" #include "constants/songs.h" -static void sub_80ADBEC(struct Sprite *sprite); +static void AnimLightning(struct Sprite *sprite); static void sub_80ADC58(struct Sprite *sprite); static void sub_80ADCB8(struct Sprite *sprite); static void sub_80ADD4C(struct Sprite *sprite); -static void sub_80ADEB0(struct Sprite *sprite); -static void sub_80AE000(struct Sprite *sprite); -static void sub_80AE06C(struct Sprite *sprite); -static void sub_80AE1A0(struct Sprite *sprite); -static void sub_80AE420(struct Sprite *sprite); -static void sub_80AE470(struct Sprite *sprite); -static void sub_80AE71C(struct Sprite *sprite); -static void sub_80AE774(struct Sprite *sprite); -static void sub_80AE7DC(struct Sprite *sprite); -static void sub_80AEC34(struct Sprite *sprite); -static void sub_80AEC80(struct Sprite *sprite); -static void sub_80AEF60(struct Sprite *sprite); +static void AnimZapCannonSpark(struct Sprite *sprite); +static void AnimThunderboltOrb(struct Sprite *sprite); +static void AnimSparkElectricityFlashing(struct Sprite *sprite); +static void AnimElectricity(struct Sprite *sprite); +static void AnimElectricBoltSegment(struct Sprite *sprite); +static void AnimThunderWave(struct Sprite *sprite); +static void AnimGrowingChargeOrb(struct Sprite *sprite); +static void AnimElectricPuff(struct Sprite *sprite); +static void AnimVoltTackleOrbSlide(struct Sprite *sprite); +static void AnimVoltTackleBolt(struct Sprite *sprite); +static void AnimGrowingShockWaveOrb(struct Sprite *sprite); +static void AnimShockWaveProgressingBolt(struct Sprite *sprite); static void sub_80ADC3C(struct Sprite *sprite); static void sub_80ADC9C(struct Sprite *sprite); static void sub_80ADF38(struct Sprite *sprite); @@ -34,7 +34,7 @@ static bool8 sub_80AEE74(struct Task *task, u8 taskId); static bool8 sub_80AF058(struct Task *task, u8 taskId); static void sub_80AF0C8(struct Sprite *sprite); -static const union AnimCmd gUnknown_83E5F1C[] = +static const union AnimCmd sAnim_Lightning[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_FRAME(16, 5), @@ -44,20 +44,20 @@ static const union AnimCmd gUnknown_83E5F1C[] = ANIMCMD_END, }; -static const union AnimCmd *const gUnknown_83E5F34[] = +static const union AnimCmd *const sAnims_Lightning[] = { - gUnknown_83E5F1C, + sAnim_Lightning, }; -const struct SpriteTemplate gUnknown_83E5F38 = +const struct SpriteTemplate gLightningSpriteTemplate = { .tileTag = ANIM_TAG_LIGHTNING, .paletteTag = ANIM_TAG_LIGHTNING, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_83E5F34, + .anims = sAnims_Lightning, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80ADBEC, + .callback = AnimLightning, }; static const union AffineAnimCmd gUnknown_83E5F50[] = @@ -111,7 +111,7 @@ const struct SpriteTemplate gUnknown_83E5FAC = .callback = sub_80ADCB8, }; -const struct SpriteTemplate gUnknown_83E5FC4 = +const struct SpriteTemplate gSparkElectricitySpriteTemplate = { .tileTag = ANIM_TAG_SPARK_2, .paletteTag = ANIM_TAG_SPARK_2, @@ -122,7 +122,7 @@ const struct SpriteTemplate gUnknown_83E5FC4 = .callback = sub_80ADD4C, }; -const struct SpriteTemplate gUnknown_83E5FDC = +const struct SpriteTemplate gZapCannonBallSpriteTemplate = { .tileTag = ANIM_TAG_BLACK_BALL_2, .paletteTag = ANIM_TAG_BLACK_BALL_2, @@ -133,29 +133,29 @@ const struct SpriteTemplate gUnknown_83E5FDC = .callback = TranslateAnimSpriteToTargetMonLocation, }; -static const union AffineAnimCmd gUnknown_83E5FF4[] = +static const union AffineAnimCmd sAffineAnim_FlashingSpark[] = { AFFINEANIMCMD_FRAME(0x0, 0x0, 20, 1), AFFINEANIMCMD_JUMP(0), }; -static const union AffineAnimCmd *const gUnknown_83E6004[] = +static const union AffineAnimCmd *const sAffineAnims_FlashingSpark[] = { - gUnknown_83E5FF4, + sAffineAnim_FlashingSpark, }; -const struct SpriteTemplate gUnknown_83E6008 = +const struct SpriteTemplate gZapCannonSparkSpriteTemplate = { .tileTag = ANIM_TAG_SPARK_2, .paletteTag = ANIM_TAG_SPARK_2, .oam = &gOamData_AffineNormal_ObjNormal_16x16, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_83E6004, - .callback = sub_80ADEB0, + .affineAnims = sAffineAnims_FlashingSpark, + .callback = AnimZapCannonSpark, }; -static const union AnimCmd gUnknown_83E6020[] = +static const union AnimCmd sAnim_ThunderboltOrb[] = { ANIMCMD_FRAME(0, 6), ANIMCMD_FRAME(16, 6), @@ -163,12 +163,12 @@ static const union AnimCmd gUnknown_83E6020[] = ANIMCMD_JUMP(0), }; -static const union AnimCmd *const gUnknown_83E6030[] = +static const union AnimCmd *const sAnims_ThunderboltOrb[] = { - gUnknown_83E6020, + sAnim_ThunderboltOrb, }; -static const union AffineAnimCmd gUnknown_83E6034[] = +static const union AffineAnimCmd sAffineAnim_ThunderboltOrb[] = { AFFINEANIMCMD_FRAME(0xE8, 0xE8, 0, 0), AFFINEANIMCMD_FRAME(-0x8, -0x8, 0, 10), @@ -176,31 +176,31 @@ static const union AffineAnimCmd gUnknown_83E6034[] = AFFINEANIMCMD_JUMP(1), }; -static const union AffineAnimCmd *const gUnknown_83E6054[] = +static const union AffineAnimCmd *const sAffineAnims_ThunderboltOrb[] = { - gUnknown_83E6034, + sAffineAnim_ThunderboltOrb, }; -const struct SpriteTemplate gUnknown_83E6058 = +const struct SpriteTemplate gThunderboltOrbSpriteTemplate = { .tileTag = ANIM_TAG_SHOCK_3, .paletteTag = ANIM_TAG_SHOCK_3, .oam = &gOamData_AffineNormal_ObjNormal_32x32, - .anims = gUnknown_83E6030, + .anims = sAnims_ThunderboltOrb, .images = NULL, - .affineAnims = gUnknown_83E6054, - .callback = sub_80AE000, + .affineAnims = sAffineAnims_ThunderboltOrb, + .callback = AnimThunderboltOrb, }; -const struct SpriteTemplate gUnknown_83E6070 = +const struct SpriteTemplate gSparkElectricityFlashingSpriteTemplate = { .tileTag = ANIM_TAG_SPARK_2, .paletteTag = ANIM_TAG_SPARK_2, .oam = &gOamData_AffineNormal_ObjNormal_16x16, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_83E6004, - .callback = sub_80AE06C, + .affineAnims = sAffineAnims_FlashingSpark, + .callback = AnimSparkElectricityFlashing, }; const struct SpriteTemplate gElectricitySpriteTemplate = @@ -211,10 +211,10 @@ const struct SpriteTemplate gElectricitySpriteTemplate = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80AE1A0, + .callback = AnimElectricity, }; -static const struct SpriteTemplate gUnknown_83E60A0 = +static const struct SpriteTemplate sElectricBoltSegmentSpriteTemplate = { .tileTag = ANIM_TAG_SPARK, .paletteTag = ANIM_TAG_SPARK, @@ -222,10 +222,10 @@ static const struct SpriteTemplate gUnknown_83E60A0 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80AE420, + .callback = AnimElectricBoltSegment, }; -const struct SpriteTemplate gUnknown_83E60B8 = +const struct SpriteTemplate gThunderWaveSpriteTemplate = { .tileTag = ANIM_TAG_SPARK_H, .paletteTag = ANIM_TAG_SPARK_H, @@ -233,10 +233,10 @@ const struct SpriteTemplate gUnknown_83E60B8 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80AE470, + .callback = AnimThunderWave, }; -static const s8 gUnknown_83E60D0[][2] = +static const s8 sElectricChargingParticleCoordOffsets[][2] = { { 58, -60}, {-56, -36}, @@ -256,7 +256,7 @@ static const s8 gUnknown_83E60D0[][2] = { 48, 48}, }; -static const union AnimCmd gUnknown_83E60F0[] = +static const union AnimCmd sAnim_ElectricChargingParticles_0[] = { ANIMCMD_FRAME(3, 1), ANIMCMD_FRAME(2, 1), @@ -265,7 +265,7 @@ static const union AnimCmd gUnknown_83E60F0[] = ANIMCMD_END, }; -static const union AnimCmd gUnknown_83E6104[] = +static const union AnimCmd sAnim_ElectricChargingParticles_1[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_FRAME(1, 5), @@ -274,24 +274,24 @@ static const union AnimCmd gUnknown_83E6104[] = ANIMCMD_END, }; -static const union AnimCmd *const gUnknown_83E6118[] = +static const union AnimCmd *const sAnims_ElectricChargingParticles[] = { - gUnknown_83E60F0, - gUnknown_83E6104, + sAnim_ElectricChargingParticles_0, + sAnim_ElectricChargingParticles_1, }; -static const struct SpriteTemplate gUnknown_83E6120 = +static const struct SpriteTemplate gElectricChargingParticlesSpriteTemplate = { .tileTag = ANIM_TAG_ELECTRIC_ORBS, .paletteTag = ANIM_TAG_ELECTRIC_ORBS, .oam = &gOamData_AffineOff_ObjNormal_8x8, - .anims = gUnknown_83E6118, + .anims = sAnims_ElectricChargingParticles, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy, }; -static const union AffineAnimCmd gUnknown_83E6138[] = +static const union AffineAnimCmd sAffineAnim_GrowingElectricOrb_0[] = { AFFINEANIMCMD_FRAME(0x10, 0x10, 0, 0), AFFINEANIMCMD_FRAME(0x4, 0x4, 0, 60), @@ -303,7 +303,7 @@ static const union AffineAnimCmd gUnknown_83E6138[] = AFFINEANIMCMD_END, }; -static const union AffineAnimCmd gUnknown_83E6178[] = +static const union AffineAnimCmd sAffineAnim_GrowingElectricOrb_1[] = { AFFINEANIMCMD_FRAME(0x10, 0x10, 0, 0), AFFINEANIMCMD_FRAME(0x8, 0x8, 0, 30), @@ -313,7 +313,7 @@ static const union AffineAnimCmd gUnknown_83E6178[] = AFFINEANIMCMD_JUMP(3), }; -static const union AffineAnimCmd gUnknown_83E61A8[] = +static const union AffineAnimCmd sAffineAnim_GrowingElectricOrb_2[] = { AFFINEANIMCMD_FRAME(0x10, 0x10, 0, 0), AFFINEANIMCMD_FRAME(0x8, 0x8, 0, 30), @@ -321,25 +321,25 @@ static const union AffineAnimCmd gUnknown_83E61A8[] = AFFINEANIMCMD_END, }; -static const union AffineAnimCmd *const gUnknown_83E61C8[] = +static const union AffineAnimCmd *const sAffineAnims_GrowingElectricOrb[] = { - gUnknown_83E6138, - gUnknown_83E6178, - gUnknown_83E61A8, + sAffineAnim_GrowingElectricOrb_0, + sAffineAnim_GrowingElectricOrb_1, + sAffineAnim_GrowingElectricOrb_2, }; -const struct SpriteTemplate gUnknown_83E61D4 = +const struct SpriteTemplate gGrowingChargeOrbSpriteTemplate = { .tileTag = ANIM_TAG_CIRCLE_OF_LIGHT, .paletteTag = ANIM_TAG_CIRCLE_OF_LIGHT, .oam = &gOamData_AffineNormal_ObjBlend_64x64, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_83E61C8, - .callback = sub_80AE71C, + .affineAnims = sAffineAnims_GrowingElectricOrb, + .callback = AnimGrowingChargeOrb, }; -static const union AnimCmd gUnknown_83E61EC[] = +static const union AnimCmd sAnim_ElectricPuff[] = { ANIMCMD_FRAME(0, 3), ANIMCMD_FRAME(16, 3), @@ -348,99 +348,99 @@ static const union AnimCmd gUnknown_83E61EC[] = ANIMCMD_END, }; -static const union AnimCmd *const gUnknown_83E6200[] = +static const union AnimCmd *const sAnims_ElectricPuff[] = { - gUnknown_83E61EC, + sAnim_ElectricPuff, }; -const struct SpriteTemplate gUnknown_83E6204 = +const struct SpriteTemplate gElectricPuffSpriteTemplate = { .tileTag = ANIM_TAG_ELECTRICITY, .paletteTag = ANIM_TAG_ELECTRICITY, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_83E6200, + .anims = sAnims_ElectricPuff, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80AE774, + .callback = AnimElectricPuff, }; -const struct SpriteTemplate gUnknown_83E621C = +const struct SpriteTemplate gVoltTackleOrbSlideSpriteTemplate = { .tileTag = ANIM_TAG_CIRCLE_OF_LIGHT, .paletteTag = ANIM_TAG_CIRCLE_OF_LIGHT, .oam = &gOamData_AffineNormal_ObjBlend_64x64, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_83E61C8, - .callback = sub_80AE7DC, + .affineAnims = sAffineAnims_GrowingElectricOrb, + .callback = AnimVoltTackleOrbSlide, }; -static const union AnimCmd gUnknown_83E6234[] = +static const union AnimCmd sAnim_VoltTackleBolt_0[] = { ANIMCMD_FRAME(0, 3), ANIMCMD_END, }; -static const union AnimCmd gUnknown_83E623C[] = +static const union AnimCmd sAnim_VoltTackleBolt_1[] = { ANIMCMD_FRAME(2, 3), ANIMCMD_END, }; -static const union AnimCmd gUnknown_83E6244[] = +static const union AnimCmd sAnim_VoltTackleBolt_2[] = { ANIMCMD_FRAME(4, 3), ANIMCMD_END, }; -static const union AnimCmd gUnknown_83E624C[] = +static const union AnimCmd sAnim_VoltTackleBolt_3[] = { ANIMCMD_FRAME(6, 3), ANIMCMD_END, }; -static const union AnimCmd *const gUnknown_83E6254[] = +static const union AnimCmd *const sAnims_VoltTackleBolt[] = { - gUnknown_83E6234, - gUnknown_83E623C, - gUnknown_83E6244, - gUnknown_83E624C, + sAnim_VoltTackleBolt_0, + sAnim_VoltTackleBolt_1, + sAnim_VoltTackleBolt_2, + sAnim_VoltTackleBolt_3, }; -static const union AffineAnimCmd gUnknown_83E6264[] = +static const union AffineAnimCmd sAffineAnim_VoltTackleBolt[] = { AFFINEANIMCMD_FRAME(0x100, 0x100, 64, 0), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd *const gUnknown_83E6274[] = +static const union AffineAnimCmd *const sAffineAnims_VoltTackleBolt[] = { - gUnknown_83E6264, + sAffineAnim_VoltTackleBolt, }; -static const struct SpriteTemplate gUnknown_83E6278 = +static const struct SpriteTemplate gVoltTackleBoltSpriteTemplate = { .tileTag = ANIM_TAG_SPARK, .paletteTag = ANIM_TAG_SPARK, .oam = &gOamData_AffineDouble_ObjNormal_8x16, - .anims = gUnknown_83E6254, + .anims = sAnims_VoltTackleBolt, .images = NULL, - .affineAnims = gUnknown_83E6274, - .callback = sub_80AEC34, + .affineAnims = sAffineAnims_VoltTackleBolt, + .callback = AnimVoltTackleBolt, }; -const struct SpriteTemplate gUnknown_83E6290 = +const struct SpriteTemplate gGrowingShockWaveOrbSpriteTemplate = { .tileTag = ANIM_TAG_CIRCLE_OF_LIGHT, .paletteTag = ANIM_TAG_CIRCLE_OF_LIGHT, .oam = &gOamData_AffineNormal_ObjBlend_64x64, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_83E61C8, - .callback = sub_80AEC80, + .affineAnims = sAffineAnims_GrowingElectricOrb, + .callback = AnimGrowingShockWaveOrb, }; -static const struct SpriteTemplate gUnknown_83E62A8 = +static const struct SpriteTemplate sShockWaveProgressingBoltSpriteTemplate = { .tileTag = ANIM_TAG_SPARK, .paletteTag = ANIM_TAG_SPARK, @@ -448,10 +448,10 @@ static const struct SpriteTemplate gUnknown_83E62A8 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80AEF60, + .callback = AnimShockWaveProgressingBolt, }; -static void sub_80ADBEC(struct Sprite *sprite) +static void AnimLightning(struct Sprite *sprite) { if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) sprite->pos1.x -= gBattleAnimArgs[0]; @@ -555,7 +555,7 @@ static void sub_80ADD4C(struct Sprite *sprite) sprite->callback = sub_80B1D3C; } -static void sub_80ADEB0(struct Sprite *sprite) +static void AnimZapCannonSpark(struct Sprite *sprite) { InitSpritePosToAnimAttacker(sprite, 1); sprite->data[0] = gBattleAnimArgs[3]; @@ -599,7 +599,7 @@ static void sub_80ADFB0(struct Sprite *sprite) DestroyAnimSprite(sprite); } -static void sub_80AE000(struct Sprite *sprite) +static void AnimThunderboltOrb(struct Sprite *sprite) { if (IsContest() || GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER) gBattleAnimArgs[1] = -gBattleAnimArgs[1]; @@ -611,7 +611,7 @@ static void sub_80AE000(struct Sprite *sprite) sprite->callback = sub_80ADFB0; } -static void sub_80AE06C(struct Sprite *sprite) +static void AnimSparkElectricityFlashing(struct Sprite *sprite) { u8 battler; @@ -644,7 +644,7 @@ static void sub_80AE130(struct Sprite *sprite) DestroyAnimSprite(sprite); } -static void sub_80AE1A0(struct Sprite *sprite) +static void AnimElectricity(struct Sprite *sprite) { InitSpritePosToAnimTarget(sprite, FALSE); sprite->oam.tileNum += gBattleAnimArgs[3] * 4; @@ -657,7 +657,7 @@ static void sub_80AE1A0(struct Sprite *sprite) StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); } -void sub_80AE220(u8 taskId) +void AnimTask_ElectricBolt(u8 taskId) { gTasks[taskId].data[0] = GetBattlerSpriteCoord(gBattleAnimTarget, 0) + gBattleAnimArgs[0]; gTasks[taskId].data[1] = GetBattlerSpriteCoord(gBattleAnimTarget, 1) + gBattleAnimArgs[1]; @@ -692,30 +692,30 @@ static void sub_80AE278(u8 taskId) { case 0: r12 *= 1; - spriteId = CreateSprite(&gUnknown_83E60A0, x, y + r12, 2); + spriteId = CreateSprite(&sElectricBoltSegmentSpriteTemplate, x, y + r12, 2); ++r7; break; case 2: r12 *= 2; r8 += r2; - spriteId = CreateSprite(&gUnknown_83E60A0, x, y + r12, 2); + spriteId = CreateSprite(&sElectricBoltSegmentSpriteTemplate, x, y + r12, 2); ++r7; break; case 4: r12 *= 3; r8 += r2 * 2; - spriteId = CreateSprite(&gUnknown_83E60A0, x, y + r12, 2); + spriteId = CreateSprite(&sElectricBoltSegmentSpriteTemplate, x, y + r12, 2); ++r7; break; case 6: r12 *= 4; r8 += r2 * 3; - spriteId = CreateSprite(&gUnknown_83E60A0, x, y + r12, 2); + spriteId = CreateSprite(&sElectricBoltSegmentSpriteTemplate, x, y + r12, 2); ++r7; break; case 8: r12 *= 5; - spriteId = CreateSprite(&gUnknown_83E60A0, x, y + r12, 2); + spriteId = CreateSprite(&sElectricBoltSegmentSpriteTemplate, x, y + r12, 2); ++r7; break; case 10: @@ -731,7 +731,7 @@ static void sub_80AE278(u8 taskId) ++gTasks[taskId].data[10]; } -static void sub_80AE420(struct Sprite *sprite) +static void AnimElectricBoltSegment(struct Sprite *sprite) { if (!sprite->data[0]) { @@ -747,13 +747,13 @@ static void sub_80AE420(struct Sprite *sprite) DestroySprite(sprite); } -static void sub_80AE470(struct Sprite *sprite) +static void AnimThunderWave(struct Sprite *sprite) { u8 spriteId; sprite->pos1.x += gBattleAnimArgs[0]; sprite->pos1.y += gBattleAnimArgs[1]; - spriteId = CreateSprite(&gUnknown_83E60B8, sprite->pos1.x + 32, sprite->pos1.y, sprite->subpriority); + spriteId = CreateSprite(&gThunderWaveSpriteTemplate, sprite->pos1.x + 32, sprite->pos1.y, sprite->subpriority); gSprites[spriteId].oam.tileNum += 8; ++gAnimVisualTaskCount; gSprites[spriteId].callback = sub_80AE4F4; @@ -771,7 +771,7 @@ static void sub_80AE4F4(struct Sprite *sprite) DestroyAnimSprite(sprite); } -void sub_80AE540(u8 taskId) +void AnimTask_ElectricChargingParticles(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -807,13 +807,13 @@ static void sub_80AE5BC(u8 taskId) u8 spriteId; task->data[12] = 0; - spriteId = CreateSprite(&gUnknown_83E6120, task->data[14], task->data[15], 2); + spriteId = CreateSprite(&gElectricChargingParticlesSpriteTemplate, task->data[14], task->data[15], 2); if (spriteId != MAX_SPRITES) { struct Sprite *sprite = &gSprites[spriteId]; - sprite->pos1.x += gUnknown_83E60D0[task->data[9]][0]; - sprite->pos1.y += gUnknown_83E60D0[task->data[9]][1]; + sprite->pos1.x += sElectricChargingParticleCoordOffsets[task->data[9]][0]; + sprite->pos1.y += sElectricChargingParticleCoordOffsets[task->data[9]][1]; sprite->data[0] = 40 - task->data[8] * 5; sprite->data[1] = sprite->pos1.x; sprite->data[2] = task->data[14]; @@ -857,7 +857,7 @@ static void sub_80AE704(struct Sprite *sprite) sprite->callback = sub_80AE6D0; } -static void sub_80AE71C(struct Sprite *sprite) +static void AnimGrowingChargeOrb(struct Sprite *sprite) { if (!gBattleAnimArgs[0]) { @@ -873,7 +873,7 @@ static void sub_80AE71C(struct Sprite *sprite) sprite->callback = RunStoredCallbackWhenAffineAnimEnds; } -static void sub_80AE774(struct Sprite *sprite) +static void AnimElectricPuff(struct Sprite *sprite) { if (!gBattleAnimArgs[0]) { @@ -891,7 +891,7 @@ static void sub_80AE774(struct Sprite *sprite) sprite->callback = RunStoredCallbackWhenAnimEnds; } -static void sub_80AE7DC(struct Sprite *sprite) +static void AnimVoltTackleOrbSlide(struct Sprite *sprite) { StartSpriteAffineAnim(sprite, 1); sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); @@ -920,7 +920,7 @@ static void sub_80AE83C(struct Sprite *sprite) } } -void sub_80AE8A0(u8 taskId) +void AnimTask_VoltTackleAttackerReappear(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -975,7 +975,7 @@ void sub_80AE8A0(u8 taskId) } } -void sub_80AEA10(u8 taskId) +void AnimTask_VoltTackleBolt(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -1049,7 +1049,7 @@ void sub_80AEA10(u8 taskId) static bool8 sub_80AEB98(struct Task *task, u8 taskId) { - u8 spriteId = CreateSprite(&gUnknown_83E6278, task->data[3], task->data[5], 35); + u8 spriteId = CreateSprite(&gVoltTackleBoltSpriteTemplate, task->data[3], task->data[5], 35); if (spriteId != MAX_SPRITES) { @@ -1070,7 +1070,7 @@ static bool8 sub_80AEB98(struct Task *task, u8 taskId) return FALSE; } -static void sub_80AEC34(struct Sprite *sprite) +static void AnimVoltTackleBolt(struct Sprite *sprite) { if (++sprite->data[0] > 12) { @@ -1080,7 +1080,7 @@ static void sub_80AEC34(struct Sprite *sprite) } } -static void sub_80AEC80(struct Sprite *sprite) +static void AnimGrowingShockWaveOrb(struct Sprite *sprite) { switch (sprite->data[0]) { @@ -1097,7 +1097,7 @@ static void sub_80AEC80(struct Sprite *sprite) } } -void sub_80AECE0(u8 taskId) +void AnimTask_ShockWaveProgressingBolt(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -1174,7 +1174,7 @@ void sub_80AECE0(u8 taskId) static bool8 sub_80AEE74(struct Task *task, u8 taskId) { - u8 spriteId = CreateSprite(&gUnknown_83E62A8, task->data[6], task->data[7], 35); + u8 spriteId = CreateSprite(&sShockWaveProgressingBoltSpriteTemplate, task->data[6], task->data[7], 35); if (spriteId != MAX_SPRITES) { gSprites[spriteId].oam.tileNum += task->data[4]; @@ -1206,7 +1206,7 @@ static bool8 sub_80AEE74(struct Task *task, u8 taskId) } } -static void sub_80AEF60(struct Sprite *sprite) +static void AnimShockWaveProgressingBolt(struct Sprite *sprite) { if (++sprite->data[0] > 12) { @@ -1215,7 +1215,7 @@ static void sub_80AEF60(struct Sprite *sprite) } } -void sub_80AEFA0(u8 taskId) +void AnimTask_ShockWaveLightning(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -1247,7 +1247,7 @@ void sub_80AEFA0(u8 taskId) static bool8 sub_80AF058(struct Task *task, u8 taskId) { - u8 spriteId = CreateSprite(&gUnknown_83E5F38, task->data[13], task->data[14], task->data[12]); + u8 spriteId = CreateSprite(&gLightningSpriteTemplate, task->data[13], task->data[14], task->data[12]); if (spriteId != MAX_SPRITES) { diff --git a/src/fighting.c b/src/fighting.c index fcfee5c54..ab477cd43 100644 --- a/src/fighting.c +++ b/src/fighting.c @@ -6,23 +6,23 @@ #include "trig.h" static void unc_080B08A0(struct Sprite *sprite); -static void sub_80B08DC(struct Sprite *sprite); -static void sub_80B0928(struct Sprite *sprite); +static void AnimSlideHandOrFootToTarget(struct Sprite *sprite); +static void AnimJumpKick(struct Sprite *sprite); static void AnimBasicFistOrFoot(struct Sprite *sprite); -static void sub_80B09A4(struct Sprite *sprite); -static void sub_80B0B80(struct Sprite *sprite); -static void sub_80B0C28(struct Sprite *sprite); +static void AnimFistOrFootRandomPos(struct Sprite *sprite); +static void AnimCrossChopHand(struct Sprite *sprite); +static void AnimSlidingKick(struct Sprite *sprite); static void AnimSpinningKickOrPunch(struct Sprite *sprite); static void AnimStompFoot(struct Sprite *sprite); -static void sub_80B0DF0(struct Sprite *sprite); -static void sub_80B0E80(struct Sprite *sprite); -static void sub_80B0F68(struct Sprite *sprite); -static void sub_80B107C(struct Sprite *sprite); -static void sub_80B1188(struct Sprite *sprite); -static void sub_80B12E8(struct Sprite *sprite); -static void sub_80B13F8(struct Sprite *sprite); -static void sub_80B1484(struct Sprite *sprite); -static void sub_80B14F0(struct Sprite *sprite); +static void AnimDizzyPunchDuck(struct Sprite *sprite); +static void AnimBrickBreakWall(struct Sprite *sprite); +static void AnimBrickBreakWallShard(struct Sprite *sprite); +static void AnimSuperpowerOrb(struct Sprite *sprite); +static void AnimSuperpowerRock(struct Sprite *sprite); +static void AnimSuperpowerFireball(struct Sprite *sprite); +static void AnimArmThrustHit(struct Sprite *sprite); +static void AnimRevengeScratch(struct Sprite *sprite); +static void AnimFocusPunchFist(struct Sprite *sprite); static void sub_80B0B2C(struct Sprite *sprite); static void sub_80B0BD8(struct Sprite *sprite); static void sub_80B0CB4(struct Sprite *sprite); @@ -46,73 +46,73 @@ const struct SpriteTemplate gUnknown_83E668C = .callback = unc_080B08A0, }; -static const union AnimCmd gUnknown_83E66A4[] = +static const union AnimCmd sAnim_HandOrFoot[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_83E66AC[] = +static const union AnimCmd sAnim_SlidingKick_0[] = { ANIMCMD_FRAME(16, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_83E66B4[] = +static const union AnimCmd sAnim_SlidingKick_1[] = { ANIMCMD_FRAME(32, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_83E66BC[] = +static const union AnimCmd sAnim_CrossChopHand_0[] = { ANIMCMD_FRAME(48, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_83E66C4[] = +static const union AnimCmd sAnim_CrossChopHand_1[] = { ANIMCMD_FRAME(48, 1, .hFlip = TRUE), ANIMCMD_END, }; -static const union AnimCmd *const gUnknown_83E66CC[] = +static const union AnimCmd *const sAnims_HandOrFoot[] = { - gUnknown_83E66A4, + sAnim_HandOrFoot, }; -static const union AnimCmd *const gUnknown_83E66D0[] = +static const union AnimCmd *const sAnims_SlidingKick[] = { - gUnknown_83E66AC, - gUnknown_83E66B4, + sAnim_SlidingKick_0, + sAnim_SlidingKick_1, }; -static const union AnimCmd *const gUnknown_83E66D8[] = +static const union AnimCmd *const sAnims_CrossChopHand[] = { - gUnknown_83E66BC, - gUnknown_83E66C4, + sAnim_CrossChopHand_0, + sAnim_CrossChopHand_1, }; -const struct SpriteTemplate gUnknown_83E66E0 = +const struct SpriteTemplate gKarateChopSpriteTemplate = { .tileTag = ANIM_TAG_HANDS_AND_FEET, .paletteTag = ANIM_TAG_HANDS_AND_FEET, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_83E66CC, + .anims = sAnims_HandOrFoot, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B08DC, + .callback = AnimSlideHandOrFootToTarget, }; -const struct SpriteTemplate gUnknown_83E66F8 = +const struct SpriteTemplate gJumpKickSpriteTemplate = { .tileTag = ANIM_TAG_HANDS_AND_FEET, .paletteTag = ANIM_TAG_HANDS_AND_FEET, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_83E66CC, + .anims = sAnims_HandOrFoot, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B0928, + .callback = AnimJumpKick, }; const struct SpriteTemplate gFistFootSpriteTemplate = @@ -120,78 +120,78 @@ const struct SpriteTemplate gFistFootSpriteTemplate = .tileTag = ANIM_TAG_HANDS_AND_FEET, .paletteTag = ANIM_TAG_HANDS_AND_FEET, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_83E66CC, + .anims = sAnims_HandOrFoot, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimBasicFistOrFoot, }; -const struct SpriteTemplate gUnknown_83E6728 = +const struct SpriteTemplate gFistFootRandomPosSpriteTemplate = { .tileTag = ANIM_TAG_HANDS_AND_FEET, .paletteTag = ANIM_TAG_HANDS_AND_FEET, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_83E66CC, + .anims = sAnims_HandOrFoot, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B09A4, + .callback = AnimFistOrFootRandomPos, }; -const struct SpriteTemplate gUnknown_83E6740 = +const struct SpriteTemplate gCrossChopHandSpriteTemplate = { .tileTag = ANIM_TAG_HANDS_AND_FEET, .paletteTag = ANIM_TAG_HANDS_AND_FEET, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_83E66D8, + .anims = sAnims_CrossChopHand, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B0B80, + .callback = AnimCrossChopHand, }; -const struct SpriteTemplate gUnknown_83E6758 = +const struct SpriteTemplate gSlidingKickSpriteTemplate = { .tileTag = ANIM_TAG_HANDS_AND_FEET, .paletteTag = ANIM_TAG_HANDS_AND_FEET, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_83E66D0, + .anims = sAnims_SlidingKick, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B0C28, + .callback = AnimSlidingKick, }; -static const union AffineAnimCmd gUnknown_83E6770[] = +static const union AffineAnimCmd sAffineAnim_SpinningHandOrFoot[] = { AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0), AFFINEANIMCMD_FRAME(-0x8, -0x8, 20, 1), AFFINEANIMCMD_JUMP(1), }; -static const union AffineAnimCmd *const gUnknown_83E6788[] = +static const union AffineAnimCmd *const sAffineAnims_SpinningHandOrFoot[] = { - gUnknown_83E6770, + sAffineAnim_SpinningHandOrFoot, }; -const struct SpriteTemplate gUnknown_83E678C = +const struct SpriteTemplate gSpinningHandOrFootSpriteTemplate = { .tileTag = ANIM_TAG_HANDS_AND_FEET, .paletteTag = ANIM_TAG_HANDS_AND_FEET, .oam = &gOamData_AffineDouble_ObjNormal_32x32, - .anims = gUnknown_83E66CC, + .anims = sAnims_HandOrFoot, .images = NULL, - .affineAnims = gUnknown_83E6788, + .affineAnims = sAffineAnims_SpinningHandOrFoot, .callback = AnimSpinningKickOrPunch, }; -static const union AffineAnimCmd gUnknown_83E67A4[] = +static const union AffineAnimCmd sAffineAnim_MegaPunchKick[] = { AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0), AFFINEANIMCMD_FRAME(-0x4, -0x4, 20, 1), AFFINEANIMCMD_JUMP(1), }; -static const union AffineAnimCmd *const gUnknown_83E67BC[] = +static const union AffineAnimCmd *const sAffineAnims_MegaPunchKick[] = { - gUnknown_83E67A4, + sAffineAnim_MegaPunchKick, }; const struct SpriteTemplate gMegaPunchKickSpriteTemplate = @@ -199,24 +199,24 @@ const struct SpriteTemplate gMegaPunchKickSpriteTemplate = .tileTag = ANIM_TAG_HANDS_AND_FEET, .paletteTag = ANIM_TAG_HANDS_AND_FEET, .oam = &gOamData_AffineDouble_ObjNormal_32x32, - .anims = gUnknown_83E66CC, + .anims = sAnims_HandOrFoot, .images = NULL, - .affineAnims = gUnknown_83E67BC, + .affineAnims = sAffineAnims_MegaPunchKick, .callback = AnimSpinningKickOrPunch, }; -const struct SpriteTemplate gUnknown_83E67D8 = +const struct SpriteTemplate gStompFootSpriteTemplate = { .tileTag = ANIM_TAG_HANDS_AND_FEET, .paletteTag = ANIM_TAG_HANDS_AND_FEET, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_83E66D0, + .anims = sAnims_SlidingKick, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimStompFoot, }; -const struct SpriteTemplate gUnknown_83E67F0 = +const struct SpriteTemplate gDizzyPunchDuckSpriteTemplate = { .tileTag = ANIM_TAG_DUCK, .paletteTag = ANIM_TAG_DUCK, @@ -224,10 +224,10 @@ const struct SpriteTemplate gUnknown_83E67F0 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B0DF0, + .callback = AnimDizzyPunchDuck, }; -const struct SpriteTemplate gUnknown_83E6808 = +const struct SpriteTemplate gBrickBreakWallSpriteTemplate = { .tileTag = ANIM_TAG_BLUE_LIGHT_WALL, .paletteTag = ANIM_TAG_BLUE_LIGHT_WALL, @@ -235,10 +235,10 @@ const struct SpriteTemplate gUnknown_83E6808 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B0E80, + .callback = AnimBrickBreakWall, }; -const struct SpriteTemplate gUnknown_83E6820 = +const struct SpriteTemplate gBrickBreakWallShardSpriteTemplate = { .tileTag = ANIM_TAG_TORN_METAL, .paletteTag = ANIM_TAG_TORN_METAL, @@ -246,10 +246,10 @@ const struct SpriteTemplate gUnknown_83E6820 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B0F68, + .callback = AnimBrickBreakWallShard, }; -static const union AffineAnimCmd gUnknown_83E6838[] = +static const union AffineAnimCmd sAffineAnim_SuperpowerOrb[] = { AFFINEANIMCMD_FRAME(0x20, 0x20, 0, 0), AFFINEANIMCMD_FRAME(0x4, 0x4, 0, 64), @@ -258,23 +258,23 @@ static const union AffineAnimCmd gUnknown_83E6838[] = AFFINEANIMCMD_JUMP(2), }; -static const union AffineAnimCmd *const gUnknown_83E6860[] = +static const union AffineAnimCmd *const sAffineAnims_SuperpowerOrb[] = { - gUnknown_83E6838, + sAffineAnim_SuperpowerOrb, }; -const struct SpriteTemplate gUnknown_83E6864 = +const struct SpriteTemplate gSuperpowerOrbSpriteTemplate = { .tileTag = ANIM_TAG_CIRCLE_OF_LIGHT, .paletteTag = ANIM_TAG_CIRCLE_OF_LIGHT, .oam = &gOamData_AffineDouble_ObjBlend_64x64, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_83E6860, - .callback = sub_80B107C, + .affineAnims = sAffineAnims_SuperpowerOrb, + .callback = AnimSuperpowerOrb, }; -const struct SpriteTemplate gUnknown_83E687C = +const struct SpriteTemplate gSuperpowerRockSpriteTemplate = { .tileTag = ANIM_TAG_FLAT_ROCK, .paletteTag = ANIM_TAG_FLAT_ROCK, @@ -282,10 +282,10 @@ const struct SpriteTemplate gUnknown_83E687C = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B1188, + .callback = AnimSuperpowerRock, }; -const struct SpriteTemplate gUnknown_83E6894 = +const struct SpriteTemplate gSuperpowerFireballSpriteTemplate = { .tileTag = ANIM_TAG_METEOR, .paletteTag = ANIM_TAG_METEOR, @@ -293,21 +293,21 @@ const struct SpriteTemplate gUnknown_83E6894 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B12E8, + .callback = AnimSuperpowerFireball, }; -const struct SpriteTemplate gUnknown_83E68AC = +const struct SpriteTemplate gArmThrustHandSpriteTemplate = { .tileTag = ANIM_TAG_HANDS_AND_FEET, .paletteTag = ANIM_TAG_HANDS_AND_FEET, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_83E66CC, + .anims = sAnims_HandOrFoot, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B13F8, + .callback = AnimArmThrustHit, }; -static const union AnimCmd gUnknown_83E68C4[] = +static const union AnimCmd sAnim_RevengeSmallScratch_0[] = { ANIMCMD_FRAME(0, 4), ANIMCMD_FRAME(16, 4), @@ -315,7 +315,7 @@ static const union AnimCmd gUnknown_83E68C4[] = ANIMCMD_END, }; -static const union AnimCmd gUnknown_83E68D4[] = +static const union AnimCmd sAnim_RevengeSmallScratch_1[] = { ANIMCMD_FRAME(0, 4, .vFlip = TRUE), ANIMCMD_FRAME(16, 4, .vFlip = TRUE), @@ -323,7 +323,7 @@ static const union AnimCmd gUnknown_83E68D4[] = ANIMCMD_END, }; -static const union AnimCmd gUnknown_83E68E4[] = +static const union AnimCmd sAnim_RevengeSmallScratch_2[] = { ANIMCMD_FRAME(0, 4, .hFlip = TRUE), ANIMCMD_FRAME(16, 4, .hFlip = TRUE), @@ -331,84 +331,84 @@ static const union AnimCmd gUnknown_83E68E4[] = ANIMCMD_END, }; -static const union AnimCmd *const gUnknown_83E68F4[] = +static const union AnimCmd *const sAnims_RevengeSmallScratch[] = { - gUnknown_83E68C4, - gUnknown_83E68D4, - gUnknown_83E68E4, + sAnim_RevengeSmallScratch_0, + sAnim_RevengeSmallScratch_1, + sAnim_RevengeSmallScratch_2, }; -const struct SpriteTemplate gUnknown_83E6900 = +const struct SpriteTemplate gRevengeSmallScratchSpriteTemplate = { .tileTag = ANIM_TAG_PURPLE_SCRATCH, .paletteTag = ANIM_TAG_PURPLE_SCRATCH, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_83E68F4, + .anims = sAnims_RevengeSmallScratch, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B1484, + .callback = AnimRevengeScratch, }; -static const union AnimCmd gUnknown_83E6918[] = +static const union AnimCmd sAnim_RevengeBigScratch_0[] = { ANIMCMD_FRAME(0, 6), ANIMCMD_FRAME(64, 6), ANIMCMD_END, }; -static const union AnimCmd gUnknown_83E6924[] = +static const union AnimCmd sAnim_RevengeBigScratch_1[] = { ANIMCMD_FRAME(0, 6, .vFlip = TRUE, .hFlip = TRUE), ANIMCMD_FRAME(64, 6, .vFlip = TRUE, .hFlip = TRUE), ANIMCMD_END, }; -static const union AnimCmd gUnknown_83E6930[] = +static const union AnimCmd sAnim_RevengeBigScratch_2[] = { ANIMCMD_FRAME(0, 6, .hFlip = TRUE), ANIMCMD_FRAME(64, 6, .hFlip = TRUE), ANIMCMD_END, }; -static const union AnimCmd *const gUnknown_83E693C[] = +static const union AnimCmd *const sAnims_RevengeBigScratch[] = { - gUnknown_83E6918, - gUnknown_83E6924, - gUnknown_83E6930, + sAnim_RevengeBigScratch_0, + sAnim_RevengeBigScratch_1, + sAnim_RevengeBigScratch_2, }; -const struct SpriteTemplate gUnknown_83E6948 = +const struct SpriteTemplate gRevengeBigScratchSpriteTemplate = { .tileTag = ANIM_TAG_PURPLE_SWIPE, .paletteTag = ANIM_TAG_PURPLE_SWIPE, .oam = &gOamData_AffineOff_ObjNormal_64x64, - .anims = gUnknown_83E693C, + .anims = sAnims_RevengeBigScratch, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B1484, + .callback = AnimRevengeScratch, }; -static const union AffineAnimCmd gUnknown_83E6960[] = +static const union AffineAnimCmd sAffineAnim_FocusPunchFist[] = { AFFINEANIMCMD_FRAME(0x200, 0x200, 0, 0), AFFINEANIMCMD_FRAME(-0x20, -0x20, 0, 8), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd *const gUnknown_83E6978[] = +static const union AffineAnimCmd *const sAffineAnims_FocusPunchFist[] = { - gUnknown_83E6960, + sAffineAnim_FocusPunchFist, }; -const struct SpriteTemplate gUnknown_83E697C = +const struct SpriteTemplate gFocusPunchFistSpriteTemplate = { .tileTag = ANIM_TAG_HANDS_AND_FEET, .paletteTag = ANIM_TAG_HANDS_AND_FEET, .oam = &gOamData_AffineDouble_ObjNormal_32x32, - .anims = gUnknown_83E66CC, + .anims = sAnims_HandOrFoot, .images = NULL, - .affineAnims = gUnknown_83E6978, - .callback = sub_80B14F0, + .affineAnims = sAffineAnims_FocusPunchFist, + .callback = AnimFocusPunchFist, }; static void unc_080B08A0(struct Sprite *sprite) @@ -420,7 +420,7 @@ static void unc_080B08A0(struct Sprite *sprite) StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); } -static void sub_80B08DC(struct Sprite *sprite) +static void AnimSlideHandOrFootToTarget(struct Sprite *sprite) { if (gBattleAnimArgs[7] == 1 && GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) { @@ -432,14 +432,14 @@ static void sub_80B08DC(struct Sprite *sprite) AnimSnoreZ(sprite); } -static void sub_80B0928(struct Sprite *sprite) +static void AnimJumpKick(struct Sprite *sprite) { if (IsContest()) { gBattleAnimArgs[1] = -gBattleAnimArgs[1]; gBattleAnimArgs[3] = -gBattleAnimArgs[3]; } - sub_80B08DC(sprite); + AnimSlideHandOrFootToTarget(sprite); } // Displays a basic fist or foot sprite for a given duration. @@ -461,7 +461,7 @@ static void AnimBasicFistOrFoot(struct Sprite *sprite) StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); } -static void sub_80B09A4(struct Sprite *sprite) +static void AnimFistOrFootRandomPos(struct Sprite *sprite) { u8 battler; s16 xMod, yMod; @@ -516,7 +516,7 @@ static void sub_80B0B2C(struct Sprite *sprite) } } -static void sub_80B0B80(struct Sprite *sprite) +static void AnimCrossChopHand(struct Sprite *sprite) { InitSpritePosToAnimTarget(sprite, TRUE); sprite->data[0] = 30; @@ -550,7 +550,7 @@ static void sub_80B0BD8(struct Sprite *sprite) } } -static void sub_80B0C28(struct Sprite *sprite) +static void AnimSlidingKick(struct Sprite *sprite) { if (BATTLE_PARTNER(gBattleAnimAttacker) == gBattleAnimTarget && GetBattlerPosition(gBattleAnimTarget) < B_POSITION_PLAYER_RIGHT) gBattleAnimArgs[0] *= -1; @@ -636,7 +636,7 @@ static void AnimStompFootEnd(struct Sprite *sprite) StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); } -static void sub_80B0DF0(struct Sprite *sprite) +static void AnimDizzyPunchDuck(struct Sprite *sprite) { if (sprite->data[0] == 0) { @@ -658,7 +658,7 @@ static void sub_80B0DF0(struct Sprite *sprite) } } -static void sub_80B0E80(struct Sprite *sprite) +static void AnimBrickBreakWall(struct Sprite *sprite) { if (gBattleAnimArgs[0] == 0) { @@ -709,7 +709,7 @@ static void sub_80B0EF0(struct Sprite *sprite) } } -static void sub_80B0F68(struct Sprite *sprite) +static void AnimBrickBreakWallShard(struct Sprite *sprite) { if (gBattleAnimArgs[0] == 0) { @@ -756,7 +756,7 @@ static void sub_80B1050(struct Sprite *sprite) DestroyAnimSprite(sprite); } -static void sub_80B107C(struct Sprite *sprite) +static void AnimSuperpowerOrb(struct Sprite *sprite) { if (gBattleAnimArgs[0] == 0) { @@ -792,7 +792,7 @@ static void sub_80B111C(struct Sprite *sprite) } } -static void sub_80B1188(struct Sprite *sprite) +static void AnimSuperpowerRock(struct Sprite *sprite) { sprite->pos1.x = gBattleAnimArgs[0]; sprite->pos1.y = 120; @@ -847,7 +847,7 @@ static void sub_80B12A4(struct Sprite *sprite) DestroyAnimSprite(sprite); } -static void sub_80B12E8(struct Sprite *sprite) +static void AnimSuperpowerFireball(struct Sprite *sprite) { u8 battler; @@ -884,7 +884,7 @@ static void sub_80B13D4(struct Sprite *sprite) ++sprite->data[0]; } -static void sub_80B13F8(struct Sprite *sprite) +static void AnimArmThrustHit(struct Sprite *sprite) { u8 turn; @@ -908,7 +908,7 @@ static void sub_80B13F8(struct Sprite *sprite) sprite->callback = sub_80B13D4; } -static void sub_80B1484(struct Sprite *sprite) +static void AnimRevengeScratch(struct Sprite *sprite) { if (gBattleAnimArgs[2] == 0) InitSpritePosToAnimAttacker(sprite, 0); @@ -922,7 +922,7 @@ static void sub_80B1484(struct Sprite *sprite) StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); } -static void sub_80B14F0(struct Sprite *sprite) +static void AnimFocusPunchFist(struct Sprite *sprite) { if (sprite->affineAnimEnded) { @@ -933,7 +933,7 @@ static void sub_80B14F0(struct Sprite *sprite) } } -void sub_80B1530(u8 taskId) +void AnimTask_MoveSkyUppercutBg(u8 taskId) { struct Task *task = &gTasks[taskId]; diff --git a/src/fire.c b/src/fire.c index a5a2ee5f6..f0b3d4451 100644 --- a/src/fire.c +++ b/src/fire.c @@ -6,21 +6,21 @@ #include "trig.h" #include "constants/songs.h" -static void sub_80AC90C(struct Sprite *sprite); -static void sub_80AC94C(struct Sprite *sprite); -static void sub_80ACA00(struct Sprite *sprite); -static void sub_80AC990(struct Sprite *sprite); +static void AnimFireSpiralInward(struct Sprite *sprite); +static void AnimFireSpread(struct Sprite *sprite); +static void AnimLargeFlame(struct Sprite *sprite); +static void AnimFirePlume(struct Sprite *sprite); static void sub_80ACAA8(struct Sprite *sprite); static void sub_80ACBB0(struct Sprite *sprite); static void AnimEmberFlare(struct Sprite *sprite); -static void sub_80ACC44(struct Sprite *sprite); +static void AnimBurnFlame(struct Sprite *sprite); static void AnimFireRing(struct Sprite *sprite); static void AnimFireCross(struct Sprite *sprite); -static void sub_80ACDE8(struct Sprite *sprite); -static void sub_80AD330(struct Sprite *sprite); -static void sub_80AD454(struct Sprite *sprite); -static void sub_80AD540(struct Sprite *sprite); -static void sub_80AD6F4(struct Sprite *sprite); +static void AnimFireSpiralOutward(struct Sprite *sprite); +static void AnimEruptionLaunchRock(struct Sprite *sprite); +static void AnimEruptionFallingRock(struct Sprite *sprite); +static void AnimWillOWispOrb(struct Sprite *sprite); +static void AnimWillOWispFire(struct Sprite *sprite); static void sub_80ACA6C(struct Sprite *sprite); static void sub_80ACB1C(struct Sprite *sprite); static void AnimFireRing_Step1(struct Sprite *sprite); @@ -38,7 +38,7 @@ static void sub_80AD4A8(struct Sprite *sprite); static void sub_80AD690(struct Sprite *sprite); static void sub_80AD870(u8 taskId); -static const union AnimCmd gUnknown_83E5BB8[] = +static const union AnimCmd sAnim_FireSpiralSpread_0[] = { ANIMCMD_FRAME(16, 4), ANIMCMD_FRAME(32, 4), @@ -46,7 +46,7 @@ static const union AnimCmd gUnknown_83E5BB8[] = ANIMCMD_JUMP(0), }; -static const union AnimCmd gUnknown_83E5BC8[] = +static const union AnimCmd sAnim_FireSpiralSpread_1[] = { ANIMCMD_FRAME(16, 4, .vFlip = TRUE, .hFlip = TRUE), ANIMCMD_FRAME(32, 4, .vFlip = TRUE, .hFlip = TRUE), @@ -54,35 +54,35 @@ static const union AnimCmd gUnknown_83E5BC8[] = ANIMCMD_JUMP(0), }; -static const union AnimCmd *const gUnknown_83E5BD8[] = +static const union AnimCmd *const sAnims_FireSpiralSpread[] = { - gUnknown_83E5BB8, - gUnknown_83E5BC8, + sAnim_FireSpiralSpread_0, + sAnim_FireSpiralSpread_1, }; -const struct SpriteTemplate gUnknown_83E5BE0 = +const struct SpriteTemplate gFireSpiralInwardSpriteTemplate = { .tileTag = ANIM_TAG_SMALL_EMBER, .paletteTag = ANIM_TAG_SMALL_EMBER, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_83E5BD8, + .anims = sAnims_FireSpiralSpread, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80AC90C, + .callback = AnimFireSpiralInward, }; -const struct SpriteTemplate gUnknown_83E5BF8 = +const struct SpriteTemplate gFireSpreadSpriteTemplate = { .tileTag = ANIM_TAG_SMALL_EMBER, .paletteTag = ANIM_TAG_SMALL_EMBER, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_83E5BD8, + .anims = sAnims_FireSpiralSpread, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80AC94C, + .callback = AnimFireSpread, }; -static const union AnimCmd gUnknown_83E5C10[] = +static const union AnimCmd sAnim_LargeFlame[] = { ANIMCMD_FRAME(0, 3), ANIMCMD_FRAME(16, 3), @@ -95,12 +95,12 @@ static const union AnimCmd gUnknown_83E5C10[] = ANIMCMD_JUMP(0), }; -static const union AnimCmd *const gUnknown_83E5C34[] = +static const union AnimCmd *const sAnims_LargeFlame[] = { - gUnknown_83E5C10, + sAnim_LargeFlame, }; -static const union AnimCmd gUnknown_83E5C38[] = +static const union AnimCmd sAnim_FirePlume[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_FRAME(16, 5), @@ -110,54 +110,54 @@ static const union AnimCmd gUnknown_83E5C38[] = ANIMCMD_JUMP(0), }; -static const union AnimCmd *const gUnknown_83E5C50[] = +static const union AnimCmd *const sAnims_FirePlume[] = { - gUnknown_83E5C38, + sAnim_FirePlume, }; -static const union AffineAnimCmd gUnknown_83E5C54[] = +static const union AffineAnimCmd sAffineAnim_LargeFlame[] = { AFFINEANIMCMD_FRAME(0x32, 0x100, 0, 0), AFFINEANIMCMD_FRAME(0x20, 0x0, 0, 7), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd *const gUnknown_83E5C6C[] = +static const union AffineAnimCmd *const sAffineAnims_LargeFlame[] = { - gUnknown_83E5C54, + sAffineAnim_LargeFlame, }; -const struct SpriteTemplate gUnknown_83E5C70 = +const struct SpriteTemplate gLargeFlameSpriteTemplate = { .tileTag = ANIM_TAG_FIRE, .paletteTag = ANIM_TAG_FIRE, .oam = &gOamData_AffineNormal_ObjNormal_32x32, - .anims = gUnknown_83E5C34, + .anims = sAnims_LargeFlame, .images = NULL, - .affineAnims = gUnknown_83E5C6C, - .callback = sub_80ACA00, + .affineAnims = sAffineAnims_LargeFlame, + .callback = AnimLargeFlame, }; -const struct SpriteTemplate gUnknown_83E5C88 = +const struct SpriteTemplate gLargeFlameScatterSpriteTemplate = { .tileTag = ANIM_TAG_FIRE, .paletteTag = ANIM_TAG_FIRE, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_83E5C34, + .anims = sAnims_LargeFlame, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80ACA00, + .callback = AnimLargeFlame, }; -const struct SpriteTemplate gUnknown_83E5CA0 = +const struct SpriteTemplate gFirePlumeSpriteTemplate = { .tileTag = ANIM_TAG_FIRE_PLUME, .paletteTag = ANIM_TAG_FIRE_PLUME, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_83E5C50, + .anims = sAnims_FirePlume, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80AC990, + .callback = AnimFirePlume, }; const struct SpriteTemplate gUnknown_83E5CB8 = @@ -165,10 +165,10 @@ const struct SpriteTemplate gUnknown_83E5CB8 = .tileTag = ANIM_TAG_SMALL_EMBER, .paletteTag = ANIM_TAG_SMALL_EMBER, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_83E5C50, + .anims = sAnims_FirePlume, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80AC990, + .callback = AnimFirePlume, }; static const union AnimCmd gUnknown_83E5CD0[] = @@ -195,30 +195,30 @@ const struct SpriteTemplate gUnknown_83E5CE4 = .callback = sub_80ACAA8, }; -static const union AffineAnimCmd gUnknown_83E5CFC[] = +static const union AffineAnimCmd sAffineAnim_SunlightRay[] = { AFFINEANIMCMD_FRAME(0x50, 0x50, 0, 0), AFFINEANIMCMD_FRAME(0x2, 0x2, 10, 1), AFFINEANIMCMD_JUMP(1), }; -static const union AffineAnimCmd *const gUnknown_83E5D14[] = +static const union AffineAnimCmd *const sAffineAnims_SunlightRay[] = { - gUnknown_83E5CFC, + sAffineAnim_SunlightRay, }; -const struct SpriteTemplate gUnknown_83E5D18 = +const struct SpriteTemplate gSunlightRaySpriteTemplate = { .tileTag = ANIM_TAG_SUNLIGHT, .paletteTag = ANIM_TAG_SUNLIGHT, .oam = &gOamData_AffineNormal_ObjBlend_32x32, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_83E5D14, + .affineAnims = sAffineAnims_SunlightRay, .callback = sub_80ACBB0, }; -static const union AnimCmd gUnknown_83E5D30[] = +static const union AnimCmd sAnim_BasicFire[] = { ANIMCMD_FRAME(0, 4), ANIMCMD_FRAME(16, 4), @@ -228,9 +228,9 @@ static const union AnimCmd gUnknown_83E5D30[] = ANIMCMD_JUMP(0), }; -const union AnimCmd *const gUnknown_83E5D48[] = +const union AnimCmd *const gAnims_BasicFire[] = { - gUnknown_83E5D30, + sAnim_BasicFire, }; const struct SpriteTemplate gEmberSpriteTemplate = @@ -249,44 +249,44 @@ const struct SpriteTemplate gEmberFlareSpriteTemplate = .tileTag = ANIM_TAG_SMALL_EMBER, .paletteTag = ANIM_TAG_SMALL_EMBER, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_83E5D48, + .anims = gAnims_BasicFire, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimEmberFlare, }; -const struct SpriteTemplate gUnknown_83E5D7C = +const struct SpriteTemplate gBurnFlameSpriteTemplate = { .tileTag = ANIM_TAG_SMALL_EMBER, .paletteTag = ANIM_TAG_SMALL_EMBER, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_83E5D48, + .anims = gAnims_BasicFire, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80ACC44, + .callback = AnimBurnFlame, }; -const struct SpriteTemplate gUnknown_83E5D94 = +const struct SpriteTemplate gFireBlastRingSpriteTemplate = { .tileTag = ANIM_TAG_SMALL_EMBER, .paletteTag = ANIM_TAG_SMALL_EMBER, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_83E5D48, + .anims = gAnims_BasicFire, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimFireRing, }; -static const union AnimCmd gUnknown_83E5DAC[] = +static const union AnimCmd sAnim_FireBlastCross[] = { ANIMCMD_FRAME(32, 6), ANIMCMD_FRAME(48, 6), ANIMCMD_JUMP(0), }; -static const union AnimCmd *const gUnknown_83E5DB8[] = +static const union AnimCmd *const sAnims_FireBlastCross[] = { - gUnknown_83E5DAC, + sAnim_FireBlastCross, }; static const union AffineAnimCmd gUnknown_83E5DBC[] = @@ -307,40 +307,40 @@ static const union AffineAnimCmd *const gUnknown_83E5DDC[] = gUnknown_83E5DCC, }; -const struct SpriteTemplate gUnknown_83E5DE4 = +const struct SpriteTemplate gFireBlastCrossSpriteTemplate = { .tileTag = ANIM_TAG_SMALL_EMBER, .paletteTag = ANIM_TAG_SMALL_EMBER, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_83E5DB8, + .anims = sAnims_FireBlastCross, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimFireCross, }; -const struct SpriteTemplate gUnknown_83E5DFC = +const struct SpriteTemplate gFireSpiralOutwardSpriteTemplate = { .tileTag = ANIM_TAG_SMALL_EMBER, .paletteTag = ANIM_TAG_SMALL_EMBER, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_83E5D48, + .anims = gAnims_BasicFire, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80ACDE8, + .callback = AnimFireSpiralOutward, }; -const struct SpriteTemplate gUnknown_83E5E14 = +const struct SpriteTemplate gWeatherBallFireDownSpriteTemplate = { .tileTag = ANIM_TAG_SMALL_EMBER, .paletteTag = ANIM_TAG_SMALL_EMBER, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_83E5D48, + .anims = gAnims_BasicFire, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8077350, + .callback = AnimWeatherBallDown, }; -static const struct SpriteTemplate gUnknown_83E5E2C = +static const struct SpriteTemplate gEruptionLaunchRockSpriteTemplate = { .tileTag = ANIM_TAG_WARM_ROCK, .paletteTag = ANIM_TAG_WARM_ROCK, @@ -348,10 +348,10 @@ static const struct SpriteTemplate gUnknown_83E5E2C = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80AD330, + .callback = AnimEruptionLaunchRock, }; -static const s16 sHeatedRockCoords[][2] = +static const s16 sEruptionLaunchRockCoords[][2] = { {-2, -5}, {-1, -1}, @@ -362,7 +362,7 @@ static const s16 sHeatedRockCoords[][2] = { 4, -7}, }; -const struct SpriteTemplate gUnknown_83E5E60 = +const struct SpriteTemplate gEruptionFallingRockSpriteTemplate = { .tileTag = ANIM_TAG_WARM_ROCK, .paletteTag = ANIM_TAG_WARM_ROCK, @@ -370,10 +370,10 @@ const struct SpriteTemplate gUnknown_83E5E60 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80AD454, + .callback = AnimEruptionFallingRock, }; -static const union AnimCmd gUnknown_83E5E78[] = +static const union AnimCmd sAnim_WillOWispOrb_0[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_FRAME(4, 5), @@ -382,44 +382,44 @@ static const union AnimCmd gUnknown_83E5E78[] = ANIMCMD_JUMP(0), }; -static const union AnimCmd gUnknown_83E5E8C[] = +static const union AnimCmd sAnim_WillOWispOrb_1[] = { ANIMCMD_FRAME(16, 5), ANIMCMD_END, }; -static const union AnimCmd gUnknown_83E5E94[] = +static const union AnimCmd sAnim_WillOWispOrb_2[] = { ANIMCMD_FRAME(20, 5), ANIMCMD_END, }; -static const union AnimCmd gUnknown_83E5E9C[] = +static const union AnimCmd sAnim_WillOWispOrb_3[] = { ANIMCMD_FRAME(20, 5), ANIMCMD_END, }; -static const union AnimCmd *const gUnknown_83E5EA4[] = +static const union AnimCmd *const sAnims_WillOWispOrb[] = { - gUnknown_83E5E78, - gUnknown_83E5E8C, - gUnknown_83E5E94, - gUnknown_83E5E9C, + sAnim_WillOWispOrb_0, + sAnim_WillOWispOrb_1, + sAnim_WillOWispOrb_2, + sAnim_WillOWispOrb_3, }; -const struct SpriteTemplate gUnknown_83E5EB4 = +const struct SpriteTemplate gWillOWispOrbSpriteTemplate = { .tileTag = ANIM_TAG_WISP_ORB, .paletteTag = ANIM_TAG_WISP_ORB, .oam = &gOamData_AffineOff_ObjNormal_16x16, - .anims = gUnknown_83E5EA4, + .anims = sAnims_WillOWispOrb, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80AD540, + .callback = AnimWillOWispOrb, }; -static const union AnimCmd gUnknown_83E5ECC[] = +static const union AnimCmd sAnim_WillOWispFire[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_FRAME(16, 5), @@ -428,33 +428,36 @@ static const union AnimCmd gUnknown_83E5ECC[] = ANIMCMD_JUMP(0), }; -static const union AnimCmd *const gUnknown_83E5EE0[] = +static const union AnimCmd *const sAnims_WillOWispFire[] = { - gUnknown_83E5ECC, + sAnim_WillOWispFire, }; -const struct SpriteTemplate gUnknown_83E5EE4 = +const struct SpriteTemplate gWillOWispFireSpriteTemplate = { .tileTag = ANIM_TAG_WISP_FIRE, .paletteTag = ANIM_TAG_WISP_FIRE, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_83E5EE0, + .anims = sAnims_WillOWispFire, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80AD6F4, + .callback = AnimWillOWispFire, }; -static const s8 gUnknown_83E5EFC[16] = +// Directions for shaking up/down or left/right in AnimTask_ShakeTargetInPattern +// Only first 10 values are ever accessed. +// First pattern results in larger shakes, second results in faster oscillation +static const s8 sShakeDirsPattern0[16] = { -1, -1, 0, 1, 1, 0, 0, -1, -1, 1, 1, 0, 0, -1, 0, 1, }; -static const s8 gUnknown_83E5F0C[16] = +static const s8 sShakeDirsPattern1[16] = { -1, 0, 1, 0, -1, 1, 0, -1, 0, 1, 0, -1, 0, 1, 0, 1, }; -static void sub_80AC90C(struct Sprite *sprite) +static void AnimFireSpiralInward(struct Sprite *sprite) { sprite->data[0] = gBattleAnimArgs[0]; sprite->data[1] = 0x3C; @@ -466,7 +469,7 @@ static void sub_80AC90C(struct Sprite *sprite) sprite->callback(sprite); } -static void sub_80AC94C(struct Sprite *sprite) +static void AnimFireSpread(struct Sprite *sprite) { SetAnimSpriteInitialXOffset(sprite, gBattleAnimArgs[0]); sprite->pos1.y += gBattleAnimArgs[1]; @@ -477,7 +480,7 @@ static void sub_80AC94C(struct Sprite *sprite) StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); } -static void sub_80AC990(struct Sprite *sprite) +static void AnimFirePlume(struct Sprite *sprite) { SetSpriteCoordsToAnimAttackerCoords(sprite); if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) @@ -498,7 +501,7 @@ static void sub_80AC990(struct Sprite *sprite) sprite->callback = sub_80ACA6C; } -static void sub_80ACA00(struct Sprite *sprite) +static void AnimLargeFlame(struct Sprite *sprite) { if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) { @@ -606,7 +609,7 @@ static void AnimEmberFlare(struct Sprite *sprite) sprite->callback(sprite); } -static void sub_80ACC44(struct Sprite *sprite) +static void AnimBurnFlame(struct Sprite *sprite) { gBattleAnimArgs[0] = -gBattleAnimArgs[0]; gBattleAnimArgs[2] = -gBattleAnimArgs[2]; @@ -696,7 +699,7 @@ static void AnimFireCross(struct Sprite *sprite) sprite->callback = TranslateSpriteLinear; } -static void sub_80ACDE8(struct Sprite *sprite) +static void AnimFireSpiralOutward(struct Sprite *sprite) { InitSpritePosToAnimAttacker(sprite, 1); sprite->data[1] = gBattleAnimArgs[2]; @@ -725,7 +728,7 @@ static void sub_80ACE50(struct Sprite *sprite) DestroyAnimSprite(sprite); } -void sub_80ACEA4(u8 taskId) // initialize animation task for Move_ERUPTION? +void AnimTask_EruptionLaunchRocks(u8 taskId) // initialize animation task for Move_ERUPTION? { struct Task *task = &gTasks[taskId]; @@ -857,14 +860,14 @@ static void sub_80AD1F8(u8 spriteId, u8 taskId, u8 a3) } for (i = 0, j = 0; i <= 6; ++i) { - u8 spriteId = CreateSprite(&gUnknown_83E5E2C, x, y, 2); + u8 spriteId = CreateSprite(&gEruptionLaunchRockSpriteTemplate, x, y, 2); if (spriteId != 0x40) { gSprites[spriteId].oam.tileNum += j * 4 + 0x40; if (++j >= 5) j = 0; - sub_80AD3C8(&gSprites[spriteId], sHeatedRockCoords[i][0] * sign, sHeatedRockCoords[i][1]); + sub_80AD3C8(&gSprites[spriteId], sEruptionLaunchRockCoords[i][0] * sign, sEruptionLaunchRockCoords[i][1]); gSprites[spriteId].data[6] = taskId; gSprites[spriteId].data[7] = a3; ++gTasks[taskId].data[a3]; @@ -872,7 +875,7 @@ static void sub_80AD1F8(u8 spriteId, u8 taskId, u8 a3) } } -static void sub_80AD330(struct Sprite *sprite) +static void AnimEruptionLaunchRock(struct Sprite *sprite) { sub_80AD3E4(sprite); if (sprite->invisible) @@ -922,7 +925,7 @@ static void sub_80AD3E4(struct Sprite *sprite) sprite->invisible = TRUE; } -static void sub_80AD454(struct Sprite *sprite) +static void AnimEruptionFallingRock(struct Sprite *sprite) { sprite->pos1.x = gBattleAnimArgs[0]; sprite->pos1.y = gBattleAnimArgs[1]; @@ -971,7 +974,7 @@ static void sub_80AD4A8(struct Sprite *sprite) } //wisp orb -static void sub_80AD540(struct Sprite *sprite) +static void AnimWillOWispOrb(struct Sprite *sprite) { switch (sprite->data[0]) { @@ -1040,7 +1043,7 @@ static void sub_80AD690(struct Sprite *sprite) } //wisp fire -static void sub_80AD6F4(struct Sprite *sprite) +static void AnimWillOWispFire(struct Sprite *sprite) { if (!sprite->data[0]) { @@ -1072,7 +1075,7 @@ static void sub_80AD6F4(struct Sprite *sprite) DestroyAnimSprite(sprite); } -void sub_80AD800(u8 taskId) +void AnimTask_MoveHeatWaveTargets(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -1162,7 +1165,7 @@ void AnimTask_BlendBackground(u8 taskId) DestroyAnimVisualTask(taskId); } -void sub_80ADAD8(u8 taskId) +void AnimTask_ShakeTargetInPattern(u8 taskId) { s8 unk; u8 spriteId; @@ -1177,9 +1180,9 @@ void sub_80ADAD8(u8 taskId) ++gTasks[taskId].data[0]; spriteId = gBattlerSpriteIds[gBattleAnimTarget]; if (!gTasks[taskId].data[4]) - unk = gUnknown_83E5EFC[gTasks[taskId].data[0] % 10]; + unk = sShakeDirsPattern0[gTasks[taskId].data[0] % 10]; else - unk = gUnknown_83E5F0C[gTasks[taskId].data[0] % 10]; + unk = sShakeDirsPattern1[gTasks[taskId].data[0] % 10]; if (gTasks[taskId].data[3] == 1) gSprites[spriteId].pos2.y = gBattleAnimArgs[1] * unk < 0 ? -(gBattleAnimArgs[1] * unk) : gBattleAnimArgs[1] * unk; else diff --git a/src/flying.c b/src/flying.c index 83c8e1f0e..18cfa4e39 100644 --- a/src/flying.c +++ b/src/flying.c @@ -5,22 +5,22 @@ #include "constants/battle_anim.h" #include "random.h" -static void sub_80B18E4(struct Sprite *sprite); -static void sub_80B1A1C(struct Sprite *sprite); -static void sub_80B1AB8(struct Sprite *sprite); -static void sub_80B1BB0(struct Sprite *sprite); -static void sub_80B1C3C(struct Sprite *sprite); -static void sub_80B1D88(struct Sprite *sprite); +static void AnimEllipticalGust(struct Sprite *sprite); +static void AnimGustToTarget(struct Sprite *sprite); +static void AnimAirWaveCrescent(struct Sprite *sprite); +static void AnimFlyBallUp(struct Sprite *sprite); +static void AnimFlyBallAttack(struct Sprite *sprite); +static void AnimFallingFeather(struct Sprite *sprite); static void sub_80B24C0(struct Sprite *sprite); static void sub_80B2514(struct Sprite *sprite); -static void sub_80B2780(struct Sprite *sprite); -static void sub_80B2914(struct Sprite *sprite); -static void sub_80B2974(struct Sprite *sprite); -static void sub_80B2A08(struct Sprite *sprite); -static void sub_80B2AF4(struct Sprite *sprite); -static void sub_80B2BD8(struct Sprite *sprite); +static void AnimWhirlwindLine(struct Sprite *sprite); +static void AnimBounceBallShrink(struct Sprite *sprite); +static void AnimBounceBallLand(struct Sprite *sprite); +static void AnimDiveBall(struct Sprite *sprite); +static void AnimDiveWaterSplash(struct Sprite *sprite); +static void AnimSprayWaterDroplet(struct Sprite *sprite); static void sub_80B2CE4(struct Sprite *sprite); -static void sub_80B2D64(struct Sprite *sprite); +static void AnimSkyAttackBird(struct Sprite *sprite); static void sub_80B190C(struct Sprite *sprite); static void sub_80B198C(u8 taskId); static void sub_80B1A9C(struct Sprite *sprite); @@ -35,7 +35,7 @@ static void sub_80B2C88(struct Sprite *sprite); static void sub_80B2CF8(struct Sprite *sprite); static void sub_80B2E20(struct Sprite *sprite); -const struct SpriteTemplate gUnknown_83E6AE8 = +const struct SpriteTemplate gEllipticalGustSpriteTemplate = { .tileTag = ANIM_TAG_GUST, .paletteTag = ANIM_TAG_GUST, @@ -43,33 +43,33 @@ const struct SpriteTemplate gUnknown_83E6AE8 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B18E4, + .callback = AnimEllipticalGust, }; -static const union AffineAnimCmd gUnknown_83E6B00[] = +static const union AffineAnimCmd sAffineAnim_GustToTarget[] = { AFFINEANIMCMD_FRAME(0x10, 0x100, 0, 0), AFFINEANIMCMD_FRAME(0xA, 0x0, 0, 24), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd *const gUnknown_83E6B18[] = +static const union AffineAnimCmd *const sAffineAnims_GustToTarget[] = { - gUnknown_83E6B00, + sAffineAnim_GustToTarget, }; -const struct SpriteTemplate gUnknown_83E6B1C = +const struct SpriteTemplate gGustToTargetSpriteTemplate = { .tileTag = ANIM_TAG_GUST, .paletteTag = ANIM_TAG_GUST, .oam = &gOamData_AffineNormal_ObjNormal_32x64, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_83E6B18, - .callback = sub_80B1A1C, + .affineAnims = sAffineAnims_GustToTarget, + .callback = AnimGustToTarget, }; -static const union AnimCmd gUnknown_83E6B34[] = +static const union AnimCmd sAffineAnim_AirWaveCrescent[] = { ANIMCMD_FRAME(0, 3), ANIMCMD_FRAME(0, 3, .hFlip = TRUE), @@ -78,23 +78,23 @@ static const union AnimCmd gUnknown_83E6B34[] = ANIMCMD_JUMP(0), }; -static const union AnimCmd *const gUnknown_83E6B48[] = +static const union AnimCmd *const sAffineAnims_AirWaveCrescent[] = { - gUnknown_83E6B34, + sAffineAnim_AirWaveCrescent, }; -const struct SpriteTemplate gUnknown_83E6B4C = +const struct SpriteTemplate gAirWaveCrescentSpriteTemplate = { .tileTag = ANIM_TAG_AIR_WAVE_2, .paletteTag = ANIM_TAG_AIR_WAVE_2, .oam = &gOamData_AffineOff_ObjNormal_32x16, - .anims = gUnknown_83E6B48, + .anims = sAffineAnims_AirWaveCrescent, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B1AB8, + .callback = AnimAirWaveCrescent, }; -static const union AffineAnimCmd gUnknown_83E6B64[] = +static const union AffineAnimCmd sAffineAnim_FlyBallUp[] = { AFFINEANIMCMD_FRAME(0x10, 0x100, 0, 0), AFFINEANIMCMD_FRAME(0x28, 0x0, 0, 6), @@ -103,78 +103,78 @@ static const union AffineAnimCmd gUnknown_83E6B64[] = AFFINEANIMCMD_END, }; -static const union AffineAnimCmd *const gUnknown_83E6B8C[] = +static const union AffineAnimCmd *const sAffineAnims_FlyBallUp[] = { - gUnknown_83E6B64, + sAffineAnim_FlyBallUp, }; -static const union AffineAnimCmd gUnknown_83E6B90[] = +static const union AffineAnimCmd sAffineAnim_FlyBallAttack_0[] = { AFFINEANIMCMD_FRAME(0x0, 0x0, 50, 1), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd gUnknown_83E6B9C[] = +static const union AffineAnimCmd sAffineAnim_FlyBallAttack_1[] = { AFFINEANIMCMD_FRAME(0x0, 0x0, -40, 1), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd *const gUnknown_83E6BB0[] = +static const union AffineAnimCmd *const sAffineAnims_FlyBallAttack[] = { - gUnknown_83E6B90, - gUnknown_83E6B9C, + sAffineAnim_FlyBallAttack_0, + sAffineAnim_FlyBallAttack_1, }; -const struct SpriteTemplate gUnknown_83E6BB8 = +const struct SpriteTemplate gFlyBallUpSpriteTemplate = { .tileTag = ANIM_TAG_ROUND_SHADOW, .paletteTag = ANIM_TAG_ROUND_SHADOW, .oam = &gOamData_AffineDouble_ObjNormal_64x64, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_83E6B8C, - .callback = sub_80B1BB0, + .affineAnims = sAffineAnims_FlyBallUp, + .callback = AnimFlyBallUp, }; -const struct SpriteTemplate gUnknown_83E6BD0 = +const struct SpriteTemplate gFlyBallAttackSpriteTemplate = { .tileTag = ANIM_TAG_ROUND_SHADOW, .paletteTag = ANIM_TAG_ROUND_SHADOW, .oam = &gOamData_AffineNormal_ObjNormal_64x64, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_83E6BB0, - .callback = sub_80B1C3C, + .affineAnims = sAffineAnims_FlyBallAttack, + .callback = AnimFlyBallAttack, }; -static const union AnimCmd gUnknown_83E6BE8[] = +static const union AnimCmd sAnim_FallingFeather_0[] = { ANIMCMD_FRAME(0, 0), ANIMCMD_END, }; -static const union AnimCmd gUnknown_83E6BF0[] = +static const union AnimCmd sAnim_FallingFeather_1[] = { ANIMCMD_FRAME(16, 0, .hFlip = TRUE), ANIMCMD_END, }; -static const union AnimCmd *const gUnknown_83E6BF8[] = +static const union AnimCmd *const sAnims_FallingFeather[] = { - gUnknown_83E6BE8, - gUnknown_83E6BF0, + sAnim_FallingFeather_0, + sAnim_FallingFeather_1, }; -const struct SpriteTemplate gUnknown_83E6C00 = +const struct SpriteTemplate gFallingFeatherSpriteTemplate = { .tileTag = ANIM_TAG_WHITE_FEATHER, .paletteTag = ANIM_TAG_WHITE_FEATHER, .oam = &gOamData_AffineNormal_ObjNormal_32x32, - .anims = gUnknown_83E6BF8, + .anims = sAnims_FallingFeather, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B1D88, + .callback = AnimFallingFeather, }; // not used @@ -196,13 +196,13 @@ const struct SpriteTemplate gUnknown_83E6C50 = .tileTag = ANIM_TAG_WHITE_FEATHER, .paletteTag = ANIM_TAG_WHITE_FEATHER, .oam = &gOamData_AffineNormal_ObjNormal_32x32, - .anims = gUnknown_83E6BF8, + .anims = sAnims_FallingFeather, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = sub_80B2514, }; -static const union AnimCmd gUnknown_83E6C68[] = +static const union AnimCmd sAnim_WhirlwindLines[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_FRAME(8, 1), @@ -212,23 +212,23 @@ static const union AnimCmd gUnknown_83E6C68[] = ANIMCMD_END, }; -static const union AnimCmd *const gUnknown_83E6C80[] = +static const union AnimCmd *const sAnims_WhirlwindLines[] = { - gUnknown_83E6C68, + sAnim_WhirlwindLines, }; -const struct SpriteTemplate gUnknown_83E6C84 = +const struct SpriteTemplate gWhirlwindLineSpriteTemplate = { .tileTag = ANIM_TAG_WHIRLWIND_LINES, .paletteTag = ANIM_TAG_WHIRLWIND_LINES, .oam = &gOamData_AffineOff_ObjNormal_32x16, - .anims = gUnknown_83E6C80, + .anims = sAnims_WhirlwindLines, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B2780, + .callback = AnimWhirlwindLine, }; -static const union AffineAnimCmd gUnknown_83E6C9C[] = +static const union AffineAnimCmd sAffineAnim_BounceBallShrink[] = { AFFINEANIMCMD_FRAME(0x10, 0x100, 0, 0), AFFINEANIMCMD_FRAME(0x28, 0x0, 0, 6), @@ -238,45 +238,45 @@ static const union AffineAnimCmd gUnknown_83E6C9C[] = AFFINEANIMCMD_END, }; -static const union AffineAnimCmd *const gUnknown_83E6CCC[] = +static const union AffineAnimCmd *const sAffineAnims_BounceBallShrink[] = { - gUnknown_83E6C9C, + sAffineAnim_BounceBallShrink, }; -const struct SpriteTemplate gUnknown_83E6CD0 = +const struct SpriteTemplate gBounceBallShrinkSpriteTemplate = { .tileTag = ANIM_TAG_ROUND_SHADOW, .paletteTag = ANIM_TAG_ROUND_SHADOW, .oam = &gOamData_AffineDouble_ObjNormal_64x64, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_83E6CCC, - .callback = sub_80B2914, + .affineAnims = sAffineAnims_BounceBallShrink, + .callback = AnimBounceBallShrink, }; -static const union AffineAnimCmd gUnknown_83E6CE8[] = +static const union AffineAnimCmd sAffineAnim_BounceBallLand[] = { AFFINEANIMCMD_FRAME(0xA0, 0x100, 0, 0), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd *const gUnknown_83E6CF8[] = +static const union AffineAnimCmd *const sAffineAnims_BounceBallLand[] = { - gUnknown_83E6CE8, + sAffineAnim_BounceBallLand, }; -const struct SpriteTemplate gUnknown_83E6CFC = +const struct SpriteTemplate gBounceBallLandSpriteTemplate = { .tileTag = ANIM_TAG_ROUND_SHADOW, .paletteTag = ANIM_TAG_ROUND_SHADOW, .oam = &gOamData_AffineDouble_ObjNormal_64x64, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_83E6CF8, - .callback = sub_80B2974, + .affineAnims = sAffineAnims_BounceBallLand, + .callback = AnimBounceBallLand, }; -static const union AffineAnimCmd gUnknown_83E6D14[] = +static const union AffineAnimCmd sAffineAnim_DiveBall[] = { AFFINEANIMCMD_FRAME(0x10, 0x100, 0, 0), AFFINEANIMCMD_FRAME(0x28, 0x0, 0, 6), @@ -285,20 +285,20 @@ static const union AffineAnimCmd gUnknown_83E6D14[] = AFFINEANIMCMD_END, }; -static const union AffineAnimCmd *const gUnknown_83E6D3C[] = +static const union AffineAnimCmd *const sAffineAnims_DiveBall[] = { - gUnknown_83E6D14, + sAffineAnim_DiveBall, }; -const struct SpriteTemplate gUnknown_83E6D40 = +const struct SpriteTemplate gDiveBallSpriteTemplate = { .tileTag = ANIM_TAG_ROUND_SHADOW, .paletteTag = ANIM_TAG_ROUND_SHADOW, .oam = &gOamData_AffineDouble_ObjNormal_64x64, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_83E6D3C, - .callback = sub_80B2A08, + .affineAnims = sAffineAnims_DiveBall, + .callback = AnimDiveBall, }; // not used @@ -316,7 +316,7 @@ static const union AffineAnimCmd *const gUnknown_83E6D80[] = gUnknown_83E6D58, }; -const struct SpriteTemplate gUnknown_83E6D7C = +const struct SpriteTemplate gDiveWaterSplashSpriteTemplate = { .tileTag = ANIM_TAG_SPLASH, .paletteTag = ANIM_TAG_SPLASH, @@ -324,10 +324,10 @@ const struct SpriteTemplate gUnknown_83E6D7C = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B2AF4, + .callback = AnimDiveWaterSplash, }; -const struct SpriteTemplate gUnknown_83E6D94 = +const struct SpriteTemplate gSprayWaterDropletSpriteTemplate = { .tileTag = ANIM_TAG_SWEAT_BEAD, .paletteTag = ANIM_TAG_SWEAT_BEAD, @@ -335,7 +335,7 @@ const struct SpriteTemplate gUnknown_83E6D94 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B2BD8, + .callback = AnimSprayWaterDroplet, }; const struct SpriteTemplate gUnknown_83E6DAC = @@ -349,7 +349,7 @@ const struct SpriteTemplate gUnknown_83E6DAC = .callback = sub_80B2CE4, }; -const struct SpriteTemplate gUnknown_83E6DB4 = +const struct SpriteTemplate gSkyAttackBirdSpriteTemplate = { .tileTag = ANIM_TAG_BIRD, .paletteTag = ANIM_TAG_BIRD, @@ -357,10 +357,10 @@ const struct SpriteTemplate gUnknown_83E6DB4 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B2D64, + .callback = AnimSkyAttackBird, }; -static void sub_80B18E4(struct Sprite *sprite) +static void AnimEllipticalGust(struct Sprite *sprite) { InitSpritePosToAnimTarget(sprite, FALSE); sprite->pos1.y += 20; @@ -379,7 +379,7 @@ static void sub_80B190C(struct Sprite *sprite) DestroyAnimSprite(sprite); } -void sub_80B194C(u8 taskId) +void AnimTask_AnimateGustTornadoPalette(u8 taskId) { gTasks[taskId].data[0] = gBattleAnimArgs[1]; gTasks[taskId].data[1] = gBattleAnimArgs[0]; @@ -411,7 +411,7 @@ static void sub_80B198C(u8 taskId) DestroyAnimVisualTask(taskId); } -static void sub_80B1A1C(struct Sprite *sprite) +static void AnimGustToTarget(struct Sprite *sprite) { InitSpritePosToAnimAttacker(sprite, TRUE); if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) @@ -432,7 +432,7 @@ static void sub_80B1A9C(struct Sprite *sprite) DestroyAnimSprite(sprite); } -static void sub_80B1AB8(struct Sprite *sprite) +static void AnimAirWaveCrescent(struct Sprite *sprite) { if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) { @@ -467,7 +467,7 @@ static void sub_80B1AB8(struct Sprite *sprite) SeekSpriteAnim(sprite, gBattleAnimArgs[5]); } -static void sub_80B1BB0(struct Sprite *sprite) +static void AnimFlyBallUp(struct Sprite *sprite) { InitSpritePosToAnimAttacker(sprite, TRUE); sprite->data[0] = gBattleAnimArgs[2]; @@ -491,7 +491,7 @@ static void sub_80B1BF8(struct Sprite *sprite) DestroyAnimSprite(sprite); } -static void sub_80B1C3C(struct Sprite *sprite) +static void AnimFlyBallAttack(struct Sprite *sprite) { if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) { @@ -564,7 +564,7 @@ struct FeatherDanceData u16 unkE_1:15; }; -static void sub_80B1D88(struct Sprite *sprite) +static void AnimFallingFeather(struct Sprite *sprite) { u8 battler, matrixNum, sinIndex; s16 spriteCoord, sinVal; @@ -986,7 +986,7 @@ static void sub_80B268C(struct Sprite *sprite) sprite->callback = sub_80B1F94; } -static void sub_80B2780(struct Sprite *sprite) +static void AnimWhirlwindLine(struct Sprite *sprite) { u16 arg; u8 mult; @@ -1023,7 +1023,7 @@ static void sub_80B2820(struct Sprite *sprite) DestroyAnimSprite(sprite); } -void sub_80B2868(u8 taskId) +void AnimTask_DrillPeckHitSplats(u8 taskId) { if (!(gTasks[taskId].data[0] % 32)) { @@ -1032,7 +1032,7 @@ void sub_80B2868(u8 taskId) gBattleAnimArgs[1] = Cos(gTasks[taskId].data[0], -13); gBattleAnimArgs[2] = 1; gBattleAnimArgs[3] = 3; - CreateSpriteAndAnimate(&gUnknown_83E7C98, + CreateSpriteAndAnimate(&gFlashingHitSplatSpriteTemplate, GetBattlerSpriteCoord(gBattleAnimTarget, 2), GetBattlerSpriteCoord(gBattleAnimTarget, 3), 3); @@ -1042,7 +1042,7 @@ void sub_80B2868(u8 taskId) DestroyAnimVisualTask(taskId); } -static void sub_80B2914(struct Sprite *sprite) +static void AnimBounceBallShrink(struct Sprite *sprite) { switch (sprite->data[0]) { @@ -1058,7 +1058,7 @@ static void sub_80B2914(struct Sprite *sprite) } } -static void sub_80B2974(struct Sprite *sprite) +static void AnimBounceBallLand(struct Sprite *sprite) { switch (sprite->data[0]) { @@ -1083,7 +1083,7 @@ static void sub_80B2974(struct Sprite *sprite) } } -static void sub_80B2A08(struct Sprite *sprite) +static void AnimDiveBall(struct Sprite *sprite) { InitSpritePosToAnimAttacker(sprite, 1); sprite->data[0] = gBattleAnimArgs[2]; @@ -1120,7 +1120,7 @@ static void sub_80B2AB0(struct Sprite *sprite) DestroyAnimSprite(sprite); } -static void sub_80B2AF4(struct Sprite *sprite) +static void AnimDiveWaterSplash(struct Sprite *sprite) { u32 matrixNum; s32 t1, t2; @@ -1165,7 +1165,7 @@ static void sub_80B2AF4(struct Sprite *sprite) } } -static void sub_80B2BD8(struct Sprite *sprite) +static void AnimSprayWaterDroplet(struct Sprite *sprite) { s32 v1 = 0x1FF & Random(); s32 v2 = 0x7F & Random(); @@ -1241,7 +1241,7 @@ static void sub_80B2CF8(struct Sprite *sprite) } } -static void sub_80B2D64(struct Sprite *sprite) +static void AnimSkyAttackBird(struct Sprite *sprite) { u16 rotation; s16 posx = sprite->pos1.x; diff --git a/src/ghost.c b/src/ghost.c index 9a77999de..30f6b9bdb 100644 --- a/src/ghost.c +++ b/src/ghost.c @@ -8,65 +8,65 @@ #include "decompress.h" #include "constants/songs.h" -static void sub_80B5268(struct Sprite *sprite); +static void AnimConfuseRayBallBounce(struct Sprite *sprite); static void sub_80B52D0(struct Sprite *sprite); static void sub_80B5344(struct Sprite *sprite); static void sub_80B53C0(struct Sprite *sprite); -static void sub_80B5450(struct Sprite *sprite); +static void AnimConfuseRayBallSpiral(struct Sprite *sprite); static void sub_80B5470(struct Sprite *sprite); static void sub_80B5570(u8 taskId); static void sub_80B55C8(u8 taskId); -static void InitAnimShadowBall(struct Sprite *sprite); +static void AnimShadowBall(struct Sprite *sprite); static void AnimShadowBallStep(struct Sprite *sprite); -static void sub_80B57F8(struct Sprite *sprite); +static void AnimLick(struct Sprite *sprite); static void sub_80B5810(struct Sprite *sprite); static void sub_80B59D4(u8 taskId); static void sub_80B5AD4(u8 taskId); static void sub_80B5D38(u8 taskId); static void sub_80B5DCC(u8 taskId); -static void sub_80B5EC0(struct Sprite *sprite); +static void AnimDestinyBondWhiteShadow(struct Sprite *sprite); static void sub_80B5FE0(struct Sprite *sprite); static void sub_80B623C(u8 taskId); static void sub_80B6468(u8 taskId); static void sub_80B65F0(u8 taskId); -static void sub_80B664C(struct Sprite *sprite); +static void AnimCurseNail(struct Sprite *sprite); static void sub_80B66A8(struct Sprite *sprite); static void sub_80B6728(struct Sprite *sprite); static void sub_80B67A0(struct Sprite *sprite); -static void sub_80B67D4(struct Sprite *sprite); +static void AnimGhostStatusSprite(struct Sprite *sprite); static void sub_80B68A8(struct Sprite *sprite); static void sub_80B696C(u8 taskId); -static void sub_80B6AF8(struct Sprite *sprite); +static void AnimGrudgeFlame(struct Sprite *sprite); static void sub_80B7158(struct Sprite *sprite); static void sub_80B6BE4(u8 taskId); static void sub_80B6F30(u8 taskId); static void sub_80B6FC4(u8 taskId); static void sub_80B71B0(struct Sprite *sprite); -static const union AffineAnimCmd gUnknown_83E75A8[] = +static const union AffineAnimCmd sAffineAnim_ConfuseRayBallBounce[] = { AFFINEANIMCMD_FRAME(0x1E, 0x1E, 10, 5), AFFINEANIMCMD_FRAME(-0x1E, -0x1E, 10, 5), AFFINEANIMCMD_JUMP(0), }; -static const union AffineAnimCmd *const gUnknown_83E75C0[] = +static const union AffineAnimCmd *const sAffineAnims_ConfuseRayBallBounce[] = { - gUnknown_83E75A8, + sAffineAnim_ConfuseRayBallBounce, }; -const struct SpriteTemplate gUnknown_83E75C4 = +const struct SpriteTemplate gConfuseRayBallBounceSpriteTemplate = { .tileTag = ANIM_TAG_YELLOW_BALL, .paletteTag = ANIM_TAG_YELLOW_BALL, .oam = &gOamData_AffineDouble_ObjNormal_16x16, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_83E75C0, - .callback = sub_80B5268, + .affineAnims = sAffineAnims_ConfuseRayBallBounce, + .callback = AnimConfuseRayBallBounce, }; -const struct SpriteTemplate gUnknown_83E75DC = +const struct SpriteTemplate gConfuseRayBallSpiralSpriteTemplate = { .tileTag = ANIM_TAG_YELLOW_BALL, .paletteTag = ANIM_TAG_YELLOW_BALL, @@ -74,18 +74,18 @@ const struct SpriteTemplate gUnknown_83E75DC = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B5450, + .callback = AnimConfuseRayBallSpiral, }; -static const union AffineAnimCmd gUnknown_83E75F4[] = +static const union AffineAnimCmd sAffineAnim_ShadowBall[] = { AFFINEANIMCMD_FRAME(0x0, 0x0, 10, 1), AFFINEANIMCMD_JUMP(0), }; -static const union AffineAnimCmd *const gUnknown_83E7604[] = +static const union AffineAnimCmd *const sAffineAnims_ShadowBall[] = { - gUnknown_83E75F4, + sAffineAnim_ShadowBall, }; const struct SpriteTemplate gShadowBallSpriteTemplate = @@ -95,11 +95,11 @@ const struct SpriteTemplate gShadowBallSpriteTemplate = .oam = &gOamData_AffineNormal_ObjNormal_32x32, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_83E7604, - .callback = InitAnimShadowBall, + .affineAnims = sAffineAnims_ShadowBall, + .callback = AnimShadowBall, }; -const union AnimCmd gUnknown_83E7620[] = +const union AnimCmd sAnim_Lick[] = { ANIMCMD_FRAME(0, 2), ANIMCMD_FRAME(8, 2), @@ -109,20 +109,20 @@ const union AnimCmd gUnknown_83E7620[] = ANIMCMD_END, }; -static const union AnimCmd *const gUnknown_83E7638[] = +static const union AnimCmd *const sAnims_Lick[] = { - gUnknown_83E7620, + sAnim_Lick, }; -const struct SpriteTemplate gUnknown_83E763C = +const struct SpriteTemplate gLickSpriteTemplate = { .tileTag = ANIM_TAG_LICK, .paletteTag = ANIM_TAG_LICK, .oam = &gOamData_AffineOff_ObjNormal_16x32, - .anims = gUnknown_83E7638, + .anims = sAnims_Lick, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B57F8, + .callback = AnimLick, }; // not used @@ -138,7 +138,7 @@ static const union AffineAnimCmd *const gUnknown_83E7664[] = gUnknown_83E7654, }; -const struct SpriteTemplate gUnknown_83E7668 = +const struct SpriteTemplate gDestinyBondWhiteShadowSpriteTemplate = { .tileTag = ANIM_TAG_WHITE_SHADOW, .paletteTag = ANIM_TAG_WHITE_SHADOW, @@ -146,10 +146,10 @@ const struct SpriteTemplate gUnknown_83E7668 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B5EC0, + .callback = AnimDestinyBondWhiteShadow, }; -const struct SpriteTemplate gUnknown_83E7680 = +const struct SpriteTemplate gCurseNailSpriteTemplate = { .tileTag = ANIM_TAG_NAIL, .paletteTag = ANIM_TAG_NAIL, @@ -157,10 +157,10 @@ const struct SpriteTemplate gUnknown_83E7680 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B664C, + .callback = AnimCurseNail, }; -const struct SpriteTemplate gUnknown_83E7698 = +const struct SpriteTemplate gCurseGhostSpriteTemplate = { .tileTag = ANIM_TAG_GHOSTLY_SPIRIT, .paletteTag = ANIM_TAG_GHOSTLY_SPIRIT, @@ -168,10 +168,10 @@ const struct SpriteTemplate gUnknown_83E7698 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B67D4, + .callback = AnimGhostStatusSprite, }; -const struct SpriteTemplate gUnknown_83E76B0 = +const struct SpriteTemplate gNightmareDevilSpriteTemplate = { .tileTag = ANIM_TAG_DEVIL, .paletteTag = ANIM_TAG_DEVIL, @@ -179,10 +179,10 @@ const struct SpriteTemplate gUnknown_83E76B0 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B67D4, + .callback = AnimGhostStatusSprite, }; -static const union AnimCmd gUnknown_83E76C8[] = +static const union AnimCmd sAnim_GrudgeFlame[] = { ANIMCMD_FRAME(0, 4), ANIMCMD_FRAME(8, 4), @@ -191,20 +191,20 @@ static const union AnimCmd gUnknown_83E76C8[] = ANIMCMD_JUMP(0), }; -static const union AnimCmd *const gUnknown_83E76DC[] = +static const union AnimCmd *const sAnims_GrudgeFlame[] = { - gUnknown_83E76C8, + sAnim_GrudgeFlame, }; -const struct SpriteTemplate gUnknown_83E76E0 = +const struct SpriteTemplate gGrudgeFlameSpriteTemplate = { .tileTag = ANIM_TAG_PURPLE_FLAME, .paletteTag = ANIM_TAG_PURPLE_FLAME, .oam = &gOamData_AffineOff_ObjBlend_16x32, - .anims = gUnknown_83E76DC, + .anims = sAnims_GrudgeFlame, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B6AF8, + .callback = AnimGrudgeFlame, }; const struct SpriteTemplate gUnknown_83E76F8 = @@ -218,7 +218,7 @@ const struct SpriteTemplate gUnknown_83E76F8 = .callback = sub_80B7158, }; -static void sub_80B5268(struct Sprite *sprite) +static void AnimConfuseRayBallBounce(struct Sprite *sprite) { InitSpritePosToAnimAttacker(sprite, 1); sprite->data[0] = gBattleAnimArgs[2]; @@ -306,7 +306,7 @@ static void sub_80B53C0(struct Sprite *sprite) } } -static void sub_80B5450(struct Sprite *sprite) +static void AnimConfuseRayBallSpiral(struct Sprite *sprite) { InitSpritePosToAnimTarget(sprite, TRUE); sprite->callback = sub_80B5470; @@ -332,7 +332,7 @@ static void sub_80B5470(struct Sprite *sprite) DestroyAnimSprite(sprite); } -void sub_80B54E8(u8 taskId) +void AnimTask_NightShadeClone(u8 taskId) { u8 spriteId; @@ -393,7 +393,7 @@ static void sub_80B55C8(u8 taskId) // arg 0: duration step 1 (attacker -> center) // arg 1: duration step 2 (spin center) // arg 2: duration step 3 (center -> target) -static void InitAnimShadowBall(struct Sprite *sprite) +static void AnimShadowBall(struct Sprite *sprite) { s16 oldPosX = sprite->pos1.x; s16 oldPosY = sprite->pos1.y; @@ -455,7 +455,7 @@ static void AnimShadowBallStep(struct Sprite *sprite) } } -static void sub_80B57F8(struct Sprite *sprite) +static void AnimLick(struct Sprite *sprite) { InitSpritePosToAnimTarget(sprite, TRUE); sprite->callback = sub_80B5810; @@ -507,7 +507,7 @@ static void sub_80B5810(struct Sprite *sprite) } } -void sub_80B58AC(u8 taskId) +void AnimTask_NightmareClone(u8 taskId) { struct Task *task; @@ -579,7 +579,7 @@ static void sub_80B59D4(u8 taskId) } } -void sub_80B5AAC(u8 taskId) +void AnimTask_SpiteTargetShadow(u8 taskId) { struct Task *task; @@ -732,7 +732,7 @@ static void sub_80B5DCC(u8 taskId) ++task->data[15]; } -static void sub_80B5EC0(struct Sprite *sprite) +static void AnimDestinyBondWhiteShadow(struct Sprite *sprite) { s16 battler1X, battler1Y; s16 battler2X, battler2Y; @@ -781,7 +781,7 @@ static void sub_80B5FE0(struct Sprite *sprite) } } -void sub_80B6020(u8 taskId) +void AnimTask_DestinyBondWhiteShadow(u8 taskId) { struct Task *task; s16 battler; @@ -808,7 +808,7 @@ void sub_80B6020(u8 taskId) && battler != (gBattleAnimAttacker ^ 2) && IsBattlerSpriteVisible(battler)) { - spriteId = CreateSprite(&gUnknown_83E7668, baseX, baseY, 55); + spriteId = CreateSprite(&gDestinyBondWhiteShadowSpriteTemplate, baseX, baseY, 55); if (spriteId != MAX_SPRITES) { x = GetBattlerSpriteCoord(battler, 2); @@ -829,7 +829,7 @@ void sub_80B6020(u8 taskId) } else { - spriteId = CreateSprite(&gUnknown_83E7668, baseX, baseY, 55); + spriteId = CreateSprite(&gDestinyBondWhiteShadowSpriteTemplate, baseX, baseY, 55); if (spriteId != MAX_SPRITES) { x = 48; @@ -921,7 +921,7 @@ static void sub_80B623C(u8 taskId) } } -void sub_80B63B4(u8 taskId) +void AnimTask_CurseStretchingBlackBg(u8 taskId) { s16 startX, startY; s16 leftDistance, topDistance, bottomDistance, rightDistance; @@ -1004,7 +1004,7 @@ static void sub_80B65F0(u8 taskId) } } -static void sub_80B664C(struct Sprite *sprite) +static void AnimCurseNail(struct Sprite *sprite) { s16 xDelta, xDelta2; @@ -1093,7 +1093,7 @@ static void sub_80B67A0(struct Sprite *sprite) DestroyAnimSprite(sprite); } -static void sub_80B67D4(struct Sprite *sprite) +static void AnimGhostStatusSprite(struct Sprite *sprite) { u16 coeffB, coeffA; @@ -1137,7 +1137,7 @@ static void sub_80B68A8(struct Sprite *sprite) DestroyAnimSprite(sprite); } -void sub_80B68C8(u8 taskId) +void AnimTask_GrudgeFlames(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -1168,7 +1168,7 @@ static void sub_80B696C(u8 taskId) case 0: for (i = 0; i < 6; ++i) { - spriteId = CreateSprite(&gUnknown_83E76E0, task->data[9], task->data[10], task->data[6]); + spriteId = CreateSprite(&gGrudgeFlameSpriteTemplate, task->data[9], task->data[10], task->data[6]); if (spriteId != MAX_SPRITES) { gSprites[spriteId].data[0] = taskId; @@ -1235,7 +1235,7 @@ static void sub_80B696C(u8 taskId) } } -static void sub_80B6AF8(struct Sprite *sprite) +static void AnimGrudgeFlame(struct Sprite *sprite) { u16 index; diff --git a/src/graphics.c b/src/graphics.c index 7eee42bf0..391913eb7 100644 --- a/src/graphics.c +++ b/src/graphics.c @@ -1019,7 +1019,7 @@ const u32 gBattleAnimBgTilemap_InAir[] = INCBIN_U32("graphics/battle_anims/backg const u32 gBattleAnimSpriteGfx_Protect[] = INCBIN_U32("graphics/battle_anims/sprites/protect.4bpp.lz"); const u32 gBattleAnimSpritePal_Protect[] = INCBIN_U32("graphics/battle_anims/sprites/protect.gbapal.lz"); -const u32 gFile_graphics_battle_anims_backgrounds_water_muddy_palette[] = INCBIN_U32("graphics/battle_anims/backgrounds/water_muddy.gbapal.lz"); +const u32 gBattleAnimBgPalette_MuddyWater[] = INCBIN_U32("graphics/battle_anims/backgrounds/water_muddy.gbapal.lz"); const u32 gFile_graphics_battle_interface_enemy_mon_shadow_sheet[] = INCBIN_U32("graphics/battle_interface/enemy_mon_shadow.4bpp.lz"); @@ -1085,11 +1085,12 @@ const u32 gBattleAnimSpritePal_Bird[] = INCBIN_U32("graphics/battle_anims/sprite const u32 gBattleAnimSpriteGfx_CrossImpact[] = INCBIN_U32("graphics/battle_anims/sprites/cross_impact.4bpp.lz"); const u32 gBattleAnimSpritePal_CrossImpact[] = INCBIN_U32("graphics/battle_anims/sprites/cross_impact.gbapal.lz"); -const u32 gFile_graphics_battle_anims_backgrounds_water_sheet[] = INCBIN_U32("graphics/battle_anims/backgrounds/water.4bpp.lz"); -const u32 gFile_graphics_battle_anims_backgrounds_water_palette[] = INCBIN_U32("graphics/battle_anims/backgrounds/water.gbapal.lz"); -const u32 gFile_graphics_unknown_unknown_E81D14_tilemap[] = INCBIN_U32("graphics/unknown/unknown_E81D14.bin.lz"); -const u32 gFile_graphics_unknown_unknown_E81FE4_tilemap[] = INCBIN_U32("graphics/unknown/unknown_E81FE4.bin.lz"); -const u32 gFile_graphics_unknown_unknown_E822B8_tilemap[] = INCBIN_U32("graphics/unknown/unknown_E822B8.bin.lz"); +const u32 gBattleAnimBgImage_Surf[] = INCBIN_U32("graphics/battle_anims/backgrounds/water.4bpp.lz"); +const u32 gBattleAnimBgPalette_Surf[] = INCBIN_U32("graphics/battle_anims/backgrounds/water.gbapal.lz"); + +const u32 gBattleAnimBgTilemap_SurfOpponent[] = INCBIN_U32("graphics/battle_anims/backgrounds/water_opponent.bin.lz"); +const u32 gBattleAnimBgTilemap_SurfPlayer[] = INCBIN_U32("graphics/battle_anims/backgrounds/water_player.bin.lz"); +const u32 gBattleAnimBgTilemap_SurfContest[] = INCBIN_U32("graphics/battle_anims/backgrounds/water_contest.bin.lz"); const u32 gBattleAnimSpritePal_Slash2[] = INCBIN_U32("graphics/battle_anims/sprites/slash_2.gbapal.lz"); diff --git a/src/ground.c b/src/ground.c index 423671112..af2c78e00 100644 --- a/src/ground.c +++ b/src/ground.c @@ -26,51 +26,51 @@ static void sub_80B967C(u8 taskId); static void sub_80B9760(struct Task *task); static void sub_80B98A8(u8 taskId); -static const union AffineAnimCmd gUnknown_83E7A00[] = +static const union AffineAnimCmd sAffineAnim_Bonemerang[] = { AFFINEANIMCMD_FRAME(0x0, 0x0, 15, 1), AFFINEANIMCMD_JUMP(0), }; -static const union AffineAnimCmd gUnknown_83E7A10[] = +static const union AffineAnimCmd sAffineAnim_SpinningBone[] = { AFFINEANIMCMD_FRAME(0x0, 0x0, 20, 1), AFFINEANIMCMD_JUMP(0), }; -static const union AffineAnimCmd *const gUnknown_83E7A20[] = +static const union AffineAnimCmd *const sAffineAnims_Bonemerang[] = { - gUnknown_83E7A00, + sAffineAnim_Bonemerang, }; -static const union AffineAnimCmd *const gUnknown_83E7A24[] = +static const union AffineAnimCmd *const sAffineAnims_SpinningBone[] = { - gUnknown_83E7A10, + sAffineAnim_SpinningBone, }; -const struct SpriteTemplate gUnknown_83E7A28 = +const struct SpriteTemplate gBonemerangSpriteTemplate = { .tileTag = ANIM_TAG_BONE, .paletteTag = ANIM_TAG_BONE, .oam = &gOamData_AffineNormal_ObjNormal_32x32, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_83E7A20, + .affineAnims = sAffineAnims_Bonemerang, .callback = AnimBonemerangProjectile, }; -const struct SpriteTemplate gUnknown_83E7A40 = +const struct SpriteTemplate gSpinningBoneSpriteTemplate = { .tileTag = ANIM_TAG_BONE, .paletteTag = ANIM_TAG_BONE, .oam = &gOamData_AffineNormal_ObjNormal_32x32, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_83E7A24, + .affineAnims = sAffineAnims_SpinningBone, .callback = AnimBoneHitProjectile, }; -const struct SpriteTemplate gUnknown_83E7A58 = +const struct SpriteTemplate gSandAttackDirtSpriteTemplate = { .tileTag = ANIM_TAG_MUD_SAND, .paletteTag = ANIM_TAG_MUD_SAND, @@ -81,29 +81,29 @@ const struct SpriteTemplate gUnknown_83E7A58 = .callback = AnimDirtScatter, }; -static const union AnimCmd gUnknown_83E7A70[] = +static const union AnimCmd sAnim_MudSlapMud[] = { ANIMCMD_FRAME(1, 1), ANIMCMD_END, }; -static const union AnimCmd *const gUnknown_83E7A78[] = +static const union AnimCmd *const sAnims_MudSlapMud[] = { - gUnknown_83E7A70, + sAnim_MudSlapMud, }; -const struct SpriteTemplate gUnknown_83E7A7C = +const struct SpriteTemplate gMudSlapMudSpriteTemplate = { .tileTag = ANIM_TAG_MUD_SAND, .paletteTag = ANIM_TAG_MUD_SAND, .oam = &gOamData_AffineOff_ObjNormal_16x16, - .anims = gUnknown_83E7A78, + .anims = sAnims_MudSlapMud, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimDirtScatter, }; -const struct SpriteTemplate gUnknown_83E7A94 = +const struct SpriteTemplate gMudsportMudSpriteTemplate = { .tileTag = ANIM_TAG_MUD_SAND, .paletteTag = ANIM_TAG_MUD_SAND, @@ -114,7 +114,7 @@ const struct SpriteTemplate gUnknown_83E7A94 = .callback = AnimMudSportDirt, }; -const struct SpriteTemplate gUnknown_83E7AAC = +const struct SpriteTemplate gDirtPlumeSpriteTemplate = { .tileTag = ANIM_TAG_MUD_SAND, .paletteTag = ANIM_TAG_MUD_SAND, @@ -125,7 +125,7 @@ const struct SpriteTemplate gUnknown_83E7AAC = .callback = AnimFissureDirtPlumeParticle, }; -const struct SpriteTemplate gUnknown_83E7AC4 = +const struct SpriteTemplate gDirtMoundSpriteTemplate = { .tileTag = ANIM_TAG_DIRT_MOUND, .paletteTag = ANIM_TAG_DIRT_MOUND, @@ -279,7 +279,7 @@ static void AnimMudSportDirtFalling(struct Sprite *sprite) } } -void sub_80B8E94(u8 taskId) +void AnimTask_DigDownMovement(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -372,7 +372,7 @@ static void sub_80B908C(u8 taskId) DestroyAnimVisualTask(taskId); } -void sub_80B90EC(u8 taskId) +void AnimTask_DigUpMovement(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -538,7 +538,7 @@ static void AnimDigDirtMound(struct Sprite *sprite) sprite->callback = WaitAnimForDuration; } -void sub_80B94B4(u8 taskId) +void AnimTask_HorizontalShake(u8 taskId) { u16 i; struct Task *task = &gTasks[taskId]; @@ -689,7 +689,7 @@ void AnimTask_IsPowerOver99(u8 taskId) DestroyAnimVisualTask(taskId); } -void sub_80B9800(u8 taskId) +void AnimTask_PositionFissureBgOnBattler(u8 taskId) { struct Task *newTask; u8 battler = (gBattleAnimArgs[0] & 1) ? gBattleAnimTarget : gBattleAnimAttacker; diff --git a/src/help_message.c b/src/help_message.c index 49b2c5114..1438f5fef 100644 --- a/src/help_message.c +++ b/src/help_message.c @@ -1,6 +1,7 @@ #include "global.h" #include "malloc.h" #include "menu.h" +#include "malloc.h" static EWRAM_DATA u8 sHelpMessageWindowId = 0; diff --git a/src/help_system.c b/src/help_system.c index 87fabbd09..d43a0eb32 100644 --- a/src/help_system.c +++ b/src/help_system.c @@ -2,6 +2,7 @@ #include "gflib.h" #include "decompress.h" #include "m4a.h" +#include "event_data.h" #include "help_system.h" #include "list_menu.h" #include "strings.h" @@ -74,134 +74,135 @@ static const union AnimCmd gUnknown_83E62E8[] = ANIMCMD_END, }; -static const union AnimCmd gUnknown_83E62F0[] = +static const union AnimCmd sAnim_IceCrystalLarge[] = { ANIMCMD_FRAME(4, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_83E62F8[] = +static const union AnimCmd sAnim_IceCrystalSmall[] = { ANIMCMD_FRAME(6, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_83E6300[] = +static const union AnimCmd sAnim_Snowball[] = { ANIMCMD_FRAME(7, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_83E6308[] = +static const union AnimCmd sAnim_BlizzardIceCrystal[] = { ANIMCMD_FRAME(8, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_83E6310[] = +static const union AnimCmd sAnim_SmallBubblePair[] = { ANIMCMD_FRAME(12, 6), ANIMCMD_FRAME(13, 6), ANIMCMD_JUMP(0), }; +// unused static const union AnimCmd *const gUnknown_83E631C[] = { gUnknown_83E62E8, }; -static const union AnimCmd *const gUnknown_83E6320[] = +static const union AnimCmd *const sAnims_IceCrystalLarge[] = { - gUnknown_83E62F0, + sAnim_IceCrystalLarge, }; -static const union AnimCmd *const gUnknown_83E6324[] = +static const union AnimCmd *const sAnims_IceCrystalSmall[] = { - gUnknown_83E62F8, + sAnim_IceCrystalSmall, }; -static const union AnimCmd *const gUnknown_83E6328[] = +static const union AnimCmd *const sAnims_Snowball[] = { - gUnknown_83E6300, + sAnim_Snowball, }; -static const union AnimCmd *const gUnknown_83E632C[] = +static const union AnimCmd *const sAnims_BlizzardIceCrystal[] = { - gUnknown_83E6308, + sAnim_BlizzardIceCrystal, }; -const union AnimCmd *const gUnknown_83E6330[] = +const union AnimCmd *const gAnims_SmallBubblePair[] = { - gUnknown_83E6310, + sAnim_SmallBubblePair, }; -static const union AffineAnimCmd gUnknown_83E6334[] = +static const union AffineAnimCmd sAffineAnim_IceCrystalSpiralInwardLarge[] = { AFFINEANIMCMD_FRAME(0x0, 0x0, 40, 1), AFFINEANIMCMD_JUMP(0), }; -static const union AffineAnimCmd *const gUnknown_83E6344[] = +static const union AffineAnimCmd *const sAffineAnims_IceCrystalSpiralInwardLarge[] = { - gUnknown_83E6334, + sAffineAnim_IceCrystalSpiralInwardLarge, }; -const struct SpriteTemplate gUnknown_83E6348 = +const struct SpriteTemplate gIceCrystalSpiralInwardLarge = { .tileTag = ANIM_TAG_ICE_CRYSTALS, .paletteTag = ANIM_TAG_ICE_CRYSTALS, .oam = &gOamData_AffineDouble_ObjBlend_8x16, - .anims = gUnknown_83E6320, + .anims = sAnims_IceCrystalLarge, .images = NULL, - .affineAnims = gUnknown_83E6344, + .affineAnims = sAffineAnims_IceCrystalSpiralInwardLarge, .callback = AnimIcePunchSwirlingParticle, }; -const struct SpriteTemplate gUnknown_83E6360 = +const struct SpriteTemplate gIceCrystalSpiralInwardSmall = { .tileTag = ANIM_TAG_ICE_CRYSTALS, .paletteTag = ANIM_TAG_ICE_CRYSTALS, .oam = &gOamData_AffineOff_ObjBlend_8x8, - .anims = gUnknown_83E6324, + .anims = sAnims_IceCrystalSmall, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimIcePunchSwirlingParticle, }; -static const union AffineAnimCmd gUnknown_83E6378[] = +static const union AffineAnimCmd sAffineAnim_IceBeamInnerCrystal[] = { AFFINEANIMCMD_FRAME(0x0, 0x0, 10, 1), AFFINEANIMCMD_JUMP(0), }; -static const union AffineAnimCmd *const gUnknown_83E6388[] = +static const union AffineAnimCmd *const sAffineAnims_IceBeamInnerCrystal[] = { - gUnknown_83E6378, + sAffineAnim_IceBeamInnerCrystal, }; -const struct SpriteTemplate gUnknown_83E638C = +const struct SpriteTemplate gIceBeamInnerCrystalSpriteTemplate = { .tileTag = ANIM_TAG_ICE_CRYSTALS, .paletteTag = ANIM_TAG_ICE_CRYSTALS, .oam = &gOamData_AffineNormal_ObjBlend_8x16, - .anims = gUnknown_83E6320, + .anims = sAnims_IceCrystalLarge, .images = NULL, - .affineAnims = gUnknown_83E6388, + .affineAnims = sAffineAnims_IceBeamInnerCrystal, .callback = AnimIceBeamParticle, }; -const struct SpriteTemplate gUnknown_83E63A4 = +const struct SpriteTemplate gIceBeamOuterCrystalSpriteTemplate = { .tileTag = ANIM_TAG_ICE_CRYSTALS, .paletteTag = ANIM_TAG_ICE_CRYSTALS, .oam = &gOamData_AffineOff_ObjBlend_8x8, - .anims = gUnknown_83E6324, + .anims = sAnims_IceCrystalSmall, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimIceBeamParticle, }; -static const union AffineAnimCmd gUnknown_83E63BC[] = +static const union AffineAnimCmd sAffineAnim_IceCrystalHit[] = { AFFINEANIMCMD_FRAME(0xCE, 0xCE, 0, 0), AFFINEANIMCMD_FRAME(0x5, 0x5, 0, 10), @@ -209,67 +210,67 @@ static const union AffineAnimCmd gUnknown_83E63BC[] = AFFINEANIMCMD_END, }; -static const union AffineAnimCmd *const gUnknown_83E63DC[] = +static const union AffineAnimCmd *const sAffineAnims_IceCrystalHit[] = { - gUnknown_83E63BC, + sAffineAnim_IceCrystalHit, }; -const struct SpriteTemplate gUnknown_83E63E0 = +const struct SpriteTemplate gIceCrystalHitLargeSpriteTemplate = { .tileTag = ANIM_TAG_ICE_CRYSTALS, .paletteTag = ANIM_TAG_ICE_CRYSTALS, .oam = &gOamData_AffineNormal_ObjBlend_8x16, - .anims = gUnknown_83E6320, + .anims = sAnims_IceCrystalLarge, .images = NULL, - .affineAnims = gUnknown_83E63DC, + .affineAnims = sAffineAnims_IceCrystalHit, .callback = AnimIceEffectParticle, }; -const struct SpriteTemplate gUnknown_83E63F8 = +const struct SpriteTemplate gIceCrystalHitSmallSpriteTemplate = { .tileTag = ANIM_TAG_ICE_CRYSTALS, .paletteTag = ANIM_TAG_ICE_CRYSTALS, .oam = &gOamData_AffineNormal_ObjBlend_8x8, - .anims = gUnknown_83E6324, + .anims = sAnims_IceCrystalSmall, .images = NULL, - .affineAnims = gUnknown_83E63DC, + .affineAnims = sAffineAnims_IceCrystalHit, .callback = AnimIceEffectParticle, }; -const struct SpriteTemplate gUnknown_83E6410 = +const struct SpriteTemplate gSwirlingSnowballSpriteTemplate = { .tileTag = ANIM_TAG_ICE_CRYSTALS, .paletteTag = ANIM_TAG_ICE_CRYSTALS, .oam = &gOamData_AffineOff_ObjNormal_8x8, - .anims = gUnknown_83E6328, + .anims = sAnims_Snowball, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimSwirlingSnowball_Step1, }; -const struct SpriteTemplate gUnknown_83E6428 = +const struct SpriteTemplate gBlizzardIceCrystalSpriteTemplate = { .tileTag = ANIM_TAG_ICE_CRYSTALS, .paletteTag = ANIM_TAG_ICE_CRYSTALS, .oam = &gOamData_AffineOff_ObjNormal_16x16, - .anims = gUnknown_83E632C, + .anims = sAnims_BlizzardIceCrystal, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimMoveParticleBeyondTarget, }; -const struct SpriteTemplate gUnknown_83E6440 = +const struct SpriteTemplate gPowderSnowSnowballSpriteTemplate = { .tileTag = ANIM_TAG_ICE_CRYSTALS, .paletteTag = ANIM_TAG_ICE_CRYSTALS, .oam = &gOamData_AffineOff_ObjNormal_8x8, - .anims = gUnknown_83E6328, + .anims = sAnims_Snowball, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimMoveParticleBeyondTarget, }; -static const union AnimCmd gUnknown_83E6458[] = +static const union AnimCmd sAnim_IceGroundSpike[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_FRAME(2, 5), @@ -281,51 +282,51 @@ static const union AnimCmd gUnknown_83E6458[] = ANIMCMD_END, }; -static const union AnimCmd *const gUnknown_83E6478[] = +static const union AnimCmd *const sAnims_IceGroundSpike[] = { - gUnknown_83E6458, + sAnim_IceGroundSpike, }; -const struct SpriteTemplate gUnknown_83E647C = +const struct SpriteTemplate gIceGroundSpikeSpriteTemplate = { .tileTag = ANIM_TAG_ICE_SPIKES, .paletteTag = ANIM_TAG_ICE_SPIKES, .oam = &gOamData_AffineOff_ObjBlend_8x16, - .anims = gUnknown_83E6478, + .anims = sAnims_IceGroundSpike, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimWaveFromCenterOfTarget, }; -static const union AnimCmd gUnknown_83E6494[] = +static const union AnimCmd sAnim_Cloud[] = { ANIMCMD_FRAME(0, 8), ANIMCMD_FRAME(8, 8), ANIMCMD_JUMP(0), }; -static const union AnimCmd *const gUnknown_83E64A0[] = +static const union AnimCmd *const sAnims_Cloud[] = { - gUnknown_83E6494, + sAnim_Cloud, }; -const struct SpriteTemplate gUnknown_83E64A4 = +const struct SpriteTemplate gMistCloudSpriteTemplate = { .tileTag = ANIM_TAG_MIST_CLOUD, .paletteTag = ANIM_TAG_MIST_CLOUD, .oam = &gOamData_AffineOff_ObjBlend_32x16, - .anims = gUnknown_83E64A0, + .anims = sAnims_Cloud, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = InitSwirlingFogAnim, }; -const struct SpriteTemplate gUnknown_83E64BC = +const struct SpriteTemplate gSmogCloudSpriteTemplate = { .tileTag = ANIM_TAG_PURPLE_GAS_CLOUD, .paletteTag = ANIM_TAG_PURPLE_GAS_CLOUD, .oam = &gOamData_AffineOff_ObjBlend_32x16, - .anims = gUnknown_83E64A0, + .anims = sAnims_Cloud, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = InitSwirlingFogAnim, @@ -336,7 +337,7 @@ static const u8 gUnknown_83E64D4[] = 0, 1, 2, 2, 2, 2, 3, 4, 4, 4, 5, 6, 6, 6, 6, 7, 8, 8, 8, 9, }; -const struct SpriteTemplate gUnknown_83E64E8 = +const struct SpriteTemplate gMistBallSpriteTemplate = { .tileTag = ANIM_TAG_SMALL_BUBBLES, .paletteTag = ANIM_TAG_SMALL_BUBBLES, @@ -352,18 +353,18 @@ static const u8 gUnknown_83E6500[] = 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 5, }; -const struct SpriteTemplate gUnknown_83E6514 = +const struct SpriteTemplate gPoisonGasCloudSpriteTemplate = { .tileTag = ANIM_TAG_PURPLE_GAS_CLOUD, .paletteTag = ANIM_TAG_PURPLE_GAS_CLOUD, .oam = &gOamData_AffineOff_ObjBlend_32x16, - .anims = gUnknown_83E64A0, + .anims = sAnims_Cloud, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = InitPoisonGasCloudAnim, }; -static const struct HailStruct gUnknown_83E652C[] = +static const struct HailStruct sHailCoordData[] = { {100, 120, 0, 2}, {85, 120, 0, 0}, @@ -377,71 +378,71 @@ static const struct HailStruct gUnknown_83E652C[] = {38, 120, 2, 0}, }; -static const union AffineAnimCmd gUnknown_83E6554[] = +static const union AffineAnimCmd sAffineAnim_HailParticle_0[] = { AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd gUnknown_83E6564[] = +static const union AffineAnimCmd sAffineAnim_HailParticle_1[] = { AFFINEANIMCMD_FRAME(0xF0, 0xF0, 0, 0), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd gUnknown_83E6574[] = +static const union AffineAnimCmd sAffineAnim_HailParticle_2[] = { AFFINEANIMCMD_FRAME(0xE0, 0xE0, 0, 0), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd gUnknown_83E6584[] = +static const union AffineAnimCmd sAffineAnim_WeatherBallIceDown[] = { AFFINEANIMCMD_FRAME(0x150, 0x150, 0, 0), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd *const gUnknown_83E6594[] = +static const union AffineAnimCmd *const sAffineAnims_HailParticle[] = { - gUnknown_83E6554, - gUnknown_83E6564, - gUnknown_83E6574, + sAffineAnim_HailParticle_0, + sAffineAnim_HailParticle_1, + sAffineAnim_HailParticle_2, }; -static const union AffineAnimCmd *const gUnknown_83E65A0[] = +static const union AffineAnimCmd *const sAffineAnims_WeatherBallIceDown[] = { - gUnknown_83E6584, + sAffineAnim_WeatherBallIceDown, }; -static const struct SpriteTemplate gUnknown_83E65A4 = +static const struct SpriteTemplate sHailParticleSpriteTemplate = { .tileTag = ANIM_TAG_HAIL, .paletteTag = ANIM_TAG_HAIL, .oam = &gOamData_AffineNormal_ObjNormal_16x16, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_83E6594, + .affineAnims = sAffineAnims_HailParticle, .callback = AnimHailBegin, }; -const struct SpriteTemplate gUnknown_83E65BC = +const struct SpriteTemplate gWeatherBallIceDownSpriteTemplate = { .tileTag = ANIM_TAG_HAIL, .paletteTag = ANIM_TAG_HAIL, .oam = &gOamData_AffineNormal_ObjNormal_16x16, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_83E65A0, - .callback = sub_8077350, + .affineAnims = sAffineAnims_WeatherBallIceDown, + .callback = AnimWeatherBallDown, }; -static const union AnimCmd gUnknown_83E65D4[] = +static const union AnimCmd sAnim_IceBallChunk_0[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_83E65DC[] = +static const union AnimCmd sAnim_IceBallChunk_1[] = { ANIMCMD_FRAME(16, 4), ANIMCMD_FRAME(32, 4), @@ -450,68 +451,68 @@ static const union AnimCmd gUnknown_83E65DC[] = ANIMCMD_END, }; -static const union AnimCmd *const gUnknown_83E65F0[] = +static const union AnimCmd *const sAnims_IceBallChunk[] = { - gUnknown_83E65D4, - gUnknown_83E65DC, + sAnim_IceBallChunk_0, + sAnim_IceBallChunk_1, }; -static const union AffineAnimCmd gUnknown_83E65F8[] = +static const union AffineAnimCmd sAffineAnim_IceBallChunk_0[] = { AFFINEANIMCMD_FRAME(0xE0, 0xE0, 0, 0), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd gUnknown_83E6608[] = +static const union AffineAnimCmd sAffineAnim_IceBallChunk_1[] = { AFFINEANIMCMD_FRAME(0x118, 0x118, 0, 0), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd gUnknown_83E6618[] = +static const union AffineAnimCmd sAffineAnim_IceBallChunk_2[] = { AFFINEANIMCMD_FRAME(0x150, 0x150, 0, 0), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd gUnknown_83E6628[] = +static const union AffineAnimCmd sAffineAnim_IceBallChunk_3[] = { AFFINEANIMCMD_FRAME(0x180, 0x180, 0, 0), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd gUnknown_83E6638[] = +static const union AffineAnimCmd sAffineAnim_IceBallChunk_4[] = { AFFINEANIMCMD_FRAME(0x1C0, 0x1C0, 0, 0), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd *const gUnknown_83E6648[] = +static const union AffineAnimCmd *const sAffineAnims_IceBallChunk[] = { - gUnknown_83E65F8, - gUnknown_83E6608, - gUnknown_83E6618, - gUnknown_83E6628, - gUnknown_83E6638, + sAffineAnim_IceBallChunk_0, + sAffineAnim_IceBallChunk_1, + sAffineAnim_IceBallChunk_2, + sAffineAnim_IceBallChunk_3, + sAffineAnim_IceBallChunk_4, }; -const struct SpriteTemplate gUnknown_83E665C = +const struct SpriteTemplate gIceBallChunkSpriteTemplate = { .tileTag = ANIM_TAG_ICE_CHUNK, .paletteTag = ANIM_TAG_ICE_CHUNK, .oam = &gOamData_AffineDouble_ObjNormal_32x32, - .anims = gUnknown_83E65F0, + .anims = sAnims_IceBallChunk, .images = NULL, - .affineAnims = gUnknown_83E6648, + .affineAnims = sAffineAnims_IceBallChunk, .callback = InitIceBallAnim, }; -const struct SpriteTemplate gUnknown_83E6674 = +const struct SpriteTemplate gIceBallImpactShardSpriteTemplate = { .tileTag = ANIM_TAG_ICE_CRYSTALS, .paletteTag = ANIM_TAG_ICE_CRYSTALS, .oam = &gOamData_AffineOff_ObjNormal_8x8, - .anims = gUnknown_83E6324, + .anims = sAnims_IceCrystalSmall, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = InitIceBallParticle, @@ -1305,11 +1306,11 @@ static bool8 GenerateHailParticle(u8 hailStructId, u8 affineAnimNum, u8 taskId, s16 battlerX, battlerY; s16 spriteX; bool8 possibleBool = FALSE; - s8 unk = gUnknown_83E652C[hailStructId].unk3; + s8 unk = sHailCoordData[hailStructId].unk3; if (unk != 2) { - id = GetBattlerAtPosition(gUnknown_83E652C[hailStructId].unk2); + id = GetBattlerAtPosition(sHailCoordData[hailStructId].unk2); if (IsBattlerSpriteVisible(id)) { possibleBool = TRUE; @@ -1329,17 +1330,17 @@ static bool8 GenerateHailParticle(u8 hailStructId, u8 affineAnimNum, u8 taskId, } else { - battlerX = (gUnknown_83E652C[hailStructId].unk0); - battlerY = (gUnknown_83E652C[hailStructId].unk1); + battlerX = (sHailCoordData[hailStructId].unk0); + battlerY = (sHailCoordData[hailStructId].unk1); } } else { - battlerX = (gUnknown_83E652C[hailStructId].unk0); - battlerY = (gUnknown_83E652C[hailStructId].unk1); + battlerX = (sHailCoordData[hailStructId].unk0); + battlerY = (sHailCoordData[hailStructId].unk1); } spriteX = battlerX - ((battlerY + 8) / 2); - id = CreateSprite(&gUnknown_83E65A4, spriteX, -8, 18); + id = CreateSprite(&sHailParticleSpriteTemplate, spriteX, -8, 18); if (id == MAX_SPRITES) { return FALSE; @@ -1367,7 +1368,7 @@ static void AnimHailBegin(struct Sprite *sprite) return; if (sprite->data[0] == 1 && sprite->data[5] == 0) { - spriteId = CreateSprite(&gUnknown_83E63E0, sprite->data[3], sprite->data[4], sprite->subpriority); + spriteId = CreateSprite(&gIceCrystalHitLargeSpriteTemplate, sprite->data[3], sprite->data[4], sprite->subpriority); sprite->data[0] = spriteId; if (spriteId != 64) { diff --git a/src/librfu_rfu.c b/src/librfu_rfu.c index 582060f78..3f5bd8b69 100644 --- a/src/librfu_rfu.c +++ b/src/librfu_rfu.c @@ -1,3 +1,4 @@ +#include <limits.h> #include "librfu.h" struct LLSFStruct @@ -110,7 +111,7 @@ static const struct LLSFStruct llsf_struct[2] = { #define xstr(s) str(s) #define str(s) #s -const char version_string[] = "RFU_V" xstr(LIBRFU_VERSION); +static const char version_string[] = "RFU_V" xstr(LIBRFU_VERSION); static const char str_checkMbootLL[] = "RFU-MBOOT"; @@ -154,16 +155,13 @@ u16 rfu_initializeAPI(u32 *APIBuffer, u16 buffByteSize, IntrFunc *sioIntrTable_p gRfuStatic = (void *)APIBuffer + 0xb4; // + sizeof(*gRfuLinkStatus) gRfuFixed = (void *)APIBuffer + 0xdc; // + sizeof(*gRfuStatic) gRfuSlotStatusNI[0] = (void *)APIBuffer + 0x1bc; // + sizeof(*gRfuFixed) - gRfuSlotStatusUNI[0] = (void *)APIBuffer + 0x37c; // + sizeof(*gRfuSlotStatusNI[0]) + gRfuSlotStatusUNI[0] = (void *)APIBuffer + 0x37c; // + sizeof(*gRfuSlotStatusNI[0]) * RFU_CHILD_MAX for (i = 1; i < RFU_CHILD_MAX; ++i) { gRfuSlotStatusNI[i] = &gRfuSlotStatusNI[i - 1][1]; gRfuSlotStatusUNI[i] = &gRfuSlotStatusUNI[i - 1][1]; } - // TODO: Is it possible to fix the following 2 statements? - // It's equivalent to: - // gRfuFixed->STWIBuffer = &APIBuffer->intr; - // STWI_init_all(&APIBuffer->intr, sioIntrTable_p, copyInterruptToRam); + // remaining space in API buffer is used for `struct RfuIntrStruct`. gRfuFixed->STWIBuffer = (struct RfuIntrStruct *)&gRfuSlotStatusUNI[3][1]; STWI_init_all((struct RfuIntrStruct *)&gRfuSlotStatusUNI[3][1], sioIntrTable_p, copyInterruptToRam); rfu_STC_clearAPIVariables(); @@ -1800,7 +1798,7 @@ static u16 rfu_STC_NI_constructLLSF(u8 bm_slot_id, u8 **dest_pp, struct NIComm * } else { - if ((u32)NI_comm->remainSize >= NI_comm->payloadSize) + if (NI_comm->remainSize >= NI_comm->payloadSize) size = NI_comm->payloadSize; else size = NI_comm->remainSize; @@ -2095,34 +2093,31 @@ static void rfu_STC_NI_receive_Sender(u8 NI_slot, u8 bm_flag, const struct RfuLo else NI_comm->now_p[llsf_NI->phase] += NI_comm->payloadSize << 2; NI_comm->remainSize -= NI_comm->payloadSize; - if (NI_comm->remainSize != 0) - if (NI_comm->remainSize >= 0) - goto _081E30AE; - // Above is a hack to avoid optimization over comparison. - // rfu_STC_NI_constructLLSF uses this field as u32. - // It's equivalent to the following condition: - // if (NI_comm->remainSize == 0 || NI_comm->remainSize < 0) + switch (NI_comm->remainSize) + { + default: + case 0: + NI_comm->phase = 0; + if (NI_comm->state == SLOT_STATE_SEND_START) { - NI_comm->phase = 0; - if (NI_comm->state == SLOT_STATE_SEND_START) + for (i = 0; i < WINDOW_COUNT; ++i) { - for (i = 0; i < WINDOW_COUNT; ++i) - { - NI_comm->n[i] = 1; - NI_comm->now_p[i] = NI_comm->src + NI_comm->payloadSize * i; - } - NI_comm->remainSize = NI_comm->dataSize; - NI_comm->state = SLOT_STATE_SENDING; - } - else - { - NI_comm->n[0] = 0; - NI_comm->remainSize = 0; - NI_comm->state = SLOT_STATE_SEND_LAST; + NI_comm->n[i] = 1; + NI_comm->now_p[i] = NI_comm->src + NI_comm->payloadSize * i; } + NI_comm->remainSize = NI_comm->dataSize; + NI_comm->state = SLOT_STATE_SENDING; } - _081E30AE: - ; + else + { + NI_comm->n[0] = 0; + NI_comm->remainSize = 0; + NI_comm->state = SLOT_STATE_SEND_LAST; + } + break; + case 1 ... INT_MAX: + break; + } } else if (NI_comm->state == SLOT_STATE_SEND_LAST) { diff --git a/src/normal.c b/src/normal.c index 5a4d98907..99ee0e922 100644 --- a/src/normal.c +++ b/src/normal.c @@ -7,16 +7,16 @@ static void AnimConfusionDuck(struct Sprite *sprite); static void AnimSimplePaletteBlend(struct Sprite *sprite); -static void sub_80B9A7C(struct Sprite *sprite); +static void AnimComplexPaletteBlend(struct Sprite *sprite); static void sub_80B9B8C(struct Sprite *sprite); -static void sub_80BA27C(struct Sprite *sprite); -static void sub_80BA560(struct Sprite *sprite); -static void sub_80BA5F8(struct Sprite *sprite); -static void sub_80BA630(struct Sprite *sprite); -static void sub_80BA6C8(struct Sprite *sprite); -static void sub_80BA738(struct Sprite *sprite); -static void sub_80BA780(struct Sprite *sprite); -static void sub_80BA5A8(struct Sprite *sprite); +static void AnimShakeMonOrBattleTerrain(struct Sprite *sprite); +static void AnimHitSplatBasic(struct Sprite *sprite); +static void AnimHitSplatHandleInvert(struct Sprite *sprite); +static void AnimHitSplatRandom(struct Sprite *sprite); +static void AnimHitSplatOnMonEdge(struct Sprite *sprite); +static void AnimCrossImpact(struct Sprite *sprite); +static void AnimFlashingHitSplat(struct Sprite *sprite); +static void AnimHitSplatPersistent(struct Sprite *sprite); static void AnimConfusionDuckStep(struct Sprite *sprite); static void AnimSimplePaletteBlendStep(struct Sprite *sprite); static void sub_80B9AD0(struct Sprite *sprite); @@ -35,7 +35,7 @@ static void sub_80BA4D0(u8 taskId); static void sub_80BA7BC(struct Sprite *sprite); -static const union AnimCmd gUnknown_83E7ADC[] = +static const union AnimCmd sAnim_ConfusionDuck_0[] = { ANIMCMD_FRAME(0, 8), ANIMCMD_FRAME(4, 8), @@ -44,7 +44,7 @@ static const union AnimCmd gUnknown_83E7ADC[] = ANIMCMD_JUMP(0), }; -static const union AnimCmd gUnknown_83E7AF0[] = +static const union AnimCmd sAnim_ConfusionDuck_1[] = { ANIMCMD_FRAME(0, 8, .hFlip = TRUE), ANIMCMD_FRAME(4, 8), @@ -53,10 +53,10 @@ static const union AnimCmd gUnknown_83E7AF0[] = ANIMCMD_JUMP(0), }; -static const union AnimCmd *const gUnknown_83E7B04[] = +static const union AnimCmd *const sAnims_ConfusionDuck[] = { - gUnknown_83E7ADC, - gUnknown_83E7AF0, + sAnim_ConfusionDuck_0, + sAnim_ConfusionDuck_1, }; const struct SpriteTemplate gConfusionDuckSpriteTemplate = @@ -64,7 +64,7 @@ const struct SpriteTemplate gConfusionDuckSpriteTemplate = .tileTag = ANIM_TAG_DUCK, .paletteTag = ANIM_TAG_DUCK, .oam = &gOamData_AffineOff_ObjNormal_16x16, - .anims = gUnknown_83E7B04, + .anims = sAnims_ConfusionDuck, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimConfusionDuck, @@ -89,7 +89,7 @@ const struct SpriteTemplate gComplexPaletteBlendSpriteTemplate = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B9A7C, + .callback = AnimComplexPaletteBlend, }; static const union AnimCmd gUnknown_83E7B54[] = @@ -118,7 +118,7 @@ const struct SpriteTemplate gUnknown_83E7B70 = .callback = sub_80B9B8C, }; -const struct SpriteTemplate gUnknown_83E7B88 = +const struct SpriteTemplate gShakeMonOrTerrainSpriteTemplate = { .tileTag = 0, .paletteTag = 0, @@ -126,42 +126,42 @@ const struct SpriteTemplate gUnknown_83E7B88 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80BA27C, + .callback = AnimShakeMonOrBattleTerrain, }; -static const union AffineAnimCmd gUnknown_83E7BA0[] = +static const union AffineAnimCmd sAffineAnim_HitSplat_0[] = { AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 8), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd gUnknown_83E7BB0[] = +static const union AffineAnimCmd sAffineAnim_HitSplat_1[] = { AFFINEANIMCMD_FRAME(0xD8, 0xD8, 0, 0), AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 8), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd gUnknown_83E7BC8[] = +static const union AffineAnimCmd sAffineAnim_HitSplat_2[] = { AFFINEANIMCMD_FRAME(0xB0, 0xB0, 0, 0), AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 8), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd gUnknown_83E7BE0[] = +static const union AffineAnimCmd sAffineAnim_HitSplat_3[] = { AFFINEANIMCMD_FRAME(0x80, 0x80, 0, 0), AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 8), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd *const gUnknown_83E7BF8[] = +static const union AffineAnimCmd *const sAffineAnims_HitSplat[] = { - gUnknown_83E7BA0, - gUnknown_83E7BB0, - gUnknown_83E7BC8, - gUnknown_83E7BE0, + sAffineAnim_HitSplat_0, + sAffineAnim_HitSplat_1, + sAffineAnim_HitSplat_2, + sAffineAnim_HitSplat_3, }; const struct SpriteTemplate gBasicHitSplatSpriteTemplate = @@ -171,55 +171,55 @@ const struct SpriteTemplate gBasicHitSplatSpriteTemplate = .oam = &gOamData_AffineNormal_ObjBlend_32x32, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_83E7BF8, - .callback = sub_80BA560, + .affineAnims = sAffineAnims_HitSplat, + .callback = AnimHitSplatBasic, }; -const struct SpriteTemplate gUnknown_83E7C20 = +const struct SpriteTemplate gHandleInvertHitSplatSpriteTemplate = { .tileTag = ANIM_TAG_IMPACT, .paletteTag = ANIM_TAG_IMPACT, .oam = &gOamData_AffineNormal_ObjBlend_32x32, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_83E7BF8, - .callback = sub_80BA5F8, + .affineAnims = sAffineAnims_HitSplat, + .callback = AnimHitSplatHandleInvert, }; -const struct SpriteTemplate gUnknown_83E7C38 = +const struct SpriteTemplate gWaterHitSplatSpriteTemplate = { .tileTag = ANIM_TAG_WATER_IMPACT, .paletteTag = ANIM_TAG_WATER_IMPACT, .oam = &gOamData_AffineNormal_ObjBlend_32x32, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_83E7BF8, - .callback = sub_80BA560, + .affineAnims = sAffineAnims_HitSplat, + .callback = AnimHitSplatBasic, }; -const struct SpriteTemplate gUnknown_83E7C50 = +const struct SpriteTemplate gRandomPosHitSplatSpriteTemplate = { .tileTag = ANIM_TAG_IMPACT, .paletteTag = ANIM_TAG_IMPACT, .oam = &gOamData_AffineNormal_ObjBlend_32x32, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_83E7BF8, - .callback = sub_80BA630, + .affineAnims = sAffineAnims_HitSplat, + .callback = AnimHitSplatRandom, }; -const struct SpriteTemplate gUnknown_83E7C68 = +const struct SpriteTemplate gMonEdgeHitSplatSpriteTemplate = { .tileTag = ANIM_TAG_IMPACT, .paletteTag = ANIM_TAG_IMPACT, .oam = &gOamData_AffineNormal_ObjBlend_32x32, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_83E7BF8, - .callback = sub_80BA6C8, + .affineAnims = sAffineAnims_HitSplat, + .callback = AnimHitSplatOnMonEdge, }; -const struct SpriteTemplate gUnknown_83E7C80 = +const struct SpriteTemplate gCrossImpactSpriteTemplate = { .tileTag = ANIM_TAG_CROSS_IMPACT, .paletteTag = ANIM_TAG_CROSS_IMPACT, @@ -227,29 +227,29 @@ const struct SpriteTemplate gUnknown_83E7C80 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80BA738, + .callback = AnimCrossImpact, }; -const struct SpriteTemplate gUnknown_83E7C98 = +const struct SpriteTemplate gFlashingHitSplatSpriteTemplate = { .tileTag = ANIM_TAG_IMPACT, .paletteTag = ANIM_TAG_IMPACT, .oam = &gOamData_AffineNormal_ObjNormal_32x32, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_83E7BF8, - .callback = sub_80BA780, + .affineAnims = sAffineAnims_HitSplat, + .callback = AnimFlashingHitSplat, }; -const struct SpriteTemplate gUnknown_83E7CB0 = +const struct SpriteTemplate gPersistHitSplatSpriteTemplate = { .tileTag = ANIM_TAG_IMPACT, .paletteTag = ANIM_TAG_IMPACT, .oam = &gOamData_AffineNormal_ObjBlend_32x32, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_83E7BF8, - .callback = sub_80BA5A8, + .affineAnims = sAffineAnims_HitSplat, + .callback = AnimHitSplatPersistent, }; // Moves a spinning duck around the mon's head. @@ -335,7 +335,7 @@ static void AnimSimplePaletteBlendStep(struct Sprite *sprite) DestroyAnimSprite(sprite); } -static void sub_80B9A7C(struct Sprite *sprite) +static void AnimComplexPaletteBlend(struct Sprite *sprite) { u32 selectedPalettes; @@ -461,7 +461,7 @@ static void sub_80B9C7C(u8 taskId) } } -void sub_80B9CE4(u8 taskId) +void AnimTask_BlendColorCycleExclude(u8 taskId) { s32 battler; u32 selectedPalettes = 0; @@ -527,7 +527,7 @@ static void sub_80B9DF0(u8 taskId) } } -void sub_80B9E58(u8 taskId) +void AnimTask_BlendColorCycleByTag(u8 taskId) { u8 paletteIndex; @@ -585,7 +585,7 @@ static void sub_80B9F04(u8 taskId) } } -void sub_80B9F6C(u8 taskId) +void AnimTask_FlashAnimTagWithColor(u8 taskId) { u8 paletteIndex; @@ -652,7 +652,7 @@ static void sub_80BA090(u8 taskId) } } -void sub_80BA0E8(u8 taskId) +void AnimTask_InvertScreenColor(u8 taskId) { u32 selectedPalettes = 0; u8 attackerBattler = gBattleAnimAttacker; @@ -708,7 +708,7 @@ static void sub_80BA16C(u8 taskId) } } -static void sub_80BA27C(struct Sprite *sprite) +static void AnimShakeMonOrBattleTerrain(struct Sprite *sprite) { u16 var0; @@ -789,7 +789,7 @@ static void sub_80BA3CC(void) } } -void sub_80BA47C(u8 taskId) +void AnimTask_ShakeBattleTerrain(u8 taskId) { gTasks[taskId].data[0] = gBattleAnimArgs[0]; gTasks[taskId].data[1] = gBattleAnimArgs[1]; @@ -830,7 +830,7 @@ static void sub_80BA4D0(u8 taskId) } } -static void sub_80BA560(struct Sprite *sprite) +static void AnimHitSplatBasic(struct Sprite *sprite) { StartSpriteAffineAnim(sprite, gBattleAnimArgs[3]); if (gBattleAnimArgs[2] == 0) @@ -841,7 +841,7 @@ static void sub_80BA560(struct Sprite *sprite) StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); } -static void sub_80BA5A8(struct Sprite *sprite) +static void AnimHitSplatPersistent(struct Sprite *sprite) { StartSpriteAffineAnim(sprite, gBattleAnimArgs[3]); if (gBattleAnimArgs[2] == 0) @@ -853,14 +853,14 @@ static void sub_80BA5A8(struct Sprite *sprite) StoreSpriteCallbackInData6(sprite, sub_80B1D3C); } -static void sub_80BA5F8(struct Sprite *sprite) +static void AnimHitSplatHandleInvert(struct Sprite *sprite) { if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER && !IsContest()) gBattleAnimArgs[1] = -gBattleAnimArgs[1]; - sub_80BA560(sprite); + AnimHitSplatBasic(sprite); } -static void sub_80BA630(struct Sprite *sprite) +static void AnimHitSplatRandom(struct Sprite *sprite) { if (gBattleAnimArgs[1] == -1) gBattleAnimArgs[1] = Random() & 3; @@ -875,7 +875,7 @@ static void sub_80BA630(struct Sprite *sprite) sprite->callback = RunStoredCallbackWhenAffineAnimEnds; } -static void sub_80BA6C8(struct Sprite *sprite) +static void AnimHitSplatOnMonEdge(struct Sprite *sprite) { sprite->data[0] = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); sprite->pos1.x = gSprites[sprite->data[0]].pos1.x + gSprites[sprite->data[0]].pos2.x; @@ -887,7 +887,7 @@ static void sub_80BA6C8(struct Sprite *sprite) sprite->callback = RunStoredCallbackWhenAffineAnimEnds; } -static void sub_80BA738(struct Sprite *sprite) +static void AnimCrossImpact(struct Sprite *sprite) { if (gBattleAnimArgs[2] == 0) InitSpritePosToAnimAttacker(sprite, 1); @@ -898,7 +898,7 @@ static void sub_80BA738(struct Sprite *sprite) sprite->callback = WaitAnimForDuration; } -static void sub_80BA780(struct Sprite *sprite) +static void AnimFlashingHitSplat(struct Sprite *sprite) { StartSpriteAffineAnim(sprite, gBattleAnimArgs[3]); if (gBattleAnimArgs[2] == 0) diff --git a/src/poison.c b/src/poison.c index af7f8ee86..ae458d561 100644 --- a/src/poison.c +++ b/src/poison.c @@ -2,17 +2,17 @@ #include "battle_anim.h" #include "trig.h" -static void sub_80B1620(struct Sprite *sprite); -static void sub_80B16A0(struct Sprite *sprite); -static void sub_80B1744(struct Sprite *sprite); -static void sub_80B17C4(struct Sprite *sprite); +static void AnimSludgeProjectile(struct Sprite *sprite); +static void AnimAcidPoisonBubble(struct Sprite *sprite); +static void AnimSludgeBombHitParticle(struct Sprite *sprite); +static void AnimAcidPoisonDroplet(struct Sprite *sprite); static void AnimBubbleEffect(struct Sprite *sprite); static void sub_80B1684(struct Sprite *sprite); static void sub_80B1728(struct Sprite *sprite); static void sub_80B1798(struct Sprite *sprite); static void AnimBubbleEffectStep(struct Sprite *sprite); -static const union AnimCmd gUnknown_83E6994[] = +static const union AnimCmd sAnim_ToxicBubble[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_FRAME(8, 5), @@ -21,56 +21,56 @@ static const union AnimCmd gUnknown_83E6994[] = ANIMCMD_END, }; -static const union AnimCmd *const gUnknown_83E69A8[] = +static const union AnimCmd *const sAnims_ToxicBubble[] = { - gUnknown_83E6994, + sAnim_ToxicBubble, }; -const struct SpriteTemplate gUnknown_83E69AC = +const struct SpriteTemplate gToxicBubbleSpriteTemplate = { .tileTag = ANIM_TAG_TOXIC_BUBBLE, .paletteTag = ANIM_TAG_TOXIC_BUBBLE, .oam = &gOamData_AffineOff_ObjNormal_16x32, - .anims = gUnknown_83E69A8, + .anims = sAnims_ToxicBubble, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimSpriteOnMonPos, }; -static const union AnimCmd gUnknown_83E69C4[] = +static const union AnimCmd sAnim_PoisonProjectile[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_83E69CC[] = +static const union AnimCmd sAnim_AcidPoisonDroplet[] = { ANIMCMD_FRAME(4, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_83E69D4[] = +static const union AnimCmd sAnim_SludgeBombHit[] = { ANIMCMD_FRAME(8, 1), ANIMCMD_END, }; -static const union AnimCmd *const gUnknown_83E69DC[] = +static const union AnimCmd *const sAnims_PoisonProjectile[] = { - gUnknown_83E69C4, + sAnim_PoisonProjectile, }; -static const union AnimCmd *const gUnknown_83E69E0[] = +static const union AnimCmd *const sAnims_AcidPoisonDroplet[] = { - gUnknown_83E69CC, + sAnim_AcidPoisonDroplet, }; -static const union AnimCmd *const gUnknown_83E69E4[] = +static const union AnimCmd *const sAnims_SludgeBombHit[] = { - gUnknown_83E69D4, + sAnim_SludgeBombHit, }; -static const union AffineAnimCmd gUnknown_83E69E8[] = +static const union AffineAnimCmd sAffineAnim_PoisonProjectile[] = { AFFINEANIMCMD_FRAME(0x160, 0x160, 0, 0), AFFINEANIMCMD_FRAME(-0xA, -0xA, 0, 10), @@ -78,88 +78,88 @@ static const union AffineAnimCmd gUnknown_83E69E8[] = AFFINEANIMCMD_JUMP(0), }; -static const union AffineAnimCmd gUnknown_83E6A08[] = +static const union AffineAnimCmd sAffineAnim_SludgeBombHit[] = { AFFINEANIMCMD_FRAME(0xEC, 0xEC, 0, 0), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd *const gUnknown_83E6A18[] = +static const union AffineAnimCmd *const sAffineAnims_PoisonProjectile[] = { - gUnknown_83E69E8, + sAffineAnim_PoisonProjectile, }; -static const union AffineAnimCmd *const gUnknown_83E6A1C[] = +static const union AffineAnimCmd *const sAffineAnims_SludgeBombHit[] = { - gUnknown_83E6A08, + sAffineAnim_SludgeBombHit, }; -const struct SpriteTemplate gUnknown_83E6A20 = +const struct SpriteTemplate gSludgeProjectileSpriteTemplate = { .tileTag = ANIM_TAG_POISON_BUBBLE, .paletteTag = ANIM_TAG_POISON_BUBBLE, .oam = &gOamData_AffineDouble_ObjNormal_16x16, - .anims = gUnknown_83E69DC, + .anims = sAnims_PoisonProjectile, .images = NULL, - .affineAnims = gUnknown_83E6A18, - .callback = sub_80B1620, + .affineAnims = sAffineAnims_PoisonProjectile, + .callback = AnimSludgeProjectile, }; -const struct SpriteTemplate gUnknown_83E6A38 = +const struct SpriteTemplate gAcidPoisonBubbleSpriteTemplate = { .tileTag = ANIM_TAG_POISON_BUBBLE, .paletteTag = ANIM_TAG_POISON_BUBBLE, .oam = &gOamData_AffineDouble_ObjNormal_16x16, - .anims = gUnknown_83E69DC, + .anims = sAnims_PoisonProjectile, .images = NULL, - .affineAnims = gUnknown_83E6A18, - .callback = sub_80B16A0, + .affineAnims = sAffineAnims_PoisonProjectile, + .callback = AnimAcidPoisonBubble, }; -const struct SpriteTemplate gUnknown_83E6A50 = +const struct SpriteTemplate gSludgeBombHitParticleSpriteTemplate = { .tileTag = ANIM_TAG_POISON_BUBBLE, .paletteTag = ANIM_TAG_POISON_BUBBLE, .oam = &gOamData_AffineNormal_ObjNormal_16x16, - .anims = gUnknown_83E69E4, + .anims = sAnims_SludgeBombHit, .images = NULL, - .affineAnims = gUnknown_83E6A1C, - .callback = sub_80B1744, + .affineAnims = sAffineAnims_SludgeBombHit, + .callback = AnimSludgeBombHitParticle, }; -static const union AffineAnimCmd gUnknown_83E6A68[] = +static const union AffineAnimCmd sAffineAnim_AcidPoisonDroplet[] = { AFFINEANIMCMD_FRAME(-0x10, 0x10, 0, 6), AFFINEANIMCMD_FRAME(0x10, -0x10, 0, 6), AFFINEANIMCMD_JUMP(0), }; -const union AffineAnimCmd *const gUnknown_83E6A80[] = +const union AffineAnimCmd *const gAffineAnims_Droplet[] = { - gUnknown_83E6A68, + sAffineAnim_AcidPoisonDroplet, }; -const struct SpriteTemplate gUnknown_83E6A84 = +const struct SpriteTemplate gAcidPoisonDropletSpriteTemplate = { .tileTag = ANIM_TAG_POISON_BUBBLE, .paletteTag = ANIM_TAG_POISON_BUBBLE, .oam = &gOamData_AffineDouble_ObjNormal_16x16, - .anims = gUnknown_83E69E0, + .anims = sAnims_AcidPoisonDroplet, .images = NULL, - .affineAnims = gUnknown_83E6A80, - .callback = sub_80B17C4, + .affineAnims = gAffineAnims_Droplet, + .callback = AnimAcidPoisonDroplet, }; -static const union AffineAnimCmd gUnknown_83E6A9C[] = +static const union AffineAnimCmd sAffineAnim_Bubble[] = { AFFINEANIMCMD_FRAME(0x9C, 0x9C, 0, 0), AFFINEANIMCMD_FRAME(0x5, 0x5, 0, 20), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd *const gUnknown_83E6AB4[] = +static const union AffineAnimCmd *const sAffineAnims_Bubble[] = { - gUnknown_83E6A9C, + sAffineAnim_Bubble, }; const struct SpriteTemplate gPoisonBubbleSpriteTemplate = @@ -167,9 +167,9 @@ const struct SpriteTemplate gPoisonBubbleSpriteTemplate = .tileTag = ANIM_TAG_POISON_BUBBLE, .paletteTag = ANIM_TAG_POISON_BUBBLE, .oam = &gOamData_AffineNormal_ObjNormal_16x16, - .anims = gUnknown_83E69DC, + .anims = sAnims_PoisonProjectile, .images = NULL, - .affineAnims = gUnknown_83E6AB4, + .affineAnims = sAffineAnims_Bubble, .callback = AnimBubbleEffect, }; @@ -178,13 +178,13 @@ const struct SpriteTemplate gWaterBubbleSpriteTemplate = .tileTag = ANIM_TAG_SMALL_BUBBLES, .paletteTag = ANIM_TAG_SMALL_BUBBLES, .oam = &gOamData_AffineNormal_ObjBlend_16x16, - .anims = gUnknown_83E5A78, + .anims = gAnims_WaterBubble, .images = NULL, - .affineAnims = gUnknown_83E6AB4, + .affineAnims = sAffineAnims_Bubble, .callback = AnimBubbleEffect, }; -static void sub_80B1620(struct Sprite *sprite) +static void AnimSludgeProjectile(struct Sprite *sprite) { if (!gBattleAnimArgs[3]) StartSpriteAnim(sprite, 2); @@ -203,7 +203,7 @@ static void sub_80B1684(struct Sprite *sprite) DestroyAnimSprite(sprite); } -static void sub_80B16A0(struct Sprite *sprite) +static void AnimAcidPoisonBubble(struct Sprite *sprite) { s16 l1, l2; @@ -227,7 +227,7 @@ static void sub_80B1728(struct Sprite *sprite) DestroyAnimSprite(sprite); } -static void sub_80B1744(struct Sprite *sprite) +static void AnimSludgeBombHitParticle(struct Sprite *sprite) { sprite->data[0] = gBattleAnimArgs[2]; sprite->data[1] = sprite->pos1.x; @@ -249,7 +249,7 @@ static void sub_80B1798(struct Sprite *sprite) DestroyAnimSprite(sprite); } -static void sub_80B17C4(struct Sprite *sprite) +static void AnimAcidPoisonDroplet(struct Sprite *sprite) { SetAverageBattlerPositions(gBattleAnimTarget, TRUE, &sprite->pos1.x, &sprite->pos1.y); if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) diff --git a/src/psychic.c b/src/psychic.c index eb3522188..5a6b4f942 100644 --- a/src/psychic.c +++ b/src/psychic.c @@ -5,13 +5,13 @@ #include "trig.h" #include "constants/songs.h" -static void sub_80B2ECC(struct Sprite *sprite); -static void sub_80B31D0(struct Sprite *sprite); -static void sub_80B3278(struct Sprite *sprite); -static void sub_80B32F4(struct Sprite *sprite); -static void sub_80B37EC(struct Sprite *sprite); -static void sub_80B3A34(struct Sprite *sprite); -static void sub_80B3E84(struct Sprite *sprite); +static void AnimDefensiveWall(struct Sprite *sprite); +static void AnimWallSparkle(struct Sprite *sprite); +static void AnimBentSpoon(struct Sprite *sprite); +static void AnimQuestionMark(struct Sprite *sprite); +static void AnimRedX(struct Sprite *sprite); +static void AnimSkillSwapOrb(struct Sprite *sprite); +static void AnimPsychoBoost(struct Sprite *sprite); static void sub_80B300C(struct Sprite *sprite); static void sub_80B3044(struct Sprite *sprite); static void sub_80B30B0(struct Sprite *sprite); @@ -25,30 +25,30 @@ static void sub_80B3980(u8 taskId); static void sub_80B3B78(u8 taskId); static void sub_80B3D78(u8 taskId); -static const union AffineAnimCmd gUnknown_83E6DDC[] = +static const union AffineAnimCmd sAffineAnim_PsychUpSpiral[] = { AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0), AFFINEANIMCMD_FRAME(-0x2, -0x2, -10, 120), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd *const gUnknown_83E6DF4[] = +static const union AffineAnimCmd *const sAffineAnims_PsychUpSpiral[] = { - gUnknown_83E6DDC, + sAffineAnim_PsychUpSpiral, }; -const struct SpriteTemplate gUnknown_83E6DF8 = +const struct SpriteTemplate gPsychUpSpiralSpriteTemplate = { .tileTag = ANIM_TAG_SPIRAL, .paletteTag = ANIM_TAG_SPIRAL, .oam = &gOamData_AffineNormal_ObjBlend_64x64, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_83E6DF4, + .affineAnims = sAffineAnims_PsychUpSpiral, .callback = AnimSpriteOnMonPos, }; -const struct SpriteTemplate gUnknown_83E6E10 = +const struct SpriteTemplate gLightScreenWallSpriteTemplate = { .tileTag = ANIM_TAG_GREEN_LIGHT_WALL, .paletteTag = ANIM_TAG_GREEN_LIGHT_WALL, @@ -56,10 +56,10 @@ const struct SpriteTemplate gUnknown_83E6E10 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B2ECC, + .callback = AnimDefensiveWall, }; -const struct SpriteTemplate gUnknown_83E6E28 = +const struct SpriteTemplate gReflectWallSpriteTemplate = { .tileTag = ANIM_TAG_BLUE_LIGHT_WALL, .paletteTag = ANIM_TAG_BLUE_LIGHT_WALL, @@ -67,10 +67,10 @@ const struct SpriteTemplate gUnknown_83E6E28 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B2ECC, + .callback = AnimDefensiveWall, }; -const struct SpriteTemplate gUnknown_83E6E40 = +const struct SpriteTemplate gMirrorCoatWallSpriteTemplate = { .tileTag = ANIM_TAG_RED_LIGHT_WALL, .paletteTag = ANIM_TAG_RED_LIGHT_WALL, @@ -78,10 +78,10 @@ const struct SpriteTemplate gUnknown_83E6E40 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B2ECC, + .callback = AnimDefensiveWall, }; -const struct SpriteTemplate gUnknown_83E6E58 = +const struct SpriteTemplate gBarrierWallSpriteTemplate = { .tileTag = ANIM_TAG_GRAY_LIGHT_WALL, .paletteTag = ANIM_TAG_GRAY_LIGHT_WALL, @@ -89,10 +89,10 @@ const struct SpriteTemplate gUnknown_83E6E58 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B2ECC, + .callback = AnimDefensiveWall, }; -const struct SpriteTemplate gUnknown_83E6E70 = +const struct SpriteTemplate gMagicCoatWallSpriteTemplate = { .tileTag = ANIM_TAG_ORANGE_LIGHT_WALL, .paletteTag = ANIM_TAG_ORANGE_LIGHT_WALL, @@ -100,10 +100,10 @@ const struct SpriteTemplate gUnknown_83E6E70 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B2ECC, + .callback = AnimDefensiveWall, }; -static const union AnimCmd gUnknown_83E6E88[] = +static const union AnimCmd sAnim_ReflectSparkle[] = { ANIMCMD_FRAME(0, 3), ANIMCMD_FRAME(16, 3), @@ -113,23 +113,23 @@ static const union AnimCmd gUnknown_83E6E88[] = ANIMCMD_END, }; -static const union AnimCmd *const gUnknown_83E6EA0[] = +static const union AnimCmd *const sAnims_ReflectSparkle[] = { - gUnknown_83E6E88, + sAnim_ReflectSparkle, }; -const struct SpriteTemplate gUnknown_83E6EA4 = +const struct SpriteTemplate gReflectSparkleSpriteTemplate = { .tileTag = ANIM_TAG_SPARKLE_4, .paletteTag = ANIM_TAG_SPARKLE_4, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_83E6EA0, + .anims = sAnims_ReflectSparkle, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B31D0, + .callback = AnimWallSparkle, }; -static const union AnimCmd gUnknown_83E6EBC[] = +static const union AnimCmd sAnim_SpecialScreenSparkle[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_FRAME(4, 5), @@ -138,23 +138,23 @@ static const union AnimCmd gUnknown_83E6EBC[] = ANIMCMD_END, }; -static const union AnimCmd *const gUnknown_83E6ED0[] = +static const union AnimCmd *const sAnims_SpecialScreenSparkle[] = { - gUnknown_83E6EBC, + sAnim_SpecialScreenSparkle, }; -const struct SpriteTemplate gUnknown_83E6ED4 = +const struct SpriteTemplate gSpecialScreenSparkleSpriteTemplate = { .tileTag = ANIM_TAG_SPARKLE_3, .paletteTag = ANIM_TAG_SPARKLE_3, .oam = &gOamData_AffineOff_ObjNormal_16x16, - .anims = gUnknown_83E6ED0, + .anims = sAnims_SpecialScreenSparkle, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B31D0, + .callback = AnimWallSparkle, }; -const struct SpriteTemplate gUnknown_83E6EEC = +const struct SpriteTemplate gGoldRingSpriteTemplate = { .tileTag = ANIM_TAG_GOLD_RING, .paletteTag = ANIM_TAG_GOLD_RING, @@ -165,7 +165,7 @@ const struct SpriteTemplate gUnknown_83E6EEC = .callback = TranslateAnimSpriteToTargetMonLocation, }; -static const union AnimCmd gUnknown_83E6F04[] = +static const union AnimCmd sAnim_BentSpoon_0[] = { ANIMCMD_FRAME(8, 60, .hFlip = TRUE), ANIMCMD_FRAME(16, 5, .hFlip = TRUE), @@ -185,7 +185,7 @@ static const union AnimCmd gUnknown_83E6F04[] = ANIMCMD_END, }; -const union AnimCmd gUnknown_83E6F44[] = +static const union AnimCmd sAnim_BentSpoon_1[] = { ANIMCMD_FRAME(8, 60), ANIMCMD_FRAME(16, 5), @@ -205,24 +205,24 @@ const union AnimCmd gUnknown_83E6F44[] = ANIMCMD_END, }; -static const union AnimCmd *const gUnknown_83E6F84[] = +static const union AnimCmd *const sAnims_BentSpoon[] = { - gUnknown_83E6F04, - gUnknown_83E6F44, + sAnim_BentSpoon_0, + sAnim_BentSpoon_1, }; -const struct SpriteTemplate gUnknown_83E6F8C = +const struct SpriteTemplate gBentSpoonSpriteTemplate = { .tileTag = ANIM_TAG_BENT_SPOON, .paletteTag = ANIM_TAG_BENT_SPOON, .oam = &gOamData_AffineOff_ObjNormal_16x32, - .anims = gUnknown_83E6F84, + .anims = sAnims_BentSpoon, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B3278, + .callback = AnimBentSpoon, }; -static const union AnimCmd gUnknown_83E6FA4[] = +static const union AnimCmd sAnim_QuestionMark[] = { ANIMCMD_FRAME(0, 6), ANIMCMD_FRAME(16, 6), @@ -234,12 +234,12 @@ static const union AnimCmd gUnknown_83E6FA4[] = ANIMCMD_END, }; -static const union AnimCmd *const gUnknown_83E6FC4[] = +static const union AnimCmd *const sAnims_QuestionMark[] = { - gUnknown_83E6FA4, + sAnim_QuestionMark, }; -static const union AffineAnimCmd gUnknown_83E6FC8[] = +static const union AffineAnimCmd sAffineAnim_QuestionMark[] = { AFFINEANIMCMD_FRAME(0, 0, 4, 4), AFFINEANIMCMD_FRAME(0, 0, -4, 8), @@ -248,23 +248,23 @@ static const union AffineAnimCmd gUnknown_83E6FC8[] = AFFINEANIMCMD_END, }; -static const union AffineAnimCmd *const gUnknown_83E6FF0[] = +static const union AffineAnimCmd *const sAffineAnims_QuestionMark[] = { - gUnknown_83E6FC8, + sAffineAnim_QuestionMark, }; -const struct SpriteTemplate gUnknown_83E6FF4 = +const struct SpriteTemplate gQuestionMarkSpriteTemplate = { .tileTag = ANIM_TAG_AMNESIA, .paletteTag = ANIM_TAG_AMNESIA, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_83E6FC4, + .anims = sAnims_QuestionMark, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B32F4, + .callback = AnimQuestionMark, }; -static const union AffineAnimCmd gUnknown_83E700C[] = +static const union AffineAnimCmd sAffineAnim_MeditateStretchAttacker[] = { AFFINEANIMCMD_FRAME(-8, 10, 0, 16), AFFINEANIMCMD_FRAME(18, -18, 0, 16), @@ -272,14 +272,14 @@ static const union AffineAnimCmd gUnknown_83E700C[] = AFFINEANIMCMD_END, }; -static const union AffineAnimCmd gUnknown_83E702C[] = +static const union AffineAnimCmd sAffineAnim_Teleport[] = { AFFINEANIMCMD_FRAME(64, -4, 0, 20), AFFINEANIMCMD_FRAME(0, 0, 0, -56), AFFINEANIMCMD_END, }; -static const struct SpriteTemplate gUnknown_83E7044 = +static const struct SpriteTemplate sImprisonOrbSpriteTemplate = { .tileTag = ANIM_TAG_HOLLOW_ORB, .paletteTag = ANIM_TAG_HOLLOW_ORB, @@ -290,25 +290,25 @@ static const struct SpriteTemplate gUnknown_83E7044 = .callback = SpriteCallbackDummy, }; -const struct SpriteTemplate gUnknown_83E705C = +const struct SpriteTemplate gRedXSpriteTemplate = { - .tileTag = 0x280A, - .paletteTag = 0x280A, + .tileTag = ANIM_TAG_X_SIGN, + .paletteTag = ANIM_TAG_X_SIGN, .oam = &gOamData_AffineOff_ObjNormal_64x64, .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B37EC, + .callback = AnimRedX, }; -static const union AffineAnimCmd gUnknown_83E7074[] = +static const union AffineAnimCmd sAffineAnim_SkillSwapOrb_0[] = { AFFINEANIMCMD_FRAME(-0x8, -0x8, 0, 8), AFFINEANIMCMD_FRAME(0x8, 0x8, 0, 8), AFFINEANIMCMD_JUMP(0), }; -static const union AffineAnimCmd gUnknown_83E708C[] = +static const union AffineAnimCmd sAffineAnim_SkillSwapOrb_1[] = { AFFINEANIMCMD_FRAME(0xF0, 0xF0, 0, 0), AFFINEANIMCMD_FRAME(-0x8, -0x8, 0, 6), @@ -317,7 +317,7 @@ static const union AffineAnimCmd gUnknown_83E708C[] = AFFINEANIMCMD_JUMP(1), }; -static const union AffineAnimCmd gUnknown_83E70B4[] = +static const union AffineAnimCmd sAffineAnim_SkillSwapOrb_2[] = { AFFINEANIMCMD_FRAME(0xD0, 0xD0, 0, 0), AFFINEANIMCMD_FRAME(-0x8, -0x8, 0, 4), @@ -326,7 +326,7 @@ static const union AffineAnimCmd gUnknown_83E70B4[] = AFFINEANIMCMD_JUMP(1), }; -static const union AffineAnimCmd gUnknown_83E70DC[] = +static const union AffineAnimCmd sAffineAnim_SkillSwapOrb_3[] = { AFFINEANIMCMD_FRAME(0xB0, 0xB0, 0, 0), AFFINEANIMCMD_FRAME(-0x8, -0x8, 0, 2), @@ -335,49 +335,49 @@ static const union AffineAnimCmd gUnknown_83E70DC[] = AFFINEANIMCMD_JUMP(1), }; -static const union AffineAnimCmd *const gUnknown_83E7104[] = +static const union AffineAnimCmd *const sAffineAnims_SkillSwapOrb[] = { - gUnknown_83E7074, - gUnknown_83E708C, - gUnknown_83E70B4, - gUnknown_83E70DC, + sAffineAnim_SkillSwapOrb_0, + sAffineAnim_SkillSwapOrb_1, + sAffineAnim_SkillSwapOrb_2, + sAffineAnim_SkillSwapOrb_3, }; -static const struct SpriteTemplate gUnknown_83E7114 = +static const struct SpriteTemplate sSkillSwapOrbSpriteTemplate = { .tileTag = ANIM_TAG_BLUEGREEN_ORB, .paletteTag = ANIM_TAG_BLUEGREEN_ORB, .oam = &gOamData_AffineNormal_ObjNormal_16x16, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_83E7104, - .callback = sub_80B3A34, + .affineAnims = sAffineAnims_SkillSwapOrb, + .callback = AnimSkillSwapOrb, }; -static const union AffineAnimCmd gUnknown_83E712C[] = +static const union AffineAnimCmd sAffineAnim_LusterPurgeCircle[] = { AFFINEANIMCMD_FRAME(0x20, 0x20, 0, 0), AFFINEANIMCMD_FRAME(0x4, 0x4, 0, 120), AFFINEANIMCMD_END_ALT(1), }; -static const union AffineAnimCmd *const gUnknown_83E7144[] = +static const union AffineAnimCmd *const gAffineAnims_LusterPurgeCircle[] = { - gUnknown_83E712C, + sAffineAnim_LusterPurgeCircle, }; -const struct SpriteTemplate gUnknown_83E7148 = +const struct SpriteTemplate gLusterPurgeCircleSpriteTemplate = { .tileTag = ANIM_TAG_WHITE_CIRCLE_OF_LIGHT, .paletteTag = ANIM_TAG_WHITE_CIRCLE_OF_LIGHT, .oam = &gOamData_AffineDouble_ObjBlend_64x64, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_83E7144, + .affineAnims = gAffineAnims_LusterPurgeCircle, .callback = AnimSpriteOnMonPos, }; -static const union AffineAnimCmd gUnknown_83E7160[] = +static const union AffineAnimCmd sAffineAnim_PsychoBoostOrb_0[] = { AFFINEANIMCMD_FRAME(0x20, 0x20, 0, 0), AFFINEANIMCMD_FRAME(0x10, 0x10, 0, 17), @@ -392,30 +392,30 @@ static const union AffineAnimCmd gUnknown_83E7160[] = AFFINEANIMCMD_END, }; -static const union AffineAnimCmd gUnknown_83E71B8[] = +static const union AffineAnimCmd sAffineAnim_PsychoBoostOrb_1[] = { AFFINEANIMCMD_FRAME(-0x14, 0x18, 0, 15), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd *const gUnknown_83E71C8[] = +static const union AffineAnimCmd *const sAffineAnims_PsychoBoostOrb[] = { - gUnknown_83E7160, - gUnknown_83E71B8, + sAffineAnim_PsychoBoostOrb_0, + sAffineAnim_PsychoBoostOrb_1, }; -const struct SpriteTemplate gUnknown_83E71D0 = +const struct SpriteTemplate gPsychoBoostOrbSpriteTemplate = { .tileTag = ANIM_TAG_CIRCLE_OF_LIGHT, .paletteTag = ANIM_TAG_CIRCLE_OF_LIGHT, .oam = &gOamData_AffineDouble_ObjBlend_64x64, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_83E71C8, - .callback = sub_80B3E84, + .affineAnims = sAffineAnims_PsychoBoostOrb, + .callback = AnimPsychoBoost, }; -static void sub_80B2ECC(struct Sprite *sprite) +static void AnimDefensiveWall(struct Sprite *sprite) { if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER || IsContest()) { @@ -531,7 +531,7 @@ static void sub_80B3168(struct Sprite *sprite) sprite->callback = DestroyAnimSprite; } -static void sub_80B31D0(struct Sprite *sprite) +static void AnimWallSparkle(struct Sprite *sprite) { if (sprite->data[0] == 0) { @@ -568,7 +568,7 @@ static void sub_80B31D0(struct Sprite *sprite) } } -static void sub_80B3278(struct Sprite *sprite) +static void AnimBentSpoon(struct Sprite *sprite) { sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); @@ -589,7 +589,7 @@ static void sub_80B3278(struct Sprite *sprite) sprite->callback = RunStoredCallbackWhenAnimEnds; } -static void sub_80B32F4(struct Sprite *sprite) +static void AnimQuestionMark(struct Sprite *sprite) { s16 x = GetBattlerSpriteCoordAttr(gBattleAnimAttacker, BATTLER_COORD_ATTR_WIDTH) / 2; s16 y = GetBattlerSpriteCoordAttr(gBattleAnimAttacker, BATTLER_COORD_ATTR_HEIGHT) / -2; @@ -607,7 +607,7 @@ static void sub_80B32F4(struct Sprite *sprite) static void sub_80B3384(struct Sprite *sprite) { sprite->oam.affineMode = ST_OAM_AFFINE_NORMAL; - sprite->affineAnims = gUnknown_83E6FF0; + sprite->affineAnims = sAffineAnims_QuestionMark; sprite->data[0] = 0; InitSpriteAffineAnim(sprite); sprite->callback = sub_80B33B8; @@ -633,13 +633,13 @@ static void sub_80B33B8(struct Sprite *sprite) } } -void sub_80B3418(u8 taskId) +void AnimTask_MeditateStretchAttacker(u8 taskId) { struct Task *task = &gTasks[taskId]; u8 spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER); task->data[0] = spriteId; - PrepareAffineAnimInTaskData(task, spriteId, gUnknown_83E700C); + PrepareAffineAnimInTaskData(task, spriteId, sAffineAnim_MeditateStretchAttacker); task->func = sub_80B3454; } @@ -649,7 +649,7 @@ static void sub_80B3454(u8 taskId) DestroyAnimVisualTask(taskId); } -void sub_80B3480(u8 taskId) +void AnimTask_Teleport(u8 taskId) { struct Task *task = &gTasks[taskId]; u8 spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER); @@ -658,7 +658,7 @@ void sub_80B3480(u8 taskId) task->data[1] = 0; task->data[2] = 0; task->data[3] = GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER ? 4 : 8; - PrepareAffineAnimInTaskData(task, task->data[0], gUnknown_83E702C); + PrepareAffineAnimInTaskData(task, task->data[0], sAffineAnim_Teleport); task->func = sub_80B34DC; } @@ -690,7 +690,7 @@ static void sub_80B34DC(u8 taskId) } } -void sub_80B3584(u8 taskId) +void AnimTask_ImprisonOrbs(u8 taskId) { u16 var0, var1; struct Task *task = &gTasks[taskId]; @@ -719,7 +719,7 @@ static void sub_80B3618(u8 taskId) if (++task->data[1] > 8) { task->data[1] = 0; - spriteId = CreateSprite(&gUnknown_83E7044, task->data[13], task->data[14], 0); + spriteId = CreateSprite(&sImprisonOrbSpriteTemplate, task->data[13], task->data[14], 0); task->data[task->data[2] + 8] = spriteId; if (spriteId != MAX_SPRITES) { @@ -782,7 +782,7 @@ static void sub_80B37A4(struct Sprite *sprite) ++sprite->data[1]; } -static void sub_80B37EC(struct Sprite *sprite) +static void AnimRedX(struct Sprite *sprite) { if (gBattleAnimArgs[0] == 0) { @@ -793,7 +793,7 @@ static void sub_80B37EC(struct Sprite *sprite) sprite->callback = sub_80B37A4; } -void sub_80B3834(u8 taskId) +void AnimTask_SkillSwap(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -850,7 +850,7 @@ static void sub_80B3980(u8 taskId) if (++task->data[1] > 6) { task->data[1] = 0; - spriteId = CreateSprite(&gUnknown_83E7114, task->data[11], task->data[12], 0); + spriteId = CreateSprite(&sSkillSwapOrbSpriteTemplate, task->data[11], task->data[12], 0); if (spriteId != 64) { gSprites[spriteId].data[0] = 16; @@ -872,7 +872,7 @@ static void sub_80B3980(u8 taskId) } } -static void sub_80B3A34(struct Sprite *sprite) +static void AnimSkillSwapOrb(struct Sprite *sprite) { if (TranslateAnimHorizontalArc(sprite)) { @@ -881,7 +881,7 @@ static void sub_80B3A34(struct Sprite *sprite) } } -void sub_80B3A58(u8 taskId) +void AnimTask_ExtrasensoryDistortion(u8 taskId) { s16 i; u8 yOffset; @@ -969,7 +969,7 @@ static void sub_80B3B78(u8 taskId) } } -void sub_80B3C78(u8 taskId) +void AnimTask_TransparentCloneGrowAndShrink(u8 taskId) { s16 spriteId; s16 matrixNum; @@ -1034,7 +1034,7 @@ static void sub_80B3D78(u8 taskId) } } -static void sub_80B3E84(struct Sprite *sprite) +static void AnimPsychoBoost(struct Sprite *sprite) { switch (sprite->data[0]) { diff --git a/src/rock.c b/src/rock.c index a2d28d057..25db442ca 100644 --- a/src/rock.c +++ b/src/rock.c @@ -6,16 +6,16 @@ #include "trig.h" #include "constants/songs.h" -static void sub_80B4634(struct Sprite *sprite); -static void sub_80B46F8(struct Sprite *sprite); +static void AnimFallingRock(struct Sprite *sprite); +static void AnimRockFragment(struct Sprite *sprite); static void AnimDirtParticleAcrossScreen(struct Sprite *sprite); static void AnimRaiseSprite(struct Sprite *sprite); static void sub_80B4D00(u8 taskId); -static void sub_80B4F78(struct Sprite *sprite); -static void sub_80B4FE4(struct Sprite *sprite); -static void sub_80B5074(struct Sprite *sprite); -static void sub_80B50A0(struct Sprite *sprite); -static void sub_80B477C(struct Sprite *sprite); +static void AnimRolloutParticle(struct Sprite *sprite); +static void AnimRockTomb(struct Sprite *sprite); +static void AnimRockBlastRock(struct Sprite *sprite); +static void AnimRockScatter(struct Sprite *sprite); +static void AnimParticleInVortex(struct Sprite *sprite); static void sub_80B46B4(struct Sprite *sprite); static void sub_80B47C4(struct Sprite *sprite); static void sub_80B490C(u8 taskId); @@ -24,54 +24,54 @@ static u8 sub_80B4FB8(void); static void sub_80B5024(struct Sprite *sprite); static void sub_80B50F8(struct Sprite *sprite); -static const union AnimCmd gUnknown_83E7390[] = +static const union AnimCmd sAnim_FlyingRock_0[] = { ANIMCMD_FRAME(32, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_83E7398[] = +static const union AnimCmd sAnim_FlyingRock_1[] = { ANIMCMD_FRAME(48, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_83E73A0[] = +static const union AnimCmd sAnim_FlyingRock_2[] = { ANIMCMD_FRAME(64, 1), ANIMCMD_END, }; -static const union AnimCmd *const gUnknown_83E73A8[] = +static const union AnimCmd *const sAnims_FlyingRock[] = { - gUnknown_83E7390, - gUnknown_83E7398, - gUnknown_83E73A0, + sAnim_FlyingRock_0, + sAnim_FlyingRock_1, + sAnim_FlyingRock_2, }; -const struct SpriteTemplate gUnknown_83E73B4 = +const struct SpriteTemplate gFallingRockSpriteTemplate = { .tileTag = ANIM_TAG_ROCKS, .paletteTag = ANIM_TAG_ROCKS, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_83E73A8, + .anims = sAnims_FlyingRock, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B4634, + .callback = AnimFallingRock, }; -const struct SpriteTemplate gUnknown_83E73CC = +const struct SpriteTemplate gRockFragmentSpriteTemplate = { .tileTag = ANIM_TAG_ROCKS, .paletteTag = ANIM_TAG_ROCKS, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_83E73A8, + .anims = sAnims_FlyingRock, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B46F8, + .callback = AnimRockFragment, }; -const struct SpriteTemplate gUnknown_83E73E4 = +const struct SpriteTemplate gSwirlingDirtSpriteTemplate = { .tileTag = ANIM_TAG_MUD_SAND, .paletteTag = ANIM_TAG_MUD_SAND, @@ -79,10 +79,10 @@ const struct SpriteTemplate gUnknown_83E73E4 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B477C, + .callback = AnimParticleInVortex, }; -static const union AffineAnimCmd gUnknown_83E73FC[] = +static const union AffineAnimCmd sAffineAnim_Whirlpool[] = { AFFINEANIMCMD_FRAME(0xC0, 0xC0, 0, 0), AFFINEANIMCMD_FRAME(0x2, -0x3, 0, 5), @@ -90,34 +90,34 @@ static const union AffineAnimCmd gUnknown_83E73FC[] = AFFINEANIMCMD_JUMP(1), }; -static const union AffineAnimCmd *const gUnknown_83E741C[] = +static const union AffineAnimCmd *const sAffineAnims_Whirlpool[] = { - gUnknown_83E73FC, + sAffineAnim_Whirlpool, }; -const struct SpriteTemplate gUnknown_83E7420 = +const struct SpriteTemplate gWhirlpoolSpriteTemplate = { .tileTag = ANIM_TAG_WATER_ORB, .paletteTag = ANIM_TAG_WATER_ORB, .oam = &gOamData_AffineNormal_ObjBlend_16x16, - .anims = gUnknown_83E5958, + .anims = gAnims_WaterMudOrb, .images = NULL, - .affineAnims = gUnknown_83E741C, - .callback = sub_80B477C, + .affineAnims = sAffineAnims_Whirlpool, + .callback = AnimParticleInVortex, }; -const struct SpriteTemplate gUnknown_83E7438 = +const struct SpriteTemplate gFireSpinSpriteTemplate = { .tileTag = ANIM_TAG_SMALL_EMBER, .paletteTag = ANIM_TAG_SMALL_EMBER, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_83E5D48, + .anims = gAnims_BasicFire, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B477C, + .callback = AnimParticleInVortex, }; -const struct SpriteTemplate gUnknown_83E7450 = +const struct SpriteTemplate gFlyingSandCrescentSpriteTemplate = { .tileTag = ANIM_TAG_FLYING_DIRT, .paletteTag = ANIM_TAG_FLYING_DIRT, @@ -128,7 +128,7 @@ const struct SpriteTemplate gUnknown_83E7450 = .callback = AnimDirtParticleAcrossScreen, }; -static const struct Subsprite gUnknown_83E7468[] = +static const struct Subsprite sFlyingSandSubsprites[] = { { .x = -16, @@ -148,77 +148,77 @@ static const struct Subsprite gUnknown_83E7468[] = }, }; -static const struct SubspriteTable gUnknown_83E7470[] = +static const struct SubspriteTable sFlyingSandSubspriteTable[] = { - { NELEMS(gUnknown_83E7468), gUnknown_83E7468 }, + { NELEMS(sFlyingSandSubsprites), sFlyingSandSubsprites }, }; -static const union AnimCmd gUnknown_83E7478[] = +static const union AnimCmd sAnim_BasicRock_0[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_83E7480[] = +static const union AnimCmd sAnim_BasicRock_1[] = { ANIMCMD_FRAME(16, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_83E7488[] = +static const union AnimCmd sAnim_WeatherBallRockDown_0[] = { ANIMCMD_FRAME(32, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_83E7490[] = +static const union AnimCmd sAnim_WeatherBallRockDown_1[] = { ANIMCMD_FRAME(48, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_83E7498[] = +static const union AnimCmd sAnim_TwisterRock_0[] = { ANIMCMD_FRAME(64, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_83E74A0[] = +static const union AnimCmd sAnim_TwisterRock_1[] = { ANIMCMD_FRAME(80, 1), ANIMCMD_END, }; -static const union AnimCmd *const gUnknown_83E74A8[] = +static const union AnimCmd *const sAnims_BasicRock[] = { - gUnknown_83E7478, - gUnknown_83E7480, + sAnim_BasicRock_0, + sAnim_BasicRock_1, }; -static const union AnimCmd *const gUnknown_83E74B0[] = +static const union AnimCmd *const sAnims_WeatherBallRockDown[] = { - gUnknown_83E7488, - gUnknown_83E7490, + sAnim_WeatherBallRockDown_0, + sAnim_WeatherBallRockDown_1, }; -static const union AnimCmd *const gUnknown_83E74B8[] = +static const union AnimCmd *const sAnims_TwisterRock[] = { - gUnknown_83E7498, - gUnknown_83E74A0, + sAnim_TwisterRock_0, + sAnim_TwisterRock_1, }; -const struct SpriteTemplate gUnknown_83E74C0 = +const struct SpriteTemplate gAncientPowerRockSpriteTemplate = { .tileTag = ANIM_TAG_ROCKS, .paletteTag = ANIM_TAG_ROCKS, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_83E74A8, + .anims = sAnims_BasicRock, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimRaiseSprite, }; -const struct SpriteTemplate gUnknown_83E74D8 = +const struct SpriteTemplate gRolloutMudSpriteTemplate = { .tileTag = ANIM_TAG_MUD_SAND, .paletteTag = ANIM_TAG_MUD_SAND, @@ -226,7 +226,7 @@ const struct SpriteTemplate gUnknown_83E74D8 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B4F78, + .callback = AnimRolloutParticle, }; const struct SpriteTemplate gUnknown_83E74F0 = @@ -237,83 +237,83 @@ const struct SpriteTemplate gUnknown_83E74F0 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B4F78, + .callback = AnimRolloutParticle, }; -const struct SpriteTemplate gUnknown_83E7508 = +const struct SpriteTemplate gRockTombRockSpriteTemplate = { .tileTag = ANIM_TAG_ROCKS, .paletteTag = ANIM_TAG_ROCKS, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_83E74A8, + .anims = sAnims_BasicRock, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B4FE4, + .callback = AnimRockTomb, }; -static const union AffineAnimCmd gUnknown_83E7520[] = +static const union AffineAnimCmd sAffineAnim_BasicRock_0[] = { AFFINEANIMCMD_FRAME(0x0, 0x0, -5, 5), AFFINEANIMCMD_JUMP(0), }; -static const union AffineAnimCmd gUnknown_83E7530[] = +static const union AffineAnimCmd sAffineAnim_BasicRock_1[] = { AFFINEANIMCMD_FRAME(0x0, 0x0, 5, 5), AFFINEANIMCMD_JUMP(0), }; -static const union AffineAnimCmd *const gUnknown_83E7540[] = +static const union AffineAnimCmd *const sAffineAnims_BasicRock[] = { - gUnknown_83E7520, - gUnknown_83E7530, + sAffineAnim_BasicRock_0, + sAffineAnim_BasicRock_1, }; -const struct SpriteTemplate gUnknown_83E7548 = +const struct SpriteTemplate gRockBlastRockSpriteTemplate = { .tileTag = ANIM_TAG_ROCKS, .paletteTag = ANIM_TAG_ROCKS, .oam = &gOamData_AffineNormal_ObjNormal_32x32, - .anims = gUnknown_83E74A8, + .anims = sAnims_BasicRock, .images = NULL, - .affineAnims = gUnknown_83E7540, - .callback = sub_80B5074, + .affineAnims = sAffineAnims_BasicRock, + .callback = AnimRockBlastRock, }; -const struct SpriteTemplate gUnknown_83E7560 = +const struct SpriteTemplate gRockScatterSpriteTemplate = { .tileTag = ANIM_TAG_ROCKS, .paletteTag = ANIM_TAG_ROCKS, .oam = &gOamData_AffineNormal_ObjNormal_32x32, - .anims = gUnknown_83E74A8, + .anims = sAnims_BasicRock, .images = NULL, - .affineAnims = gUnknown_83E7540, - .callback = sub_80B50A0, + .affineAnims = sAffineAnims_BasicRock, + .callback = AnimRockScatter, }; -const struct SpriteTemplate gUnknown_83E7578 = +const struct SpriteTemplate gTwisterRockSpriteTemplate = { .tileTag = ANIM_TAG_ROCKS, .paletteTag = ANIM_TAG_ROCKS, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_83E74B8, + .anims = sAnims_TwisterRock, .images = NULL, - .affineAnims = gUnknown_83E7540, + .affineAnims = sAffineAnims_BasicRock, .callback = AnimMoveTwisterParticle, }; -const struct SpriteTemplate gUnknown_83E7590 = +const struct SpriteTemplate gWeatherBallRockDownSpriteTemplate = { .tileTag = ANIM_TAG_ROCKS, .paletteTag = ANIM_TAG_ROCKS, .oam = &gOamData_AffineNormal_ObjNormal_32x32, - .anims = gUnknown_83E74B0, + .anims = sAnims_WeatherBallRockDown, .images = NULL, - .affineAnims = gUnknown_83E7540, - .callback = sub_8077350, + .affineAnims = sAffineAnims_BasicRock, + .callback = AnimWeatherBallDown, }; -static void sub_80B4634(struct Sprite *sprite) +static void AnimFallingRock(struct Sprite *sprite) { if (gBattleAnimArgs[3] != 0) SetAverageBattlerPositions(gBattleAnimTarget, 0, &sprite->pos1.x, &sprite->pos1.y); @@ -345,7 +345,7 @@ static void sub_80B46B4(struct Sprite *sprite) sprite->callback(sprite); } -static void sub_80B46F8(struct Sprite *sprite) +static void AnimRockFragment(struct Sprite *sprite) { StartSpriteAnim(sprite, gBattleAnimArgs[5]); AnimateSprite(sprite); @@ -366,7 +366,7 @@ static void sub_80B46F8(struct Sprite *sprite) StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix); } -static void sub_80B477C(struct Sprite *sprite) +static void AnimParticleInVortex(struct Sprite *sprite) { if (gBattleAnimArgs[6] == 0) InitSpritePosToAnimAttacker(sprite, 0); @@ -503,7 +503,7 @@ static void AnimDirtParticleAcrossScreen(struct Sprite *sprite) sprite->pos1.x = -64; } sprite->pos1.y = gBattleAnimArgs[0]; - SetSubspriteTables(sprite, gUnknown_83E7470); + SetSubspriteTables(sprite, sFlyingSandSubspriteTable); sprite->data[1] = gBattleAnimArgs[1]; sprite->data[2] = gBattleAnimArgs[2]; ++sprite->data[0]; @@ -547,7 +547,7 @@ static void AnimRaiseSprite(struct Sprite *sprite) StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); } -void sub_80B4BD0(u8 taskId) +void AnimTask_Rollout(u8 taskId) { u16 var0, var1, var2, var3; u8 var4; @@ -660,7 +660,7 @@ static void sub_80B4E70(struct Task *task) switch (task->data[1]) { case 1: - spriteTemplate = &gUnknown_83E74D8; + spriteTemplate = &gRolloutMudSpriteTemplate; var0 = 0; break; case 2: @@ -696,7 +696,7 @@ static void sub_80B4E70(struct Task *task) task->data[12] *= -1; } -static void sub_80B4F78(struct Sprite *sprite) +static void AnimRolloutParticle(struct Sprite *sprite) { if (TranslateAnimHorizontalArc(sprite)) { @@ -718,7 +718,7 @@ static u8 sub_80B4FB8(void) return retVal; } -static void sub_80B4FE4(struct Sprite *sprite) +static void AnimRockTomb(struct Sprite *sprite) { StartSpriteAnim(sprite, gBattleAnimArgs[4]); sprite->pos2.x = gBattleAnimArgs[0]; @@ -749,14 +749,14 @@ static void sub_80B5024(struct Sprite *sprite) } } -static void sub_80B5074(struct Sprite *sprite) +static void AnimRockBlastRock(struct Sprite *sprite) { if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_OPPONENT) StartSpriteAffineAnim(sprite, 1); TranslateAnimSpriteToTargetMonLocation(sprite); } -static void sub_80B50A0(struct Sprite *sprite) +static void AnimRockScatter(struct Sprite *sprite) { sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, 0); sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, 1); @@ -791,7 +791,7 @@ void AnimTask_GetSeismicTossDamageLevel(u8 taskId) DestroyAnimVisualTask(taskId); } -void sub_80B5188(u8 taskId) +void AnimTask_MoveSeismicTossBg(u8 taskId) { if (gTasks[taskId].data[0] == 0) { @@ -808,7 +808,7 @@ void sub_80B5188(u8 taskId) ++gTasks[taskId].data[0]; } -void sub_80B51EC(u8 taskId) +void AnimTask_SeismicTossBgAccelerateDownAtEnd(u8 taskId) { if (gTasks[taskId].data[0] == 0) { diff --git a/src/water.c b/src/water.c new file mode 100644 index 000000000..8614f6600 --- /dev/null +++ b/src/water.c @@ -0,0 +1,2229 @@ +#include "global.h" +#include "battle_anim.h" +#include "decompress.h" +#include "gpu_regs.h" +#include "graphics.h" +#include "palette.h" +#include "pokemon.h" +#include "random.h" +#include "scanline_effect.h" +#include "sprite.h" +#include "task.h" +#include "trig.h" +#include "util.h" + +#define ISO_RANDOMIZE2(val)(1103515245 * (val) + 12345) + +static void AnimRainDrop(struct Sprite *); +static void AnimRainDrop_Step(struct Sprite *); +static void AnimWaterBubbleProjectile(struct Sprite *); +static void AnimWaterBubbleProjectile_Step1(struct Sprite *); +static void AnimWaterBubbleProjectile_Step2(struct Sprite *); +static void AnimWaterBubbleProjectile_Step3(struct Sprite *); +static void AnimAuroraBeamRings(struct Sprite *); +static void AnimAuroraBeamRings_Step(struct Sprite *); +static void AnimToTargetInSinWave(struct Sprite *); +static void AnimToTargetInSinWave_Step(struct Sprite *); +static void AnimHydroCannonCharge(struct Sprite *); +static void AnimHydroCannonCharge_Step(struct Sprite *); +static void AnimHydroCannonBeam(struct Sprite *); +static void AnimWaterGunDroplet(struct Sprite *); +static void AnimSmallBubblePair(struct Sprite *); +static void AnimSmallBubblePair_Step(struct Sprite *); +static void AnimSmallDriftingBubbles(struct Sprite *); +static void AnimSmallDriftingBubbles_Step(struct Sprite *); +static void AnimSmallWaterOrb(struct Sprite *); +static void AnimWaterSpoutRain(struct Sprite *); +static void AnimWaterSpoutRainHit(struct Sprite *); +static void AnimWaterSportDroplet(struct Sprite *); +static void AnimWaterSportDroplet_Step(struct Sprite *); +static void AnimWaterPulseBubble(struct Sprite *); +static void AnimWaterPulseBubble_Step(struct Sprite *); +static void AnimWaterPulseRingBubble(struct Sprite *); +static void AnimWaterPulseRing_Step(struct Sprite *); +static void AnimTask_RotateAuroraRingColors_Step(u8); +static void AnimTask_RunSinAnimTimer(u8); +static void AnimTask_CreateSurfWave_Step1(u8); +static void AnimTask_CreateSurfWave_Step2(u8); +static void AnimTask_SurfWaveScanlineEffect(u8); +static void AnimTask_WaterSpoutLaunch_Step(u8); +static void AnimTask_WaterSpoutRain_Step(u8); +static u8 GetWaterSpoutPowerForAnim(void); +static void CreateWaterSpoutLaunchDroplets(struct Task*, u8); +static void CreateWaterSpoutRainDroplet(struct Task*, u8); +static void AnimTask_WaterSport_Step(u8); +static void CreateWaterSportDroplet(struct Task*); +static void CreateWaterPulseRingBubbles(struct Sprite*, int, int); + +// Both unused? Comment copied from pokeemerald +static const u8 gUnknown_83E44F4[] = INCBIN_U8("graphics/battle_anims/unk_83E4874.4bpp"); +static const u8 gUnknown_83E4874[] = INCBIN_U8("graphics/battle_anims/unk_83E4874.bin"); + +static const union AnimCmd sAnim_RainDrop[] = +{ + ANIMCMD_FRAME(0, 2), + ANIMCMD_FRAME(8, 2), + ANIMCMD_FRAME(16, 2), + ANIMCMD_FRAME(24, 6), + ANIMCMD_FRAME(32, 2), + ANIMCMD_FRAME(40, 2), + ANIMCMD_FRAME(48, 2), + ANIMCMD_END, +}; + +static const union AnimCmd *const sAnims_RainDrop[] = +{ + sAnim_RainDrop, +}; + +const struct SpriteTemplate gRainDropSpriteTemplate = +{ + .tileTag = ANIM_TAG_RAIN_DROPS, + .paletteTag = ANIM_TAG_RAIN_DROPS, + .oam = &gOamData_AffineOff_ObjNormal_16x32, + .anims = sAnims_RainDrop, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimRainDrop, +}; + +static const union AffineAnimCmd sAffineAnim_WaterBubbleProjectile[] = +{ + AFFINEANIMCMD_FRAME(-0x5, -0x5, 0, 10), + AFFINEANIMCMD_FRAME(0x5, 0x5, 0, 10), + AFFINEANIMCMD_JUMP(0), +}; + +static const union AffineAnimCmd *const sAffineAnims_WaterBubbleProjectile[] = +{ + sAffineAnim_WaterBubbleProjectile, +}; + +static const union AnimCmd sAnim_WaterBubbleProjectile[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(4, 5), + ANIMCMD_FRAME(8, 5), + ANIMCMD_END, +}; + +static const union AnimCmd *const sAnims_WaterBubbleProjectile[] = +{ + sAnim_WaterBubbleProjectile, +}; + +const struct SpriteTemplate gWaterBubbleProjectileSpriteTemplate = +{ + .tileTag = ANIM_TAG_BUBBLE, + .paletteTag = ANIM_TAG_BUBBLE, + .oam = &gOamData_AffineNormal_ObjBlend_16x16, + .anims = sAnims_WaterBubbleProjectile, + .images = NULL, + .affineAnims = sAffineAnims_WaterBubbleProjectile, + .callback = AnimWaterBubbleProjectile, +}; + +static const union AnimCmd sAnim_AuroraBeamRing_0[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_AuroraBeamRing_1[] = +{ + ANIMCMD_FRAME(4, 1), + ANIMCMD_END, +}; + +static const union AnimCmd *const sAnims_AuroraBeamRing[] = +{ + sAnim_AuroraBeamRing_0, + sAnim_AuroraBeamRing_1, +}; + +static const union AffineAnimCmd sAffineAnim_AuroraBeamRing[] = +{ + AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 1), + AFFINEANIMCMD_FRAME(0x60, 0x60, 0, 1), + AFFINEANIMCMD_END, +}; + +static const union AffineAnimCmd *const sAffineAnims_AuroraBeamRing[] = +{ + sAffineAnim_AuroraBeamRing, +}; + +const struct SpriteTemplate gAuroraBeamRingSpriteTemplate = +{ + .tileTag = ANIM_TAG_RAINBOW_RINGS, + .paletteTag = ANIM_TAG_RAINBOW_RINGS, + .oam = &gOamData_AffineDouble_ObjNormal_8x16, + .anims = sAnims_AuroraBeamRing, + .images = NULL, + .affineAnims = sAffineAnims_AuroraBeamRing, + .callback = AnimAuroraBeamRings, +}; + +static const union AnimCmd sAnim_WaterMudOrb[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(4, 1), + ANIMCMD_FRAME(8, 1), + ANIMCMD_FRAME(12, 1), + ANIMCMD_JUMP(0), +}; + +const union AnimCmd *const gAnims_WaterMudOrb[] = +{ + sAnim_WaterMudOrb, +}; + +const struct SpriteTemplate gHydroPumpOrbSpriteTemplate = +{ + .tileTag = ANIM_TAG_WATER_ORB, + .paletteTag = ANIM_TAG_WATER_ORB, + .oam = &gOamData_AffineOff_ObjBlend_16x16, + .anims = gAnims_WaterMudOrb, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimToTargetInSinWave, +}; + +const struct SpriteTemplate gMudShotOrbSpriteTemplate = +{ + .tileTag = ANIM_TAG_BROWN_ORB, + .paletteTag = ANIM_TAG_BROWN_ORB, + .oam = &gOamData_AffineOff_ObjBlend_16x16, + .anims = gAnims_WaterMudOrb, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimToTargetInSinWave, +}; + +const struct SpriteTemplate gSignalBeamRedOrbSpriteTemplate = +{ + .tileTag = ANIM_TAG_GLOWY_RED_ORB, + .paletteTag = ANIM_TAG_GLOWY_RED_ORB, + .oam = &gOamData_AffineOff_ObjNormal_8x8, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimToTargetInSinWave, +}; + +const struct SpriteTemplate gSignalBeamGreenOrbSpriteTemplate = +{ + .tileTag = ANIM_TAG_GLOWY_GREEN_ORB, + .paletteTag = ANIM_TAG_GLOWY_GREEN_ORB, + .oam = &gOamData_AffineOff_ObjNormal_8x8, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimToTargetInSinWave, +}; + +static const union AnimCmd sAnim_FlamethrowerFlame[] = +{ + ANIMCMD_FRAME(16, 2), + ANIMCMD_FRAME(32, 2), + ANIMCMD_FRAME(48, 2), + ANIMCMD_JUMP(0), +}; + +static const union AnimCmd *const sAnims_FlamethrowerFlame[] = +{ + sAnim_FlamethrowerFlame, +}; + +const struct SpriteTemplate gFlamethrowerFlameSpriteTemplate = +{ + .tileTag = ANIM_TAG_SMALL_EMBER, + .paletteTag = ANIM_TAG_SMALL_EMBER, + .oam = &gOamData_AffineOff_ObjNormal_32x32, + .anims = sAnims_FlamethrowerFlame, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimToTargetInSinWave, +}; + +const struct SpriteTemplate gPsywaveRingSpriteTemplate = +{ + .tileTag = ANIM_TAG_BLUE_RING, + .paletteTag = ANIM_TAG_BLUE_RING, + .oam = &gOamData_AffineDouble_ObjNormal_16x32, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gGrowingRingAffineAnimTable, + .callback = AnimToTargetInSinWave, +}; + +static const union AffineAnimCmd sAffineAnim_HydroCannonCharge[] = +{ + AFFINEANIMCMD_FRAME(0x3, 0x3, 10, 50), + AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 10), + AFFINEANIMCMD_FRAME(-0x14, -0x14, -10, 20), + AFFINEANIMCMD_END, +}; + +static const union AffineAnimCmd sAffineAnim_HydroCannonBeam[] = +{ + AFFINEANIMCMD_FRAME(0x150, 0x150, 0, 0), + AFFINEANIMCMD_END, +}; + +static const union AffineAnimCmd *const sAffineAnims_HydroCannonCharge[] = +{ + sAffineAnim_HydroCannonCharge, +}; + +static const union AffineAnimCmd *const sAffineAnims_HydroCannonBeam[] = +{ + sAffineAnim_HydroCannonBeam, +}; + +const struct SpriteTemplate gHydroCannonChargeSpriteTemplate = +{ + .tileTag = ANIM_TAG_WATER_ORB, + .paletteTag = ANIM_TAG_WATER_ORB, + .oam = &gOamData_AffineDouble_ObjBlend_16x16, + .anims = gAnims_WaterMudOrb, + .images = NULL, + .affineAnims = sAffineAnims_HydroCannonCharge, + .callback = AnimHydroCannonCharge, +}; + +const struct SpriteTemplate gHydroCannonBeamSpriteTemplate = +{ + .tileTag = ANIM_TAG_WATER_ORB, + .paletteTag = ANIM_TAG_WATER_ORB, + .oam = &gOamData_AffineDouble_ObjBlend_16x16, + .anims = gAnims_WaterMudOrb, + .images = NULL, + .affineAnims = sAffineAnims_HydroCannonBeam, + .callback = AnimHydroCannonBeam, +}; + +static const union AnimCmd sAnim_WaterBubble[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_WaterGunDroplet[] = +{ + ANIMCMD_FRAME(4, 1), + ANIMCMD_END, +}; + +const union AnimCmd *const gAnims_WaterBubble[] = +{ + sAnim_WaterBubble, +}; + +static const union AnimCmd *const sAnims_WaterGunDroplet[] = +{ + sAnim_WaterGunDroplet, +}; + +const struct SpriteTemplate gWaterGunProjectileSpriteTemplate = +{ + .tileTag = ANIM_TAG_SMALL_BUBBLES, + .paletteTag = ANIM_TAG_SMALL_BUBBLES, + .oam = &gOamData_AffineOff_ObjBlend_16x16, + .anims = gAnims_WaterBubble, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimThrowProjectile, +}; + +const struct SpriteTemplate gWaterGunDropletSpriteTemplate = +{ + .tileTag = ANIM_TAG_SMALL_BUBBLES, + .paletteTag = ANIM_TAG_SMALL_BUBBLES, + .oam = &gOamData_AffineDouble_ObjBlend_16x16, + .anims = sAnims_WaterGunDroplet, + .images = NULL, + .affineAnims = gAffineAnims_Droplet, + .callback = AnimWaterGunDroplet, +}; + +const struct SpriteTemplate gSmallBubblePairSpriteTemplate = +{ + .tileTag = ANIM_TAG_ICE_CRYSTALS, // ice_crystals_4, which are bubbles + .paletteTag = ANIM_TAG_ICE_CRYSTALS, + .oam = &gOamData_AffineOff_ObjNormal_8x8, + .anims = gAnims_SmallBubblePair, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimSmallBubblePair, +}; + +const struct SpriteTemplate gSmallDriftingBubblesSpriteTemplate = +{ + .tileTag = ANIM_TAG_SMALL_BUBBLES, + .paletteTag = ANIM_TAG_SMALL_BUBBLES, + .oam = &gOamData_AffineOff_ObjNormal_8x8, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimSmallDriftingBubbles, +}; + +// Used by Water Spout / Water Sport +const struct SpriteTemplate gSmallWaterOrbSpriteTemplate = +{ + .tileTag = ANIM_TAG_GLOWY_BLUE_ORB, + .paletteTag = ANIM_TAG_GLOWY_BLUE_ORB, + .oam = &gOamData_AffineOff_ObjNormal_8x8, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimSmallWaterOrb, +}; + +static const union AnimCmd sAnim_WaterPulseBubble_0[] = +{ + ANIMCMD_FRAME(8, 1), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_WaterPulseBubble_1[] = +{ + ANIMCMD_FRAME(9, 1), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_WeatherBallWaterDown[] = +{ + ANIMCMD_FRAME(4, 1), + ANIMCMD_END, +}; + +static const union AnimCmd *const sAnims_WaterPulseBubble[] = +{ + sAnim_WaterPulseBubble_0, + sAnim_WaterPulseBubble_1, +}; + +static const union AnimCmd *const sAnims_WeatherBallWaterDown[] = +{ + sAnim_WeatherBallWaterDown, +}; + +static const union AffineAnimCmd sAffineAnim_WaterPulseRingBubble_0[] = +{ + AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0), + AFFINEANIMCMD_FRAME(-0xA, -0xA, 0, 15), + AFFINEANIMCMD_END, +}; + +static const union AffineAnimCmd sAffineAnim_WaterPulseRingBubble_1[] = +{ + AFFINEANIMCMD_FRAME(0xE0, 0xE0, 0, 0), + AFFINEANIMCMD_FRAME(-0x8, -0x8, 0, 15), + AFFINEANIMCMD_END, +}; + +static const union AffineAnimCmd sAffineAnim_WeatherBallWaterDown[] = +{ + AFFINEANIMCMD_FRAME(0x150, 0x150, 0, 0), + AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 15), + AFFINEANIMCMD_END, +}; + +static const union AffineAnimCmd *const sAffineAnims_WaterPulseRingBubble[] = +{ + sAffineAnim_WaterPulseRingBubble_0, + sAffineAnim_WaterPulseRingBubble_1, +}; + +static const union AffineAnimCmd *const sAffineAnims_WeatherBallWaterDown[] = +{ + sAffineAnim_WeatherBallWaterDown, +}; + +const struct SpriteTemplate gWaterPulseBubbleSpriteTemplate = +{ + .tileTag = ANIM_TAG_SMALL_BUBBLES, + .paletteTag = ANIM_TAG_SMALL_BUBBLES, + .oam = &gOamData_AffineOff_ObjNormal_8x8, + .anims = sAnims_WaterPulseBubble, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimWaterPulseBubble, +}; + +const struct SpriteTemplate gWaterPulseRingBubbleSpriteTemplate = +{ + .tileTag = ANIM_TAG_SMALL_BUBBLES, + .paletteTag = ANIM_TAG_SMALL_BUBBLES, + .oam = &gOamData_AffineNormal_ObjNormal_8x8, + .anims = sAnims_WaterPulseBubble, + .images = NULL, + .affineAnims = sAffineAnims_WaterPulseRingBubble, + .callback = AnimWaterPulseRingBubble, +}; + +const struct SpriteTemplate gWeatherBallWaterDownSpriteTemplate = +{ + .tileTag = ANIM_TAG_SMALL_BUBBLES, + .paletteTag = ANIM_TAG_SMALL_BUBBLES, + .oam = &gOamData_AffineNormal_ObjNormal_16x16, + .anims = sAnims_WeatherBallWaterDown, + .images = NULL, + .affineAnims = sAffineAnims_WeatherBallWaterDown, + .callback = AnimWeatherBallDown, +}; + +void AnimTask_CreateRaindrops(u8 taskId) +{ + u8 x, y; + + if (gTasks[taskId].data[0] == 0) + { + gTasks[taskId].data[1] = gBattleAnimArgs[0]; + gTasks[taskId].data[2] = gBattleAnimArgs[1]; + gTasks[taskId].data[3] = gBattleAnimArgs[2]; + } + gTasks[taskId].data[0]++; + if (gTasks[taskId].data[0] % gTasks[taskId].data[2] == 1) + { + x = Random() % 240; + y = Random() % 80; + CreateSprite(&gRainDropSpriteTemplate, x, y, 4); + } + if (gTasks[taskId].data[0] == gTasks[taskId].data[3]) + DestroyAnimVisualTask(taskId); +} + +static void AnimRainDrop(struct Sprite *sprite) +{ + sprite->callback = AnimRainDrop_Step; +} + +static void AnimRainDrop_Step(struct Sprite *sprite) +{ + if (++sprite->data[0] < 14) // Was 13 in emerald + { + sprite->pos2.x += 1; + sprite->pos2.y += 4; + } + if (sprite->animEnded) + { + DestroySprite(sprite); + } +} + +// For water bubbles that move to a dest, as in Bubble/Bubblebeam +static void AnimWaterBubbleProjectile(struct Sprite *sprite) +{ + u8 spriteId; + + if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) + { + sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2) - gBattleAnimArgs[0]; + sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3) + gBattleAnimArgs[1]; + sprite->animPaused = TRUE; + } + else + { + sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2) + gBattleAnimArgs[0]; + sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3) + gBattleAnimArgs[1]; + sprite->animPaused = TRUE; + } + if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) + gBattleAnimArgs[2] = -gBattleAnimArgs[2]; + sprite->data[0] = gBattleAnimArgs[6]; + sprite->data[1] = sprite->pos1.x; + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2); + sprite->data[3] = sprite->pos1.y; + sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3); + InitAnimLinearTranslation(sprite); + spriteId = CreateInvisibleSpriteWithCallback(SpriteCallbackDummy); + sprite->data[5] = spriteId; + sprite->pos1.x -= Sin((u8)gBattleAnimArgs[4], gBattleAnimArgs[2]); + sprite->pos1.y -= Cos((u8)gBattleAnimArgs[4], gBattleAnimArgs[3]); + gSprites[spriteId].data[0] = gBattleAnimArgs[2]; + gSprites[spriteId].data[1] = gBattleAnimArgs[3]; + gSprites[spriteId].data[2] = gBattleAnimArgs[5]; + gSprites[spriteId].data[3] = (u8)gBattleAnimArgs[4] * 256; + gSprites[spriteId].data[4] = gBattleAnimArgs[6]; + sprite->callback = AnimWaterBubbleProjectile_Step1; + sprite->callback(sprite); +} + +static void AnimWaterBubbleProjectile_Step1(struct Sprite *sprite) +{ + u8 otherSpriteId = sprite->data[5]; + u8 timer = gSprites[otherSpriteId].data[4]; + u16 trigIndex = gSprites[otherSpriteId].data[3]; + + sprite->data[0] = 1; + AnimTranslateLinear(sprite); + sprite->pos2.x += Sin(trigIndex >> 8, gSprites[otherSpriteId].data[0]); + sprite->pos2.y += Cos(trigIndex >> 8, gSprites[otherSpriteId].data[1]); + gSprites[otherSpriteId].data[3] = trigIndex + gSprites[otherSpriteId].data[2]; + if (--timer != 0) + { + gSprites[otherSpriteId].data[4] = timer; + } + else + { + sprite->callback = AnimWaterBubbleProjectile_Step2; + DestroySprite(&gSprites[otherSpriteId]); + } +} + +static void AnimWaterBubbleProjectile_Step2(struct Sprite *sprite) +{ + sprite->animPaused = FALSE; + sprite->callback = RunStoredCallbackWhenAnimEnds; + StoreSpriteCallbackInData6(sprite, AnimWaterBubbleProjectile_Step3); +} + +static void AnimWaterBubbleProjectile_Step3(struct Sprite *sprite) +{ + sprite->data[0] = 10; + sprite->callback = WaitAnimForDuration; + StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix); +} + +static void AnimAuroraBeamRings(struct Sprite *sprite) +{ + s16 unkArg; + + InitSpritePosToAnimAttacker(sprite, TRUE); + if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) + unkArg = -gBattleAnimArgs[2]; + else + unkArg = gBattleAnimArgs[2]; + sprite->data[0] = gBattleAnimArgs[4]; + sprite->data[1] = sprite->pos1.x; + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2) + unkArg; + sprite->data[3] = sprite->pos1.y; + sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3) + gBattleAnimArgs[3]; + InitAnimLinearTranslation(sprite); + sprite->callback = AnimAuroraBeamRings_Step; + sprite->affineAnimPaused = TRUE; + sprite->callback(sprite); +} + +static void AnimAuroraBeamRings_Step(struct Sprite *sprite) +{ + if ((u16)gBattleAnimArgs[7] == 0xFFFF) + { + StartSpriteAnim(sprite, 1); + sprite->affineAnimPaused = FALSE; + } + if (AnimTranslateLinear(sprite)) + DestroyAnimSprite(sprite); +} + +// Updates the palette on the rainbow rings used in Aurora Beam to make them appear to be rotating counterclockwise +void AnimTask_RotateAuroraRingColors(u8 taskId) +{ + gTasks[taskId].data[0] = gBattleAnimArgs[0]; + gTasks[taskId].data[2] = IndexOfSpritePaletteTag(ANIM_TAG_RAINBOW_RINGS) * 16 + 256; + gTasks[taskId].func = AnimTask_RotateAuroraRingColors_Step; +} + +#ifdef NONMATCHING +static void AnimTask_RotateAuroraRingColors_Step(u8 taskId) +{ + int i; + u16 palIndex; + u16 *palPtr1; + u16 *palPtr2; + u16 rgbBuffer; + + if (++gTasks[taskId].data[10] == 3) + { + gTasks[taskId].data[10] = 0; + palIndex = gTasks[taskId].data[2] + 1; + palPtr1 = &gPlttBufferFaded[palIndex]; + rgbBuffer = *palPtr1; + palPtr2 = &palPtr1[1]; + for (i = 0; i < 7; i++) + palPtr1[i] = palPtr2[i]; + gPlttBufferFaded[palIndex + 7] = rgbBuffer; + } + if (++gTasks[taskId].data[11] == gTasks[taskId].data[0]) + DestroyAnimVisualTask(taskId); +} +#else +NAKED +static void AnimTask_RotateAuroraRingColors_Step(u8 taskId) +{ + asm_unified("push {r4-r7,lr}\n\ + lsls r0, 24\n\ + lsrs r4, r0, 24\n\ + ldr r1, =gTasks\n\ + lsls r0, r4, 2\n\ + adds r0, r4\n\ + lsls r0, 3\n\ + adds r2, r0, r1\n\ + ldrh r0, [r2, 0x1C]\n\ + adds r0, 0x1\n\ + strh r0, [r2, 0x1C]\n\ + lsls r0, 16\n\ + asrs r0, 16\n\ + mov r12, r1\n\ + cmp r0, 0x3\n\ + bne _081075BE\n\ + movs r0, 0\n\ + strh r0, [r2, 0x1C]\n\ + ldrh r0, [r2, 0xC]\n\ + adds r0, 0x1\n\ + lsls r0, 16\n\ + lsrs r5, r0, 16\n\ + ldr r1, =gPlttBufferFaded\n\ + lsls r0, r5, 1\n\ + adds r0, r1\n\ + ldrh r6, [r0]\n\ + adds r7, r1, 0\n\ + adds r3, r0, 0x2\n\ + movs r1, 0x6\n\ + adds r2, r0, 0\n\ +_081075A8:\n\ + ldrh r0, [r3]\n\ + strh r0, [r2]\n\ + adds r3, 0x2\n\ + adds r2, 0x2\n\ + subs r1, 0x1\n\ + cmp r1, 0\n\ + bge _081075A8\n\ + adds r0, r5, 0x7\n\ + lsls r0, 1\n\ + adds r0, r7\n\ + strh r6, [r0]\n\ +_081075BE:\n\ + lsls r0, r4, 2\n\ + adds r0, r4\n\ + lsls r0, 3\n\ + add r0, r12\n\ + ldrh r1, [r0, 0x1E]\n\ + adds r1, 0x1\n\ + strh r1, [r0, 0x1E]\n\ + lsls r1, 16\n\ + asrs r1, 16\n\ + movs r2, 0x8\n\ + ldrsh r0, [r0, r2]\n\ + cmp r1, r0\n\ + bne _081075DE\n\ + adds r0, r4, 0\n\ + bl DestroyAnimVisualTask\n\ +_081075DE:\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .pool\n"); +} +#endif + +// For animating undulating beam attacks (e.g. Flamethrower, Hydro Pump, Signal Beam) +static void AnimToTargetInSinWave(struct Sprite *sprite) +{ + u16 retArg; + + InitSpritePosToAnimAttacker(sprite, TRUE); + sprite->data[0] = 30; + sprite->data[1] = sprite->pos1.x; + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2); + sprite->data[3] = sprite->pos1.y; + sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3); + InitAnimLinearTranslation(sprite); + sprite->data[5] = 0xD200 / sprite->data[0]; + sprite->data[7] = gBattleAnimArgs[3]; + retArg = gBattleAnimArgs[7]; + if (gBattleAnimArgs[7] > 127) + { + sprite->data[6] = (retArg - 127) * 256; + sprite->data[7] = -sprite->data[7]; + } + else + { + sprite->data[6] = retArg * 256; + } + sprite->callback = AnimToTargetInSinWave_Step; + sprite->callback(sprite); +} + +static void AnimToTargetInSinWave_Step(struct Sprite *sprite) +{ + if (AnimTranslateLinear(sprite)) + DestroyAnimSprite(sprite); + sprite->pos2.y += Sin(sprite->data[6] >> 8, sprite->data[7]); + if ((sprite->data[6] + sprite->data[5]) >> 8 > 127) + { + sprite->data[6] = 0; + sprite->data[7] = -sprite->data[7]; + } + else + { + sprite->data[6] += sprite->data[5]; + } +} + +void AnimTask_StartSinAnimTimer(u8 taskId) +{ + gTasks[taskId].data[0] = gBattleAnimArgs[0]; + gBattleAnimArgs[7] = 0; + gTasks[taskId].func = AnimTask_RunSinAnimTimer; +} + +static void AnimTask_RunSinAnimTimer(u8 taskId) +{ + gBattleAnimArgs[7] = (gBattleAnimArgs[7] + 3) & 0xFF; + if (--gTasks[taskId].data[0] == 0) + DestroyAnimVisualTask(taskId); +} + +// Flashing blue orbs grow in size near the attacker. First stage of Hydro Cannon +static void AnimHydroCannonCharge(struct Sprite *sprite) +{ + u8 priority; + + sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 0); + sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1); + sprite->pos2.y = -10; + priority = GetBattlerSpriteSubpriority(gBattleAnimAttacker); + if (!IsContest()) + { + if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) + { + sprite->pos2.x = 10; + sprite->subpriority = priority + 2; + } + else + { + sprite->pos2.x = -10; + sprite->subpriority = priority - 2; + } + } + else + { + sprite->pos2.x = -10; + sprite->subpriority = priority + 2; + } + sprite->callback = AnimHydroCannonCharge_Step; +} + +static void AnimHydroCannonCharge_Step(struct Sprite *sprite) +{ + if (sprite->affineAnimEnded) + DestroyAnimSprite(sprite); +} + +// Flashing blue orbs move from the attacker to the target. Second stage of Hydro Cannon +static void AnimHydroCannonBeam(struct Sprite *sprite) +{ + bool8 animType; + u8 coordType; + if (GetBattlerSide(gBattleAnimAttacker) == GetBattlerSide(gBattleAnimTarget)) + { + gBattleAnimArgs[0] *= -1; + if (GetBattlerPosition(gBattleAnimAttacker) == B_POSITION_PLAYER_LEFT || GetBattlerPosition(gBattleAnimAttacker) == B_POSITION_OPPONENT_LEFT) + gBattleAnimArgs[0] *= -1; + } + if ((gBattleAnimArgs[5] & 0xFF00) == 0) + animType = TRUE; + else + animType = FALSE; + if ((u8)gBattleAnimArgs[5] == 0) + coordType = 3; + else + coordType = 1; + InitSpritePosToAnimAttacker(sprite, animType); + if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) + gBattleAnimArgs[2] = -gBattleAnimArgs[2]; + sprite->data[0] = gBattleAnimArgs[4]; + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2) + gBattleAnimArgs[2]; + sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, coordType) + gBattleAnimArgs[3]; + sprite->callback = StartAnimLinearTranslation; + StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); +} + +// Water droplet appears and drips down. Used by Water Gun on impact +static void AnimWaterGunDroplet(struct Sprite *sprite) +{ + InitSpritePosToAnimTarget(sprite, TRUE); + sprite->data[0] = gBattleAnimArgs[4]; + sprite->data[2] = sprite->pos1.x + gBattleAnimArgs[2]; + sprite->data[4] = sprite->pos1.y + gBattleAnimArgs[4]; + sprite->callback = StartAnimLinearTranslation; + StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); +} + +static void AnimSmallBubblePair(struct Sprite *sprite) +{ + if (gBattleAnimArgs[3] != ANIM_ATTACKER) + InitSpritePosToAnimTarget(sprite, TRUE); + else + InitSpritePosToAnimAttacker(sprite, TRUE); + sprite->data[7] = gBattleAnimArgs[2]; + sprite->callback = AnimSmallBubblePair_Step; +} + +static void AnimSmallBubblePair_Step(struct Sprite *sprite) +{ + sprite->data[0] = (sprite->data[0] + 11) & 0xFF; + sprite->pos2.x = Sin(sprite->data[0], 4); + sprite->data[1] += 48; + sprite->pos2.y = -(sprite->data[1] >> 8); + if (--sprite->data[7] == -1) + DestroyAnimSprite(sprite); +} + +#ifdef NONMATCHING +void AnimTask_CreateSurfWave(u8 taskId) +{ + struct BattleAnimBgData animBg; + u8 taskId2; + + SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG1 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_ALL); + SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0, 16)); + SetAnimBgAttribute(1, BG_ANIM_PRIORITY, 1); + SetAnimBgAttribute(1, BG_ANIM_SCREEN_SIZE, 1); + sub_80752A0(&animBg); + if (!IsContest()) + { + SetAnimBgAttribute(1, BG_ANIM_CHAR_BASE_BLOCK, 1); + if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_OPPONENT) + AnimLoadCompressedBgTilemap(animBg.bgId, gBattleAnimBgTilemap_SurfOpponent); + else + AnimLoadCompressedBgTilemap(animBg.bgId, gBattleAnimBgTilemap_SurfPlayer); + } + else + { + // Changed from Emerald + LZDecompressVram(gBattleAnimBgTilemap_SurfContest, animBg.bgTilemap); + sub_80730C0(animBg.paletteId, animBg.bgTilemap, 0, 1); + } + AnimLoadCompressedBgGfx(animBg.bgId, gBattleAnimBgImage_Surf, animBg.tilesOffset); + if (gBattleAnimArgs[0] == 0) + LoadCompressedPalette(gBattleAnimBgPalette_Surf, animBg.paletteId * 16, 32); + else + LoadCompressedPalette(gBattleAnimBgPalette_MuddyWater, animBg.paletteId * 16, 32); + taskId2 = CreateTask(AnimTask_SurfWaveScanlineEffect, gTasks[taskId].priority + 1); + gTasks[taskId].data[15] = taskId2; + gTasks[taskId2].data[0] = 0; + gTasks[taskId2].data[1] = 0x1000; + gTasks[taskId2].data[2] = 0x1000; + if (IsContest()) + { + gBattle_BG1_X = -80; + gBattle_BG1_Y = -48; + gTasks[taskId].data[0] = 2; + gTasks[taskId].data[1] = 1; + gTasks[taskId2].data[3] = 0; + } + else if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_OPPONENT) + { + gBattle_BG1_X = -224; + gBattle_BG1_Y = 256; + gTasks[taskId].data[0] = 2; + gTasks[taskId].data[1] = -1; + gTasks[taskId2].data[3] = 1; + } + else + { + gBattle_BG1_X = 0; + gBattle_BG1_Y = -48; + gTasks[taskId].data[0] = -2; + gTasks[taskId].data[1] = 1; + gTasks[taskId2].data[3] = 0; + } + SetGpuReg(REG_OFFSET_BG1HOFS, gBattle_BG1_X); + SetGpuReg(REG_OFFSET_BG1VOFS, gBattle_BG1_Y); + if (gTasks[taskId2].data[3] == 0) + { + gTasks[taskId2].data[4] = 48; + gTasks[taskId2].data[5] = 112; + } + else + { + gTasks[taskId2].data[4] = 0; + gTasks[taskId2].data[5] = 0; + } + gTasks[taskId].data[6] = 1; + gTasks[taskId].func = AnimTask_CreateSurfWave_Step1; +} +#else +NAKED +void AnimTask_CreateSurfWave(u8 taskId) +{ + asm_unified("push {r4-r7,lr}\n\ + mov r7, r10\n\ + mov r6, r9\n\ + mov r5, r8\n\ + push {r5-r7}\n\ + sub sp, 0x10\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + mov r10, r0\n\ + ldr r1, =0x00003f42\n\ + movs r0, 0x50\n\ + bl SetGpuReg\n\ + movs r1, 0x80\n\ + lsls r1, 5\n\ + movs r0, 0x52\n\ + bl SetGpuReg\n\ + movs r0, 0x1\n\ + movs r1, 0x4\n\ + movs r2, 0x1\n\ + bl SetAnimBgAttribute\n\ + movs r0, 0x1\n\ + movs r1, 0\n\ + movs r2, 0x1\n\ + bl SetAnimBgAttribute\n\ + mov r0, sp\n\ + bl sub_80752A0\n\ + bl IsContest\n\ + lsls r0, 24\n\ + cmp r0, 0\n\ + bne _081079E0\n\ + movs r0, 0x1\n\ + movs r1, 0x3\n\ + movs r2, 0x1\n\ + bl SetAnimBgAttribute\n\ + ldr r0, =gBattleAnimAttacker\n\ + ldrb r0, [r0]\n\ + bl GetBattlerSide\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + cmp r0, 0x1\n\ + bne _081079D0\n\ + mov r0, sp\n\ + ldrb r0, [r0, 0x9]\n\ + ldr r1, =gBattleAnimBgTilemap_SurfOpponent\n\ + bl AnimLoadCompressedBgTilemap\n\ + b _081079EA\n\ + .pool\n\ +_081079D0:\n\ + mov r0, sp\n\ + ldrb r0, [r0, 0x9]\n\ + ldr r1, =gBattleAnimBgTilemap_SurfPlayer\n\ + bl AnimLoadCompressedBgTilemap\n\ + b _081079EA\n\ + .pool\n\ +_081079E0:\n\ + ldr r0, =gBattleAnimBgTilemap_SurfContest\n\ + ldr r1, [sp, 0x4]\n\ + bl LZDecompressVram\n\ + mov r0, sp\n\ + ldrb r0, [r0, 0x8]\n\ + ldr r1, [sp, 0x4]\n\ + movs r2, 0\n\ + movs r3, 0x1\n\ + bl sub_80730C0\n\ +_081079EA:\n\ + mov r0, sp\n\ + ldrb r0, [r0, 0x9]\n\ + ldr r1, =gBattleAnimBgImage_Surf\n\ + mov r2, sp\n\ + ldrh r2, [r2, 0xA]\n\ + bl AnimLoadCompressedBgGfx\n\ + ldr r0, =gBattleAnimArgs\n\ + movs r1, 0\n\ + ldrsh r0, [r0, r1]\n\ + cmp r0, 0\n\ + bne _08107A24\n\ + ldr r0, =gBattleAnimBgPalette_Surf\n\ + mov r1, sp\n\ + ldrb r1, [r1, 0x8]\n\ + lsls r1, 4\n\ + movs r2, 0x20\n\ + bl LoadCompressedPalette\n\ + b _08107A32\n\ + .pool\n\ +_08107A24:\n\ + ldr r0, =gBattleAnimBgPalette_MuddyWater\n\ + mov r1, sp\n\ + ldrb r1, [r1, 0x8]\n\ + lsls r1, 4\n\ + movs r2, 0x20\n\ + bl LoadCompressedPalette\n\ +_08107A32:\n\ + ldr r0, =AnimTask_SurfWaveScanlineEffect\n\ + ldr r4, =gTasks\n\ + mov r2, r10\n\ + lsls r5, r2, 2\n\ + adds r1, r5, r2\n\ + lsls r1, 3\n\ + adds r6, r1, r4\n\ + ldrb r1, [r6, 0x7]\n\ + adds r1, 0x1\n\ + lsls r1, 24\n\ + lsrs r1, 24\n\ + bl CreateTask\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + mov r8, r0\n\ + movs r0, 0\n\ + mov r9, r0\n\ + mov r1, r8\n\ + strh r1, [r6, 0x26]\n\ + mov r2, r8\n\ + lsls r0, r2, 2\n\ + add r0, r8\n\ + lsls r0, 3\n\ + adds r7, r0, r4\n\ + mov r0, r9\n\ + strh r0, [r7, 0x8]\n\ + movs r0, 0x80\n\ + lsls r0, 5\n\ + strh r0, [r7, 0xA]\n\ + strh r0, [r7, 0xC]\n\ + bl IsContest\n\ + lsls r0, 24\n\ + lsrs r4, r0, 24\n\ + cmp r4, 0\n\ + beq _08107AB4\n\ + ldr r1, =0x0000ffb0\n\ + adds r0, r1, 0\n\ + ldr r2, =gBattle_BG1_X\n\ + strh r0, [r2]\n\ + adds r1, 0x20\n\ + adds r0, r1, 0\n\ + ldr r2, =gBattle_BG1_Y\n\ + strh r0, [r2]\n\ + movs r0, 0x2\n\ + strh r0, [r6, 0x8]\n\ + movs r0, 0x1\n\ + strh r0, [r6, 0xA]\n\ + mov r0, r9\n\ + strh r0, [r7, 0xE]\n\ + b _08107B0E\n\ + .pool\n\ +_08107AB4:\n\ + ldr r0, =gBattleAnimAttacker\n\ + ldrb r0, [r0]\n\ + bl GetBattlerSide\n\ + lsls r0, 24\n\ + lsrs r1, r0, 24\n\ + cmp r1, 0x1\n\ + bne _08107AF8\n\ + ldr r2, =0x0000ff20\n\ + adds r0, r2, 0\n\ + ldr r2, =gBattle_BG1_X\n\ + strh r0, [r2]\n\ + movs r2, 0x80\n\ + lsls r2, 1\n\ + adds r0, r2, 0\n\ + ldr r2, =gBattle_BG1_Y\n\ + strh r0, [r2]\n\ + movs r0, 0x2\n\ + strh r0, [r6, 0x8]\n\ + ldr r0, =0x0000ffff\n\ + strh r0, [r6, 0xA]\n\ + strh r1, [r7, 0xE]\n\ + b _08107B0E\n\ + .pool\n\ +_08107AF8:\n\ + ldr r0, =gBattle_BG1_X\n\ + strh r4, [r0]\n\ + ldr r1, =0x0000ffd0\n\ + adds r0, r1, 0\n\ + ldr r2, =gBattle_BG1_Y\n\ + strh r0, [r2]\n\ + ldr r0, =0x0000fffe\n\ + strh r0, [r6, 0x8]\n\ + movs r0, 0x1\n\ + strh r0, [r6, 0xA]\n\ + strh r4, [r7, 0xE]\n\ +_08107B0E:\n\ + ldr r0, =gBattle_BG1_X\n\ + ldrh r1, [r0]\n\ + movs r0, 0x14\n\ + bl SetGpuReg\n\ + ldr r2, =gBattle_BG1_Y\n\ + ldrh r1, [r2]\n\ + movs r0, 0x16\n\ + bl SetGpuReg\n\ + ldr r1, =gTasks\n\ + mov r2, r8\n\ + lsls r0, r2, 2\n\ + add r0, r8\n\ + lsls r0, 3\n\ + adds r1, r0, r1\n\ + movs r2, 0xE\n\ + ldrsh r0, [r1, r2]\n\ + cmp r0, 0\n\ + bne _08107B54\n\ + movs r0, 0x30\n\ + strh r0, [r1, 0x10]\n\ + movs r0, 0x70\n\ + b _08107B58\n\ + .pool\n\ +_08107B54:\n\ + movs r0, 0\n\ + strh r0, [r1, 0x10]\n\ +_08107B58:\n\ + strh r0, [r1, 0x12]\n\ + ldr r1, =gTasks\n\ + mov r2, r10\n\ + adds r0, r5, r2\n\ + lsls r0, 3\n\ + adds r0, r1\n\ + movs r1, 0x1\n\ + strh r1, [r0, 0x14]\n\ + ldr r1, =AnimTask_CreateSurfWave_Step1\n\ + str r1, [r0]\n\ + add sp, 0x10\n\ + pop {r3-r5}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + mov r10, r5\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .pool\n"); +} +#endif + +#ifdef NONMATCHING +static void AnimTask_CreateSurfWave_Step1(u8 taskId) +{ + struct BattleAnimBgData animBg; + u8 i; + u16 rgbBuffer; + u16 *BGptrX = &gBattle_BG1_X; + u16 *BGptrY = &gBattle_BG1_Y; + s16 unkUse; + u32 palOffset; + u16 palNum; + + *BGptrX += gTasks[taskId].data[0]; + *BGptrY += gTasks[taskId].data[1]; + sub_80752A0(&animBg); + gTasks[taskId].data[2] += gTasks[taskId].data[1]; + if (++gTasks[taskId].data[5] == 4) + { + rgbBuffer = gPlttBufferFaded[animBg.paletteId * 16 + 7]; + for (i = 6; i != 0; i--) + { + palNum = animBg.paletteId * 16; + palOffset = 1 + i; + gPlttBufferFaded[palNum + palOffset] = gPlttBufferFaded[palNum + palOffset - 1]; + } + gPlttBufferFaded[animBg.paletteId * 16 + 1] = rgbBuffer; + gTasks[taskId].data[5] = 0; + } + if (++gTasks[taskId].data[6] > 1) + { + gTasks[taskId].data[6] = 0; + unkUse = ++gTasks[taskId].data[3]; + if (unkUse <= 13) + { + gTasks[gTasks[taskId].data[15]].data[1] = unkUse | ((16 - unkUse) * 256); + gTasks[taskId].data[4]++; + } + if (gTasks[taskId].data[3] > 54) + { + unkUse = --gTasks[taskId].data[4]; + gTasks[gTasks[taskId].data[15]].data[1] = unkUse | ((16 - unkUse) * 256); + } + } + if (!(gTasks[gTasks[taskId].data[15]].data[1] & 0x1F)) + { + gTasks[taskId].data[0] = gTasks[gTasks[taskId].data[15]].data[1] & 0x1F; + gTasks[taskId].func = AnimTask_CreateSurfWave_Step2; + } +} +#else +NAKED +static void AnimTask_CreateSurfWave_Step1(u8 taskId) +{ + asm_unified("push {r4-r7,lr}\n\ + sub sp, 0x10\n\ + lsls r0, 24\n\ + lsrs r5, r0, 24\n\ + ldr r1, =gBattle_BG1_X\n\ + ldr r2, =gBattle_BG1_Y\n\ + ldr r0, =gTasks\n\ + lsls r4, r5, 2\n\ + adds r4, r5\n\ + lsls r4, 3\n\ + adds r4, r0\n\ + ldrh r0, [r4, 0x8]\n\ + ldrh r3, [r1]\n\ + adds r0, r3\n\ + strh r0, [r1]\n\ + ldrh r0, [r4, 0xA]\n\ + ldrh r1, [r2]\n\ + adds r0, r1\n\ + strh r0, [r2]\n\ + mov r0, sp\n\ + bl sub_80752A0\n\ + ldrh r0, [r4, 0xA]\n\ + ldrh r3, [r4, 0xC]\n\ + adds r0, r3\n\ + strh r0, [r4, 0xC]\n\ + ldrh r0, [r4, 0x12]\n\ + adds r0, 0x1\n\ + strh r0, [r4, 0x12]\n\ + lsls r0, 16\n\ + asrs r0, 16\n\ + cmp r0, 0x4\n\ + bne _08107C18\n\ + ldr r1, =gPlttBufferFaded\n\ + mov r0, sp\n\ + ldrb r0, [r0, 0x8]\n\ + lsls r0, 4\n\ + adds r0, 0x7\n\ + lsls r0, 1\n\ + adds r0, r1\n\ + ldrh r6, [r0]\n\ + movs r2, 0x6\n\ + adds r7, r1, 0\n\ + adds r3, r7, 0\n\ + mov r4, sp\n\ +_08107BDE:\n\ + ldrb r0, [r4, 0x8]\n\ + lsls r0, 4\n\ + adds r1, r2, 0x1\n\ + adds r0, r1\n\ + lsls r1, r0, 1\n\ + adds r1, r3\n\ + subs r0, 0x1\n\ + lsls r0, 1\n\ + adds r0, r3\n\ + ldrh r0, [r0]\n\ + strh r0, [r1]\n\ + subs r0, r2, 0x1\n\ + lsls r0, 24\n\ + lsrs r2, r0, 24\n\ + cmp r2, 0\n\ + bne _08107BDE\n\ + mov r0, sp\n\ + ldrb r0, [r0, 0x8]\n\ + lsls r0, 4\n\ + adds r0, 0x1\n\ + lsls r0, 1\n\ + adds r0, r7\n\ + strh r6, [r0]\n\ + ldr r1, =gTasks\n\ + lsls r0, r5, 2\n\ + adds r0, r5\n\ + lsls r0, 3\n\ + adds r0, r1\n\ + strh r2, [r0, 0x12]\n\ +_08107C18:\n\ + ldr r1, =gTasks\n\ + lsls r2, r5, 2\n\ + adds r0, r2, r5\n\ + lsls r0, 3\n\ + adds r3, r0, r1\n\ + ldrh r0, [r3, 0x14]\n\ + adds r0, 0x1\n\ + strh r0, [r3, 0x14]\n\ + lsls r0, 16\n\ + asrs r0, 16\n\ + adds r4, r1, 0\n\ + adds r6, r2, 0\n\ + cmp r0, 0x1\n\ + ble _08107C86\n\ + movs r0, 0\n\ + strh r0, [r3, 0x14]\n\ + ldrh r0, [r3, 0xE]\n\ + adds r2, r0, 0x1\n\ + strh r2, [r3, 0xE]\n\ + lsls r0, r2, 16\n\ + asrs r0, 16\n\ + cmp r0, 0xD\n\ + bgt _08107C62\n\ + movs r1, 0x26\n\ + ldrsh r0, [r3, r1]\n\ + lsls r1, r0, 2\n\ + adds r1, r0\n\ + lsls r1, 3\n\ + adds r1, r4\n\ + movs r0, 0x10\n\ + subs r0, r2\n\ + lsls r0, 8\n\ + orrs r2, r0\n\ + strh r2, [r1, 0xA]\n\ + ldrh r0, [r3, 0x10]\n\ + adds r0, 0x1\n\ + strh r0, [r3, 0x10]\n\ +_08107C62:\n\ + movs r1, 0xE\n\ + ldrsh r0, [r3, r1]\n\ + cmp r0, 0x36\n\ + ble _08107C86\n\ + ldrh r2, [r3, 0x10]\n\ + subs r2, 0x1\n\ + strh r2, [r3, 0x10]\n\ + movs r1, 0x26\n\ + ldrsh r0, [r3, r1]\n\ + lsls r1, r0, 2\n\ + adds r1, r0\n\ + lsls r1, 3\n\ + adds r1, r4\n\ + movs r0, 0x10\n\ + subs r0, r2\n\ + lsls r0, 8\n\ + orrs r2, r0\n\ + strh r2, [r1, 0xA]\n\ +_08107C86:\n\ + adds r0, r6, r5\n\ + lsls r0, 3\n\ + adds r2, r0, r4\n\ + movs r3, 0x26\n\ + ldrsh r1, [r2, r3]\n\ + lsls r0, r1, 2\n\ + adds r0, r1\n\ + lsls r0, 3\n\ + adds r0, r4\n\ + ldrh r0, [r0, 0xA]\n\ + movs r3, 0x1F\n\ + ands r3, r0\n\ + cmp r3, 0\n\ + bne _08107CA8\n\ + strh r3, [r2, 0x8]\n\ + ldr r0, =AnimTask_CreateSurfWave_Step2\n\ + str r0, [r2]\n\ +_08107CA8:\n\ + add sp, 0x10\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .pool\n"); +} +#endif + +static void AnimTask_CreateSurfWave_Step2(u8 taskId) +{ + u16 *BGptrX = &gBattle_BG1_X; + u16 *BGptrY = &gBattle_BG1_Y; + if (gTasks[taskId].data[0] == 0) + { + sub_8075358(1); + sub_8075358(2); + gTasks[taskId].data[0]++; + } + else + { + if (!IsContest()) + SetAnimBgAttribute(1, BG_ANIM_CHAR_BASE_BLOCK, 0); + *BGptrX = 0; + *BGptrY = 0; + SetGpuReg(REG_OFFSET_BLDCNT, 0); + SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0, 0)); + gTasks[gTasks[taskId].data[15]].data[15] = -1; + DestroyAnimVisualTask(taskId); + } +} + +static void AnimTask_SurfWaveScanlineEffect(u8 taskId) +{ + s16 i; + struct ScanlineEffectParams params; + struct Task *task = &gTasks[taskId]; + + switch (task->data[0]) + { + case 0: + for (i = 0; i < task->data[4]; i++) + gScanlineEffectRegBuffers[0][i] = gScanlineEffectRegBuffers[1][i] = task->data[2]; + for (i = task->data[4]; i < task->data[5]; i++) + gScanlineEffectRegBuffers[0][i] = gScanlineEffectRegBuffers[1][i] = task->data[1]; + for (i = task->data[5]; i < 160; i++) + gScanlineEffectRegBuffers[0][i] = gScanlineEffectRegBuffers[1][i] = task->data[2]; + + if (task->data[4] == 0) + gScanlineEffectRegBuffers[0][i] = gScanlineEffectRegBuffers[1][i] = task->data[1]; + else + gScanlineEffectRegBuffers[0][i] = gScanlineEffectRegBuffers[1][i] = task->data[2]; + + params.dmaDest = (vu16 *)REG_ADDR_BLDALPHA; + params.dmaControl = SCANLINE_EFFECT_DMACNT_16BIT; + params.initState = 1; + params.unused9 = 0; + ScanlineEffect_SetParams(params); + task->data[0]++; + break; + case 1: + if (task->data[3] == 0) + { + if (--task->data[4] <= 0) + { + task->data[4] = 0; + task->data[0]++; + } + } + else if (++task->data[5] > 111) + { + task->data[0]++; + } + + for (i = 0; i < task->data[4]; i++) + gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][i] = task->data[2]; + for (i = task->data[4]; i < task->data[5]; i++) + gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][i] = task->data[1]; + for (i = task->data[5]; i < 160; i++) + gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][i] = task->data[2]; + break; + case 2: + for (i = 0; i < task->data[4]; i++) + gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][i] = task->data[2]; + for (i = task->data[4]; i < task->data[5]; i++) + gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][i] = task->data[1]; + for (i = task->data[5]; i < 160; i++) + gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][i] = task->data[2]; + + if (task->data[15] == -1) + { + ScanlineEffect_Stop(); + DestroyTask(taskId); + } + break; + } +} + +static void AnimSmallDriftingBubbles(struct Sprite *sprite) +{ + s16 randData; + s16 randData2; + + sprite->oam.tileNum += 8; + InitSpritePosToAnimTarget(sprite, TRUE); + randData = (Random() & 0xFF) | 256; + randData2 = (Random() & 0x1FF); + if (randData2 > 255) + randData2 = 256 - randData2; + sprite->data[1] = randData; + sprite->data[2] = randData2; + sprite->callback = AnimSmallDriftingBubbles_Step; +} + +static void AnimSmallDriftingBubbles_Step(struct Sprite *sprite) +{ + sprite->data[3] += sprite->data[1]; + sprite->data[4] += sprite->data[2]; + if (sprite->data[1] & 1) + sprite->pos2.x = -(sprite->data[3] >> 8); + else + sprite->pos2.x = sprite->data[3] >> 8; + sprite->pos2.y = sprite->data[4] >> 8; + if (++sprite->data[0] == 21) + DestroyAnimSprite(sprite); +} + +void AnimTask_WaterSpoutLaunch(u8 taskId) +{ + struct Task *task = &gTasks[taskId]; + + task->data[15] = GetAnimBattlerSpriteId(ANIM_ATTACKER); + task->data[5] = gSprites[task->data[15]].pos1.y; + task->data[1] = GetWaterSpoutPowerForAnim(); + PrepareBattlerSpriteForRotScale(task->data[15], ST_OAM_OBJ_NORMAL); + task->func = AnimTask_WaterSpoutLaunch_Step; +} + +static void AnimTask_WaterSpoutLaunch_Step(u8 taskId) +{ + struct Task *task = &gTasks[taskId]; + + switch (task->data[0]) + { + case 0: + sub_80765D4(task, task->data[15], 0x100, 0x100, 224, 0x200, 32); + task->data[0]++; + case 1: + if (++task->data[3] > 1) + { + task->data[3] = 0; + if (++task->data[4] & 1) + { + gSprites[task->data[15]].pos2.x = 3; + gSprites[task->data[15]].pos1.y++; + } + else + { + gSprites[task->data[15]].pos2.x = -3; + } + } + if (sub_8076640(task) == 0) + { + SetBattlerSpriteYOffsetFromYScale(task->data[15]); + gSprites[task->data[15]].pos2.x = 0; + task->data[3] = 0; + task->data[4] = 0; + task->data[0]++; + } + break; + case 2: + if (++task->data[3] > 4) + { + sub_80765D4(task, task->data[15], 224, 0x200, 384, 224, 8); + task->data[3] = 0; + task->data[0]++; + } + break; + case 3: + if (sub_8076640(task) == 0) + { + task->data[3] = 0; + task->data[4] = 0; + task->data[0]++; + } + break; + case 4: + CreateWaterSpoutLaunchDroplets(task, taskId); + task->data[0]++; + case 5: + if (++task->data[3] > 1) + { + task->data[3] = 0; + if (++task->data[4] & 1) + gSprites[task->data[15]].pos2.y += 2; + else + gSprites[task->data[15]].pos2.y -= 2; + if (task->data[4] == 10) + { + sub_80765D4(task, task->data[15], 384, 224, 0x100, 0x100, 8); + task->data[3] = 0; + task->data[4] = 0; + task->data[0]++; + } + } + break; + case 6: + gSprites[task->data[15]].pos1.y--; + if (sub_8076640(task) == 0) + { + ResetSpriteRotScale(task->data[15]); + gSprites[task->data[15]].pos1.y = task->data[5]; + task->data[4] = 0; + task->data[0]++; + } + break; + case 7: + if (task->data[2] == 0) + DestroyAnimVisualTask(taskId); + break; + } +} + +// Returns a value 0-3 relative to which quarter HP the attacker is in +// A higher number results in more water sprites during the Water Spout animation +static u8 GetWaterSpoutPowerForAnim(void) +{ + u8 i; + u16 hp; + u16 maxhp; + u16 partyIndex; + struct Pokemon *slot; + + if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) + { + partyIndex = gBattlerPartyIndexes[gBattleAnimAttacker]; + slot = &gPlayerParty[partyIndex]; + maxhp = GetMonData(slot, MON_DATA_MAX_HP); + hp = GetMonData(slot, MON_DATA_HP); + maxhp /= 4; + } + else + { + partyIndex = gBattlerPartyIndexes[gBattleAnimAttacker]; + slot = &gEnemyParty[partyIndex]; + maxhp = GetMonData(slot, MON_DATA_MAX_HP); + hp = GetMonData(slot, MON_DATA_HP); + maxhp /= 4; + } + for (i = 0; i < 3; i++) + { + if (hp < maxhp * (i + 1)) + return i; + } + return 3; +} + +static void CreateWaterSpoutLaunchDroplets(struct Task *task, u8 taskId) +{ + s16 i; + s16 attackerCoordX = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); + s16 attackerCoordY = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); + s16 trigIndex = 172; + u8 subpriority = GetBattlerSpriteSubpriority(gBattleAnimAttacker) - 1; + s16 increment = 4 - task->data[1]; + u8 spriteId; + + if (increment <= 0) + increment = 1; + for (i = 0; i < 20; i += increment) + { + spriteId = CreateSprite(&gSmallWaterOrbSpriteTemplate, attackerCoordX, attackerCoordY, subpriority); + if (spriteId != MAX_SPRITES) + { + gSprites[spriteId].data[1] = i; + gSprites[spriteId].data[2] = attackerCoordX * 16; + gSprites[spriteId].data[3] = attackerCoordY * 16; + gSprites[spriteId].data[4] = Cos(trigIndex, 64); + gSprites[spriteId].data[5] = Sin(trigIndex, 64); + gSprites[spriteId].data[6] = taskId; + gSprites[spriteId].data[7] = 2; + if (task->data[2] & 1) + AnimSmallWaterOrb(&gSprites[spriteId]); + task->data[2]++; + } + trigIndex = (trigIndex + increment * 2); + trigIndex &= 0xFF; + } +} + +static void AnimSmallWaterOrb(struct Sprite *sprite) +{ + switch (sprite->data[0]) + { + case 0: + sprite->data[4] += (sprite->data[1] % 6) * 3; + sprite->data[5] += (sprite->data[1] % 3) * 3; + sprite->data[0]++; + case 1: + sprite->data[2] += sprite->data[4]; + sprite->data[3] += sprite->data[5]; + sprite->pos1.x = sprite->data[2] >> 4; + sprite->pos1.y = sprite->data[3] >> 4; + if (sprite->pos1.x < -8 || sprite->pos1.x > 248 || sprite->pos1.y < -8 || sprite->pos1.y > 120) + { + gTasks[sprite->data[6]].data[sprite->data[7]]--; + DestroySprite(sprite); + } + break; + } +} + +void AnimTask_WaterSpoutRain(u8 taskId) +{ + struct Task *task = &gTasks[taskId]; + + task->data[1] = GetWaterSpoutPowerForAnim(); + if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) + { + task->data[4] = 136; + task->data[6] = 40; + } + else + { + task->data[4] = 16; + task->data[6] = 80; + } + task->data[5] = 98; + task->data[7] = task->data[4] + 49; + task->data[12] = task->data[1] * 5 + 5; + task->func = AnimTask_WaterSpoutRain_Step; +} + +static void AnimTask_WaterSpoutRain_Step(u8 taskId) +{ + struct Task *task = &gTasks[taskId]; + u8 taskId2; + + switch (task->data[0]) + { + case 0: + if (++task->data[2] > 2) + { + task->data[2] = 0; + CreateWaterSpoutRainDroplet(task, taskId); + } + if (task->data[10] != 0 && task->data[13] == 0) + { + gBattleAnimArgs[0] = ANIM_TARGET; + gBattleAnimArgs[1] = 0; + gBattleAnimArgs[2] = 12; + taskId2 = CreateTask(AnimTask_HorizontalShake, 80); + if (taskId2 != 0xFF) + { + gTasks[taskId2].func(taskId2); + gAnimVisualTaskCount++; + } + gBattleAnimArgs[0] = ANIM_DEF_PARTNER; + taskId2 = CreateTask(AnimTask_HorizontalShake, 80); + if (taskId2 != 0xFF) + { + gTasks[taskId2].func(taskId2); + gAnimVisualTaskCount++; + } + task->data[13] = 1; + } + if (task->data[11] >= task->data[12]) + task->data[0]++; + break; + case 1: + if (task->data[9] == 0) + DestroyAnimVisualTask(taskId); + break; + } +} + +static void CreateWaterSpoutRainDroplet(struct Task *task, u8 taskId) +{ + u16 yPosArg = ((gSineTable[task->data[8]] + 3) >> 4) + task->data[6]; + u8 spriteId = CreateSprite(&gSmallWaterOrbSpriteTemplate, task->data[7], 0, 0); + + if (spriteId != MAX_SPRITES) + { + gSprites[spriteId].callback = AnimWaterSpoutRain; + gSprites[spriteId].data[5] = yPosArg; + gSprites[spriteId].data[6] = taskId; + gSprites[spriteId].data[7] = 9; + task->data[9]++; + } + task->data[11]++; + task->data[8] = (task->data[8] + 39) & 0xFF; + task->data[7] = (ISO_RANDOMIZE2(task->data[7]) % task->data[5]) + task->data[4]; +} + +static void AnimWaterSpoutRain(struct Sprite *sprite) +{ + if (sprite->data[0] == 0) + { + sprite->pos1.y += 8; + if (sprite->pos1.y >= sprite->data[5]) + { + gTasks[sprite->data[6]].data[10] = 1; + sprite->data[1] = CreateSprite(&gWaterHitSplatSpriteTemplate, sprite->pos1.x, sprite->pos1.y, 1); + if (sprite->data[1] != MAX_SPRITES) + { + StartSpriteAffineAnim(&gSprites[sprite->data[1]], 3); + gSprites[sprite->data[1]].data[6] = sprite->data[6]; + gSprites[sprite->data[1]].data[7] = sprite->data[7]; + gSprites[sprite->data[1]].callback = AnimWaterSpoutRainHit; + } + DestroySprite(sprite); + } + } +} + +static void AnimWaterSpoutRainHit(struct Sprite *sprite) +{ + if (++sprite->data[1] > 1) + { + sprite->data[1] = 0; + sprite->invisible ^= 1; + if (++sprite->data[2] == 12) + { + gTasks[sprite->data[6]].data[sprite->data[7]]--; + FreeOamMatrix(sprite->oam.matrixNum); + DestroySprite(sprite); + } + } +} + +void AnimTask_WaterSport(u8 taskId) +{ + struct Task *task = &gTasks[taskId]; + + task->data[3] = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); + task->data[4] = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); + task->data[7] = (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) ? 1 : -1; + if (IsContest()) + task->data[7] *= -1; + task->data[5] = task->data[3] + task->data[7] * 8; + task->data[6] = task->data[4] - task->data[7] * 8; + task->data[9] = -32; + task->data[1] = 0; + task->data[0] = 0; + task->func = AnimTask_WaterSport_Step; +} + +static void AnimTask_WaterSport_Step(u8 taskId) +{ + struct Task *task = &gTasks[taskId]; + + switch (task->data[0]) + { + case 0: + CreateWaterSportDroplet(task); + if (task->data[10] != 0) + task->data[0]++; + break; + case 1: + CreateWaterSportDroplet(task); + if (++task->data[1] > 16) + { + task->data[1] = 0; + task->data[0]++; + } + break; + case 2: + CreateWaterSportDroplet(task); + task->data[5] += task->data[7] * 6; + if (!(task->data[5] >= -16 && task->data[5] <= 256)) + { + if (++task->data[12] > 2) + { + task->data[13] = 1; + task->data[0] = 6; + task->data[1] = 0; + } + else + { + task->data[1] = 0; + task->data[0]++; + } + } + break; + case 3: + CreateWaterSportDroplet(task); + task->data[6] -= task->data[7] * 2; + if (++task->data[1] > 7) + task->data[0]++; + break; + case 4: + CreateWaterSportDroplet(task); + task->data[5] -= task->data[7] * 6; + if (!(task->data[5] >= -16 && task->data[5] <= 256)) + { + task->data[12]++; + task->data[1] = 0; + task->data[0]++; + } + break; + case 5: + CreateWaterSportDroplet(task); + task->data[6] -= task->data[7] * 2; + if (++task->data[1] > 7) + task->data[0] = 2; + break; + case 6: + if (task->data[8] == 0) + task->data[0]++; + break; + default: + DestroyAnimVisualTask(taskId); + break; + } +} + +static void CreateWaterSportDroplet(struct Task *task) +{ + u8 spriteId; + + if (++task->data[2] > 1) + { + task->data[2] = 0; + spriteId = CreateSprite(&gSmallWaterOrbSpriteTemplate, task->data[3], task->data[4], 10); + if (spriteId != MAX_SPRITES) + { + gSprites[spriteId].data[0] = 16; + gSprites[spriteId].data[2] = task->data[5]; + gSprites[spriteId].data[4] = task->data[6]; + gSprites[spriteId].data[5] = task->data[9]; + InitAnimArcTranslation(&gSprites[spriteId]); + gSprites[spriteId].callback = AnimWaterSportDroplet; + task->data[8]++; + } + } +} + +static void AnimWaterSportDroplet(struct Sprite *sprite) +{ + if (TranslateAnimHorizontalArc(sprite)) + { + sprite->pos1.x += sprite->pos2.x; + sprite->pos1.y += sprite->pos2.y; + sprite->data[0] = 6; + sprite->data[2] = (Random() & 0x1F) - 16 + sprite->pos1.x; + sprite->data[4] = (Random() & 0x1F) - 16 + sprite->pos1.y; + sprite->data[5] = ~(Random() & 7); + InitAnimArcTranslation(sprite); + sprite->callback = AnimWaterSportDroplet_Step; + } +} + +static void AnimWaterSportDroplet_Step(struct Sprite *sprite) +{ + u16 i; + + if (TranslateAnimHorizontalArc(sprite)) + { + for (i = 0; i < NUM_TASKS; i++) + { + if (gTasks[i].func == AnimTask_WaterSport_Step) + { + gTasks[i].data[10] = 1; + gTasks[i].data[8]--; + DestroySprite(sprite); + } + } + } +} + +static void AnimWaterPulseBubble(struct Sprite *sprite) +{ + sprite->pos1.x = gBattleAnimArgs[0]; + sprite->pos1.y = gBattleAnimArgs[1]; + sprite->data[0] = gBattleAnimArgs[2]; + sprite->data[1] = gBattleAnimArgs[3]; + sprite->data[2] = gBattleAnimArgs[4]; + sprite->data[3] = gBattleAnimArgs[5]; + sprite->callback = AnimWaterPulseBubble_Step; +} + +static void AnimWaterPulseBubble_Step(struct Sprite *sprite) +{ + sprite->data[4] -= sprite->data[0]; + sprite->pos2.y = sprite->data[4] / 10; + sprite->data[5] = (sprite->data[5] + sprite->data[1]) & 0xFF; + sprite->pos2.x = Sin(sprite->data[5], sprite->data[2]); + if (--sprite->data[3] == 0) + DestroyAnimSprite(sprite); +} + +static void AnimWaterPulseRingBubble(struct Sprite *sprite) +{ + sprite->data[3] += sprite->data[1]; + sprite->data[4] += sprite->data[2]; + sprite->pos2.x = sprite->data[3] >> 7; + sprite->pos2.y = sprite->data[4] >> 7; + if (--sprite->data[0] == 0) + { + FreeSpriteOamMatrix(sprite); + DestroySprite(sprite); + } +} + +void AnimWaterPulseRing(struct Sprite *sprite) +{ + InitSpritePosToAnimAttacker(sprite, TRUE); + sprite->data[1] = GetBattlerSpriteCoord(gBattleAnimTarget, 2); + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 3); + sprite->data[3] = gBattleAnimArgs[2]; + sprite->data[4] = gBattleAnimArgs[3]; + sprite->callback = AnimWaterPulseRing_Step; +} + +static void AnimWaterPulseRing_Step(struct Sprite *sprite) +{ + int xDiff = sprite->data[1] - sprite->pos1.x; + int yDiff = sprite->data[2] - sprite->pos1.y; + + sprite->pos2.x = (sprite->data[0] * xDiff) / sprite->data[3]; + sprite->pos2.y = (sprite->data[0] * yDiff) / sprite->data[3]; + if (++sprite->data[5] == sprite->data[4]) + { + sprite->data[5] = 0; + CreateWaterPulseRingBubbles(sprite, xDiff, yDiff); + } + if (sprite->data[3] == sprite->data[0]) + DestroyAnimSprite(sprite); + sprite->data[0]++; +} + +#ifdef NONMATCHING +static void CreateWaterPulseRingBubbles(struct Sprite *sprite, int xDiff, int yDiff) +{ + s16 something = sprite->data[0] / 2; + s16 combinedX = sprite->pos1.x + sprite->pos2.x; + s16 combinedY = sprite->pos1.y + sprite->pos2.y; + s16 randomSomethingY = yDiff + (Random() % 10) - 5; + s16 randomSomethingX = -xDiff + (Random() % 10) - 5; + s16 i; + u8 spriteId; + + for (i = 0; i <= 0; i++) + { + spriteId = CreateSprite(&gWaterPulseRingBubbleSpriteTemplate, combinedX, combinedY + something, 130); + gSprites[spriteId].data[0] = 20; + gSprites[spriteId].data[1] = randomSomethingY; + gSprites[spriteId].subpriority = GetBattlerSpriteSubpriority(gBattleAnimAttacker) - 1; + if (randomSomethingX < 0) + gSprites[spriteId].data[2] = -randomSomethingX; + else + gSprites[spriteId].data[2] = randomSomethingX; + } + for (i = 0; i <= 0; i++) + { + spriteId = CreateSprite(&gWaterPulseRingBubbleSpriteTemplate, combinedX, combinedY - something, 130); + gSprites[spriteId].data[0] = 20; + gSprites[spriteId].data[1] = randomSomethingY; + gSprites[spriteId].subpriority = GetBattlerSpriteSubpriority(gBattleAnimAttacker) - 1; + if (randomSomethingX > 0) + gSprites[spriteId].data[2] = -randomSomethingX; + else + gSprites[spriteId].data[2] = randomSomethingX; + } +} +#else +NAKED +static void CreateWaterPulseRingBubbles(struct Sprite *sprite, int xDiff, int yDiff) +{ + asm_unified("push {r4-r7,lr}\n\ + mov r7, r10\n\ + mov r6, r9\n\ + mov r5, r8\n\ + push {r5-r7}\n\ + sub sp, 0x18\n\ + adds r4, r1, 0\n\ + adds r5, r2, 0\n\ + movs r2, 0x2E\n\ + ldrsh r1, [r0, r2]\n\ + lsrs r2, r1, 31\n\ + adds r1, r2\n\ + lsls r1, 15\n\ + lsrs r1, 16\n\ + str r1, [sp]\n\ + ldrh r1, [r0, 0x24]\n\ + ldrh r3, [r0, 0x20]\n\ + adds r1, r3\n\ + lsls r1, 16\n\ + lsrs r1, 16\n\ + mov r8, r1\n\ + ldrh r1, [r0, 0x26]\n\ + ldrh r0, [r0, 0x22]\n\ + adds r1, r0\n\ + lsls r1, 16\n\ + lsrs r1, 16\n\ + mov r10, r1\n\ + bl Random\n\ + lsls r0, 16\n\ + lsrs r0, 16\n\ + movs r1, 0xA\n\ + bl __umodsi3\n\ + adds r0, r5, r0\n\ + subs r0, 0x5\n\ + lsls r0, 16\n\ + lsrs r0, 16\n\ + mov r9, r0\n\ + bl Random\n\ + negs r4, r4\n\ + lsls r0, 16\n\ + lsrs r0, 16\n\ + movs r1, 0xA\n\ + bl __umodsi3\n\ + adds r4, r0\n\ + subs r4, 0x5\n\ + lsls r4, 16\n\ + lsrs r7, r4, 16\n\ + movs r6, 0\n\ + mov r0, r8\n\ + lsls r0, 16\n\ + mov r8, r0\n\ + mov r1, r10\n\ + lsls r1, 16\n\ + str r1, [sp, 0xC]\n\ + ldr r2, [sp]\n\ + lsls r2, 16\n\ + str r2, [sp, 0x10]\n\ + asrs r1, 16\n\ + lsls r0, r7, 16\n\ + asrs r5, r0, 16\n\ + str r0, [sp, 0x14]\n\ + negs r3, r5\n\ + str r3, [sp, 0x4]\n\ + asrs r0, r2, 16\n\ + adds r1, r0\n\ + lsls r1, 16\n\ + mov r10, r1\n\ +_08108DE2:\n\ + ldr r0, =gWaterPulseRingBubbleSpriteTemplate\n\ + mov r2, r8\n\ + asrs r1, r2, 16\n\ + mov r3, r10\n\ + asrs r2, r3, 16\n\ + movs r3, 0x82\n\ + bl CreateSprite\n\ + lsls r0, 24\n\ + lsrs r2, r0, 24\n\ + ldr r1, =gSprites\n\ + lsls r0, r2, 4\n\ + adds r0, r2\n\ + lsls r0, 2\n\ + adds r4, r0, r1\n\ + movs r0, 0x14\n\ + strh r0, [r4, 0x2E]\n\ + mov r0, r9\n\ + strh r0, [r4, 0x30]\n\ + ldr r0, =gBattleAnimAttacker\n\ + ldrb r0, [r0]\n\ + bl GetBattlerSpriteSubpriority\n\ + subs r0, 0x1\n\ + adds r1, r4, 0\n\ + adds r1, 0x43\n\ + strb r0, [r1]\n\ + cmp r5, 0\n\ + bge _08108E30\n\ + mov r1, sp\n\ + ldrh r1, [r1, 0x4]\n\ + strh r1, [r4, 0x32]\n\ + b _08108E32\n\ + .pool\n\ +_08108E30:\n\ + strh r7, [r4, 0x32]\n\ +_08108E32:\n\ + lsls r0, r6, 16\n\ + movs r2, 0x80\n\ + lsls r2, 9\n\ + adds r0, r2\n\ + lsrs r6, r0, 16\n\ + cmp r0, 0\n\ + ble _08108DE2\n\ + movs r6, 0\n\ + ldr r3, [sp, 0xC]\n\ + asrs r1, r3, 16\n\ + ldr r0, [sp, 0x14]\n\ + asrs r5, r0, 16\n\ + negs r2, r5\n\ + str r2, [sp, 0x8]\n\ + ldr r3, [sp, 0x10]\n\ + asrs r0, r3, 16\n\ + subs r1, r0\n\ + lsls r1, 16\n\ + mov r10, r1\n\ +_08108E58:\n\ + ldr r0, =gWaterPulseRingBubbleSpriteTemplate\n\ + mov r2, r8\n\ + asrs r1, r2, 16\n\ + mov r3, r10\n\ + asrs r2, r3, 16\n\ + movs r3, 0x82\n\ + bl CreateSprite\n\ + lsls r0, 24\n\ + lsrs r2, r0, 24\n\ + ldr r1, =gSprites\n\ + lsls r0, r2, 4\n\ + adds r0, r2\n\ + lsls r0, 2\n\ + adds r4, r0, r1\n\ + movs r0, 0x14\n\ + strh r0, [r4, 0x2E]\n\ + mov r0, r9\n\ + strh r0, [r4, 0x30]\n\ + ldr r0, =gBattleAnimAttacker\n\ + ldrb r0, [r0]\n\ + bl GetBattlerSpriteSubpriority\n\ + subs r0, 0x1\n\ + adds r1, r4, 0\n\ + adds r1, 0x43\n\ + strb r0, [r1]\n\ + cmp r5, 0\n\ + ble _08108EA8\n\ + mov r1, sp\n\ + ldrh r1, [r1, 0x8]\n\ + strh r1, [r4, 0x32]\n\ + b _08108EAA\n\ + .pool\n\ +_08108EA8:\n\ + strh r7, [r4, 0x32]\n\ +_08108EAA:\n\ + lsls r0, r6, 16\n\ + movs r2, 0x80\n\ + lsls r2, 9\n\ + adds r0, r2\n\ + lsrs r6, r0, 16\n\ + cmp r0, 0\n\ + ble _08108E58\n\ + add sp, 0x18\n\ + pop {r3-r5}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + mov r10, r5\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n"); +} +#endif diff --git a/tools/gbagfx/main.c b/tools/gbagfx/main.c index aa0681fb6..9fd72383d 100644 --- a/tools/gbagfx/main.c +++ b/tools/gbagfx/main.c @@ -27,7 +27,17 @@ void ConvertGbaToPng(char *inputPath, char *outputPath, struct GbaToPngOptions * if (options->paletteFilePath != NULL) { - ReadGbaPalette(options->paletteFilePath, &image.palette); + char *paletteFileExtension = GetFileExtensionAfterDot(options->paletteFilePath); + + if (strcmp(paletteFileExtension, "gbapal") == 0) + { + ReadGbaPalette(options->paletteFilePath, &image.palette); + } + else + { + ReadJascPalette(options->paletteFilePath, &image.palette); + } + image.hasPalette = true; } else @@ -59,7 +69,7 @@ void ConvertPngToGba(char *inputPath, char *outputPath, struct PngToGbaOptions * void HandleGbaToPngCommand(char *inputPath, char *outputPath, int argc, char **argv) { - char *inputFileExtension = GetFileExtension(inputPath); + char *inputFileExtension = GetFileExtensionAfterDot(inputPath); struct GbaToPngOptions options; options.paletteFilePath = NULL; options.bitDepth = inputFileExtension[0] - '0'; @@ -138,7 +148,7 @@ void HandleGbaToPngCommand(char *inputPath, char *outputPath, int argc, char **a void HandlePngToGbaCommand(char *inputPath, char *outputPath, int argc, char **argv) { - char *outputFileExtension = GetFileExtension(outputPath); + char *outputFileExtension = GetFileExtensionAfterDot(outputPath); int bitDepth = outputFileExtension[0] - '0'; struct PngToGbaOptions options; options.numTiles = 0; @@ -198,9 +208,17 @@ void HandlePngToGbaCommand(char *inputPath, char *outputPath, int argc, char **a ConvertPngToGba(inputPath, outputPath, &options); } +void HandlePngToJascPaletteCommand(char *inputPath, char *outputPath, int argc UNUSED, char **argv UNUSED) +{ + struct Palette palette = {0}; + + ReadPngPalette(inputPath, &palette); + WriteJascPalette(outputPath, &palette); +} + void HandlePngToGbaPaletteCommand(char *inputPath, char *outputPath, int argc UNUSED, char **argv UNUSED) { - struct Palette palette; + struct Palette palette = {0}; ReadPngPalette(inputPath, &palette); WriteGbaPalette(outputPath, &palette); @@ -208,7 +226,7 @@ void HandlePngToGbaPaletteCommand(char *inputPath, char *outputPath, int argc UN void HandleGbaToJascPaletteCommand(char *inputPath, char *outputPath, int argc UNUSED, char **argv UNUSED) { - struct Palette palette; + struct Palette palette = {0}; ReadGbaPalette(inputPath, &palette); WriteJascPalette(outputPath, &palette); @@ -241,7 +259,7 @@ void HandleJascToGbaPaletteCommand(char *inputPath, char *outputPath, int argc, } } - struct Palette palette; + struct Palette palette = {0}; ReadJascPalette(inputPath, &palette); @@ -483,6 +501,8 @@ void HandleHuffDecompressCommand(char *inputPath, char *outputPath, int argc UNU int main(int argc, char **argv) { + char converted = 0; + if (argc < 3) FATAL_ERROR("Usage: gbagfx INPUT_PATH OUTPUT_PATH [options...]\n"); @@ -495,6 +515,7 @@ int main(int argc, char **argv) { "png", "4bpp", HandlePngToGbaCommand }, { "png", "8bpp", HandlePngToGbaCommand }, { "png", "gbapal", HandlePngToGbaPaletteCommand }, + { "png", "pal", HandlePngToJascPaletteCommand }, { "gbapal", "pal", HandleGbaToJascPaletteCommand }, { "pal", "gbapal", HandleJascToGbaPaletteCommand }, { "latfont", "png", HandleLatinFontToPngCommand }, @@ -514,14 +535,39 @@ int main(int argc, char **argv) char *inputPath = argv[1]; char *outputPath = argv[2]; - char *inputFileExtension = GetFileExtension(inputPath); - char *outputFileExtension = GetFileExtension(outputPath); + char *inputFileExtension = GetFileExtensionAfterDot(inputPath); + char *outputFileExtension = GetFileExtensionAfterDot(outputPath); if (inputFileExtension == NULL) FATAL_ERROR("Input file \"%s\" has no extension.\n", inputPath); if (outputFileExtension == NULL) - FATAL_ERROR("Output file \"%s\" has no extension.\n", outputPath); + { + outputFileExtension = GetFileExtension(outputPath); + + if (*outputFileExtension == '.') + outputFileExtension++; + + if (*outputFileExtension == 0) + FATAL_ERROR("Output file \"%s\" has no extension.\n", outputPath); + + size_t newOutputPathSize = strlen(inputPath) - strlen(inputFileExtension) + strlen(outputFileExtension); + outputPath = malloc(newOutputPathSize); + + if (outputPath == NULL) + FATAL_ERROR("Failed to allocate memory for new output path.\n"); + + for (int i = 0; i < newOutputPathSize; i++) + { + outputPath[i] = inputPath[i]; + + if (outputPath[i] == '.') + { + strcpy(&outputPath[i + 1], outputFileExtension); + break; + } + } + } for (int i = 0; handlers[i].function != NULL; i++) { @@ -529,9 +575,16 @@ int main(int argc, char **argv) && (handlers[i].outputFileExtension == NULL || strcmp(handlers[i].outputFileExtension, outputFileExtension) == 0)) { handlers[i].function(inputPath, outputPath, argc, argv); - return 0; + converted = 1; + break; } } - FATAL_ERROR("Don't know how to convert \"%s\" to \"%s\".\n", inputPath, outputPath); + if (outputPath != argv[2]) + free(outputPath); + + if (!converted) + FATAL_ERROR("Don't know how to convert \"%s\" to \"%s\".\n", argv[1], argv[2]); + + return 0; } diff --git a/tools/gbagfx/util.c b/tools/gbagfx/util.c index 87abeb31c..735037692 100644 --- a/tools/gbagfx/util.c +++ b/tools/gbagfx/util.c @@ -47,6 +47,13 @@ char *GetFileExtension(char *path) while (extension > path && *extension != '.') extension--; + return extension; +} + +char *GetFileExtensionAfterDot(char *path) +{ + char *extension = GetFileExtension(path); + if (extension == path) return NULL; diff --git a/tools/gbagfx/util.h b/tools/gbagfx/util.h index 6d7a9c21e..7802f1d21 100644 --- a/tools/gbagfx/util.h +++ b/tools/gbagfx/util.h @@ -7,6 +7,7 @@ bool ParseNumber(char *s, char **end, int radix, int *intValue); char *GetFileExtension(char *path); +char *GetFileExtensionAfterDot(char *path); unsigned char *ReadWholeFile(char *path, int *size); unsigned char *ReadWholeFileZeroPadded(char *path, int *size, int padAmount); void WriteWholeFile(char *path, void *buffer, int bufferSize); |