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 | 
