diff options
-rw-r--r-- | asm/pokemon_animation.s | 2337 | ||||
-rw-r--r-- | src/pokemon_animation.c | 827 |
2 files changed, 1011 insertions, 2153 deletions
diff --git a/asm/pokemon_animation.s b/asm/pokemon_animation.s index 7f0d24cd0..b45d5258b 100644 --- a/asm/pokemon_animation.s +++ b/asm/pokemon_animation.s @@ -7,1963 +7,6 @@ - - thumb_func_start pokemonanimfunc_01 -pokemonanimfunc_01: @ 817F808 - push {r4-r6,lr} - adds r6, r0, 0 - movs r1, 0x32 - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _0817F81A - adds r0, r6, 0 - bl sub_817F670 -_0817F81A: - movs r1, 0x32 - ldrsh r0, [r6, r1] - cmp r0, 0x28 - ble _0817F840 - movs r2, 0x80 - lsls r2, 1 - adds r0, r6, 0 - adds r1, r2, 0 - movs r3, 0 - bl sub_817F6D4 - adds r0, r6, 0 - bl sub_817F77C - ldr r0, =sub_8184D88 - str r0, [r6, 0x1C] - b _0817F88C - .pool -_0817F840: - movs r1, 0x32 - ldrsh r0, [r6, r1] - lsls r0, 9 - movs r1, 0x28 - bl __divsi3 - adds r4, r0, 0 - cmp r0, 0 - bge _0817F854 - adds r4, 0xFF -_0817F854: - asrs r4, 8 - lsls r4, 8 - subs r4, r0, r4 - lsls r4, 16 - asrs r4, 16 - adds r0, r4, 0 - movs r1, 0x20 - bl Sin - movs r1, 0x80 - lsls r1, 1 - adds r5, r1, 0 - adds r0, r5 - strh r0, [r6, 0x36] - adds r0, r4, 0 - movs r1, 0x20 - bl Cos - adds r0, r5 - strh r0, [r6, 0x38] - movs r0, 0x36 - ldrsh r1, [r6, r0] - movs r0, 0x38 - ldrsh r2, [r6, r0] - adds r0, r6, 0 - movs r3, 0 - bl sub_817F6D4 -_0817F88C: - ldrh r0, [r6, 0x32] - adds r0, 0x1 - strh r0, [r6, 0x32] - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_01 - - thumb_func_start pokemonanimfunc_02 -pokemonanimfunc_02: @ 817F898 - push {r4,r5,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0x32] - movs r2, 0x32 - ldrsh r0, [r4, r2] - cmp r0, 0x28 - ble _0817F8B4 - ldr r0, =sub_8184D88 - str r0, [r4, 0x1C] - movs r0, 0 - b _0817F8EE - .pool -_0817F8B4: - movs r0, 0x1 - ands r0, r1 - movs r5, 0xFF - cmp r0, 0 - bne _0817F8C0 - movs r5, 0x1 -_0817F8C0: - movs r1, 0x32 - ldrsh r0, [r4, r1] - lsls r0, 7 - movs r1, 0x28 - bl __divsi3 - adds r1, r0, 0 - cmp r1, 0 - bge _0817F8D4 - adds r0, 0xFF -_0817F8D4: - asrs r0, 8 - lsls r0, 8 - subs r0, r1, r0 - lsls r0, 16 - asrs r0, 16 - movs r1, 0x6 - bl Sin - lsls r1, r5, 24 - asrs r1, 24 - adds r2, r0, 0 - muls r2, r1 - adds r0, r2, 0 -_0817F8EE: - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_02 - - thumb_func_start sub_817F8FC -sub_817F8FC: @ 817F8FC - push {r4,lr} - adds r4, r0, 0 - bl sub_817F70C - movs r0, 0x32 - ldrsh r1, [r4, r0] - movs r2, 0x2E - ldrsh r0, [r4, r2] - cmp r1, r0 - ble _0817F91C - ldr r0, =sub_8184D88 - str r0, [r4, 0x1C] - movs r0, 0 - b _0817F946 - .pool -_0817F91C: - movs r0, 0x32 - ldrsh r1, [r4, r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 7 - movs r2, 0x2E - ldrsh r1, [r4, r2] - bl __divsi3 - adds r1, r0, 0 - cmp r1, 0 - bge _0817F936 - adds r0, 0xFF -_0817F936: - asrs r0, 8 - lsls r0, 8 - subs r0, r1, r0 - lsls r0, 16 - asrs r0, 16 - movs r1, 0x6 - bl Sin -_0817F946: - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - adds r0, r4, 0 - bl sub_817F70C - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_817F8FC - - thumb_func_start pokemonanimfunc_03 -pokemonanimfunc_03: @ 817F95C - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x28 - 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_03 - - thumb_func_start sub_817F978 -sub_817F978: @ 817F978 - push {r4,lr} - adds r4, r0, 0 - bl sub_817F70C - movs r0, 0x32 - ldrsh r1, [r4, r0] - movs r2, 0x2E - ldrsh r0, [r4, r2] - cmp r1, r0 - ble _0817F998 - ldr r0, =sub_8184D88 - str r0, [r4, 0x1C] - movs r0, 0 - b _0817F9C4 - .pool -_0817F998: - movs r0, 0x32 - ldrsh r1, [r4, r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 7 - movs r2, 0x2E - ldrsh r1, [r4, r2] - bl __divsi3 - adds r1, r0, 0 - cmp r1, 0 - bge _0817F9B2 - adds r0, 0xFF -_0817F9B2: - asrs r0, 8 - lsls r0, 8 - subs r0, r1, r0 - lsls r0, 16 - asrs r0, 16 - movs r1, 0x6 - bl Sin - negs r0, r0 -_0817F9C4: - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - adds r0, r4, 0 - bl sub_817F70C - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_817F978 - - thumb_func_start pokemonanimfunc_04 -pokemonanimfunc_04: @ 817F9D8 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x28 - 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_04 - - thumb_func_start sub_817F9F4 -sub_817F9F4: @ 817F9F4 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x32 - ldrsh r1, [r4, r0] - movs r0, 0xC0 - lsls r0, 1 - cmp r1, r0 - ble _0817FA14 - ldr r0, =sub_8184D88 - str r0, [r4, 0x1C] - movs r0, 0 - strh r0, [r4, 0x24] - b _0817FA5E - .pool -_0817FA14: - adds r0, r1, 0 - cmp r1, 0 - bge _0817FA1C - adds r0, 0x7F -_0817FA1C: - asrs r2, r0, 7 - lsls r0, r2, 16 - asrs r0, 16 - cmp r0, 0 - blt _0817FA60 - cmp r0, 0x1 - ble _0817FA48 - cmp r0, 0x3 - bgt _0817FA60 - ldr r2, =0xffffff00 - adds r1, r2 - lsls r0, r1, 16 - asrs r0, 16 - movs r1, 0x2E - ldrsh r2, [r4, r1] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 16 - b _0817FA56 - .pool -_0817FA48: - lsls r0, r2, 7 - subs r0, r1, r0 - lsls r0, 16 - asrs r0, 16 - movs r2, 0x2E - ldrsh r1, [r4, r2] - lsls r1, 17 -_0817FA56: - asrs r1, 16 - bl Sin - negs r0, r0 -_0817FA5E: - strh r0, [r4, 0x26] -_0817FA60: - ldrh r0, [r4, 0x32] - adds r0, 0xC - strh r0, [r4, 0x32] - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_817F9F4 - - thumb_func_start pokemonanimfunc_1E -pokemonanimfunc_1E: @ 817FA6C - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x4 - 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_1E - - thumb_func_start pokemonanimfunc_06 -pokemonanimfunc_06: @ 817FA88 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x32 - ldrsh r2, [r4, r0] - movs r0, 0xC0 - lsls r0, 2 - cmp r2, r0 - ble _0817FAA8 - ldr r0, =sub_8184D88 - str r0, [r4, 0x1C] - movs r0, 0 - strh r0, [r4, 0x24] - b _0817FB56 - .pool -_0817FAA8: - adds r0, r2, 0 - cmp r2, 0 - bge _0817FAB0 - adds r0, 0x7F -_0817FAB0: - lsls r0, 9 - asrs r0, 16 - cmp r0, 0x5 - bhi _0817FB3C - lsls r0, 2 - ldr r1, =_0817FAC8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0817FAC8: - .4byte _0817FAE0 - .4byte _0817FAE0 - .4byte _0817FAE4 - .4byte _0817FAE8 - .4byte _0817FB04 - .4byte _0817FB1E -_0817FAE0: - movs r0, 0 - b _0817FB3A -_0817FAE4: - movs r2, 0 - b _0817FB3C -_0817FAE8: - adds r0, r2, 0 - cmp r2, 0 - bge _0817FAF0 - adds r0, 0x7F -_0817FAF0: - asrs r0, 7 - lsls r0, 7 - subs r0, r2, r0 - lsls r0, 3 - negs r0, r0 - cmp r0, 0 - bge _0817FB00 - adds r0, 0x7F -_0817FB00: - asrs r0, 7 - b _0817FB3A -_0817FB04: - adds r0, r2, 0 - cmp r2, 0 - bge _0817FB0C - adds r0, 0x7F -_0817FB0C: - asrs r0, 7 - lsls r0, 7 - subs r0, r2, r0 - cmp r0, 0 - bge _0817FB18 - adds r0, 0x7 -_0817FB18: - asrs r0, 3 - subs r0, 0x8 - b _0817FB3A -_0817FB1E: - adds r0, r2, 0 - cmp r2, 0 - bge _0817FB26 - adds r0, 0x7F -_0817FB26: - asrs r0, 7 - lsls r0, 7 - subs r0, r2, r0 - lsls r0, 3 - negs r0, r0 - cmp r0, 0 - bge _0817FB36 - adds r0, 0x7F -_0817FB36: - asrs r0, 7 - adds r0, 0x8 -_0817FB3A: - strh r0, [r4, 0x24] -_0817FB3C: - adds r0, r2, 0 - cmp r2, 0 - bge _0817FB44 - adds r0, 0x7F -_0817FB44: - asrs r0, 7 - lsls r0, 7 - subs r0, r2, r0 - lsls r0, 16 - asrs r0, 16 - movs r1, 0x8 - bl Sin - negs r0, r0 -_0817FB56: - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x32] - adds r0, 0xC - strh r0, [r4, 0x32] - pop {r4} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_06 - - thumb_func_start pokemonanimfunc_09 -pokemonanimfunc_09: @ 817FB64 - push {r4-r6,lr} - adds r6, r0, 0 - movs r1, 0x32 - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _0817FB76 - adds r0, r6, 0 - bl sub_817F670 -_0817FB76: - movs r1, 0x32 - ldrsh r0, [r6, r1] - cmp r0, 0x28 - ble _0817FB9C - movs r2, 0x80 - lsls r2, 1 - adds r0, r6, 0 - adds r1, r2, 0 - movs r3, 0 - bl sub_817F6D4 - adds r0, r6, 0 - bl sub_817F77C - ldr r0, =sub_8184D88 - str r0, [r6, 0x1C] - b _0817FC12 - .pool -_0817FB9C: - movs r1, 0x32 - ldrsh r0, [r6, r1] - lsls r0, 8 - movs r1, 0x28 - bl __divsi3 - adds r1, r0, 0 - cmp r1, 0 - bge _0817FBB0 - adds r0, 0xFF -_0817FBB0: - asrs r0, 8 - lsls r0, 8 - subs r0, r1, r0 - lsls r0, 16 - lsrs r4, r0, 16 - ldrh r0, [r6, 0x32] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - bne _0817FBE0 - lsls r4, 16 - asrs r4, 16 - adds r0, r4, 0 - movs r1, 0x20 - bl Sin - movs r1, 0x80 - lsls r1, 1 - adds r5, r1, 0 - adds r0, r5 - strh r0, [r6, 0x36] - adds r0, r4, 0 - movs r1, 0x20 - b _0817FBFA -_0817FBE0: - lsls r4, 16 - asrs r4, 16 - adds r0, r4, 0 - movs r1, 0x8 - bl Sin - movs r1, 0x80 - lsls r1, 1 - adds r5, r1, 0 - adds r0, r5 - strh r0, [r6, 0x36] - adds r0, r4, 0 - movs r1, 0x8 -_0817FBFA: - bl Sin - adds r0, r5 - strh r0, [r6, 0x38] - movs r0, 0x36 - ldrsh r1, [r6, r0] - movs r0, 0x38 - ldrsh r2, [r6, r0] - adds r0, r6, 0 - movs r3, 0 - bl sub_817F6D4 -_0817FC12: - ldrh r0, [r6, 0x32] - adds r0, 0x1 - strh r0, [r6, 0x32] - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_09 - - thumb_func_start sub_817FC20 -sub_817FC20: @ 817FC20 - push {r4,r5,lr} - adds r4, r0, 0 - bl sub_817F70C - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _0817FC32 - strh r0, [r4, 0x34] -_0817FC32: - ldr r2, =gUnknown_0860AD70 - movs r5, 0x34 - ldrsh r1, [r4, r5] - lsls r0, r1, 1 - adds r0, r1 - adds r1, r2, 0x2 - adds r3, r0, r1 - movs r1, 0 - ldrsb r1, [r3, r1] - movs r5, 0x32 - ldrsh r0, [r4, r5] - cmp r1, r0 - bne _0817FC6A - adds r0, r1, 0 - cmp r0, 0 - bne _0817FC60 - ldr r0, =sub_8184D88 - str r0, [r4, 0x1C] - b _0817FC6A - .pool -_0817FC60: - ldrh r0, [r4, 0x34] - adds r0, 0x1 - movs r1, 0 - strh r0, [r4, 0x34] - strh r1, [r4, 0x32] -_0817FC6A: - movs r0, 0x34 - ldrsh r1, [r4, r0] - lsls r0, r1, 1 - adds r1, r0, r1 - adds r0, r2, 0x2 - adds r0, r1, r0 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - bne _0817FC8C - ldr r0, =sub_8184D88 - str r0, [r4, 0x1C] - b _0817FCBE - .pool -_0817FC8C: - adds r0, r1, r2 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - ldrh r1, [r4, 0x24] - adds r0, r1 - strh r0, [r4, 0x24] - movs r5, 0x34 - ldrsh r1, [r4, r5] - lsls r0, r1, 1 - adds r0, r1 - adds r1, r2, 0x1 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - ldrh r1, [r4, 0x26] - adds r0, r1 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - adds r0, r4, 0 - bl sub_817F70C -_0817FCBE: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_817FC20 - - thumb_func_start pokemonanimfunc_0A -pokemonanimfunc_0A: @ 817FCC4 - push {r4,lr} - adds r4, r0, 0 - bl sub_817FC20 - ldr r0, =sub_817FC20 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end pokemonanimfunc_0A - - thumb_func_start sub_817FCDC -sub_817FCDC: @ 817FCDC - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x32 - ldrsh r1, [r4, r0] - movs r0, 0x90 - lsls r0, 4 - cmp r1, r0 - ble _0817FCF8 - ldr r0, =sub_8184D88 - str r0, [r4, 0x1C] - movs r0, 0 - b _0817FD12 - .pool -_0817FCF8: - adds r0, r1, 0 - cmp r1, 0 - bge _0817FD00 - adds r0, 0xFF -_0817FD00: - 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 -_0817FD12: - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x2E] - ldrh r1, [r4, 0x32] - adds r0, r1 - strh r0, [r4, 0x32] - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_817FCDC - - thumb_func_start pokemonanimfunc_0F -pokemonanimfunc_0F: @ 817FD24 - 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_817FCDC - ldr r0, =sub_817FCDC - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end pokemonanimfunc_0F - - thumb_func_start sub_817FD44 -sub_817FD44: @ 817FD44 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x32 - ldrsh r1, [r4, r0] - movs r0, 0x90 - lsls r0, 4 - cmp r1, r0 - ble _0817FD60 - ldr r0, =sub_8184D88 - str r0, [r4, 0x1C] - movs r0, 0 - b _0817FD78 - .pool -_0817FD60: - adds r0, r1, 0 - cmp r1, 0 - bge _0817FD68 - adds r0, 0xFF -_0817FD68: - asrs r0, 8 - lsls r0, 8 - subs r0, r1, r0 - lsls r0, 16 - asrs r0, 16 - movs r1, 0x3 - bl Sin -_0817FD78: - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x2E] - ldrh r1, [r4, 0x32] - adds r0, r1 - strh r0, [r4, 0x32] - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_817FD44 - - thumb_func_start pokemonanimfunc_10 -pokemonanimfunc_10: @ 817FD88 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x3C - 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_10 - - thumb_func_start pokemonanimfunc_11 -pokemonanimfunc_11: @ 817FDA4 - push {r4-r7,lr} - adds r7, r0, 0 - ldrh r2, [r7, 0x32] - movs r0, 0x32 - ldrsh r1, [r7, r0] - movs r0, 0x80 - lsls r0, 2 - cmp r1, r0 - ble _0817FDC8 - ldr r0, =sub_8184D88 - str r0, [r7, 0x1C] - movs r0, 0 - strh r0, [r7, 0x24] - strh r0, [r7, 0x26] - b _0817FE24 - .pool -_0817FDC8: - movs r0, 0x1 - ands r0, r2 - movs r5, 0xFF - cmp r0, 0 - bne _0817FDD4 - movs r5, 0x1 -_0817FDD4: - movs r1, 0x32 - ldrsh r0, [r7, r1] - cmp r0, 0 - bge _0817FDDE - adds r0, 0x3 -_0817FDDE: - asrs r0, 2 - movs r1, 0x8 - bl Sin - lsls r0, 16 - asrs r6, r0, 16 - movs r0, 0x32 - ldrsh r1, [r7, r0] - adds r4, r1, 0 - cmp r1, 0 - bge _0817FDF6 - adds r4, 0xFF -_0817FDF6: - asrs r4, 8 - lsls r4, 8 - subs r4, r1, r4 - lsls r4, 16 - asrs r4, 16 - adds r0, r4, 0 - adds r1, r6, 0 - bl Sin - lsls r5, 24 - asrs r5, 24 - adds r1, r0, 0 - muls r1, r5 - adds r0, r1, 0 - strh r0, [r7, 0x26] - adds r0, r4, 0 - adds r1, r6, 0 - bl Cos - adds r1, r0, 0 - muls r1, r5 - adds r0, r1, 0 - strh r0, [r7, 0x24] -_0817FE24: - ldrh r0, [r7, 0x32] - adds r0, 0x9 - strh r0, [r7, 0x32] - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_11 - - thumb_func_start sub_817FE30 -sub_817FE30: @ 817FE30 - push {r4-r6,lr} - adds r4, r0, 0 - ldr r2, =gUnknown_03001240 - ldrh r6, [r4, 0x2E] - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r5, r0, r2 - ldrh r0, [r5] - cmp r0, 0 - beq _0817FE54 - subs r0, 0x1 - strh r0, [r5] - b _0817FEF8 - .pool -_0817FE54: - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _0817FE70 - movs r2, 0x8 - ldrsh r0, [r5, r2] - cmp r0, 0 - bne _0817FE70 - adds r0, r4, 0 - bl sub_817F670 - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] -_0817FE70: - ldr r2, =gUnknown_03001240 - lsls r1, r6, 16 - asrs r1, 16 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r5, r0, r2 - movs r0, 0x32 - ldrsh r1, [r4, r0] - movs r2, 0x6 - ldrsh r0, [r5, r2] - cmp r1, r0 - ble _0817FEC4 - movs r2, 0x80 - lsls r2, 1 - adds r0, r4, 0 - adds r1, r2, 0 - movs r3, 0 - bl sub_817F6D4 - ldrh r1, [r5, 0x4] - movs r2, 0x4 - ldrsh r0, [r5, r2] - cmp r0, 0x1 - ble _0817FEB4 - subs r0, r1, 0x1 - movs r1, 0 - strh r0, [r5, 0x4] - movs r0, 0xA - strh r0, [r5] - strh r1, [r4, 0x32] - b _0817FEF2 - .pool -_0817FEB4: - adds r0, r4, 0 - bl sub_817F77C - ldr r0, =sub_8184D88 - str r0, [r4, 0x1C] - b _0817FEF2 - .pool -_0817FEC4: - movs r0, 0x32 - ldrsh r1, [r4, r0] - adds r0, r1, 0 - cmp r1, 0 - bge _0817FED0 - adds r0, 0xFF -_0817FED0: - asrs r0, 8 - lsls r0, 8 - subs r0, r1, r0 - lsls r0, 16 - asrs r0, 16 - movs r1, 0x80 - lsls r1, 5 - bl Sin - strh r0, [r4, 0x3A] - movs r2, 0x80 - lsls r2, 1 - ldrh r3, [r4, 0x3A] - adds r0, r4, 0 - adds r1, r2, 0 - bl sub_817F6D4 -_0817FEF2: - ldrh r0, [r4, 0x32] - adds r0, 0x10 - strh r0, [r4, 0x32] -_0817FEF8: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_817FE30 - - thumb_func_start pokemonanimfunc_12 -pokemonanimfunc_12: @ 817FF00 - 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, 2 - strh r0, [r1, 0x6] - strh r3, [r1] - 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_12 - - thumb_func_start sub_817FF3C -sub_817FF3C: @ 817FF3C - push {r4-r6,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - lsls r0, 24 - lsrs r5, r0, 24 - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _0817FF54 - adds r0, r4, 0 - bl sub_817F670 -_0817FF54: - movs r2, 0x32 - ldrsh r6, [r4, r2] - ldr r1, =gUnknown_03001240 - lsls r0, r5, 1 - adds r0, r5 - lsls r0, 2 - adds r0, r1 - ldrh r1, [r0] - cmp r6, r1 - ble _0817FF8C - movs r2, 0x80 - lsls r2, 1 - adds r0, r4, 0 - adds r1, r2, 0 - movs r3, 0 - bl sub_817F6D4 - adds r0, r4, 0 - bl sub_817F77C - ldr r0, =sub_8184D88 - str r0, [r4, 0x1C] - b _0817FFAA - .pool -_0817FF8C: - movs r2, 0x8 - ldrsh r1, [r0, r2] - movs r0, 0x80 - lsls r0, 9 - bl __divsi3 - muls r0, r6 - strh r0, [r4, 0x3A] - movs r2, 0x80 - lsls r2, 1 - ldrh r3, [r4, 0x3A] - adds r0, r4, 0 - adds r1, r2, 0 - bl sub_817F6D4 -_0817FFAA: - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_817FF3C - - thumb_func_start pokemonanimfunc_1F -pokemonanimfunc_1F: @ 817FFB8 - 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, 0x14 - 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_1F - - thumb_func_start sub_817FFF0 -sub_817FFF0: @ 817FFF0 - push {r4-r7,lr} - adds r5, r0, 0 - ldrh r0, [r5, 0x2E] - lsls r0, 24 - lsrs r7, r0, 24 - adds r0, r5, 0 - bl sub_817F70C - ldr r1, =gUnknown_03001240 - lsls r0, r7, 1 - adds r0, r7 - lsls r0, 2 - adds r6, r0, r1 - movs r0, 0x32 - ldrsh r1, [r5, r0] - movs r2, 0x6 - ldrsh r0, [r6, r2] - cmp r1, r0 - ble _0818002C - movs r0, 0 - strh r0, [r5, 0x24] - strh r0, [r5, 0x26] - ldr r0, =sub_8184D88 - str r0, [r5, 0x1C] - b _0818006A - .pool -_0818002C: - movs r0, 0x32 - ldrsh r1, [r5, r0] - adds r0, r1, 0 - adds r0, 0xC0 - adds r4, r0, 0 - cmp r0, 0 - bge _0818003E - ldr r2, =0x000001bf - adds r4, r1, r2 -_0818003E: - asrs r4, 8 - lsls r4, 8 - subs r4, r0, r4 - lsls r4, 16 - asrs r4, 16 - movs r0, 0x8 - ldrsh r1, [r6, r0] - lsls r1, 17 - asrs r1, 16 - adds r0, r4, 0 - bl Cos - negs r0, r0 - strh r0, [r5, 0x24] - movs r2, 0x8 - ldrsh r1, [r6, r2] - adds r0, r4, 0 - bl Sin - ldrh r1, [r6, 0x8] - adds r0, r1 - strh r0, [r5, 0x26] -_0818006A: - ldr r0, =gUnknown_03001240 - lsls r1, r7, 1 - adds r1, r7 - lsls r1, 2 - adds r1, r0 - ldrh r0, [r1, 0x2] - ldrh r1, [r5, 0x32] - adds r0, r1 - strh r0, [r5, 0x32] - adds r0, r5, 0 - bl sub_817F70C - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_817FFF0 - - thumb_func_start pokemonanimfunc_14 -pokemonanimfunc_14: @ 8180090 - 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, 0x6 - strh r0, [r1, 0x8] - movs r0, 0x18 - 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_14 - - thumb_func_start pokemonanimfunc_15 -pokemonanimfunc_15: @ 81800D0 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _081800EC - ldrb r0, [r4, 0x5] - lsrs r0, 4 - lsls r0, 4 - movs r2, 0x80 - lsls r2, 1 - adds r1, r2, 0 - adds r0, r1 - strh r0, [r4, 0x3C] -_081800EC: - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0x80 - ble _0818010C - ldrh r0, [r4, 0x3C] - movs r1, 0x10 - movs r2, 0 - movs r3, 0 - bl BlendPalette - ldr r0, =sub_8184D88 - str r0, [r4, 0x1C] - b _08180128 - .pool -_0818010C: - movs r2, 0x32 - ldrsh r0, [r4, r2] - movs r1, 0x10 - bl Sin - adds r2, r0, 0 - strh r2, [r4, 0x3A] - ldrh r0, [r4, 0x3C] - lsls r2, 24 - lsrs r2, 24 - movs r1, 0x10 - movs r3, 0 - bl BlendPalette -_08180128: - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - pop {r4} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_15 - - thumb_func_start pokemonanimfunc_16 -pokemonanimfunc_16: @ 8180134 - push {r4-r7,lr} - adds r6, r0, 0 - movs r7, 0 - movs r1, 0x32 - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _08180148 - adds r0, r6, 0 - bl sub_817F670 -_08180148: - ldrh r5, [r6, 0x32] - movs r2, 0x32 - ldrsh r0, [r6, r2] - cmp r0, 0x28 - ble _08180170 - movs r2, 0x80 - lsls r2, 1 - adds r0, r6, 0 - adds r1, r2, 0 - movs r3, 0 - bl sub_817F6D4 - adds r0, r6, 0 - bl sub_817F77C - ldr r0, =sub_8184D88 - str r0, [r6, 0x1C] - b _08180204 - .pool -_08180170: - movs r1, 0x32 - ldrsh r0, [r6, r1] - lsls r0, 7 - movs r1, 0x28 - bl __divsi3 - lsls r0, 16 - lsrs r4, r0, 16 - adds r0, r5, 0 - subs r0, 0xA - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x13 - bhi _08180196 - ldrh r0, [r6, 0x3C] - adds r0, 0x33 - strh r0, [r6, 0x3C] - movs r7, 0xFF - ands r7, r0 -_08180196: - movs r2, 0x30 - ldrsh r0, [r6, r2] - cmp r0, 0 - bne _081801C4 - lsls r5, r4, 16 - asrs r0, r5, 16 - movs r1, 0x28 - bl Sin - adds r4, r0, 0 - adds r0, r7, 0 - movs r1, 0x10 - bl Sin - ldr r1, =0xffffff00 - adds r0, r1 - adds r4, r0 - strh r4, [r6, 0x36] - adds r4, r5, 0 - b _081801E4 - .pool -_081801C4: - adds r0, r7, 0 - movs r1, 0x10 - bl Sin - adds r5, r0, 0 - lsls r4, 16 - asrs r0, r4, 16 - movs r1, 0x28 - bl Sin - movs r2, 0x80 - lsls r2, 1 - adds r1, r2, 0 - subs r1, r5 - subs r1, r0 - strh r1, [r6, 0x36] -_081801E4: - asrs r0, r4, 16 - movs r1, 0x10 - bl Sin - movs r1, 0x80 - lsls r1, 1 - adds r0, r1 - strh r0, [r6, 0x38] - movs r2, 0x36 - ldrsh r1, [r6, r2] - movs r0, 0x38 - ldrsh r2, [r6, r0] - adds r0, r6, 0 - movs r3, 0 - bl sub_817F618 -_08180204: - ldrh r0, [r6, 0x32] - adds r0, 0x1 - strh r0, [r6, 0x32] - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_16 - - thumb_func_start pokemonanimfunc_17 -pokemonanimfunc_17: @ 8180210 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r5, r0, 0 - movs r0, 0 - mov r8, r0 - movs r7, 0 - movs r1, 0x32 - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _0818022C - adds r0, r5, 0 - bl sub_817F670 -_0818022C: - ldrh r6, [r5, 0x32] - movs r2, 0x32 - ldrsh r0, [r5, r2] - cmp r0, 0x28 - ble _08180258 - movs r2, 0x80 - lsls r2, 1 - adds r0, r5, 0 - adds r1, r2, 0 - movs r3, 0 - bl sub_817F6D4 - adds r0, r5, 0 - bl sub_817F77C - ldr r0, =sub_8184D88 - str r0, [r5, 0x1C] - mov r0, r8 - strh r0, [r5, 0x26] - b _0818030A - .pool -_08180258: - movs r1, 0x32 - ldrsh r0, [r5, r1] - lsls r0, 7 - movs r1, 0x28 - bl __divsi3 - lsls r0, 16 - lsrs r4, r0, 16 - adds r0, r6, 0 - subs r0, 0xA - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x13 - bhi _0818027E - ldrh r0, [r5, 0x3C] - adds r0, 0x33 - strh r0, [r5, 0x3C] - movs r7, 0xFF - ands r7, r0 -_0818027E: - movs r2, 0x30 - ldrsh r0, [r5, r2] - cmp r0, 0 - bne _081802A0 - lsls r4, 16 - asrs r0, r4, 16 - movs r1, 0x10 - bl Sin - ldr r2, =0xffffff00 - adds r1, r2, 0 - subs r1, r0 - strh r1, [r5, 0x36] - b _081802B2 - .pool -_081802A0: - lsls r4, 16 - asrs r0, r4, 16 - movs r1, 0x10 - bl Sin - movs r1, 0x80 - lsls r1, 1 - adds r0, r1 - strh r0, [r5, 0x36] -_081802B2: - adds r6, r4, 0 - adds r0, r7, 0 - movs r1, 0x8 - bl Sin - adds r4, r0, 0 - asrs r0, r6, 16 - movs r1, 0x28 - bl Sin - movs r2, 0x80 - lsls r2, 1 - adds r1, r2, 0 - subs r4, r1, r4 - subs r4, r0 - strh r4, [r5, 0x38] - lsls r4, 16 - asrs r4, 16 - lsls r1, 16 - asrs r1, 16 - cmp r4, r1 - beq _081802F0 - movs r2, 0x38 - ldrsh r0, [r5, r2] - subs r0, r1, r0 - cmp r0, 0 - bge _081802EA - adds r0, 0x7 -_081802EA: - lsls r0, 13 - lsrs r0, 16 - mov r8, r0 -_081802F0: - mov r1, r8 - lsls r0, r1, 16 - asrs r0, 16 - negs r0, r0 - strh r0, [r5, 0x26] - movs r2, 0x36 - ldrsh r1, [r5, r2] - movs r0, 0x38 - ldrsh r2, [r5, r0] - adds r0, r5, 0 - movs r3, 0 - bl sub_817F618 -_0818030A: - ldrh r0, [r5, 0x32] - adds r0, 0x1 - strh r0, [r5, 0x32] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_17 - - thumb_func_start sub_818031C -sub_818031C: @ 818031C - push {r4-r7,lr} - mov r7, r8 - push {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 r7, r0, 24 - ldr r2, =gUnknown_0860AA80 - movs r1, 0x38 - ldrsh r0, [r4, r1] - lsls r0, 1 - adds r1, r0, r2 - ldrb r5, [r1] - adds r2, 0x1 - adds r0, r2 - ldrb r6, [r0] - movs r1, 0 - cmp r5, 0xFE - beq _08180358 - subs r0, r6, r7 - muls r0, r5 - adds r1, r6, 0 - bl __divsi3 - lsls r0, 24 - lsrs r1, r0, 24 -_08180358: - cmp r5, 0xFF - bne _08180370 - ldr r0, =sub_8184D88 - str r0, [r4, 0x1C] - movs r0, 0 - strh r0, [r4, 0x26] - b _08180394 - .pool -_08180370: - mov r0, r8 - bl Sin - strh r0, [r4, 0x26] - cmp r7, r6 - bne _08180386 - ldrh r0, [r4, 0x38] - adds r0, 0x1 - strh r0, [r4, 0x38] - movs r0, 0 - b _08180392 -_08180386: - ldrh r0, [r4, 0x2E] - ldrh r1, [r4, 0x32] - adds r0, r1 - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x3A] - adds r0, 0x1 -_08180392: - strh r0, [r4, 0x3A] -_08180394: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_818031C - - thumb_func_start pokemonanimfunc_19 -pokemonanimfunc_19: @ 81803A0 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x30 - 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_19 - - thumb_func_start pokemonanimfunc_1A -pokemonanimfunc_1A: @ 81803BC - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r4, r0, 0 - bl sub_817F70C - ldrh r0, [r4, 0x32] - lsls r7, r0, 24 - lsrs r5, r7, 24 - mov r8, r5 - cmp r0, 0 - bne _081803DA - adds r0, r4, 0 - bl sub_817F670 -_081803DA: - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0x23 - ble _08180404 - movs r2, 0x80 - lsls r2, 1 - adds r0, r4, 0 - adds r1, r2, 0 - movs r3, 0 - bl sub_817F6D4 - adds r0, r4, 0 - bl sub_817F77C - ldr r0, =sub_8184D88 - str r0, [r4, 0x1C] - movs r0, 0 - strh r0, [r4, 0x24] - b _0818045E - .pool -_08180404: - adds r6, r5, 0 - subs r6, 0xA - lsls r0, r6, 7 - movs r1, 0x14 - bl __divsi3 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r5, 0x9 - bhi _0818042A - movs r2, 0x80 - lsls r2, 1 - lsrs r3, r7, 25 - lsls r3, 9 - adds r0, r4, 0 - adds r1, r2, 0 - bl sub_817F6D4 - b _0818045E -_0818042A: - lsls r0, r6, 24 - lsrs r0, 24 - cmp r0, 0x13 - bhi _08180442 - lsls r0, r1, 16 - asrs r0, 16 - movs r1, 0x5 - bl Sin - negs r0, r0 - strh r0, [r4, 0x24] - b _0818045E -_08180442: - movs r2, 0x80 - lsls r2, 1 - movs r3, 0x23 - mov r0, r8 - subs r3, r0 - lsrs r0, r3, 31 - adds r3, r0 - asrs r3, 1 - lsls r3, 26 - lsrs r3, 16 - adds r0, r4, 0 - adds r1, r2, 0 - bl sub_817F6D4 -_0818045E: - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - adds r0, r4, 0 - bl sub_817F70C - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_1A - - thumb_func_start pokemonanimfunc_1B -pokemonanimfunc_1B: @ 8180474 - push {r4-r6,lr} - adds r6, r0, 0 - movs r1, 0x32 - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _08180486 - adds r0, r6, 0 - bl sub_817F670 -_08180486: - movs r1, 0x32 - ldrsh r0, [r6, r1] - cmp r0, 0x64 - ble _081804B0 - movs r2, 0x80 - lsls r2, 1 - adds r0, r6, 0 - adds r1, r2, 0 - movs r3, 0 - bl sub_817F6D4 - movs r0, 0 - strh r0, [r6, 0x26] - adds r0, r6, 0 - bl sub_817F77C - ldr r0, =sub_8184D88 - str r0, [r6, 0x1C] - b _081804E8 - .pool -_081804B0: - movs r1, 0x32 - ldrsh r0, [r6, r1] - lsls r0, 8 - movs r1, 0x64 - bl __divsi3 - adds r4, r0, 0 - lsls r4, 16 - asrs r4, 16 - adds r0, r4, 0 - movs r1, 0xA - bl Sin - strh r0, [r6, 0x26] - movs r5, 0x80 - lsls r5, 1 - ldr r1, =0x00000ccc - adds r0, r4, 0 - bl Sin - adds r3, r0, 0 - lsls r3, 16 - lsrs r3, 16 - adds r0, r6, 0 - adds r1, r5, 0 - adds r2, r5, 0 - bl sub_817F6D4 -_081804E8: - ldrh r0, [r6, 0x32] - adds r0, 0x1 - strh r0, [r6, 0x32] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end pokemonanimfunc_1B - - thumb_func_start sub_81804F8 -sub_81804F8: @ 81804F8 - push {r4-r6,lr} - adds r6, r0, 0 - movs r5, 0 - movs r1, 0x32 - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _0818050C - adds r0, r6, 0 - bl sub_817F670 -_0818050C: - movs r1, 0x32 - ldrsh r0, [r6, r1] - cmp r0, 0x64 - ble _08180534 - movs r2, 0x80 - lsls r2, 1 - adds r0, r6, 0 - adds r1, r2, 0 - movs r3, 0 - bl sub_817F6D4 - strh r5, [r6, 0x26] - adds r0, r6, 0 - bl sub_817F77C - ldr r0, =sub_8184D88 - str r0, [r6, 0x1C] - b _08180582 - .pool -_08180534: - movs r0, 0x32 - ldrsh r5, [r6, r0] - lsls r0, r5, 8 - movs r1, 0x64 - bl __divsi3 - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 9 - adds r0, r5, 0 - movs r1, 0x64 - bl __divsi3 - adds r5, r0, 0 - movs r0, 0xFF - ands r5, r0 - lsls r4, 16 - asrs r4, 16 - movs r0, 0x2E - ldrsh r1, [r6, r0] - adds r0, r4, 0 - bl Sin - strh r0, [r6, 0x26] - movs r4, 0x80 - lsls r4, 1 - adds r0, r5, 0 - ldr r1, =0x00000ccc - bl Sin - adds r3, r0, 0 - lsls r3, 16 - lsrs r3, 16 - adds r0, r6, 0 - adds r1, r4, 0 - adds r2, r4, 0 - bl sub_817F6D4 -_08180582: - ldrh r0, [r6, 0x32] - adds r0, 0x1 - strh r0, [r6, 0x32] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81804F8 - - thumb_func_start pokemonanimfunc_1C -pokemonanimfunc_1C: @ 8180594 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0xA - 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_1C - - thumb_func_start sub_81805B0 -sub_81805B0: @ 81805B0 - push {r4-r6,lr} - adds r6, r0, 0 - movs r5, 0 - movs r1, 0x32 - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _081805C4 - adds r0, r6, 0 - bl sub_817F670 -_081805C4: - movs r2, 0x32 - ldrsh r0, [r6, r2] - cmp r0, 0x64 - ble _081805EC - movs r2, 0x80 - lsls r2, 1 - adds r0, r6, 0 - adds r1, r2, 0 - movs r3, 0 - bl sub_817F6D4 - strh r5, [r6, 0x26] - adds r0, r6, 0 - bl sub_817F77C - ldr r0, =sub_8184D88 - str r0, [r6, 0x1C] - b _08180644 - .pool -_081805EC: - movs r0, 0x32 - ldrsh r5, [r6, r0] - lsls r0, r5, 8 - movs r1, 0x64 - bl __divsi3 - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 9 - adds r0, r5, 0 - movs r1, 0x64 - bl __divsi3 - adds r5, r0, 0 - movs r0, 0xFF - ands r5, r0 - lsls r4, 16 - asrs r0, r4, 16 - lsrs r4, 31 - adds r0, r4 - asrs r0, 1 - movs r2, 0x2E - ldrsh r1, [r6, r2] - lsls r1, 17 - asrs r1, 16 - bl Sin - negs r0, r0 - strh r0, [r6, 0x26] - movs r4, 0x80 - lsls r4, 1 - adds r0, r5, 0 - ldr r1, =0x00000ccc - bl Sin - adds r3, r0, 0 - lsls r3, 16 - lsrs r3, 16 - adds r0, r6, 0 - adds r1, r4, 0 - adds r2, r4, 0 - bl sub_817F6D4 -_08180644: - ldrh r0, [r6, 0x32] - adds r0, 0x1 - strh r0, [r6, 0x32] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81805B0 - - thumb_func_start pokemonanimfunc_18 -pokemonanimfunc_18: @ 8180654 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x5 - strh r0, [r4, 0x2E] - adds r0, r4, 0 - bl sub_81805B0 - ldr r0, =sub_81805B0 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end pokemonanimfunc_18 - - thumb_func_start pokemonanimfunc_1D -pokemonanimfunc_1D: @ 8180670 - push {r4-r6,lr} - adds r6, r0, 0 - bl sub_817F70C - movs r5, 0 - movs r1, 0x32 - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _08180688 - adds r0, r6, 0 - bl sub_817F670 -_08180688: - movs r1, 0x32 - ldrsh r0, [r6, r1] - cmp r0, 0x64 - ble _081806B0 - movs r2, 0x80 - lsls r2, 1 - adds r0, r6, 0 - adds r1, r2, 0 - movs r3, 0 - bl sub_817F6D4 - strh r5, [r6, 0x24] - adds r0, r6, 0 - bl sub_817F77C - ldr r0, =sub_8184D88 - str r0, [r6, 0x1C] - b _081806FC - .pool -_081806B0: - movs r0, 0x32 - ldrsh r5, [r6, r0] - lsls r0, r5, 8 - movs r1, 0x64 - bl __divsi3 - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 9 - adds r0, r5, 0 - movs r1, 0x64 - bl __divsi3 - adds r5, r0, 0 - movs r0, 0xFF - ands r5, r0 - lsls r4, 16 - asrs r4, 16 - adds r0, r4, 0 - movs r1, 0x8 - bl Sin - strh r0, [r6, 0x24] - movs r4, 0x80 - lsls r4, 1 - adds r0, r5, 0 - ldr r1, =0x00000ccc - bl Sin - adds r3, r0, 0 - lsls r3, 16 - lsrs r3, 16 - adds r0, r6, 0 - adds r1, r4, 0 - adds r2, r4, 0 - bl sub_817F6D4 -_081806FC: - ldrh r0, [r6, 0x32] - adds r0, 0x1 - strh r0, [r6, 0x32] - adds r0, r6, 0 - bl sub_817F70C - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end pokemonanimfunc_1D - thumb_func_start sub_8180714 sub_8180714: @ 8180714 push {r4-r6,lr} @@ -1974,7 +17,7 @@ sub_8180714: @ 8180714 cmp r0, 0 bne _0818072A adds r0, r4, 0 - bl sub_817F670 + bl HandleStartAffineAnim strh r6, [r4, 0x34] _0818072A: adds r0, r4, 0 @@ -1992,11 +35,11 @@ _0818072A: adds r0, r4, 0 adds r1, r2, 0 movs r3, 0 - bl sub_817F6D4 + bl HandleSetAffineData strh r6, [r4, 0x26] adds r0, r4, 0 bl sub_817F77C - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r4, 0x1C] b _081807FE .pool @@ -2064,7 +107,7 @@ _081807B0: asrs r2, r5, 16 adds r0, r4, 0 movs r3, 0 - bl sub_817F6D4 + bl HandleSetAffineData ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] @@ -2122,11 +165,11 @@ sub_8180828: @ 8180828 adds r0, r5, 0 adds r1, r2, 0 movs r3, 0 - bl sub_817F6D4 + bl HandleSetAffineData strh r6, [r5, 0x26] adds r0, r5, 0 bl sub_817F77C - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r5, 0x1C] b _081808D0 .pool @@ -2172,7 +215,7 @@ _08180894: asrs r2, 16 adds r0, r5, 0 movs r3, 0 - bl sub_817F6D4 + bl HandleSetAffineData ldrh r0, [r5, 0x32] adds r0, 0x1 strh r0, [r5, 0x32] @@ -2197,7 +240,7 @@ pokemonanimfunc_13: @ 81808D8 cmp r0, 0 bne _081808F2 adds r0, r4, 0 - bl sub_817F670 + bl HandleStartAffineAnim movs r0, 0x3 strh r0, [r4, 0x3C] movs r0, 0x8 @@ -2260,7 +303,7 @@ sub_8180900: @ 8180900 cmp r0, 0 bne _0818096C adds r0, r4, 0 - bl sub_817F670 + bl HandleStartAffineAnim ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] @@ -2282,12 +325,12 @@ _0818096C: adds r0, r4, 0 adds r1, r2, 0 movs r3, 0 - bl sub_817F6D4 + bl HandleSetAffineData strh r5, [r4, 0x24] strh r5, [r4, 0x26] adds r0, r4, 0 bl sub_817F77C - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r4, 0x1C] b _08180A3A .pool @@ -2338,7 +381,7 @@ _08180A04: lsls r2, 1 adds r0, r4, 0 adds r1, r2, 0 - bl sub_817F6D4 + bl HandleSetAffineData movs r0, 0x36 ldrsh r1, [r4, r0] lsls r0, r1, 1 @@ -2427,7 +470,7 @@ _08180AA8: movs r1, 0x10 movs r2, 0 bl BlendPalette - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r4, 0x1C] b _08180AE8 .pool @@ -2480,7 +523,7 @@ _08180B14: movs r2, 0 movs r3, 0x1F bl BlendPalette - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r4, 0x1C] b _08180B50 .pool @@ -2533,7 +576,7 @@ _08180B78: movs r1, 0x10 movs r2, 0 bl BlendPalette - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r4, 0x1C] b _08180BB6 .pool @@ -2586,7 +629,7 @@ _08180BE0: movs r1, 0x10 movs r2, 0 bl BlendPalette - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r4, 0x1C] b _08180C20 .pool @@ -2639,7 +682,7 @@ _08180C4C: movs r1, 0x10 movs r2, 0 bl BlendPalette - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r4, 0x1C] b _08180C8C .pool @@ -2670,7 +713,7 @@ _08180C8C: pokemonanimfunc_25: @ 8180C9C push {r4,lr} adds r4, r0, 0 - bl sub_817F670 + bl HandleStartAffineAnim ldr r0, =sub_8180CB4 str r0, [r4, 0x1C] pop {r4} @@ -2792,7 +835,7 @@ _08180D84: lsls r3, r5, 8 adds r0, r4, 0 adds r1, r2, 0 - bl sub_817F6D4 + bl HandleSetAffineData movs r1, 0x24 ldrsh r0, [r4, r1] movs r1, 0x8 @@ -2842,7 +885,7 @@ _08180DE2: lsrs r3, 16 adds r0, r4, 0 adds r1, r2, 0 - bl sub_817F6D4 + bl HandleSetAffineData movs r1, 0x32 ldrsh r0, [r4, r1] cmp r0, 0 @@ -2885,7 +928,7 @@ sub_8180E28: @ 8180E28 strh r0, [r4, 0x24] adds r0, r4, 0 bl sub_817F77C - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r4, 0x1C] _08180E4A: adds r0, r4, 0 @@ -2900,7 +943,7 @@ _08180E4A: pokemonanimfunc_26: @ 8180E5C push {r4,lr} adds r4, r0, 0 - bl sub_817F670 + bl HandleStartAffineAnim movs r0, 0 strh r0, [r4, 0x34] ldr r0, =sub_8180E78 @@ -3041,7 +1084,7 @@ _08180F44: lsrs r3, 16 adds r0, r4, 0 adds r1, r2, 0 - bl sub_817F6D4 + bl HandleSetAffineData movs r1, 0x32 ldrsh r0, [r4, r1] cmp r0, 0x20 @@ -3050,7 +1093,7 @@ _08180F44: strh r5, [r4, 0x26] adds r0, r4, 0 bl sub_817F77C - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r4, 0x1C] _08180F96: adds r0, r4, 0 @@ -3105,7 +1148,7 @@ _08180FC6: ands r1, r0 mov r2, r12 strb r1, [r2] - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r3, 0x1C] _08180FFC: movs r0, 0x2 @@ -3121,7 +1164,7 @@ _08180FFE: pokemonanimfunc_28: @ 818100C push {r4,lr} adds r4, r0, 0 - bl sub_817F670 + bl HandleStartAffineAnim ldr r0, =sub_8181024 str r0, [r4, 0x1C] pop {r4} @@ -3192,7 +1235,7 @@ sub_8181068: @ 8181068 lsrs r3, 16 adds r0, r4, 0 adds r1, r2, 0 - bl sub_817F6D4 + bl HandleSetAffineData movs r1, 0x32 ldrsh r0, [r4, r1] cmp r0, 0x20 @@ -3224,7 +1267,7 @@ sub_81810C4: @ 81810C4 bgt _081810E8 adds r0, r4, 0 bl sub_817F77C - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r4, 0x1C] _081810E8: adds r0, r4, 0 @@ -3239,7 +1282,7 @@ _081810E8: pokemonanimfunc_29: @ 81810F8 push {r4,lr} adds r4, r0, 0 - bl sub_817F670 + bl HandleStartAffineAnim ldr r0, =sub_8181110 str r0, [r4, 0x1C] pop {r4} @@ -3315,7 +1358,7 @@ _08181186: lsrs r3, 16 adds r0, r4, 0 adds r1, r2, 0 - bl sub_817F6D4 + bl HandleSetAffineData adds r0, r4, 0 bl sub_817F70C pop {r4} @@ -3342,7 +1385,7 @@ sub_81811A4: @ 81811A4 strh r2, [r4, 0x26] adds r0, r4, 0 bl sub_817F77C - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r4, 0x1C] _081811CE: adds r0, r4, 0 @@ -3407,7 +1450,7 @@ _08181238: adds r0, 0x1 strh r0, [r4, 0x32] adds r0, r4, 0 - bl sub_817F670 + bl HandleStartAffineAnim movs r2, 0x2E ldrsh r1, [r4, r2] lsls r0, r1, 1 @@ -3519,7 +1562,7 @@ _081812DA: _08181328: adds r0, r4, 0 bl sub_817F77C - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r4, 0x1C] _08181332: movs r2, 0x80 @@ -3529,7 +1572,7 @@ _08181332: lsrs r3, 16 adds r0, r4, 0 adds r1, r2, 0 - bl sub_817F6D4 + bl HandleSetAffineData adds r0, r4, 0 bl sub_817F70C _0818134A: @@ -3543,7 +1586,7 @@ _0818134A: pokemonanimfunc_2B: @ 8181354 push {r4,lr} adds r4, r0, 0 - bl sub_817F670 + bl HandleStartAffineAnim movs r0, 0 strh r0, [r4, 0x3A] strh r0, [r4, 0x3C] @@ -3606,7 +1649,7 @@ _081813BA: adds r0, r4, 0 _081813D2: movs r3, 0 - bl sub_817F6D4 + bl HandleSetAffineData ldrh r0, [r4, 0x3C] adds r0, 0x1 strh r0, [r4, 0x3C] @@ -3623,10 +1666,10 @@ _081813DE: adds r0, r4, 0 adds r1, r2, 0 movs r3, 0 - bl sub_817F6D4 + bl HandleSetAffineData adds r0, r4, 0 bl sub_817F77C - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r4, 0x1C] _08181404: adds r0, r4, 0 @@ -3670,7 +1713,7 @@ _08181442: ldrb r0, [r0] cmp r0, 0xFF bne _08181464 - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r4, 0x1C] b _081814CE .pool @@ -3739,7 +1782,7 @@ sub_81814D4: @ 81814D4 cmp r0, 0 bne _081814E6 adds r0, r6, 0 - bl sub_817F670 + bl HandleStartAffineAnim _081814E6: adds r0, r6, 0 bl sub_817F70C @@ -3761,7 +1804,7 @@ _081814E6: adds r0, r6, 0 adds r1, r2, 0 movs r3, 0 - bl sub_817F6D4 + bl HandleSetAffineData movs r3, 0 strh r3, [r6, 0x24] movs r0, 0x2E @@ -3783,7 +1826,7 @@ _081814E6: _0818153C: adds r0, r6, 0 bl sub_817F77C - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r6, 0x1C] b _08181588 .pool @@ -3813,7 +1856,7 @@ _0818154C: adds r0, r6, 0 adds r1, r5, 0 adds r2, r5, 0 - bl sub_817F6D4 + bl HandleSetAffineData _08181588: ldrh r0, [r6, 0x32] adds r0, 0x1 @@ -3860,7 +1903,7 @@ sub_81815D4: @ 81815D4 cmp r0, 0 bne _081815E6 adds r0, r6, 0 - bl sub_817F670 + bl HandleStartAffineAnim _081815E6: adds r0, r6, 0 bl sub_817F70C @@ -3882,7 +1925,7 @@ _081815E6: adds r0, r6, 0 adds r1, r2, 0 movs r3, 0 - bl sub_817F6D4 + bl HandleSetAffineData movs r3, 0 strh r3, [r6, 0x24] movs r0, 0x2E @@ -3904,7 +1947,7 @@ _081815E6: _0818163C: adds r0, r6, 0 bl sub_817F77C - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r6, 0x1C] b _0818168A .pool @@ -3935,7 +1978,7 @@ _0818164C: adds r0, r6, 0 adds r1, r5, 0 adds r2, r5, 0 - bl sub_817F6D4 + bl HandleSetAffineData _0818168A: ldrh r0, [r6, 0x32] adds r0, 0x1 @@ -3977,7 +2020,7 @@ pokemonanimfunc_2E: @ 81816A0 pokemonanimfunc_2F: @ 81816D4 push {r4,lr} adds r4, r0, 0 - bl sub_817F670 + bl HandleStartAffineAnim adds r0, r4, 0 adds r0, 0x28 movs r1, 0 @@ -4030,7 +2073,7 @@ sub_8181708: @ 8181708 lsrs r3, 16 adds r0, r4, 0 adds r1, r2, 0 - bl sub_817F6D4 + bl HandleSetAffineData movs r1, 0x3C ldrsh r0, [r4, r1] cmp r0, 0x78 @@ -4104,7 +2147,7 @@ sub_8181794: @ 8181794 adds r0, r4, 0 adds r1, r5, 0 adds r2, r5, 0 - bl sub_817F6D4 + bl HandleSetAffineData movs r1, 0x3C ldrsh r0, [r4, r1] cmp r0, 0x7F @@ -4115,7 +2158,7 @@ sub_8181794: @ 8181794 adds r1, r5, 0 adds r2, r5, 0 movs r3, 0 - bl sub_817F6D4 + bl HandleSetAffineData strh r6, [r4, 0x32] adds r0, r4, 0 bl sub_817F77C @@ -4155,7 +2198,7 @@ _08181834: cmp r0, 0 bne _0818184A adds r0, r5, 0 - bl sub_817F670 + bl HandleStartAffineAnim strh r6, [r5, 0x36] strh r6, [r5, 0x38] movs r0, 0x1 @@ -4192,7 +2235,7 @@ _0818184A: asrs r2, 16 adds r0, r5, 0 movs r3, 0 - bl sub_817F6D4 + bl HandleSetAffineData movs r3, 0x36 ldrsh r0, [r5, r3] cmp r0, 0x80 @@ -4233,7 +2276,7 @@ _081818A2: asrs r2, 16 adds r0, r5, 0 movs r3, 0 - bl sub_817F6D4 + bl HandleSetAffineData movs r1, 0x36 ldrsh r0, [r5, r1] cmp r0, 0x80 @@ -4268,10 +2311,10 @@ _08181922: adds r0, r5, 0 adds r1, r2, 0 movs r3, 0 - bl sub_817F6D4 + bl HandleSetAffineData adds r0, r5, 0 bl sub_817F77C - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r5, 0x1C] _0818193A: ldr r2, =gUnknown_03001240 @@ -4329,7 +2372,7 @@ pokemonanimfunc_31: @ 8181994 lsls r0, 2 cmp r4, r0 ble _081819B8 - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r5, 0x1C] movs r0, 0 strh r0, [r5, 0x24] @@ -4466,7 +2509,7 @@ pokemonanimfunc_32: @ 8181A78 ldr r0, =0x0000ffff strh r0, [r1, 0x8] adds r0, r4, 0 - bl sub_817F670 + bl HandleStartAffineAnim strh r5, [r4, 0x34] adds r0, r4, 0 bl sub_8181ABC @@ -4568,7 +2611,7 @@ sub_8181B4C: @ 8181B4C adds r0, r4, 0 adds r1, r2, 0 movs r3, 0 - bl sub_817F6D4 + bl HandleSetAffineData movs r0, 0 strh r0, [r4, 0x26] strh r0, [r4, 0x32] @@ -4646,7 +2689,7 @@ _08181BD6: asrs r2, r6, 16 adds r0, r4, 0 movs r3, 0 - bl sub_817F6D4 + bl HandleSetAffineData ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] @@ -4705,7 +2748,7 @@ sub_8181C2C: @ 8181C2C _08181C7C: adds r0, r4, 0 bl sub_817F77C - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd _08181C84: str r0, [r4, 0x1C] movs r0, 0 @@ -4768,7 +2811,7 @@ sub_8181CE8: @ 8181CE8 cmp r0, 0 bne _08181D00 adds r0, r4, 0 - bl sub_817F670 + bl HandleStartAffineAnim ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] @@ -4787,7 +2830,7 @@ _08181D00: adds r0, r4, 0 adds r1, r2, 0 movs r3, 0 - bl sub_817F6D4 + bl HandleSetAffineData ldr r2, =gUnknown_03001240 movs r0, 0x2E ldrsh r1, [r4, r0] @@ -4809,7 +2852,7 @@ _08181D00: _08181D48: adds r0, r4, 0 bl sub_817F77C - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r4, 0x1C] _08181D52: adds r0, r4, 0 @@ -4834,7 +2877,7 @@ _08181D60: lsrs r3, 16 adds r0, r4, 0 adds r1, r2, 0 - bl sub_817F6D4 + bl HandleSetAffineData ldr r2, =gUnknown_03001240 movs r0, 0x2E ldrsh r1, [r4, r0] @@ -4889,7 +2932,7 @@ pokemonanimfunc_34: @ 8181DE4 cmp r0, 0 bne _08181DFC adds r0, r4, 0 - bl sub_817F670 + bl HandleStartAffineAnim ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] @@ -4908,10 +2951,10 @@ _08181DFC: adds r0, r4, 0 adds r1, r2, 0 movs r3, 0 - bl sub_817F6D4 + bl HandleSetAffineData adds r0, r4, 0 bl sub_817F77C - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r4, 0x1C] adds r0, r4, 0 bl sub_817F70C @@ -4951,7 +2994,7 @@ _08181E4E: lsrs r3, 16 adds r0, r4, 0 adds r1, r2, 0 - bl sub_817F6D4 + bl HandleSetAffineData ldrh r0, [r4, 0x3C] adds r0, 0x8 strh r0, [r4, 0x3C] @@ -5013,7 +3056,7 @@ _08181ED8: negs r1, r1 ands r1, r0 strb r1, [r2] - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r3, 0x1C] _08181EEE: pop {r4,r5} @@ -5026,7 +3069,7 @@ _08181EEE: pokemonanimfunc_36: @ 8181EF8 push {r4,lr} adds r4, r0, 0 - bl sub_817F670 + bl HandleStartAffineAnim movs r0, 0 strh r0, [r4, 0x3C] ldr r0, =sub_8181F14 @@ -5065,7 +3108,7 @@ _08181F38: lsrs r3, 16 adds r0, r4, 0 adds r1, r2, 0 - bl sub_817F6D4 + bl HandleSetAffineData pop {r4} pop {r0} bx r0 @@ -5144,7 +3187,7 @@ sub_8181FC0: @ 8181FC0 strh r1, [r4, 0x24] adds r0, r4, 0 bl sub_817F77C - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r4, 0x1C] b _08181FFE .pool @@ -5165,7 +3208,7 @@ _08181FFE: lsrs r3, 16 adds r0, r4, 0 adds r1, r2, 0 - bl sub_817F6D4 + bl HandleSetAffineData adds r0, r4, 0 bl sub_817F70C pop {r4} @@ -5182,7 +3225,7 @@ pokemonanimfunc_37: @ 818201C cmp r5, 0 bne _08182036 adds r0, r4, 0 - bl sub_817F670 + bl HandleStartAffineAnim ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] @@ -5201,7 +3244,7 @@ _08182036: strh r0, [r4, 0x3C] adds r0, r4, 0 bl sub_817F77C - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r4, 0x1C] b _081820A6 .pool @@ -5263,7 +3306,7 @@ _081820B2: lsrs r3, 16 adds r0, r4, 0 adds r1, r2, 0 - bl sub_817F6D4 + bl HandleSetAffineData adds r0, r4, 0 bl sub_817F70C pop {r4,r5} @@ -5275,7 +3318,7 @@ _081820B2: pokemonanimfunc_38: @ 81820E0 push {r4,lr} adds r4, r0, 0 - bl sub_817F670 + bl HandleStartAffineAnim movs r0, 0 strh r0, [r4, 0x3C] strh r0, [r4, 0x36] @@ -5333,7 +3376,7 @@ _0818214A: lsrs r3, 16 adds r0, r4, 0 adds r1, r2, 0 - bl sub_817F6D4 + bl HandleSetAffineData adds r0, r4, 0 bl sub_817F70C pop {r4} @@ -5380,7 +3423,7 @@ _081821AA: lsrs r3, 16 adds r0, r4, 0 adds r1, r2, 0 - bl sub_817F6D4 + bl HandleSetAffineData adds r0, r4, 0 bl sub_817F70C pop {r4} @@ -5441,7 +3484,7 @@ _08182224: lsrs r3, 16 adds r0, r4, 0 adds r1, r2, 0 - bl sub_817F6D4 + bl HandleSetAffineData adds r0, r4, 0 bl sub_817F70C pop {r4} @@ -5464,7 +3507,7 @@ sub_8182248: @ 8182248 strh r0, [r4, 0x3C] adds r0, r4, 0 bl sub_817F77C - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r4, 0x1C] b _0818228E .pool @@ -5491,7 +3534,7 @@ _0818228E: lsrs r3, 16 adds r0, r4, 0 adds r1, r2, 0 - bl sub_817F6D4 + bl HandleSetAffineData adds r0, r4, 0 bl sub_817F70C pop {r4} @@ -5509,7 +3552,7 @@ pokemonanimfunc_39: @ 81822B0 ldrsh r0, [r4, r2] cmp r0, 0x28 ble _081822D0 - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r4, 0x1C] movs r0, 0 strh r0, [r4, 0x24] @@ -5609,7 +3652,7 @@ pokemonanimfunc_3A: @ 8182370 cmp r5, 0 bne _08182392 adds r0, r4, 0 - bl sub_817F670 + bl HandleStartAffineAnim strh r5, [r4, 0x38] strh r5, [r4, 0x3A] strh r5, [r4, 0x3C] @@ -5653,7 +3696,7 @@ _08182392: adds r0, r4, 0 adds r1, r2, 0 movs r3, 0 - bl sub_817F6D4 + bl HandleSetAffineData b _08182494 _081823E4: movs r2, 0x38 @@ -5671,10 +3714,10 @@ _081823E4: adds r0, r4, 0 adds r1, r2, 0 movs r3, 0 - bl sub_817F6D4 + bl HandleSetAffineData adds r0, r4, 0 bl sub_817F77C - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r4, 0x1C] _08182410: movs r2, 0x3C @@ -5743,7 +3786,7 @@ _08182474: adds r0, r4, 0 adds r1, r2, 0 movs r3, 0 - bl sub_817F6D4 + bl HandleSetAffineData _08182494: adds r0, r4, 0 bl sub_817F70C @@ -5761,7 +3804,7 @@ pokemonanimfunc_3B: @ 81824A0 cmp r5, 0 bne _081824BA adds r0, r4, 0 - bl sub_817F670 + bl HandleStartAffineAnim ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] @@ -5780,10 +3823,10 @@ _081824BA: adds r0, r4, 0 adds r1, r2, 0 movs r3, 0 - bl sub_817F6D4 + bl HandleSetAffineData adds r0, r4, 0 bl sub_817F77C - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r4, 0x1C] b _08182540 .pool @@ -5830,7 +3873,7 @@ _08182518: asrs r2, 16 adds r0, r4, 0 movs r3, 0 - bl sub_817F6D4 + bl HandleSetAffineData _08182540: pop {r4,r5} pop {r0} @@ -5846,7 +3889,7 @@ pokemonanimfunc_3C: @ 8182548 cmp r5, 0 bne _08182562 adds r0, r4, 0 - bl sub_817F670 + bl HandleStartAffineAnim ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] @@ -5864,10 +3907,10 @@ _08182562: adds r1, r5, 0 adds r2, r5, 0 movs r3, 0 - bl sub_817F6D4 + bl HandleSetAffineData adds r0, r4, 0 bl sub_817F77C - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r4, 0x1C] b _081825D4 .pool @@ -5903,7 +3946,7 @@ _081825AE: adds r0, r4, 0 adds r1, r5, 0 movs r3, 0 - bl sub_817F6D4 + bl HandleSetAffineData _081825D4: pop {r4,r5} pop {r0} @@ -5914,7 +3957,7 @@ _081825D4: pokemonanimfunc_3D: @ 81825DC push {r4,lr} adds r4, r0, 0 - bl sub_817F670 + bl HandleStartAffineAnim ldr r0, =sub_81825F8 str r0, [r4, 0x1C] movs r0, 0 @@ -5961,7 +4004,7 @@ _08182620: asrs r2, 16 adds r0, r4, 0 movs r3, 0 - bl sub_817F6D4 + bl HandleSetAffineData pop {r4} pop {r0} bx r0 @@ -6041,7 +4084,7 @@ _081826C8: asrs r2, 16 adds r0, r4, 0 movs r3, 0 - bl sub_817F6D4 + bl HandleSetAffineData movs r1, 0x3A ldrsh r0, [r4, r1] cmp r0, 0x3 @@ -6082,7 +4125,7 @@ sub_81826F8: @ 81826F8 ble _08182742 adds r0, r4, 0 bl sub_817F77C - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r4, 0x1C] movs r0, 0 strh r0, [r4, 0x26] @@ -6091,7 +4134,7 @@ sub_81826F8: @ 81826F8 adds r0, r4, 0 adds r1, r2, 0 movs r3, 0 - bl sub_817F6D4 + bl HandleSetAffineData _08182742: movs r1, 0x80 lsls r1, 1 @@ -6102,7 +4145,7 @@ _08182742: asrs r2, 16 adds r0, r4, 0 movs r3, 0 - bl sub_817F6D4 + bl HandleSetAffineData pop {r4,r5} pop {r0} bx r0 @@ -6123,14 +4166,14 @@ sub_8182764: @ 8182764 strh r0, [r4, 0x24] adds r0, r4, 0 bl sub_817F77C - ldr r0, =sub_8184D88 + 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 sub_817F6D4 + bl HandleSetAffineData b _081827F4 .pool _08182798: @@ -6178,7 +4221,7 @@ _081827CC: lsls r2, 1 adds r0, r4, 0 movs r3, 0 - bl sub_817F6D4 + bl HandleSetAffineData _081827F4: pop {r4} pop {r0} @@ -6194,7 +4237,7 @@ pokemonanimfunc_3E: @ 81827FC cmp r5, 0 bne _08182822 adds r0, r4, 0 - bl sub_817F670 + bl HandleStartAffineAnim ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] @@ -6227,14 +4270,14 @@ sub_8182830: @ 8182830 strh r0, [r4, 0x24] adds r0, r4, 0 bl sub_817F77C - ldr r0, =sub_8184D88 + 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 sub_817F6D4 + bl HandleSetAffineData b _081828C0 .pool _08182864: @@ -6282,7 +4325,7 @@ _08182898: lsls r2, 1 adds r0, r4, 0 movs r3, 0 - bl sub_817F6D4 + bl HandleSetAffineData _081828C0: pop {r4} pop {r0} @@ -6298,7 +4341,7 @@ pokemonanimfunc_3F: @ 81828C8 cmp r5, 0 bne _081828EE adds r0, r4, 0 - bl sub_817F670 + bl HandleStartAffineAnim ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] @@ -6327,7 +4370,7 @@ pokemonanimfunc_40: @ 81828FC cmp r5, 0 bne _0818291A adds r0, r4, 0 - bl sub_817F670 + bl HandleStartAffineAnim ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] @@ -6348,8 +4391,8 @@ _0818291A: adds r0, r4, 0 adds r1, r2, 0 movs r3, 0 - bl sub_817F6D4 - ldr r0, =sub_8184D88 + bl HandleSetAffineData + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r4, 0x1C] b _0818299E .pool @@ -6395,7 +4438,7 @@ _08182978: adds r0, r4, 0 adds r1, r2, 0 movs r3, 0 - bl sub_817F6D4 + bl HandleSetAffineData _0818299E: adds r0, r4, 0 bl sub_817F70C @@ -6414,7 +4457,7 @@ pokemonanimfunc_41: @ 81829AC cmp r5, 0 bne _081829CA adds r0, r4, 0 - bl sub_817F670 + bl HandleStartAffineAnim ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] @@ -6435,8 +4478,8 @@ _081829CA: adds r0, r4, 0 adds r1, r2, 0 movs r3, 0 - bl sub_817F6D4 - ldr r0, =sub_8184D88 + bl HandleSetAffineData + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r4, 0x1C] b _08182A5E .pool @@ -6490,7 +4533,7 @@ _08182A30: adds r0, r4, 0 adds r1, r2, 0 movs r3, 0 - bl sub_817F6D4 + bl HandleSetAffineData _08182A5E: adds r0, r4, 0 bl sub_817F70C @@ -6509,7 +4552,7 @@ pokemonanimfunc_42: @ 8182A6C cmp r5, 0 bne _08182A8A adds r0, r4, 0 - bl sub_817F670 + bl HandleStartAffineAnim ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] @@ -6530,8 +4573,8 @@ _08182A8A: adds r0, r4, 0 adds r1, r2, 0 movs r3, 0 - bl sub_817F6D4 - ldr r0, =sub_8184D88 + bl HandleSetAffineData + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r4, 0x1C] b _08182B16 .pool @@ -6581,7 +4624,7 @@ _08182AEA: adds r0, r4, 0 adds r1, r2, 0 movs r3, 0 - bl sub_817F6D4 + bl HandleSetAffineData _08182B16: adds r0, r4, 0 bl sub_817F70C @@ -6601,7 +4644,7 @@ pokemonanimfunc_43: @ 8182B24 lsls r0, 4 cmp r1, r0 ble _08182B48 - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r4, 0x1C] movs r0, 0 strh r0, [r4, 0x3A] @@ -6843,7 +4886,7 @@ _08182D08: movs r0, 0 strh r0, [r4, 0x24] strh r0, [r4, 0x26] - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r4, 0x1C] _08182D12: adds r0, r4, 0 @@ -7220,7 +5263,7 @@ pokemonanimfunc_56: @ 8182FB8 movs r0, 0x2 strh r0, [r1, 0x4] adds r0, r4, 0 - bl sub_817F670 + bl HandleStartAffineAnim strh r5, [r4, 0x34] adds r0, r4, 0 bl sub_8181ABC @@ -7398,7 +5441,7 @@ sub_8183140: @ 8183140 lsls r0, 4 cmp r2, r0 ble _0818315C - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r4, 0x1C] movs r0, 0 b _08183180 @@ -7481,7 +5524,7 @@ pokemonanimfunc_59: @ 81831D4 lsls r0, 4 cmp r1, r0 ble _081831F8 - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r4, 0x1C] movs r0, 0 strh r0, [r4, 0x3A] @@ -7625,7 +5668,7 @@ sub_81832C8: @ 81832C8 adds r0, r6, 0 adds r1, r2, 0 movs r3, 0 - bl sub_817F6D4 + bl HandleSetAffineData ldrh r1, [r6, 0x36] movs r2, 0x36 ldrsh r0, [r6, r2] @@ -7633,7 +5676,7 @@ sub_81832C8: @ 81832C8 bgt _08183310 adds r0, r6, 0 bl sub_817F77C - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r6, 0x1C] b _081833DC .pool @@ -7733,7 +5776,7 @@ _08183392: asrs r2, 16 adds r0, r6, 0 movs r3, 0 - bl sub_817F618 + bl SetAffineData ldrh r0, [r6, 0x38] adds r0, 0x1 strh r0, [r6, 0x38] @@ -7757,7 +5800,7 @@ pokemonanimfunc_5A: @ 81833E8 movs r4, 0x1 strh r4, [r5, 0x32] adds r0, r5, 0 - bl sub_817F670 + bl HandleStartAffineAnim strh r4, [r5, 0x36] movs r0, 0x28 strh r0, [r5, 0x3A] @@ -7794,7 +5837,7 @@ sub_8183418: @ 8183418 adds r0, r6, 0 adds r1, r2, 0 movs r3, 0 - bl sub_817F6D4 + bl HandleSetAffineData ldrh r1, [r6, 0x36] movs r2, 0x36 ldrsh r0, [r6, r2] @@ -7802,7 +5845,7 @@ sub_8183418: @ 8183418 bgt _08183460 adds r0, r6, 0 bl sub_817F77C - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r6, 0x1C] b _08183538 .pool @@ -7906,7 +5949,7 @@ _08183522: lsls r2, 1 adds r0, r6, 0 movs r3, 0 - bl sub_817F618 + bl SetAffineData ldrh r0, [r6, 0x38] adds r0, 0x1 strh r0, [r6, 0x38] @@ -7930,7 +5973,7 @@ pokemonanimfunc_5B: @ 8183544 movs r4, 0x1 strh r4, [r5, 0x32] adds r0, r5, 0 - bl sub_817F670 + bl HandleStartAffineAnim strh r4, [r5, 0x36] movs r0, 0x28 strh r0, [r5, 0x3A] @@ -7989,7 +6032,7 @@ _081835A6: _081835C2: cmp r5, 0xFF bne _081835D8 - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r4, 0x1C] movs r0, 0 strh r0, [r4, 0x26] @@ -8092,7 +6135,7 @@ pokemonanimfunc_5F: @ 8183674 ldrsh r0, [r4, r2] cmp r0, 0x28 ble _08183690 - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r4, 0x1C] movs r0, 0 b _081836CA @@ -8146,7 +6189,7 @@ pokemonanimfunc_60: @ 81836D8 ldrsh r0, [r4, r2] cmp r0, 0x28 ble _081836F4 - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r4, 0x1C] movs r0, 0 b _0818372E @@ -8297,7 +6340,7 @@ sub_81837DC: @ 81837DC adds r0, r7, 0 adds r1, r2, 0 movs r3, 0 - bl sub_817F6D4 + bl HandleSetAffineData ldrh r1, [r7, 0x36] movs r2, 0x36 ldrsh r0, [r7, r2] @@ -8305,7 +6348,7 @@ sub_81837DC: @ 81837DC bgt _08183824 adds r0, r7, 0 bl sub_817F77C - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r7, 0x1C] b _0818392C .pool @@ -8431,7 +6474,7 @@ _081838EA: asrs r2, 16 adds r0, r7, 0 movs r3, 0 - bl sub_817F618 + bl SetAffineData ldrh r0, [r7, 0x38] adds r0, 0x1 strh r0, [r7, 0x38] @@ -8456,7 +6499,7 @@ pokemonanimfunc_65: @ 818393C movs r4, 0x1 strh r4, [r5, 0x32] adds r0, r5, 0 - bl sub_817F670 + bl HandleStartAffineAnim strh r4, [r5, 0x36] movs r0, 0x28 strh r0, [r5, 0x3A] @@ -8482,7 +6525,7 @@ pokemonanimfunc_66: @ 818396C lsls r0, 4 cmp r1, r0 ble _08183990 - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r4, 0x1C] movs r0, 0 strh r0, [r4, 0x3A] @@ -8614,7 +6657,7 @@ pokemonanimfunc_67: @ 8183A60 lsls r0, 4 cmp r1, r0 ble _08183A84 - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r4, 0x1C] movs r0, 0 strh r0, [r4, 0x3A] @@ -8784,7 +6827,7 @@ _08183B8C: lsls r0, 16 cmp r0, 0 bne _08183BC8 - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r4, 0x1C] b _08183C06 .pool @@ -8894,14 +6937,14 @@ sub_8183C6C: @ 8183C6C bgt _08183CA4 adds r0, r4, 0 bl sub_817F77C - ldr r0, =sub_8184D88 + 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 sub_817F6D4 + bl HandleSetAffineData b _08183CE8 .pool _08183CA4: @@ -8938,7 +6981,7 @@ _08183CC2: adds r0, r4, 0 adds r1, r2, 0 movs r3, 0 - bl sub_817F6D4 + bl HandleSetAffineData _08183CE8: pop {r4,r5} pop {r0} @@ -8955,7 +6998,7 @@ pokemonanimfunc_6B: @ 8183CF0 cmp r5, 0 bne _08183D16 adds r0, r4, 0 - bl sub_817F670 + bl HandleStartAffineAnim ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] @@ -8984,7 +7027,7 @@ pokemonanimfunc_6C: @ 8183D28 cmp r5, 0 bne _08183D4E adds r0, r4, 0 - bl sub_817F670 + bl HandleStartAffineAnim ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] @@ -9012,7 +7055,7 @@ pokemonanimfunc_6D: @ 8183D60 cmp r5, 0 bne _08183D88 adds r0, r4, 0 - bl sub_817F670 + bl HandleStartAffineAnim ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] @@ -9041,7 +7084,7 @@ pokemonanimfunc_6E: @ 8183D94 cmp r5, 0 bne _08183DBA adds r0, r4, 0 - bl sub_817F670 + bl HandleStartAffineAnim ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] @@ -9069,7 +7112,7 @@ pokemonanimfunc_6F: @ 8183DC8 cmp r5, 0 bne _08183DF0 adds r0, r4, 0 - bl sub_817F670 + bl HandleStartAffineAnim ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] @@ -9098,7 +7141,7 @@ pokemonanimfunc_70: @ 8183DFC cmp r5, 0 bne _08183E22 adds r0, r4, 0 - bl sub_817F670 + bl HandleStartAffineAnim ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] @@ -9126,7 +7169,7 @@ pokemonanimfunc_71: @ 8183E30 cmp r0, 0 bne _08183E4A adds r0, r4, 0 - bl sub_817F670 + bl HandleStartAffineAnim movs r0, 0x5 strh r0, [r4, 0x3C] movs r0, 0x8 @@ -9148,7 +7191,7 @@ pokemonanimfunc_72: @ 8183E58 cmp r0, 0 bne _08183E72 adds r0, r4, 0 - bl sub_817F670 + bl HandleStartAffineAnim movs r0, 0x3 strh r0, [r4, 0x3C] movs r0, 0x4 @@ -9172,7 +7215,7 @@ pokemonanimfunc_73: @ 8183E80 movs r4, 0x1 strh r4, [r5, 0x32] adds r0, r5, 0 - bl sub_817F670 + bl HandleStartAffineAnim strh r4, [r5, 0x36] movs r0, 0x1E strh r0, [r5, 0x3A] @@ -9198,7 +7241,7 @@ pokemonanimfunc_74: @ 8183EB0 movs r0, 0x1 strh r0, [r4, 0x32] adds r0, r4, 0 - bl sub_817F670 + bl HandleStartAffineAnim movs r0, 0x2 strh r0, [r4, 0x36] movs r0, 0x14 @@ -9225,7 +7268,7 @@ pokemonanimfunc_75: @ 8183EE0 movs r0, 0x1 strh r0, [r4, 0x32] adds r0, r4, 0 - bl sub_817F670 + bl HandleStartAffineAnim movs r0, 0x2 strh r0, [r4, 0x36] movs r0, 0x14 @@ -9253,7 +7296,7 @@ pokemonanimfunc_76: @ 8183F14 movs r4, 0x1 strh r4, [r5, 0x32] adds r0, r5, 0 - bl sub_817F670 + bl HandleStartAffineAnim strh r4, [r5, 0x36] movs r0, 0x1E strh r0, [r5, 0x3A] @@ -9280,7 +7323,7 @@ pokemonanimfunc_77: @ 8183F44 movs r0, 0x1 strh r0, [r4, 0x32] adds r0, r4, 0 - bl sub_817F670 + bl HandleStartAffineAnim movs r0, 0x2 strh r0, [r4, 0x36] movs r0, 0x14 @@ -9308,7 +7351,7 @@ pokemonanimfunc_78: @ 8183F78 movs r4, 0x1 strh r4, [r5, 0x32] adds r0, r5, 0 - bl sub_817F670 + bl HandleStartAffineAnim strh r4, [r5, 0x36] movs r0, 0x1E strh r0, [r5, 0x3A] @@ -9337,7 +7380,7 @@ sub_8183FA8: @ 8183FA8 ldrsh r0, [r4, r3] cmp r0, 0x1 bgt _08183FD0 - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r4, 0x1C] movs r0, 0 strh r0, [r4, 0x24] @@ -9499,7 +7542,7 @@ sub_81840C4: @ 81840C4 ldrsh r0, [r5, r3] cmp r1, r0 bgt _081840EC - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r5, 0x1C] b _081840F4 .pool @@ -9772,7 +7815,7 @@ sub_8184290: @ 8184290 ldrh r3, [r4, 0x3A] adds r0, r4, 0 adds r1, r2, 0 - bl sub_817F6D4 + bl HandleSetAffineData pop {r4} pop {r0} bx r0 @@ -9787,7 +7830,7 @@ pokemonanimfunc_82: @ 81842DC cmp r5, 0 bne _08184300 adds r0, r4, 0 - bl sub_817F670 + bl HandleStartAffineAnim movs r0, 0x3C strh r0, [r4, 0x3C] movs r0, 0x8 @@ -9809,7 +7852,7 @@ _08184300: adds r0, r4, 0 adds r1, r2, 0 movs r3, 0 - bl sub_817F6D4 + bl HandleSetAffineData movs r2, 0 strh r2, [r4, 0x24] strh r2, [r4, 0x26] @@ -9824,7 +7867,7 @@ _08184300: bgt _08184348 adds r0, r4, 0 bl sub_817F77C - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r4, 0x1C] b _08184358 .pool @@ -9853,7 +7896,7 @@ pokemonanimfunc_83: @ 8184360 cmp r5, 0 bne _08184384 adds r0, r4, 0 - bl sub_817F670 + bl HandleStartAffineAnim movs r0, 0x5A strh r0, [r4, 0x3C] movs r0, 0x8 @@ -9875,7 +7918,7 @@ _08184384: adds r0, r4, 0 adds r1, r2, 0 movs r3, 0 - bl sub_817F6D4 + bl HandleSetAffineData movs r2, 0 strh r2, [r4, 0x24] strh r2, [r4, 0x26] @@ -9890,7 +7933,7 @@ _08184384: bgt _081843CC adds r0, r4, 0 bl sub_817F77C - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r4, 0x1C] b _081843DC .pool @@ -9919,7 +7962,7 @@ pokemonanimfunc_84: @ 81843E4 cmp r5, 0 bne _08184408 adds r0, r4, 0 - bl sub_817F670 + bl HandleStartAffineAnim movs r0, 0x1E strh r0, [r4, 0x3C] movs r0, 0x8 @@ -9941,7 +7984,7 @@ _08184408: adds r0, r4, 0 adds r1, r2, 0 movs r3, 0 - bl sub_817F6D4 + bl HandleSetAffineData movs r2, 0 strh r2, [r4, 0x24] strh r2, [r4, 0x26] @@ -9956,7 +7999,7 @@ _08184408: bgt _08184450 adds r0, r4, 0 bl sub_817F77C - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r4, 0x1C] b _08184460 .pool @@ -9993,10 +8036,10 @@ sub_8184468: @ 8184468 adds r0, r6, 0 adds r1, r2, 0 movs r3, 0 - bl sub_817F6D4 + bl HandleSetAffineData adds r0, r6, 0 bl sub_817F77C - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r6, 0x1C] b _08184544 .pool @@ -10080,7 +8123,7 @@ _08184530: ldrsh r2, [r6, r0] adds r0, r6, 0 movs r3, 0 - bl sub_817F6D4 + bl HandleSetAffineData _08184544: ldrh r0, [r6, 0x32] adds r0, 0x1 @@ -10099,7 +8142,7 @@ pokemonanimfunc_85: @ 8184550 cmp r0, 0 bne _08184570 adds r0, r4, 0 - bl sub_817F670 + bl HandleStartAffineAnim ldrh r0, [r4, 0x26] adds r0, 0x2 strh r0, [r4, 0x26] @@ -10124,7 +8167,7 @@ pokemonanimfunc_86: @ 818457C cmp r0, 0 bne _0818459A adds r0, r4, 0 - bl sub_817F670 + bl HandleStartAffineAnim ldrh r0, [r4, 0x26] adds r0, 0x2 strh r0, [r4, 0x26] @@ -10148,7 +8191,7 @@ pokemonanimfunc_87: @ 81845A8 cmp r0, 0 bne _081845C6 adds r0, r4, 0 - bl sub_817F670 + bl HandleStartAffineAnim ldrh r0, [r4, 0x26] adds r0, 0x2 strh r0, [r4, 0x26] @@ -10299,7 +8342,7 @@ sub_81846B8: @ 81846B8 strh r0, [r4, 0x24] adds r0, r4, 0 bl sub_817F77C - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r4, 0x1C] _081846DA: adds r0, r4, 0 @@ -10314,7 +8357,7 @@ _081846DA: pokemonanimfunc_88: @ 81846EC push {r4,lr} adds r4, r0, 0 - bl sub_817F670 + bl HandleStartAffineAnim movs r2, 0 movs r1, 0x4 strh r1, [r4, 0x3C] @@ -10338,7 +8381,7 @@ pokemonanimfunc_88: @ 81846EC pokemonanimfunc_89: @ 8184718 push {r4,lr} adds r4, r0, 0 - bl sub_817F670 + bl HandleStartAffineAnim movs r2, 0 movs r1, 0x2 strh r1, [r4, 0x3C] @@ -10362,7 +8405,7 @@ pokemonanimfunc_89: @ 8184718 pokemonanimfunc_8A: @ 8184744 push {r4,lr} adds r4, r0, 0 - bl sub_817F670 + bl HandleStartAffineAnim movs r1, 0 strh r1, [r4, 0x3C] movs r0, 0x6 @@ -10427,7 +8470,7 @@ sub_8184798: @ 8184798 bne _081847D0 movs r0, 0 strh r0, [r4, 0x24] - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r4, 0x1C] b _0818482E .pool @@ -10594,7 +8637,7 @@ sub_81848E0: @ 81848E0 movs r2, 0 movs r3, 0x1F bl BlendPalette - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r4, 0x1C] b _0818492A .pool @@ -11223,8 +9266,8 @@ _08184D7A: bx r0 thumb_func_end pokemonanimfunc_96 - thumb_func_start sub_8184D88 -sub_8184D88: @ 8184D88 + thumb_func_start SpriteCB_SetDummyOnAnimEnd +SpriteCB_SetDummyOnAnimEnd: @ 8184D88 push {lr} adds r2, r0, 0 adds r0, 0x3F @@ -11239,6 +9282,6 @@ _08184D9C: pop {r0} bx r0 .pool - thumb_func_end sub_8184D88 + thumb_func_end SpriteCB_SetDummyOnAnimEnd .align 2, 0 @ Don't pad with nop. diff --git a/src/pokemon_animation.c b/src/pokemon_animation.c index 960b42dd1..1cac2c473 100644 --- a/src/pokemon_animation.c +++ b/src/pokemon_animation.c @@ -4,10 +4,11 @@ #include "pokemon_animation.h" #include "trig.h" #include "task.h" +#include "blend_palette.h" struct UnkAnimStruct { - s16 field_0; + u16 field_0; s16 field_2; s16 field_4; s16 field_6; @@ -172,6 +173,8 @@ void pokemonanimfunc_94(struct Sprite *sprite); void pokemonanimfunc_95(struct Sprite *sprite); void pokemonanimfunc_96(struct Sprite *sprite); +void SpriteCB_SetDummyOnAnimEnd(struct Sprite *sprite); + // const rom data static const u8 sSpeciesToBackAnimId[] = { @@ -591,7 +594,13 @@ static const u8 sSpeciesToBackAnimId[] = const u8 gUnknown_0860AA64[] = {0x00, 0x05, 0x01, 0x01, 0x00, 0x0f, 0x01, 0x04, 0x00, 0x02, 0x01, 0x02, 0x00, 0x02, 0x01, 0x02, 0x00, 0x02, 0x01, 0x02, 0x00, 0x02, 0x01, 0x02, 0x00, 0x02, 0x00, 0xff}; -const u8 gUnknown_0860AA80[] = {0x06, 0x1e, 0xfe, 0x0f, 0x06, 0x1e, 0xff, 0x00}; +const u8 gUnknown_0860AA80[][2] = +{ + {6, 30}, + {0xFE, 15}, + {6, 30}, + {0xFF, 0} +}; static void (* const sMonAnimFunctions[])(struct Sprite *sprite) = { @@ -825,6 +834,8 @@ static const union AffineAnimCmd *const gSpriteAffineAnimTable_860AD68[] = gSpriteAffineAnim_860AD58 }; +extern const s8 gUnknown_0860AD70[][3]; + // code void MonAnimDummySpriteCallback(struct Sprite *sprite) { @@ -919,7 +930,7 @@ void sub_817F60C(struct Sprite *sprite) sprite->callback = MonAnimDummySpriteCallback; } -void sub_817F618(struct Sprite *sprite, s16 xScale, s16 yScale, u16 rotation) +void SetAffineData(struct Sprite *sprite, s16 xScale, s16 yScale, u16 rotation) { u8 matrixNum; struct ObjAffineSrcData affineSrcData; @@ -938,7 +949,7 @@ void sub_817F618(struct Sprite *sprite, s16 xScale, s16 yScale, u16 rotation) gOamMatrices[matrixNum].d = dest.d; } -void sub_817F670(struct Sprite *sprite) +void HandleStartAffineAnim(struct Sprite *sprite) { sprite->oam.affineMode = 3; sprite->affineAnims = gSpriteAffineAnimTable_860AD68; @@ -955,7 +966,7 @@ void sub_817F670(struct Sprite *sprite) sprite->affineAnimPaused = 1; } -void sub_817F6D4(struct Sprite *sprite, s16 xScale, s16 yScale, u16 rotation) +void HandleSetAffineData(struct Sprite *sprite, s16 xScale, s16 yScale, u16 rotation) { if (!sprite->data[1]) { @@ -963,7 +974,7 @@ void sub_817F6D4(struct Sprite *sprite, s16 xScale, s16 yScale, u16 rotation) rotation *= -1; } - sub_817F618(sprite, xScale, yScale, rotation); + SetAffineData(sprite, xScale, yScale, rotation); } void sub_817F70C(struct Sprite *sprite) @@ -1013,3 +1024,807 @@ void sub_817F77C(struct Sprite *sprite) sprite->oam.affineMode = 0; } } + +void pokemonanimfunc_01(struct Sprite *sprite) +{ + if (sprite->data[2] == 0) + HandleStartAffineAnim(sprite); + + if (sprite->data[2] > 40) + { + HandleSetAffineData(sprite, 0x100, 0x100, 0); + sub_817F77C(sprite); + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + } + else + { + s16 var = (sprite->data[2] * 512 / 40) % 256; + + sprite->data[4] = Sin(var, 32) + 256; + sprite->data[5] = Cos(var, 32) + 256; + HandleSetAffineData(sprite, sprite->data[4], sprite->data[5], 0); + } + + sprite->data[2]++; +} + +void pokemonanimfunc_02(struct Sprite *sprite) +{ + if (sprite->data[2] > 40) + { + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + sprite->pos2.x = 0; + } + else + { + s8 var; + + if (!(sprite->data[2] & 1)) + var = 1; + else + var = -1; + + sprite->pos2.x = Sin((sprite->data[2] * 128 / 40) % 256, 6) * var; + } + + sprite->data[2]++; +} + +void sub_817F8FC(struct Sprite *sprite) +{ + sub_817F70C(sprite); + + if (sprite->data[2] > sprite->data[0]) + { + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + sprite->pos2.x = 0; + } + else + { + sprite->pos2.x = Sin((sprite->data[2] * 384 / sprite->data[0]) % 256, 6); + } + + sprite->data[2]++; + sub_817F70C(sprite); +} + +void pokemonanimfunc_03(struct Sprite *sprite) +{ + sprite->data[0] = 40; + sub_817F8FC(sprite); + sprite->callback = sub_817F8FC; +} + +void sub_817F978(struct Sprite *sprite) +{ + sub_817F70C(sprite); + + if (sprite->data[2] > sprite->data[0]) + { + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + sprite->pos2.y = 0; + } + else + { + sprite->pos2.y = -(Sin((sprite->data[2] * 384 / sprite->data[0]) % 256, 6)); + } + + sprite->data[2]++; + sub_817F70C(sprite); +} + +void pokemonanimfunc_04(struct Sprite *sprite) +{ + sprite->data[0] = 40; + sub_817F978(sprite); + sprite->callback = sub_817F978; +} + +#ifdef NONMATCHING +void sub_817F9F4(struct Sprite *sprite) +{ + s32 counter = sprite->data[2]; + + if (counter > 384) + { + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + sprite->pos2.x = 0; + sprite->pos2.y = 0; + } + else + { + s32 divCounter = counter / 128; + + switch (divCounter) + { + case 0: + case 1: + sprite->pos2.y = -(Sin(counter % 128, sprite->data[0] * 2)); + break; + case 2: + case 3: + sprite->pos2.y = -(Sin(counter - 256, sprite->data[0] * 3)); + break; + } + } + + sprite->data[2] += 12; +} + +#else +__attribute__((naked)) +void sub_817F9F4(struct Sprite *sprite) +{ + asm(".syntax unified\n\ + push {r4,lr}\n\ + adds r4, r0, 0\n\ + movs r0, 0x32\n\ + ldrsh r1, [r4, r0]\n\ + movs r0, 0xC0\n\ + lsls r0, 1\n\ + cmp r1, r0\n\ + ble _0817FA14\n\ + ldr r0, =SpriteCB_SetDummyOnAnimEnd\n\ + str r0, [r4, 0x1C]\n\ + movs r0, 0\n\ + strh r0, [r4, 0x24]\n\ + b _0817FA5E\n\ + .pool\n\ +_0817FA14:\n\ + adds r0, r1, 0\n\ + cmp r1, 0\n\ + bge _0817FA1C\n\ + adds r0, 0x7F\n\ +_0817FA1C:\n\ + asrs r2, r0, 7\n\ + lsls r0, r2, 16\n\ + asrs r0, 16\n\ + cmp r0, 0\n\ + blt _0817FA60\n\ + cmp r0, 0x1\n\ + ble _0817FA48\n\ + cmp r0, 0x3\n\ + bgt _0817FA60\n\ + ldr r2, =0xffffff00\n\ + adds r1, r2\n\ + lsls r0, r1, 16\n\ + asrs r0, 16\n\ + movs r1, 0x2E\n\ + ldrsh r2, [r4, r1]\n\ + lsls r1, r2, 1\n\ + adds r1, r2\n\ + lsls r1, 16\n\ + b _0817FA56\n\ + .pool\n\ +_0817FA48:\n\ + lsls r0, r2, 7\n\ + subs r0, r1, r0\n\ + lsls r0, 16\n\ + asrs r0, 16\n\ + movs r2, 0x2E\n\ + ldrsh r1, [r4, r2]\n\ + lsls r1, 17\n\ +_0817FA56:\n\ + asrs r1, 16\n\ + bl Sin\n\ + negs r0, r0\n\ +_0817FA5E:\n\ + strh r0, [r4, 0x26]\n\ +_0817FA60:\n\ + ldrh r0, [r4, 0x32]\n\ + adds r0, 0xC\n\ + strh r0, [r4, 0x32]\n\ + pop {r4}\n\ + pop {r0}\n\ + bx r0\n\ + .syntax divided"); +} + +#endif // NONMATCHING + +void pokemonanimfunc_1E(struct Sprite *sprite) +{ + sprite->data[0] = 4; + sub_817F9F4(sprite); + sprite->callback = sub_817F9F4; +} + +void pokemonanimfunc_06(struct Sprite *sprite) +{ + s32 counter = sprite->data[2]; + + if (counter > 768) + { + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + sprite->pos2.x = 0; + sprite->pos2.y = 0; + } + else + { + s16 divCounter = counter / 128; + + switch (divCounter) + { + case 0: + case 1: + sprite->pos2.x = 0; + break; + case 2: + counter = 0; + break; + case 3: + sprite->pos2.x = -(counter % 128 * 8) / 128; + break; + case 4: + sprite->pos2.x = (counter % 128) / 8 - 8; + break; + case 5: + sprite->pos2.x = -(counter % 128 * 8) / 128 + 8; + break; + } + + sprite->pos2.y = -(Sin(counter % 128, 8)); + } + + sprite->data[2] += 12; +} + +void pokemonanimfunc_09(struct Sprite *sprite) +{ + if (sprite->data[2] == 0) + HandleStartAffineAnim(sprite); + + if (sprite->data[2] > 40) + { + HandleSetAffineData(sprite, 0x100, 0x100, 0); + sub_817F77C(sprite); + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + } + else + { + s16 index = (sprite->data[2] * 256 / 40) % 256; + + if (sprite->data[2] % 2 == 0) + { + sprite->data[4] = Sin(index, 32) + 256; + sprite->data[5] = Sin(index, 32) + 256; + } + else + { + sprite->data[4] = Sin(index, 8) + 256; + sprite->data[5] = Sin(index, 8) + 256; + } + + HandleSetAffineData(sprite, sprite->data[4], sprite->data[5], 0); + } + + sprite->data[2]++; +} + +void sub_817FC20(struct Sprite *sprite) +{ + sub_817F70C(sprite); + + if (sprite->data[2] == 0) + sprite->data[3] = 0; + + if (gUnknown_0860AD70[sprite->data[3]][2] == sprite->data[2]) + { + if (gUnknown_0860AD70[sprite->data[3]][2] == 0) + { + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + } + else + { + sprite->data[3]++; + sprite->data[2] = 0; + } + } + + if (gUnknown_0860AD70[sprite->data[3]][2] == 0) + { + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + } + else + { + sprite->pos2.x += gUnknown_0860AD70[sprite->data[3]][0]; + sprite->pos2.y += gUnknown_0860AD70[sprite->data[3]][1]; + sprite->data[2]++; + sub_817F70C(sprite); + } +} + +void pokemonanimfunc_0A(struct Sprite *sprite) +{ + sub_817FC20(sprite); + sprite->callback = sub_817FC20; +} + +void sub_817FCDC(struct Sprite *sprite) +{ + s32 counter = sprite->data[2]; + + if (counter > 2304) + { + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + sprite->pos2.x = 0; + } + else + { + sprite->pos2.x = Sin(counter % 256, sprite->data[7]); + } + + sprite->data[2] += sprite->data[0]; +} + +void pokemonanimfunc_0F(struct Sprite *sprite) +{ + sprite->data[0] = 60; + sprite->data[7] = 3; + sub_817FCDC(sprite); + sprite->callback = sub_817FCDC; +} + +void sub_817FD44(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 % 256, 3); + } + + sprite->data[2] += sprite->data[0]; +} + +void pokemonanimfunc_10(struct Sprite *sprite) +{ + sprite->data[0] = 60; + sub_817FD44(sprite); + sprite->callback = sub_817FD44; +} + +void pokemonanimfunc_11(struct Sprite *sprite) +{ + if (sprite->data[2] > 512) + { + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + sprite->pos2.x = 0; + sprite->pos2.y = 0; + } + else + { + s8 var; + s32 index, amplitude; + + if (!(sprite->data[2] & 1)) + var = 1; + else + var = -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->data[2] += 9; +} + +void sub_817FE30(struct Sprite *sprite) +{ + s16 id = sprite->data[0]; + + if (gUnknown_03001240[id].field_0 != 0) + { + gUnknown_03001240[id].field_0--; + } + else + { + if (sprite->data[2] == 0 && gUnknown_03001240[id].field_8 == 0) + { + HandleStartAffineAnim(sprite); + gUnknown_03001240[id].field_8++; + } + + if (sprite->data[2] > gUnknown_03001240[id].field_6) + { + HandleSetAffineData(sprite, 0x100, 0x100, 0); + + if (gUnknown_03001240[id].field_4 > 1) + { + gUnknown_03001240[id].field_4--; + gUnknown_03001240[id].field_0 = 10; + sprite->data[2] = 0; + } + else + { + sub_817F77C(sprite); + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + } + } + else + { + sprite->data[6] = Sin(sprite->data[2] % 256, 4096); + HandleSetAffineData(sprite, 0x100, 0x100, sprite->data[6]); + } + + sprite->data[2] += 16; + } +} + +void pokemonanimfunc_12(struct Sprite *sprite) +{ + u8 id = sprite->data[0] = sub_817F758(); + + gUnknown_03001240[id].field_6 = 512; + gUnknown_03001240[id].field_0 = 0; + sub_817FE30(sprite); + sprite->callback = sub_817FE30; +} + +void sub_817FF3C(struct Sprite *sprite) +{ + u8 id = sprite->data[0]; + + if (sprite->data[2] == 0) + HandleStartAffineAnim(sprite); + + if (sprite->data[2] > gUnknown_03001240[id].field_0) + { + HandleSetAffineData(sprite, 0x100, 0x100, 0); + sub_817F77C(sprite); + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + } + else + { + sprite->data[6] = (65536 / gUnknown_03001240[id].field_8) * sprite->data[2]; + HandleSetAffineData(sprite, 0x100, 0x100, sprite->data[6]); + } + + sprite->data[2]++; +} + +void pokemonanimfunc_1F(struct Sprite *sprite) +{ + u8 id = sprite->data[0] = sub_817F758(); + + gUnknown_03001240[id].field_0 = 60; + gUnknown_03001240[id].field_8 = 20; + sub_817FF3C(sprite); + sprite->callback = sub_817FF3C; +} + +void sub_817FFF0(struct Sprite *sprite) +{ + u8 id = sprite->data[0]; + + sub_817F70C(sprite); + + if (sprite->data[2] > gUnknown_03001240[id].field_6) + { + sprite->pos2.x = 0; + sprite->pos2.y = 0; + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + } + else + { + s16 index = (sprite->data[2] + 192) % 256; + + sprite->pos2.x = -(Cos(index, gUnknown_03001240[id].field_8 * 2)); + sprite->pos2.y = Sin(index, gUnknown_03001240[id].field_8) + gUnknown_03001240[id].field_8; + } + + sprite->data[2] += gUnknown_03001240[id].field_2; + sub_817F70C(sprite); +} + +void pokemonanimfunc_14(struct Sprite *sprite) +{ + u8 id = sprite->data[0] = sub_817F758(); + + gUnknown_03001240[id].field_6 = 512; + gUnknown_03001240[id].field_8 = 6; + gUnknown_03001240[id].field_2 = 24; + sub_817FFF0(sprite); + sprite->callback = sub_817FFF0; +} + +void pokemonanimfunc_15(struct Sprite *sprite) +{ + if (sprite->data[2] == 0) + sprite->data[7] = (sprite->oam.paletteNum * 16) + 256; + + if (sprite->data[2] > 128) + { + BlendPalette(sprite->data[7], 0x10, 0, 0); + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + } + else + { + sprite->data[6] = Sin(sprite->data[2], 16); + BlendPalette(sprite->data[7], 0x10, sprite->data[6], 0); + } + + sprite->data[2]++; +} + +void pokemonanimfunc_16(struct Sprite *sprite) +{ + s16 index1 = 0, index2 = 0; + + if (sprite->data[2] == 0) + HandleStartAffineAnim(sprite); + + if (sprite->data[2] > 40) + { + HandleSetAffineData(sprite, 0x100, 0x100, 0); + sub_817F77C(sprite); + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + } + else + { + index2 = (sprite->data[2] * 128) / 40; + + if (sprite->data[2] >= 10 && sprite->data[2] <= 29) + { + sprite->data[7] += 51; + index1 = 0xFF & sprite->data[7]; + } + + if (sprite->data[1] == 0) + sprite->data[4] = (Sin(index2, 40) - 256) + Sin(index1, 16); + else + sprite->data[4] = (256 - Sin(index2, 40)) - Sin(index1, 16); + + sprite->data[5] = Sin(index2, 16) + 256; + SetAffineData(sprite, sprite->data[4], sprite->data[5], 0); + } + + sprite->data[2]++; +} + +void pokemonanimfunc_17(struct Sprite *sprite) +{ + s16 posY = 0, index1 = 0, index2 = 0; + + if (sprite->data[2] == 0) + HandleStartAffineAnim(sprite); + + if (sprite->data[2] > 40) + { + HandleSetAffineData(sprite, 0x100, 0x100, 0); + sub_817F77C(sprite); + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + sprite->pos2.y = posY; + } + else + { + index2 = (sprite->data[2] * 128) / 40; + + if (sprite->data[2] >= 10 && sprite->data[2] <= 29) + { + sprite->data[7] += 51; + index1 = 0xFF & sprite->data[7]; + } + + if (sprite->data[1] == 0) + sprite->data[4] = -(Sin(index2, 16)) - 256; + else + sprite->data[4] = Sin(index2, 16) + 256; + + sprite->data[5] = (256 - Sin(index2, 40)) - Sin(index1, 8); + + if (sprite->data[5] != 256) + posY = (256 - sprite->data[5]) / 8; + + sprite->pos2.y = -(posY); + SetAffineData(sprite, sprite->data[4], sprite->data[5], 0); + } + + sprite->data[2]++; +} + +void sub_818031C(struct Sprite *sprite) +{ + u8 index = sprite->data[2]; + u8 var7 = sprite->data[6]; + u8 var5 = gUnknown_0860AA80[sprite->data[5]][0]; + u8 var6 = gUnknown_0860AA80[sprite->data[5]][1]; + u8 amplitude = 0; + + if (var5 != 0xFE) + amplitude = (var6 - var7) * var5 / var6; + else + amplitude = 0; + + if (var5 == 0xFF) + { + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + sprite->pos2.y = 0; + } + else + { + sprite->pos2.y = Sin(index, amplitude); + + if (var7 == var6) + { + sprite->data[5]++; + sprite->data[6] = 0; + } + else + { + sprite->data[2] += sprite->data[0]; + sprite->data[6]++; + } + } +} + +void pokemonanimfunc_19(struct Sprite *sprite) +{ + sprite->data[0] = 48; + sub_818031C(sprite); + sprite->callback = sub_818031C; +} + +void pokemonanimfunc_1A(struct Sprite *sprite) +{ + u8 counter = 0; + + sub_817F70C(sprite); + counter = sprite->data[2]; + + if (sprite->data[2] == 0) + HandleStartAffineAnim(sprite); + + if (sprite->data[2] > 35) + { + HandleSetAffineData(sprite, 0x100, 0x100, 0); + sub_817F77C(sprite); + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + sprite->pos2.x = 0; + } + else + { + s16 index = ((counter - 10) * 128) / 20; + + if (counter < 10) + HandleSetAffineData(sprite, 0x100, 0x100, counter / 2 * 512); + else if (counter >= 10 && counter <= 29) + sprite->pos2.x = -(Sin(index, 5)); + else + HandleSetAffineData(sprite, 0x100, 0x100, (35 - counter) / 2 * 1024); + } + + sprite->data[2]++; + sub_817F70C(sprite); +} + +void pokemonanimfunc_1B(struct Sprite *sprite) +{ + if (sprite->data[2] == 0) + HandleStartAffineAnim(sprite); + + if (sprite->data[2] > 100) + { + HandleSetAffineData(sprite, 0x100, 0x100, 0); + sprite->pos2.y = 0; + sub_817F77C(sprite); + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + } + else + { + s16 index = (sprite->data[2] * 256) / 100; + sprite->pos2.y = Sin(index, 10); + HandleSetAffineData(sprite, 0x100, 0x100, Sin(index, 3276)); + } + + sprite->data[2]++; +} + +void sub_81804F8(struct Sprite *sprite) +{ + s32 var = 0; + s16 index = 0; + + if (sprite->data[2] == 0) + HandleStartAffineAnim(sprite); + + if (sprite->data[2] > 100) + { + HandleSetAffineData(sprite, 0x100, 0x100, 0); + sprite->pos2.y = 0; + sub_817F77C(sprite); + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + } + else + { + index = (sprite->data[2] * 256) / 100; + var = (sprite->data[2] * 512) / 100; + var &= 0xFF; + sprite->pos2.y = Sin(index, sprite->data[0]); + HandleSetAffineData(sprite, 0x100, 0x100, Sin(var, 3276)); + } + + sprite->data[2]++; +} + +void pokemonanimfunc_1C(struct Sprite *sprite) +{ + sprite->data[0] = 10; + sub_81804F8(sprite); + sprite->callback = sub_81804F8; +} + +void sub_81805B0(struct Sprite *sprite) +{ + s32 var = 0; + s16 index = 0; + + if (sprite->data[2] == 0) + HandleStartAffineAnim(sprite); + + if (sprite->data[2] > 100) + { + HandleSetAffineData(sprite, 0x100, 0x100, 0); + sprite->pos2.y = 0; + sub_817F77C(sprite); + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + } + else + { + index = (sprite->data[2] * 256) / 100; + var = (sprite->data[2] * 512) / 100; + var &= 0xFF; + sprite->pos2.y = -(Sin(index / 2, sprite->data[0] * 2)); + HandleSetAffineData(sprite, 0x100, 0x100, Sin(var, 3276)); + } + + sprite->data[2]++; +} + +void pokemonanimfunc_18(struct Sprite *sprite) +{ + sprite->data[0] = 5; + sub_81805B0(sprite); + sprite->callback = sub_81805B0; +} + +void pokemonanimfunc_1D(struct Sprite *sprite) +{ + s32 var; + s16 index = 0; + + sub_817F70C(sprite); + var = 0; + + if (sprite->data[2] == 0) + HandleStartAffineAnim(sprite); + + if (sprite->data[2] > 100) + { + HandleSetAffineData(sprite, 0x100, 0x100, 0); + sprite->pos2.x = 0; + sub_817F77C(sprite); + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + } + else + { + s16 toDiv = 100; + + index = (sprite->data[2] * 256) / toDiv; + var = (sprite->data[2] * 512) / toDiv; + var &= 0xFF; + sprite->pos2.x = Sin(index, 8); + HandleSetAffineData(sprite, 0x100, 0x100, Sin(var, 3276)); + } + + sprite->data[2]++; + sub_817F70C(sprite); +} |