diff options
-rw-r--r-- | asm/battle_anim_80CA710.s | 761 | ||||
-rwxr-xr-x | src/battle_anim_80CA710.c | 266 |
2 files changed, 266 insertions, 761 deletions
diff --git a/asm/battle_anim_80CA710.s b/asm/battle_anim_80CA710.s index bc41f1d34..a2e82b0ad 100644 --- a/asm/battle_anim_80CA710.s +++ b/asm/battle_anim_80CA710.s @@ -6,767 +6,6 @@ .text - thumb_func_start sub_80CCE0C -sub_80CCE0C: @ 80CCE0C - push {r4-r6,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x38] - adds r0, 0x60 - strh r0, [r4, 0x38] - lsls r0, 16 - asrs r0, 24 - negs r0, r0 - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080CCE6A - movs r0, 0 - strh r0, [r4, 0x30] - ldr r1, _080CCEB0 @ =gPlttBufferFaded - movs r2, 0x32 - ldrsh r0, [r4, r2] - adds r0, 0x1 - lsls r0, 1 - adds r0, r1 - ldrh r5, [r0] - movs r2, 0 - adds r6, r1, 0 - adds r3, r6, 0 -_080CCE44: - movs r1, 0x32 - ldrsh r0, [r4, r1] - adds r2, 0x1 - adds r0, r2 - lsls r1, r0, 1 - adds r1, r3 - adds r0, 0x1 - lsls r0, 1 - adds r0, r3 - ldrh r0, [r0] - strh r0, [r1] - cmp r2, 0x5 - ble _080CCE44 - movs r2, 0x32 - ldrsh r0, [r4, r2] - adds r0, 0x7 - lsls r0, 1 - adds r0, r6 - strh r5, [r0] -_080CCE6A: - ldrh r2, [r4, 0x3C] - movs r1, 0x3C - ldrsh r0, [r4, r1] - cmp r0, 0x6 - ble _080CCE9E - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - ble _080CCEB8 - ldrh r0, [r4, 0x3A] - adds r0, 0x1 - strh r0, [r4, 0x3A] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080CCE9E - movs r0, 0 - strh r0, [r4, 0x3A] - subs r2, 0x1 - strh r2, [r4, 0x3C] - ldr r3, _080CCEB4 @ =REG_BLDALPHA - lsls r1, r2, 8 - movs r0, 0x10 - subs r0, r2 - orrs r1, r0 - strh r1, [r3] -_080CCE9E: - ldrh r1, [r4, 0x2E] - movs r2, 0x2E - ldrsh r0, [r4, r2] - cmp r0, 0 - ble _080CCEB8 - subs r0, r1, 0x1 - strh r0, [r4, 0x2E] - b _080CCEF4 - .align 2, 0 -_080CCEB0: .4byte gPlttBufferFaded -_080CCEB4: .4byte REG_BLDALPHA -_080CCEB8: - ldrh r0, [r4, 0x3A] - adds r0, 0x1 - strh r0, [r4, 0x3A] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080CCEF4 - movs r0, 0 - strh r0, [r4, 0x3A] - ldrh r1, [r4, 0x3C] - adds r1, 0x1 - strh r1, [r4, 0x3C] - ldr r3, _080CCEFC @ =REG_BLDALPHA - lsls r2, r1, 8 - movs r0, 0x10 - subs r0, r1 - orrs r2, r0 - strh r2, [r3] - movs r1, 0x3C - ldrsh r0, [r4, r1] - cmp r0, 0x10 - bne _080CCEF4 - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r0, _080CCF00 @ =sub_807861C - str r0, [r4, 0x1C] -_080CCEF4: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080CCEFC: .4byte REG_BLDALPHA -_080CCF00: .4byte sub_807861C - thumb_func_end sub_80CCE0C - - thumb_func_start sub_80CCF04 -sub_80CCF04: @ 80CCF04 - push {r4-r6,lr} - adds r4, r0, 0 - ldr r6, _080CCF5C @ =gBattleAnimEnemyMonIndex - ldrb r0, [r6] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - movs r5, 0 - strh r0, [r4, 0x20] - ldrb r0, [r6] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080CCF60 @ =0x0000ffe8 - adds r0, r1 - strh r0, [r4, 0x22] - strh r5, [r4, 0x2E] - strh r5, [r4, 0x30] - strh r5, [r4, 0x32] - strh r5, [r4, 0x34] - strh r5, [r4, 0x36] - strh r5, [r4, 0x3A] - movs r0, 0x10 - strh r0, [r4, 0x3C] - ldr r1, _080CCF64 @ =REG_BLDCNT - movs r2, 0xFD - lsls r2, 6 - adds r0, r2, 0 - strh r0, [r1] - ldr r2, _080CCF68 @ =REG_BLDALPHA - ldrh r0, [r4, 0x3C] - lsls r0, 8 - ldrh r1, [r4, 0x3A] - orrs r0, r1 - strh r0, [r2] - ldr r0, _080CCF6C @ =sub_80CCF70 - str r0, [r4, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080CCF5C: .4byte gBattleAnimEnemyMonIndex -_080CCF60: .4byte 0x0000ffe8 -_080CCF64: .4byte REG_BLDCNT -_080CCF68: .4byte REG_BLDALPHA -_080CCF6C: .4byte sub_80CCF70 - thumb_func_end sub_80CCF04 - - thumb_func_start sub_80CCF70 -sub_80CCF70: @ 80CCF70 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x4 - bls _080CCF7E - b _080CD0C0 -_080CCF7E: - lsls r0, 2 - ldr r1, _080CCF88 @ =_080CCF8C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080CCF88: .4byte _080CCF8C - .align 2, 0 -_080CCF8C: - .4byte _080CCFA0 - .4byte _080CD004 - .4byte _080CD020 - .4byte _080CD09C - .4byte _080CD0B0 -_080CCFA0: - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - lsls r0, 16 - cmp r0, 0 - bgt _080CCFAE - b _080CD0C0 -_080CCFAE: - movs r0, 0 - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080CCFD0 - ldrh r1, [r4, 0x3A] - movs r2, 0x3A - ldrsh r0, [r4, r2] - cmp r0, 0xF - bgt _080CCFDE - adds r0, r1, 0x1 - strh r0, [r4, 0x3A] - b _080CCFDE -_080CCFD0: - ldrh r1, [r4, 0x3C] - movs r2, 0x3C - ldrsh r0, [r4, r2] - cmp r0, 0 - ble _080CCFDE - subs r0, r1, 0x1 - strh r0, [r4, 0x3C] -_080CCFDE: - ldr r2, _080CD000 @ =REG_BLDALPHA - ldrh r0, [r4, 0x3C] - lsls r0, 8 - ldrh r1, [r4, 0x3A] - orrs r0, r1 - strh r0, [r2] - movs r1, 0x3A - ldrsh r0, [r4, r1] - cmp r0, 0x10 - bne _080CD0C0 - movs r2, 0x3C - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _080CD0C0 - strh r0, [r4, 0x30] - b _080CD0A8 - .align 2, 0 -_080CD000: .4byte REG_BLDALPHA -_080CD004: - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x8 - ble _080CD0C0 - movs r0, 0 - strh r0, [r4, 0x30] - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim - b _080CD0A8 -_080CD020: - adds r0, r4, 0 - movs r1, 0x10 - movs r2, 0x4 - bl sub_80CD0CC - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - ble _080CD042 - movs r0, 0 - strh r0, [r4, 0x30] - ldrh r0, [r4, 0x22] - adds r0, 0x1 - strh r0, [r4, 0x22] -_080CD042: - ldrh r0, [r4, 0x32] - adds r1, r0, 0x1 - strh r1, [r4, 0x32] - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, 0x1D - ble _080CD0C0 - movs r0, 0x1 - ands r1, r0 - cmp r1, 0 - beq _080CD068 - ldrh r1, [r4, 0x3A] - movs r2, 0x3A - ldrsh r0, [r4, r2] - cmp r0, 0 - ble _080CD076 - subs r0, r1, 0x1 - strh r0, [r4, 0x3A] - b _080CD076 -_080CD068: - ldrh r1, [r4, 0x3C] - movs r2, 0x3C - ldrsh r0, [r4, r2] - cmp r0, 0xF - bgt _080CD076 - adds r0, r1, 0x1 - strh r0, [r4, 0x3C] -_080CD076: - ldr r0, _080CD098 @ =REG_BLDALPHA - ldrh r1, [r4, 0x3C] - lsls r1, 8 - ldrh r2, [r4, 0x3A] - orrs r1, r2 - strh r1, [r0] - movs r0, 0x3A - ldrsh r1, [r4, r0] - cmp r1, 0 - bne _080CD0C0 - movs r2, 0x3C - ldrsh r0, [r4, r2] - cmp r0, 0x10 - bne _080CD0C0 - strh r1, [r4, 0x30] - strh r1, [r4, 0x32] - b _080CD0A8 - .align 2, 0 -_080CD098: .4byte REG_BLDALPHA -_080CD09C: - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] -_080CD0A8: - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - b _080CD0C0 -_080CD0B0: - ldr r0, _080CD0C8 @ =REG_BLDCNT - movs r1, 0 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, r4, 0 - bl move_anim_8072740 -_080CD0C0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CD0C8: .4byte REG_BLDCNT - thumb_func_end sub_80CCF70 - - thumb_func_start sub_80CD0CC -sub_80CD0CC: @ 80CD0CC - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0x34 - ldrsh r0, [r4, r1] - cmp r0, 0xB - bgt _080CD0DE - ldrh r0, [r4, 0x36] - adds r0, 0x2 - strh r0, [r4, 0x36] -_080CD0DE: - ldrh r5, [r4, 0x34] - adds r0, r5, 0 - subs r0, 0x12 - lsls r0, 16 - lsrs r0, 16 - adds r1, r5, 0 - cmp r0, 0x17 - bhi _080CD0F4 - ldrh r0, [r4, 0x36] - subs r0, 0x2 - strh r0, [r4, 0x36] -_080CD0F4: - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, 0x2F - ble _080CD102 - ldrh r0, [r4, 0x36] - adds r0, 0x2 - strh r0, [r4, 0x36] -_080CD102: - movs r1, 0x36 - ldrsh r0, [r4, r1] - movs r1, 0x9 - bl __divsi3 - strh r0, [r4, 0x24] - movs r1, 0x36 - ldrsh r0, [r4, r1] - movs r1, 0xE - bl __divsi3 - strh r0, [r4, 0x26] - lsls r0, 16 - cmp r0, 0 - bge _080CD128 - movs r1, 0x26 - ldrsh r0, [r4, r1] - negs r0, r0 - strh r0, [r4, 0x26] -_080CD128: - adds r0, r5, 0x1 - strh r0, [r4, 0x34] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3B - ble _080CD138 - movs r0, 0 - strh r0, [r4, 0x34] -_080CD138: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80CD0CC - - thumb_func_start sub_80CD140 -sub_80CD140: @ 80CD140 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _080CD184 @ =gBattleAnimArgs - movs r1, 0x4 - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080CD154 - adds r0, r4, 0 - bl sub_8078650 -_080CD154: - movs r0, 0 - ldrsh r1, [r5, r0] - adds r0, r4, 0 - bl sub_807867C - ldrh r0, [r5, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - ldrh r0, [r5, 0xA] - strh r0, [r4, 0x2E] - ldrh r0, [r5, 0x6] - strh r0, [r4, 0x30] - ldrh r0, [r5, 0x8] - strh r0, [r4, 0x32] - ldr r1, _080CD188 @ =move_anim_8072740 - adds r0, r4, 0 - bl oamt_set_x3A_32 - ldr r0, _080CD18C @ =sub_8078394 - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080CD184: .4byte gBattleAnimArgs -_080CD188: .4byte move_anim_8072740 -_080CD18C: .4byte sub_8078394 - thumb_func_end sub_80CD140 - - thumb_func_start sub_80CD190 -sub_80CD190: @ 80CD190 - push {r4-r6,lr} - adds r5, r0, 0 - ldr r0, _080CD1A4 @ =gBattleAnimArgs - movs r1, 0x4 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080CD1AC - ldr r0, _080CD1A8 @ =gBattleAnimPlayerMonIndex - b _080CD1AE - .align 2, 0 -_080CD1A4: .4byte gBattleAnimArgs -_080CD1A8: .4byte gBattleAnimPlayerMonIndex -_080CD1AC: - ldr r0, _080CD1F0 @ =gBattleAnimEnemyMonIndex -_080CD1AE: - ldrb r6, [r0] - bl IsDoubleBattle - lsls r0, 24 - cmp r0, 0 - beq _080CD1F8 - movs r1, 0x2 - adds r0, r6, 0 - eors r0, r1 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - beq _080CD1F8 - ldr r4, _080CD1F4 @ =gBattleAnimArgs - ldrb r1, [r4, 0xC] - adds r2, r5, 0 - adds r2, 0x20 - adds r3, r5, 0 - adds r3, 0x22 - adds r0, r6, 0 - bl sub_807A3FC - movs r2, 0 - ldrsh r1, [r4, r2] - adds r0, r5, 0 - bl sub_807867C - ldrh r0, [r4, 0x2] - ldrh r1, [r5, 0x22] - adds r0, r1 - strh r0, [r5, 0x22] - b _080CD248 - .align 2, 0 -_080CD1F0: .4byte gBattleAnimEnemyMonIndex -_080CD1F4: .4byte gBattleAnimArgs -_080CD1F8: - ldr r4, _080CD218 @ =gBattleAnimArgs - movs r2, 0xC - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _080CD21C - adds r0, r6, 0 - movs r1, 0 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - adds r0, r6, 0 - movs r1, 0x1 - b _080CD22E - .align 2, 0 -_080CD218: .4byte gBattleAnimArgs -_080CD21C: - adds r0, r6, 0 - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - adds r0, r6, 0 - movs r1, 0x3 -_080CD22E: - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r4, [r4, 0x2] - adds r0, r4 - strh r0, [r5, 0x22] - ldr r0, _080CD268 @ =gBattleAnimArgs - movs r2, 0 - ldrsh r1, [r0, r2] - adds r0, r5, 0 - bl sub_807867C -_080CD248: - ldr r1, _080CD268 @ =gBattleAnimArgs - ldrh r0, [r1, 0xA] - strh r0, [r5, 0x2E] - ldrh r0, [r1, 0x6] - strh r0, [r5, 0x30] - ldrh r0, [r1, 0x8] - strh r0, [r5, 0x32] - ldr r1, _080CD26C @ =move_anim_8072740 - adds r0, r5, 0 - bl oamt_set_x3A_32 - ldr r0, _080CD270 @ =sub_8078394 - str r0, [r5, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080CD268: .4byte gBattleAnimArgs -_080CD26C: .4byte move_anim_8072740 -_080CD270: .4byte sub_8078394 - thumb_func_end sub_80CD190 - - thumb_func_start sub_80CD274 -sub_80CD274: @ 80CD274 - push {r4,lr} - adds r4, r0, 0 - bl sub_8078650 - ldr r0, _080CD2A0 @ =gBattleAnimPlayerMonIndex - ldrb r0, [r0] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - bne _080CD2A8 - ldr r0, _080CD2A4 @ =gBattleAnimArgs - ldrh r1, [r0] - ldrh r2, [r4, 0x20] - adds r1, r2 - strh r1, [r4, 0x20] - ldrh r0, [r0, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - b _080CD2C2 - .align 2, 0 -_080CD2A0: .4byte gBattleAnimPlayerMonIndex -_080CD2A4: .4byte gBattleAnimArgs -_080CD2A8: - ldr r2, _080CD2CC @ =gBattleAnimArgs - ldrh r0, [r4, 0x20] - ldrh r1, [r2] - subs r0, r1 - strh r0, [r4, 0x20] - ldrh r0, [r2, 0x2] - ldrh r2, [r4, 0x22] - adds r0, r2 - strh r0, [r4, 0x22] - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAnim -_080CD2C2: - ldr r0, _080CD2D0 @ =sub_80CD2D4 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CD2CC: .4byte gBattleAnimArgs -_080CD2D0: .4byte sub_80CD2D4 - thumb_func_end sub_80CD274 - - thumb_func_start sub_80CD2D4 -sub_80CD2D4: @ 80CD2D4 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1E - ble _080CD30C - movs r0, 0x2E - ldrsh r1, [r4, r0] - movs r0, 0x1E - subs r0, r1 - movs r1, 0x3 - bl __divsi3 - strh r0, [r4, 0x26] - movs r1, 0x30 - ldrsh r0, [r4, r1] - lsls r0, 18 - asrs r0, 16 - movs r1, 0x3 - bl Sin - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] -_080CD30C: - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080CD320 - adds r0, r4, 0 - bl move_anim_8072740 -_080CD320: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80CD2D4 - - thumb_func_start sub_80CD328 -sub_80CD328: @ 80CD328 - push {r4,lr} - adds r4, r0, 0 - bl sub_8078650 - ldr r0, _080CD358 @ =gBattleAnimPlayerMonIndex - ldrb r0, [r0] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - bne _080CD360 - ldr r1, _080CD35C @ =gBattleAnimArgs - ldrh r0, [r1] - ldrh r2, [r4, 0x20] - adds r0, r2 - strh r0, [r4, 0x20] - ldrh r0, [r1, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - movs r0, 0x1 - strh r0, [r4, 0x34] - b _080CD37E - .align 2, 0 -_080CD358: .4byte gBattleAnimPlayerMonIndex -_080CD35C: .4byte gBattleAnimArgs -_080CD360: - ldr r2, _080CD388 @ =gBattleAnimArgs - ldrh r0, [r4, 0x20] - ldrh r1, [r2] - subs r0, r1 - strh r0, [r4, 0x20] - ldrh r0, [r2, 0x2] - ldrh r2, [r4, 0x22] - adds r0, r2 - strh r0, [r4, 0x22] - ldr r0, _080CD38C @ =0x0000ffff - strh r0, [r4, 0x34] - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim -_080CD37E: - ldr r0, _080CD390 @ =sub_80CD394 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CD388: .4byte gBattleAnimArgs -_080CD38C: .4byte 0x0000ffff -_080CD390: .4byte sub_80CD394 - thumb_func_end sub_80CD328 - - thumb_func_start sub_80CD394 -sub_80CD394: @ 80CD394 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - movs r1, 0x28 - bl __divsi3 - negs r0, r0 - strh r0, [r4, 0x26] - movs r2, 0x36 - ldrsh r0, [r4, r2] - movs r1, 0xA - bl __divsi3 - strh r0, [r4, 0x24] - movs r1, 0x34 - ldrsh r0, [r4, r1] - lsls r0, 1 - ldrh r2, [r4, 0x36] - adds r0, r2 - strh r0, [r4, 0x36] - ldrh r0, [r4, 0x30] - ldrh r2, [r4, 0x2E] - adds r1, r0, r2 - strh r1, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3C - ble _080CD3D8 - adds r0, r4, 0 - bl move_anim_8074EE0 -_080CD3D8: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80CD394 thumb_func_start sub_80CD3E0 sub_80CD3E0: @ 80CD3E0 diff --git a/src/battle_anim_80CA710.c b/src/battle_anim_80CA710.c index 53494608a..7c66203c7 100755 --- a/src/battle_anim_80CA710.c +++ b/src/battle_anim_80CA710.c @@ -50,6 +50,10 @@ void sub_80CC7D4(struct Sprite* sprite); void sub_80CCB00(struct Sprite* sprite); void sub_80CCCB4(struct Sprite* sprite); void sub_80CCE0C(struct Sprite* sprite); +void sub_80CCF70(struct Sprite* sprite); +void sub_80CD0CC(struct Sprite* sprite, int unk1, int unk2); +void sub_80CD2D4(struct Sprite* sprite); +void sub_80CD394(struct Sprite* sprite); s16 sub_80CC338(struct Sprite* sprite); @@ -62,6 +66,9 @@ void sub_80782D8(struct Sprite *sprite); void sub_8078CC0(struct Sprite *sprite); void sub_8078600(struct Sprite *sprite); void sub_8078504(struct Sprite *sprite); +void sub_807861C(struct Sprite *sprite); +void sub_8078650(struct Sprite *sprite); +void sub_8078394(struct Sprite *sprite); void sub_807A3FC(u8 slot, u8 a2, s16 *a3, s16 *a4); u8 sub_8079ED4(u8 slot); @@ -2645,3 +2652,262 @@ void sub_80CCD24(struct Sprite* sprite) sprite->callback = sub_80CCE0C; } +void sub_80CCE0C(struct Sprite* sprite) +{ + int a; + int i; + sprite->data5 += 0x60; + sprite->pos2.x = -(sprite->data5 >> 8); + sprite->data1++; + if(sprite->data1 > 1) + { + sprite->data1 = 0; + a = gPlttBufferFaded[sprite->data2 + 1]; + i = 0; + do + { + gPlttBufferFaded[sprite->data2 + ++i] = gPlttBufferFaded[sprite->data2 + i + 1]; + } + while ( i <= 5 ); + gPlttBufferFaded[sprite->data2 + 7] = a; + } + if (sprite->data7 > 6 && sprite->data0 >0 && ++sprite->data6 > 1) + { + sprite->data6 = 0; + sprite->data7 -= 1; + REG_BLDALPHA = (sprite->data7 << 8) | (16 - sprite->data7);; + } + if (sprite->data0 >0) + { + sprite->data0 -= 1; + } + else if (++sprite->data6 > 1) + { + sprite->data6 = 0; + sprite->data7++; + REG_BLDALPHA = (sprite->data7 << 8) | (16 - sprite->data7); + if(sprite->data7 == 16) + { + sprite->invisible = 1; + sprite->callback = sub_807861C; + } + } +} + +void sub_80CCF04(struct Sprite* sprite) +{ + sprite->pos1.x = sub_8077ABC(gBattleAnimEnemyMonIndex, 2); + sprite->pos1.y = sub_8077ABC(gBattleAnimEnemyMonIndex, 3) + 0xFFE8; + sprite->data0 = 0; + sprite->data1 = 0; + sprite->data2 = 0; + sprite->data3 = 0; + sprite->data4 = 0; + sprite->data6 = 0; + sprite->data7 = 16; + REG_BLDCNT = 0x3F40; + REG_BLDALPHA = (sprite->data7 << 8) | sprite->data6; + sprite->callback = sub_80CCF70; +} + +void sub_80CCF70(struct Sprite* sprite) +{ + switch(sprite->data0) + { + case 0: + { + if(++sprite->data2 > 0) + { + sprite->data2 = 0; + if(((++sprite->data1) & 1) != 0) + { + if(sprite->data6 <= 15) + sprite->data6++; + } + else if (sprite->data7 > 0) + sprite->data7--; + REG_BLDALPHA = (sprite->data7 << 8) | sprite->data6; + if(sprite->data6 == 16 && sprite->data7 == 0) + { + sprite->data1 = 0; + sprite->data0++; + break; + } + } + break; + } + case 1: + { + if(++sprite->data1 > 8) + { + sprite->data1 = 0; + StartSpriteAffineAnim(sprite, 1); + sprite->data0++; + break; + } + break; + } + case 2: + { + sub_80CD0CC(sprite, 16, 4); + if(++sprite->data1 > 2) + { + sprite->data1 = 0; + sprite->pos1.y++; + } + if(++sprite->data2 <= 29) + break; + if(sprite->data2 & 1) + { + if(sprite->data6 > 0) + sprite->data6--; + } + else if(sprite->data7 <= 15) + sprite->data7++; + REG_BLDALPHA = (sprite->data7 << 8) | sprite->data6; + if(sprite->data6 == 0 && sprite->data7 == 16) + { + sprite->data1 = 0; + sprite->data2 = 0; + sprite->data0++; + break; + } + else + break; + } + case 3: + { + sprite->invisible = 1; + sprite->data0++; + break; + } + case 4: + { + REG_BLDCNT = 0; + REG_BLDALPHA = 0; + move_anim_8072740(sprite); + } + } +} + +void sub_80CD0CC(struct Sprite* sprite, int unk1, int unk2) +{ + if(sprite->data3 <= 11) + sprite->data4 += 2; + if((u16)(sprite->data3 - 0x12) <= 0x17) + sprite->data4 -= 2; + if((sprite->data3) > 0x2F) + sprite->data4 += 2; + sprite->pos2.x = sprite->data4 / 9; + sprite->pos2.y = sprite->data4 / 14; + if(sprite->pos2.y < 0) + sprite->pos2.y *= -1; + sprite->data3++; + if(sprite->data3 > 0x3B) + sprite->data3 = 0; +} + +void sub_80CD140(struct Sprite* sprite) +{ + if (!gBattleAnimArgs[2]) + sub_8078650(sprite); + sub_807867C(sprite, gBattleAnimArgs[0]); + sprite->pos1.y += gBattleAnimArgs[1]; + sprite->data0 = gBattleAnimArgs[5]; + sprite->data1 = gBattleAnimArgs[3]; + sprite->data2 = gBattleAnimArgs[4]; + oamt_set_x3A_32(sprite, move_anim_8072740); + sprite->callback = sub_8078394; +} + +void sub_80CD190(struct Sprite* sprite) +{ + u8 bank; + if (!gBattleAnimArgs[2]) + bank = gBattleAnimPlayerMonIndex; + else + bank = gBattleAnimEnemyMonIndex; + if (IsDoubleBattle() && b_side_obj__get_some_boolean(bank ^ 2)) + { + sub_807A3FC(bank, gBattleAnimArgs[6], &sprite->pos1.x, &sprite->pos1.y); + sub_807867C(sprite, gBattleAnimArgs[0]); + sprite->pos1.y += gBattleAnimArgs[1]; + } + else + { + if (!gBattleAnimArgs[6]) + { + sprite->pos1.x = sub_8077ABC(bank, 0); + sprite->pos1.y = sub_8077ABC(bank, 1) + gBattleAnimArgs[1]; + } + else + { + sprite->pos1.x = sub_8077ABC(bank, 2); + sprite->pos1.y = sub_8077ABC(bank, 3) + gBattleAnimArgs[1]; + } + sub_807867C(sprite, gBattleAnimArgs[0]); + } + sprite->data0 = gBattleAnimArgs[5]; + sprite->data1 = gBattleAnimArgs[3]; + sprite->data2 = gBattleAnimArgs[4]; + oamt_set_x3A_32(sprite, move_anim_8072740); + sprite->callback = sub_8078394; +} + +void sub_80CD274(struct Sprite* sprite) +{ + sub_8078650(sprite); + if (GetBankSide(gBattleAnimPlayerMonIndex) == 0) + { + sprite->pos1.x += gBattleAnimArgs[0]; + sprite->pos1.y += gBattleAnimArgs[1]; + } + else + { + sprite->pos1.x -= gBattleAnimArgs[0]; + sprite->pos1.y += gBattleAnimArgs[1]; + StartSpriteAnim(sprite, 1); + } + sprite->callback = sub_80CD2D4; +} + +void sub_80CD2D4(struct Sprite* sprite) +{ + if (++sprite->data0 > 30) + { + sprite->pos2.y = (30 - sprite->data0) / 3; + sprite->pos2.x = Sin(sprite->data1 * 4, 3); + sprite->data1++; + } + if(sprite->animEnded) + move_anim_8072740(sprite); +} + +void sub_80CD328(struct Sprite* sprite) +{ + sub_8078650(sprite); + if (GetBankSide(gBattleAnimPlayerMonIndex) == 0) + { + sprite->pos1.x += gBattleAnimArgs[0]; + sprite->pos1.y += gBattleAnimArgs[1]; + sprite->data3 = 1; + } + else + { + sprite->pos1.x -= gBattleAnimArgs[0]; + sprite->pos1.y += gBattleAnimArgs[1]; + sprite->data3 = 0xFFFF; + StartSpriteAffineAnim(sprite, 1); + } + sprite->callback = sub_80CD394; +} + +void sub_80CD394(struct Sprite* sprite) +{ + sprite->pos2.y = -(sprite->data0 / 0x28); + sprite->pos2.x = sprite->data4 / 10; + sprite->data4 += sprite->data3 * 2; + sprite->data0 += sprite->data1; + if (++sprite->data1 > 0x3C) + move_anim_8074EE0(sprite); +}
\ No newline at end of file |