summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/pokemon_animation.s2860
-rw-r--r--src/pokemon_animation.c1082
2 files changed, 1073 insertions, 2869 deletions
diff --git a/asm/pokemon_animation.s b/asm/pokemon_animation.s
index 562300f3f..96ec4f77a 100644
--- a/asm/pokemon_animation.s
+++ b/asm/pokemon_animation.s
@@ -5,2865 +5,7 @@
.text
-
-
- thumb_func_start pokemonanimfunc_37
-pokemonanimfunc_37: @ 818201C
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r0, 0x32
- ldrsh r5, [r4, r0]
- cmp r5, 0
- bne _08182036
- adds r0, r4, 0
- bl HandleStartAffineAnim
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- strh r5, [r4, 0x3C]
-_08182036:
- adds r0, r4, 0
- bl sub_817F70C
- ldrh r1, [r4, 0x3C]
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- cmp r0, 0xFF
- ble _08182060
- movs r0, 0
- strh r0, [r4, 0x24]
- strh r0, [r4, 0x26]
- strh r0, [r4, 0x3C]
- adds r0, r4, 0
- bl sub_817F77C
- ldr r0, =SpriteCB_SetDummyOnAnimEnd
- str r0, [r4, 0x1C]
- b _081820A6
- .pool
-_08182060:
- adds r0, r1, 0
- adds r0, 0x10
- strh r0, [r4, 0x3C]
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- adds r0, r1, 0
- cmp r1, 0
- bge _08182072
- adds r0, 0x7F
-_08182072:
- asrs r0, 7
- lsls r0, 7
- subs r0, r1, r0
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x8
- bl Sin
- negs r0, r0
- strh r0, [r4, 0x24]
- movs r2, 0x3C
- ldrsh r1, [r4, r2]
- adds r0, r1, 0
- cmp r1, 0
- bge _08182092
- adds r0, 0x7F
-_08182092:
- asrs r0, 7
- lsls r0, 7
- subs r0, r1, r0
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x8
- bl Sin
- negs r0, r0
- strh r0, [r4, 0x26]
-_081820A6:
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- adds r0, r1, 0
- cmp r1, 0
- bge _081820B2
- adds r0, 0x7F
-_081820B2:
- asrs r0, 7
- lsls r0, 7
- subs r0, r1, r0
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x10
- bl Sin
- adds r3, r0, 0
- movs r2, 0x80
- lsls r2, 1
- lsls r3, 24
- lsrs r3, 16
- adds r0, r4, 0
- adds r1, r2, 0
- bl HandleSetAffineData
- adds r0, r4, 0
- bl sub_817F70C
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end pokemonanimfunc_37
-
- thumb_func_start pokemonanimfunc_38
-pokemonanimfunc_38: @ 81820E0
- push {r4,lr}
- adds r4, r0, 0
- bl HandleStartAffineAnim
- movs r0, 0
- strh r0, [r4, 0x3C]
- strh r0, [r4, 0x36]
- ldr r0, =sub_81820FC
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_38
-
- thumb_func_start sub_81820FC
-sub_81820FC: @ 81820FC
- push {r4,lr}
- adds r4, r0, 0
- bl sub_817F70C
- ldrh r1, [r4, 0x3C]
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- cmp r0, 0x18
- ble _0818212C
- ldrh r0, [r4, 0x36]
- adds r0, 0x1
- strh r0, [r4, 0x36]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _0818214A
- movs r0, 0
- strh r0, [r4, 0x36]
- ldr r0, =sub_818216C
- str r0, [r4, 0x1C]
- b _0818214A
- .pool
-_0818212C:
- adds r0, r1, 0x2
- strh r0, [r4, 0x3C]
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- movs r1, 0x8
- bl Sin
- strh r0, [r4, 0x24]
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- movs r1, 0x8
- bl Sin
- negs r0, r0
- strh r0, [r4, 0x26]
-_0818214A:
- movs r2, 0x80
- lsls r2, 1
- ldrh r3, [r4, 0x3C]
- negs r3, r3
- lsls r3, 24
- lsrs r3, 16
- adds r0, r4, 0
- adds r1, r2, 0
- bl HandleSetAffineData
- adds r0, r4, 0
- bl sub_817F70C
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81820FC
-
- thumb_func_start sub_818216C
-sub_818216C: @ 818216C
- push {r4,lr}
- adds r4, r0, 0
- bl sub_817F70C
- ldrh r1, [r4, 0x3C]
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- cmp r0, 0x20
- ble _0818218C
- movs r0, 0x1
- strh r0, [r4, 0x3A]
- ldr r0, =sub_81821CC
- str r0, [r4, 0x1C]
- b _081821AA
- .pool
-_0818218C:
- adds r0, r1, 0x2
- strh r0, [r4, 0x3C]
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- movs r1, 0x8
- bl Sin
- strh r0, [r4, 0x24]
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- movs r1, 0x8
- bl Sin
- negs r0, r0
- strh r0, [r4, 0x26]
-_081821AA:
- movs r2, 0x80
- lsls r2, 1
- ldrh r3, [r4, 0x3C]
- negs r3, r3
- lsls r3, 24
- lsrs r3, 16
- adds r0, r4, 0
- adds r1, r2, 0
- bl HandleSetAffineData
- adds r0, r4, 0
- bl sub_817F70C
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_818216C
-
- thumb_func_start sub_81821CC
-sub_81821CC: @ 81821CC
- push {r4,lr}
- adds r4, r0, 0
- bl sub_817F70C
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- lsls r0, 2
- ldrh r1, [r4, 0x3C]
- adds r0, r1
- strh r0, [r4, 0x3C]
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- cmp r0, 0x9
- ble _081821F0
- movs r0, 0x20
- strh r0, [r4, 0x3C]
- ldr r0, =sub_8182248
- str r0, [r4, 0x1C]
-_081821F0:
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- movs r1, 0x8
- bl Sin
- strh r0, [r4, 0x24]
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- movs r1, 0x8
- bl Sin
- negs r0, r0
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x3C]
- subs r0, 0x1D
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x6
- bls _08182224
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- negs r0, r0
- strh r0, [r4, 0x3A]
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- strh r0, [r4, 0x38]
-_08182224:
- movs r2, 0x80
- lsls r2, 1
- ldrh r3, [r4, 0x3C]
- negs r3, r3
- lsls r3, 24
- lsrs r3, 16
- adds r0, r4, 0
- adds r1, r2, 0
- bl HandleSetAffineData
- adds r0, r4, 0
- bl sub_817F70C
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81821CC
-
- thumb_func_start sub_8182248
-sub_8182248: @ 8182248
- push {r4,lr}
- adds r4, r0, 0
- bl sub_817F70C
- ldrh r1, [r4, 0x3C]
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bgt _08182270
- movs r0, 0
- strh r0, [r4, 0x3C]
- adds r0, r4, 0
- bl sub_817F77C
- ldr r0, =SpriteCB_SetDummyOnAnimEnd
- str r0, [r4, 0x1C]
- b _0818228E
- .pool
-_08182270:
- subs r0, r1, 0x2
- strh r0, [r4, 0x3C]
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- movs r1, 0x8
- bl Sin
- strh r0, [r4, 0x24]
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- movs r1, 0x8
- bl Sin
- negs r0, r0
- strh r0, [r4, 0x26]
-_0818228E:
- movs r2, 0x80
- lsls r2, 1
- ldrh r3, [r4, 0x3C]
- negs r3, r3
- lsls r3, 24
- lsrs r3, 16
- adds r0, r4, 0
- adds r1, r2, 0
- bl HandleSetAffineData
- adds r0, r4, 0
- bl sub_817F70C
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8182248
-
- thumb_func_start pokemonanimfunc_39
-pokemonanimfunc_39: @ 81822B0
- push {r4,r5,lr}
- adds r4, r0, 0
- bl sub_817F70C
- ldrh r1, [r4, 0x32]
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- cmp r0, 0x28
- ble _081822D0
- ldr r0, =SpriteCB_SetDummyOnAnimEnd
- str r0, [r4, 0x1C]
- movs r0, 0
- strh r0, [r4, 0x24]
- b _0818235C
- .pool
-_081822D0:
- movs r0, 0x1
- ands r0, r1
- movs r5, 0xFF
- cmp r0, 0
- bne _081822DC
- movs r5, 0x1
-_081822DC:
- movs r0, 0x32
- ldrsh r2, [r4, r0]
- adds r0, r2, 0
- cmp r2, 0
- bge _081822E8
- adds r0, r2, 0x3
-_081822E8:
- asrs r0, 2
- lsls r0, 2
- subs r0, r2, r0
- lsls r0, 16
- asrs r1, r0, 16
- lsrs r0, 31
- adds r1, r0
- asrs r1, 1
- cmp r1, 0
- bne _0818232C
- lsls r0, r2, 7
- movs r1, 0x28
- bl __divsi3
- adds r1, r0, 0
- cmp r1, 0
- bge _0818230C
- adds r0, 0xFF
-_0818230C:
- asrs r0, 8
- lsls r0, 8
- subs r0, r1, r0
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x10
- bl Sin
- lsls r1, r5, 24
- asrs r1, 24
- adds r2, r0, 0
- muls r2, r1
- adds r0, r2, 0
- strh r0, [r4, 0x24]
- negs r0, r0
- b _0818235A
-_0818232C:
- lsls r0, r2, 7
- movs r1, 0x28
- bl __divsi3
- adds r1, r0, 0
- cmp r1, 0
- bge _0818233C
- adds r0, 0xFF
-_0818233C:
- asrs r0, 8
- lsls r0, 8
- subs r0, r1, r0
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x10
- bl Sin
- lsls r0, 16
- asrs r0, 16
- negs r0, r0
- lsls r1, r5, 24
- asrs r1, 24
- muls r0, r1
- strh r0, [r4, 0x24]
-_0818235A:
- strh r0, [r4, 0x26]
-_0818235C:
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- adds r0, r4, 0
- bl sub_817F70C
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end pokemonanimfunc_39
-
- thumb_func_start pokemonanimfunc_3A
-pokemonanimfunc_3A: @ 8182370
- push {r4,r5,lr}
- adds r4, r0, 0
- bl sub_817F70C
- movs r0, 0x32
- ldrsh r5, [r4, r0]
- cmp r5, 0
- bne _08182392
- adds r0, r4, 0
- bl HandleStartAffineAnim
- strh r5, [r4, 0x38]
- strh r5, [r4, 0x3A]
- strh r5, [r4, 0x3C]
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
-_08182392:
- ldrh r1, [r4, 0x3A]
- movs r2, 0x3A
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _081823E4
- subs r0, r1, 0x1
- strh r0, [r4, 0x3A]
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- cmp r0, 0x3
- beq _08182494
- movs r2, 0x3A
- ldrsh r0, [r4, r2]
- lsls r0, 3
- movs r1, 0x14
- bl __divsi3
- adds r1, r0, 0
- ldrh r0, [r4, 0x3C]
- lsls r1, 16
- asrs r1, 16
- subs r0, r1
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x40
- bl Sin
- movs r1, 0x80
- lsls r1, 1
- adds r2, r1, 0
- lsls r0, 16
- asrs r0, 16
- subs r2, r0
- lsls r2, 16
- asrs r2, 16
- adds r0, r4, 0
- adds r1, r2, 0
- movs r3, 0
- bl HandleSetAffineData
- b _08182494
-_081823E4:
- movs r2, 0x38
- ldrsh r0, [r4, r2]
- cmp r0, 0x3
- bne _08182424
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- cmp r0, 0x3F
- ble _08182410
- movs r0, 0x40
- strh r0, [r4, 0x3C]
- movs r2, 0x80
- lsls r2, 1
- adds r0, r4, 0
- adds r1, r2, 0
- movs r3, 0
- bl HandleSetAffineData
- adds r0, r4, 0
- bl sub_817F77C
- ldr r0, =SpriteCB_SetDummyOnAnimEnd
- str r0, [r4, 0x1C]
-_08182410:
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- movs r1, 0x40
- bl Cos
- lsls r0, 16
- lsrs r3, r0, 16
- b _08182474
- .pool
-_08182424:
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- movs r1, 0x40
- bl Sin
- lsls r0, 16
- lsrs r3, r0, 16
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- cmp r0, 0x3F
- ble _08182448
- movs r0, 0
- movs r1, 0x3
- strh r1, [r4, 0x38]
- movs r1, 0xA
- strh r1, [r4, 0x3A]
- strh r0, [r4, 0x3C]
- b _08182474
-_08182448:
- lsls r0, r3, 16
- asrs r0, 16
- cmp r0, 0x30
- ble _0818245C
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- bne _0818245C
- movs r0, 0x2
- b _0818246E
-_0818245C:
- lsls r0, r3, 16
- asrs r0, 16
- cmp r0, 0x10
- ble _08182474
- movs r2, 0x38
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _08182474
- movs r0, 0x1
-_0818246E:
- strh r0, [r4, 0x38]
- movs r0, 0x14
- strh r0, [r4, 0x3A]
-_08182474:
- ldrh r0, [r4, 0x3C]
- adds r0, 0x2
- strh r0, [r4, 0x3C]
- movs r0, 0x80
- lsls r0, 1
- adds r2, r0, 0
- lsls r0, r3, 16
- asrs r0, 16
- subs r2, r0
- lsls r2, 16
- asrs r2, 16
- adds r0, r4, 0
- adds r1, r2, 0
- movs r3, 0
- bl HandleSetAffineData
-_08182494:
- adds r0, r4, 0
- bl sub_817F70C
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end pokemonanimfunc_3A
-
- thumb_func_start pokemonanimfunc_3B
-pokemonanimfunc_3B: @ 81824A0
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r0, 0x32
- ldrsh r5, [r4, r0]
- cmp r5, 0
- bne _081824BA
- adds r0, r4, 0
- bl HandleStartAffineAnim
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- strh r5, [r4, 0x3C]
-_081824BA:
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- movs r0, 0x80
- lsls r0, 2
- cmp r1, r0
- ble _081824E8
- movs r0, 0
- strh r0, [r4, 0x26]
- movs r2, 0x80
- lsls r2, 1
- adds r0, r4, 0
- adds r1, r2, 0
- movs r3, 0
- bl HandleSetAffineData
- adds r0, r4, 0
- bl sub_817F77C
- ldr r0, =SpriteCB_SetDummyOnAnimEnd
- str r0, [r4, 0x1C]
- b _08182540
- .pool
-_081824E8:
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- adds r0, r1, 0
- cmp r1, 0
- bge _081824F4
- adds r0, 0xFF
-_081824F4:
- asrs r0, 8
- lsls r0, 8
- subs r0, r1, r0
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x8
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x3C]
- adds r0, 0x8
- strh r0, [r4, 0x3C]
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- adds r0, r1, 0
- cmp r1, 0
- bge _08182518
- adds r0, 0x7F
-_08182518:
- asrs r0, 7
- lsls r0, 7
- subs r0, r1, r0
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x60
- bl Sin
- adds r2, r0, 0
- movs r1, 0x80
- lsls r1, 1
- lsls r2, 16
- asrs r2, 16
- adds r2, r1
- lsls r2, 16
- asrs r2, 16
- adds r0, r4, 0
- movs r3, 0
- bl HandleSetAffineData
-_08182540:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end pokemonanimfunc_3B
-
- thumb_func_start pokemonanimfunc_3C
-pokemonanimfunc_3C: @ 8182548
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r0, 0x32
- ldrsh r5, [r4, r0]
- cmp r5, 0
- bne _08182562
- adds r0, r4, 0
- bl HandleStartAffineAnim
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- strh r5, [r4, 0x3C]
-_08182562:
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- movs r5, 0x80
- lsls r5, 1
- cmp r0, r5
- ble _08182590
- movs r0, 0
- strh r0, [r4, 0x26]
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r5, 0
- movs r3, 0
- bl HandleSetAffineData
- adds r0, r4, 0
- bl sub_817F77C
- ldr r0, =SpriteCB_SetDummyOnAnimEnd
- str r0, [r4, 0x1C]
- b _081825D4
- .pool
-_08182590:
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- movs r1, 0x10
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x3C]
- adds r0, 0x4
- strh r0, [r4, 0x3C]
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- adds r0, r1, 0
- cmp r1, 0
- bge _081825AE
- adds r0, 0x3F
-_081825AE:
- asrs r0, 6
- lsls r0, 6
- subs r0, r1, r0
- lsls r0, 17
- asrs r0, 16
- movs r1, 0x80
- bl Sin
- adds r2, r0, 0
- lsls r2, 16
- asrs r2, 16
- adds r2, r5
- lsls r2, 16
- asrs r2, 16
- adds r0, r4, 0
- adds r1, r5, 0
- movs r3, 0
- bl HandleSetAffineData
-_081825D4:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end pokemonanimfunc_3C
-
- thumb_func_start pokemonanimfunc_3D
-pokemonanimfunc_3D: @ 81825DC
- push {r4,lr}
- adds r4, r0, 0
- bl HandleStartAffineAnim
- ldr r0, =sub_81825F8
- str r0, [r4, 0x1C]
- movs r0, 0
- strh r0, [r4, 0x3C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_3D
-
- thumb_func_start sub_81825F8
-sub_81825F8: @ 81825F8
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x3C]
- adds r0, 0x8
- movs r1, 0
- strh r0, [r4, 0x3C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3F
- ble _0818261C
- strh r1, [r4, 0x3C]
- strh r1, [r4, 0x3A]
- ldr r0, =sub_8182648
- str r0, [r4, 0x1C]
- movs r0, 0x40
- b _08182620
- .pool
-_0818261C:
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
-_08182620:
- movs r1, 0x80
- bl Sin
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x80
- lsls r1, 1
- lsls r2, r0, 16
- asrs r2, 16
- adds r2, r1
- lsls r2, 16
- asrs r2, 16
- adds r0, r4, 0
- movs r3, 0
- bl HandleSetAffineData
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81825F8
-
- thumb_func_start sub_8182648
-sub_8182648: @ 8182648
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x3C]
- adds r0, 0x4
- strh r0, [r4, 0x3C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5F
- ble _08182672
- movs r0, 0
- movs r1, 0x80
- bl Cos
- lsls r0, 16
- lsrs r2, r0, 16
- movs r0, 0
- strh r0, [r4, 0x3C]
- ldrh r0, [r4, 0x3A]
- adds r0, 0x1
- strh r0, [r4, 0x3A]
- b _081826C8
-_08182672:
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- movs r1, 0x8
- bl Sin
- movs r2, 0x3A
- ldrsh r1, [r4, r2]
- lsls r1, 2
- negs r1, r1
- subs r1, r0
- strh r1, [r4, 0x26]
- ldrh r1, [r4, 0x3C]
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- cmp r0, 0x3F
- ble _081826A4
- ldr r5, =0x0000ffff
- adds r0, r1, 0
- subs r0, 0x40
- lsls r0, 16
- lsrs r0, 16
- b _081826A8
- .pool
-_081826A4:
- movs r5, 0x1
- movs r0, 0
-_081826A8:
- lsls r0, 16
- asrs r0, 15
- ldrh r1, [r4, 0x3C]
- adds r0, r1
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x80
- bl Cos
- lsls r1, r5, 16
- asrs r1, 16
- adds r2, r1, 0
- muls r2, r0
- adds r0, r2, 0
- lsls r0, 16
- lsrs r2, r0, 16
-_081826C8:
- movs r1, 0x80
- lsls r1, 1
- lsls r2, 16
- asrs r2, 16
- adds r2, r1
- lsls r2, 16
- asrs r2, 16
- adds r0, r4, 0
- movs r3, 0
- bl HandleSetAffineData
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- cmp r0, 0x3
- bne _081826EE
- movs r0, 0
- strh r0, [r4, 0x3C]
- ldr r0, =sub_81826F8
- str r0, [r4, 0x1C]
-_081826EE:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8182648
-
- thumb_func_start sub_81826F8
-sub_81826F8: @ 81826F8
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x3C]
- adds r0, 0x8
- strh r0, [r4, 0x3C]
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- movs r1, 0x80
- bl Cos
- lsls r0, 16
- lsrs r5, r0, 16
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- movs r1, 0xC
- bl Cos
- negs r0, r0
- strh r0, [r4, 0x26]
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- cmp r0, 0x3F
- ble _08182742
- adds r0, r4, 0
- bl sub_817F77C
- ldr r0, =SpriteCB_SetDummyOnAnimEnd
- str r0, [r4, 0x1C]
- movs r0, 0
- strh r0, [r4, 0x26]
- movs r2, 0x80
- lsls r2, 1
- adds r0, r4, 0
- adds r1, r2, 0
- movs r3, 0
- bl HandleSetAffineData
-_08182742:
- movs r1, 0x80
- lsls r1, 1
- lsls r2, r5, 16
- asrs r2, 16
- adds r2, r1
- lsls r2, 16
- asrs r2, 16
- adds r0, r4, 0
- movs r3, 0
- bl HandleSetAffineData
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81826F8
-
- thumb_func_start sub_8182764
-sub_8182764: @ 8182764
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- movs r2, 0x38
- ldrsh r0, [r4, r2]
- cmp r1, r0
- ble _08182798
- movs r0, 0
- strh r0, [r4, 0x24]
- adds r0, r4, 0
- bl sub_817F77C
- ldr r0, =SpriteCB_SetDummyOnAnimEnd
- str r0, [r4, 0x1C]
- movs r2, 0x80
- lsls r2, 1
- adds r0, r4, 0
- adds r1, r2, 0
- movs r3, 0
- bl HandleSetAffineData
- b _081827F4
- .pool
-_08182798:
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- adds r0, r1, 0
- cmp r1, 0
- bge _081827A4
- adds r0, 0xFF
-_081827A4:
- asrs r0, 8
- lsls r0, 8
- subs r0, r1, r0
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x3A]
- ldrh r1, [r4, 0x3C]
- adds r0, r1
- strh r0, [r4, 0x3C]
- movs r2, 0x3C
- ldrsh r1, [r4, r2]
- adds r0, r1, 0
- cmp r1, 0
- bge _081827CC
- adds r0, 0x7F
-_081827CC:
- asrs r0, 7
- lsls r0, 7
- subs r0, r1, r0
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x60
- bl Sin
- adds r1, r0, 0
- lsls r1, 16
- movs r0, 0x80
- lsls r0, 17
- adds r1, r0
- asrs r1, 16
- movs r2, 0x80
- lsls r2, 1
- adds r0, r4, 0
- movs r3, 0
- bl HandleSetAffineData
-_081827F4:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8182764
-
- thumb_func_start pokemonanimfunc_3E
-pokemonanimfunc_3E: @ 81827FC
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r0, 0x32
- ldrsh r5, [r4, r0]
- cmp r5, 0
- bne _08182822
- adds r0, r4, 0
- bl HandleStartAffineAnim
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- strh r5, [r4, 0x3C]
- movs r1, 0x8
- strh r1, [r4, 0x3A]
- movs r0, 0x80
- lsls r0, 2
- strh r0, [r4, 0x38]
- strh r1, [r4, 0x36]
-_08182822:
- adds r0, r4, 0
- bl sub_8182764
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end pokemonanimfunc_3E
-
- thumb_func_start sub_8182830
-sub_8182830: @ 8182830
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- movs r2, 0x38
- ldrsh r0, [r4, r2]
- cmp r1, r0
- ble _08182864
- movs r0, 0
- strh r0, [r4, 0x24]
- adds r0, r4, 0
- bl sub_817F77C
- ldr r0, =SpriteCB_SetDummyOnAnimEnd
- str r0, [r4, 0x1C]
- movs r2, 0x80
- lsls r2, 1
- adds r0, r4, 0
- adds r1, r2, 0
- movs r3, 0
- bl HandleSetAffineData
- b _081828C0
- .pool
-_08182864:
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- adds r0, r1, 0
- cmp r1, 0
- bge _08182870
- adds r0, 0xFF
-_08182870:
- asrs r0, 8
- lsls r0, 8
- subs r0, r1, r0
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x3A]
- ldrh r1, [r4, 0x3C]
- adds r0, r1
- strh r0, [r4, 0x3C]
- movs r2, 0x3C
- ldrsh r1, [r4, r2]
- adds r0, r1, 0
- cmp r1, 0
- bge _08182898
- adds r0, 0x3F
-_08182898:
- asrs r0, 6
- lsls r0, 6
- subs r0, r1, r0
- lsls r0, 17
- asrs r0, 16
- movs r1, 0x80
- bl Sin
- adds r1, r0, 0
- lsls r1, 16
- movs r0, 0x80
- lsls r0, 17
- adds r1, r0
- asrs r1, 16
- movs r2, 0x80
- lsls r2, 1
- adds r0, r4, 0
- movs r3, 0
- bl HandleSetAffineData
-_081828C0:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8182830
-
- thumb_func_start pokemonanimfunc_3F
-pokemonanimfunc_3F: @ 81828C8
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r0, 0x32
- ldrsh r5, [r4, r0]
- cmp r5, 0
- bne _081828EE
- adds r0, r4, 0
- bl HandleStartAffineAnim
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- strh r5, [r4, 0x3C]
- movs r0, 0x4
- strh r0, [r4, 0x3A]
- adds r0, 0xFC
- strh r0, [r4, 0x38]
- movs r0, 0x10
- strh r0, [r4, 0x36]
-_081828EE:
- adds r0, r4, 0
- bl sub_8182830
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end pokemonanimfunc_3F
-
- thumb_func_start pokemonanimfunc_40
-pokemonanimfunc_40: @ 81828FC
- push {r4,r5,lr}
- adds r4, r0, 0
- bl sub_817F70C
- movs r0, 0x32
- ldrsh r5, [r4, r0]
- cmp r5, 0
- bne _0818291A
- adds r0, r4, 0
- bl HandleStartAffineAnim
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- strh r5, [r4, 0x3C]
-_0818291A:
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- movs r0, 0x80
- lsls r0, 2
- cmp r1, r0
- ble _08182948
- movs r0, 0
- strh r0, [r4, 0x24]
- adds r0, r4, 0
- bl sub_817F77C
- movs r2, 0x80
- lsls r2, 1
- adds r0, r4, 0
- adds r1, r2, 0
- movs r3, 0
- bl HandleSetAffineData
- ldr r0, =SpriteCB_SetDummyOnAnimEnd
- str r0, [r4, 0x1C]
- b _0818299E
- .pool
-_08182948:
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- adds r0, r1, 0
- cmp r1, 0
- bge _08182954
- adds r0, 0xFF
-_08182954:
- asrs r0, 8
- lsls r0, 8
- subs r0, r1, r0
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x8
- bl Sin
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x3C]
- adds r0, 0x8
- strh r0, [r4, 0x3C]
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- adds r0, r1, 0
- cmp r1, 0
- bge _08182978
- adds r0, 0x7F
-_08182978:
- asrs r0, 7
- lsls r0, 7
- subs r0, r1, r0
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x60
- bl Sin
- adds r2, r0, 0
- lsls r2, 16
- movs r0, 0x80
- lsls r0, 17
- adds r2, r0
- asrs r2, 16
- adds r0, r4, 0
- adds r1, r2, 0
- movs r3, 0
- bl HandleSetAffineData
-_0818299E:
- adds r0, r4, 0
- bl sub_817F70C
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end pokemonanimfunc_40
-
- thumb_func_start pokemonanimfunc_41
-pokemonanimfunc_41: @ 81829AC
- push {r4,r5,lr}
- adds r4, r0, 0
- bl sub_817F70C
- movs r0, 0x32
- ldrsh r5, [r4, r0]
- cmp r5, 0
- bne _081829CA
- adds r0, r4, 0
- bl HandleStartAffineAnim
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- strh r5, [r4, 0x3C]
-_081829CA:
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- movs r0, 0x80
- lsls r0, 2
- cmp r1, r0
- ble _081829F8
- movs r0, 0
- strh r0, [r4, 0x24]
- adds r0, r4, 0
- bl sub_817F77C
- movs r2, 0x80
- lsls r2, 1
- adds r0, r4, 0
- adds r1, r2, 0
- movs r3, 0
- bl HandleSetAffineData
- ldr r0, =SpriteCB_SetDummyOnAnimEnd
- str r0, [r4, 0x1C]
- b _08182A5E
- .pool
-_081829F8:
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- adds r1, r0, 0
- cmp r0, 0
- bge _08182A04
- adds r1, 0xFF
-_08182A04:
- asrs r1, 8
- lsls r1, 8
- subs r1, r0, r1
- lsls r1, 16
- asrs r0, r1, 16
- lsrs r1, 31
- adds r0, r1
- asrs r0, 1
- movs r1, 0x10
- bl Sin
- negs r0, r0
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x3C]
- adds r0, 0x8
- strh r0, [r4, 0x3C]
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- adds r1, r0, 0
- cmp r0, 0
- bge _08182A30
- adds r1, 0xFF
-_08182A30:
- asrs r1, 8
- lsls r1, 8
- subs r1, r0, r1
- lsls r1, 16
- asrs r0, r1, 16
- lsrs r1, 31
- adds r0, r1
- asrs r0, 1
- movs r1, 0x40
- bl Sin
- adds r2, r0, 0
- negs r2, r2
- lsls r2, 16
- movs r0, 0x80
- lsls r0, 17
- adds r2, r0
- asrs r2, 16
- adds r0, r4, 0
- adds r1, r2, 0
- movs r3, 0
- bl HandleSetAffineData
-_08182A5E:
- adds r0, r4, 0
- bl sub_817F70C
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end pokemonanimfunc_41
-
- thumb_func_start pokemonanimfunc_42
-pokemonanimfunc_42: @ 8182A6C
- push {r4,r5,lr}
- adds r4, r0, 0
- bl sub_817F70C
- movs r0, 0x32
- ldrsh r5, [r4, r0]
- cmp r5, 0
- bne _08182A8A
- adds r0, r4, 0
- bl HandleStartAffineAnim
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- strh r5, [r4, 0x3C]
-_08182A8A:
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- movs r0, 0x80
- lsls r0, 2
- cmp r1, r0
- ble _08182AB8
- movs r0, 0
- strh r0, [r4, 0x24]
- adds r0, r4, 0
- bl sub_817F77C
- movs r2, 0x80
- lsls r2, 1
- adds r0, r4, 0
- adds r1, r2, 0
- movs r3, 0
- bl HandleSetAffineData
- ldr r0, =SpriteCB_SetDummyOnAnimEnd
- str r0, [r4, 0x1C]
- b _08182B16
- .pool
-_08182AB8:
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- adds r0, r1, 0
- cmp r1, 0
- bge _08182AC4
- adds r0, 0xFF
-_08182AC4:
- asrs r0, 8
- lsls r0, 8
- subs r0, r1, r0
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x8
- bl Sin
- negs r0, r0
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x3C]
- adds r0, 0x8
- strh r0, [r4, 0x3C]
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- adds r1, r0, 0
- cmp r0, 0
- bge _08182AEA
- adds r1, 0xFF
-_08182AEA:
- asrs r1, 8
- lsls r1, 8
- subs r1, r0, r1
- lsls r1, 16
- asrs r0, r1, 16
- lsrs r1, 31
- adds r0, r1
- asrs r0, 1
- movs r1, 0x60
- bl Sin
- adds r2, r0, 0
- lsls r2, 16
- movs r0, 0x80
- lsls r0, 17
- adds r2, r0
- asrs r2, 16
- adds r0, r4, 0
- adds r1, r2, 0
- movs r3, 0
- bl HandleSetAffineData
-_08182B16:
- adds r0, r4, 0
- bl sub_817F70C
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end pokemonanimfunc_42
-
- thumb_func_start pokemonanimfunc_43
-pokemonanimfunc_43: @ 8182B24
- push {r4,lr}
- adds r4, r0, 0
- bl sub_817F70C
- movs r0, 0x32
- ldrsh r1, [r4, r0]
- movs r0, 0x80
- lsls r0, 4
- cmp r1, r0
- ble _08182B48
- ldr r0, =SpriteCB_SetDummyOnAnimEnd
- str r0, [r4, 0x1C]
- movs r0, 0
- strh r0, [r4, 0x3A]
- b _08182C08
- .pool
-_08182B48:
- movs r1, 0x32
- ldrsh r2, [r4, r1]
- adds r0, r2, 0
- cmp r2, 0
- bge _08182B56
- ldr r1, =0x000001ff
- adds r0, r2, r1
-_08182B56:
- asrs r3, r0, 9
- adds r1, r3, 0
- adds r0, r1, 0
- cmp r1, 0
- bge _08182B62
- adds r0, r1, 0x3
-_08182B62:
- asrs r0, 2
- lsls r0, 2
- subs r0, r1, r0
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- beq _08182BA4
- cmp r0, 0x1
- bgt _08182B80
- cmp r0, 0
- beq _08182B8A
- b _08182BE2
- .pool
-_08182B80:
- cmp r0, 0x2
- beq _08182BB8
- cmp r0, 0x3
- beq _08182BCA
- b _08182BE2
-_08182B8A:
- lsls r0, r3, 9
- subs r0, r2, r0
- lsls r0, 16
- asrs r0, 12
- negs r0, r0
- cmp r0, 0
- bge _08182B9C
- ldr r1, =0x000001ff
- adds r0, r1
-_08182B9C:
- asrs r0, 9
- b _08182BE0
- .pool
-_08182BA4:
- lsls r0, r3, 9
- subs r0, r2, r0
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _08182BB2
- adds r0, 0x1F
-_08182BB2:
- asrs r0, 5
- subs r0, 0x10
- b _08182BE0
-_08182BB8:
- lsls r0, r3, 9
- subs r0, r2, r0
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _08182BC6
- adds r0, 0x1F
-_08182BC6:
- asrs r0, 5
- b _08182BE0
-_08182BCA:
- lsls r0, r3, 9
- subs r0, r2, r0
- lsls r0, 16
- asrs r0, 12
- negs r0, r0
- cmp r0, 0
- bge _08182BDC
- ldr r1, =0x000001ff
- adds r0, r1
-_08182BDC:
- asrs r0, 9
- adds r0, 0x10
-_08182BE0:
- strh r0, [r4, 0x24]
-_08182BE2:
- movs r0, 0x32
- ldrsh r1, [r4, r0]
- adds r0, r1, 0
- cmp r1, 0
- bge _08182BEE
- adds r0, 0x7F
-_08182BEE:
- asrs r0, 7
- lsls r0, 7
- subs r0, r1, r0
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x4
- bl Sin
- negs r0, r0
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x32]
- adds r0, 0x18
- strh r0, [r4, 0x32]
-_08182C08:
- adds r0, r4, 0
- bl sub_817F70C
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_43
-
- thumb_func_start pokemonanimfunc_44
-pokemonanimfunc_44: @ 8182C18
- push {r4,r5,lr}
- adds r4, r0, 0
- bl sub_817F70C
- ldrh r1, [r4, 0x32]
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _08182C34
- strh r0, [r4, 0x3A]
- movs r0, 0x40
- strh r0, [r4, 0x3C]
- adds r0, r1, 0x1
- strh r0, [r4, 0x32]
-_08182C34:
- ldrh r0, [r4, 0x3C]
- adds r1, r0, 0
- adds r1, 0x8
- movs r3, 0
- strh r1, [r4, 0x3C]
- ldrh r2, [r4, 0x3A]
- movs r5, 0x3A
- ldrsh r0, [r4, r5]
- cmp r0, 0x4
- bne _08182C52
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0x3F
- ble _08182C60
- b _08182C5A
-_08182C52:
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0x7F
- ble _08182C60
-_08182C5A:
- strh r3, [r4, 0x3C]
- adds r0, r2, 0x1
- strh r0, [r4, 0x3A]
-_08182C60:
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bhi _08182D08
- lsls r0, 2
- ldr r1, =_08182C78
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_08182C78:
- .4byte _08182CEC
- .4byte _08182C8C
- .4byte _08182CAA
- .4byte _08182CCC
- .4byte _08182CEC
-_08182C8C:
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- movs r1, 0x8
- bl Cos
- negs r0, r0
- strh r0, [r4, 0x24]
- movs r5, 0x3C
- ldrsh r0, [r4, r5]
- movs r1, 0x8
- bl Sin
- subs r0, 0x8
- strh r0, [r4, 0x26]
- b _08182D12
-_08182CAA:
- ldrh r0, [r4, 0x3C]
- adds r0, 0x80
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x8
- bl Sin
- adds r0, 0x8
- strh r0, [r4, 0x24]
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- movs r1, 0x8
- bl Cos
- negs r0, r0
- strh r0, [r4, 0x26]
- b _08182D12
-_08182CCC:
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- movs r1, 0x8
- bl Cos
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x3C]
- adds r0, 0x80
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x8
- bl Sin
- adds r0, 0x8
- strh r0, [r4, 0x26]
- b _08182D12
-_08182CEC:
- movs r5, 0x3C
- ldrsh r0, [r4, r5]
- movs r1, 0x8
- bl Sin
- subs r0, 0x8
- strh r0, [r4, 0x24]
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- movs r1, 0x8
- bl Cos
- strh r0, [r4, 0x26]
- b _08182D12
-_08182D08:
- movs r0, 0
- strh r0, [r4, 0x24]
- strh r0, [r4, 0x26]
- ldr r0, =SpriteCB_SetDummyOnAnimEnd
- str r0, [r4, 0x1C]
-_08182D12:
- adds r0, r4, 0
- bl sub_817F70C
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_44
-
- thumb_func_start pokemonanimfunc_45
-pokemonanimfunc_45: @ 8182D24
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x20
- strh r0, [r4, 0x2E]
- adds r0, r4, 0
- bl sub_8180714
- ldr r0, =sub_8180714
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_45
-
- thumb_func_start pokemonanimfunc_46
-pokemonanimfunc_46: @ 8182D40
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x50
- strh r0, [r4, 0x2E]
- adds r0, r4, 0
- bl sub_817F8FC
- ldr r0, =sub_817F8FC
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_46
-
- thumb_func_start pokemonanimfunc_47
-pokemonanimfunc_47: @ 8182D5C
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x50
- strh r0, [r4, 0x2E]
- adds r0, r4, 0
- bl sub_817F978
- ldr r0, =sub_817F978
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_47
-
- thumb_func_start pokemonanimfunc_48
-pokemonanimfunc_48: @ 8182D78
- push {r4,lr}
- adds r4, r0, 0
- bl sub_817F758
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x2E]
- ldr r2, =gUnknown_03001240
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r0, 0x80
- lsls r0, 4
- strh r0, [r1, 0x6]
- ldrh r0, [r4, 0x3A]
- strh r0, [r1, 0x8]
- adds r0, r4, 0
- bl sub_8180900
- ldr r0, =sub_8180900
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_48
-
- thumb_func_start pokemonanimfunc_49
-pokemonanimfunc_49: @ 8182DB4
- push {lr}
- movs r1, 0x1
- strh r1, [r0, 0x3A]
- bl pokemonanimfunc_05
- pop {r0}
- bx r0
- thumb_func_end pokemonanimfunc_49
-
- thumb_func_start pokemonanimfunc_4A
-pokemonanimfunc_4A: @ 8182DC4
- push {lr}
- movs r1, 0x1
- strh r1, [r0, 0x3A]
- bl pokemonanimfunc_48
- pop {r0}
- bx r0
- thumb_func_end pokemonanimfunc_4A
-
- thumb_func_start pokemonanimfunc_4B
-pokemonanimfunc_4B: @ 8182DD4
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _08182DE2
- strh r0, [r4, 0x2E]
-_08182DE2:
- ldrh r1, [r4, 0x2E]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bgt _08182DF6
- adds r0, r4, 0
- bl sub_817FC20
- movs r0, 0x1
- b _08182DF8
-_08182DF6:
- subs r0, r1, 0x1
-_08182DF8:
- strh r0, [r4, 0x2E]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end pokemonanimfunc_4B
-
- thumb_func_start pokemonanimfunc_4C
-pokemonanimfunc_4C: @ 8182E00
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x1E
- strh r0, [r4, 0x2E]
- movs r0, 0x3
- strh r0, [r4, 0x3C]
- adds r0, r4, 0
- bl sub_817FCDC
- ldr r0, =sub_817FCDC
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_4C
-
- thumb_func_start pokemonanimfunc_4D
-pokemonanimfunc_4D: @ 8182E20
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x1E
- strh r0, [r4, 0x2E]
- adds r0, r4, 0
- bl sub_817FD44
- ldr r0, =sub_817FD44
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_4D
-
- thumb_func_start pokemonanimfunc_4E
-pokemonanimfunc_4E: @ 8182E3C
- push {r4,lr}
- adds r4, r0, 0
- bl sub_817F758
- lsls r0, 24
- lsrs r0, 24
- movs r3, 0
- strh r0, [r4, 0x2E]
- ldr r2, =gUnknown_03001240
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r0, 0x80
- lsls r0, 3
- strh r0, [r1, 0x6]
- strh r3, [r1]
- movs r0, 0x2
- strh r0, [r1, 0x4]
- adds r0, r4, 0
- bl sub_817FE30
- ldr r0, =sub_817FE30
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_4E
-
- thumb_func_start pokemonanimfunc_4F
-pokemonanimfunc_4F: @ 8182E7C
- push {r4,lr}
- adds r4, r0, 0
- bl sub_817F758
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x2E]
- ldr r2, =gUnknown_03001240
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r0, 0x80
- lsls r0, 2
- strh r0, [r1, 0x6]
- movs r0, 0x3
- strh r0, [r1, 0x8]
- movs r0, 0xC
- strh r0, [r1, 0x2]
- adds r0, r4, 0
- bl sub_817FFF0
- ldr r0, =sub_817FFF0
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_4F
-
- thumb_func_start pokemonanimfunc_50
-pokemonanimfunc_50: @ 8182EBC
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x18
- strh r0, [r4, 0x2E]
- adds r0, r4, 0
- bl sub_818031C
- ldr r0, =sub_818031C
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_50
-
- thumb_func_start pokemonanimfunc_51
-pokemonanimfunc_51: @ 8182ED8
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x5
- strh r0, [r4, 0x2E]
- adds r0, r4, 0
- bl sub_81804F8
- ldr r0, =sub_81804F8
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_51
-
- thumb_func_start pokemonanimfunc_52
-pokemonanimfunc_52: @ 8182EF4
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x3
- strh r0, [r4, 0x2E]
- adds r0, r4, 0
- bl sub_817F9F4
- ldr r0, =sub_817F9F4
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_52
-
- thumb_func_start pokemonanimfunc_53
-pokemonanimfunc_53: @ 8182F10
- push {r4,lr}
- adds r4, r0, 0
- bl sub_817F758
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x2E]
- ldr r2, =gUnknown_03001240
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r0, 0x3C
- strh r0, [r1]
- movs r0, 0x1E
- strh r0, [r1, 0x8]
- adds r0, r4, 0
- bl sub_817FF3C
- ldr r0, =sub_817FF3C
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_53
-
- thumb_func_start pokemonanimfunc_54
-pokemonanimfunc_54: @ 8182F48
- push {r4,lr}
- adds r4, r0, 0
- bl sub_817F758
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x2E]
- ldr r2, =gUnknown_03001240
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r0, 0x1
- strh r0, [r1, 0x2]
- movs r0, 0x2
- strh r0, [r1, 0x4]
- adds r0, r4, 0
- bl sub_8181214
- ldr r0, =sub_8181214
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_54
-
- thumb_func_start pokemonanimfunc_55
-pokemonanimfunc_55: @ 8182F80
- push {r4,lr}
- adds r4, r0, 0
- bl sub_817F758
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x2E]
- ldr r2, =gUnknown_03001240
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r0, 0x4
- strh r0, [r1, 0x6]
- movs r0, 0x2
- strh r0, [r1, 0x4]
- adds r0, r4, 0
- bl sub_8181810
- ldr r0, =sub_8181810
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_55
-
- thumb_func_start pokemonanimfunc_56
-pokemonanimfunc_56: @ 8182FB8
- push {r4,r5,lr}
- adds r4, r0, 0
- bl sub_817F758
- lsls r0, 24
- lsrs r0, 24
- movs r5, 0
- strh r0, [r4, 0x2E]
- ldr r2, =gUnknown_03001240
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r0, 0x1
- strh r0, [r1, 0x8]
- movs r0, 0x2
- strh r0, [r1, 0x4]
- adds r0, r4, 0
- bl HandleStartAffineAnim
- strh r5, [r4, 0x34]
- adds r0, r4, 0
- bl sub_8181ABC
- ldr r0, =sub_8181ABC
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_56
-
- thumb_func_start pokemonanimfunc_07
-pokemonanimfunc_07: @ 8182FFC
- push {r4,lr}
- adds r4, r0, 0
- bl sub_817F758
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x2E]
- ldr r2, =gUnknown_03001240
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r0, 0x2
- strh r0, [r1, 0x6]
- adds r0, r4, 0
- bl sub_8181CE8
- ldr r0, =sub_8181CE8
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_07
-
- thumb_func_start pokemonanimfunc_08
-pokemonanimfunc_08: @ 8183030
- push {r4,lr}
- adds r4, r0, 0
- bl sub_817F758
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x2E]
- ldr r2, =gUnknown_03001240
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r0, 0x4
- strh r0, [r1, 0x6]
- movs r0, 0x2
- strh r0, [r1, 0x4]
- adds r0, r4, 0
- bl sub_8181CE8
- ldr r0, =sub_8181CE8
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_08
-
- thumb_func_start pokemonanimfunc_0B
-pokemonanimfunc_0B: @ 8183068
- push {r4,lr}
- adds r4, r0, 0
- bl sub_817F758
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x2E]
- ldr r2, =gUnknown_03001240
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r0, 0x64
- strh r0, [r1, 0x8]
- adds r0, r4, 0
- bl sub_81814D4
- ldr r0, =sub_81814D4
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_0B
-
- thumb_func_start pokemonanimfunc_0C
-pokemonanimfunc_0C: @ 818309C
- push {r4,lr}
- adds r4, r0, 0
- bl sub_817F758
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x2E]
- ldr r2, =gUnknown_03001240
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r0, 0x32
- strh r0, [r1, 0x8]
- movs r0, 0x2
- strh r0, [r1, 0x4]
- adds r0, r4, 0
- bl sub_81814D4
- ldr r0, =sub_81814D4
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_0C
-
- thumb_func_start pokemonanimfunc_0D
-pokemonanimfunc_0D: @ 81830D4
- push {r4,lr}
- adds r4, r0, 0
- bl sub_817F758
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x2E]
- ldr r2, =gUnknown_03001240
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r0, 0x64
- strh r0, [r1, 0x8]
- adds r0, r4, 0
- bl sub_81815D4
- ldr r0, =sub_81815D4
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_0D
-
- thumb_func_start pokemonanimfunc_0E
-pokemonanimfunc_0E: @ 8183108
- push {r4,lr}
- adds r4, r0, 0
- bl sub_817F758
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x2E]
- ldr r2, =gUnknown_03001240
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r0, 0x32
- strh r0, [r1, 0x8]
- movs r0, 0x2
- strh r0, [r1, 0x4]
- adds r0, r4, 0
- bl sub_81815D4
- ldr r0, =sub_81815D4
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_0E
-
- thumb_func_start sub_8183140
-sub_8183140: @ 8183140
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x32
- ldrsh r2, [r4, r0]
- movs r0, 0x90
- lsls r0, 4
- cmp r2, r0
- ble _0818315C
- ldr r0, =SpriteCB_SetDummyOnAnimEnd
- str r0, [r4, 0x1C]
- movs r0, 0
- b _08183180
- .pool
-_0818315C:
- adds r1, r2, 0
- adds r1, 0xC0
- adds r0, r1, 0
- cmp r1, 0
- bge _0818316A
- ldr r3, =0x000001bf
- adds r0, r2, r3
-_0818316A:
- asrs r0, 8
- lsls r0, 8
- subs r0, r1, r0
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x3C
- ldrsh r1, [r4, r2]
- bl Sin
- ldrh r1, [r4, 0x3C]
- adds r0, r1
-_08183180:
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x2E]
- ldrh r3, [r4, 0x32]
- adds r0, r3
- strh r0, [r4, 0x32]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8183140
-
- thumb_func_start pokemonanimfunc_57
-pokemonanimfunc_57: @ 8183194
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x3C
- strh r0, [r4, 0x2E]
- movs r0, 0x3
- strh r0, [r4, 0x3C]
- adds r0, r4, 0
- bl sub_8183140
- ldr r0, =sub_8183140
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_57
-
- thumb_func_start pokemonanimfunc_58
-pokemonanimfunc_58: @ 81831B4
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x1E
- strh r0, [r4, 0x2E]
- movs r0, 0x3
- strh r0, [r4, 0x3C]
- adds r0, r4, 0
- bl sub_8183140
- ldr r0, =sub_8183140
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_58
-
- thumb_func_start pokemonanimfunc_59
-pokemonanimfunc_59: @ 81831D4
- push {r4,lr}
- adds r4, r0, 0
- bl sub_817F70C
- movs r0, 0x32
- ldrsh r1, [r4, r0]
- movs r0, 0x80
- lsls r0, 4
- cmp r1, r0
- ble _081831F8
- ldr r0, =SpriteCB_SetDummyOnAnimEnd
- str r0, [r4, 0x1C]
- movs r0, 0
- strh r0, [r4, 0x3A]
- b _081832BC
- .pool
-_081831F8:
- movs r1, 0x32
- ldrsh r2, [r4, r1]
- adds r0, r2, 0
- cmp r2, 0
- bge _08183206
- ldr r1, =0x000001ff
- adds r0, r2, r1
-_08183206:
- asrs r3, r0, 9
- adds r1, r3, 0
- adds r0, r1, 0
- cmp r1, 0
- bge _08183212
- adds r0, r1, 0x3
-_08183212:
- asrs r0, 2
- lsls r0, 2
- subs r0, r1, r0
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- beq _08183268
- cmp r0, 0x1
- bgt _08183230
- cmp r0, 0
- beq _0818323A
- b _08183298
- .pool
-_08183230:
- cmp r0, 0x2
- beq _0818324C
- cmp r0, 0x3
- beq _08183284
- b _08183298
-_0818323A:
- lsls r0, r3, 9
- subs r0, r2, r0
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _08183248
- adds r0, 0x1F
-_08183248:
- asrs r0, 5
- b _08183296
-_0818324C:
- lsls r0, r3, 9
- subs r0, r2, r0
- lsls r0, 16
- asrs r0, 12
- negs r0, r0
- cmp r0, 0
- bge _0818325E
- ldr r1, =0x000001ff
- adds r0, r1
-_0818325E:
- asrs r0, 9
- b _08183296
- .pool
-_08183268:
- lsls r0, r3, 9
- subs r0, r2, r0
- lsls r0, 16
- asrs r0, 12
- negs r0, r0
- cmp r0, 0
- bge _0818327A
- ldr r1, =0x000001ff
- adds r0, r1
-_0818327A:
- asrs r0, 9
- adds r0, 0x10
- b _08183296
- .pool
-_08183284:
- lsls r0, r3, 9
- subs r0, r2, r0
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _08183292
- adds r0, 0x1F
-_08183292:
- asrs r0, 5
- subs r0, 0x10
-_08183296:
- strh r0, [r4, 0x24]
-_08183298:
- movs r0, 0x32
- ldrsh r1, [r4, r0]
- adds r0, r1, 0
- cmp r1, 0
- bge _081832A4
- adds r0, 0x7F
-_081832A4:
- asrs r0, 7
- lsls r0, 7
- subs r0, r1, r0
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x4
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x32]
- adds r0, 0x18
- strh r0, [r4, 0x32]
-_081832BC:
- adds r0, r4, 0
- bl sub_817F70C
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end pokemonanimfunc_59
-
- thumb_func_start sub_81832C8
-sub_81832C8: @ 81832C8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r6, r0, 0
- movs r0, 0
- mov r8, r0
- movs r2, 0x38
- ldrsh r1, [r6, r2]
- movs r2, 0x3A
- ldrsh r0, [r6, r2]
- cmp r1, r0
- ble _0818331A
- mov r0, r8
- strh r0, [r6, 0x26]
- strh r0, [r6, 0x38]
- movs r2, 0x80
- lsls r2, 1
- adds r0, r6, 0
- adds r1, r2, 0
- movs r3, 0
- bl HandleSetAffineData
- ldrh r1, [r6, 0x36]
- movs r2, 0x36
- ldrsh r0, [r6, r2]
- cmp r0, 0x1
- bgt _08183310
- adds r0, r6, 0
- bl sub_817F77C
- ldr r0, =SpriteCB_SetDummyOnAnimEnd
- str r0, [r6, 0x1C]
- b _081833DC
- .pool
-_08183310:
- subs r0, r1, 0x1
- strh r0, [r6, 0x36]
- mov r0, r8
- strh r0, [r6, 0x3C]
- b _081833DC
-_0818331A:
- movs r1, 0x38
- ldrsh r5, [r6, r1]
- lsls r0, r5, 7
- movs r2, 0x3A
- ldrsh r4, [r6, r2]
- adds r1, r4, 0
- bl __divsi3
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r4, 0
- bge _08183334
- adds r4, 0x3
-_08183334:
- asrs r1, r4, 2
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 24
- lsrs r0, 24
- cmp r5, r1
- blt _08183358
- cmp r5, r0
- bge _08183358
- ldrh r0, [r6, 0x3C]
- adds r0, 0x33
- strh r0, [r6, 0x3C]
- movs r1, 0xFF
- mov r8, r1
- ands r1, r0
- mov r8, r1
-_08183358:
- movs r1, 0x30
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _0818337C
- lsls r4, r2, 16
- asrs r0, r4, 16
- movs r1, 0x10
- bl Sin
- ldr r2, =0xffffff00
- adds r1, r2, 0
- subs r1, r0
- lsls r1, 16
- lsrs r1, 16
- mov r9, r1
- b _08183392
- .pool
-_0818337C:
- lsls r4, r2, 16
- asrs r0, r4, 16
- movs r1, 0x10
- bl Sin
- movs r1, 0x80
- lsls r1, 1
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
-_08183392:
- adds r7, r4, 0
- ldrh r4, [r6, 0x34]
- lsls r4, 24
- lsrs r4, 24
- mov r5, r8
- adds r0, r4, 0
- movs r1, 0x5
- bl __udivsi3
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl Sin
- adds r5, r0, 0
- asrs r0, r7, 16
- adds r1, r4, 0
- bl Sin
- movs r1, 0x80
- lsls r1, 1
- adds r2, r1, 0
- subs r2, r5
- subs r2, r0
- mov r0, r9
- lsls r1, r0, 16
- asrs r1, 16
- lsls r2, 16
- asrs r2, 16
- adds r0, r6, 0
- movs r3, 0
- bl SetAffineData
- ldrh r0, [r6, 0x38]
- adds r0, 0x1
- strh r0, [r6, 0x38]
-_081833DC:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81832C8
-
- thumb_func_start pokemonanimfunc_5A
-pokemonanimfunc_5A: @ 81833E8
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r0, 0x32
- ldrsh r6, [r5, r0]
- cmp r6, 0
- bne _0818340A
- movs r4, 0x1
- strh r4, [r5, 0x32]
- adds r0, r5, 0
- bl HandleStartAffineAnim
- strh r4, [r5, 0x36]
- movs r0, 0x28
- strh r0, [r5, 0x3A]
- strh r0, [r5, 0x34]
- strh r6, [r5, 0x38]
- strh r6, [r5, 0x3C]
-_0818340A:
- adds r0, r5, 0
- bl sub_81832C8
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end pokemonanimfunc_5A
-
- thumb_func_start sub_8183418
-sub_8183418: @ 8183418
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r6, r0, 0
- movs r0, 0
- mov r8, r0
- movs r2, 0x38
- ldrsh r1, [r6, r2]
- movs r2, 0x3A
- ldrsh r0, [r6, r2]
- cmp r1, r0
- ble _0818346A
- mov r0, r8
- strh r0, [r6, 0x38]
- movs r2, 0x80
- lsls r2, 1
- adds r0, r6, 0
- adds r1, r2, 0
- movs r3, 0
- bl HandleSetAffineData
- ldrh r1, [r6, 0x36]
- movs r2, 0x36
- ldrsh r0, [r6, r2]
- cmp r0, 0x1
- bgt _08183460
- adds r0, r6, 0
- bl sub_817F77C
- ldr r0, =SpriteCB_SetDummyOnAnimEnd
- str r0, [r6, 0x1C]
- b _08183538
- .pool
-_08183460:
- subs r0, r1, 0x1
- strh r0, [r6, 0x36]
- mov r0, r8
- strh r0, [r6, 0x3C]
- b _08183538
-_0818346A:
- movs r1, 0x38
- ldrsh r5, [r6, r1]
- lsls r0, r5, 7
- movs r2, 0x3A
- ldrsh r4, [r6, r2]
- adds r1, r4, 0
- bl __divsi3
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- cmp r4, 0
- bge _08183486
- adds r4, 0x3
-_08183486:
- asrs r1, r4, 2
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 24
- lsrs r0, 24
- cmp r5, r1
- blt _081834AC
- cmp r5, r0
- bge _081834AC
- ldrh r0, [r6, 0x3C]
- adds r0, 0x33
- strh r0, [r6, 0x3C]
- movs r1, 0xFF
- mov r8, r1
- mov r2, r8
- ands r2, r0
- mov r8, r2
-_081834AC:
- ldrh r0, [r6, 0x34]
- lsls r0, 24
- lsrs r7, r0, 24
- movs r1, 0x30
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _081834F0
- mov r2, r9
- lsls r0, r2, 16
- asrs r0, 16
- adds r1, r7, 0
- bl Sin
- adds r4, r0, 0
- mov r5, r8
- adds r0, r7, 0
- movs r1, 0x5
- bl __udivsi3
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 23
- adds r0, r5, 0
- bl Sin
- ldr r1, =0xffffff00
- adds r0, r1
- adds r4, r0
- lsls r4, 16
- lsrs r1, r4, 16
- b _08183522
- .pool
-_081834F0:
- mov r4, r8
- adds r0, r7, 0
- movs r1, 0x5
- bl __udivsi3
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 23
- adds r0, r4, 0
- bl Sin
- adds r4, r0, 0
- mov r2, r9
- lsls r0, r2, 16
- asrs r0, 16
- adds r1, r7, 0
- bl Sin
- movs r2, 0x80
- lsls r2, 1
- adds r1, r2, 0
- subs r1, r4
- subs r1, r0
- lsls r1, 16
- lsrs r1, 16
-_08183522:
- lsls r1, 16
- asrs r1, 16
- movs r2, 0x80
- lsls r2, 1
- adds r0, r6, 0
- movs r3, 0
- bl SetAffineData
- ldrh r0, [r6, 0x38]
- adds r0, 0x1
- strh r0, [r6, 0x38]
-_08183538:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8183418
-
- thumb_func_start pokemonanimfunc_5B
-pokemonanimfunc_5B: @ 8183544
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r0, 0x32
- ldrsh r6, [r5, r0]
- cmp r6, 0
- bne _08183566
- movs r4, 0x1
- strh r4, [r5, 0x32]
- adds r0, r5, 0
- bl HandleStartAffineAnim
- strh r4, [r5, 0x36]
- movs r0, 0x28
- strh r0, [r5, 0x3A]
- strh r0, [r5, 0x34]
- strh r6, [r5, 0x38]
- strh r6, [r5, 0x3C]
-_08183566:
- adds r0, r5, 0
- bl sub_8183418
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end pokemonanimfunc_5B
-
- thumb_func_start sub_8183574
-sub_8183574: @ 8183574
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r4, r0, 0
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldrh r0, [r4, 0x3A]
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r3, =gUnknown_0860AA80
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- lsls r1, r0, 1
- adds r0, r1, r3
- ldrb r5, [r0]
- adds r2, r5, 0
- cmp r5, 0xFF
- beq _081835A6
- ldrh r0, [r4, 0x3C]
- lsls r0, 24
- lsrs r5, r0, 24
-_081835A6:
- adds r0, r3, 0x1
- adds r0, r1, r0
- ldrb r6, [r0]
- movs r7, 0
- cmp r2, 0xFE
- beq _081835C2
- mov r1, r9
- subs r0, r6, r1
- muls r0, r5
- adds r1, r6, 0
- bl __divsi3
- lsls r0, 24
- lsrs r7, r0, 24
-_081835C2:
- cmp r5, 0xFF
- bne _081835D8
- ldr r0, =SpriteCB_SetDummyOnAnimEnd
- str r0, [r4, 0x1C]
- movs r0, 0
- strh r0, [r4, 0x26]
- b _0818360A
- .pool
-_081835D8:
- mov r1, r8
- adds r1, 0xC0
- adds r0, r1, 0
- asrs r0, 8
- lsls r0, 8
- subs r0, r1, r0
- adds r1, r7, 0
- bl Sin
- adds r0, r7
- strh r0, [r4, 0x26]
- cmp r9, r6
- bne _081835FC
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- strh r0, [r4, 0x38]
- movs r0, 0
- b _08183608
-_081835FC:
- ldrh r0, [r4, 0x2E]
- ldrh r1, [r4, 0x32]
- adds r0, r1
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x3A]
- adds r0, 0x1
-_08183608:
- strh r0, [r4, 0x3A]
-_0818360A:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8183574
+
thumb_func_start pokemonanimfunc_5C
pokemonanimfunc_5C: @ 8183618
diff --git a/src/pokemon_animation.c b/src/pokemon_animation.c
index 87949e88b..1496069df 100644
--- a/src/pokemon_animation.c
+++ b/src/pokemon_animation.c
@@ -1071,14 +1071,13 @@ void pokemonanimfunc_02(struct Sprite *sprite)
}
else
{
- s8 var;
-
+ s8 sign;
if (!(sprite->data[2] & 1))
- var = 1;
+ sign = 1;
else
- var = -1;
+ sign = -1;
- sprite->pos2.x = Sin((sprite->data[2] * 128 / 40) % 256, 6) * var;
+ sprite->pos2.x = Sin((sprite->data[2] * 128 / 40) % 256, 6) * sign;
}
sprite->data[2]++;
@@ -1427,19 +1426,19 @@ void pokemonanimfunc_11(struct Sprite *sprite)
}
else
{
- s8 var;
+ s8 sign;
s32 index, amplitude;
if (!(sprite->data[2] & 1))
- var = 1;
+ sign = 1;
else
- var = -1;
+ sign = -1;
amplitude = Sin(sprite->data[2] / 4, 8);
index = sprite->data[2] % 256;
- sprite->pos2.y = Sin(index, amplitude) * var;
- sprite->pos2.x = Cos(index, amplitude) * var;
+ sprite->pos2.y = Sin(index, amplitude) * sign;
+ sprite->pos2.x = Cos(index, amplitude) * sign;
}
sprite->data[2] += 9;
@@ -3132,3 +3131,1066 @@ void sub_8181FC0(struct Sprite *sprite)
HandleSetAffineData(sprite, 0x100, 0x100, sprite->data[7] << 8);
sub_817F70C(sprite);
}
+
+void pokemonanimfunc_37(struct Sprite *sprite)
+{
+ u16 rotation;
+
+ if (sprite->data[2] == 0)
+ {
+ HandleStartAffineAnim(sprite);
+ sprite->data[2]++;
+ sprite->data[7] = 0;
+ }
+
+ sub_817F70C(sprite);
+ if (sprite->data[7] > 255)
+ {
+ sprite->pos2.x = 0;
+ sprite->pos2.y = 0;
+ sprite->data[7] = 0;
+ sub_817F77C(sprite);
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ }
+ else
+ {
+ sprite->data[7] += 16;
+ sprite->pos2.x = -(Sin(sprite->data[7] % 128, 8));
+ sprite->pos2.y = -(Sin(sprite->data[7] % 128, 8));
+ }
+
+ rotation = Sin(sprite->data[7] % 128, 16);
+ HandleSetAffineData(sprite, 0x100, 0x100, rotation << 8);
+ sub_817F70C(sprite);
+}
+
+void sub_81820FC(struct Sprite *sprite);
+void sub_818216C(struct Sprite *sprite);
+void sub_81821CC(struct Sprite *sprite);
+void sub_8182248(struct Sprite *sprite);
+
+void pokemonanimfunc_38(struct Sprite *sprite)
+{
+ HandleStartAffineAnim(sprite);
+ sprite->data[7] = 0;
+ sprite->data[4] = 0;
+ sprite->callback = sub_81820FC;
+}
+
+void sub_81820FC(struct Sprite *sprite)
+{
+ sub_817F70C(sprite);
+ if (sprite->data[7] > 24)
+ {
+ if (++sprite->data[4] > 4)
+ {
+ sprite->data[4] = 0;
+ sprite->callback = sub_818216C;
+ }
+ }
+ else
+ {
+ sprite->data[7] += 2;
+ sprite->pos2.x = Sin(sprite->data[7], 8);
+ sprite->pos2.y = -(Sin(sprite->data[7], 8));
+ }
+
+ HandleSetAffineData(sprite, 0x100, 0x100, -(sprite->data[7]) << 8);
+ sub_817F70C(sprite);
+}
+
+void sub_818216C(struct Sprite *sprite)
+{
+ sub_817F70C(sprite);
+ if (sprite->data[7] > 32)
+ {
+ sprite->data[6] = 1;
+ sprite->callback = sub_81821CC;
+ }
+ else
+ {
+ sprite->data[7] += 2;
+ sprite->pos2.x = Sin(sprite->data[7], 8);
+ sprite->pos2.y = -(Sin(sprite->data[7], 8));
+ }
+
+ HandleSetAffineData(sprite, 0x100, 0x100, -(sprite->data[7]) << 8);
+ sub_817F70C(sprite);
+}
+
+void sub_81821CC(struct Sprite *sprite)
+{
+ sub_817F70C(sprite);
+ sprite->data[7] += (sprite->data[6] * 4);
+ if (sprite->data[5] > 9)
+ {
+ sprite->data[7] = 32;
+ sprite->callback = sub_8182248;
+ }
+
+ sprite->pos2.x = Sin(sprite->data[7], 8);
+ sprite->pos2.y = -(Sin(sprite->data[7], 8));
+ if (sprite->data[7] <= 28 || sprite->data[7] >= 36)
+ {
+ sprite->data[6] *= -1;
+ sprite->data[5]++;
+ }
+
+ HandleSetAffineData(sprite, 0x100, 0x100, -(sprite->data[7]) << 8);
+ sub_817F70C(sprite);
+}
+
+void sub_8182248(struct Sprite *sprite)
+{
+ sub_817F70C(sprite);
+ if (sprite->data[7] <= 0)
+ {
+ sprite->data[7] = 0;
+ sub_817F77C(sprite);
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ }
+ else
+ {
+ sprite->data[7] -= 2;
+ sprite->pos2.x = Sin(sprite->data[7], 8);
+ sprite->pos2.y = -(Sin(sprite->data[7], 8));
+ }
+
+ HandleSetAffineData(sprite, 0x100, 0x100, -(sprite->data[7]) << 8);
+ sub_817F70C(sprite);
+}
+
+void pokemonanimfunc_39(struct Sprite *sprite)
+{
+ sub_817F70C(sprite);
+ if (sprite->data[2] > 40)
+ {
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ sprite->pos2.x = 0;
+ }
+ else
+ {
+ s8 sign;
+ if (!(sprite->data[2] & 1))
+ sign = 1;
+ else
+ sign = -1;
+
+ if ((sprite->data[2] % 4) / 2 == 0)
+ {
+ sprite->pos2.x = Sin((sprite->data[2] * 128 / 40) % 256, 16) * sign;
+ sprite->pos2.y = -(sprite->pos2.x);
+ }
+ else
+ {
+ sprite->pos2.x = -(Sin((sprite->data[2] * 128 / 40) % 256, 16)) * sign;
+ sprite->pos2.y = sprite->pos2.x;
+ }
+ }
+
+ sprite->data[2]++;
+ sub_817F70C(sprite);
+}
+
+void pokemonanimfunc_3A(struct Sprite *sprite)
+{
+ sub_817F70C(sprite);
+ if (sprite->data[2] == 0)
+ {
+ HandleStartAffineAnim(sprite);
+ sprite->data[5] = 0;
+ sprite->data[6] = 0;
+ sprite->data[7] = 0;
+ sprite->data[2]++;
+ }
+
+ if (sprite->data[6] > 0)
+ {
+ sprite->data[6]--;
+ if (sprite->data[5] != 3)
+ {
+ s16 scale = (8 * sprite->data[6]) / 20;
+ scale = Sin(sprite->data[7] - scale, 64);
+ HandleSetAffineData(sprite, 0x100 - scale, 0x100 - scale, 0);
+ }
+ }
+ else
+ {
+ s16 var;
+
+ if (sprite->data[5] == 3)
+ {
+ if (sprite->data[7] > 63)
+ {
+ sprite->data[7] = 64;
+ HandleSetAffineData(sprite, 0x100, 0x100, 0);
+ sub_817F77C(sprite);
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ }
+ var = Cos(sprite->data[7], 64);
+ }
+ else
+ {
+ var = Sin(sprite->data[7], 64);
+ if (sprite->data[7] > 63)
+ {
+ sprite->data[5] = 3;
+ sprite->data[6] = 10;
+ sprite->data[7] = 0;
+ }
+ else
+ {
+ if (var > 48 && sprite->data[5] == 1)
+ {
+ sprite->data[5] = 2;
+ sprite->data[6] = 20;
+ }
+ else if (var > 16 && sprite->data[5] == 0)
+ {
+ sprite->data[5] = 1;
+ sprite->data[6] = 20;
+ }
+ }
+ }
+
+ sprite->data[7] += 2;
+ HandleSetAffineData(sprite, 0x100 - var, 0x100 - var, 0);
+ }
+
+ sub_817F70C(sprite);
+}
+
+void pokemonanimfunc_3B(struct Sprite *sprite)
+{
+ if (sprite->data[2] == 0)
+ {
+ HandleStartAffineAnim(sprite);
+ sprite->data[2]++;
+ sprite->data[7] = 0;
+ }
+
+ if (sprite->data[7] > 512)
+ {
+ sprite->pos2.y = 0;
+ HandleSetAffineData(sprite, 0x100, 0x100, 0);
+ sub_817F77C(sprite);
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ }
+ else
+ {
+ s16 yScale;
+
+ sprite->pos2.y = Sin(sprite->data[7] % 256, 8);
+ sprite->data[7] += 8;
+ yScale = Sin(sprite->data[7] % 128, 96);
+ HandleSetAffineData(sprite, 0x100, yScale + 0x100, 0);
+ }
+}
+
+void pokemonanimfunc_3C(struct Sprite *sprite)
+{
+ if (sprite->data[2] == 0)
+ {
+ HandleStartAffineAnim(sprite);
+ sprite->data[2]++;
+ sprite->data[7] = 0;
+ }
+
+ if (sprite->data[7] > 256)
+ {
+ sprite->pos2.y = 0;
+ HandleSetAffineData(sprite, 0x100, 0x100, 0);
+ sub_817F77C(sprite);
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ }
+ else
+ {
+ s16 yScale;
+
+ sprite->pos2.y = Sin(sprite->data[7], 16);
+ sprite->data[7] += 4;
+ yScale = Sin((sprite->data[7] % 64) * 2, 128);
+ HandleSetAffineData(sprite, 0x100, yScale + 0x100, 0);
+ }
+}
+
+void sub_81825F8(struct Sprite *sprite);
+void sub_8182648(struct Sprite *sprite);
+void sub_81826F8(struct Sprite *sprite);
+
+void pokemonanimfunc_3D(struct Sprite *sprite)
+{
+ HandleStartAffineAnim(sprite);
+ sprite->callback = sub_81825F8;
+ sprite->data[7] = 0;
+}
+
+void sub_81825F8(struct Sprite *sprite)
+{
+ s16 yScale;
+
+ sprite->data[7] += 8;
+ if (sprite->data[7] > 63)
+ {
+ sprite->data[7] = 0;
+ sprite->data[6] = 0;
+ sprite->callback = sub_8182648;
+ yScale = Sin(64, 128); // 128 * 1 = 128
+ }
+ else
+ {
+ yScale = Sin(sprite->data[7], 128);
+ }
+
+ HandleSetAffineData(sprite, 0x100, 0x100 + yScale, 0);
+}
+
+void sub_8182648(struct Sprite *sprite)
+{
+ s16 yScale;
+
+ sprite->data[7] += 4;
+ if (sprite->data[7] > 95)
+ {
+ yScale = Cos(0, 128); // 128 * (-1) = -128
+ sprite->data[7] = 0;
+ sprite->data[6]++;
+ }
+ else
+ {
+ s16 sign, index;
+
+ sprite->pos2.y = -(sprite->data[6] * 4) - Sin(sprite->data[7], 8);
+ if (sprite->data[7] > 63)
+ {
+ sign = -1;
+ index = sprite->data[7] - 64;
+ }
+ else
+ {
+ sign = 1;
+ index = 0;
+ }
+
+ yScale = Cos((index * 2) + sprite->data[7], 128) * sign;
+ }
+
+ HandleSetAffineData(sprite, 0x100, 0x100 + yScale, 0);
+ if (sprite->data[6] == 3)
+ {
+ sprite->data[7] = 0;
+ sprite->callback = sub_81826F8;
+ }
+}
+
+void sub_81826F8(struct Sprite *sprite)
+{
+ s16 yScale;
+
+ sprite->data[7] += 8;
+ yScale = Cos(sprite->data[7], 128);
+ sprite->pos2.y = -(Cos(sprite->data[7], 12));
+ if (sprite->data[7] > 63)
+ {
+ sub_817F77C(sprite);
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ sprite->pos2.y = 0;
+ HandleSetAffineData(sprite, 0x100, 0x100, 0);
+ }
+
+ HandleSetAffineData(sprite, 0x100, 0x100 + yScale, 0);
+}
+
+void sub_8182764(struct Sprite *sprite)
+{
+ if (sprite->data[7] > sprite->data[5])
+ {
+ sprite->pos2.x = 0;
+ sub_817F77C(sprite);
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ HandleSetAffineData(sprite, 0x100, 0x100, 0);
+ }
+ else
+ {
+ s16 xScale;
+
+ sprite->pos2.x = Sin(sprite->data[7] % 256, sprite->data[4]);
+ sprite->data[7] += sprite->data[6];
+ xScale = Sin(sprite->data[7] % 128, 96);
+ HandleSetAffineData(sprite, 0x100 + xScale, 0x100, 0);
+ }
+}
+
+void pokemonanimfunc_3E(struct Sprite *sprite)
+{
+ if (sprite->data[2] == 0)
+ {
+ HandleStartAffineAnim(sprite);
+ sprite->data[2]++;
+ sprite->data[7] = 0;
+ sprite->data[6] = 8;
+ sprite->data[5] = 512;
+ sprite->data[4] = 8;
+ }
+
+ sub_8182764(sprite);
+}
+
+void sub_8182830(struct Sprite *sprite)
+{
+ if (sprite->data[7] > sprite->data[5])
+ {
+ sprite->pos2.x = 0;
+ sub_817F77C(sprite);
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ HandleSetAffineData(sprite, 0x100, 0x100, 0);
+ }
+ else
+ {
+ s16 xScale;
+
+ sprite->pos2.x = Sin(sprite->data[7] % 256, sprite->data[4]);
+ sprite->data[7] += sprite->data[6];
+ xScale = Sin((sprite->data[7] % 64) * 2, 128);
+ HandleSetAffineData(sprite, 0x100 + xScale, 0x100, 0);
+ }
+}
+
+void pokemonanimfunc_3F(struct Sprite *sprite)
+{
+ if (sprite->data[2] == 0)
+ {
+ HandleStartAffineAnim(sprite);
+ sprite->data[2]++;
+ sprite->data[7] = 0;
+ sprite->data[6] = 4;
+ sprite->data[5] = 256;
+ sprite->data[4] = 16;
+ }
+
+ sub_8182830(sprite);
+}
+
+void pokemonanimfunc_40(struct Sprite *sprite)
+{
+ sub_817F70C(sprite);
+ if (sprite->data[2] == 0)
+ {
+ HandleStartAffineAnim(sprite);
+ sprite->data[2]++;
+ sprite->data[7] = 0;
+ }
+
+ if (sprite->data[7] > 512)
+ {
+ sprite->pos2.x = 0;
+ sub_817F77C(sprite);
+ HandleSetAffineData(sprite, 0x100, 0x100, 0);
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ }
+ else
+ {
+ s16 scale;
+
+ sprite->pos2.x = Sin(sprite->data[7] % 256, 8);
+ sprite->data[7] += 8;
+ scale = Sin(sprite->data[7] % 128, 96);
+ HandleSetAffineData(sprite, 0x100 + scale, 0x100 + scale, 0);
+ }
+
+ sub_817F70C(sprite);
+}
+
+void pokemonanimfunc_41(struct Sprite *sprite)
+{
+ sub_817F70C(sprite);
+ if (sprite->data[2] == 0)
+ {
+ HandleStartAffineAnim(sprite);
+ sprite->data[2]++;
+ sprite->data[7] = 0;
+ }
+
+ if (sprite->data[7] > 512)
+ {
+ sprite->pos2.x = 0;
+ sub_817F77C(sprite);
+ HandleSetAffineData(sprite, 0x100, 0x100, 0);
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ }
+ else
+ {
+ s16 scale;
+
+ sprite->pos2.x = -(Sin((sprite->data[7] % 256) / 2, 16));
+ sprite->data[7] += 8;
+ scale = -(Sin((sprite->data[7] % 256) / 2, 64));
+ HandleSetAffineData(sprite, 0x100 + scale, 0x100 + scale, 0);
+ }
+
+ sub_817F70C(sprite);
+}
+
+void pokemonanimfunc_42(struct Sprite *sprite)
+{
+ sub_817F70C(sprite);
+ if (sprite->data[2] == 0)
+ {
+ HandleStartAffineAnim(sprite);
+ sprite->data[2]++;
+ sprite->data[7] = 0;
+ }
+
+ if (sprite->data[7] > 512)
+ {
+ sprite->pos2.x = 0;
+ sub_817F77C(sprite);
+ HandleSetAffineData(sprite, 0x100, 0x100, 0);
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ }
+ else
+ {
+ s16 scale;
+
+ sprite->pos2.x = -(Sin(sprite->data[7] % 256 , 8));
+ sprite->data[7] += 8;
+ scale = Sin((sprite->data[7] % 256) / 2, 96);
+ HandleSetAffineData(sprite, 0x100 + scale, 0x100 + scale, 0);
+ }
+
+ sub_817F70C(sprite);
+}
+
+void pokemonanimfunc_43(struct Sprite *sprite)
+{
+ sub_817F70C(sprite);
+ if (sprite->data[2] > 2048)
+ {
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ sprite->data[6] = 0;
+ }
+ else
+ {
+ s16 caseVar = (sprite->data[2] / 512) % 4;
+ switch (caseVar)
+ {
+ case 0:
+ sprite->pos2.x = -(sprite->data[2] % 512 * 16) / 512;
+ break;
+ case 1:
+ sprite->pos2.x = (sprite->data[2] % 512 / 32) - 16;
+ break;
+ case 2:
+ sprite->pos2.x = (sprite->data[2] % 512) / 32;
+ break;
+ case 3:
+ sprite->pos2.x = -(sprite->data[2] % 512 * 16) / 512 + 16;
+ break;
+ }
+
+ sprite->pos2.y = -(Sin(sprite->data[2] % 128, 4));
+ sprite->data[2] += 24;
+ }
+
+ sub_817F70C(sprite);
+}
+
+void pokemonanimfunc_44(struct Sprite *sprite)
+{
+ sub_817F70C(sprite);
+ if (sprite->data[2] == 0)
+ {
+ sprite->data[6] = 0;
+ sprite->data[7] = 64;
+ sprite->data[2]++;
+ }
+
+ sprite->data[7] += 8;
+ if (sprite->data[6] == 4)
+ {
+ if (sprite->data[7] > 63)
+ {
+ sprite->data[7] = 0;
+ sprite->data[6]++;
+ }
+ }
+ else
+ {
+ if (sprite->data[7] > 127)
+ {
+ sprite->data[7] = 0;
+ sprite->data[6]++;
+ }
+ }
+
+ switch (sprite->data[6])
+ {
+ case 1:
+ sprite->pos2.x = -(Cos(sprite->data[7], 8));
+ sprite->pos2.y = Sin(sprite->data[7], 8) - 8;
+ break;
+ case 2:
+ sprite->pos2.x = Sin(sprite->data[7] + 128, 8) + 8;
+ sprite->pos2.y = -(Cos(sprite->data[7], 8));
+ break;
+ case 3:
+ sprite->pos2.x = Cos(sprite->data[7], 8);
+ sprite->pos2.y = Sin(sprite->data[7] + 128, 8) + 8;
+ break;
+ case 0:
+ case 4:
+ sprite->pos2.x = Sin(sprite->data[7], 8) - 8;
+ sprite->pos2.y = Cos(sprite->data[7], 8);
+ break;
+ default:
+ sprite->pos2.x = 0;
+ sprite->pos2.y = 0;
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ break;
+ }
+
+ sub_817F70C(sprite);
+}
+
+void pokemonanimfunc_45(struct Sprite *sprite)
+{
+ sprite->data[0] = 32;
+ sub_8180714(sprite);
+ sprite->callback = sub_8180714;
+}
+
+void pokemonanimfunc_46(struct Sprite *sprite)
+{
+ sprite->data[0] = 80;
+ sub_817F8FC(sprite);
+ sprite->callback = sub_817F8FC;
+}
+
+void pokemonanimfunc_47(struct Sprite *sprite)
+{
+ sprite->data[0] = 80;
+ sub_817F978(sprite);
+ sprite->callback = sub_817F978;
+}
+
+void pokemonanimfunc_48(struct Sprite *sprite)
+{
+ u8 id = sprite->data[0] = sub_817F758();
+
+ gUnknown_03001240[id].field_6 = 2048;
+ gUnknown_03001240[id].field_8 = sprite->data[6];
+ sub_8180900(sprite);
+ sprite->callback = sub_8180900;
+}
+
+void pokemonanimfunc_49(struct Sprite *sprite)
+{
+ sprite->data[6] = 1;
+ pokemonanimfunc_05(sprite);
+}
+
+void pokemonanimfunc_4A(struct Sprite *sprite)
+{
+ sprite->data[6] = 1;
+ pokemonanimfunc_48(sprite);
+}
+
+void pokemonanimfunc_4B(struct Sprite *sprite)
+{
+ if (sprite->data[2] == 0)
+ sprite->data[0] = 0;
+
+ if (sprite->data[0] <= 0)
+ {
+ sub_817FC20(sprite);
+ sprite->data[0] = 1;
+ }
+ else
+ {
+ sprite->data[0]--;
+ }
+}
+
+void pokemonanimfunc_4C(struct Sprite *sprite)
+{
+ sprite->data[0] = 30;
+ sprite->data[7] = 3;
+ sub_817FCDC(sprite);
+ sprite->callback = sub_817FCDC;
+}
+
+void pokemonanimfunc_4D(struct Sprite *sprite)
+{
+ sprite->data[0] = 30;
+ sub_817FD44(sprite);
+ sprite->callback = sub_817FD44;
+}
+
+void pokemonanimfunc_4E(struct Sprite *sprite)
+{
+ u8 id = sprite->data[0] = sub_817F758();
+
+ gUnknown_03001240[id].field_6 = 1024;
+ gUnknown_03001240[id].field_0 = 0;
+ gUnknown_03001240[id].field_4 = 2;
+ sub_817FE30(sprite);
+ sprite->callback = sub_817FE30;
+}
+
+void pokemonanimfunc_4F(struct Sprite *sprite)
+{
+ u8 id = sprite->data[0] = sub_817F758();
+
+ gUnknown_03001240[id].field_6 = 512;
+ gUnknown_03001240[id].field_8 = 3;
+ gUnknown_03001240[id].field_2 = 12;
+ sub_817FFF0(sprite);
+ sprite->callback = sub_817FFF0;
+}
+
+void pokemonanimfunc_50(struct Sprite *sprite)
+{
+ sprite->data[0] = 24;
+ sub_818031C(sprite);
+ sprite->callback = sub_818031C;
+}
+
+void pokemonanimfunc_51(struct Sprite *sprite)
+{
+ sprite->data[0] = 5;
+ sub_81804F8(sprite);
+ sprite->callback = sub_81804F8;
+}
+
+void pokemonanimfunc_52(struct Sprite *sprite)
+{
+ sprite->data[0] = 3;
+ sub_817F9F4(sprite);
+ sprite->callback = sub_817F9F4;
+}
+
+void pokemonanimfunc_53(struct Sprite *sprite)
+{
+ u8 id = sprite->data[0] = sub_817F758();
+
+ gUnknown_03001240[id].field_0 = 60;
+ gUnknown_03001240[id].field_8 = 30;
+ sub_817FF3C(sprite);
+ sprite->callback = sub_817FF3C;
+}
+
+void pokemonanimfunc_54(struct Sprite *sprite)
+{
+ u8 id = sprite->data[0] = sub_817F758();
+
+ gUnknown_03001240[id].field_2 = 1;
+ gUnknown_03001240[id].field_4 = 2;
+ sub_8181214(sprite);
+ sprite->callback = sub_8181214;
+}
+
+void pokemonanimfunc_55(struct Sprite *sprite)
+{
+ u8 id = sprite->data[0] = sub_817F758();
+
+ gUnknown_03001240[id].field_6 = 4;
+ gUnknown_03001240[id].field_4 = 2;
+ sub_8181810(sprite);
+ sprite->callback = sub_8181810;
+}
+
+void pokemonanimfunc_56(struct Sprite *sprite)
+{
+ u8 id = sprite->data[0] = sub_817F758();
+
+ gUnknown_03001240[id].field_8 = 1;
+ gUnknown_03001240[id].field_4 = 2;
+ HandleStartAffineAnim(sprite);
+ sprite->data[3] = 0;
+ sub_8181ABC(sprite);
+ sprite->callback = sub_8181ABC;
+}
+
+void pokemonanimfunc_07(struct Sprite *sprite)
+{
+ u8 id = sprite->data[0] = sub_817F758();
+
+ gUnknown_03001240[id].field_6 = 2;
+ sub_8181CE8(sprite);
+ sprite->callback = sub_8181CE8;
+}
+
+void pokemonanimfunc_08(struct Sprite *sprite)
+{
+ u8 id = sprite->data[0] = sub_817F758();
+
+ gUnknown_03001240[id].field_6 = 4;
+ gUnknown_03001240[id].field_4 = 2;
+ sub_8181CE8(sprite);
+ sprite->callback = sub_8181CE8;
+}
+
+void pokemonanimfunc_0B(struct Sprite *sprite)
+{
+ u8 id = sprite->data[0] = sub_817F758();
+
+ gUnknown_03001240[id].field_8 = 100;
+ sub_81814D4(sprite);
+ sprite->callback = sub_81814D4;
+}
+
+void pokemonanimfunc_0C(struct Sprite *sprite)
+{
+ u8 id = sprite->data[0] = sub_817F758();
+
+ gUnknown_03001240[id].field_8 = 50;
+ gUnknown_03001240[id].field_4 = 2;
+ sub_81814D4(sprite);
+ sprite->callback = sub_81814D4;
+}
+
+void pokemonanimfunc_0D(struct Sprite *sprite)
+{
+ u8 id = sprite->data[0] = sub_817F758();
+
+ gUnknown_03001240[id].field_8 = 100;
+ sub_81815D4(sprite);
+ sprite->callback = sub_81815D4;
+}
+
+void pokemonanimfunc_0E(struct Sprite *sprite)
+{
+ u8 id = sprite->data[0] = sub_817F758();
+
+ gUnknown_03001240[id].field_8 = 50;
+ gUnknown_03001240[id].field_4 = 2;
+ sub_81815D4(sprite);
+ sprite->callback = sub_81815D4;
+}
+
+void sub_8183140(struct Sprite *sprite)
+{
+ s32 counter = sprite->data[2];
+ if (counter > 2304)
+ {
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ sprite->pos2.y = 0;
+ }
+ else
+ {
+ sprite->pos2.y = Sin((counter + 192) % 256, sprite->data[7]) + sprite->data[7];
+ }
+
+ sprite->data[2] += sprite->data[0];
+}
+
+void pokemonanimfunc_57(struct Sprite *sprite)
+{
+ sprite->data[0] = 60;
+ sprite->data[7] = 3;
+ sub_8183140(sprite);
+ sprite->callback = sub_8183140;
+}
+
+void pokemonanimfunc_58(struct Sprite *sprite)
+{
+ sprite->data[0] = 30;
+ sprite->data[7] = 3;
+ sub_8183140(sprite);
+ sprite->callback = sub_8183140;
+}
+
+void pokemonanimfunc_59(struct Sprite *sprite)
+{
+ sub_817F70C(sprite);
+ if (sprite->data[2] > 2048)
+ {
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ sprite->data[6] = 0;
+ }
+ else
+ {
+ s16 divCase = (sprite->data[2] / 512) % 4;
+ switch (divCase)
+ {
+ case 0:
+ sprite->pos2.x = (sprite->data[2] % 512) / 32;
+ break;
+ case 2:
+ sprite->pos2.x = -(sprite->data[2] % 512 * 16) / 512;
+ break;
+ case 1:
+ sprite->pos2.x = -(sprite->data[2] % 512 * 16) / 512 + 16;
+ break;
+ case 3:
+ sprite->pos2.x = (sprite->data[2] % 512) / 32 - 16;
+ break;
+ }
+
+ sprite->pos2.y = Sin(sprite->data[2] % 128, 4);
+ sprite->data[2] += 24;
+ }
+
+ sub_817F70C(sprite);
+}
+
+void sub_81832C8(struct Sprite *sprite)
+{
+ s16 index1 = 0, index2 = 0;
+
+ if (sprite->data[5] > sprite->data[6])
+ {
+ sprite->pos2.y = 0;
+ sprite->data[5] = 0;
+ HandleSetAffineData(sprite, 0x100, 0x100, 0);
+ if (sprite->data[4] <= 1)
+ {
+ sub_817F77C(sprite);
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ }
+ else
+ {
+ sprite->data[4]--;
+ sprite->data[7] = 0;
+ }
+ }
+ else
+ {
+ u8 amplitude, cmpVal1, cmpVal2;
+ s16 xScale, yScale;
+
+ index2 = (sprite->data[5] * 128) / sprite->data[6];
+ cmpVal1 = sprite->data[6] / 4;
+ cmpVal2 = cmpVal1 * 3;
+ if (sprite->data[5] >= cmpVal1 && sprite->data[5] < cmpVal2)
+ {
+ sprite->data[7] += 51;
+ index1 = sprite->data[7] & 0xFF;
+ }
+
+ if (sprite->data[1] == 0)
+ xScale = -0x100 - Sin(index2, 16);
+ else
+ xScale = 0x100 + Sin(index2, 16);
+
+ amplitude = sprite->data[3];
+ yScale = 0x100 - Sin(index2, amplitude) - Sin(index1, amplitude / 5);
+ SetAffineData(sprite, xScale, yScale, 0);
+ sprite->data[5]++;
+ }
+}
+
+void pokemonanimfunc_5A(struct Sprite *sprite)
+{
+ if (sprite->data[2] == 0)
+ {
+ sprite->data[2] = 1;
+ HandleStartAffineAnim(sprite);
+ sprite->data[4] = 1;
+ sprite->data[6] = 40;
+ sprite->data[3] = 40;
+ sprite->data[5] = 0;
+ sprite->data[7] = 0;
+ }
+
+ sub_81832C8(sprite);
+}
+
+void sub_8183418(struct Sprite *sprite)
+{
+ s16 index1 = 0, index2;
+
+ if (sprite->data[5] > sprite->data[6])
+ {
+ sprite->data[5] = 0;
+ HandleSetAffineData(sprite, 0x100, 0x100, 0);
+ if (sprite->data[4] <= 1)
+ {
+ sub_817F77C(sprite);
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ }
+ else
+ {
+ sprite->data[4]--;
+ sprite->data[7] = 0;
+ }
+ }
+ else
+ {
+ u8 amplitude, cmpVal1, cmpVal2;
+ s16 xScale;
+
+ index2 = (sprite->data[5] * 128) / sprite->data[6];
+ cmpVal1 = sprite->data[6] / 4;
+ cmpVal2 = cmpVal1 * 3;
+ if (sprite->data[5] >= cmpVal1 && sprite->data[5] < cmpVal2)
+ {
+ sprite->data[7] += 51;
+ index1 = sprite->data[7] & 0xFF;
+ }
+
+ amplitude = sprite->data[3];
+
+ if (sprite->data[1] == 0)
+ xScale = -0x100 + Sin(index2, amplitude) + Sin(index1, amplitude / 5 * 2);
+ else
+ xScale = 0x100 - Sin(index2, amplitude) - Sin(index1, amplitude / 5 * 2);
+
+ SetAffineData(sprite, xScale, 0x100, 0);
+ sprite->data[5]++;
+ }
+}
+
+void pokemonanimfunc_5B(struct Sprite *sprite)
+{
+ if (sprite->data[2] == 0)
+ {
+ sprite->data[2] = 1;
+ HandleStartAffineAnim(sprite);
+ sprite->data[4] = 1;
+ sprite->data[6] = 40;
+ sprite->data[3] = 40;
+ sprite->data[5] = 0;
+ sprite->data[7] = 0;
+ }
+
+ sub_8183418(sprite);
+}
+
+void sub_8183574(struct Sprite *sprite)
+{
+ u8 var6, var7;
+ u8 var8 = sprite->data[2];
+ u8 var9 = sprite->data[6];
+ u8 var5 = gUnknown_0860AA80[sprite->data[5]][0];
+ u8 var2 = var5;
+ if (var5 != 0xFF)
+ var5 = sprite->data[7];
+ else
+ var5 = 0xFF; // needed to match
+
+ var6 = gUnknown_0860AA80[sprite->data[5]][1];
+ var7 = 0;
+ if (var2 != 0xFE)
+ var7 = (var6 - var9) * var5 / var6;
+
+ if (var5 == 0xFF)
+ {
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ sprite->pos2.y = 0;
+ }
+ else
+ {
+ sprite->pos2.y = Sin((var8 + 192) % 256, var7) + var7;
+ if (var9 == var6)
+ {
+ sprite->data[5]++;
+ sprite->data[6] = 0;
+ }
+ else
+ {
+ sprite->data[2] += sprite->data[0];
+ sprite->data[6]++;
+ }
+ }
+}